@foxycape/core 1.2.1 → 1.2.3
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.
- package/dist/mediaTypes/html/renderer/HtmlRenderer.cjs +1 -1
- package/dist/mediaTypes/html/renderer/HtmlRenderer.d.ts +2 -2
- package/dist/mediaTypes/html/renderer/HtmlRenderer.mjs +2 -10
- package/dist/mediaTypes/html/renderer/layout/HtmlRendererViewport.cjs +1 -1
- package/dist/mediaTypes/html/renderer/layout/HtmlRendererViewport.mjs +8 -8
- package/dist/mediaTypes/pdf/fileParser/PdfFileParser.cjs +1 -1
- package/dist/mediaTypes/pdf/fileParser/PdfFileParser.mjs +7 -7
- package/package.json +1 -3
- package/dist/kernal/plugins/keyboard/KeyboardPageTurning.cjs +0 -1
- package/dist/kernal/plugins/keyboard/KeyboardPageTurning.d.ts +0 -39
- package/dist/kernal/plugins/keyboard/KeyboardPageTurning.mjs +0 -136
- package/dist/mediaTypes/html/renderer/style/LanguageHighlighter.cjs +0 -1
- package/dist/mediaTypes/html/renderer/style/LanguageHighlighter.d.ts +0 -18
- package/dist/mediaTypes/html/renderer/style/LanguageHighlighter.mjs +0 -52
- package/dist/node_modules/highlight.js/styles/github-dark.cjs +0 -118
- package/dist/node_modules/highlight.js/styles/github-dark.mjs +0 -4
- package/dist/node_modules/highlight.js/styles/github.cjs +0 -118
- package/dist/node_modules/highlight.js/styles/github.mjs +0 -4
|
@@ -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(){
|
|
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;
|
|
@@ -6,6 +6,7 @@ import { HtmlOptions } from '../HtmlOptions';
|
|
|
6
6
|
import { IHtmlProgressTracker } from './progress/IHtmlIProgressTracker';
|
|
7
7
|
import { IHtmlRendererLayout } from './layout/IHtmlRendererLayout';
|
|
8
8
|
import { IHtmlDocument } from './IHtmlDocument';
|
|
9
|
+
import { ILanguageHighlighter } from './style/ILanguageHighlighter';
|
|
9
10
|
import { IHtmlImageLoader } from './image/IHtmlImageLoader';
|
|
10
11
|
|
|
11
12
|
export declare class HtmlRenderer extends HtmlDocumentsProvider implements IHtmlRenderer {
|
|
@@ -31,8 +32,7 @@ export declare class HtmlRenderer extends HtmlDocumentsProvider implements IHtml
|
|
|
31
32
|
private injectProcessHandlers;
|
|
32
33
|
private resolveCurrentTheme;
|
|
33
34
|
protected preprocessHandler: (doc: IHtmlDocument) => Promise<void>;
|
|
34
|
-
|
|
35
|
-
private getHighlighter;
|
|
35
|
+
protected getHighlighter(): Promise<ILanguageHighlighter | undefined>;
|
|
36
36
|
protected bindEvents(): void;
|
|
37
37
|
protected unbindEvents(): void;
|
|
38
38
|
private bindScrollWatch;
|
|
@@ -62,15 +62,7 @@ var T = class extends _ {
|
|
|
62
62
|
async resolveCurrentTheme() {
|
|
63
63
|
return (await this.owner.services.get("themeProvider"))?.getCurrentTheme() ?? new r();
|
|
64
64
|
}
|
|
65
|
-
async getHighlighter() {
|
|
66
|
-
if (this.htmlOptions.enableFormatCodeBlock) {
|
|
67
|
-
if (!this.languageHighlighter) {
|
|
68
|
-
let { LanguageHighlighter: e } = await import("./style/LanguageHighlighter.mjs");
|
|
69
|
-
this.languageHighlighter = new e(this);
|
|
70
|
-
}
|
|
71
|
-
return this.languageHighlighter;
|
|
72
|
-
}
|
|
73
|
-
}
|
|
65
|
+
async getHighlighter() {}
|
|
74
66
|
bindEvents() {
|
|
75
67
|
this.owner.events.on(e.OptionsChange, this.onOptionsChange), this.owner.events.on(e.PageChange, this.onPageChange), this.owner.events.on(e.DocumentSizeChange, this.onDocumentSizeChange);
|
|
76
68
|
}
|
|
@@ -108,7 +100,7 @@ var T = class extends _ {
|
|
|
108
100
|
async dispose() {
|
|
109
101
|
this.unbindEvents();
|
|
110
102
|
let e = this.scrollWatchTarget ?? this.getScrollElement();
|
|
111
|
-
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.
|
|
103
|
+
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();
|
|
112
104
|
}
|
|
113
105
|
};
|
|
114
106
|
//#endregion
|
|
@@ -1 +1 @@
|
|
|
1
|
-
Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("../../../../kernal/html/injector.cjs"),t=require("../../../../kernal/html/realm.cjs"),n=require("../../HtmlSettings.cjs"),r=require("./ViewportCssVariableNames.cjs"),i=require("./resolveLayoutRoute.cjs"),a=require("./HtmlLayoutMetrics.cjs"),o=require("../documents/HtmlContainerBuilder.cjs"),s=require("./applyLayoutClasses.cjs"),c=require("./resolveContentWrapperMinWidth.cjs");var l=class{constructor(t,r,i,a){this.owner=t,this.readerContainer=r,this.getColumnWidth=()=>this.htmlOptions.maxColumnWidth?Math.abs(this.htmlOptions.maxColumnWidth):768,this.options=this.owner.options,this.device=this.owner.device,this.optionsProvider=i,this.htmlOptions=a,this.containerBuilder=new o.HtmlContainerBuilder(a);let{rendererContainer:s,rendererCss:c,otherCss:l}=this.containerBuilder.createContainers();e.injectCssContent(this.readerContainer.ownerDocument,c+l,!0,`html-renderer-style`),this.readerContainer.appendChild(s),this.rendererContainer=s,this.scrollElement=this.rendererContainer,this.contentsShadowContainer=this.rendererContainer.querySelector(`.`+n.HtmlSettings.ContentsShadowContainerCssName),this.rendererContainer.setAttribute(n.HtmlSettings.HostViewportModeAttribute,this.owner.getHostViewport().mode)}getRendererContainer(){return this.rendererContainer}getScrollElement(){let e=this.owner.getHostViewport();return e.mode==`window`?e.scrollElement:this.rendererContainer}getLayoutMetrics(){return this.layout||=(this.internlApplyCssVariables(),this.buildLayoutMetrics()),this.layout}applyCssVariables(){this.internlApplyCssVariables(),this.layout=this.buildLayoutMetrics()}internlApplyCssVariables(){this.owner.refreshHostViewport();let e=i.getLayoutGeometry(this.htmlOptions),t=this.getScrollElement(),n=e.flipMode==`scroll`&&t?{left:t.scrollLeft,top:t.scrollTop}:void 0;this.applyFlowClasses(e),this.syncPageTransformSign(e);let a=this.prepareRendererCssVariables(),o=this.prepareOtherCssVariables(),s=new Map;a.forEach((e,t)=>{s.set(t,e)}),o.forEach((e,t)=>{s.set(t,e)});let c=this.owner.getRootContainer();c.style.setProperty(`direction`,`var(${r.ViewportCssVariableNames.ReaderViewportDirection})`),s.forEach((e,t)=>{c.style.setProperty(t,e)}),n&&t&&t.scrollTo(n.left,n.top)}syncPageTransformSign(e){let r=this.rendererContainer.querySelector(`.`+n.HtmlSettings.TransformContainerCssName);if(!t.isHtmlElement(r))return;if(e.flipMode!=`page`){r.style.removeProperty(`transition`),r.style.removeProperty(`transform`),r.removeAttribute(`data-target-transform`);return}if(r.hasAttribute(n.HtmlSettings.PageMovingAttributeName))return;let i=r.getAttribute(`data-target-transform`);if(i==null||i===``)return;let a=parseFloat(i);Number.isFinite(a)&&(r.style.removeProperty(`transition`),r.style.transform=e.getPageTranslateCss(a))}prepareRendererCssVariables(){let e=i.getLayoutGeometry(this.htmlOptions),t=e.flipMode;this.rendererContainer.setAttribute(n.HtmlSettings.HostViewportModeAttribute,this.owner.getHostViewport().mode);let a=new Map,o=e.viewport.zeroWrapperMargins?0:this.htmlOptions.contentWrapperMarginBottom??10,s=e.viewport.zeroWrapperMargins?0:this.htmlOptions.contentWrapperMarginTop??10,c=e.viewport.zeroWrapperMargins?0:this.htmlOptions.contentWrapperGap??10;a.set(r.ViewportCssVariableNames.ContentWrapperMarginTop,s+`px`),a.set(r.ViewportCssVariableNames.ContentWrapperMarginBottom,o+`px`),a.set(r.ViewportCssVariableNames.ContentWrapperGap,c+`px`);let l=this.htmlOptions.enableContentWrapperBorderRadius&&t==`scroll`?this.htmlOptions.contentWrapperBorderRadius??0:0;a.set(r.ViewportCssVariableNames.ContentWrapperBorderRadius,l+`px`);let u=this.owner.getHostViewport().mode==`window`&&t==`scroll`;return a.set(r.ViewportCssVariableNames.ScrollElementOverflow,u?`visible`:e.overflowY),a.set(r.ViewportCssVariableNames.ScrollElementOverflowX,u?`visible`:e.overflowX),a.set(r.ViewportCssVariableNames.ReaderViewportDirection,e.direction==`ltr`?`unset`:e.direction),a}applyFlowClasses(e){s.applyRootDirectionClass(this.owner.getRootContainer(),e),s.applyRendererLayoutClass(this.rendererContainer,e)}prepareOtherCssVariables(){let e=this.owner.getRootContainer(),t=i.getLayoutGeometry(this.htmlOptions),n=t.flipMode;n==`page`&&this.scrollElement?.scrollTo(0,0);let a=this.htmlOptions.columnGap??40,o=this.contentsShadowContainer,s=this.rendererContainer.clientWidth||this.owner.getHostViewport().width,l=this.getViewportHeight();this.rendererContainer.setAttribute(`data-client-width`,`${s}`),this.rendererContainer.setAttribute(`data-client-height`,`${l}`);let u=this.getContentsContainerWidth(),d=t.viewport.contentsContainerWidthMode==`max-content`?`max-content`:u+`px`,f=this.rendererContainer.offsetWidth-this.rendererContainer.clientWidth,p=this.rendererContainer.offsetHeight-this.rendererContainer.clientHeight,m=new Map;m.set(r.ViewportCssVariableNames.ScrollElementVerticalScrollBarWidth,f+`px`),m.set(r.ViewportCssVariableNames.ScrollElementHorizontalScrollBarHeight,p+`px`),m.set(r.ViewportCssVariableNames.ReaderViewportWidth,s+`px`),m.set(r.ViewportCssVariableNames.ReaderViewportHeight,l+`px`),e.style.setProperty(r.ViewportCssVariableNames.ContentsContainerWidth,d),m.set(r.ViewportCssVariableNames.ContentsContainerWidth,d);let h=0;n==`page`&&(h=0),s-u-2<2*h&&(h=0);let g=``;g=h>0?``+h+`px 0`:`0`,e.style.setProperty(r.ViewportCssVariableNames.ContentsContainerPadding,g),m.set(r.ViewportCssVariableNames.ContentsContainerPadding,g);let _=t.viewport.forceSingleColumn?1:this.calculateColumns(u);t.viewport.forceSingleColumn||(this.htmlOptions.columns=_);let{marginInline:v,marginBlock:y}=this.getContentsShadowMargin(u),{columnWidth:b}=this.getFinalColumnWidth(u-v*2,_,a),x=v,S=y;n==`scroll`&&(x=0,S=0),o.style=n==`scroll`?`margin: ${S}px ${x}px;`:`margin: ${S}px ${x}px;height: ${l-2*y}px;`;let C=o.getBoundingClientRect().width,w=_*b+Math.max(0,_-1)*a,{contentWrapperPaddingBottomNumber:T,contentWrapperPaddingTopNumber:E,contentWrapperPadding:D,contentWrapperPaddingTopBottom:O}=this.getContentWrapperPadding(u,a),k=l-E-T,A=t.getPageMoveLength(w,k,a);this.rendererContainer.setAttribute(`data-transform-length`,A.toString()),this.rendererContainer.setAttribute(`data-shadow-width`,C.toString()),this.rendererContainer.setAttribute(`data-column-width`,b.toString()),this.rendererContainer.setAttribute(`data-column-gap`,a.toString()),this.rendererContainer.setAttribute(`data-page-width`,`${w}`),this.rendererContainer.setAttribute(`data-page-height`,`${k}`),m.set(r.ViewportCssVariableNames.ContentWrapperWidth,t.viewport.contentWrapperWidthMode==`auto`?`auto`:C+`px`),m.set(r.ViewportCssVariableNames.ContentWrapperMinWidth,c.resolveContentWrapperMinWidth(t.viewport.contentWrapperMinWidthMode,{shadowWidth:C,columnWidth:b,columnGap:a,viewportWidth:s})),m.set(r.ViewportCssVariableNames.ContentWrapperHeight,this.getContentWrapperHeight()),m.set(r.ViewportCssVariableNames.ContentWrapperMinHeight,l+`px`),m.set(r.ViewportCssVariableNames.ContentWrapperMaxHeight,t.viewport.contentWrapperMaxHeightMode==`none`?`none`:l+`px`),m.set(r.ViewportCssVariableNames.ContentWrapperPadding,D),t.viewport.contentContainerWidthMode==`auto`?m.set(r.ViewportCssVariableNames.ContentContainerWidth,`auto`):t.viewport.contentContainerWidthMode==`column`?m.set(r.ViewportCssVariableNames.ContentContainerWidth,b+`px`):m.set(r.ViewportCssVariableNames.ContentContainerWidth,`100%`);let j=t.viewport.contentContainerHeightMode==`page`?k+`px`:`calc(var(${r.ViewportCssVariableNames.ContentWrapperHeight}) - ${O})`;return m.set(r.ViewportCssVariableNames.ContentContainerHeight,j),m.set(r.ViewportCssVariableNames.ContentColumnGap,a+`px`),m}buildLayoutMetrics(){let e=this.getFlipMode(),t=new a.HtmlLayoutMetrics,n=this.rendererContainer,{clientWidth:r}=n,i=parseFloat(n.getAttribute(`data-transform-length`));t.clientWidth=r||this.owner.getHostViewport().width;let o;return o=e==`scroll`?this.getViewportHeight():parseFloat(n.getAttribute(`data-page-height`)),t.clientHeight=this.getViewportHeight(),t.pageHeight=o,t.columnHeight=o,t.columnGap=parseFloat(n.getAttribute(`data-column-gap`)),t.columnWidth=parseFloat(n.getAttribute(`data-column-width`)),t.pageWidth=parseFloat(n.getAttribute(`data-page-width`)),t.pageMoveLength=i,t.shadowWidth=parseFloat(n.getAttribute(`data-shadow-width`)),t}getContentWrapperHeight(){let e=i.getLayoutGeometry(this.htmlOptions);return e.viewport.contentWrapperHeightMode==`auto`?`auto`:e.viewport.contentWrapperHeightMode==`viewport`?`${this.getViewportHeight()}px`:this.owner.inIframe?`100%`:`auto`}getContentsShadowMargin(e){let t=this.htmlOptions.contentsShadowMargin??20,n=this.getContentPaddingFactor(),r=this.device.getDeviceType()==`mobile`?Math.round(t*.6):t;return{marginBlock:r,marginInline:r+Math.min(10,e*n)}}getContentWrapperPadding(e,t){let n=this.getFlipMode(),r=n==`scroll`?30:0,{marginBlock:i,marginInline:a}=this.getContentsShadowMargin(e);n==`page`&&(r+=i);let o=r+`px`,s=n==`scroll`?30:0;n==`page`&&(s+=i);let c=s+`px`;return{contentWrapperPaddingTop:o,contentWrapperPaddingLeft:n==`scroll`?`${a}px`:`0`,contentWrapperPaddingRight:n==`scroll`?`${a}px`:`0`,contentWrapperPaddingBottom:c,contentWrapperPaddingLeftRight:n==`scroll`?`${t}px`:`0`,contentWrapperPaddingTopBottom:`${r+s}px`,contentWrapperPadding:n==`scroll`?`${r}px ${a}px ${s}px ${a}px`:`0px`,contentWrapperPaddingTopNumber:r,contentWrapperPaddingBottomNumber:s}}getContentsContainerWidth(){let{width:e}=this.rendererContainer.getBoundingClientRect(),t=e;if(this.device.getDeviceType()==`mobile`&&t<=768)return t;if(this.getFlipMode()==`scroll`)return this.htmlOptions.enableAutoFitPageWidth?t:this.htmlOptions.maxScrollContentWidth?Math.min(t,Math.abs(this.htmlOptions.maxScrollContentWidth)):Math.min(t,this.htmlOptions.columnWidth);let n=this.htmlOptions.columns,r=this.getColumnWidth();if(this.htmlOptions.autoColumns){if(!this.htmlOptions.maxColumns)return t;n=t<=r?1:this.htmlOptions.maxColumns}let i=this.getMultiColumnWidthFactor();return n>1?Math.min(t,n*r*i):Math.min(t,r)}calculateColumns(e){let t=this.htmlOptions.columns??1,n=this.getColumnWidth();if(this.htmlOptions.autoColumns){if(e<=n)t=1;else{t=Math.floor(e/n);let r=e%n;(r>n/5||r>t*50)&&(t+=1),this.htmlOptions.maxColumns&&t>this.htmlOptions.maxColumns&&(t=this.htmlOptions.maxColumns)}}return t}getFinalColumnWidth(e,t,n){let r=n*(t-1),i=(e-r)/t,a=0,o=Math.round(i);return o!=i&&(i=o,a=e-(t*o+r)),{columnWidth:i,remainder:a}}getContentPaddingFactor(){return this.device.getDeviceType()==`mobile`?.01:.05}getMultiColumnWidthFactor(){let e=this.htmlOptions.multiColumnWidthFactor;return e||=.8,e=Math.abs(e),e<.5&&(e=.5),e>1&&(e=1),e}getViewportHeight(){let e=this.owner.getHostViewport();if(e.mode==`host`){let e=this.rendererContainer.clientHeight;if(e>=80&&e<33554400)return Math.round(e)}return e.height}getFlipMode(){return i.getLayoutGeometry(this.htmlOptions).flipMode}async dispose(){this.updateCssVariablesTimeoutId&&=(clearTimeout(this.updateCssVariablesTimeoutId),null)}};exports.HtmlRendererViewport=l;
|
|
1
|
+
Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("../../../../kernal/html/injector.cjs"),t=require("../../../../kernal/html/realm.cjs"),n=require("../../HtmlSettings.cjs"),r=require("./ViewportCssVariableNames.cjs"),i=require("./resolveLayoutRoute.cjs"),a=require("./HtmlLayoutMetrics.cjs"),o=require("../documents/HtmlContainerBuilder.cjs"),s=require("./applyLayoutClasses.cjs"),c=require("./resolveContentWrapperMinWidth.cjs");var l=class{constructor(t,r,i,a){this.owner=t,this.readerContainer=r,this.getColumnWidth=()=>this.htmlOptions.maxColumnWidth?Math.abs(this.htmlOptions.maxColumnWidth):768,this.options=this.owner.options,this.device=this.owner.device,this.optionsProvider=i,this.htmlOptions=a,this.containerBuilder=new o.HtmlContainerBuilder(a);let{rendererContainer:s,rendererCss:c,otherCss:l}=this.containerBuilder.createContainers();e.injectCssContent(this.readerContainer.ownerDocument,c+l,!0,`html-renderer-style`),this.readerContainer.appendChild(s),this.rendererContainer=s,this.scrollElement=this.rendererContainer,this.contentsShadowContainer=this.rendererContainer.querySelector(`.`+n.HtmlSettings.ContentsShadowContainerCssName),this.rendererContainer.setAttribute(n.HtmlSettings.HostViewportModeAttribute,this.owner.getHostViewport().mode)}getRendererContainer(){return this.rendererContainer}getScrollElement(){let e=this.owner.getHostViewport();return e.mode==`window`?e.scrollElement:this.rendererContainer}getLayoutMetrics(){return this.layout||=(this.internlApplyCssVariables(),this.buildLayoutMetrics()),this.layout}applyCssVariables(){this.internlApplyCssVariables(),this.layout=this.buildLayoutMetrics()}internlApplyCssVariables(){this.owner.refreshHostViewport();let e=i.getLayoutGeometry(this.htmlOptions),t=this.getScrollElement(),n=e.flipMode==`scroll`&&t?{left:t.scrollLeft,top:t.scrollTop}:void 0;this.applyFlowClasses(e),this.syncPageTransformSign(e);let a=this.prepareRendererCssVariables(),o=this.prepareOtherCssVariables(),s=new Map;a.forEach((e,t)=>{s.set(t,e)}),o.forEach((e,t)=>{s.set(t,e)});let c=this.owner.getRootContainer();c.style.setProperty(`direction`,`var(${r.ViewportCssVariableNames.ReaderViewportDirection})`),s.forEach((e,t)=>{c.style.setProperty(t,e)}),n&&t&&t.scrollTo(n.left,n.top)}syncPageTransformSign(e){let r=this.rendererContainer.querySelector(`.`+n.HtmlSettings.TransformContainerCssName);if(!t.isHtmlElement(r))return;if(e.flipMode!=`page`){r.style.removeProperty(`transition`),r.style.removeProperty(`transform`),r.removeAttribute(`data-target-transform`);return}if(r.hasAttribute(n.HtmlSettings.PageMovingAttributeName))return;let i=r.getAttribute(`data-target-transform`);if(i==null||i===``)return;let a=parseFloat(i);Number.isFinite(a)&&(r.style.removeProperty(`transition`),r.style.transform=e.getPageTranslateCss(a))}prepareRendererCssVariables(){let e=i.getLayoutGeometry(this.htmlOptions),t=e.flipMode;this.rendererContainer.setAttribute(n.HtmlSettings.HostViewportModeAttribute,this.owner.getHostViewport().mode);let a=new Map,o=e.viewport.zeroWrapperMargins?0:this.htmlOptions.contentWrapperMarginBottom??10,s=e.viewport.zeroWrapperMargins?0:this.htmlOptions.contentWrapperMarginTop??10,c=e.viewport.zeroWrapperMargins?0:this.htmlOptions.contentWrapperGap??10;a.set(r.ViewportCssVariableNames.ContentWrapperMarginTop,s+`px`),a.set(r.ViewportCssVariableNames.ContentWrapperMarginBottom,o+`px`),a.set(r.ViewportCssVariableNames.ContentWrapperGap,c+`px`);let l=this.htmlOptions.enableContentWrapperBorderRadius&&t==`scroll`?this.htmlOptions.contentWrapperBorderRadius??0:0;a.set(r.ViewportCssVariableNames.ContentWrapperBorderRadius,l+`px`);let u=this.owner.getHostViewport().mode==`window`&&t==`scroll`;return a.set(r.ViewportCssVariableNames.ScrollElementOverflow,u?`visible`:e.overflowY),a.set(r.ViewportCssVariableNames.ScrollElementOverflowX,u?`visible`:e.overflowX),a.set(r.ViewportCssVariableNames.ReaderViewportDirection,e.direction==`ltr`?`unset`:e.direction),a}applyFlowClasses(e){s.applyRootDirectionClass(this.owner.getRootContainer(),e),s.applyRendererLayoutClass(this.rendererContainer,e)}prepareOtherCssVariables(){let e=this.owner.getRootContainer(),t=i.getLayoutGeometry(this.htmlOptions),n=t.flipMode;n==`page`&&this.scrollElement?.scrollTo(0,0);let a=this.htmlOptions.columnGap??40,o=this.contentsShadowContainer,s=this.rendererContainer.clientWidth||this.owner.getHostViewport().width,l=this.getViewportHeight();this.rendererContainer.setAttribute(`data-client-width`,`${s}`),this.rendererContainer.setAttribute(`data-client-height`,`${l}`);let u=this.getContentsContainerWidth(),d=t.viewport.contentsContainerWidthMode==`max-content`?`max-content`:u+`px`,f=this.rendererContainer.offsetWidth-this.rendererContainer.clientWidth,p=this.rendererContainer.offsetHeight-this.rendererContainer.clientHeight,m=new Map;m.set(r.ViewportCssVariableNames.ScrollElementVerticalScrollBarWidth,f+`px`),m.set(r.ViewportCssVariableNames.ScrollElementHorizontalScrollBarHeight,p+`px`),m.set(r.ViewportCssVariableNames.ReaderViewportWidth,s+`px`),m.set(r.ViewportCssVariableNames.ReaderViewportHeight,l+`px`),e.style.setProperty(r.ViewportCssVariableNames.ContentsContainerWidth,d),m.set(r.ViewportCssVariableNames.ContentsContainerWidth,d);let h=0;n==`page`&&(h=0),s-u-2<2*h&&(h=0);let g=``;g=h>0?``+h+`px 0`:`0`,e.style.setProperty(r.ViewportCssVariableNames.ContentsContainerPadding,g),m.set(r.ViewportCssVariableNames.ContentsContainerPadding,g);let _=t.viewport.forceSingleColumn?1:this.calculateColumns(u);t.viewport.forceSingleColumn||(this.htmlOptions.columns=_);let{marginInline:v,marginBlock:y}=this.getContentsShadowMargin(u),{columnWidth:b}=this.getFinalColumnWidth(u-v*2,_,a),x=v,S=y;n==`scroll`&&(x=0,S=0),o.style=n==`scroll`?`margin: ${S}px ${x}px;`:`margin: ${S}px ${x}px;height: ${l-2*y}px;`;let C=o.getBoundingClientRect().width,w=_*b+Math.max(0,_-1)*a,{contentWrapperPaddingBottomNumber:T,contentWrapperPaddingTopNumber:E,contentWrapperPadding:D,contentWrapperPaddingTopBottom:O}=this.getContentWrapperPadding(u,a),k=l-E-T,A=t.getPageMoveLength(w,k,a);this.rendererContainer.setAttribute(`data-transform-length`,A.toString()),this.rendererContainer.setAttribute(`data-shadow-width`,C.toString()),this.rendererContainer.setAttribute(`data-column-width`,b.toString()),this.rendererContainer.setAttribute(`data-column-gap`,a.toString()),this.rendererContainer.setAttribute(`data-page-width`,`${w}`),this.rendererContainer.setAttribute(`data-page-height`,`${k}`),m.set(r.ViewportCssVariableNames.ContentWrapperWidth,t.viewport.contentWrapperWidthMode==`auto`?`auto`:C+`px`),m.set(r.ViewportCssVariableNames.ContentWrapperMinWidth,c.resolveContentWrapperMinWidth(t.viewport.contentWrapperMinWidthMode,{shadowWidth:C,columnWidth:b,columnGap:a,viewportWidth:s})),m.set(r.ViewportCssVariableNames.ContentWrapperHeight,this.getContentWrapperHeight()),m.set(r.ViewportCssVariableNames.ContentWrapperMinHeight,l+`px`),m.set(r.ViewportCssVariableNames.ContentWrapperMaxHeight,t.viewport.contentWrapperMaxHeightMode==`none`?`none`:l+`px`),m.set(r.ViewportCssVariableNames.ContentWrapperPadding,D),t.viewport.contentContainerWidthMode==`auto`?m.set(r.ViewportCssVariableNames.ContentContainerWidth,`auto`):t.viewport.contentContainerWidthMode==`column`?m.set(r.ViewportCssVariableNames.ContentContainerWidth,b+`px`):m.set(r.ViewportCssVariableNames.ContentContainerWidth,`100%`);let j=t.viewport.contentContainerHeightMode==`page`?k+`px`:`calc(var(${r.ViewportCssVariableNames.ContentWrapperHeight}) - ${O})`;return m.set(r.ViewportCssVariableNames.ContentContainerHeight,j),m.set(r.ViewportCssVariableNames.ContentColumnGap,a+`px`),m}buildLayoutMetrics(){let e=this.getFlipMode(),t=new a.HtmlLayoutMetrics,n=this.rendererContainer,{clientWidth:r}=n,i=parseFloat(n.getAttribute(`data-transform-length`));t.clientWidth=r||this.owner.getHostViewport().width;let o;return o=e==`scroll`?this.getViewportHeight():parseFloat(n.getAttribute(`data-page-height`)),t.clientHeight=this.getViewportHeight(),t.pageHeight=o,t.columnHeight=o,t.columnGap=parseFloat(n.getAttribute(`data-column-gap`)),t.columnWidth=parseFloat(n.getAttribute(`data-column-width`)),t.pageWidth=parseFloat(n.getAttribute(`data-page-width`)),t.pageMoveLength=i,t.shadowWidth=parseFloat(n.getAttribute(`data-shadow-width`)),t}getContentWrapperHeight(){let e=i.getLayoutGeometry(this.htmlOptions);return e.viewport.contentWrapperHeightMode==`auto`?`auto`:e.viewport.contentWrapperHeightMode==`viewport`?`${this.getViewportHeight()}px`:this.owner.inIframe?`100%`:`auto`}getContentsShadowMargin(e){let t=this.htmlOptions.contentsShadowMargin??20,n=this.getContentPaddingFactor(),r=this.device.getDeviceType()==`mobile`?Math.round(t*.6):t;return{marginBlock:r,marginInline:r+Math.min(10,e*n)}}getContentWrapperPadding(e,t){let n=this.getFlipMode(),r=n==`scroll`?30:0,{marginBlock:i,marginInline:a}=this.getContentsShadowMargin(e);n==`page`&&(r+=i);let o=r+`px`,s=n==`scroll`?30:0;n==`page`&&(s+=i);let c=s+`px`;return{contentWrapperPaddingTop:o,contentWrapperPaddingLeft:n==`scroll`?`${a}px`:`0`,contentWrapperPaddingRight:n==`scroll`?`${a}px`:`0`,contentWrapperPaddingBottom:c,contentWrapperPaddingLeftRight:n==`scroll`?`${t}px`:`0`,contentWrapperPaddingTopBottom:`${r+s}px`,contentWrapperPadding:n==`scroll`?`${r}px ${a}px ${s}px ${a}px`:`0px`,contentWrapperPaddingTopNumber:r,contentWrapperPaddingBottomNumber:s}}getContentsContainerWidth(){let e=this.rendererContainer.clientWidth||this.owner.getHostViewport().width;if(this.device.getDeviceType()==`mobile`&&e<=768)return e;if(this.getFlipMode()==`scroll`)return this.htmlOptions.enableAutoFitPageWidth?e:this.htmlOptions.maxScrollContentWidth?Math.min(e,Math.abs(this.htmlOptions.maxScrollContentWidth)):Math.min(e,this.htmlOptions.columnWidth);let t=this.htmlOptions.columns,n=this.getColumnWidth();if(this.htmlOptions.autoColumns){if(!this.htmlOptions.maxColumns)return e;t=e<=n?1:this.htmlOptions.maxColumns}let r=this.getMultiColumnWidthFactor();return t>1?Math.min(e,t*n*r):Math.min(e,n)}calculateColumns(e){let t=this.htmlOptions.columns??1,n=this.getColumnWidth();if(this.htmlOptions.autoColumns){if(e<=n)t=1;else{t=Math.floor(e/n);let r=e%n;(r>n/5||r>t*50)&&(t+=1),this.htmlOptions.maxColumns&&t>this.htmlOptions.maxColumns&&(t=this.htmlOptions.maxColumns)}}return t}getFinalColumnWidth(e,t,n){let r=n*(t-1),i=(e-r)/t,a=0,o=Math.round(i);return o!=i&&(i=o,a=e-(t*o+r)),{columnWidth:i,remainder:a}}getContentPaddingFactor(){return this.device.getDeviceType()==`mobile`?.01:.05}getMultiColumnWidthFactor(){let e=this.htmlOptions.multiColumnWidthFactor;return e||=.8,e=Math.abs(e),e<.5&&(e=.5),e>1&&(e=1),e}getViewportHeight(){let e=this.owner.getHostViewport();if(e.mode==`host`){let e=this.rendererContainer.clientHeight;if(e>=80&&e<33554400)return Math.round(e)}return e.height}getFlipMode(){return i.getLayoutGeometry(this.htmlOptions).flipMode}async dispose(){this.updateCssVariablesTimeoutId&&=(clearTimeout(this.updateCssVariablesTimeoutId),null)}};exports.HtmlRendererViewport=l;
|
|
@@ -132,16 +132,16 @@ var u = class {
|
|
|
132
132
|
};
|
|
133
133
|
}
|
|
134
134
|
getContentsContainerWidth() {
|
|
135
|
-
let
|
|
136
|
-
if (this.device.getDeviceType() == "mobile" &&
|
|
137
|
-
if (this.getFlipMode() == "scroll") return this.htmlOptions.enableAutoFitPageWidth ?
|
|
138
|
-
let
|
|
135
|
+
let e = this.rendererContainer.clientWidth || this.owner.getHostViewport().width;
|
|
136
|
+
if (this.device.getDeviceType() == "mobile" && e <= 768) return e;
|
|
137
|
+
if (this.getFlipMode() == "scroll") return this.htmlOptions.enableAutoFitPageWidth ? e : this.htmlOptions.maxScrollContentWidth ? Math.min(e, Math.abs(this.htmlOptions.maxScrollContentWidth)) : Math.min(e, this.htmlOptions.columnWidth);
|
|
138
|
+
let t = this.htmlOptions.columns, n = this.getColumnWidth();
|
|
139
139
|
if (this.htmlOptions.autoColumns) {
|
|
140
|
-
if (!this.htmlOptions.maxColumns) return
|
|
141
|
-
|
|
140
|
+
if (!this.htmlOptions.maxColumns) return e;
|
|
141
|
+
t = e <= n ? 1 : this.htmlOptions.maxColumns;
|
|
142
142
|
}
|
|
143
|
-
let
|
|
144
|
-
return
|
|
143
|
+
let r = this.getMultiColumnWidthFactor();
|
|
144
|
+
return t > 1 ? Math.min(e, t * n * r) : Math.min(e, n);
|
|
145
145
|
}
|
|
146
146
|
calculateColumns(e) {
|
|
147
147
|
let t = this.htmlOptions.columns ?? 1, n = this.getColumnWidth();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("../../../kernal/common/text.cjs"),t=require("../../../kernal/IFileParser.cjs"),n=require("../../../kernal/nav/Nav.cjs"),r=require("../../../kernal/io/IByteSource.cjs"),i=require("../../../kernal/io/BlobByteSource.cjs"),a=require("../../../kernal/io/MemoryByteSource.cjs"),o=require("
|
|
1
|
+
Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("../../../kernal/common/text.cjs"),t=require("../../../kernal/IFileParser.cjs"),n=require("../../../kernal/nav/Nav.cjs"),r=require("../../../kernal/io/IByteSource.cjs"),i=require("../../../kernal/io/BlobByteSource.cjs"),a=require("../../../kernal/io/MemoryByteSource.cjs"),o=require("../../base/fileParser/BaseFileParser.cjs"),s=require("../loadPdfDocument.cjs"),c=require("../ensurePdfWebWorker.cjs"),l=require("./PdfTextDocument.cjs"),u=require("./PdfPasswordProvider.cjs");var d=class extends o.BaseFileParser{constructor(e,t,n,r,i,a,o,s,c,l){super(e,t,n,r,s,c),this.events=i,this.locale=a,this.context=o,this.url=s,this.extension=c,this.options=l,this.ownedSources=[],this.pdfDocs=new Map,this.passwordProvider=new u.PdfPasswordProvider(i,a,o),this.bindDefaultPasswordFlow()}bindDefaultPasswordFlow(){this.options.standardPasswordProvider||(this.options.standardPasswordProvider=this.passwordProvider.getPassword)}async buildLocation(t,r){let i=typeof t==`string`?new n.NavPoint(``,t):t,a=await super.buildLocation(t,r);return(i.startPageNumber??0)>0&&(a.current=i.startPageNumber,a.unit=`page`),e.isNullOrWhiteSpace(i.pdfDest)||(a.pdfDest=i.pdfDest),a}async getCover(e,t){return null}async getTextDocuments(){if(this.textDocuments)return this.textDocuments;this.textDocuments=[];let e=await this.getSpineFiles();for(let t=0;t<e.length;t++){let n=e[t],r=new l.PdfTextDocument(this,n);this.textDocuments.push(r)}return this.textDocuments}async captureInitialSource(e){if(e.data&&e.data.byteLength>0){let t=e.byteSource;e.byteSource=void 0,await t?.close();return}if(e.byteSource){if(e.byteSource instanceof a.MemoryByteSource){e.data=await r.materialize(e.byteSource);let t=e.byteSource;e.byteSource=void 0,await t.close();return}this.sharedSource=e.byteSource,this.ownedSources.push(e.byteSource),e.byteSource=void 0}}trackSource(e){return this.ownedSources.push(e),e}async resolveSpineInput(e){if(e.data instanceof ArrayBuffer&&e.data.byteLength>0)return new Uint8Array(e.data);if(e.data instanceof Blob&&e.data.size>0)return this.trackSource(new i.BlobByteSource(e.data));if(this.sharedSource)return this.sharedSource;if(!e.url)return new Uint8Array;let t=await this.fileUrlParser.parse(e.url,{requireFullFile:!1});if(t.data&&t.data.byteLength>0){let e=t.byteSource;return t.byteSource=void 0,await e?.close(),new Uint8Array(t.data)}if(t.byteSource instanceof a.MemoryByteSource){let e=new Uint8Array(await r.materialize(t.byteSource));return await t.byteSource.close(),e}return t.byteSource?this.trackSource(t.byteSource):new Uint8Array}async getPdfDocument(e){let t=this.pdfDocs.get(e.url);return t&&!t.loadingTask.destroyed?t:(t=await this.internalGetPdfDocumentProxy(e),this.pdfDocs.set(e.url,t),t)}async internalGetPdfDocumentProxy(e){let t;this.options.standardPasswordProvider&&(t=await this.options.standardPasswordProvider(this,e));let n=await this.resolveSpineInput(e);return await s.loadPdfDocument(n,{password:t,cMapUrl:this.options.cMapUrl,standardFontDataUrl:this.options.standardFontDataUrl,wasmUrl:this.options.wasmUrl,iccUrl:this.options.iccUrl,showPasswordPrompt:this.options.showPasswordPrompt,passwordPrompt:this.passwordProvider.onPasswordPrompt,internalUrlBuilder:this.options.internalUrlBuilder,documentInitParametersCallback:this.options.documentInitParametersCallback})}async load(e){let t=await this.parseUrl(this.url,{requireFullFile:!1});await this.initializeDatas(t),e?.measureFilePercentage&&await this.measureFilePercentage(t.spineFiles??[],t.requireCalculateFileSymbolCount)}async parseUrl(e,n){let r=await super.parseUrl(e,n);if(r.spineFiles||=[],!r.isMultiFiles){await this.captureInitialSource(r);let e=new t.SpineFile(r.data,r.mainUrl,this.extension),n=await this.internalGetPdfDocumentProxy(e);r.data=void 0,e.data=void 0;for(let e=0;e<n.numPages;e++){let i=`${e+1}.pdf`,a=new t.SpineFile(null,i,this.extension);r.spineFiles.push(a),this.pdfDocs.set(i,n)}r.nav=await this.initNav(n)}return r}async measureFilePercentage(e,t){if(!e)return;if(!e.find(e=>e.symbolCount==null)){e[0]?.ratio!=null&&this.applyProgressRanges(e);return}let n=0;e.forEach(e=>{(e.symbolCount==null||e.symbolCount<=0)&&(e.symbolCount=1),n+=e.symbolCount}),n<=0&&(n=1),e.forEach(e=>{e.ratio??=e.symbolCount/n}),this.applyProgressRanges(e)}async getNav(){return await super.getNav()||null}async dispose(){await super.dispose();for(let[,e]of this.pdfDocs.entries())try{await e.cleanup(),await c.destroyPdfLoadingTask(e.loadingTask),await e.destroy()}catch{await c.destroyPdfLoadingTask(e.loadingTask)}this.pdfDocs.clear(),this.sharedSource=void 0;let e=this.ownedSources.splice(0);for(let t of e)try{await t.close()}catch{}if(this.textDocuments){for(let e of this.textDocuments)await e.dispose();this.textDocuments.splice(0)}}async initNav(e){let t=new n.Nav;if(!e)return t;let r=await e.getOutline();if(r==null||r.length==0)return t;for(let n=0;n<r.length;n++){let i=r[n],a=await this.getPageNumber(e,i.dest),o=await this.formatPdfDest(e,i.dest),s=await this.getNavPoint(e,i.title,a,o,i.items);t.navPoints.push(s)}return t}async getNavPoint(e,t,r,i,a){t=t?.trim().replace(/[\x00-\x1f]/gi,``);let o=r.toString()+`.pdf`,s=new n.NavPoint(t,o,r,i);if(a!=null&&a.length>0)for(let t=0;t<a.length;t++){let n=await this.getPageNumber(e,a[t].dest),r=await this.formatPdfDest(e,a[t].dest),i=await this.getNavPoint(e,a[t].title,n,r,a[t].items);s.children.push(i)}return s}async formatPdfDest(e,t){let n;return n=typeof t==`string`?await e.getDestination(t):t,JSON.stringify(n)}async getPageNumber(e,t){let n,r=0;try{if(n=typeof t==`string`?await e.getDestination(t):t,Array.isArray(n)){let[t]=n;typeof t==`object`&&t?r=await e.getPageIndex(t)+1:Number.isInteger(t)&&(r=t+1)}}catch{}return r}};exports.PdfFileParser=d;
|
|
@@ -4,13 +4,13 @@ import { Nav as n, NavPoint as r } from "../../../kernal/nav/Nav.mjs";
|
|
|
4
4
|
import { materialize as i } from "../../../kernal/io/IByteSource.mjs";
|
|
5
5
|
import { BlobByteSource as a } from "../../../kernal/io/BlobByteSource.mjs";
|
|
6
6
|
import { MemoryByteSource as o } from "../../../kernal/io/MemoryByteSource.mjs";
|
|
7
|
-
import {
|
|
8
|
-
import {
|
|
9
|
-
import {
|
|
7
|
+
import { BaseFileParser as s } from "../../base/fileParser/BaseFileParser.mjs";
|
|
8
|
+
import { loadPdfDocument as c } from "../loadPdfDocument.mjs";
|
|
9
|
+
import { destroyPdfLoadingTask as l } from "../ensurePdfWebWorker.mjs";
|
|
10
10
|
import { PdfTextDocument as u } from "./PdfTextDocument.mjs";
|
|
11
11
|
import { PdfPasswordProvider as d } from "./PdfPasswordProvider.mjs";
|
|
12
12
|
//#region mediaTypes/pdf/fileParser/PdfFileParser.ts
|
|
13
|
-
var f = class extends
|
|
13
|
+
var f = class extends s {
|
|
14
14
|
constructor(e, t, n, r, i, a, o, s, c, l) {
|
|
15
15
|
super(e, t, n, r, s, c), this.events = i, this.locale = a, this.context = o, this.url = s, this.extension = c, this.options = l, this.ownedSources = [], this.pdfDocs = /* @__PURE__ */ new Map(), this.passwordProvider = new d(i, a, o), this.bindDefaultPasswordFlow();
|
|
16
16
|
}
|
|
@@ -77,7 +77,7 @@ var f = class extends l {
|
|
|
77
77
|
let t;
|
|
78
78
|
this.options.standardPasswordProvider && (t = await this.options.standardPasswordProvider(this, e));
|
|
79
79
|
let n = await this.resolveSpineInput(e);
|
|
80
|
-
return await
|
|
80
|
+
return await c(n, {
|
|
81
81
|
password: t,
|
|
82
82
|
cMapUrl: this.options.cMapUrl,
|
|
83
83
|
standardFontDataUrl: this.options.standardFontDataUrl,
|
|
@@ -126,9 +126,9 @@ var f = class extends l {
|
|
|
126
126
|
async dispose() {
|
|
127
127
|
await super.dispose();
|
|
128
128
|
for (let [, e] of this.pdfDocs.entries()) try {
|
|
129
|
-
await e.cleanup(), await
|
|
129
|
+
await e.cleanup(), await l(e.loadingTask), await e.destroy();
|
|
130
130
|
} catch {
|
|
131
|
-
await
|
|
131
|
+
await l(e.loadingTask);
|
|
132
132
|
}
|
|
133
133
|
this.pdfDocs.clear(), this.sharedSource = void 0;
|
|
134
134
|
let e = this.ownedSources.splice(0);
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@foxycape/core",
|
|
3
|
-
"version": "1.2.
|
|
3
|
+
"version": "1.2.3",
|
|
4
4
|
"description": "Browser-side multi-format reader kernel with pluggable parsers, renderers, services, and plugins.",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"type": "module",
|
|
@@ -78,8 +78,6 @@
|
|
|
78
78
|
],
|
|
79
79
|
"dependencies": {
|
|
80
80
|
"events": "^3.3.0",
|
|
81
|
-
"highlight.js": "^11.12.0",
|
|
82
|
-
"hotkeys-js": "^4.0.4",
|
|
83
81
|
"js-base64": "^3.9.2",
|
|
84
82
|
"js-logger": "^1.6.1",
|
|
85
83
|
"perfect-debounce": "^2.1.0",
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("../../../_virtual/_rolldown/runtime.cjs"),t=require("../../EventNames.cjs"),n=require("../PluginCore.cjs");let r=require("hotkeys-js");r=e.__toESM(r,1);let i=require("perfect-debounce");var a=`left,up,pageup`,o=`right,down,pagedown`,s=class extends n.PluginCore{constructor(e,t){super(e,t),this.bindedFlipPageElements=[],this.bindedDocuments=[],this.heldKeys={},this.currentPauseFlipPageOnPressKey=!1,this.documentKeydownHandlers=new Map,this.documentKeyupHandlers=new Map,this.onDocumentLoad=async e=>{await this.bindDocument(e)},this.onPressPreviousKey=(e,t)=>{if(this.pluginOptions.flipMode==`page`){if(this.heldKeys[e.keyCode]>1)return;this.currentPauseFlipPageOnPressKey||(e.preventDefault(),e.stopImmediatePropagation(),this.reader.context.setUserChangedProgress(!0,`keyboard`),this.delayGotoPreviousPage(this.reader.getRenderer()))}else this.reader.context.setUserChangedProgress(!0,`keyboard`)},this.onPressNextKey=(e,t)=>{if(this.pluginOptions.flipMode==`page`){if(this.heldKeys[e.keyCode]>1)return;this.currentPauseFlipPageOnPressKey||(e.preventDefault(),e.stopImmediatePropagation(),this.reader.context.setUserChangedProgress(!0,`keyboard`),this.delayGotoNextPage(this.reader.getRenderer()))}else this.reader.context.setUserChangedProgress(!0,`keyboard`)},this.delayGotoPreviousPage=(0,i.debounce)(async e=>{if(e?.pagingNavigator){await e.pagingNavigator.gotoPreviousPage({trigger:`user`,triggerType:`keyboard`});return}await e?.gotoPreviousPage?.({trigger:`user`,triggerType:`keyboard`})},64),this.delayGotoNextPage=(0,i.debounce)(async e=>{if(e?.pagingNavigator){await e.pagingNavigator.gotoNextPage({trigger:`user`,triggerType:`keyboard`});return}await e?.gotoNextPage?.({trigger:`user`,triggerType:`keyboard`})},64),this.pluginOptions={flipMode:t?.flipMode??`page`,flipPagePreviousKeys:t?.flipPagePreviousKeys??a,flipPageNextKeys:t?.flipPageNextKeys??o}}get name(){return`keyboard-page-turning`}get title(){return`Keyboard Page Turning`}get description(){return`Keyboard page flip navigation`}get version(){return`1.0.0`}get supportedVersion(){return`>=1.0.0`}get supportedExtensions(){return[`.xml`,`.xhtml`,`.html`,`.epub`,`.mobi`,`.azw3`,`.fb2`,`.txt`,`.md`]}get supportedLanguages(){return[`*`]}get isUIPlugin(){return!1}getContainer(){}set pauseFlipPageOnPressKey(e){this.currentPauseFlipPageOnPressKey=e}get pauseFlipPageOnPressKey(){return this.currentPauseFlipPageOnPressKey}async load(){let e=this.reader.getReaderContainer();e&&(await this.bindFlipPageKeys(e.ownerDocument.documentElement),e.ownerDocument!==document&&await this.bindFlipPageKeys(document.documentElement));let n=this.reader.getRenderer()?.getLoadedDocuments?.()??this.reader.getRenderer()?.getDocuments?.()??[];for(let e of n)await this.bindDocument(e);this.reader.events.on(t.EventNames.DocumentLoad,this.onDocumentLoad)}async dispose(){this.reader.events.off(t.EventNames.DocumentLoad,this.onDocumentLoad);let e=this.pluginOptions.flipPagePreviousKeys,n=this.pluginOptions.flipPageNextKeys;this.bindedFlipPageElements.length>0&&(e&&r.default.unbind(e,`all`,this.onPressPreviousKey),n&&r.default.unbind(n,`all`,this.onPressNextKey));for(let e of this.bindedDocuments){let t=this.documentKeydownHandlers.get(e),n=this.documentKeyupHandlers.get(e);t&&e.removeEventListener(`keydown`,t,!0),n&&e.removeEventListener(`keyup`,n,!0)}this.documentKeydownHandlers.clear(),this.documentKeyupHandlers.clear(),this.bindedFlipPageElements=[],this.bindedDocuments=[],this.heldKeys={},this.currentPauseFlipPageOnPressKey=!1}async bindDocument(e){let t=e.getContentContainer()?.ownerDocument?.documentElement;t&&await this.bindFlipPageKeys(t)}async bindFlipPageKeys(e){if(this.bindedFlipPageElements.includes(e))return;let t=this.pluginOptions.flipPagePreviousKeys,n=this.pluginOptions.flipPageNextKeys;t&&(0,r.default)(t,{element:e,scope:`all`},this.onPressPreviousKey),n&&(0,r.default)(n,{element:e,scope:`all`},this.onPressNextKey);let i=e.ownerDocument;if(!this.bindedDocuments.includes(i)){this.bindedDocuments.push(i);let e=e=>{this.heldKeys[e.keyCode]=(this.heldKeys[e.keyCode]??0)+1},t=e=>{this.heldKeys[e.keyCode]=0};this.documentKeydownHandlers.set(i,e),this.documentKeyupHandlers.set(i,t),i.addEventListener(`keydown`,e,!0),i.addEventListener(`keyup`,t,!0)}this.bindedFlipPageElements.push(e)}};exports.KeyboardPageTurning=s;
|
|
@@ -1,39 +0,0 @@
|
|
|
1
|
-
import { PluginCore } from '../PluginCore';
|
|
2
|
-
import { Reader } from '../../Reader';
|
|
3
|
-
import { FlipMode } from '../../types';
|
|
4
|
-
|
|
5
|
-
export type KeyboardPageTurningOptions = {
|
|
6
|
-
flipPagePreviousKeys?: string;
|
|
7
|
-
flipPageNextKeys?: string;
|
|
8
|
-
flipMode?: FlipMode;
|
|
9
|
-
};
|
|
10
|
-
export declare class KeyboardPageTurning extends PluginCore {
|
|
11
|
-
private readonly pluginOptions;
|
|
12
|
-
private bindedFlipPageElements;
|
|
13
|
-
private bindedDocuments;
|
|
14
|
-
private heldKeys;
|
|
15
|
-
private currentPauseFlipPageOnPressKey;
|
|
16
|
-
private readonly documentKeydownHandlers;
|
|
17
|
-
private readonly documentKeyupHandlers;
|
|
18
|
-
constructor(reader: Reader, options?: KeyboardPageTurningOptions);
|
|
19
|
-
get name(): string;
|
|
20
|
-
get title(): string;
|
|
21
|
-
get description(): string;
|
|
22
|
-
get version(): string;
|
|
23
|
-
get supportedVersion(): string;
|
|
24
|
-
get supportedExtensions(): string[];
|
|
25
|
-
get supportedLanguages(): string[];
|
|
26
|
-
get isUIPlugin(): boolean;
|
|
27
|
-
getContainer(): HTMLElement | undefined;
|
|
28
|
-
set pauseFlipPageOnPressKey(value: boolean);
|
|
29
|
-
get pauseFlipPageOnPressKey(): boolean;
|
|
30
|
-
load(): Promise<void>;
|
|
31
|
-
dispose(): Promise<void>;
|
|
32
|
-
private onDocumentLoad;
|
|
33
|
-
private bindDocument;
|
|
34
|
-
private bindFlipPageKeys;
|
|
35
|
-
private onPressPreviousKey;
|
|
36
|
-
private onPressNextKey;
|
|
37
|
-
private delayGotoPreviousPage;
|
|
38
|
-
private delayGotoNextPage;
|
|
39
|
-
}
|
|
@@ -1,136 +0,0 @@
|
|
|
1
|
-
import { EventNames as e } from "../../EventNames.mjs";
|
|
2
|
-
import { PluginCore as t } from "../PluginCore.mjs";
|
|
3
|
-
import { asyncDebounce as n } from "../../web/debounce.mjs";
|
|
4
|
-
import r from "hotkeys-js";
|
|
5
|
-
//#region kernal/plugins/keyboard/KeyboardPageTurning.ts
|
|
6
|
-
var i = "left,up,pageup", a = "right,down,pagedown", o = class extends t {
|
|
7
|
-
constructor(e, t) {
|
|
8
|
-
super(e, t), this.bindedFlipPageElements = [], this.bindedDocuments = [], this.heldKeys = {}, this.currentPauseFlipPageOnPressKey = !1, this.documentKeydownHandlers = /* @__PURE__ */ new Map(), this.documentKeyupHandlers = /* @__PURE__ */ new Map(), this.onDocumentLoad = async (e) => {
|
|
9
|
-
await this.bindDocument(e);
|
|
10
|
-
}, this.onPressPreviousKey = (e, t) => {
|
|
11
|
-
if (this.pluginOptions.flipMode == "page") {
|
|
12
|
-
if (this.heldKeys[e.keyCode] > 1) return;
|
|
13
|
-
this.currentPauseFlipPageOnPressKey || (e.preventDefault(), e.stopImmediatePropagation(), this.reader.context.setUserChangedProgress(!0, "keyboard"), this.delayGotoPreviousPage(this.reader.getRenderer()));
|
|
14
|
-
} else this.reader.context.setUserChangedProgress(!0, "keyboard");
|
|
15
|
-
}, this.onPressNextKey = (e, t) => {
|
|
16
|
-
if (this.pluginOptions.flipMode == "page") {
|
|
17
|
-
if (this.heldKeys[e.keyCode] > 1) return;
|
|
18
|
-
this.currentPauseFlipPageOnPressKey || (e.preventDefault(), e.stopImmediatePropagation(), this.reader.context.setUserChangedProgress(!0, "keyboard"), this.delayGotoNextPage(this.reader.getRenderer()));
|
|
19
|
-
} else this.reader.context.setUserChangedProgress(!0, "keyboard");
|
|
20
|
-
}, this.delayGotoPreviousPage = n(async (e) => {
|
|
21
|
-
if (e?.pagingNavigator) {
|
|
22
|
-
await e.pagingNavigator.gotoPreviousPage({
|
|
23
|
-
trigger: "user",
|
|
24
|
-
triggerType: "keyboard"
|
|
25
|
-
});
|
|
26
|
-
return;
|
|
27
|
-
}
|
|
28
|
-
await e?.gotoPreviousPage?.({
|
|
29
|
-
trigger: "user",
|
|
30
|
-
triggerType: "keyboard"
|
|
31
|
-
});
|
|
32
|
-
}, 64), this.delayGotoNextPage = n(async (e) => {
|
|
33
|
-
if (e?.pagingNavigator) {
|
|
34
|
-
await e.pagingNavigator.gotoNextPage({
|
|
35
|
-
trigger: "user",
|
|
36
|
-
triggerType: "keyboard"
|
|
37
|
-
});
|
|
38
|
-
return;
|
|
39
|
-
}
|
|
40
|
-
await e?.gotoNextPage?.({
|
|
41
|
-
trigger: "user",
|
|
42
|
-
triggerType: "keyboard"
|
|
43
|
-
});
|
|
44
|
-
}, 64), this.pluginOptions = {
|
|
45
|
-
flipMode: t?.flipMode ?? "page",
|
|
46
|
-
flipPagePreviousKeys: t?.flipPagePreviousKeys ?? i,
|
|
47
|
-
flipPageNextKeys: t?.flipPageNextKeys ?? a
|
|
48
|
-
};
|
|
49
|
-
}
|
|
50
|
-
get name() {
|
|
51
|
-
return "keyboard-page-turning";
|
|
52
|
-
}
|
|
53
|
-
get title() {
|
|
54
|
-
return "Keyboard Page Turning";
|
|
55
|
-
}
|
|
56
|
-
get description() {
|
|
57
|
-
return "Keyboard page flip navigation";
|
|
58
|
-
}
|
|
59
|
-
get version() {
|
|
60
|
-
return "1.0.0";
|
|
61
|
-
}
|
|
62
|
-
get supportedVersion() {
|
|
63
|
-
return ">=1.0.0";
|
|
64
|
-
}
|
|
65
|
-
get supportedExtensions() {
|
|
66
|
-
return [
|
|
67
|
-
".xml",
|
|
68
|
-
".xhtml",
|
|
69
|
-
".html",
|
|
70
|
-
".epub",
|
|
71
|
-
".mobi",
|
|
72
|
-
".azw3",
|
|
73
|
-
".fb2",
|
|
74
|
-
".txt",
|
|
75
|
-
".md"
|
|
76
|
-
];
|
|
77
|
-
}
|
|
78
|
-
get supportedLanguages() {
|
|
79
|
-
return ["*"];
|
|
80
|
-
}
|
|
81
|
-
get isUIPlugin() {
|
|
82
|
-
return !1;
|
|
83
|
-
}
|
|
84
|
-
getContainer() {}
|
|
85
|
-
set pauseFlipPageOnPressKey(e) {
|
|
86
|
-
this.currentPauseFlipPageOnPressKey = e;
|
|
87
|
-
}
|
|
88
|
-
get pauseFlipPageOnPressKey() {
|
|
89
|
-
return this.currentPauseFlipPageOnPressKey;
|
|
90
|
-
}
|
|
91
|
-
async load() {
|
|
92
|
-
let t = this.reader.getReaderContainer();
|
|
93
|
-
t && (await this.bindFlipPageKeys(t.ownerDocument.documentElement), t.ownerDocument !== document && await this.bindFlipPageKeys(document.documentElement));
|
|
94
|
-
let n = this.reader.getRenderer()?.getLoadedDocuments?.() ?? this.reader.getRenderer()?.getDocuments?.() ?? [];
|
|
95
|
-
for (let e of n) await this.bindDocument(e);
|
|
96
|
-
this.reader.events.on(e.DocumentLoad, this.onDocumentLoad);
|
|
97
|
-
}
|
|
98
|
-
async dispose() {
|
|
99
|
-
this.reader.events.off(e.DocumentLoad, this.onDocumentLoad);
|
|
100
|
-
let t = this.pluginOptions.flipPagePreviousKeys, n = this.pluginOptions.flipPageNextKeys;
|
|
101
|
-
this.bindedFlipPageElements.length > 0 && (t && r.unbind(t, "all", this.onPressPreviousKey), n && r.unbind(n, "all", this.onPressNextKey));
|
|
102
|
-
for (let e of this.bindedDocuments) {
|
|
103
|
-
let t = this.documentKeydownHandlers.get(e), n = this.documentKeyupHandlers.get(e);
|
|
104
|
-
t && e.removeEventListener("keydown", t, !0), n && e.removeEventListener("keyup", n, !0);
|
|
105
|
-
}
|
|
106
|
-
this.documentKeydownHandlers.clear(), this.documentKeyupHandlers.clear(), this.bindedFlipPageElements = [], this.bindedDocuments = [], this.heldKeys = {}, this.currentPauseFlipPageOnPressKey = !1;
|
|
107
|
-
}
|
|
108
|
-
async bindDocument(e) {
|
|
109
|
-
let t = e.getContentContainer()?.ownerDocument?.documentElement;
|
|
110
|
-
t && await this.bindFlipPageKeys(t);
|
|
111
|
-
}
|
|
112
|
-
async bindFlipPageKeys(e) {
|
|
113
|
-
if (this.bindedFlipPageElements.includes(e)) return;
|
|
114
|
-
let t = this.pluginOptions.flipPagePreviousKeys, n = this.pluginOptions.flipPageNextKeys;
|
|
115
|
-
t && r(t, {
|
|
116
|
-
element: e,
|
|
117
|
-
scope: "all"
|
|
118
|
-
}, this.onPressPreviousKey), n && r(n, {
|
|
119
|
-
element: e,
|
|
120
|
-
scope: "all"
|
|
121
|
-
}, this.onPressNextKey);
|
|
122
|
-
let i = e.ownerDocument;
|
|
123
|
-
if (!this.bindedDocuments.includes(i)) {
|
|
124
|
-
this.bindedDocuments.push(i);
|
|
125
|
-
let e = (e) => {
|
|
126
|
-
this.heldKeys[e.keyCode] = (this.heldKeys[e.keyCode] ?? 0) + 1;
|
|
127
|
-
}, t = (e) => {
|
|
128
|
-
this.heldKeys[e.keyCode] = 0;
|
|
129
|
-
};
|
|
130
|
-
this.documentKeydownHandlers.set(i, e), this.documentKeyupHandlers.set(i, t), i.addEventListener("keydown", e, !0), i.addEventListener("keyup", t, !0);
|
|
131
|
-
}
|
|
132
|
-
this.bindedFlipPageElements.push(e);
|
|
133
|
-
}
|
|
134
|
-
};
|
|
135
|
-
//#endregion
|
|
136
|
-
export { o as KeyboardPageTurning };
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("../../../../kernal/html/finder.cjs"),t=require("../../../../kernal/html/injector.cjs"),n=require("../../../../kernal/Theme.cjs"),r=require("../../../../kernal/html/image.cjs"),i=require("./ContentLayoutCssVariableNames.cjs");var a=`no-text-intent`,o=class{constructor(r){this.documentsProvider=r,this.languagesHighlightCssId=`languages-highlight-css`,this.highlightedDocuments=new Map,this.injectCss=async(n,r)=>{if(!e.getDocumentBody(r))return;let i=await this.getHighlightCss(n);t.injectCssContent(r,i,!0,this.languagesHighlightCssId)},this.getHighlightJs=async()=>{if(this.loadedHljs)return this.loadedHljs;let{default:e}=await import(`highlight.js`);return this.loadedHljs=e,this.loadedHljs},this.getHighlightCss=async e=>{if(e.colorMode===`dark`){let{default:e}=await Promise.resolve().then(()=>require("../../../../node_modules/highlight.js/styles/github-dark.cjs"));return e.toString()}let{default:t}=await Promise.resolve().then(()=>require("../../../../node_modules/highlight.js/styles/github.cjs"));return t.toString()},this.resolveCurrentTheme=async()=>(await this.documentsProvider.owner.services.get(`themeProvider`))?.getCurrentTheme()??new n.Theme}async dispose(){this.highlightedDocuments.clear(),this.loadedHljs=void 0}async applyTheme(e){let n=this.documentsProvider.getLoadedDocuments();for(let r of n){let n=r.getContentContainer()?.ownerDocument;n&&(e.colorMode===`dark`||this.highlightedDocuments.get(r)?await this.injectCss(e,n):t.removeElement(n,this.languagesHighlightCssId))}}async highlight(e){let t=(await e.getVirtualContentContainer())?.ownerDocument;if(!t)return;let n=t.getElementsByTagName(`pre`);for(let e=0;e<n.length;e++){let t=n[e];t.classList.add(a),t.style.setProperty(`max-height`,`var(${i.ContentLayoutCssVariableNames.ColumnMaxHeight})`,`important`),t.firstElementChild&&t.firstElementChild.classList.add(a)}let o=r.getRequireHighlightCodeElements(t),s=o.length>0;if(this.highlightedDocuments.set(e,s),!s)return;let c=await this.getHighlightJs(),l=await this.resolveCurrentTheme();await this.injectCss(l,t);for(let e of o)c.highlightElement(e)}};exports.LanguageHighlighter=o;
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
import { IDocument, IDocumentsProvider, Theme } from '../../../../kernal';
|
|
2
|
-
import { IHtmlDocument } from '../IHtmlDocument';
|
|
3
|
-
import { ILanguageHighlighter } from './ILanguageHighlighter';
|
|
4
|
-
|
|
5
|
-
export declare class LanguageHighlighter implements ILanguageHighlighter {
|
|
6
|
-
private readonly documentsProvider;
|
|
7
|
-
private readonly languagesHighlightCssId;
|
|
8
|
-
private readonly highlightedDocuments;
|
|
9
|
-
private loadedHljs?;
|
|
10
|
-
constructor(documentsProvider: IDocumentsProvider<IHtmlDocument>);
|
|
11
|
-
dispose(): Promise<void>;
|
|
12
|
-
applyTheme(theme: Theme): Promise<void>;
|
|
13
|
-
highlight(doc: IDocument): Promise<void>;
|
|
14
|
-
private injectCss;
|
|
15
|
-
private getHighlightJs;
|
|
16
|
-
private getHighlightCss;
|
|
17
|
-
private resolveCurrentTheme;
|
|
18
|
-
}
|
|
@@ -1,52 +0,0 @@
|
|
|
1
|
-
import { getDocumentBody as e } from "../../../../kernal/html/finder.mjs";
|
|
2
|
-
import { injectCssContent as t, removeElement as n } from "../../../../kernal/html/injector.mjs";
|
|
3
|
-
import { Theme as r } from "../../../../kernal/Theme.mjs";
|
|
4
|
-
import { getRequireHighlightCodeElements as i } from "../../../../kernal/html/image.mjs";
|
|
5
|
-
import { ContentLayoutCssVariableNames as a } from "./ContentLayoutCssVariableNames.mjs";
|
|
6
|
-
//#region mediaTypes/html/renderer/style/LanguageHighlighter.ts
|
|
7
|
-
var o = "no-text-intent", s = class {
|
|
8
|
-
constructor(n) {
|
|
9
|
-
this.documentsProvider = n, this.languagesHighlightCssId = "languages-highlight-css", this.highlightedDocuments = /* @__PURE__ */ new Map(), this.injectCss = async (n, r) => {
|
|
10
|
-
if (!e(r)) return;
|
|
11
|
-
let i = await this.getHighlightCss(n);
|
|
12
|
-
t(r, i, !0, this.languagesHighlightCssId);
|
|
13
|
-
}, this.getHighlightJs = async () => {
|
|
14
|
-
if (this.loadedHljs) return this.loadedHljs;
|
|
15
|
-
let { default: e } = await import("highlight.js");
|
|
16
|
-
return this.loadedHljs = e, this.loadedHljs;
|
|
17
|
-
}, this.getHighlightCss = async (e) => {
|
|
18
|
-
if (e.colorMode === "dark") {
|
|
19
|
-
let { default: e } = await import("../../../../node_modules/highlight.js/styles/github-dark.mjs");
|
|
20
|
-
return e.toString();
|
|
21
|
-
}
|
|
22
|
-
let { default: t } = await import("../../../../node_modules/highlight.js/styles/github.mjs");
|
|
23
|
-
return t.toString();
|
|
24
|
-
}, this.resolveCurrentTheme = async () => (await this.documentsProvider.owner.services.get("themeProvider"))?.getCurrentTheme() ?? new r();
|
|
25
|
-
}
|
|
26
|
-
async dispose() {
|
|
27
|
-
this.highlightedDocuments.clear(), this.loadedHljs = void 0;
|
|
28
|
-
}
|
|
29
|
-
async applyTheme(e) {
|
|
30
|
-
let t = this.documentsProvider.getLoadedDocuments();
|
|
31
|
-
for (let r of t) {
|
|
32
|
-
let t = r.getContentContainer()?.ownerDocument;
|
|
33
|
-
t && (e.colorMode === "dark" || this.highlightedDocuments.get(r) ? await this.injectCss(e, t) : n(t, this.languagesHighlightCssId));
|
|
34
|
-
}
|
|
35
|
-
}
|
|
36
|
-
async highlight(e) {
|
|
37
|
-
let t = (await e.getVirtualContentContainer())?.ownerDocument;
|
|
38
|
-
if (!t) return;
|
|
39
|
-
let n = t.getElementsByTagName("pre");
|
|
40
|
-
for (let e = 0; e < n.length; e++) {
|
|
41
|
-
let t = n[e];
|
|
42
|
-
t.classList.add(o), t.style.setProperty("max-height", `var(${a.ColumnMaxHeight})`, "important"), t.firstElementChild && t.firstElementChild.classList.add(o);
|
|
43
|
-
}
|
|
44
|
-
let r = i(t), s = r.length > 0;
|
|
45
|
-
if (this.highlightedDocuments.set(e, s), !s) return;
|
|
46
|
-
let c = await this.getHighlightJs(), l = await this.resolveCurrentTheme();
|
|
47
|
-
await this.injectCss(l, t);
|
|
48
|
-
for (let e of r) c.highlightElement(e);
|
|
49
|
-
}
|
|
50
|
-
};
|
|
51
|
-
//#endregion
|
|
52
|
-
export { s as LanguageHighlighter };
|
|
@@ -1,118 +0,0 @@
|
|
|
1
|
-
var e=`pre code.hljs {
|
|
2
|
-
display: block;
|
|
3
|
-
overflow-x: auto;
|
|
4
|
-
padding: 1em
|
|
5
|
-
}
|
|
6
|
-
code.hljs {
|
|
7
|
-
padding: 3px 5px
|
|
8
|
-
}
|
|
9
|
-
/*!
|
|
10
|
-
Theme: GitHub Dark
|
|
11
|
-
Description: Dark theme as seen on github.com
|
|
12
|
-
Author: github.com
|
|
13
|
-
Maintainer: @Hirse
|
|
14
|
-
Updated: 2021-05-15
|
|
15
|
-
|
|
16
|
-
Outdated base version: https://github.com/primer/github-syntax-dark
|
|
17
|
-
Current colors taken from GitHub's CSS
|
|
18
|
-
*/
|
|
19
|
-
.hljs {
|
|
20
|
-
color: #c9d1d9;
|
|
21
|
-
background: #0d1117
|
|
22
|
-
}
|
|
23
|
-
.hljs-doctag,
|
|
24
|
-
.hljs-keyword,
|
|
25
|
-
.hljs-meta .hljs-keyword,
|
|
26
|
-
.hljs-template-tag,
|
|
27
|
-
.hljs-template-variable,
|
|
28
|
-
.hljs-type,
|
|
29
|
-
.hljs-variable.language_ {
|
|
30
|
-
/* prettylights-syntax-keyword */
|
|
31
|
-
color: #ff7b72
|
|
32
|
-
}
|
|
33
|
-
.hljs-title,
|
|
34
|
-
.hljs-title.class_,
|
|
35
|
-
.hljs-title.class_.inherited__,
|
|
36
|
-
.hljs-title.function_ {
|
|
37
|
-
/* prettylights-syntax-entity */
|
|
38
|
-
color: #d2a8ff
|
|
39
|
-
}
|
|
40
|
-
.hljs-attr,
|
|
41
|
-
.hljs-attribute,
|
|
42
|
-
.hljs-literal,
|
|
43
|
-
.hljs-meta,
|
|
44
|
-
.hljs-number,
|
|
45
|
-
.hljs-operator,
|
|
46
|
-
.hljs-variable,
|
|
47
|
-
.hljs-selector-attr,
|
|
48
|
-
.hljs-selector-class,
|
|
49
|
-
.hljs-selector-id {
|
|
50
|
-
/* prettylights-syntax-constant */
|
|
51
|
-
color: #79c0ff
|
|
52
|
-
}
|
|
53
|
-
.hljs-regexp,
|
|
54
|
-
.hljs-string,
|
|
55
|
-
.hljs-meta .hljs-string {
|
|
56
|
-
/* prettylights-syntax-string */
|
|
57
|
-
color: #a5d6ff
|
|
58
|
-
}
|
|
59
|
-
.hljs-built_in,
|
|
60
|
-
.hljs-symbol {
|
|
61
|
-
/* prettylights-syntax-variable */
|
|
62
|
-
color: #ffa657
|
|
63
|
-
}
|
|
64
|
-
.hljs-comment,
|
|
65
|
-
.hljs-code,
|
|
66
|
-
.hljs-formula {
|
|
67
|
-
/* prettylights-syntax-comment */
|
|
68
|
-
color: #8b949e
|
|
69
|
-
}
|
|
70
|
-
.hljs-name,
|
|
71
|
-
.hljs-quote,
|
|
72
|
-
.hljs-selector-tag,
|
|
73
|
-
.hljs-selector-pseudo {
|
|
74
|
-
/* prettylights-syntax-entity-tag */
|
|
75
|
-
color: #7ee787
|
|
76
|
-
}
|
|
77
|
-
.hljs-subst {
|
|
78
|
-
/* prettylights-syntax-storage-modifier-import */
|
|
79
|
-
color: #c9d1d9
|
|
80
|
-
}
|
|
81
|
-
.hljs-section {
|
|
82
|
-
/* prettylights-syntax-markup-heading */
|
|
83
|
-
color: #1f6feb;
|
|
84
|
-
font-weight: bold
|
|
85
|
-
}
|
|
86
|
-
.hljs-bullet {
|
|
87
|
-
/* prettylights-syntax-markup-list */
|
|
88
|
-
color: #f2cc60
|
|
89
|
-
}
|
|
90
|
-
.hljs-emphasis {
|
|
91
|
-
/* prettylights-syntax-markup-italic */
|
|
92
|
-
color: #c9d1d9;
|
|
93
|
-
font-style: italic
|
|
94
|
-
}
|
|
95
|
-
.hljs-strong {
|
|
96
|
-
/* prettylights-syntax-markup-bold */
|
|
97
|
-
color: #c9d1d9;
|
|
98
|
-
font-weight: bold
|
|
99
|
-
}
|
|
100
|
-
.hljs-addition {
|
|
101
|
-
/* prettylights-syntax-markup-inserted */
|
|
102
|
-
color: #aff5b4;
|
|
103
|
-
background-color: #033a16
|
|
104
|
-
}
|
|
105
|
-
.hljs-deletion {
|
|
106
|
-
/* prettylights-syntax-markup-deleted */
|
|
107
|
-
color: #ffdcd7;
|
|
108
|
-
background-color: #67060c
|
|
109
|
-
}
|
|
110
|
-
.hljs-char.escape_,
|
|
111
|
-
.hljs-link,
|
|
112
|
-
.hljs-params,
|
|
113
|
-
.hljs-property,
|
|
114
|
-
.hljs-punctuation,
|
|
115
|
-
.hljs-tag {
|
|
116
|
-
/* purposely ignored */
|
|
117
|
-
|
|
118
|
-
}`;exports.default=e;
|
|
@@ -1,4 +0,0 @@
|
|
|
1
|
-
//#region node_modules/highlight.js/styles/github-dark.css?raw
|
|
2
|
-
var e = "pre code.hljs {\n display: block;\n overflow-x: auto;\n padding: 1em\n}\ncode.hljs {\n padding: 3px 5px\n}\n/*!\n Theme: GitHub Dark\n Description: Dark theme as seen on github.com\n Author: github.com\n Maintainer: @Hirse\n Updated: 2021-05-15\n\n Outdated base version: https://github.com/primer/github-syntax-dark\n Current colors taken from GitHub's CSS\n*/\n.hljs {\n color: #c9d1d9;\n background: #0d1117\n}\n.hljs-doctag,\n.hljs-keyword,\n.hljs-meta .hljs-keyword,\n.hljs-template-tag,\n.hljs-template-variable,\n.hljs-type,\n.hljs-variable.language_ {\n /* prettylights-syntax-keyword */\n color: #ff7b72\n}\n.hljs-title,\n.hljs-title.class_,\n.hljs-title.class_.inherited__,\n.hljs-title.function_ {\n /* prettylights-syntax-entity */\n color: #d2a8ff\n}\n.hljs-attr,\n.hljs-attribute,\n.hljs-literal,\n.hljs-meta,\n.hljs-number,\n.hljs-operator,\n.hljs-variable,\n.hljs-selector-attr,\n.hljs-selector-class,\n.hljs-selector-id {\n /* prettylights-syntax-constant */\n color: #79c0ff\n}\n.hljs-regexp,\n.hljs-string,\n.hljs-meta .hljs-string {\n /* prettylights-syntax-string */\n color: #a5d6ff\n}\n.hljs-built_in,\n.hljs-symbol {\n /* prettylights-syntax-variable */\n color: #ffa657\n}\n.hljs-comment,\n.hljs-code,\n.hljs-formula {\n /* prettylights-syntax-comment */\n color: #8b949e\n}\n.hljs-name,\n.hljs-quote,\n.hljs-selector-tag,\n.hljs-selector-pseudo {\n /* prettylights-syntax-entity-tag */\n color: #7ee787\n}\n.hljs-subst {\n /* prettylights-syntax-storage-modifier-import */\n color: #c9d1d9\n}\n.hljs-section {\n /* prettylights-syntax-markup-heading */\n color: #1f6feb;\n font-weight: bold\n}\n.hljs-bullet {\n /* prettylights-syntax-markup-list */\n color: #f2cc60\n}\n.hljs-emphasis {\n /* prettylights-syntax-markup-italic */\n color: #c9d1d9;\n font-style: italic\n}\n.hljs-strong {\n /* prettylights-syntax-markup-bold */\n color: #c9d1d9;\n font-weight: bold\n}\n.hljs-addition {\n /* prettylights-syntax-markup-inserted */\n color: #aff5b4;\n background-color: #033a16\n}\n.hljs-deletion {\n /* prettylights-syntax-markup-deleted */\n color: #ffdcd7;\n background-color: #67060c\n}\n.hljs-char.escape_,\n.hljs-link,\n.hljs-params,\n.hljs-property,\n.hljs-punctuation,\n.hljs-tag {\n /* purposely ignored */\n \n}";
|
|
3
|
-
//#endregion
|
|
4
|
-
export { e as default };
|
|
@@ -1,118 +0,0 @@
|
|
|
1
|
-
var e=`pre code.hljs {
|
|
2
|
-
display: block;
|
|
3
|
-
overflow-x: auto;
|
|
4
|
-
padding: 1em
|
|
5
|
-
}
|
|
6
|
-
code.hljs {
|
|
7
|
-
padding: 3px 5px
|
|
8
|
-
}
|
|
9
|
-
/*!
|
|
10
|
-
Theme: GitHub
|
|
11
|
-
Description: Light theme as seen on github.com
|
|
12
|
-
Author: github.com
|
|
13
|
-
Maintainer: @Hirse
|
|
14
|
-
Updated: 2021-05-15
|
|
15
|
-
|
|
16
|
-
Outdated base version: https://github.com/primer/github-syntax-light
|
|
17
|
-
Current colors taken from GitHub's CSS
|
|
18
|
-
*/
|
|
19
|
-
.hljs {
|
|
20
|
-
color: #24292e;
|
|
21
|
-
background: #ffffff
|
|
22
|
-
}
|
|
23
|
-
.hljs-doctag,
|
|
24
|
-
.hljs-keyword,
|
|
25
|
-
.hljs-meta .hljs-keyword,
|
|
26
|
-
.hljs-template-tag,
|
|
27
|
-
.hljs-template-variable,
|
|
28
|
-
.hljs-type,
|
|
29
|
-
.hljs-variable.language_ {
|
|
30
|
-
/* prettylights-syntax-keyword */
|
|
31
|
-
color: #d73a49
|
|
32
|
-
}
|
|
33
|
-
.hljs-title,
|
|
34
|
-
.hljs-title.class_,
|
|
35
|
-
.hljs-title.class_.inherited__,
|
|
36
|
-
.hljs-title.function_ {
|
|
37
|
-
/* prettylights-syntax-entity */
|
|
38
|
-
color: #6f42c1
|
|
39
|
-
}
|
|
40
|
-
.hljs-attr,
|
|
41
|
-
.hljs-attribute,
|
|
42
|
-
.hljs-literal,
|
|
43
|
-
.hljs-meta,
|
|
44
|
-
.hljs-number,
|
|
45
|
-
.hljs-operator,
|
|
46
|
-
.hljs-variable,
|
|
47
|
-
.hljs-selector-attr,
|
|
48
|
-
.hljs-selector-class,
|
|
49
|
-
.hljs-selector-id {
|
|
50
|
-
/* prettylights-syntax-constant */
|
|
51
|
-
color: #005cc5
|
|
52
|
-
}
|
|
53
|
-
.hljs-regexp,
|
|
54
|
-
.hljs-string,
|
|
55
|
-
.hljs-meta .hljs-string {
|
|
56
|
-
/* prettylights-syntax-string */
|
|
57
|
-
color: #032f62
|
|
58
|
-
}
|
|
59
|
-
.hljs-built_in,
|
|
60
|
-
.hljs-symbol {
|
|
61
|
-
/* prettylights-syntax-variable */
|
|
62
|
-
color: #e36209
|
|
63
|
-
}
|
|
64
|
-
.hljs-comment,
|
|
65
|
-
.hljs-code,
|
|
66
|
-
.hljs-formula {
|
|
67
|
-
/* prettylights-syntax-comment */
|
|
68
|
-
color: #6a737d
|
|
69
|
-
}
|
|
70
|
-
.hljs-name,
|
|
71
|
-
.hljs-quote,
|
|
72
|
-
.hljs-selector-tag,
|
|
73
|
-
.hljs-selector-pseudo {
|
|
74
|
-
/* prettylights-syntax-entity-tag */
|
|
75
|
-
color: #22863a
|
|
76
|
-
}
|
|
77
|
-
.hljs-subst {
|
|
78
|
-
/* prettylights-syntax-storage-modifier-import */
|
|
79
|
-
color: #24292e
|
|
80
|
-
}
|
|
81
|
-
.hljs-section {
|
|
82
|
-
/* prettylights-syntax-markup-heading */
|
|
83
|
-
color: #005cc5;
|
|
84
|
-
font-weight: bold
|
|
85
|
-
}
|
|
86
|
-
.hljs-bullet {
|
|
87
|
-
/* prettylights-syntax-markup-list */
|
|
88
|
-
color: #735c0f
|
|
89
|
-
}
|
|
90
|
-
.hljs-emphasis {
|
|
91
|
-
/* prettylights-syntax-markup-italic */
|
|
92
|
-
color: #24292e;
|
|
93
|
-
font-style: italic
|
|
94
|
-
}
|
|
95
|
-
.hljs-strong {
|
|
96
|
-
/* prettylights-syntax-markup-bold */
|
|
97
|
-
color: #24292e;
|
|
98
|
-
font-weight: bold
|
|
99
|
-
}
|
|
100
|
-
.hljs-addition {
|
|
101
|
-
/* prettylights-syntax-markup-inserted */
|
|
102
|
-
color: #22863a;
|
|
103
|
-
background-color: #f0fff4
|
|
104
|
-
}
|
|
105
|
-
.hljs-deletion {
|
|
106
|
-
/* prettylights-syntax-markup-deleted */
|
|
107
|
-
color: #b31d28;
|
|
108
|
-
background-color: #ffeef0
|
|
109
|
-
}
|
|
110
|
-
.hljs-char.escape_,
|
|
111
|
-
.hljs-link,
|
|
112
|
-
.hljs-params,
|
|
113
|
-
.hljs-property,
|
|
114
|
-
.hljs-punctuation,
|
|
115
|
-
.hljs-tag {
|
|
116
|
-
/* purposely ignored */
|
|
117
|
-
|
|
118
|
-
}`;exports.default=e;
|
|
@@ -1,4 +0,0 @@
|
|
|
1
|
-
//#region node_modules/highlight.js/styles/github.css?raw
|
|
2
|
-
var e = "pre code.hljs {\n display: block;\n overflow-x: auto;\n padding: 1em\n}\ncode.hljs {\n padding: 3px 5px\n}\n/*!\n Theme: GitHub\n Description: Light theme as seen on github.com\n Author: github.com\n Maintainer: @Hirse\n Updated: 2021-05-15\n\n Outdated base version: https://github.com/primer/github-syntax-light\n Current colors taken from GitHub's CSS\n*/\n.hljs {\n color: #24292e;\n background: #ffffff\n}\n.hljs-doctag,\n.hljs-keyword,\n.hljs-meta .hljs-keyword,\n.hljs-template-tag,\n.hljs-template-variable,\n.hljs-type,\n.hljs-variable.language_ {\n /* prettylights-syntax-keyword */\n color: #d73a49\n}\n.hljs-title,\n.hljs-title.class_,\n.hljs-title.class_.inherited__,\n.hljs-title.function_ {\n /* prettylights-syntax-entity */\n color: #6f42c1\n}\n.hljs-attr,\n.hljs-attribute,\n.hljs-literal,\n.hljs-meta,\n.hljs-number,\n.hljs-operator,\n.hljs-variable,\n.hljs-selector-attr,\n.hljs-selector-class,\n.hljs-selector-id {\n /* prettylights-syntax-constant */\n color: #005cc5\n}\n.hljs-regexp,\n.hljs-string,\n.hljs-meta .hljs-string {\n /* prettylights-syntax-string */\n color: #032f62\n}\n.hljs-built_in,\n.hljs-symbol {\n /* prettylights-syntax-variable */\n color: #e36209\n}\n.hljs-comment,\n.hljs-code,\n.hljs-formula {\n /* prettylights-syntax-comment */\n color: #6a737d\n}\n.hljs-name,\n.hljs-quote,\n.hljs-selector-tag,\n.hljs-selector-pseudo {\n /* prettylights-syntax-entity-tag */\n color: #22863a\n}\n.hljs-subst {\n /* prettylights-syntax-storage-modifier-import */\n color: #24292e\n}\n.hljs-section {\n /* prettylights-syntax-markup-heading */\n color: #005cc5;\n font-weight: bold\n}\n.hljs-bullet {\n /* prettylights-syntax-markup-list */\n color: #735c0f\n}\n.hljs-emphasis {\n /* prettylights-syntax-markup-italic */\n color: #24292e;\n font-style: italic\n}\n.hljs-strong {\n /* prettylights-syntax-markup-bold */\n color: #24292e;\n font-weight: bold\n}\n.hljs-addition {\n /* prettylights-syntax-markup-inserted */\n color: #22863a;\n background-color: #f0fff4\n}\n.hljs-deletion {\n /* prettylights-syntax-markup-deleted */\n color: #b31d28;\n background-color: #ffeef0\n}\n.hljs-char.escape_,\n.hljs-link,\n.hljs-params,\n.hljs-property,\n.hljs-punctuation,\n.hljs-tag {\n /* purposely ignored */\n \n}";
|
|
3
|
-
//#endregion
|
|
4
|
-
export { e as default };
|