@vivliostyle/react 2.30.4 → 2.30.6
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/epage.d.ts +2 -2
- package/dist/index.d.ts +1 -1
- package/dist/react-vivliostyle.js +1 -1
- package/dist/react-vivliostyle.js.map +1 -1
- package/dist/react-vivliostyle.modern.mjs +5 -0
- package/dist/react-vivliostyle.modern.mjs.map +1 -0
- package/dist/renderer.d.ts +44 -44
- package/package.json +22 -20
- package/dist/react-vivliostyle.modern.js +0 -2
- package/dist/react-vivliostyle.modern.js.map +0 -1
package/dist/epage.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export declare function epageToPageNumber(epage: number): number;
|
|
2
|
-
export declare function epageFromPageNumber(pageNumber: number): number;
|
|
1
|
+
export declare function epageToPageNumber(epage: number): number;
|
|
2
|
+
export declare function epageFromPageNumber(pageNumber: number): number;
|
package/dist/index.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export { Renderer } from "./renderer";
|
|
1
|
+
export { Renderer } from "./renderer";
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
|
|
1
|
+
var e=require("@emotion/styled"),n=require("@vivliostyle/core"),r=require("react");function t(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var o,a=/*#__PURE__*/t(e),i=/*#__PURE__*/t(r);function u(){return u=Object.assign?Object.assign.bind():function(e){for(var n=1;n<arguments.length;n++){var r=arguments[n];for(var t in r)({}).hasOwnProperty.call(r,t)&&(e[t]=r[t])}return e},u.apply(null,arguments)}var d,c,l=a.default.div(o||(d=["\n overflow: scroll;\n background: "," !important;\n"],c||(c=d.slice(0)),d.raw=c,o=d),function(e){return e.background});exports.Renderer=function(e){var t=e.source,o=e.page,a=void 0===o?1:o,d=e.zoom,c=void 0===d?1:d,s=e.bookMode,f=void 0===s||s,v=e.fontSize,g=void 0===v?16:v,p=e.background,S=void 0===p?"#ececec":p,y=e.renderAllPages,h=void 0===y||y,L=e.autoResize,m=void 0===L||L,b=e.pageViewMode,w=void 0===b?n.PageViewMode.SINGLE_PAGE:b,P=e.defaultPaperSize,z=e.pageBorderWidth,E=void 0===z?1:z,R=e.fitToScreen,k=void 0!==R&&R,A=e.userStyleSheet,M=e.authorStyleSheet,O=e.style,T=e.onMessage,V=e.onError,W=e.onReadyStateChange,j=e.onLoad,C=e.onNavigation,G=e.onHyperlink,N=e.children,q=r.useRef(null),x=r.useRef(),B=i.default.useRef();function D(){x.current.setOptions({fontSize:g,pageViewMode:w,renderAllPages:h,autoResize:m,defaultPaperSize:P,pageBorderWidth:E})}function I(){var e,n,r=x.current,o=u({},A?{userStyleSheet:[(e={},e[A.endsWith(".css")?"url":"text"]=A,e)]}:null,M?{authorStyleSheet:[(n={},n[M.endsWith(".css")?"url":"text"]=M,n)]}:null);f?r.loadPublication(t,o):r.loadDocument({url:t},o,{fontSize:g,pageViewMode:w,zoom:c,renderAllPages:h,autoResize:m,defaultPaperSize:P,pageBorderWidth:E,fitToScreen:k})}r.useEffect(function(){return x.current=new n.CoreViewer({viewportElement:q.current}),D(),function(){var e=function(e){var n,r;return null!=(n=null==(r=e.content.error)?void 0:r.toString())?n:e.content.messages.join("\n")};function r(n,r){T&&T(e(n),r)}var t=function(e){return r(e,"debug")},o=function(e){return r(e,"info")},a=function(e){return r(e,"warn")};function i(n){V&&V(e(n))}function u(){W&&W(x.current.readyState)}function d(){j&&j(B.current)}function c(e){var n={docTitle:e.docTitle,epageCount:e.epageCount,epage:e.epage,metadata:e.metadata};B.current=n,C&&C(n)}function l(e){G&&G(e)}var s=x.current;return s.addListener("debug",t),s.addListener("info",o),s.addListener("warn",a),s.addListener("error",i),s.addListener("readystatechange",u),s.addListener("loaded",d),s.addListener("nav",c),s.addListener("hyperlink",l),function(){W&&W(n.ReadyState.LOADING),s.removeListener("debug",t),s.removeListener("info",o),s.removeListener("warn",a),s.removeListener("error",i),s.removeListener("readystatechange",u),s.removeListener("loaded",d),s.removeListener("nav",c),s.removeListener("hyperlink",l)}}()},[]),r.useEffect(function(){I()},[t,M,A,c,k]),r.useEffect(function(){D()},[g,w,h,m,P,E]),r.useEffect(function(){var e;null==(e=x.current)||e.navigateToPage(n.Navigation.EPAGE,a-1)},[a]);var F=i.default.createElement(l,{ref:q,style:O,background:S});return"function"==typeof N&&N instanceof Function?N({container:F,reload:I}):F};
|
|
2
2
|
//# sourceMappingURL=react-vivliostyle.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"react-vivliostyle.js","sources":["../src/renderer.tsx","../src/epage.ts"],"sourcesContent":["import styled from \"@emotion/styled\";\nimport {\n CoreViewer,\n Navigation,\n PageViewMode,\n Payload,\n ReadyState,\n} from \"@vivliostyle/core\";\nimport React, { useEffect, useRef } from \"react\";\nimport { epageFromPageNumber } from \"./epage\";\n\nexport type MessageType = \"debug\" | \"info\" | \"warn\";\nexport type NavigationPayload = Omit<Payload, \"internal\" | \"href\" | \"content\">;\nexport type HyperlinkPayload = Pick<Payload, \"internal\" | \"href\">;\n\ninterface VolatileState {\n docTitle: string;\n epage: number;\n epageCount: number;\n metadata: unknown;\n}\n\ntype ChildrenFunction = ({\n container,\n reload,\n}: {\n container: JSX.Element;\n reload: () => void;\n}) => React.ReactNode;\n\ninterface RendererProps {\n source: string;\n page?: number;\n zoom?: number;\n bookMode?: boolean;\n renderAllPages?: boolean;\n autoResize?: boolean;\n pageViewMode?: PageViewMode;\n defaultPaperSize?: {\n width: number;\n height: number;\n };\n pageBorderWidth?: number;\n fitToScreen?: boolean;\n fontSize?: number;\n background?: string;\n userStyleSheet?: string;\n authorStyleSheet?: string;\n style?: React.CSSProperties;\n onMessage?: (message: string, type: MessageType) => void;\n onError?: (error: string) => void;\n onReadyStateChange?: (state: ReadyState) => void;\n onLoad?: (state: VolatileState) => void;\n onNavigation?: (state: VolatileState) => void;\n onHyperlink?: (payload: HyperlinkPayload) => void;\n children?: React.ReactNode | ChildrenFunction;\n}\n\nexport const Renderer = ({\n source,\n page = 1,\n zoom = 1,\n bookMode = true,\n fontSize = 16,\n background = \"#ececec\",\n renderAllPages = true,\n autoResize = true,\n pageViewMode = PageViewMode.SINGLE_PAGE,\n defaultPaperSize,\n pageBorderWidth = 1,\n fitToScreen = false,\n userStyleSheet,\n authorStyleSheet,\n style,\n onMessage,\n onError,\n onReadyStateChange,\n onLoad,\n onNavigation,\n onHyperlink,\n children,\n}: RendererProps): ReturnType<ChildrenFunction> | JSX.Element => {\n const containerRef = useRef<HTMLDivElement>(null);\n const instanceRef = useRef<CoreViewer>();\n const stateRef = React.useRef<VolatileState>();\n\n function setViewerOptions() {\n const viewerOptions = {\n fontSize,\n pageViewMode,\n renderAllPages,\n autoResize,\n defaultPaperSize,\n pageBorderWidth,\n };\n instanceRef.current!.setOptions(viewerOptions);\n }\n\n function loadSource() {\n const instance = instanceRef.current!;\n const documentOptions = {\n ...(userStyleSheet\n ? {\n userStyleSheet: [\n {\n [userStyleSheet.endsWith(\".css\") ? \"url\" : \"text\"]:\n userStyleSheet,\n },\n ],\n }\n : null),\n ...(authorStyleSheet\n ? {\n authorStyleSheet: [\n {\n [authorStyleSheet.endsWith(\".css\") ? \"url\" : \"text\"]:\n authorStyleSheet,\n },\n ],\n }\n : null),\n };\n\n if (bookMode) {\n instance.loadPublication(source, documentOptions);\n } else {\n instance.loadDocument({ url: source }, documentOptions, {\n fontSize,\n pageViewMode,\n zoom,\n renderAllPages,\n autoResize,\n defaultPaperSize,\n pageBorderWidth,\n fitToScreen,\n });\n }\n }\n\n function registerEventHandlers() {\n const getMessage = (payload: Payload) =>\n payload.content.error?.toString() ?? payload.content.messages.join(\"\\n\");\n\n function handleMessage(payload: Payload, type: MessageType) {\n onMessage && onMessage(getMessage(payload), type);\n }\n\n const handleDebug = (payload: Payload) => handleMessage(payload, \"debug\");\n const handleInfo = (payload: Payload) => handleMessage(payload, \"info\");\n const handleWarn = (payload: Payload) => handleMessage(payload, \"warn\");\n\n function handleError(payload: Payload) {\n onError && onError(getMessage(payload));\n }\n\n function handleReadyStateChange() {\n const { readyState } = instanceRef.current!;\n onReadyStateChange && onReadyStateChange(readyState);\n }\n\n function handleLoaded() {\n onLoad && onLoad(stateRef.current!);\n }\n\n function handleNavigation(payload: NavigationPayload) {\n const { docTitle, epageCount, epage, metadata } = payload;\n const currentState = {\n docTitle,\n epageCount,\n epage: epage as number,\n metadata,\n };\n stateRef.current = currentState;\n onNavigation && onNavigation(currentState);\n }\n\n function handleHyperlink(payload: HyperlinkPayload) {\n onHyperlink && onHyperlink(payload);\n }\n\n const instance = instanceRef.current!;\n instance.addListener(\"debug\", handleDebug);\n instance.addListener(\"info\", handleInfo);\n instance.addListener(\"warn\", handleWarn);\n instance.addListener(\"error\", handleError);\n instance.addListener(\"readystatechange\", handleReadyStateChange);\n instance.addListener(\"loaded\", handleLoaded);\n instance.addListener(\"nav\", handleNavigation);\n instance.addListener(\"hyperlink\", handleHyperlink);\n\n return () => {\n onReadyStateChange && onReadyStateChange(ReadyState.LOADING);\n instance.removeListener(\"debug\", handleDebug);\n instance.removeListener(\"info\", handleInfo);\n instance.removeListener(\"warn\", handleWarn);\n instance.removeListener(\"error\", handleError);\n instance.removeListener(\"readystatechange\", handleReadyStateChange);\n instance.removeListener(\"loaded\", handleLoaded);\n instance.removeListener(\"nav\", handleNavigation);\n instance.removeListener(\"hyperlink\", handleHyperlink);\n };\n }\n\n function initInstance() {\n instanceRef.current = new CoreViewer({\n viewportElement: containerRef.current!,\n });\n }\n\n // initialize document and event handlers\n useEffect(() => {\n initInstance();\n setViewerOptions();\n\n const cleanup = registerEventHandlers();\n return cleanup;\n }, []);\n\n useEffect(() => {\n loadSource();\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [source, authorStyleSheet, userStyleSheet, zoom, fitToScreen]);\n\n useEffect(() => {\n setViewerOptions();\n }, [\n fontSize,\n pageViewMode,\n renderAllPages,\n autoResize,\n defaultPaperSize,\n pageBorderWidth,\n ]);\n\n // sync location\n useEffect(() => {\n const epage = epageFromPageNumber(page);\n instanceRef.current?.navigateToPage(Navigation.EPAGE, epage);\n }, [page]);\n\n const container = (\n <Container ref={containerRef} style={style} background={background} />\n );\n\n if (typeof children === \"function\" && children instanceof Function) {\n return children({ container, reload: loadSource });\n }\n\n return container;\n};\n\nconst Container = styled.div<Pick<RendererProps, \"background\">>`\n overflow: scroll;\n background: ${({ background }) => background} !important;\n`;\n","export function epageToPageNumber(epage: number): number {\n return Math.round(epage + 1);\n}\n\nexport function epageFromPageNumber(pageNumber: number): number {\n return pageNumber - 1;\n}\n"],"names":["Container","styled","div","_templateObject","_ref4","background","_ref","source","_ref$page","page","_ref$zoom","zoom","_ref$bookMode","bookMode","_ref$fontSize","fontSize","_ref$background","_ref$renderAllPages","renderAllPages","_ref$autoResize","autoResize","_ref$pageViewMode","pageViewMode","PageViewMode","SINGLE_PAGE","defaultPaperSize","_ref$pageBorderWidth","pageBorderWidth","_ref$fitToScreen","fitToScreen","userStyleSheet","authorStyleSheet","style","onMessage","onError","onReadyStateChange","onLoad","onNavigation","onHyperlink","children","containerRef","useRef","instanceRef","stateRef","React","setViewerOptions","current","setOptions","loadSource","instance","documentOptions","_extends","_ref2","endsWith","_ref3","loadPublication","loadDocument","url","useEffect","CoreViewer","viewportElement","getMessage","payload","_payload$content$erro","_payload$content$erro2","content","error","toString","messages","join","handleMessage","type","handleDebug","handleInfo","handleWarn","handleError","handleReadyStateChange","readyState","handleLoaded","handleNavigation","currentState","docTitle","epageCount","epage","metadata","handleHyperlink","addListener","ReadyState","LOADING","removeListener","registerEventHandlers","_instanceRef$current","navigateToPage","Navigation","EPAGE","container","ref","Function","reload"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"react-vivliostyle.js","sources":["../src/renderer.tsx","../src/epage.ts"],"sourcesContent":["import styled from \"@emotion/styled\";\nimport {\n CoreViewer,\n Navigation,\n PageViewMode,\n Payload,\n ReadyState,\n} from \"@vivliostyle/core\";\nimport React, { useEffect, useRef } from \"react\";\nimport { epageFromPageNumber } from \"./epage\";\n\nexport type MessageType = \"debug\" | \"info\" | \"warn\";\nexport type NavigationPayload = Omit<Payload, \"internal\" | \"href\" | \"content\">;\nexport type HyperlinkPayload = Pick<Payload, \"internal\" | \"href\">;\n\ninterface VolatileState {\n docTitle: string;\n epage: number;\n epageCount: number;\n metadata: unknown;\n}\n\ntype ChildrenFunction = ({\n container,\n reload,\n}: {\n container: JSX.Element;\n reload: () => void;\n}) => React.ReactNode;\n\ninterface RendererProps {\n source: string;\n page?: number;\n zoom?: number;\n bookMode?: boolean;\n renderAllPages?: boolean;\n autoResize?: boolean;\n pageViewMode?: PageViewMode;\n defaultPaperSize?: {\n width: number;\n height: number;\n };\n pageBorderWidth?: number;\n fitToScreen?: boolean;\n fontSize?: number;\n background?: string;\n userStyleSheet?: string;\n authorStyleSheet?: string;\n style?: React.CSSProperties;\n onMessage?: (message: string, type: MessageType) => void;\n onError?: (error: string) => void;\n onReadyStateChange?: (state: ReadyState) => void;\n onLoad?: (state: VolatileState) => void;\n onNavigation?: (state: VolatileState) => void;\n onHyperlink?: (payload: HyperlinkPayload) => void;\n children?: React.ReactNode | ChildrenFunction;\n}\n\nexport const Renderer = ({\n source,\n page = 1,\n zoom = 1,\n bookMode = true,\n fontSize = 16,\n background = \"#ececec\",\n renderAllPages = true,\n autoResize = true,\n pageViewMode = PageViewMode.SINGLE_PAGE,\n defaultPaperSize,\n pageBorderWidth = 1,\n fitToScreen = false,\n userStyleSheet,\n authorStyleSheet,\n style,\n onMessage,\n onError,\n onReadyStateChange,\n onLoad,\n onNavigation,\n onHyperlink,\n children,\n}: RendererProps): ReturnType<ChildrenFunction> | JSX.Element => {\n const containerRef = useRef<HTMLDivElement>(null);\n const instanceRef = useRef<CoreViewer>();\n const stateRef = React.useRef<VolatileState>();\n\n function setViewerOptions() {\n const viewerOptions = {\n fontSize,\n pageViewMode,\n renderAllPages,\n autoResize,\n defaultPaperSize,\n pageBorderWidth,\n };\n instanceRef.current!.setOptions(viewerOptions);\n }\n\n function loadSource() {\n const instance = instanceRef.current!;\n const documentOptions = {\n ...(userStyleSheet\n ? {\n userStyleSheet: [\n {\n [userStyleSheet.endsWith(\".css\") ? \"url\" : \"text\"]:\n userStyleSheet,\n },\n ],\n }\n : null),\n ...(authorStyleSheet\n ? {\n authorStyleSheet: [\n {\n [authorStyleSheet.endsWith(\".css\") ? \"url\" : \"text\"]:\n authorStyleSheet,\n },\n ],\n }\n : null),\n };\n\n if (bookMode) {\n instance.loadPublication(source, documentOptions);\n } else {\n instance.loadDocument({ url: source }, documentOptions, {\n fontSize,\n pageViewMode,\n zoom,\n renderAllPages,\n autoResize,\n defaultPaperSize,\n pageBorderWidth,\n fitToScreen,\n });\n }\n }\n\n function registerEventHandlers() {\n const getMessage = (payload: Payload) =>\n payload.content.error?.toString() ?? payload.content.messages.join(\"\\n\");\n\n function handleMessage(payload: Payload, type: MessageType) {\n onMessage && onMessage(getMessage(payload), type);\n }\n\n const handleDebug = (payload: Payload) => handleMessage(payload, \"debug\");\n const handleInfo = (payload: Payload) => handleMessage(payload, \"info\");\n const handleWarn = (payload: Payload) => handleMessage(payload, \"warn\");\n\n function handleError(payload: Payload) {\n onError && onError(getMessage(payload));\n }\n\n function handleReadyStateChange() {\n const { readyState } = instanceRef.current!;\n onReadyStateChange && onReadyStateChange(readyState);\n }\n\n function handleLoaded() {\n onLoad && onLoad(stateRef.current!);\n }\n\n function handleNavigation(payload: NavigationPayload) {\n const { docTitle, epageCount, epage, metadata } = payload;\n const currentState = {\n docTitle,\n epageCount,\n epage: epage as number,\n metadata,\n };\n stateRef.current = currentState;\n onNavigation && onNavigation(currentState);\n }\n\n function handleHyperlink(payload: HyperlinkPayload) {\n onHyperlink && onHyperlink(payload);\n }\n\n const instance = instanceRef.current!;\n instance.addListener(\"debug\", handleDebug);\n instance.addListener(\"info\", handleInfo);\n instance.addListener(\"warn\", handleWarn);\n instance.addListener(\"error\", handleError);\n instance.addListener(\"readystatechange\", handleReadyStateChange);\n instance.addListener(\"loaded\", handleLoaded);\n instance.addListener(\"nav\", handleNavigation);\n instance.addListener(\"hyperlink\", handleHyperlink);\n\n return () => {\n onReadyStateChange && onReadyStateChange(ReadyState.LOADING);\n instance.removeListener(\"debug\", handleDebug);\n instance.removeListener(\"info\", handleInfo);\n instance.removeListener(\"warn\", handleWarn);\n instance.removeListener(\"error\", handleError);\n instance.removeListener(\"readystatechange\", handleReadyStateChange);\n instance.removeListener(\"loaded\", handleLoaded);\n instance.removeListener(\"nav\", handleNavigation);\n instance.removeListener(\"hyperlink\", handleHyperlink);\n };\n }\n\n function initInstance() {\n instanceRef.current = new CoreViewer({\n viewportElement: containerRef.current!,\n });\n }\n\n // initialize document and event handlers\n useEffect(() => {\n initInstance();\n setViewerOptions();\n\n const cleanup = registerEventHandlers();\n return cleanup;\n }, []);\n\n useEffect(() => {\n loadSource();\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [source, authorStyleSheet, userStyleSheet, zoom, fitToScreen]);\n\n useEffect(() => {\n setViewerOptions();\n }, [\n fontSize,\n pageViewMode,\n renderAllPages,\n autoResize,\n defaultPaperSize,\n pageBorderWidth,\n ]);\n\n // sync location\n useEffect(() => {\n const epage = epageFromPageNumber(page);\n instanceRef.current?.navigateToPage(Navigation.EPAGE, epage);\n }, [page]);\n\n const container = (\n <Container ref={containerRef} style={style} background={background} />\n );\n\n if (typeof children === \"function\" && children instanceof Function) {\n return children({ container, reload: loadSource });\n }\n\n return container;\n};\n\nconst Container = styled.div<Pick<RendererProps, \"background\">>`\n overflow: scroll;\n background: ${({ background }) => background} !important;\n`;\n","export function epageToPageNumber(epage: number): number {\n return Math.round(epage + 1);\n}\n\nexport function epageFromPageNumber(pageNumber: number): number {\n return pageNumber - 1;\n}\n"],"names":["_templateObject","Container","styled","div","_ref4","background","_ref","source","_ref$page","page","_ref$zoom","zoom","_ref$bookMode","bookMode","_ref$fontSize","fontSize","_ref$background","_ref$renderAllPages","renderAllPages","_ref$autoResize","autoResize","_ref$pageViewMode","pageViewMode","PageViewMode","SINGLE_PAGE","defaultPaperSize","_ref$pageBorderWidth","pageBorderWidth","_ref$fitToScreen","fitToScreen","userStyleSheet","authorStyleSheet","style","onMessage","onError","onReadyStateChange","onLoad","onNavigation","onHyperlink","children","containerRef","useRef","instanceRef","stateRef","React","setViewerOptions","current","setOptions","loadSource","_ref2","_ref3","instance","documentOptions","_extends","endsWith","loadPublication","loadDocument","url","useEffect","CoreViewer","viewportElement","getMessage","payload","_payload$content$erro","_payload$content$erro2","content","error","toString","messages","join","handleMessage","type","handleDebug","handleInfo","handleWarn","handleError","handleReadyStateChange","readyState","handleLoaded","handleNavigation","currentState","docTitle","epageCount","epage","metadata","handleHyperlink","addListener","ReadyState","LOADING","removeListener","registerEventHandlers","_instanceRef$current","navigateToPage","Navigation","EPAGE","container","ref","Function","reload"],"mappings":"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"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import e from"@emotion/styled";import{Navigation as n,PageViewMode as t,ReadyState as r,CoreViewer as o}from"@vivliostyle/core";import a,{useRef as i,useEffect as d}from"react";function c(){return c=Object.assign?Object.assign.bind():function(e){for(var n=1;n<arguments.length;n++){var t=arguments[n];for(var r in t)({}).hasOwnProperty.call(t,r)&&(e[r]=t[r])}return e},c.apply(null,arguments)}let s;const u=({source:e,page:s=1,zoom:u=1,bookMode:f=!0,fontSize:g=16,background:p="#ececec",renderAllPages:m=!0,autoResize:v=!0,pageViewMode:S=t.SINGLE_PAGE,defaultPaperSize:h,pageBorderWidth:L=1,fitToScreen:y=!1,userStyleSheet:b,authorStyleSheet:z,style:P,onMessage:w,onError:k,onReadyStateChange:E,onLoad:A,onNavigation:M,onHyperlink:O,children:R})=>{const T=i(null),W=i(),G=a.useRef();function j(){W.current.setOptions({fontSize:g,pageViewMode:S,renderAllPages:m,autoResize:v,defaultPaperSize:h,pageBorderWidth:L})}function x(){const n=W.current,t=c({},b?{userStyleSheet:[{[b.endsWith(".css")?"url":"text"]:b}]}:null,z?{authorStyleSheet:[{[z.endsWith(".css")?"url":"text"]:z}]}:null);f?n.loadPublication(e,t):n.loadDocument({url:e},t,{fontSize:g,pageViewMode:S,zoom:u,renderAllPages:m,autoResize:v,defaultPaperSize:h,pageBorderWidth:L,fitToScreen:y})}d(()=>(W.current=new o({viewportElement:T.current}),j(),function(){const e=e=>{var n,t;return null!=(n=null==(t=e.content.error)?void 0:t.toString())?n:e.content.messages.join("\n")};function n(n,t){w&&w(e(n),t)}const t=e=>n(e,"debug"),o=e=>n(e,"info"),a=e=>n(e,"warn");function i(n){k&&k(e(n))}function d(){const{readyState:e}=W.current;E&&E(e)}function c(){A&&A(G.current)}function s(e){const{docTitle:n,epageCount:t,epage:r,metadata:o}=e,a={docTitle:n,epageCount:t,epage:r,metadata:o};G.current=a,M&&M(a)}function u(e){O&&O(e)}const l=W.current;return l.addListener("debug",t),l.addListener("info",o),l.addListener("warn",a),l.addListener("error",i),l.addListener("readystatechange",d),l.addListener("loaded",c),l.addListener("nav",s),l.addListener("hyperlink",u),()=>{E&&E(r.LOADING),l.removeListener("debug",t),l.removeListener("info",o),l.removeListener("warn",a),l.removeListener("error",i),l.removeListener("readystatechange",d),l.removeListener("loaded",c),l.removeListener("nav",s),l.removeListener("hyperlink",u)}}()),[]),d(()=>{x()},[e,z,b,u,y]),d(()=>{j()},[g,S,m,v,h,L]),d(()=>{var e;null==(e=W.current)||e.navigateToPage(n.EPAGE,s-1)},[s]);const B=a.createElement(l,{ref:T,style:P,background:p});return"function"==typeof R&&R instanceof Function?R({container:B,reload:x}):B},l=e.div(s||(s=(e=>e)`
|
|
2
|
+
overflow: scroll;
|
|
3
|
+
background: ${0} !important;
|
|
4
|
+
`),({background:e})=>e);export{u as Renderer};
|
|
5
|
+
//# sourceMappingURL=react-vivliostyle.modern.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"react-vivliostyle.modern.mjs","sources":["../src/renderer.tsx","../src/epage.ts"],"sourcesContent":["import styled from \"@emotion/styled\";\nimport {\n CoreViewer,\n Navigation,\n PageViewMode,\n Payload,\n ReadyState,\n} from \"@vivliostyle/core\";\nimport React, { useEffect, useRef } from \"react\";\nimport { epageFromPageNumber } from \"./epage\";\n\nexport type MessageType = \"debug\" | \"info\" | \"warn\";\nexport type NavigationPayload = Omit<Payload, \"internal\" | \"href\" | \"content\">;\nexport type HyperlinkPayload = Pick<Payload, \"internal\" | \"href\">;\n\ninterface VolatileState {\n docTitle: string;\n epage: number;\n epageCount: number;\n metadata: unknown;\n}\n\ntype ChildrenFunction = ({\n container,\n reload,\n}: {\n container: JSX.Element;\n reload: () => void;\n}) => React.ReactNode;\n\ninterface RendererProps {\n source: string;\n page?: number;\n zoom?: number;\n bookMode?: boolean;\n renderAllPages?: boolean;\n autoResize?: boolean;\n pageViewMode?: PageViewMode;\n defaultPaperSize?: {\n width: number;\n height: number;\n };\n pageBorderWidth?: number;\n fitToScreen?: boolean;\n fontSize?: number;\n background?: string;\n userStyleSheet?: string;\n authorStyleSheet?: string;\n style?: React.CSSProperties;\n onMessage?: (message: string, type: MessageType) => void;\n onError?: (error: string) => void;\n onReadyStateChange?: (state: ReadyState) => void;\n onLoad?: (state: VolatileState) => void;\n onNavigation?: (state: VolatileState) => void;\n onHyperlink?: (payload: HyperlinkPayload) => void;\n children?: React.ReactNode | ChildrenFunction;\n}\n\nexport const Renderer = ({\n source,\n page = 1,\n zoom = 1,\n bookMode = true,\n fontSize = 16,\n background = \"#ececec\",\n renderAllPages = true,\n autoResize = true,\n pageViewMode = PageViewMode.SINGLE_PAGE,\n defaultPaperSize,\n pageBorderWidth = 1,\n fitToScreen = false,\n userStyleSheet,\n authorStyleSheet,\n style,\n onMessage,\n onError,\n onReadyStateChange,\n onLoad,\n onNavigation,\n onHyperlink,\n children,\n}: RendererProps): ReturnType<ChildrenFunction> | JSX.Element => {\n const containerRef = useRef<HTMLDivElement>(null);\n const instanceRef = useRef<CoreViewer>();\n const stateRef = React.useRef<VolatileState>();\n\n function setViewerOptions() {\n const viewerOptions = {\n fontSize,\n pageViewMode,\n renderAllPages,\n autoResize,\n defaultPaperSize,\n pageBorderWidth,\n };\n instanceRef.current!.setOptions(viewerOptions);\n }\n\n function loadSource() {\n const instance = instanceRef.current!;\n const documentOptions = {\n ...(userStyleSheet\n ? {\n userStyleSheet: [\n {\n [userStyleSheet.endsWith(\".css\") ? \"url\" : \"text\"]:\n userStyleSheet,\n },\n ],\n }\n : null),\n ...(authorStyleSheet\n ? {\n authorStyleSheet: [\n {\n [authorStyleSheet.endsWith(\".css\") ? \"url\" : \"text\"]:\n authorStyleSheet,\n },\n ],\n }\n : null),\n };\n\n if (bookMode) {\n instance.loadPublication(source, documentOptions);\n } else {\n instance.loadDocument({ url: source }, documentOptions, {\n fontSize,\n pageViewMode,\n zoom,\n renderAllPages,\n autoResize,\n defaultPaperSize,\n pageBorderWidth,\n fitToScreen,\n });\n }\n }\n\n function registerEventHandlers() {\n const getMessage = (payload: Payload) =>\n payload.content.error?.toString() ?? payload.content.messages.join(\"\\n\");\n\n function handleMessage(payload: Payload, type: MessageType) {\n onMessage && onMessage(getMessage(payload), type);\n }\n\n const handleDebug = (payload: Payload) => handleMessage(payload, \"debug\");\n const handleInfo = (payload: Payload) => handleMessage(payload, \"info\");\n const handleWarn = (payload: Payload) => handleMessage(payload, \"warn\");\n\n function handleError(payload: Payload) {\n onError && onError(getMessage(payload));\n }\n\n function handleReadyStateChange() {\n const { readyState } = instanceRef.current!;\n onReadyStateChange && onReadyStateChange(readyState);\n }\n\n function handleLoaded() {\n onLoad && onLoad(stateRef.current!);\n }\n\n function handleNavigation(payload: NavigationPayload) {\n const { docTitle, epageCount, epage, metadata } = payload;\n const currentState = {\n docTitle,\n epageCount,\n epage: epage as number,\n metadata,\n };\n stateRef.current = currentState;\n onNavigation && onNavigation(currentState);\n }\n\n function handleHyperlink(payload: HyperlinkPayload) {\n onHyperlink && onHyperlink(payload);\n }\n\n const instance = instanceRef.current!;\n instance.addListener(\"debug\", handleDebug);\n instance.addListener(\"info\", handleInfo);\n instance.addListener(\"warn\", handleWarn);\n instance.addListener(\"error\", handleError);\n instance.addListener(\"readystatechange\", handleReadyStateChange);\n instance.addListener(\"loaded\", handleLoaded);\n instance.addListener(\"nav\", handleNavigation);\n instance.addListener(\"hyperlink\", handleHyperlink);\n\n return () => {\n onReadyStateChange && onReadyStateChange(ReadyState.LOADING);\n instance.removeListener(\"debug\", handleDebug);\n instance.removeListener(\"info\", handleInfo);\n instance.removeListener(\"warn\", handleWarn);\n instance.removeListener(\"error\", handleError);\n instance.removeListener(\"readystatechange\", handleReadyStateChange);\n instance.removeListener(\"loaded\", handleLoaded);\n instance.removeListener(\"nav\", handleNavigation);\n instance.removeListener(\"hyperlink\", handleHyperlink);\n };\n }\n\n function initInstance() {\n instanceRef.current = new CoreViewer({\n viewportElement: containerRef.current!,\n });\n }\n\n // initialize document and event handlers\n useEffect(() => {\n initInstance();\n setViewerOptions();\n\n const cleanup = registerEventHandlers();\n return cleanup;\n }, []);\n\n useEffect(() => {\n loadSource();\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [source, authorStyleSheet, userStyleSheet, zoom, fitToScreen]);\n\n useEffect(() => {\n setViewerOptions();\n }, [\n fontSize,\n pageViewMode,\n renderAllPages,\n autoResize,\n defaultPaperSize,\n pageBorderWidth,\n ]);\n\n // sync location\n useEffect(() => {\n const epage = epageFromPageNumber(page);\n instanceRef.current?.navigateToPage(Navigation.EPAGE, epage);\n }, [page]);\n\n const container = (\n <Container ref={containerRef} style={style} background={background} />\n );\n\n if (typeof children === \"function\" && children instanceof Function) {\n return children({ container, reload: loadSource });\n }\n\n return container;\n};\n\nconst Container = styled.div<Pick<RendererProps, \"background\">>`\n overflow: scroll;\n background: ${({ background }) => background} !important;\n`;\n","export function epageToPageNumber(epage: number): number {\n return Math.round(epage + 1);\n}\n\nexport function epageFromPageNumber(pageNumber: number): number {\n return pageNumber - 1;\n}\n"],"names":["Renderer","source","page","zoom","bookMode","fontSize","background","renderAllPages","autoResize","pageViewMode","PageViewMode","SINGLE_PAGE","defaultPaperSize","pageBorderWidth","fitToScreen","userStyleSheet","authorStyleSheet","style","onMessage","onError","onReadyStateChange","onLoad","onNavigation","onHyperlink","children","containerRef","useRef","instanceRef","stateRef","React","setViewerOptions","current","setOptions","loadSource","instance","documentOptions","_extends","endsWith","loadPublication","loadDocument","url","useEffect","CoreViewer","viewportElement","getMessage","payload","_payload$content$erro","_payload$content$erro2","content","error","toString","messages","join","handleMessage","type","handleDebug","handleInfo","handleWarn","handleError","handleReadyStateChange","readyState","handleLoaded","handleNavigation","docTitle","epageCount","epage","metadata","currentState","handleHyperlink","addListener","ReadyState","LOADING","removeListener","registerEventHandlers","_instanceRef$current","navigateToPage","Navigation","EPAGE","container","Container","ref","Function","reload","styled","div","_t"],"mappings":"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"}
|
package/dist/renderer.d.ts
CHANGED
|
@@ -1,44 +1,44 @@
|
|
|
1
|
-
import { PageViewMode, Payload, ReadyState } from "@vivliostyle/core";
|
|
2
|
-
import React from "react";
|
|
3
|
-
export
|
|
4
|
-
export
|
|
5
|
-
export
|
|
6
|
-
interface VolatileState {
|
|
7
|
-
docTitle: string;
|
|
8
|
-
epage: number;
|
|
9
|
-
epageCount: number;
|
|
10
|
-
metadata: unknown;
|
|
11
|
-
}
|
|
12
|
-
|
|
13
|
-
container: JSX.Element;
|
|
14
|
-
reload: () => void;
|
|
15
|
-
}) => React.ReactNode;
|
|
16
|
-
interface RendererProps {
|
|
17
|
-
source: string;
|
|
18
|
-
page?: number;
|
|
19
|
-
zoom?: number;
|
|
20
|
-
bookMode?: boolean;
|
|
21
|
-
renderAllPages?: boolean;
|
|
22
|
-
autoResize?: boolean;
|
|
23
|
-
pageViewMode?: PageViewMode;
|
|
24
|
-
defaultPaperSize?: {
|
|
25
|
-
width: number;
|
|
26
|
-
height: number;
|
|
27
|
-
};
|
|
28
|
-
pageBorderWidth?: number;
|
|
29
|
-
fitToScreen?: boolean;
|
|
30
|
-
fontSize?: number;
|
|
31
|
-
background?: string;
|
|
32
|
-
userStyleSheet?: string;
|
|
33
|
-
authorStyleSheet?: string;
|
|
34
|
-
style?: React.CSSProperties;
|
|
35
|
-
onMessage?: (message: string, type: MessageType) => void;
|
|
36
|
-
onError?: (error: string) => void;
|
|
37
|
-
onReadyStateChange?: (state: ReadyState) => void;
|
|
38
|
-
onLoad?: (state: VolatileState) => void;
|
|
39
|
-
onNavigation?: (state: VolatileState) => void;
|
|
40
|
-
onHyperlink?: (payload: HyperlinkPayload) => void;
|
|
41
|
-
children?: React.ReactNode | ChildrenFunction;
|
|
42
|
-
}
|
|
43
|
-
export declare const Renderer: ({ source, page, zoom, bookMode, fontSize, background, renderAllPages, autoResize, pageViewMode, defaultPaperSize, pageBorderWidth, fitToScreen, userStyleSheet, authorStyleSheet, style, onMessage, onError, onReadyStateChange, onLoad, onNavigation, onHyperlink, children, }: RendererProps) => ReturnType<ChildrenFunction> | JSX.Element;
|
|
44
|
-
export {};
|
|
1
|
+
import { PageViewMode, Payload, ReadyState } from "@vivliostyle/core";
|
|
2
|
+
import React from "react";
|
|
3
|
+
export type MessageType = "debug" | "info" | "warn";
|
|
4
|
+
export type NavigationPayload = Omit<Payload, "internal" | "href" | "content">;
|
|
5
|
+
export type HyperlinkPayload = Pick<Payload, "internal" | "href">;
|
|
6
|
+
interface VolatileState {
|
|
7
|
+
docTitle: string;
|
|
8
|
+
epage: number;
|
|
9
|
+
epageCount: number;
|
|
10
|
+
metadata: unknown;
|
|
11
|
+
}
|
|
12
|
+
type ChildrenFunction = ({ container, reload, }: {
|
|
13
|
+
container: JSX.Element;
|
|
14
|
+
reload: () => void;
|
|
15
|
+
}) => React.ReactNode;
|
|
16
|
+
interface RendererProps {
|
|
17
|
+
source: string;
|
|
18
|
+
page?: number;
|
|
19
|
+
zoom?: number;
|
|
20
|
+
bookMode?: boolean;
|
|
21
|
+
renderAllPages?: boolean;
|
|
22
|
+
autoResize?: boolean;
|
|
23
|
+
pageViewMode?: PageViewMode;
|
|
24
|
+
defaultPaperSize?: {
|
|
25
|
+
width: number;
|
|
26
|
+
height: number;
|
|
27
|
+
};
|
|
28
|
+
pageBorderWidth?: number;
|
|
29
|
+
fitToScreen?: boolean;
|
|
30
|
+
fontSize?: number;
|
|
31
|
+
background?: string;
|
|
32
|
+
userStyleSheet?: string;
|
|
33
|
+
authorStyleSheet?: string;
|
|
34
|
+
style?: React.CSSProperties;
|
|
35
|
+
onMessage?: (message: string, type: MessageType) => void;
|
|
36
|
+
onError?: (error: string) => void;
|
|
37
|
+
onReadyStateChange?: (state: ReadyState) => void;
|
|
38
|
+
onLoad?: (state: VolatileState) => void;
|
|
39
|
+
onNavigation?: (state: VolatileState) => void;
|
|
40
|
+
onHyperlink?: (payload: HyperlinkPayload) => void;
|
|
41
|
+
children?: React.ReactNode | ChildrenFunction;
|
|
42
|
+
}
|
|
43
|
+
export declare const Renderer: ({ source, page, zoom, bookMode, fontSize, background, renderAllPages, autoResize, pageViewMode, defaultPaperSize, pageBorderWidth, fitToScreen, userStyleSheet, authorStyleSheet, style, onMessage, onError, onReadyStateChange, onLoad, onNavigation, onHyperlink, children, }: RendererProps) => ReturnType<ChildrenFunction> | JSX.Element;
|
|
44
|
+
export {};
|
package/package.json
CHANGED
|
@@ -1,46 +1,48 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@vivliostyle/react",
|
|
3
3
|
"description": "React component for Vivliostyle",
|
|
4
|
-
"version": "2.30.
|
|
4
|
+
"version": "2.30.6",
|
|
5
5
|
"author": "Yasuaki Uechi <y@uechi.io>",
|
|
6
6
|
"scripts": {
|
|
7
|
-
"build": "microbundle
|
|
8
|
-
"build-dev": "microbundle
|
|
9
|
-
"build-storybook": "build
|
|
7
|
+
"build": "microbundle --format modern,cjs && shx rm -rf dist/stories",
|
|
8
|
+
"build-dev": "microbundle --no-compress --format cjs",
|
|
9
|
+
"build-storybook": "storybook build",
|
|
10
10
|
"clean": "shx rm -rf dist",
|
|
11
11
|
"dev": "yarn storybook",
|
|
12
|
-
"storybook": "cross-env NODE_OPTIONS=--openssl-legacy-provider
|
|
12
|
+
"storybook": "cross-env NODE_OPTIONS=--openssl-legacy-provider storybook dev -p 9009",
|
|
13
13
|
"test": "run-s test:build",
|
|
14
14
|
"test:build": "yarn build",
|
|
15
|
-
"test:unit": "cross-env CI=1 react-scripts test
|
|
16
|
-
"test:watch": "react-scripts test
|
|
15
|
+
"test:unit": "cross-env CI=1 react-scripts test",
|
|
16
|
+
"test:watch": "react-scripts test"
|
|
17
17
|
},
|
|
18
18
|
"dependencies": {
|
|
19
19
|
"@emotion/core": "^10.0.28",
|
|
20
20
|
"@emotion/styled": "^10.0.27",
|
|
21
|
-
"@vivliostyle/core": "^2.30.
|
|
21
|
+
"@vivliostyle/core": "^2.30.6"
|
|
22
22
|
},
|
|
23
23
|
"peerDependencies": {
|
|
24
24
|
"react": "^18.2.0",
|
|
25
25
|
"react-dom": "^18.2.0"
|
|
26
26
|
},
|
|
27
27
|
"devDependencies": {
|
|
28
|
-
"@
|
|
29
|
-
"@storybook/addon-
|
|
30
|
-
"@storybook/addon-
|
|
31
|
-
"@storybook/
|
|
32
|
-
"@storybook/
|
|
33
|
-
"@storybook/react": "^
|
|
34
|
-
"@
|
|
28
|
+
"@babel/plugin-proposal-private-property-in-object": "^7.21.11",
|
|
29
|
+
"@storybook/addon-actions": "^8.4.4",
|
|
30
|
+
"@storybook/addon-essentials": "^8.4.4",
|
|
31
|
+
"@storybook/addon-knobs": "^8.0.1",
|
|
32
|
+
"@storybook/addon-links": "^8.4.4",
|
|
33
|
+
"@storybook/preset-create-react-app": "^8.4.4",
|
|
34
|
+
"@storybook/react": "^8.4.4",
|
|
35
|
+
"@storybook/react-webpack5": "^8.4.4",
|
|
36
|
+
"@types/jest": "^29.5.14",
|
|
35
37
|
"@types/react": "^18.0.27",
|
|
36
38
|
"cross-env": "^7.0.2",
|
|
37
|
-
"
|
|
38
|
-
"microbundle-crl": "^0.13.10",
|
|
39
|
+
"microbundle": "^0.15.1",
|
|
39
40
|
"npm-run-all": "^4.1.5",
|
|
40
41
|
"react": "^18.2.0",
|
|
41
42
|
"react-dom": "^18.2.0",
|
|
42
|
-
"react-scripts": "^
|
|
43
|
-
"shx": "^0.3.2"
|
|
43
|
+
"react-scripts": "^5.0.1",
|
|
44
|
+
"shx": "^0.3.2",
|
|
45
|
+
"storybook": "^8.4.4"
|
|
44
46
|
},
|
|
45
47
|
"source": "src/index.tsx",
|
|
46
48
|
"types": "dist/index.d.ts",
|
|
@@ -70,5 +72,5 @@
|
|
|
70
72
|
"engines": {
|
|
71
73
|
"node": ">=14"
|
|
72
74
|
},
|
|
73
|
-
"gitHead": "
|
|
75
|
+
"gitHead": "8a2db8eb627a1055fa52728554027fd090dc234a"
|
|
74
76
|
}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import e from"@emotion/styled";import{ReadyState as n,Navigation as r,PageViewMode as t,CoreViewer as o}from"@vivliostyle/core";import i,{useRef as a,useEffect as u}from"react";function d(){return(d=Object.assign?Object.assign.bind():function(e){for(var n=1;n<arguments.length;n++){var r=arguments[n];for(var t in r)Object.prototype.hasOwnProperty.call(r,t)&&(e[t]=r[t])}return e}).apply(this,arguments)}var c,l,s,f=function(e){var c=e.source,l=e.page,s=void 0===l?1:l,f=e.zoom,g=void 0===f?1:f,p=e.bookMode,m=void 0===p||p,h=e.fontSize,S=void 0===h?16:h,y=e.background,L=void 0===y?"#ececec":y,b=e.renderAllPages,w=void 0===b||b,z=e.autoResize,P=void 0===z||z,k=e.pageViewMode,E=void 0===k?t.SINGLE_PAGE:k,A=e.defaultPaperSize,O=e.pageBorderWidth,M=void 0===O?1:O,R=e.fitToScreen,T=void 0!==R&&R,W=e.userStyleSheet,j=e.authorStyleSheet,G=e.style,x=e.onMessage,B=e.onError,C=e.onReadyStateChange,N=e.onLoad,V=e.onNavigation,D=e.onHyperlink,I=e.children,F=a(null),H=a(),_=i.useRef();function q(){H.current.setOptions({fontSize:S,pageViewMode:E,renderAllPages:w,autoResize:P,defaultPaperSize:A,pageBorderWidth:M})}function J(){var e,n,r=H.current,t=d({},W?{userStyleSheet:[(e={},e[W.endsWith(".css")?"url":"text"]=W,e)]}:null,j?{authorStyleSheet:[(n={},n[j.endsWith(".css")?"url":"text"]=j,n)]}:null);m?r.loadPublication(c,t):r.loadDocument({url:c},t,{fontSize:S,pageViewMode:E,zoom:g,renderAllPages:w,autoResize:P,defaultPaperSize:A,pageBorderWidth:M,fitToScreen:T})}u(function(){return H.current=new o({viewportElement:F.current}),q(),function(){var e=function(e){var n,r;return null!=(n=null===(r=e.content.error)||void 0===r?void 0:r.toString())?n:e.content.messages.join("\n")};function r(n,r){x&&x(e(n),r)}var t=function(e){return r(e,"debug")},o=function(e){return r(e,"info")},i=function(e){return r(e,"warn")};function a(n){B&&B(e(n))}function u(){C&&C(H.current.readyState)}function d(){N&&N(_.current)}function c(e){var n={docTitle:e.docTitle,epageCount:e.epageCount,epage:e.epage,metadata:e.metadata};_.current=n,V&&V(n)}function l(e){D&&D(e)}var s=H.current;return s.addListener("debug",t),s.addListener("info",o),s.addListener("warn",i),s.addListener("error",a),s.addListener("readystatechange",u),s.addListener("loaded",d),s.addListener("nav",c),s.addListener("hyperlink",l),function(){C&&C(n.LOADING),s.removeListener("debug",t),s.removeListener("info",o),s.removeListener("warn",i),s.removeListener("error",a),s.removeListener("readystatechange",u),s.removeListener("loaded",d),s.removeListener("nav",c),s.removeListener("hyperlink",l)}}()},[]),u(function(){J()},[c,j,W,g,T]),u(function(){q()},[S,E,w,P,A,M]),u(function(){var e;null===(e=H.current)||void 0===e||e.navigateToPage(r.EPAGE,s-1)},[s]);var K=i.createElement(v,{ref:F,style:G,background:L});return"function"==typeof I&&I instanceof Function?I({container:K,reload:J}):K},v=e.div(c||(l=["\n overflow: scroll;\n background: "," !important;\n"],s||(s=l.slice(0)),l.raw=s,c=l),function(e){return e.background});export{f as Renderer};
|
|
2
|
-
//# sourceMappingURL=react-vivliostyle.modern.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"react-vivliostyle.modern.js","sources":["../src/renderer.tsx","../src/epage.ts"],"sourcesContent":["import styled from \"@emotion/styled\";\nimport {\n CoreViewer,\n Navigation,\n PageViewMode,\n Payload,\n ReadyState,\n} from \"@vivliostyle/core\";\nimport React, { useEffect, useRef } from \"react\";\nimport { epageFromPageNumber } from \"./epage\";\n\nexport type MessageType = \"debug\" | \"info\" | \"warn\";\nexport type NavigationPayload = Omit<Payload, \"internal\" | \"href\" | \"content\">;\nexport type HyperlinkPayload = Pick<Payload, \"internal\" | \"href\">;\n\ninterface VolatileState {\n docTitle: string;\n epage: number;\n epageCount: number;\n metadata: unknown;\n}\n\ntype ChildrenFunction = ({\n container,\n reload,\n}: {\n container: JSX.Element;\n reload: () => void;\n}) => React.ReactNode;\n\ninterface RendererProps {\n source: string;\n page?: number;\n zoom?: number;\n bookMode?: boolean;\n renderAllPages?: boolean;\n autoResize?: boolean;\n pageViewMode?: PageViewMode;\n defaultPaperSize?: {\n width: number;\n height: number;\n };\n pageBorderWidth?: number;\n fitToScreen?: boolean;\n fontSize?: number;\n background?: string;\n userStyleSheet?: string;\n authorStyleSheet?: string;\n style?: React.CSSProperties;\n onMessage?: (message: string, type: MessageType) => void;\n onError?: (error: string) => void;\n onReadyStateChange?: (state: ReadyState) => void;\n onLoad?: (state: VolatileState) => void;\n onNavigation?: (state: VolatileState) => void;\n onHyperlink?: (payload: HyperlinkPayload) => void;\n children?: React.ReactNode | ChildrenFunction;\n}\n\nexport const Renderer = ({\n source,\n page = 1,\n zoom = 1,\n bookMode = true,\n fontSize = 16,\n background = \"#ececec\",\n renderAllPages = true,\n autoResize = true,\n pageViewMode = PageViewMode.SINGLE_PAGE,\n defaultPaperSize,\n pageBorderWidth = 1,\n fitToScreen = false,\n userStyleSheet,\n authorStyleSheet,\n style,\n onMessage,\n onError,\n onReadyStateChange,\n onLoad,\n onNavigation,\n onHyperlink,\n children,\n}: RendererProps): ReturnType<ChildrenFunction> | JSX.Element => {\n const containerRef = useRef<HTMLDivElement>(null);\n const instanceRef = useRef<CoreViewer>();\n const stateRef = React.useRef<VolatileState>();\n\n function setViewerOptions() {\n const viewerOptions = {\n fontSize,\n pageViewMode,\n renderAllPages,\n autoResize,\n defaultPaperSize,\n pageBorderWidth,\n };\n instanceRef.current!.setOptions(viewerOptions);\n }\n\n function loadSource() {\n const instance = instanceRef.current!;\n const documentOptions = {\n ...(userStyleSheet\n ? {\n userStyleSheet: [\n {\n [userStyleSheet.endsWith(\".css\") ? \"url\" : \"text\"]:\n userStyleSheet,\n },\n ],\n }\n : null),\n ...(authorStyleSheet\n ? {\n authorStyleSheet: [\n {\n [authorStyleSheet.endsWith(\".css\") ? \"url\" : \"text\"]:\n authorStyleSheet,\n },\n ],\n }\n : null),\n };\n\n if (bookMode) {\n instance.loadPublication(source, documentOptions);\n } else {\n instance.loadDocument({ url: source }, documentOptions, {\n fontSize,\n pageViewMode,\n zoom,\n renderAllPages,\n autoResize,\n defaultPaperSize,\n pageBorderWidth,\n fitToScreen,\n });\n }\n }\n\n function registerEventHandlers() {\n const getMessage = (payload: Payload) =>\n payload.content.error?.toString() ?? payload.content.messages.join(\"\\n\");\n\n function handleMessage(payload: Payload, type: MessageType) {\n onMessage && onMessage(getMessage(payload), type);\n }\n\n const handleDebug = (payload: Payload) => handleMessage(payload, \"debug\");\n const handleInfo = (payload: Payload) => handleMessage(payload, \"info\");\n const handleWarn = (payload: Payload) => handleMessage(payload, \"warn\");\n\n function handleError(payload: Payload) {\n onError && onError(getMessage(payload));\n }\n\n function handleReadyStateChange() {\n const { readyState } = instanceRef.current!;\n onReadyStateChange && onReadyStateChange(readyState);\n }\n\n function handleLoaded() {\n onLoad && onLoad(stateRef.current!);\n }\n\n function handleNavigation(payload: NavigationPayload) {\n const { docTitle, epageCount, epage, metadata } = payload;\n const currentState = {\n docTitle,\n epageCount,\n epage: epage as number,\n metadata,\n };\n stateRef.current = currentState;\n onNavigation && onNavigation(currentState);\n }\n\n function handleHyperlink(payload: HyperlinkPayload) {\n onHyperlink && onHyperlink(payload);\n }\n\n const instance = instanceRef.current!;\n instance.addListener(\"debug\", handleDebug);\n instance.addListener(\"info\", handleInfo);\n instance.addListener(\"warn\", handleWarn);\n instance.addListener(\"error\", handleError);\n instance.addListener(\"readystatechange\", handleReadyStateChange);\n instance.addListener(\"loaded\", handleLoaded);\n instance.addListener(\"nav\", handleNavigation);\n instance.addListener(\"hyperlink\", handleHyperlink);\n\n return () => {\n onReadyStateChange && onReadyStateChange(ReadyState.LOADING);\n instance.removeListener(\"debug\", handleDebug);\n instance.removeListener(\"info\", handleInfo);\n instance.removeListener(\"warn\", handleWarn);\n instance.removeListener(\"error\", handleError);\n instance.removeListener(\"readystatechange\", handleReadyStateChange);\n instance.removeListener(\"loaded\", handleLoaded);\n instance.removeListener(\"nav\", handleNavigation);\n instance.removeListener(\"hyperlink\", handleHyperlink);\n };\n }\n\n function initInstance() {\n instanceRef.current = new CoreViewer({\n viewportElement: containerRef.current!,\n });\n }\n\n // initialize document and event handlers\n useEffect(() => {\n initInstance();\n setViewerOptions();\n\n const cleanup = registerEventHandlers();\n return cleanup;\n }, []);\n\n useEffect(() => {\n loadSource();\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [source, authorStyleSheet, userStyleSheet, zoom, fitToScreen]);\n\n useEffect(() => {\n setViewerOptions();\n }, [\n fontSize,\n pageViewMode,\n renderAllPages,\n autoResize,\n defaultPaperSize,\n pageBorderWidth,\n ]);\n\n // sync location\n useEffect(() => {\n const epage = epageFromPageNumber(page);\n instanceRef.current?.navigateToPage(Navigation.EPAGE, epage);\n }, [page]);\n\n const container = (\n <Container ref={containerRef} style={style} background={background} />\n );\n\n if (typeof children === \"function\" && children instanceof Function) {\n return children({ container, reload: loadSource });\n }\n\n return container;\n};\n\nconst Container = styled.div<Pick<RendererProps, \"background\">>`\n overflow: scroll;\n background: ${({ background }) => background} !important;\n`;\n","export function epageToPageNumber(epage: number): number {\n return Math.round(epage + 1);\n}\n\nexport function epageFromPageNumber(pageNumber: number): number {\n return pageNumber - 1;\n}\n"],"names":["Renderer","_ref","source","_ref$page","page","_ref$zoom","zoom","_ref$bookMode","bookMode","_ref$fontSize","fontSize","_ref$background","background","_ref$renderAllPages","renderAllPages","_ref$autoResize","autoResize","_ref$pageViewMode","pageViewMode","PageViewMode","SINGLE_PAGE","defaultPaperSize","_ref$pageBorderWidth","pageBorderWidth","_ref$fitToScreen","fitToScreen","userStyleSheet","authorStyleSheet","style","onMessage","onError","onReadyStateChange","onLoad","onNavigation","onHyperlink","children","containerRef","useRef","instanceRef","stateRef","React","setViewerOptions","current","setOptions","loadSource","instance","documentOptions","_extends","_ref2","endsWith","_ref3","loadPublication","loadDocument","url","useEffect","CoreViewer","viewportElement","getMessage","payload","_payload$content$erro","_payload$content$erro2","content","error","toString","messages","join","handleMessage","type","handleDebug","handleInfo","handleWarn","handleError","handleReadyStateChange","readyState","handleLoaded","handleNavigation","currentState","docTitle","epageCount","epage","metadata","handleHyperlink","addListener","ReadyState","LOADING","removeListener","registerEventHandlers","_instanceRef$current","navigateToPage","Navigation","EPAGE","container","Container","ref","Function","reload","styled","div","_templateObject","_ref4"],"mappings":"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"}
|