@june24/expo-pdf-reader 0.1.22 → 0.1.24

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.
@@ -38,6 +38,13 @@ export interface ExpoPdfReaderViewProps extends ViewProps {
38
38
  textItalic?: boolean;
39
39
  noteColor?: string;
40
40
  initialAnnotations?: AnnotationData[];
41
+ onReady?: (event: {
42
+ nativeEvent: {
43
+ totalPages: number;
44
+ width: number;
45
+ height: number;
46
+ };
47
+ }) => void;
41
48
  onPageChange?: (event: {
42
49
  nativeEvent: {
43
50
  currentPage: number;
@@ -1 +1 @@
1
- {"version":3,"file":"ExpoPdfReader.types.d.ts","sourceRoot":"","sources":["../src/ExpoPdfReader.types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ExpoPdfReader.types.d.ts","sourceRoot":"","sources":["../src/ExpoPdfReader.types.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"ExpoPdfReader.types.js","sourceRoot":"","sources":["../src/ExpoPdfReader.types.ts"],"names":[],"mappings":"","sourcesContent":["import { ViewProps, StyleProp, ViewStyle } from 'react-native';\r\n\r\nexport type DisplayMode = 'single' | 'continuous' | 'twoUp' | 'twoUpContinuous';\r\nexport type AnnotationTool = 'pen' | 'highlighter' | 'text' | 'note' | 'eraser' | 'line';\r\n\r\nexport type AnnotationData = {\r\n type: AnnotationTool;\r\n page: number;\r\n bounds: { x: number; y: number; width: number; height: number };\r\n color?: string;\r\n strokeWidth?: number;\r\n paths?: Array<Array<{ x: number; y: number }>>;\r\n contents?: string;\r\n fontSize?: number; // зөвхөн text-д\r\n bold?: boolean; // зөвхөн text-д\r\n italic?: boolean; // зөвхөн text-д\r\n};\r\n\r\nexport interface ExpoPdfReaderViewProps extends ViewProps {\r\n url: string;\r\n style?: StyleProp<ViewStyle>;\r\n displayMode?: DisplayMode;\r\n initialPage?: number;\r\n minZoom?: number;\r\n maxZoom?: number;\r\n tool?: AnnotationTool;\r\n strokeColor?: string;\r\n strokeWidth?: number;\r\n textContent?: string;\r\n textColor?: string;\r\n textFontSize?: number;\r\n textBold?: boolean;\r\n textItalic?: boolean;\r\n noteColor?: string;\r\n initialAnnotations?: AnnotationData[];\r\n onPageChange?: (event: { nativeEvent: { currentPage: number; totalPage: number } }) => void;\r\n onAnnotationChange?: (event: { nativeEvent: { annotations: AnnotationData[] } }) => void;\r\n onUndoRedoStateChange?: (event: { nativeEvent: { canUndo: boolean; canRedo: boolean } }) => void;\r\n onNotePress?: (event: { nativeEvent: { page: number; index: number; bounds: { x: number; y: number; width: number; height: number }; contents?: string } }) => void;\r\n onTextPress?: (event: { nativeEvent: { page: number; index: number; bounds: { x: number; y: number; width: number; height: number }; contents?: string } }) => void;\r\n}\r\n\r\nexport interface ExpoPdfReaderRef {\r\n undo: () => Promise<void>;\r\n redo: () => Promise<void>;\r\n setInitialPage: (page: number) => Promise<void>;\r\n updateNote: (page: number, index: number, contents: string) => Promise<void>;\r\n updateText: (page: number, index: number, contents: string) => Promise<void>;\r\n}"]}
1
+ {"version":3,"file":"ExpoPdfReader.types.js","sourceRoot":"","sources":["../src/ExpoPdfReader.types.ts"],"names":[],"mappings":"","sourcesContent":["import { ViewProps, StyleProp, ViewStyle } from 'react-native';\r\n\r\nexport type DisplayMode = 'single' | 'continuous' | 'twoUp' | 'twoUpContinuous';\r\nexport type AnnotationTool = 'pen' | 'highlighter' | 'text' | 'note' | 'eraser' | 'line';\r\n\r\nexport type AnnotationData = {\r\n type: AnnotationTool;\r\n page: number;\r\n bounds: { x: number; y: number; width: number; height: number };\r\n color?: string;\r\n strokeWidth?: number;\r\n paths?: Array<Array<{ x: number; y: number }>>;\r\n contents?: string;\r\n fontSize?: number; // зөвхөн text-д\r\n bold?: boolean; // зөвхөн text-д\r\n italic?: boolean; // зөвхөн text-д\r\n};\r\n\r\nexport interface ExpoPdfReaderViewProps extends ViewProps {\r\n url: string;\r\n style?: StyleProp<ViewStyle>;\r\n displayMode?: DisplayMode;\r\n initialPage?: number;\r\n minZoom?: number;\r\n maxZoom?: number;\r\n tool?: AnnotationTool;\r\n strokeColor?: string;\r\n strokeWidth?: number;\r\n textContent?: string;\r\n textColor?: string;\r\n textFontSize?: number;\r\n textBold?: boolean;\r\n textItalic?: boolean;\r\n noteColor?: string;\r\n initialAnnotations?: AnnotationData[];\r\n onReady?: (event: { nativeEvent: { totalPages: number; width: number; height: number } }) => void;\r\n onPageChange?: (event: { nativeEvent: { currentPage: number; totalPage: number } }) => void;\r\n onAnnotationChange?: (event: { nativeEvent: { annotations: AnnotationData[] } }) => void;\r\n onUndoRedoStateChange?: (event: { nativeEvent: { canUndo: boolean; canRedo: boolean } }) => void;\r\n onNotePress?: (event: { nativeEvent: { page: number; index: number; bounds: { x: number; y: number; width: number; height: number }; contents?: string } }) => void;\r\n onTextPress?: (event: { nativeEvent: { page: number; index: number; bounds: { x: number; y: number; width: number; height: number }; contents?: string } }) => void;\r\n}\r\n\r\nexport interface ExpoPdfReaderRef {\r\n undo: () => Promise<void>;\r\n redo: () => Promise<void>;\r\n setInitialPage: (page: number) => Promise<void>;\r\n updateNote: (page: number, index: number, contents: string) => Promise<void>;\r\n updateText: (page: number, index: number, contents: string) => Promise<void>;\r\n}"]}
@@ -5,7 +5,7 @@ public class ExpoPdfReaderModule: Module {
5
5
  Name("ExpoPdfReader")
6
6
 
7
7
  View(ExpoPdfReaderView.self) {
8
- Events("onPageChange", "onAnnotationChange", "onUndoRedoStateChange", "onNotePress", "onTextPress")
8
+ Events("onReady", "onPageChange", "onAnnotationChange", "onUndoRedoStateChange", "onNotePress", "onTextPress")
9
9
 
10
10
  Prop("url") { (view: ExpoPdfReaderView, url: String) in
11
11
  if let u = URL(string: url) { view.load(url: u) }
@@ -20,6 +20,7 @@ final class ExpoPdfReaderView: ExpoView {
20
20
  // Custom memo icon name (PNG in iOS bundle). If nil, default PDFKit icon is used.
21
21
  private var memoIconName: String? = nil
22
22
 
23
+ let onReady = EventDispatcher()
23
24
  let onPageChange = EventDispatcher()
24
25
  let onAnnotationChange = EventDispatcher()
25
26
  let onLoadingAnnotation = EventDispatcher()
@@ -209,6 +210,15 @@ final class ExpoPdfReaderView: ExpoView {
209
210
  self.pendingAnnotations = nil
210
211
  self.setAnnotations(pending)
211
212
  }
213
+ // PDF бэлэн болсныг JS-д мэдэгдэнэ
214
+ let totalPages = document.pageCount
215
+ let viewW = Double(self.bounds.width)
216
+ let viewH = Double(self.bounds.height)
217
+ self.onReady([
218
+ "totalPages": totalPages,
219
+ "width": viewW,
220
+ "height": viewH
221
+ ])
212
222
  }
213
223
  }
214
224
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@june24/expo-pdf-reader",
3
- "version": "0.1.22",
3
+ "version": "0.1.24",
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",
@@ -33,6 +33,7 @@ export interface ExpoPdfReaderViewProps extends ViewProps {
33
33
  textItalic?: boolean;
34
34
  noteColor?: string;
35
35
  initialAnnotations?: AnnotationData[];
36
+ onReady?: (event: { nativeEvent: { totalPages: number; width: number; height: number } }) => void;
36
37
  onPageChange?: (event: { nativeEvent: { currentPage: number; totalPage: number } }) => void;
37
38
  onAnnotationChange?: (event: { nativeEvent: { annotations: AnnotationData[] } }) => void;
38
39
  onUndoRedoStateChange?: (event: { nativeEvent: { canUndo: boolean; canRedo: boolean } }) => void;