@june24/expo-pdf-reader 0.1.7 → 0.1.9

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 +1 @@
1
- {"version":3,"file":"ExpoPdfReaderView.d.ts","sourceRoot":"","sources":["../src/ExpoPdfReaderView.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAG/B,OAAO,EAGL,UAAU,EACV,YAAY,EACb,MAAM,uBAAuB,CAAC;AAQ/B,MAAM,MAAM,gBAAgB,GAAG;IAC7B,IAAI,EAAE,MAAM,OAAO,CAAC,MAAM,CAAC,CAAC;IAC5B,cAAc,EAAE,MAAM,OAAO,CAAC,UAAU,EAAE,CAAC,CAAC;IAC5C,UAAU,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,YAAY,EAAE,CAAC,CAAC;IACtD,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC1C,IAAI,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,CAAC;IAC7B,IAAI,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,CAAC;IAC7B,MAAM,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,CAAC;IAC/B,OAAO,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,CAAC;IAChC,eAAe,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;CACnE,CAAC;AAEF,QAAA,MAAM,iBAAiB;;;;;;;;;;;;0CAwGtB,CAAC;AAEF,eAAe,iBAAiB,CAAC"}
1
+ {"version":3,"file":"ExpoPdfReaderView.d.ts","sourceRoot":"","sources":["../src/ExpoPdfReaderView.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAG/B,OAAO,EACL,UAAU,EAGV,YAAY,EACb,MAAM,uBAAuB,CAAC;AAQ/B,MAAM,MAAM,gBAAgB,GAAG;IAC7B,IAAI,EAAE,MAAM,OAAO,CAAC,MAAM,CAAC,CAAC;IAC5B,cAAc,EAAE,MAAM,OAAO,CAAC,UAAU,EAAE,CAAC,CAAC;IAC5C,UAAU,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,YAAY,EAAE,CAAC,CAAC;IACtD,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC1C,IAAI,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,CAAC;IAC7B,IAAI,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,CAAC;IAC7B,MAAM,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,CAAC;IAC/B,OAAO,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,CAAC;IAChC,eAAe,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;CACnE,CAAC;AAEF,QAAA,MAAM,iBAAiB;;;;;;;;;;;;0CAwGtB,CAAC;AAEF,eAAe,iBAAiB,CAAC"}
@@ -1,5 +1,4 @@
1
- import { requireNativeModule } from 'expo-modules-core';
2
- import { requireNativeViewManager } from 'expo-modules-core';
1
+ import { requireNativeModule, requireNativeViewManager } from 'expo-modules-core';
3
2
  import * as React from 'react';
4
3
  import { findNodeHandle } from 'react-native';
5
4
  const NativeView = requireNativeViewManager('ExpoPdfReader');
@@ -1 +1 @@
1
- {"version":3,"file":"ExpoPdfReaderView.js","sourceRoot":"","sources":["../src/ExpoPdfReaderView.tsx"],"names":[],"mappings":"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","sourcesContent":["import { requireNativeModule } from 'expo-modules-core';\nimport { requireNativeViewManager } from 'expo-modules-core';\nimport * as React from 'react';\nimport { findNodeHandle } from 'react-native';\n\nimport {\n ExpoPdfReaderViewProps,\n NativeExpoPdfReaderViewProps,\n Annotation,\n SearchResult,\n} from './ExpoPdfReader.types';\n\nconst NativeView: React.ComponentType<\n NativeExpoPdfReaderViewProps & { ref?: React.Ref<any> }\n> = requireNativeViewManager('ExpoPdfReader');\n\nconst NativeModule = requireNativeModule('ExpoPdfReader');\n\nexport type ExpoPdfReaderRef = {\n save: () => Promise<string>;\n getAnnotations: () => Promise<Annotation[]>;\n searchText: (text: string) => Promise<SearchResult[]>;\n goToPage: (page: number) => Promise<void>;\n undo: () => Promise<boolean>;\n redo: () => Promise<boolean>;\n zoomIn: () => Promise<boolean>;\n zoomOut: () => Promise<boolean>;\n renderThumbnail: (page: number, width: number) => Promise<string>;\n};\n\nconst ExpoPdfReaderView = React.forwardRef<ExpoPdfReaderRef, ExpoPdfReaderViewProps>(\n (props, ref) => {\n const nativeRef = React.useRef<any>(null);\n\n React.useImperativeHandle(ref, () => ({\n save: async () => {\n if (nativeRef.current) {\n const viewTag = findNodeHandle(nativeRef.current);\n if (viewTag && NativeModule && NativeModule.save) {\n return await NativeModule.save(viewTag);\n }\n }\n throw new Error('Cannot save: Native view not found');\n },\n getAnnotations: async () => {\n if (nativeRef.current) {\n const viewTag = findNodeHandle(nativeRef.current);\n if (viewTag && NativeModule && NativeModule.getAnnotations) {\n return await NativeModule.getAnnotations(viewTag);\n }\n }\n return [];\n },\n searchText: async (text: string) => {\n if (nativeRef.current) {\n const viewTag = findNodeHandle(nativeRef.current);\n if (viewTag && NativeModule && NativeModule.searchText) {\n return await NativeModule.searchText(viewTag, text);\n }\n }\n return [];\n },\n goToPage: async (page: number) => {\n if (nativeRef.current) {\n const viewTag = findNodeHandle(nativeRef.current);\n if (viewTag && NativeModule && NativeModule.goToPage) {\n return await NativeModule.goToPage(viewTag, page);\n }\n }\n },\n undo: async () => {\n if (nativeRef.current) {\n const viewTag = findNodeHandle(nativeRef.current);\n if (viewTag && NativeModule && NativeModule.undo) {\n return await NativeModule.undo(viewTag);\n }\n }\n return false;\n },\n redo: async () => {\n if (nativeRef.current) {\n const viewTag = findNodeHandle(nativeRef.current);\n if (viewTag && NativeModule && NativeModule.redo) {\n return await NativeModule.redo(viewTag);\n }\n }\n return false;\n },\n zoomIn: async () => {\n if (nativeRef.current) {\n const viewTag = findNodeHandle(nativeRef.current);\n if (viewTag && NativeModule && NativeModule.zoomIn) {\n return await NativeModule.zoomIn(viewTag);\n }\n }\n return false;\n },\n zoomOut: async () => {\n if (nativeRef.current) {\n const viewTag = findNodeHandle(nativeRef.current);\n if (viewTag && NativeModule && NativeModule.zoomOut) {\n return await NativeModule.zoomOut(viewTag);\n }\n }\n return false;\n },\n renderThumbnail: async (page: number, width: number) => {\n if (nativeRef.current) {\n const viewTag = findNodeHandle(nativeRef.current);\n if (viewTag && NativeModule && NativeModule.renderThumbnail) {\n return await NativeModule.renderThumbnail(viewTag, page, width);\n }\n }\n return '';\n },\n }));\n\n const { annotationOptions, ...restProps } = props;\n\n const nativeProps: NativeExpoPdfReaderViewProps = {\n ...(restProps as NativeExpoPdfReaderViewProps),\n displayMode: props.displayMode,\n initialPage: props.initialPage,\n minZoom: props.minZoom,\n maxZoom: props.maxZoom,\n annotationTool: annotationOptions?.tool,\n annotationColor: annotationOptions?.color,\n annotationFontSize: annotationOptions?.fontSize,\n annotationText: annotationOptions?.text,\n annotationStrokeWidth: annotationOptions?.strokeWidth,\n };\n\n return <NativeView ref={nativeRef} {...nativeProps} />;\n }\n);\n\nexport default ExpoPdfReaderView;\n"]}
1
+ {"version":3,"file":"ExpoPdfReaderView.js","sourceRoot":"","sources":["../src/ExpoPdfReaderView.tsx"],"names":[],"mappings":"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","sourcesContent":["import { requireNativeModule, requireNativeViewManager } from 'expo-modules-core';\nimport * as React from 'react';\nimport { findNodeHandle } from 'react-native';\n\nimport {\n Annotation,\n ExpoPdfReaderViewProps,\n NativeExpoPdfReaderViewProps,\n SearchResult,\n} from './ExpoPdfReader.types';\n\nconst NativeView: React.ComponentType<\n NativeExpoPdfReaderViewProps & { ref?: React.Ref<any> }\n> = requireNativeViewManager('ExpoPdfReader');\n\nconst NativeModule = requireNativeModule('ExpoPdfReader');\n\nexport type ExpoPdfReaderRef = {\n save: () => Promise<string>;\n getAnnotations: () => Promise<Annotation[]>;\n searchText: (text: string) => Promise<SearchResult[]>;\n goToPage: (page: number) => Promise<void>;\n undo: () => Promise<boolean>;\n redo: () => Promise<boolean>;\n zoomIn: () => Promise<boolean>;\n zoomOut: () => Promise<boolean>;\n renderThumbnail: (page: number, width: number) => Promise<string>;\n};\n\nconst ExpoPdfReaderView = React.forwardRef<ExpoPdfReaderRef, ExpoPdfReaderViewProps>(\n (props, ref) => {\n const nativeRef = React.useRef<any>(null);\n\n React.useImperativeHandle(ref, () => ({\n save: async () => {\n if (nativeRef.current) {\n const viewTag = findNodeHandle(nativeRef.current);\n if (viewTag && NativeModule && NativeModule.save) {\n return await NativeModule.save(viewTag);\n }\n }\n throw new Error('Cannot save: Native view not found');\n },\n getAnnotations: async () => {\n if (nativeRef.current) {\n const viewTag = findNodeHandle(nativeRef.current);\n if (viewTag && NativeModule && NativeModule.getAnnotations) {\n return await NativeModule.getAnnotations(viewTag);\n }\n }\n return [];\n },\n searchText: async (text: string) => {\n if (nativeRef.current) {\n const viewTag = findNodeHandle(nativeRef.current);\n if (viewTag && NativeModule && NativeModule.searchText) {\n return await NativeModule.searchText(viewTag, text);\n }\n }\n return [];\n },\n goToPage: async (page: number) => {\n if (nativeRef.current) {\n const viewTag = findNodeHandle(nativeRef.current);\n if (viewTag && NativeModule && NativeModule.goToPage) {\n return await NativeModule.goToPage(viewTag, page);\n }\n }\n },\n undo: async () => {\n if (nativeRef.current) {\n const viewTag = findNodeHandle(nativeRef.current);\n if (viewTag && NativeModule && NativeModule.undo) {\n return await NativeModule.undo(viewTag);\n }\n }\n return false;\n },\n redo: async () => {\n if (nativeRef.current) {\n const viewTag = findNodeHandle(nativeRef.current);\n if (viewTag && NativeModule && NativeModule.redo) {\n return await NativeModule.redo(viewTag);\n }\n }\n return false;\n },\n zoomIn: async () => {\n if (nativeRef.current) {\n const viewTag = findNodeHandle(nativeRef.current);\n if (viewTag && NativeModule && NativeModule.zoomIn) {\n return await NativeModule.zoomIn(viewTag);\n }\n }\n return false;\n },\n zoomOut: async () => {\n if (nativeRef.current) {\n const viewTag = findNodeHandle(nativeRef.current);\n if (viewTag && NativeModule && NativeModule.zoomOut) {\n return await NativeModule.zoomOut(viewTag);\n }\n }\n return false;\n },\n renderThumbnail: async (page: number, width: number) => {\n if (nativeRef.current) {\n const viewTag = findNodeHandle(nativeRef.current);\n if (viewTag && NativeModule && NativeModule.renderThumbnail) {\n return await NativeModule.renderThumbnail(viewTag, page, width);\n }\n }\n return '';\n },\n }));\n\n const { annotationOptions, ...restProps } = props;\n\n const nativeProps: NativeExpoPdfReaderViewProps = {\n ...(restProps as NativeExpoPdfReaderViewProps),\n displayMode: props.displayMode,\n initialPage: props.initialPage,\n minZoom: props.minZoom,\n maxZoom: props.maxZoom,\n annotationTool: annotationOptions?.tool,\n annotationColor: annotationOptions?.color,\n annotationFontSize: annotationOptions?.fontSize,\n annotationText: annotationOptions?.text,\n annotationStrokeWidth: annotationOptions?.strokeWidth,\n };\n\n return <NativeView ref={nativeRef} {...nativeProps} />;\n }\n);\n\nexport default ExpoPdfReaderView;\n"]}
package/build/index.d.ts CHANGED
@@ -1,4 +1,6 @@
1
- import ExpoPdfReaderView, { ExpoPdfReaderRef } from './ExpoPdfReaderView';
2
- import { ExpoPdfReaderViewProps, Annotation, AnnotationOptions, AnnotationTool, AnnotationChangeEvent, PageChangeEvent, ScrollEvent, SearchResult, DisplayMode } from './ExpoPdfReader.types';
3
- export { ExpoPdfReaderView, ExpoPdfReaderRef, ExpoPdfReaderViewProps, Annotation, AnnotationOptions, AnnotationTool, AnnotationChangeEvent, PageChangeEvent, ScrollEvent, SearchResult, DisplayMode, };
1
+ import type { Annotation, AnnotationChangeEvent, AnnotationOptions, AnnotationTool, DisplayMode, ExpoPdfReaderViewProps, PageChangeEvent, ScrollEvent, SearchResult } from './ExpoPdfReader.types';
2
+ import type { ExpoPdfReaderRef } from './ExpoPdfReaderView';
3
+ import ExpoPdfReaderView from './ExpoPdfReaderView';
4
+ export { ExpoPdfReaderView };
5
+ export type { Annotation, AnnotationChangeEvent, AnnotationOptions, AnnotationTool, DisplayMode, ExpoPdfReaderRef, ExpoPdfReaderViewProps, PageChangeEvent, ScrollEvent, SearchResult };
4
6
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,iBAAiB,EAAE,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAC1E,OAAO,EAAE,sBAAsB,EAAE,UAAU,EAAE,iBAAiB,EAAE,cAAc,EAAE,qBAAqB,EAAE,eAAe,EAAE,WAAW,EAAE,YAAY,EAAE,WAAW,EAAG,MAAM,uBAAuB,CAAC;AAE/L,OAAO,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,sBAAsB,EAAE,UAAU,EAAE,iBAAiB,EAAE,cAAc,EAAE,qBAAqB,EAAE,eAAe,EAAE,WAAW,EAAE,YAAY,EAAE,WAAW,GAAG,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,qBAAqB,EAAE,iBAAiB,EAAE,cAAc,EAAE,WAAW,EAAE,sBAAsB,EAAE,eAAe,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AACnM,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAC5D,OAAO,iBAAiB,MAAM,qBAAqB,CAAC;AAEpD,OAAO,EAAE,iBAAiB,EAAE,CAAC;AAC7B,YAAY,EAAE,UAAU,EAAE,qBAAqB,EAAE,iBAAiB,EAAE,cAAc,EAAE,WAAW,EAAE,gBAAgB,EAAE,sBAAsB,EAAE,eAAe,EAAE,WAAW,EAAE,YAAY,EAAE,CAAC"}
package/build/index.js CHANGED
@@ -1,3 +1,3 @@
1
1
  import ExpoPdfReaderView from './ExpoPdfReaderView';
2
- export { ExpoPdfReaderView, };
2
+ export { ExpoPdfReaderView };
3
3
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,iBAAuC,MAAM,qBAAqB,CAAC;AAG1E,OAAO,EAAE,iBAAiB,GAA4K,CAAC","sourcesContent":["import ExpoPdfReaderView, { ExpoPdfReaderRef } from './ExpoPdfReaderView';\nimport { ExpoPdfReaderViewProps, Annotation, AnnotationOptions, AnnotationTool, AnnotationChangeEvent, PageChangeEvent, ScrollEvent, SearchResult, DisplayMode, } from './ExpoPdfReader.types';\n\nexport { ExpoPdfReaderView, ExpoPdfReaderRef, ExpoPdfReaderViewProps, Annotation, AnnotationOptions, AnnotationTool, AnnotationChangeEvent, PageChangeEvent, ScrollEvent, SearchResult, DisplayMode, };\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAEA,OAAO,iBAAiB,MAAM,qBAAqB,CAAC;AAEpD,OAAO,EAAE,iBAAiB,EAAE,CAAC","sourcesContent":["import type { Annotation, AnnotationChangeEvent, AnnotationOptions, AnnotationTool, DisplayMode, ExpoPdfReaderViewProps, PageChangeEvent, ScrollEvent, SearchResult } from './ExpoPdfReader.types';\nimport type { ExpoPdfReaderRef } from './ExpoPdfReaderView';\nimport ExpoPdfReaderView from './ExpoPdfReaderView';\n\nexport { ExpoPdfReaderView };\nexport type { Annotation, AnnotationChangeEvent, AnnotationOptions, AnnotationTool, DisplayMode, ExpoPdfReaderRef, ExpoPdfReaderViewProps, PageChangeEvent, ScrollEvent, SearchResult };\n\n"]}
@@ -461,6 +461,12 @@ class ExpoPdfReaderView: ExpoView, UIGestureRecognizerDelegate {
461
461
  func setAnnotations(_ annotations: [[String: Any]]) {
462
462
  guard let document = pdfView.document else { return }
463
463
 
464
+ // Clear all existing annotations first
465
+ for i in 0..<document.pageCount {
466
+ guard let page = document.page(at: i) else { continue }
467
+ page.annotations.removeAll()
468
+ }
469
+
464
470
  // Clear undo/redo stacks when setting annotations
465
471
  undoStack.removeAll()
466
472
  redoStack.removeAll()
@@ -512,10 +518,16 @@ class ExpoPdfReaderView: ExpoView, UIGestureRecognizerDelegate {
512
518
  annotation.color = color
513
519
  }
514
520
 
521
+ annotation.shouldDisplay = true
522
+ annotation.shouldPrint = true
515
523
  page.addAnnotation(annotation)
516
524
  }
517
525
  }
518
526
  }
527
+
528
+ // Force PDF view to refresh after setting annotations
529
+ pdfView.layoutDocumentView()
530
+ pdfView.setNeedsDisplay(pdfView.bounds)
519
531
  }
