@vivliostyle/react 2.39.1 → 2.40.0

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
- 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,i=/*#__PURE__*/t(e),a=/*#__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=i.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,i=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(void 0),B=a.default.useRef(void 0);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")},i=function(e){return r(e,"warn")};function a(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",i),s.addListener("error",a),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",i),s.removeListener("error",a),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,i-1)},[i]);var F=a.default.createElement(l,{ref:q,style:O,background:S});return"function"==typeof N&&N instanceof Function?N({container:F,reload:I}):F};
1
+ var e=require("@emotion/styled"),n=require("@vivliostyle/core"),t=require("react");function r(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var o,i=/*#__PURE__*/r(e),a=/*#__PURE__*/r(t);function u(){return u=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},u.apply(null,arguments)}var d,c,f=i.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 r=e.source,o=e.page,i=void 0===o?1:o,d=e.zoom,c=void 0===d?1:d,l=e.bookMode,s=void 0===l||l,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,E=e.defaultPaperSize,P=e.pageBorderWidth,z=void 0===P?1:P,k=e.fitToScreen,R=void 0!==k&&k,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=t.useRef(null),x=t.useRef(void 0),B=a.default.useRef(void 0),D=a.default.useState(0),I=D[0],F=D[1];function H(){x.current.setOptions({fontSize:g,pageViewMode:w,renderAllPages:h,autoResize:m,defaultPaperSize:E,pageBorderWidth:z})}function _(){var e,n,t=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);s?t.loadPublication(r,o):t.loadDocument({url:r},o,{fontSize:g,pageViewMode:w,zoom:c,renderAllPages:h,autoResize:m,defaultPaperSize:E,pageBorderWidth:z,fitToScreen:R})}t.useEffect(function(){F(function(e){return e+1})},[]),t.useEffect(function(){return x.current=new n.CoreViewer({viewportElement:q.current}),H(),function(){var e=function(e){var n,t;return null!=(n=null==(t=e.content.error)?void 0:t.toString())?n:e.content.messages.join("\n")};function t(n,t){T&&T(e(n),t)}var r=function(e){return t(e,"debug")},o=function(e){return t(e,"info")},i=function(e){return t(e,"warn")};function a(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 f(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",f),function(){W&&W(n.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",f)}}()},[I]),t.useEffect(function(){0!==I&&_()},[I,r,M,A,c,R,s]),t.useEffect(function(){H()},[g,w,h,m,E,z]),t.useEffect(function(){var e;null==(e=x.current)||e.navigateToPage(n.Navigation.EPAGE,i-1)},[i]);var J=a.default.createElement(f,{key:I,ref:q,style:O,background:S});return"function"==typeof N&&N instanceof Function?N({container:J,reload:_}):J};
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: React.ReactElement;\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> | React.ReactElement => {\n const containerRef = useRef<HTMLDivElement>(null);\n const instanceRef = useRef<CoreViewer | undefined>(undefined);\n const stateRef = React.useRef<VolatileState | undefined>(undefined);\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","undefined","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":"+JAAAA,kQA0Da,QAiMPC,EAAYC,EAAAA,QAAOC,IAAGH,MAAA,CAAA,wCAAA,4CAAAA,KAEZ,SAAAI,GAAoB,OAAPA,EAAVC,UAA2B,oBAnMtB,SAAHC,GAuBkD,IAtBrEC,EAAMD,EAANC,OAAMC,EAAAF,EACNG,KAAAA,OAAO,IAAHD,EAAG,EAACA,EAAAE,EAAAJ,EACRK,KAAAA,OAAI,IAAAD,EAAG,EAACA,EAAAE,EAAAN,EACRO,SAAAA,OAAW,IAAHD,GAAOA,EAAAE,EAAAR,EACfS,SAAAA,OAAW,IAAHD,EAAG,GAAEA,EAAAE,EAAAV,EACbD,WAAAA,OAAU,IAAAW,EAAG,UAASA,EAAAC,EAAAX,EACtBY,eAAAA,OAAc,IAAAD,GAAOA,EAAAE,EAAAb,EACrBc,WAAAA,OAAa,IAAHD,GAAOA,EAAAE,EAAAf,EACjBgB,aAAAA,OAAY,IAAAD,EAAGE,EAAAA,aAAaC,YAAWH,EACvCI,EAAgBnB,EAAhBmB,iBAAgBC,EAAApB,EAChBqB,gBAAAA,OAAe,IAAAD,EAAG,EAACA,EAAAE,EAAAtB,EACnBuB,YAAAA,OAAc,IAAHD,GAAQA,EACnBE,EAAcxB,EAAdwB,eACAC,EAAgBzB,EAAhByB,iBACAC,EAAK1B,EAAL0B,MACAC,EAAS3B,EAAT2B,UACAC,EAAO5B,EAAP4B,QACAC,EAAkB7B,EAAlB6B,mBACAC,EAAM9B,EAAN8B,OACAC,EAAY/B,EAAZ+B,aACAC,EAAWhC,EAAXgC,YACAC,EAAQjC,EAARiC,SAEMC,EAAeC,EAAMA,OAAiB,MACtCC,EAAcD,EAAAA,YAA+BE,GAC7CC,EAAWC,EAAK,QAACJ,YAAkCE,GAEzD,SAASG,IASPJ,EAAYK,QAASC,WARC,CACpBjC,SAAAA,EACAO,aAAAA,EACAJ,eAAAA,EACAE,WAAAA,EACAK,iBAAAA,EACAE,gBAAAA,GAGJ,CAEA,SAASsB,IAAU,IAAAC,EAAAC,EACXC,EAAWV,EAAYK,QACvBM,EAAeC,EAAA,CAAA,EACfxB,EACA,CACEA,eAAgB,EAAAoB,EAAA,CAAA,EAAAA,EAEXpB,EAAeyB,SAAS,QAAU,MAAQ,QACzCzB,EAAcoB,KAItB,KACAnB,EACA,CACEA,iBAAkB,EAAAoB,EAAAA,CAAAA,EAAAA,EAEbpB,EAAiBwB,SAAS,QAAU,MAAQ,QAC3CxB,EAAgBoB,KAIxB,MAGFtC,EACFuC,EAASI,gBAAgBjD,EAAQ8C,GAEjCD,EAASK,aAAa,CAAEC,IAAKnD,GAAU8C,EAAiB,CACtDtC,SAAAA,EACAO,aAAAA,EACAX,KAAAA,EACAO,eAAAA,EACAE,WAAAA,EACAK,iBAAAA,EACAE,gBAAAA,EACAE,YAAAA,GAGN,CAyEA8B,EAAAA,UAAU,WAKR,OAXAjB,EAAYK,QAAU,IAAIa,EAAUA,WAAC,CACnCC,gBAAiBrB,EAAaO,UAOhCD,IAzEF,WACE,IAAMgB,EAAa,SAACC,GAAgBC,IAAAA,EAAAC,EAAAD,OACD,OADCA,EACb,OADaC,EAClCF,EAAQG,QAAQC,YAAK,EAArBF,EAAuBG,YAAUJ,EAAID,EAAQG,QAAQG,SAASC,KAAK,KAAK,EAE1E,SAASC,EAAcR,EAAkBS,GACvCvC,GAAaA,EAAU6B,EAAWC,GAAUS,EAC9C,CAEA,IAAMC,EAAc,SAACV,GAAqB,OAAAQ,EAAcR,EAAS,QAAQ,EACnEW,EAAa,SAACX,GAAgB,OAAKQ,EAAcR,EAAS,OAAO,EACjEY,EAAa,SAACZ,GAAgB,OAAKQ,EAAcR,EAAS,OAAO,EAEvE,SAASa,EAAYb,GACnB7B,GAAWA,EAAQ4B,EAAWC,GAChC,CAEA,SAASc,IAEP1C,GAAsBA,EADCO,EAAYK,QAA3B+B,WAEV,CAEA,SAASC,IACP3C,GAAUA,EAAOQ,EAASG,QAC5B,CAEA,SAASiC,EAAiBjB,GACxB,IACMkB,EAAe,CACnBC,SAFgDnB,EAA1CmB,SAGNC,WAHgDpB,EAAhCoB,WAIhBC,MAJgDrB,EAApBqB,MAK5BC,SALgDtB,EAAbsB,UAOrCzC,EAASG,QAAUkC,EACnB5C,GAAgBA,EAAa4C,EAC/B,CAEA,SAASK,EAAgBvB,GACvBzB,GAAeA,EAAYyB,EAC7B,CAEA,IAAMX,EAAWV,EAAYK,QAU7B,OATAK,EAASmC,YAAY,QAASd,GAC9BrB,EAASmC,YAAY,OAAQb,GAC7BtB,EAASmC,YAAY,OAAQZ,GAC7BvB,EAASmC,YAAY,QAASX,GAC9BxB,EAASmC,YAAY,mBAAoBV,GACzCzB,EAASmC,YAAY,SAAUR,GAC/B3B,EAASmC,YAAY,MAAOP,GAC5B5B,EAASmC,YAAY,YAAaD,GAE3B,WACLnD,GAAsBA,EAAmBqD,EAAUA,WAACC,SACpDrC,EAASsC,eAAe,QAASjB,GACjCrB,EAASsC,eAAe,OAAQhB,GAChCtB,EAASsC,eAAe,OAAQf,GAChCvB,EAASsC,eAAe,QAASd,GACjCxB,EAASsC,eAAe,mBAAoBb,GAC5CzB,EAASsC,eAAe,SAAUX,GAClC3B,EAASsC,eAAe,MAAOV,GAC/B5B,EAASsC,eAAe,YAAaJ,EACvC,CACF,CAakBK,EAElB,EAAG,IAEHhC,EAAAA,UAAU,WACRV,GAEF,EAAG,CAAC1C,EAAQwB,EAAkBD,EAAgBnB,EAAMkB,IAEpD8B,EAAAA,UAAU,WACRb,GACF,EAAG,CACD/B,EACAO,EACAJ,EACAE,EACAK,EACAE,IAIFgC,EAASA,UAAC,WAAKiC,IAAAA,EAEbA,OAAAA,EAAAlD,EAAYK,UAAZ6C,EAAqBC,eAAeC,EAAAA,WAAWC,MADbtF,ECvOhB,EDyOpB,EAAG,CAACA,IAEJ,IAAMuF,EACJnD,wBAAC5C,EAAS,CAACgG,IAAKzD,EAAcR,MAAOA,EAAO3B,WAAYA,IAG1D,MAAwB,mBAAbkC,GAA2BA,aAAoB2D,SACjD3D,EAAS,CAAEyD,UAAAA,EAAWG,OAAQlD,IAGhC+C,CACT"}
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: React.ReactElement;\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> | React.ReactElement => {\n const containerRef = useRef<HTMLDivElement>(null);\n const instanceRef = useRef<CoreViewer | undefined>(undefined);\n const stateRef = React.useRef<VolatileState | undefined>(undefined);\n // Use a key to force re-creation of the container element on re-mount (e.g., in StrictMode)\n const [containerKey, setContainerKey] = React.useState(0);\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 // Increment key to force new container element, ensuring previous CoreViewer's\n // async rendering won't affect the new container (handles StrictMode double-mount)\n setContainerKey((k) => k + 1);\n }, []);\n\n useEffect(() => {\n initInstance();\n setViewerOptions();\n\n const cleanup = registerEventHandlers();\n return cleanup;\n }, [containerKey]);\n\n useEffect(() => {\n if (containerKey === 0) return; // Skip initial render before key is set\n loadSource();\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [\n containerKey,\n source,\n authorStyleSheet,\n userStyleSheet,\n zoom,\n fitToScreen,\n bookMode,\n ]);\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\n key={containerKey}\n ref={containerRef}\n style={style}\n background={background}\n />\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","undefined","stateRef","React","_React$useState","useState","containerKey","setContainerKey","setViewerOptions","current","setOptions","loadSource","_ref2","_ref3","instance","documentOptions","_extends","endsWith","loadPublication","loadDocument","url","useEffect","k","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","createElement","key","ref","Function","reload"],"mappings":"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"}
@@ -1,4 +1,4 @@
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:v=!0,autoResize:m=!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(void 0),G=a.useRef(void 0);function j(){W.current.setOptions({fontSize:g,pageViewMode:S,renderAllPages:v,autoResize:m,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:v,autoResize:m,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,v,m,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)`
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 s(){return s=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},s.apply(null,arguments)}let c;const u=({source:e,page:c=1,zoom:u=1,bookMode:f=!0,fontSize:g=16,background:p="#ececec",renderAllPages:v=!0,autoResize:m=!0,pageViewMode:S=t.SINGLE_PAGE,defaultPaperSize:h,pageBorderWidth:y=1,fitToScreen:L=!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(void 0),G=a.useRef(void 0),[j,x]=a.useState(0);function B(){W.current.setOptions({fontSize:g,pageViewMode:S,renderAllPages:v,autoResize:m,defaultPaperSize:h,pageBorderWidth:y})}function C(){const n=W.current,t=s({},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:v,autoResize:m,defaultPaperSize:h,pageBorderWidth:y,fitToScreen:L})}d(()=>{x(e=>e+1)},[]),d(()=>(W.current=new o({viewportElement:T.current}),B(),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 s(){A&&A(G.current)}function c(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",s),l.addListener("nav",c),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",s),l.removeListener("nav",c),l.removeListener("hyperlink",u)}}()),[j]),d(()=>{0!==j&&C()},[j,e,z,b,u,L,f]),d(()=>{B()},[g,S,v,m,h,y]),d(()=>{var e;null==(e=W.current)||e.navigateToPage(n.EPAGE,c-1)},[c]);const N=a.createElement(l,{key:j,ref:T,style:P,background:p});return"function"==typeof R&&R instanceof Function?R({container:N,reload:C}):N},l=e.div(c||(c=(e=>e)`
2
2
  overflow: scroll;
3
3
  background: ${0} !important;
4
4
  `),({background:e})=>e);export{u as Renderer};
@@ -1 +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: React.ReactElement;\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> | React.ReactElement => {\n const containerRef = useRef<HTMLDivElement>(null);\n const instanceRef = useRef<CoreViewer | undefined>(undefined);\n const stateRef = React.useRef<VolatileState | undefined>(undefined);\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","undefined","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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"}
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: React.ReactElement;\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> | React.ReactElement => {\n const containerRef = useRef<HTMLDivElement>(null);\n const instanceRef = useRef<CoreViewer | undefined>(undefined);\n const stateRef = React.useRef<VolatileState | undefined>(undefined);\n // Use a key to force re-creation of the container element on re-mount (e.g., in StrictMode)\n const [containerKey, setContainerKey] = React.useState(0);\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 // Increment key to force new container element, ensuring previous CoreViewer's\n // async rendering won't affect the new container (handles StrictMode double-mount)\n setContainerKey((k) => k + 1);\n }, []);\n\n useEffect(() => {\n initInstance();\n setViewerOptions();\n\n const cleanup = registerEventHandlers();\n return cleanup;\n }, [containerKey]);\n\n useEffect(() => {\n if (containerKey === 0) return; // Skip initial render before key is set\n loadSource();\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [\n containerKey,\n source,\n authorStyleSheet,\n userStyleSheet,\n zoom,\n fitToScreen,\n bookMode,\n ]);\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\n key={containerKey}\n ref={containerRef}\n style={style}\n background={background}\n />\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","undefined","stateRef","React","containerKey","setContainerKey","useState","setViewerOptions","current","setOptions","loadSource","instance","documentOptions","_extends","endsWith","loadPublication","loadDocument","url","useEffect","k","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","createElement","Container","key","ref","Function","reload","styled","div","_t"],"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.39.1",
4
+ "version": "2.40.0",
5
5
  "author": "Yasuaki Uechi <y@uechi.io>",
6
6
  "scripts": {
7
7
  "build": "microbundle --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.39.1"
21
+ "@vivliostyle/core": "^2.40.0"
22
22
  },
23
23
  "peerDependencies": {
24
24
  "react": "^19.0.0",
@@ -69,5 +69,5 @@
69
69
  "engines": {
70
70
  "node": ">=20"
71
71
  },
72
- "gitHead": "9f697b0ee5d6b03494973d97cfc50062bba467cb"
72
+ "gitHead": "621b130c8638fb4f3aa01a2e804c5fc40ef09bfa"
73
73
  }