react-native-pdf 6.6.1 → 6.6.2

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.
@@ -0,0 +1,125 @@
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
+ 'use strict';
10
+ import React, {Component} from 'react';
11
+ import PropTypes from 'prop-types';
12
+ import {
13
+ View,
14
+ StyleSheet,
15
+ PanResponder
16
+ } from 'react-native';
17
+ import {ViewPropTypes} from 'deprecated-react-native-prop-types';
18
+ export default class PinchZoomView extends Component {
19
+
20
+ static propTypes = {
21
+ ...ViewPropTypes,
22
+ scalable: PropTypes.bool,
23
+ onScaleChanged: PropTypes.func,
24
+ };
25
+
26
+ static defaultProps = {
27
+ scalable: true,
28
+ onScaleChanged: (scale) => {
29
+ },
30
+ };
31
+
32
+ constructor(props) {
33
+
34
+ super(props);
35
+ this.state = {};
36
+ this.distant = 0;
37
+ this.gestureHandlers = PanResponder.create({
38
+ onStartShouldSetPanResponder: this._handleStartShouldSetPanResponder,
39
+ onMoveShouldSetResponderCapture: (evt, gestureState) => (true),
40
+ onMoveShouldSetPanResponder: this._handleMoveShouldSetPanResponder,
41
+ onPanResponderGrant: this._handlePanResponderGrant,
42
+ onPanResponderMove: this._handlePanResponderMove,
43
+ onPanResponderRelease: this._handlePanResponderEnd,
44
+ onPanResponderTerminationRequest: evt => false,
45
+ onPanResponderTerminate: this._handlePanResponderTerminate,
46
+ onShouldBlockNativeResponder: evt => true
47
+ });
48
+
49
+ }
50
+
51
+ _handleStartShouldSetPanResponder = (e, gestureState) => {
52
+
53
+ // don't respond to single touch to avoid shielding click on child components
54
+ return false;
55
+
56
+ };
57
+
58
+ _handleMoveShouldSetPanResponder = (e, gestureState) => {
59
+
60
+ return this.props.scalable && (e.nativeEvent.changedTouches.length >= 2 || gestureState.numberActiveTouches >= 2);
61
+
62
+ };
63
+
64
+ _handlePanResponderGrant = (e, gestureState) => {
65
+
66
+ if (e.nativeEvent.changedTouches.length >= 2 || gestureState.numberActiveTouches >= 2) {
67
+ let dx = Math.abs(e.nativeEvent.touches[0].pageX - e.nativeEvent.touches[1].pageX);
68
+ let dy = Math.abs(e.nativeEvent.touches[0].pageY - e.nativeEvent.touches[1].pageY);
69
+ this.distant = Math.sqrt(dx * dx + dy * dy);
70
+ }
71
+
72
+ };
73
+
74
+ _handlePanResponderEnd = (e, gestureState) => {
75
+
76
+ this.distant = 0;
77
+
78
+ };
79
+
80
+ _handlePanResponderTerminate = (e, gestureState) => {
81
+
82
+ this.distant = 0;
83
+
84
+ };
85
+
86
+ _handlePanResponderMove = (e, gestureState) => {
87
+
88
+ if ((e.nativeEvent.changedTouches.length >= 2 || gestureState.numberActiveTouches >= 2) && this.distant > 100) {
89
+
90
+ let dx = Math.abs(e.nativeEvent.touches[0].pageX - e.nativeEvent.touches[1].pageX);
91
+ let dy = Math.abs(e.nativeEvent.touches[0].pageY - e.nativeEvent.touches[1].pageY);
92
+ let distant = Math.sqrt(dx * dx + dy * dy);
93
+ let scale = (distant / this.distant);
94
+ let pageX = (e.nativeEvent.touches[0].pageX + e.nativeEvent.touches[1].pageX) / 2;
95
+ let pageY = (e.nativeEvent.touches[0].pageY + e.nativeEvent.touches[1].pageY) / 2;
96
+ let pinchInfo = {scale: scale, pageX: pageX, pageY: pageY};
97
+
98
+ this.props.onScaleChanged(pinchInfo);
99
+ this.distant = distant;
100
+
101
+ }
102
+
103
+ };
104
+
105
+ render() {
106
+
107
+ return (
108
+ <View
109
+ {...this.props}
110
+ {...this.gestureHandlers?.panHandlers}
111
+ style={[styles.container, this.props.style]}>
112
+ {this.props.children}
113
+ </View>
114
+ );
115
+
116
+ }
117
+ }
118
+
119
+ const styles = StyleSheet.create({
120
+ container: {
121
+ flex: 1,
122
+ justifyContent: 'center',
123
+ alignItems: 'center'
124
+ }
125
+ });
package/README.md CHANGED
@@ -169,18 +169,25 @@ react-native run-ios
169
169
  <details>
170
170
  <summary>ChangeLog details</summary>
171
171
 