520
532
 
521
533
  @objc func handlePan(_ gesture: UIPanGestureRecognizer) {
@@ -672,8 +684,7 @@ class ExpoPdfReaderView: ExpoView, UIGestureRecognizerDelegate {
672
684
 
673
685
  // Force comprehensive PDF view update
674
686
  pdfView.layoutDocumentView()
675
- pdfView.setNeedsDisplay()
676
- pdfView.currentPage?.setNeedsDisplay(pdfView.displayBox)
687
+ pdfView.setNeedsDisplay(pdfView.bounds)
677
688
  }
678
689
  else if currentTool == "highlighter" {
679
690
  let annotation = PDFAnnotation(bounds: pathBounds, forType: .ink, withProperties: nil)
@@ -696,8 +707,7 @@ class ExpoPdfReaderView: ExpoView, UIGestureRecognizerDelegate {
696
707
 
697
708
  // Force comprehensive PDF view update
698
709
  pdfView.layoutDocumentView()
699
- pdfView.setNeedsDisplay()
700
- pdfView.currentPage?.setNeedsDisplay(pdfView.displayBox)
710
+ pdfView.setNeedsDisplay(pdfView.bounds)
701
711
  }
702
712
 
703
713
  // Clear redo stack when new annotation is added
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@june24/expo-pdf-reader",
3
- "version": "0.1.7",
3
+ "version": "0.1.9",
4
4
  "description": "A PDF reader for Expo apps with annotation and zoom controls",
5
5
  "homepage": "git@gitlab.com:june_241/expo-pdf-reader.git",
6
6
  "main": "build/index.js",
@@ -1,12 +1,11 @@
1
- import { requireNativeModule } from 'expo-modules-core';
2
- import { requireNativeViewManager } from 'expo-modules-core';
1
+ import { requireNativeModule, requireNativeViewManager } from 'expo-modules-core';
3
2
  import * as React from 'react';
4
3
  import { findNodeHandle } from 'react-native';
5
4
 
6
5
  import {
6
+ Annotation,
7
7
  ExpoPdfReaderViewProps,
8
8
  NativeExpoPdfReaderViewProps,
9
- Annotation,
10
9
  SearchResult,
11
10
  } from './ExpoPdfReader.types';
12
11
 
package/src/index.ts CHANGED
@@ -1,4 +1,7 @@
1
- import ExpoPdfReaderView, { ExpoPdfReaderRef } from './ExpoPdfReaderView';
2
- import { ExpoPdfReaderViewProps, Annotation, AnnotationOptions, AnnotationTool, AnnotationChangeEvent, PageChangeEvent, ScrollEvent, SearchResult, DisplayMode, } from './ExpoPdfReader.types';
1
+ import type { Annotation, AnnotationChangeEvent, AnnotationOptions, AnnotationTool, DisplayMode, ExpoPdfReaderViewProps, PageChangeEvent, ScrollEvent, SearchResult } from './ExpoPdfReader.types';
2
+ import type { ExpoPdfReaderRef } from './ExpoPdfReaderView';
3
+ import ExpoPdfReaderView from './ExpoPdfReaderView';
4
+
5
+ export { ExpoPdfReaderView };
6
+ export type { Annotation, AnnotationChangeEvent, AnnotationOptions, AnnotationTool, DisplayMode, ExpoPdfReaderRef, ExpoPdfReaderViewProps, PageChangeEvent, ScrollEvent, SearchResult };
3
7
 
4
- export { ExpoPdfReaderView, ExpoPdfReaderRef, ExpoPdfReaderViewProps, Annotation, AnnotationOptions, AnnotationTool, AnnotationChangeEvent, PageChangeEvent, ScrollEvent, SearchResult, DisplayMode, };