@vivliostyle/react 2.27.0 → 2.28.1
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.
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
function e(e){return e&&"object"==typeof e&&"default"in e?e.default:e}var n,
|
|
1
|
+
function e(e){return e&&"object"==typeof e&&"default"in e?e.default:e}var n,r=e(require("@emotion/styled")),t=require("@vivliostyle/core"),o=require("react"),i=e(o);function a(){return(a=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 u,d,c=r.div(n||(u=["\n overflow: scroll;\n background: "," !important;\n"],d||(d=u.slice(0)),u.raw=d,n=u),function(e){return e.background});exports.Renderer=function(e){var n=e.source,r=e.page,u=void 0===r?1:r,d=e.zoom,s=void 0===d?1:d,l=e.bookMode,f=void 0===l||l,v=e.fontSize,g=void 0===v?16:v,p=e.background,y=void 0===p?"#ececec":p,S=e.renderAllPages,h=void 0===S||S,L=e.autoResize,m=void 0===L||L,b=e.pageViewMode,w=void 0===b?t.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,j=e.onMessage,T=e.onError,V=e.onReadyStateChange,W=e.onLoad,C=e.onNavigation,G=e.onHyperlink,N=e.children,q=o.useRef(null),x=o.useRef(),B=i.useRef();function D(){x.current.setOptions({fontSize:g,pageViewMode:w,renderAllPages:h,autoResize:m,defaultPaperSize:P,pageBorderWidth:E})}function I(){var e,r,t=x.current,o=a({},A?{userStyleSheet:[(e={},e[A.endsWith(".css")?"url":"text"]=A,e)]}:null,M?{authorStyleSheet:[(r={},r[M.endsWith(".css")?"url":"text"]=M,r)]}:null);f?t.loadPublication(n,o):t.loadDocument({url:n},o,{fontSize:g,pageViewMode:w,zoom:s,renderAllPages:h,autoResize:m,defaultPaperSize:P,pageBorderWidth:E,fitToScreen:k})}o.useEffect(function(){return x.current=new t.CoreViewer({viewportElement:q.current}),D(),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 n(n,r){j&&j(e(n),r)}var r=function(e){return n(e,"debug")},o=function(e){return n(e,"info")},i=function(e){return n(e,"warn")};function a(n){T&&T(e(n))}function u(){V&&V(x.current.readyState)}function d(){W&&W(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 s(e){G&&G(e)}var l=x.current;return l.addListener("debug",r),l.addListener("info",o),l.addListener("warn",i),l.addListener("error",a),l.addListener("readystatechange",u),l.addListener("loaded",d),l.addListener("nav",c),l.addListener("hyperlink",s),function(){V&&V(t.ReadyState.LOADING),l.removeListener("debug",r),l.removeListener("info",o),l.removeListener("warn",i),l.removeListener("error",a),l.removeListener("readystatechange",u),l.removeListener("loaded",d),l.removeListener("nav",c),l.removeListener("hyperlink",s)}}()},[]),o.useEffect(function(){I()},[n,M,A,s,k]),o.useEffect(function(){D()},[g,w,h,m,P,E]),o.useEffect(function(){var e;null===(e=x.current)||void 0===e||e.navigateToPage(t.Navigation.EPAGE,u-1)},[u]);var F=i.createElement(c,{ref:q,style:O,background:y});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 function handleMessage(payload: Payload, type: MessageType) {\n onMessage && onMessage(payload.content, 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(payload.content);\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","handleMessage","payload","type","content","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":["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,2 +1,2 @@
|
|
|
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
|
|
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
2
|
//# sourceMappingURL=react-vivliostyle.modern.js.map
|
|
@@ -1 +1 @@
|
|
|
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 function handleMessage(payload: Payload, type: MessageType) {\n onMessage && onMessage(payload.content, 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(payload.content);\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","handleMessage","payload","type","content","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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"}
|
|
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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"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@vivliostyle/react",
|
|
3
3
|
"description": "React component for Vivliostyle",
|
|
4
|
-
"version": "2.
|
|
4
|
+
"version": "2.28.1",
|
|
5
5
|
"author": "Yasuaki Uechi <y@uechi.io>",
|
|
6
6
|
"scripts": {
|
|
7
7
|
"build": "microbundle-crl --format modern,cjs && shx rm -rf dist/stories",
|
|
@@ -18,7 +18,7 @@
|
|
|
18
18
|
"dependencies": {
|
|
19
19
|
"@emotion/core": "^10.0.28",
|
|
20
20
|
"@emotion/styled": "^10.0.27",
|
|
21
|
-
"@vivliostyle/core": "^2.
|
|
21
|
+
"@vivliostyle/core": "^2.28.1"
|
|
22
22
|
},
|
|
23
23
|
"peerDependencies": {
|
|
24
24
|
"react": "^18.2.0",
|
|
@@ -70,5 +70,5 @@
|
|
|
70
70
|
"engines": {
|
|
71
71
|
"node": ">=14"
|
|
72
72
|
},
|
|
73
|
-
"gitHead": "
|
|
73
|
+
"gitHead": "ca6f944610bf68d81210dfa43badc5a3d5349e3c"
|
|
74
74
|
}
|