react-native-simple-epub-reader 0.1.2 → 0.1.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (36) hide show
  1. package/lib/module/components/GestureHandler/index.js +8 -2
  2. package/lib/module/components/GestureHandler/index.js.map +1 -1
  3. package/lib/module/components/Reader.js +125 -22
  4. package/lib/module/components/Reader.js.map +1 -1
  5. package/lib/module/constants/template.js +189 -226
  6. package/lib/module/constants/template.js.map +1 -1
  7. package/lib/module/constants/theme.js +28 -11
  8. package/lib/module/constants/theme.js.map +1 -1
  9. package/lib/module/helpers/downloadEpub.js +5 -1
  10. package/lib/module/helpers/downloadEpub.js.map +1 -1
  11. package/lib/module/helpers/saveTemplateToFile.js +4 -0
  12. package/lib/module/helpers/saveTemplateToFile.js.map +1 -1
  13. package/lib/module/hooks/useInjectWebviewVariables.js +4 -2
  14. package/lib/module/hooks/useInjectWebviewVariables.js.map +1 -1
  15. package/lib/typescript/src/components/GestureHandler/index.d.ts.map +1 -1
  16. package/lib/typescript/src/components/Reader.d.ts +1 -1
  17. package/lib/typescript/src/components/Reader.d.ts.map +1 -1
  18. package/lib/typescript/src/constants/template.d.ts +1 -1
  19. package/lib/typescript/src/constants/template.d.ts.map +1 -1
  20. package/lib/typescript/src/constants/theme.d.ts.map +1 -1
  21. package/lib/typescript/src/helpers/downloadEpub.d.ts.map +1 -1
  22. package/lib/typescript/src/helpers/saveTemplateToFile.d.ts +1 -0
  23. package/lib/typescript/src/helpers/saveTemplateToFile.d.ts.map +1 -1
  24. package/lib/typescript/src/hooks/useInjectWebviewVariables.d.ts +2 -1
  25. package/lib/typescript/src/hooks/useInjectWebviewVariables.d.ts.map +1 -1
  26. package/lib/typescript/src/types/index.d.ts +4 -0
  27. package/lib/typescript/src/types/index.d.ts.map +1 -1
  28. package/package.json +1 -1
  29. package/src/components/GestureHandler/index.tsx +8 -0
  30. package/src/components/Reader.tsx +161 -27
  31. package/src/constants/template.ts +189 -226
  32. package/src/constants/theme.ts +28 -11
  33. package/src/helpers/downloadEpub.ts +7 -1
  34. package/src/helpers/saveTemplateToFile.ts +5 -0
  35. package/src/hooks/useInjectWebviewVariables.ts +9 -0
  36. package/src/types/index.ts +4 -0