172
- v6.6.0
172
+ v6.6.2
173
+ 1. Fixed: Migrate to ViewPropTypes exported from 'deprecated-react-native-prop-types'
174
+ 2. Added: Decode File Path for iOS
175
+ 3. Improved: prefer current page for calculating scale factor on fit
176
+
177
+ v6.6.1 depresed
178
+
179
+ v6.6.0 depresed
173
180
  1. Fixed: Migrate to ViewPropTypes exported from 'deprecated-react-native-prop-types'
174
181
  2. Added: Decode File Path for iOS
175
182
  3. Improved: prefer current page for calculating scale factor on fit
176
183
  4. Improved: Typescript version source
177
184
 
178
185
  v6.5.0
179
- 1. Fixed: replace mavenCentral with maven
186
+ 1. Fix: replace mavenCentral with maven
180
187
  2. Breaking Change(Android): replace deprecated repository: jcenter()
181
- 3. Fixed: loading progress
182
- 4. Added: Typed "source" prop
183
- 5. Removed: dependency to fbjs
188
+ 3. Fix: loading progress
189
+ 4. Add: Typed "source" prop
190
+ 5. Remove: dependency to fbjs
184
191
 
185
192
  v6.4.0
186
193
  1. Remove sample for reducing NPM package size
package/index.d.ts CHANGED
@@ -25,10 +25,10 @@ export type Source = {
25
25
  cacheFileName?: string;
26
26
  expiration?: number;
27
27
  method?: string;
28
- body?: any
29
28
  };
30
29
 
31
- export interface PdfProps extends ReactNative.ViewProps {
30
+ interface Props {
31
+ style?: ReactNative.StyleProp<ReactNative.ViewStyle>,
32
32
  source: Source | number,
33
33
  page?: number,
34
34
  scale?: number,
@@ -37,83 +37,25 @@ export interface PdfProps extends ReactNative.ViewProps {
37
37
  horizontal?: boolean,
38
38
  spacing?: number,
39
39
  password?: string,
40
- renderActivityIndicator: (progress: number) => React.ReactElement,
40
+ renderActivityIndicator?: (progress: number) => React.ReactElement,
41
41
  enableAntialiasing?: boolean,
42
- enableAnnotationRendering?: boolean,
43
42
  enablePaging?: boolean,
44
43
  enableRTL?: boolean,
44
+ enableAnnotationRendering?: boolean,
45
45
  fitPolicy?: number,
46
46
  trustAllCerts?: boolean,
47
47
  singlePage?: boolean,
48
- onLoadProgress?: (percent: number) => void,
48
+ onLoadProgress?: (percent: number,) => void,
49
49
  onLoadComplete?: (numberOfPages: number, path: string, size: {height: number, width: number}, tableContents?: TableContent[]) => void,
50
50
  onPageChanged?: (page: number, numberOfPages: number) => void,
51
- onError?: (error: any) => void,
51
+ onError?: (error: object) => void,
52
52
  onPageSingleTap?: (page: number, x: number, y: number) => void,
53
53
  onScaleChanged?: (scale: number) => void,
54
54
  onPressLink?: (url: string) => void,
55
- setPage: (pageNumber: number) => void;
56
-
57
- usePDFKit?: boolean
58
- }
59
-
60
- export type PdfState = {
61
- path: string
62
- isDownloaded: boolean
63
- progress: number
64
- isSupportPDFKit: number
65
- }
66
-
67
- export interface PdfViewProps extends ReactNative.ViewProps {
68
- path: string
69
- password?: string
70
- scale: number
71
- minScale: number
72
- maxScale: number
73
- spacing: number
74
- fitPolicy?: number
75
- horizontal?: boolean
76
- page: number
77
- currentPage: number
78
- singlePage: boolean
79
- enablePaging: boolean
80
- onPageSingleTap: PdfProps['onPageSingleTap']
81
- onScaleChanged: PdfProps['onScaleChanged']
82
- onLoadComplete: PdfProps['onLoadComplete']
83
- onError: PdfProps['onError']
84
- onPageChanged: PdfProps['onPageChanged']
85
- }
86
-
87
- export type PdfViewState = {
88
- pdfLoaded: boolean
89
- fileNo: number
90
- numberOfPages:number
91
- page: number
92
- currentPage: number
93
- pageAspectRate: number
94
- pdfPageSize: {width: number, height: number}
95
- contentContainerSize: {width: number, height: number}
96
- scale: number
97
- contentOffset: {x: number, y: number}
98
- newContentOffset: {x: number, y: number}
99
- centerContent: boolean
100
55
  }
101
56
 
102
- export interface PdfPageViewProps extends ReactNative.ViewProps {
103
- fileNo: number
104
- page: number
105
- width: number
106
- height: number
107
- }
108
-
109
- export interface PinchZoomViewProps extends ReactNative.ViewProps {
110
- scalable: boolean
111
- onScaleChanged: (scaled: {pageX: number; pageY: number; scale: number}) => void
57
+ declare class Pdf extends React.Component<Props, any> {
58
+ setPage: (pageNumber: number) => void;
112
59
  }
113
60
 
114
- export interface DoubleTapViewProps extends ReactNative.ViewProps {
115
- delay: number
116
- radius: number
117
- onSingleTap: PropTypes.func,
118
- onDoubleTap: PropTypes.func,
119
- }
61
+ export default Pdf;