react-native-pdf-jsi 1.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/DoubleTapView.js +125 -0
- package/INTEGRATION_GUIDE.md +419 -0
- package/LICENSE +21 -0
- package/PdfManager.js +26 -0
- package/PdfPageView.js +53 -0
- package/PdfView.js +421 -0
- package/PdfViewFlatList.js +30 -0
- package/PinchZoomView.js +125 -0
- package/README.md +693 -0
- package/README_JSI.md +348 -0
- package/android/.gradle/5.6.1/fileChanges/last-build.bin +0 -0
- package/android/.gradle/5.6.1/fileHashes/fileHashes.lock +0 -0
- package/android/.gradle/5.6.1/gc.properties +0 -0
- package/android/.gradle/8.5/checksums/checksums.lock +0 -0
- package/android/.gradle/8.5/checksums/md5-checksums.bin +0 -0
- package/android/.gradle/8.5/checksums/sha1-checksums.bin +0 -0
- package/android/.gradle/8.5/dependencies-accessors/dependencies-accessors.lock +0 -0
- package/android/.gradle/8.5/dependencies-accessors/gc.properties +0 -0
- package/android/.gradle/8.5/executionHistory/executionHistory.lock +0 -0
- package/android/.gradle/8.5/fileChanges/last-build.bin +0 -0
- package/android/.gradle/8.5/fileHashes/fileHashes.lock +0 -0
- package/android/.gradle/8.5/gc.properties +0 -0
- package/android/.gradle/buildOutputCleanup/buildOutputCleanup.lock +0 -0
- package/android/.gradle/buildOutputCleanup/cache.properties +2 -0
- package/android/.gradle/vcs-1/gc.properties +0 -0
- package/android/build.gradle +198 -0
- package/android/gradle/wrapper/gradle-wrapper.jar +0 -0
- package/android/gradle/wrapper/gradle-wrapper.properties +7 -0
- package/android/gradle.properties +2 -0
- package/android/gradlew +249 -0
- package/android/gradlew.bat +92 -0
- package/android/project.properties +12 -0
- package/android/src/main/AndroidManifest.xml +4 -0
- package/android/src/main/cpp/Android.mk +50 -0
- package/android/src/main/cpp/CMakeLists.txt +76 -0
- package/android/src/main/cpp/PDFJSI.cpp +190 -0
- package/android/src/main/cpp/PDFJSI.h +95 -0
- package/android/src/main/cpp/PDFJSIBridge.cpp +32 -0
- package/android/src/main/cpp/PDFJSIModule.cpp +31 -0
- package/android/src/main/java/org/wonday/pdf/EnhancedPdfJSIBridge.java +281 -0
- package/android/src/main/java/org/wonday/pdf/PDFJSIManager.java +317 -0
- package/android/src/main/java/org/wonday/pdf/PDFJSIModule.java +189 -0
- package/android/src/main/java/org/wonday/pdf/PdfManager.java +180 -0
- package/android/src/main/java/org/wonday/pdf/PdfView.java +505 -0
- package/android/src/main/java/org/wonday/pdf/RNPDFPackage.java +43 -0
- package/android/src/main/java/org/wonday/pdf/events/TopChangeEvent.java +26 -0
- package/android/src/main/jniLibs/arm64-v8a/libpdfjsi.so +0 -0
- package/android/src/main/jniLibs/armeabi-v7a/libpdfjsi.so +0 -0
- package/android/src/main/jniLibs/x86/libpdfjsi.so +0 -0
- package/android/src/main/jniLibs/x86_64/libpdfjsi.so +0 -0
- package/android/src/paper/java/com/facebook/react/viewmanagers/RNPDFPdfViewManagerDelegate.java +92 -0
- package/android/src/paper/java/com/facebook/react/viewmanagers/RNPDFPdfViewManagerInterface.java +35 -0
- package/fabric/RNPDFPdfNativeComponent.js +48 -0
- package/index.d.ts +72 -0
- package/index.js +603 -0
- package/index.js.flow +67 -0
- package/ios/RNPDFPdf/PdfManager.h +23 -0
- package/ios/RNPDFPdf/PdfManager.mm +152 -0
- package/ios/RNPDFPdf/RNPDFPdfPageView.h +21 -0
- package/ios/RNPDFPdf/RNPDFPdfPageView.mm +185 -0
- package/ios/RNPDFPdf/RNPDFPdfPageViewManager.h +18 -0
- package/ios/RNPDFPdf/RNPDFPdfPageViewManager.mm +30 -0
- package/ios/RNPDFPdf/RNPDFPdfView.h +63 -0
- package/ios/RNPDFPdf/RNPDFPdfView.mm +1092 -0
- package/ios/RNPDFPdf/RNPDFPdfViewManager.h +18 -0
- package/ios/RNPDFPdf/RNPDFPdfViewManager.mm +68 -0
- package/ios/RNPDFPdf.xcodeproj/project.pbxproj +321 -0
- package/package.json +78 -0
- package/react-native-pdf.podspec +31 -0
- package/src/EnhancedPdfView.js +362 -0
- package/src/PDFJSI.js +519 -0
- package/src/examples/PDFJSIExample.js +296 -0
- package/src/hooks/usePDFJSI.js +346 -0
- package/src/index.js +32 -0
- package/windows/RCTPdf/PropertySheet.props +16 -0
- package/windows/RCTPdf/RCTPdf.def +3 -0
- package/windows/RCTPdf/RCTPdf.vcxproj +180 -0
- package/windows/RCTPdf/RCTPdf.vcxproj.filters +38 -0
- package/windows/RCTPdf/RCTPdfControl.cpp +667 -0
- package/windows/RCTPdf/RCTPdfControl.h +119 -0
- package/windows/RCTPdf/RCTPdfControl.idl +10 -0
- package/windows/RCTPdf/RCTPdfControl.xaml +33 -0
- package/windows/RCTPdf/RCTPdfViewManager.cpp +69 -0
- package/windows/RCTPdf/RCTPdfViewManager.h +51 -0
- package/windows/RCTPdf/ReactPackageProvider.cpp +15 -0
- package/windows/RCTPdf/ReactPackageProvider.h +16 -0
- package/windows/RCTPdf/ReactPackageProvider.idl +9 -0
- package/windows/RCTPdf/packages.config +4 -0
- package/windows/RCTPdf/pch.cpp +1 -0
- package/windows/RCTPdf/pch.h +31 -0
- package/windows/README.md +21 -0
package/android/src/paper/java/com/facebook/react/viewmanagers/RNPDFPdfViewManagerInterface.java
ADDED
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* This code was generated by [react-native-codegen](https://www.npmjs.com/package/react-native-codegen).
|
|
3
|
+
*
|
|
4
|
+
* Do not edit this file as changes may cause incorrect behavior and will be lost
|
|
5
|
+
* once the code is regenerated.
|
|
6
|
+
*
|
|
7
|
+
* @generated by codegen project: GeneratePropsJavaInterface.js
|
|
8
|
+
*/
|
|
9
|
+
|
|
10
|
+
package com.facebook.react.viewmanagers;
|
|
11
|
+
|
|
12
|
+
import android.view.View;
|
|
13
|
+
import androidx.annotation.Nullable;
|
|
14
|
+
|
|
15
|
+
public interface RNPDFPdfViewManagerInterface<T extends View> {
|
|
16
|
+
void setPath(T view, @Nullable String value);
|
|
17
|
+
void setPage(T view, int value);
|
|
18
|
+
void setScale(T view, float value);
|
|
19
|
+
void setMinScale(T view, float value);
|
|
20
|
+
void setMaxScale(T view, float value);
|
|
21
|
+
void setHorizontal(T view, boolean value);
|
|
22
|
+
void setShowsHorizontalScrollIndicator(T view, boolean value);
|
|
23
|
+
void setShowsVerticalScrollIndicator(T view, boolean value);
|
|
24
|
+
void setScrollEnabled(T view, boolean value);
|
|
25
|
+
void setEnablePaging(T view, boolean value);
|
|
26
|
+
void setEnableRTL(T view, boolean value);
|
|
27
|
+
void setEnableAnnotationRendering(T view, boolean value);
|
|
28
|
+
void setEnableDoubleTapZoom(T view, boolean value);
|
|
29
|
+
void setEnableAntialiasing(T view, boolean value);
|
|
30
|
+
void setFitPolicy(T view, int value);
|
|
31
|
+
void setSpacing(T view, int value);
|
|
32
|
+
void setPassword(T view, @Nullable String value);
|
|
33
|
+
void setSinglePage(T view, boolean value);
|
|
34
|
+
void setNativePage(T view, int page);
|
|
35
|
+
}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @flow
|
|
3
|
+
* @format
|
|
4
|
+
*/
|
|
5
|
+
'use strict';
|
|
6
|
+
|
|
7
|
+
import codegenNativeComponent from 'react-native/Libraries/Utilities/codegenNativeComponent';
|
|
8
|
+
import codegenNativeCommands from 'react-native/Libraries/Utilities/codegenNativeCommands';
|
|
9
|
+
|
|
10
|
+
type ChangeEvent = $ReadOnly<{|
|
|
11
|
+
message: ?string,
|
|
12
|
+
|}>;
|
|
13
|
+
|
|
14
|
+
export type NativeProps = $ReadOnly<{|
|
|
15
|
+
...ViewProps,
|
|
16
|
+
path: ?string,
|
|
17
|
+
page: ?Int32,
|
|
18
|
+
scale: ?Float,
|
|
19
|
+
minScale: ?Float,
|
|
20
|
+
maxScale: ?Float,
|
|
21
|
+
horizontal: ?boolean,
|
|
22
|
+
enablePaging: ?boolean,
|
|
23
|
+
enableRTL: ?boolean,
|
|
24
|
+
enableAnnotationRendering: ?boolean,
|
|
25
|
+
showsHorizontalScrollIndicator: ?boolean,
|
|
26
|
+
showsVerticalScrollIndicator: ?boolean,
|
|
27
|
+
scrollEnabled: ?boolean,
|
|
28
|
+
enableAntialiasing: ?boolean,
|
|
29
|
+
enableDoubleTapZoom: ?boolean,
|
|
30
|
+
fitPolicy: ?Int32,
|
|
31
|
+
spacing: ?Int32,
|
|
32
|
+
password: ?string,
|
|
33
|
+
onChange: ?BubblingEventHandler<ChangeEvent>,
|
|
34
|
+
singlePage: ?boolean,
|
|
35
|
+
|}>;
|
|
36
|
+
|
|
37
|
+
interface NativeCommands {
|
|
38
|
+
+setNativePage: (
|
|
39
|
+
viewRef: React.ElementRef<ComponentType>,
|
|
40
|
+
page: Int32,
|
|
41
|
+
) => void;
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
export const Commands: NativeCommands = codegenNativeCommands<NativeCommands>({
|
|
45
|
+
supportedCommands: ['setNativePage'],
|
|
46
|
+
});
|
|
47
|
+
|
|
48
|
+
export default codegenNativeComponent<NativeProps>('RNPDFPdfView');
|
package/index.d.ts
ADDED
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright (c) 2017-present, Wonday (@wonday.org)
|
|
3
|
+
* All rights reserved.
|
|
4
|
+
*
|
|
5
|
+
* This source code is licensed under the MIT-style license found in the
|
|
6
|
+
* LICENSE file in the root directory of this source tree.
|
|
7
|
+
*/
|
|
8
|
+
|
|
9
|
+
import * as React from 'react';
|
|
10
|
+
import * as ReactNative from 'react-native';
|
|
11
|
+
|
|
12
|
+
export type TableContent = {
|
|
13
|
+
children: TableContent[],
|
|
14
|
+
mNativePtr: number,
|
|
15
|
+
pageIdx: number,
|
|
16
|
+
title: string,
|
|
17
|
+
};
|
|
18
|
+
|
|
19
|
+
export type Source = {
|
|
20
|
+
uri?: string;
|
|
21
|
+
headers?: {
|
|
22
|
+
[key: string]: string;
|
|
23
|
+
};
|
|
24
|
+
cache?: boolean;
|
|
25
|
+
cacheFileName?: string;
|
|
26
|
+
expiration?: number;
|
|
27
|
+
method?: string;
|
|
28
|
+
};
|
|
29
|
+
|
|
30
|
+
export interface PdfProps {
|
|
31
|
+
style?: ReactNative.StyleProp<ReactNative.ViewStyle>,
|
|
32
|
+
progressContainerStyle?: ReactNative.StyleProp<ReactNative.ViewStyle>,
|
|
33
|
+
source: Source | number,
|
|
34
|
+
page?: number,
|
|
35
|
+
scale?: number,
|
|
36
|
+
minScale?: number,
|
|
37
|
+
maxScale?: number,
|
|
38
|
+
horizontal?: boolean,
|
|
39
|
+
showsHorizontalScrollIndicator?: boolean,
|
|
40
|
+
showsVerticalScrollIndicator?: boolean,
|
|
41
|
+
scrollEnabled?: boolean,
|
|
42
|
+
spacing?: number,
|
|
43
|
+
password?: string,
|
|
44
|
+
renderActivityIndicator?: (progress: number) => React.ReactElement,
|
|
45
|
+
enableAntialiasing?: boolean,
|
|
46
|
+
enablePaging?: boolean,
|
|
47
|
+
enableRTL?: boolean,
|
|
48
|
+
enableAnnotationRendering?: boolean,
|
|
49
|
+
enableDoubleTapZoom?: boolean;
|
|
50
|
+
/**
|
|
51
|
+
* Fit policy. This will adjust the initial zoom of the PDF based on the initial size of the view and the scale factor.
|
|
52
|
+
* 0 = fit width
|
|
53
|
+
* 1 = fit height
|
|
54
|
+
* 2 = fit both
|
|
55
|
+
*/
|
|
56
|
+
fitPolicy?: 0 | 1 | 2,
|
|
57
|
+
trustAllCerts?: boolean,
|
|
58
|
+
singlePage?: boolean,
|
|
59
|
+
onLoadProgress?: (percent: number,) => void,
|
|
60
|
+
onLoadComplete?: (numberOfPages: number, path: string, size: {height: number, width: number}, tableContents?: TableContent[]) => void,
|
|
61
|
+
onPageChanged?: (page: number, numberOfPages: number) => void,
|
|
62
|
+
onError?: (error: object) => void,
|
|
63
|
+
onPageSingleTap?: (page: number, x: number, y: number) => void,
|
|
64
|
+
onScaleChanged?: (scale: number) => void,
|
|
65
|
+
onPressLink?: (url: string) => void,
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
declare class Pdf extends React.Component<PdfProps, any> {
|
|
69
|
+
setPage: (pageNumber: number) => void;
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
export default Pdf;
|