@@ -7,7 +7,9 @@ const GestureHandler = ({
7
7
  onSwipeLeft,
8
8
  onSwipeRight,
9
9
  onTap,
10
- onPinch
10
+ onPinchStart,
11
+ onPinch,
12
+ onPinchEnd
11
13
  }) => {
12
14
  const swipeLeftGesture = Gesture.Fling().runOnJS(true).direction(Directions.LEFT).onEnd(() => {
13
15
  onSwipeLeft?.();
@@ -18,8 +20,12 @@ const GestureHandler = ({
18
20
  const tapGesture = Gesture.Tap().runOnJS(true).maxDuration(250).onStart(() => {
19
21
  onTap?.();
20
22
  });
21
- const pinchGesture = Gesture.Pinch().runOnJS(true).onUpdate(e => {
23
+ const pinchGesture = Gesture.Pinch().runOnJS(true).onStart(() => {
24
+ onPinchStart?.();
25
+ }).onUpdate(e => {
22
26
  onPinch?.(e);
27
+ }).onEnd(() => {
28
+ onPinchEnd?.();
23
29
  });
24
30
  const combinedGesture = Gesture.Race(Gesture.Exclusive(swipeLeftGesture, swipeRightGesture), tapGesture, pinchGesture);
25
31
  return /*#__PURE__*/_jsx(GestureHandlerRootView, {
@@ -1 +1 @@
1
- {"version":3,"names":["Directions","Gesture","GestureDetector","GestureHandlerRootView","jsx","_jsx","GestureHandler","children","onSwipeLeft","onSwipeRight","onTap","onPinch","swipeLeftGesture","Fling","runOnJS","direction","LEFT","onEnd","swipeRightGesture","RIGHT","tapGesture","Tap","maxDuration","onStart","pinchGesture","Pinch","onUpdate","e","combinedGesture","Race","Exclusive","style","styles","container","gesture","flex"],"sourceRoot":"../../../../src","sources":["components/GestureHandler/index.tsx"],"mappings":";;AAEA,SACEA,UAAU,EACVC,OAAO,EACPC,eAAe,EACfC,sBAAsB,QACjB,8BAA8B;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAGtC,MAAMC,cAA0D,GAAGA,CAAC;EAClEC,QAAQ;EACRC,WAAW;EACXC,YAAY;EACZC,KAAK;EACLC;AACF,CAAC,KAAK;EACJ,MAAMC,gBAAgB,GAAGX,OAAO,CAACY,KAAK,CAAC,CAAC,CACrCC,OAAO,CAAC,IAAI,CAAC,CACbC,SAAS,CAACf,UAAU,CAACgB,IAAI,CAAC,CAC1BC,KAAK,CAAC,MAAM;IACXT,WAAW,GAAG,CAAC;EACjB,CAAC,CAAC;EAEJ,MAAMU,iBAAiB,GAAGjB,OAAO,CAACY,KAAK,CAAC,CAAC,CACtCC,OAAO,CAAC,IAAI,CAAC,CACbC,SAAS,CAACf,UAAU,CAACmB,KAAK,CAAC,CAC3BF,KAAK,CAAC,MAAM;IACXR,YAAY,GAAG,CAAC;EAClB,CAAC,CAAC;EAEJ,MAAMW,UAAU,GAAGnB,OAAO,CAACoB,GAAG,CAAC,CAAC,CAC7BP,OAAO,CAAC,IAAI,CAAC,CACbQ,WAAW,CAAC,GAAG,CAAC,CAChBC,OAAO,CAAC,MAAM;IACbb,KAAK,GAAG,CAAC;EACX,CAAC,CAAC;EAEJ,MAAMc,YAAY,GAAGvB,OAAO,CAACwB,KAAK,CAAC,CAAC,CACjCX,OAAO,CAAC,IAAI,CAAC,CACbY,QAAQ,CAAEC,CAAC,IAAK;IACfhB,OAAO,GAAGgB,CAAC,CAAC;EACd,CAAC,CAAC;EAEJ,MAAMC,eAAe,GAAG3B,OAAO,CAAC4B,IAAI,CAClC5B,OAAO,CAAC6B,SAAS,CAAClB,gBAAgB,EAAEM,iBAAiB,CAAC,EACtDE,UAAU,EACVI,YACF,CAAC;EACD,oBACEnB,IAAA,CAACF,sBAAsB;IAAC4B,KAAK,EAAEC,MAAM,CAACC,SAAU;IAAA1B,QAAA,eAC9CF,IAAA,CAACH,eAAe;MAACgC,OAAO,EAAEN,eAAgB;MAAArB,QAAA,EAAEA;IAAQ,CAAkB;EAAC,CACjD,CAAC;AAE7B,CAAC;AAED,MAAMyB,MAAM,GAAG;EACbC,SAAS,EAAE;IACTE,IAAI,EAAE;EACR;AACF,CAAC;AAED,eAAe7B,cAAc","ignoreList":[]}
1
+ {"version":3,"names":["Directions","Gesture","GestureDetector","GestureHandlerRootView","jsx","_jsx","GestureHandler","children","onSwipeLeft","onSwipeRight","onTap","onPinchStart","onPinch","onPinchEnd","swipeLeftGesture","Fling","runOnJS","direction","LEFT","onEnd","swipeRightGesture","RIGHT","tapGesture","Tap","maxDuration","onStart","pinchGesture","Pinch","onUpdate","e","combinedGesture","Race","Exclusive","style","styles","container","gesture","flex"],"sourceRoot":"../../../../src","sources":["components/GestureHandler/index.tsx"],"mappings":";;AAEA,SACEA,UAAU,EACVC,OAAO,EACPC,eAAe,EACfC,sBAAsB,QACjB,8BAA8B;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAGtC,MAAMC,cAA0D,GAAGA,CAAC;EAClEC,QAAQ;EACRC,WAAW;EACXC,YAAY;EACZC,KAAK;EACLC,YAAY;EACZC,OAAO;EACPC;AACF,CAAC,KAAK;EACJ,MAAMC,gBAAgB,GAAGb,OAAO,CAACc,KAAK,CAAC,CAAC,CACrCC,OAAO,CAAC,IAAI,CAAC,CACbC,SAAS,CAACjB,UAAU,CAACkB,IAAI,CAAC,CAC1BC,KAAK,CAAC,MAAM;IACXX,WAAW,GAAG,CAAC;EACjB,CAAC,CAAC;EAEJ,MAAMY,iBAAiB,GAAGnB,OAAO,CAACc,KAAK,CAAC,CAAC,CACtCC,OAAO,CAAC,IAAI,CAAC,CACbC,SAAS,CAACjB,UAAU,CAACqB,KAAK,CAAC,CAC3BF,KAAK,CAAC,MAAM;IACXV,YAAY,GAAG,CAAC;EAClB,CAAC,CAAC;EAEJ,MAAMa,UAAU,GAAGrB,OAAO,CAACsB,GAAG,CAAC,CAAC,CAC7BP,OAAO,CAAC,IAAI,CAAC,CACbQ,WAAW,CAAC,GAAG,CAAC,CAChBC,OAAO,CAAC,MAAM;IACbf,KAAK,GAAG,CAAC;EACX,CAAC,CAAC;EAEJ,MAAMgB,YAAY,GAAGzB,OAAO,CAAC0B,KAAK,CAAC,CAAC,CACjCX,OAAO,CAAC,IAAI,CAAC,CACbS,OAAO,CAAC,MAAM;IACbd,YAAY,GAAG,CAAC;EAClB,CAAC,CAAC,CACDiB,QAAQ,CAAEC,CAAC,IAAK;IACfjB,OAAO,GAAGiB,CAAC,CAAC;EACd,CAAC,CAAC,CACDV,KAAK,CAAC,MAAM;IACXN,UAAU,GAAG,CAAC;EAChB,CAAC,CAAC;EAEJ,MAAMiB,eAAe,GAAG7B,OAAO,CAAC8B,IAAI,CAClC9B,OAAO,CAAC+B,SAAS,CAAClB,gBAAgB,EAAEM,iBAAiB,CAAC,EACtDE,UAAU,EACVI,YACF,CAAC;EACD,oBACErB,IAAA,CAACF,sBAAsB;IAAC8B,KAAK,EAAEC,MAAM,CAACC,SAAU;IAAA5B,QAAA,eAC9CF,IAAA,CAACH,eAAe;MAACkC,OAAO,EAAEN,eAAgB;MAAAvB,QAAA,EAAEA;IAAQ,CAAkB;EAAC,CACjD,CAAC;AAE7B,CAAC;AAED,MAAM2B,MAAM,GAAG;EACbC,SAAS,EAAE;IACTE,IAAI,EAAE;EACR;AACF,CAAC;AAED,eAAe/B,cAAc","ignoreList":[]}
@@ -4,7 +4,7 @@ import { View, Text, ActivityIndicator, StyleSheet } from 'react-native';
4
4
  import { SourceType } from "../types/index.js";
5
5
  import { useCallback, useContext, useEffect, useMemo, useRef, useState } from 'react';
6
6
  import { loadScripts } from "../helpers/loadScripts.js";
7
- import { saveTemplateToFile } from "../helpers/saveTemplateToFile.js";
7
+ import { checkTemplateFileExists, getTemplateFileUri, saveTemplateToFile } from "../helpers/saveTemplateToFile.js";
8
8
  import { downloadEpub } from "../helpers/downloadEpub.js";
9
9
  import { Paths } from 'expo-file-system';
10
10
  import { useInjectWebViewVariables } from "../hooks/useInjectWebviewVariables.js";
@@ -13,13 +13,15 @@ import GestureHandler from "./GestureHandler/index.js";
13
13
  import { defaultTheme as initialTheme } from "../constants/theme.js";
14
14
  import { ReaderContext } from "../context/ReaderContext.js";
15
15
  import INTERNAL_EVENTS from "../constants/internalEvents.js";
16
- import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
16
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
17
17
  const Reader = ({
18
18
  src,
19
19
  onTap,
20
20
  onSwipeLeft,
21
21
  onSwipeRight,
22
22
  initialLocation,
23
+ beginAt,
24
+ waitForLocationsReady = false,
23
25
  onLocationsReady = () => {},
24
26
  onLocationChange = () => {},
25
27
  onFinish = () => {},
@@ -29,7 +31,11 @@ const Reader = ({
29
31
  onWebViewMessage
30
32
  }) => {
31
33
  const [templateUri, setTemplateUri] = useState('');
32
- const [isReaderReady, setIsReaderReady] = useState(false);
34
+ const pinchStartFontSizeRef = useRef(null);
35
+ const hasAppliedBeginAtRef = useRef(false);
36
+ const templateAssetsRef = useRef(null);
37
+ const hasPersistedLocationsRef = useRef(false);
38
+ const hasLocationsReadyRef = useRef(false);
33
39
  const {
34
40
  registerBook,
35
41
  goNext,
@@ -51,6 +57,25 @@ const Reader = ({
51
57
  injectWebViewVariables
52
58
  } = useInjectWebViewVariables();
53
59
  const bookRef = useRef(null);
60
+ const goToProgress = useCallback(progress => {
61
+ const normalizedProgress = progress > 1 ? Math.min(Math.max(progress / 100, 0), 1) : Math.min(Math.max(progress, 0), 1);
62
+ bookRef.current?.injectJavaScript(`
63
+ if (
64
+ typeof rendition !== 'undefined' &&
65
+ rendition &&
66
+ typeof book !== 'undefined' &&
67
+ book &&
68
+ book.locations &&
69
+ typeof book.locations.cfiFromPercentage === 'function'
70
+ ) {
71
+ const targetCfi = book.locations.cfiFromPercentage(${normalizedProgress});
72
+ if (targetCfi) {
73
+ rendition.display(targetCfi);
74
+ }
75
+ }
76
+ true;
77
+ `);
78
+ }, []);
54
79
  const onMessage = event => {
55
80
  let parsedEvent;
56
81
  try {
@@ -59,7 +84,6 @@ const Reader = ({
59
84
  console.warn('Failed to parse WebView message:', error);
60
85
  return;
61
86
  }
62
- console.log(parsedEvent.type);
63
87
  if (!INTERNAL_EVENTS.includes(parsedEvent?.type) && onWebViewMessage) {
64
88
  return onWebViewMessage(parsedEvent);
65
89
  }
@@ -90,14 +114,43 @@ const Reader = ({
90
114
  break;
91
115
  case 'onLocationsReady':
92
116
  const props = parsedEvent;
117
+ hasLocationsReadyRef.current = true;
93
118
  setLocations(parsedEvent.locations);
94
119
  setTotalLocations(props.totalLocations);
95
120
  setCurrentLocation(props.currentLocation);
96
121
  setProgress(props.progress);
97
- return onLocationsReady(props.epubKey, parsedEvent.locations);
98
- case 'onReady':
99
- setIsReaderReady(true);
100
122
  setIsLoading(false);
123
+ if (typeof beginAt === 'number' && !initialLocation && !hasAppliedBeginAtRef.current) {
124
+ goToProgress(beginAt);
125
+ hasAppliedBeginAtRef.current = true;
126
+ }
127
+ onLocationsReady(props.epubKey, parsedEvent.locations);
128
+ if (parsedEvent.locations?.length && templateAssetsRef.current && !hasPersistedLocationsRef.current) {
129
+ setTimeout(() => {
130
+ const assets = templateAssetsRef.current;
131
+ if (!assets) return;
132
+ try {
133
+ const generatedTemplateWithLocations = injectWebViewVariables({
134
+ jszip: assets.jszip,
135
+ epubjs: assets.epubjs,
136
+ type: SourceType.EPUB,
137
+ allowScriptedContent: true,
138
+ book: assets.localEpubUri,
139
+ theme: initialTheme,
140
+ locations: parsedEvent.locations
141
+ });
142
+ saveTemplateToFile(generatedTemplateWithLocations, htmlTemplateName);
143
+ hasPersistedLocationsRef.current = true;
144
+ } catch (persistError) {
145
+ console.warn('Failed to persist cached locations:', persistError);
146
+ }
147
+ }, 0);
148
+ }
149
+ break;
150
+ case 'onReady':
151
+ if (!waitForLocationsReady) {
152
+ setIsLoading(false);
153
+ }
101
154
  if (initialLocation) {
102
155
  goToLocation(initialLocation);
103
156
  }
@@ -120,26 +173,39 @@ const Reader = ({
120
173
  onTap?.();
121
174
  };
122
175
  const handleOnSwipeLeft = () => {
123
- if (!isReaderReady) return;
124
176
  onSwipeLeft?.();
125
177
  goNext();
126
178
  };
127
179
  const handleOnSwipeRight = () => {
128
- if (!isReaderReady) return;
129
180
  onSwipeRight?.();
130
181
  goPrevious();
131
182
  };
132
183
  const handleOnPinch = e => {
133
- if (!isReaderReady) return;
134
- const fontSizeValue = parseInt(fontSize.replace('pt', ''), 10);
135
- const scaleValue = e.scale > 1 ? e.scale * 0.5 : e.scale;
136
- const newFontSize = fontSizeValue * scaleValue;
137
- const clampedFontSize = Math.min(Math.max(newFontSize, 6), 32);
138
- changeFontSize(`${clampedFontSize}pt`);
184
+ if (pinchStartFontSizeRef.current === null) {
185
+ pinchStartFontSizeRef.current = parseFloat(fontSize.replace('pt', ''));
186
+ }
187
+ const baseFontSize = pinchStartFontSizeRef.current;
188
+ const sensitivity = 0.5;
189
+ const adjustedScale = 1 + (e.scale - 1) * sensitivity;
190
+ const scaledFontSize = baseFontSize * adjustedScale;
191
+ const clampedFontSize = Math.min(Math.max(scaledFontSize, 9), 32);
192
+ const smoothedFontSize = Math.round(clampedFontSize * 2) / 2;
193
+ changeFontSize(`${smoothedFontSize}pt`);
139
194
  onPinch?.(e);
140
195
  };
141
- const htmlTemplateName = useMemo(() => src.split('/').pop()?.replace('.epub', '.html') || 'index.html', [src]);
142
- const epubFileName = useMemo(() => src.split('/').pop() || 'book.epub', [src]);
196
+ const handleOnPinchStart = () => {
197
+ pinchStartFontSizeRef.current = parseFloat(fontSize.replace('pt', ''));
198
+ };
199
+ const handleOnPinchEnd = () => {
200
+ pinchStartFontSizeRef.current = null;
201
+ };
202
+ const epubFileName = useMemo(() => {
203
+ const splited = src.split('/').pop() || 'book.epub';
204
+ const cleanName = splited.split('?')[0] || 'book.epub';
205
+ const decoded = decodeURIComponent(cleanName).replace(' ', '_').replace(',', '_').replace(/[^a-zA-Z0-9._-]/g, '');
206
+ return decoded;
207
+ }, [src]);
208
+ const htmlTemplateName = useMemo(() => epubFileName.replace('.epub', '-template.html').replace('.zip', '-template.html'), [epubFileName]);
143
209
  const handleBookRef = useCallback(instance => {
144
210
  bookRef.current = instance;
145
211
  if (instance) {
@@ -151,11 +217,24 @@ const Reader = ({
151
217
  const prepareReader = async () => {
152
218
  try {
153
219
  setIsLoading(true);
154
- setIsReaderReady(false);
155
220
  setTemplateUri('');
221
+ hasAppliedBeginAtRef.current = false;
222
+ hasPersistedLocationsRef.current = false;
223
+ hasLocationsReadyRef.current = false;
156
224
  const [, jszip, epubjs] = await loadScripts();
157
225
  if (!jszip || !epubjs) throw new Error('Failed to load scripts');
158
226
  const localEpubUri = await downloadEpub(src, epubFileName);
227
+ templateAssetsRef.current = {
228
+ jszip,
229
+ epubjs,
230
+ localEpubUri
231
+ };
232
+ if (checkTemplateFileExists(htmlTemplateName)) {
233
+ if (isMounted) {
234
+ setTemplateUri(getTemplateFileUri(htmlTemplateName));
235
+ }
236
+ return;
237
+ }
159
238
  const generatedTemplate = injectWebViewVariables({
160
239
  jszip,
161
240
  epubjs,
@@ -180,7 +259,7 @@ const Reader = ({
180
259
  isMounted = false;
181
260
  };
182
261
  }, [src, htmlTemplateName, epubFileName, injectWebViewVariables, setIsLoading]);
183
- if (isLoading || !templateUri) {
262
+ if (!templateUri) {
184
263
  return LoaderComponent ? /*#__PURE__*/_jsx(LoaderComponent, {}) : /*#__PURE__*/_jsxs(View, {
185
264
  style: styles.loaderContainer,
186
265
  children: [/*#__PURE__*/_jsx(ActivityIndicator, {
@@ -190,12 +269,15 @@ const Reader = ({
190
269
  })]
191
270
  });
192
271
  }
193
- return /*#__PURE__*/_jsx(_Fragment, {
194
- children: /*#__PURE__*/_jsx(GestureHandler, {
272
+ return /*#__PURE__*/_jsxs(View, {
273
+ style: styles.container,
274
+ children: [/*#__PURE__*/_jsx(GestureHandler, {
195
275
  onSwipeLeft: handleOnSwipeLeft,
196
276
  onSwipeRight: handleOnSwipeRight,
197
277
  onTap: handleOnTap,
278
+ onPinchStart: handleOnPinchStart,
198
279
  onPinch: handleOnPinch,
280
+ onPinchEnd: handleOnPinchEnd,
199
281
  children: /*#__PURE__*/_jsx(WebView, {
200
282
  pointerEvents: "none",
201
283
  ref: handleBookRef,
@@ -213,9 +295,24 @@ const Reader = ({
213
295
  allowFileAccess: true,
214
296
  javaScriptCanOpenWindowsAutomatically: true,
215
297
  onMessage: onMessage,
298
+ onLoadEnd: () => {
299
+ if (!waitForLocationsReady || hasLocationsReadyRef.current) {
300
+ setIsLoading(false);
301
+ }
302
+ },
216
303
  style: styles.container
217
304
  })
218
- })
305
+ }), isLoading && (LoaderComponent ? /*#__PURE__*/_jsx(View, {
306
+ style: styles.loaderOverlay,
307
+ children: /*#__PURE__*/_jsx(LoaderComponent, {})
308
+ }) : /*#__PURE__*/_jsxs(View, {
309
+ style: styles.loaderOverlay,
310
+ children: [/*#__PURE__*/_jsx(ActivityIndicator, {
311
+ size: "large"
312
+ }), /*#__PURE__*/_jsx(Text, {
313
+ children: "Przygotowuj\u0119 ksi\u0105\u017Ck\u0119..."
314
+ })]
315
+ }))]
219
316
  });
220
317
  };
221
318
  const styles = StyleSheet.create({
@@ -226,6 +323,12 @@ const styles = StyleSheet.create({
226
323
  flex: 1,
227
324
  justifyContent: 'center',
228
325
  alignItems: 'center'
326
+ },
327
+ loaderOverlay: {
328
+ ...StyleSheet.absoluteFillObject,
329
+ justifyContent: 'center',
330
+ alignItems: 'center',
331
+ backgroundColor: '#ffffff'
229
332
  }
230
333
  });
231
334
  export default Reader;
@@ -1 +1 @@
1
- {"version":3,"names":["View","Text","ActivityIndicator","StyleSheet","SourceType","useCallback","useContext","useEffect","useMemo","useRef","useState","loadScripts","saveTemplateToFile","downloadEpub","Paths","useInjectWebViewVariables","WebView","GestureHandler","defaultTheme","initialTheme","ReaderContext","INTERNAL_EVENTS","jsx","_jsx","jsxs","_jsxs","Fragment","_Fragment","Reader","src","onTap","onSwipeLeft","onSwipeRight","initialLocation","onLocationsReady","onLocationChange","onFinish","onBeginning","onPinch","LoaderComponent","onWebViewMessage","templateUri","setTemplateUri","isReaderReady","setIsReaderReady","registerBook","goNext","goPrevious","setMeta","setLocations","setTotalLocations","setCurrentLocation","setProgress","goToLocation","setAtEnd","setAtStart","fontSize","changeFontSize","setIsLoading","isLoading","injectWebViewVariables","bookRef","onMessage","event","parsedEvent","JSON","parse","nativeEvent","data","error","console","warn","log","type","includes","totalLocations","currentLocation","progress","currentSection","atStart","atEnd","metadata","props","locations","epubKey","reason","handleOnTap","handleOnSwipeLeft","handleOnSwipeRight","handleOnPinch","e","fontSizeValue","parseInt","replace","scaleValue","scale","newFontSize","clampedFontSize","Math","min","max","htmlTemplateName","split","pop","epubFileName","handleBookRef","instance","current","isMounted","prepareReader","jszip","epubjs","Error","localEpubUri","generatedTemplate","EPUB","allowScriptedContent","book","theme","uri","style","styles","loaderContainer","children","size","pointerEvents","ref","source","showsVerticalScrollIndicator","javaScriptEnabled","originWhitelist","scrollEnabled","mixedContentMode","allowingReadAccessToURL","document","allowUniversalAccessFromFileURLs","allowFileAccessFromFileURLs","allowFileAccess","javaScriptCanOpenWindowsAutomatically","container","create","flex","justifyContent","alignItems"],"sourceRoot":"../../../src","sources":["components/Reader.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["View","Text","ActivityIndicator","StyleSheet","SourceType","useCallback","useContext","useEffect","useMemo","useRef","useState","loadScripts","checkTemplateFileExists","getTemplateFileUri","saveTemplateToFile","downloadEpub","Paths","useInjectWebViewVariables","WebView","GestureHandler","defaultTheme","initialTheme","ReaderContext","INTERNAL_EVENTS","jsx","_jsx","jsxs","_jsxs","Reader","src","onTap","onSwipeLeft","onSwipeRight","initialLocation","beginAt","waitForLocationsReady","onLocationsReady","onLocationChange","onFinish","onBeginning","onPinch","LoaderComponent","onWebViewMessage","templateUri","setTemplateUri","pinchStartFontSizeRef","hasAppliedBeginAtRef","templateAssetsRef","hasPersistedLocationsRef","hasLocationsReadyRef","registerBook","goNext","goPrevious","setMeta","setLocations","setTotalLocations","setCurrentLocation","setProgress","goToLocation","setAtEnd","setAtStart","fontSize","changeFontSize","setIsLoading","isLoading","injectWebViewVariables","bookRef","goToProgress","progress","normalizedProgress","Math","min","max","current","injectJavaScript","onMessage","event","parsedEvent","JSON","parse","nativeEvent","data","error","console","warn","includes","type","totalLocations","currentLocation","currentSection","atStart","atEnd","metadata","props","locations","epubKey","length","setTimeout","assets","generatedTemplateWithLocations","jszip","epubjs","EPUB","allowScriptedContent","book","localEpubUri","theme","htmlTemplateName","persistError","reason","handleOnTap","handleOnSwipeLeft","handleOnSwipeRight","handleOnPinch","e","parseFloat","replace","baseFontSize","sensitivity","adjustedScale","scale","scaledFontSize","clampedFontSize","smoothedFontSize","round","handleOnPinchStart","handleOnPinchEnd","epubFileName","splited","split","pop","cleanName","decoded","decodeURIComponent","handleBookRef","instance","isMounted","prepareReader","Error","generatedTemplate","uri","style","styles","loaderContainer","children","size","container","onPinchStart","onPinchEnd","pointerEvents","ref","source","showsVerticalScrollIndicator","javaScriptEnabled","originWhitelist","scrollEnabled","mixedContentMode","allowingReadAccessToURL","document","allowUniversalAccessFromFileURLs","allowFileAccessFromFileURLs","allowFileAccess","javaScriptCanOpenWindowsAutomatically","onLoadEnd","loaderOverlay","create","flex","justifyContent","alignItems","absoluteFillObject","backgroundColor"],"sourceRoot":"../../../src","sources":["components/Reader.tsx"],"mappings":"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","ignoreList":[]}