@react-native-ohos/react-native-pager-view 6.2.4-rc.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.
- package/LICENSE +21 -0
- package/README.md +15 -0
- package/harmony/pager_view/LICENSE +21 -0
- package/harmony/pager_view/NOTICE +33 -0
- package/harmony/pager_view/README.OpenSource +11 -0
- package/harmony/pager_view/build-profile.json5 +9 -0
- package/harmony/pager_view/consumer-rules.txt +0 -0
- package/harmony/pager_view/hvigorfile.ts +6 -0
- package/harmony/pager_view/index.ets +26 -0
- package/harmony/pager_view/obfuscation-rules.txt +18 -0
- package/harmony/pager_view/oh-package.json5 +14 -0
- package/harmony/pager_view/src/main/cpp/CMakeLists.txt +9 -0
- package/harmony/pager_view/src/main/cpp/RNCViewPagerTurbomodule.cpp +42 -0
- package/harmony/pager_view/src/main/cpp/RNCViewPagerTurbomodule.h +37 -0
- package/harmony/pager_view/src/main/cpp/SwiperNode.cpp +403 -0
- package/harmony/pager_view/src/main/cpp/SwiperNode.h +120 -0
- package/harmony/pager_view/src/main/cpp/ViewPagerComponentInstance.cpp +247 -0
- package/harmony/pager_view/src/main/cpp/ViewPagerComponentInstance.h +106 -0
- package/harmony/pager_view/src/main/cpp/ViewPagerPackage.h +64 -0
- package/harmony/pager_view/src/main/cpp/generated/RNOH/generated/BaseReactNativePagerViewPackage.h +70 -0
- package/harmony/pager_view/src/main/cpp/generated/RNOH/generated/components/BaseRNCViewPagerComponentInstance.h +16 -0
- package/harmony/pager_view/src/main/cpp/generated/RNOH/generated/components/RNCViewPagerJSIBinder.h +41 -0
- package/harmony/pager_view/src/main/cpp/generated/react/renderer/components/react_native_pager_view/ComponentDescriptors.h +22 -0
- package/harmony/pager_view/src/main/cpp/generated/react/renderer/components/react_native_pager_view/EventEmitters.cpp +43 -0
- package/harmony/pager_view/src/main/cpp/generated/react/renderer/components/react_native_pager_view/EventEmitters.h +47 -0
- package/harmony/pager_view/src/main/cpp/generated/react/renderer/components/react_native_pager_view/Props.cpp +38 -0
- package/harmony/pager_view/src/main/cpp/generated/react/renderer/components/react_native_pager_view/Props.h +139 -0
- package/harmony/pager_view/src/main/cpp/generated/react/renderer/components/react_native_pager_view/ShadowNodes.cpp +19 -0
- package/harmony/pager_view/src/main/cpp/generated/react/renderer/components/react_native_pager_view/ShadowNodes.h +34 -0
- package/harmony/pager_view/src/main/cpp/generated/react/renderer/components/react_native_pager_view/States.cpp +16 -0
- package/harmony/pager_view/src/main/cpp/generated/react/renderer/components/react_native_pager_view/States.h +38 -0
- package/harmony/pager_view/src/main/ets/Logger.ets +64 -0
- package/harmony/pager_view/src/main/ets/RNCViewPager.ets +281 -0
- package/harmony/pager_view/src/main/ets/RNCViewPagerManager.ets +58 -0
- package/harmony/pager_view/src/main/ets/ViewPagerModule.ts +34 -0
- package/harmony/pager_view/src/main/ets/ViewPagerPackage.ets +57 -0
- package/harmony/pager_view/src/main/module.json5 +7 -0
- package/harmony/pager_view/src/main/resources/base/element/string.json +8 -0
- package/harmony/pager_view/src/main/resources/en_US/element/string.json +8 -0
- package/harmony/pager_view/src/main/resources/zh_CN/element/string.json +8 -0
- package/harmony/pager_view/ts.ets +26 -0
- package/harmony/pager_view.har +0 -0
- package/lib/commonjs/PagerView.js +145 -0
- package/lib/commonjs/PagerView.js.map +1 -0
- package/lib/commonjs/PagerViewNativeComponent.js +14 -0
- package/lib/commonjs/PagerViewNativeComponent.js.map +1 -0
- package/lib/commonjs/index.js +9 -0
- package/lib/commonjs/index.js.map +1 -0
- package/lib/commonjs/utils.js +28 -0
- package/lib/commonjs/utils.js.map +1 -0
- package/lib/module/PagerView.js +138 -0
- package/lib/module/PagerView.js.map +1 -0
- package/lib/module/PagerViewNativeComponent.js +7 -0
- package/lib/module/PagerViewNativeComponent.js.map +1 -0
- package/lib/module/index.js +3 -0
- package/lib/module/index.js.map +1 -0
- package/lib/module/utils.js +20 -0
- package/lib/module/utils.js.map +1 -0
- package/lib/typescript/PagerView.d.ts +70 -0
- package/lib/typescript/PagerViewNativeComponent.d.ts +36 -0
- package/lib/typescript/index.d.ts +8 -0
- package/lib/typescript/utils.d.ts +2 -0
- package/package.json +142 -0
- package/src/PagerView.tsx +163 -0
- package/src/PagerViewNativeComponent.ts +67 -0
- package/src/index.tsx +26 -0
- package/src/utils.tsx +19 -0
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* MIT License
|
|
3
|
+
*
|
|
4
|
+
* Copyright (C) 2024 Huawei Device Co., Ltd.
|
|
5
|
+
*
|
|
6
|
+
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
7
|
+
* of this software and associated documentation files (the "Software"), to deal
|
|
8
|
+
* in the Software without restriction, including without limitation the rights
|
|
9
|
+
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
10
|
+
* copies of the Software, and to permit persons to whom the Software is
|
|
11
|
+
* furnished to do so, subject to the following conditions:
|
|
12
|
+
*
|
|
13
|
+
* The above copyright notice and this permission notice shall be included in all
|
|
14
|
+
* copies or substantial portions of the Software.
|
|
15
|
+
*
|
|
16
|
+
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
17
|
+
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
18
|
+
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
19
|
+
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
20
|
+
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
21
|
+
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
22
|
+
* SOFTWARE.
|
|
23
|
+
*/
|
|
24
|
+
import { TurboModule } from "@rnoh/react-native-openharmony/ts";
|
|
25
|
+
import inputMethod from '@ohos.inputMethod';
|
|
26
|
+
|
|
27
|
+
export class ViewPagerModule extends TurboModule {
|
|
28
|
+
|
|
29
|
+
keyboardDismiss(): void {
|
|
30
|
+
let inputMethodController = inputMethod.getInputMethodController();
|
|
31
|
+
inputMethodController.stopInputSession()
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* MIT License
|
|
3
|
+
*
|
|
4
|
+
* Copyright (C) 2023 Huawei Device Co., Ltd.
|
|
5
|
+
*
|
|
6
|
+
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
7
|
+
* of this software and associated documentation files (the "Software"), to deal
|
|
8
|
+
* in the Software without restriction, including without limitation the rights
|
|
9
|
+
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
10
|
+
* copies of the Software, and to permit persons to whom the Software is
|
|
11
|
+
* furnished to do so, subject to the following conditions:
|
|
12
|
+
*
|
|
13
|
+
* The above copyright notice and this permission notice shall be included in all
|
|
14
|
+
* copies or substantial portions of the Software.
|
|
15
|
+
*
|
|
16
|
+
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
17
|
+
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
18
|
+
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
19
|
+
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
20
|
+
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
21
|
+
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
22
|
+
* SOFTWARE.
|
|
23
|
+
*/
|
|
24
|
+
|
|
25
|
+
import { RNPackage, TurboModulesFactory } from '@rnoh/react-native-openharmony/ts';
|
|
26
|
+
import { RNOHPackage, ComponentBuilderContext } from '@rnoh/react-native-openharmony';
|
|
27
|
+
import type { TurboModule, TurboModuleContext } from '@rnoh/react-native-openharmony/ts';
|
|
28
|
+
import { ViewPagerModule } from './ViewPagerModule';
|
|
29
|
+
import { RNCViewPager , PAGER_VIEW_TYPE } from './RNCViewPager';
|
|
30
|
+
|
|
31
|
+
@Builder
|
|
32
|
+
function buildViewPager(ctx: ComponentBuilderContext) {
|
|
33
|
+
RNCViewPager({ ctx: ctx.rnComponentContext, tag: ctx.tag, })
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
class ViewPagerTurboModulesFactory extends TurboModulesFactory {
|
|
37
|
+
createTurboModule(name: string): TurboModule | null {
|
|
38
|
+
if (name === 'RNCViewPagerContext') {
|
|
39
|
+
return new ViewPagerModule(this.ctx);
|
|
40
|
+
}
|
|
41
|
+
return null;
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
hasTurboModule(name: string): boolean {
|
|
45
|
+
return name === 'RNCViewPagerContext';
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
export class ViewPagerPackage extends RNOHPackage {
|
|
50
|
+
createTurboModulesFactory(ctx: TurboModuleContext): TurboModulesFactory {
|
|
51
|
+
return new ViewPagerTurboModulesFactory(ctx);
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
createWrappedCustomRNComponentBuilderByComponentNameMap(): Map<string, WrappedBuilder<[ComponentBuilderContext]>> {
|
|
55
|
+
return new Map().set(PAGER_VIEW_TYPE, wrapBuilder(buildViewPager))
|
|
56
|
+
}
|
|
57
|
+
}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* MIT License
|
|
3
|
+
*
|
|
4
|
+
* Copyright (C) 2023 Huawei Device Co., Ltd.
|
|
5
|
+
*
|
|
6
|
+
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
7
|
+
* of this software and associated documentation files (the "Software"), to deal
|
|
8
|
+
* in the Software without restriction, including without limitation the rights
|
|
9
|
+
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
10
|
+
* copies of the Software, and to permit persons to whom the Software is
|
|
11
|
+
* furnished to do so, subject to the following conditions:
|
|
12
|
+
*
|
|
13
|
+
* The above copyright notice and this permission notice shall be included in all
|
|
14
|
+
* copies or substantial portions of the Software.
|
|
15
|
+
*
|
|
16
|
+
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
17
|
+
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
18
|
+
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
19
|
+
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
20
|
+
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
21
|
+
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
22
|
+
* SOFTWARE.
|
|
23
|
+
*/
|
|
24
|
+
|
|
25
|
+
export * from "./src/main/ets/ViewPagerModule"
|
|
26
|
+
export * from "./src/main/ets/ViewPagerPackage"
|
|
Binary file
|
|
@@ -0,0 +1,145 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.PagerView = void 0;
|
|
7
|
+
var _react = _interopRequireDefault(require("react"));
|
|
8
|
+
var _reactNative = require("react-native");
|
|
9
|
+
var _utils = require("./utils");
|
|
10
|
+
var _PagerViewNativeComponent = _interopRequireWildcard(require("./PagerViewNativeComponent"));
|
|
11
|
+
function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
|
|
12
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
13
|
+
function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
|
|
14
|
+
function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
|
|
15
|
+
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
|
|
16
|
+
function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
|
|
17
|
+
/**
|
|
18
|
+
* Container that allows to flip left and right between child views. Each
|
|
19
|
+
* child view of the `PagerView` will be treated as a separate page
|
|
20
|
+
* and will be stretched to fill the `PagerView`.
|
|
21
|
+
*
|
|
22
|
+
* It is important all children are `<View>`s and not composite components.
|
|
23
|
+
* You can set style properties like `padding` or `backgroundColor` for each
|
|
24
|
+
* child. It is also important that each child have a `key` prop.
|
|
25
|
+
*
|
|
26
|
+
* Example:
|
|
27
|
+
*
|
|
28
|
+
* ```
|
|
29
|
+
* render: function() {
|
|
30
|
+
* return (
|
|
31
|
+
* <PagerView
|
|
32
|
+
* style={styles.PagerView}
|
|
33
|
+
* initialPage={0}>
|
|
34
|
+
* <View style={styles.pageStyle} key="1">
|
|
35
|
+
* <Text>First page</Text>
|
|
36
|
+
* </View>
|
|
37
|
+
* <View style={styles.pageStyle} key="2">
|
|
38
|
+
* <Text>Second page</Text>
|
|
39
|
+
* </View>
|
|
40
|
+
* </PagerView>
|
|
41
|
+
* );
|
|
42
|
+
* }
|
|
43
|
+
*
|
|
44
|
+
* ...
|
|
45
|
+
*
|
|
46
|
+
* var styles = {
|
|
47
|
+
* ...
|
|
48
|
+
* PagerView: {
|
|
49
|
+
* flex: 1
|
|
50
|
+
* },
|
|
51
|
+
* pageStyle: {
|
|
52
|
+
* alignItems: 'center',
|
|
53
|
+
* padding: 20,
|
|
54
|
+
* }
|
|
55
|
+
* }
|
|
56
|
+
* ```
|
|
57
|
+
*/
|
|
58
|
+
|
|
59
|
+
class PagerView extends _react.default.Component {
|
|
60
|
+
constructor(...args) {
|
|
61
|
+
super(...args);
|
|
62
|
+
_defineProperty(this, "isScrolling", false);
|
|
63
|
+
_defineProperty(this, "pagerView", null);
|
|
64
|
+
_defineProperty(this, "_onPageScroll", e => {
|
|
65
|
+
if (this.props.onPageScroll) {
|
|
66
|
+
this.props.onPageScroll(e);
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
// Not implemented on iOS yet
|
|
70
|
+
// @ts-ignore
|
|
71
|
+
if (_reactNative.Platform.OS === 'android' || _reactNative.Platform.OS === 'harmony') {
|
|
72
|
+
if (this.props.keyboardDismissMode === 'on-drag') {
|
|
73
|
+
_reactNative.Keyboard.dismiss();
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
});
|
|
77
|
+
_defineProperty(this, "_onPageScrollStateChanged", e => {
|
|
78
|
+
if (this.props.onPageScrollStateChanged) {
|
|
79
|
+
this.props.onPageScrollStateChanged(e);
|
|
80
|
+
}
|
|
81
|
+
this.isScrolling = e.nativeEvent.pageScrollState === 'dragging';
|
|
82
|
+
});
|
|
83
|
+
_defineProperty(this, "_onPageSelected", e => {
|
|
84
|
+
if (this.props.onPageSelected) {
|
|
85
|
+
this.props.onPageSelected(e);
|
|
86
|
+
}
|
|
87
|
+
});
|
|
88
|
+
/**
|
|
89
|
+
* A helper function to scroll to a specific page in the PagerView.
|
|
90
|
+
* The transition between pages will be animated.
|
|
91
|
+
*/
|
|
92
|
+
_defineProperty(this, "setPage", selectedPage => {
|
|
93
|
+
if (this.pagerView) {
|
|
94
|
+
_PagerViewNativeComponent.Commands.setPage(this.pagerView, selectedPage);
|
|
95
|
+
}
|
|
96
|
+
});
|
|
97
|
+
/**
|
|
98
|
+
* A helper function to scroll to a specific page in the PagerView.
|
|
99
|
+
* The transition between pages will *not* be animated.
|
|
100
|
+
*/
|
|
101
|
+
_defineProperty(this, "setPageWithoutAnimation", selectedPage => {
|
|
102
|
+
if (this.pagerView) {
|
|
103
|
+
_PagerViewNativeComponent.Commands.setPageWithoutAnimation(this.pagerView, selectedPage);
|
|
104
|
+
}
|
|
105
|
+
});
|
|
106
|
+
/**
|
|
107
|
+
* A helper function to enable/disable scroll imperatively
|
|
108
|
+
* The recommended way is using the scrollEnabled prop, however, there might be a case where a
|
|
109
|
+
* imperative solution is more useful (e.g. for not blocking an animation)
|
|
110
|
+
*/
|
|
111
|
+
_defineProperty(this, "setScrollEnabled", scrollEnabled => {
|
|
112
|
+
if (this.pagerView) {
|
|
113
|
+
_PagerViewNativeComponent.Commands.setScrollEnabledImperatively(this.pagerView, scrollEnabled);
|
|
114
|
+
}
|
|
115
|
+
});
|
|
116
|
+
_defineProperty(this, "_onMoveShouldSetResponderCapture", () => {
|
|
117
|
+
return this.isScrolling;
|
|
118
|
+
});
|
|
119
|
+
}
|
|
120
|
+
get deducedLayoutDirection() {
|
|
121
|
+
if (!this.props.layoutDirection ||
|
|
122
|
+
//@ts-ignore fix it
|
|
123
|
+
this.props.layoutDirection === 'locale') {
|
|
124
|
+
return _reactNative.I18nManager.isRTL ? 'rtl' : 'ltr';
|
|
125
|
+
} else {
|
|
126
|
+
return this.props.layoutDirection;
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
render() {
|
|
130
|
+
return /*#__PURE__*/_react.default.createElement(_PagerViewNativeComponent.default, _extends({}, this.props, {
|
|
131
|
+
ref: ref => {
|
|
132
|
+
this.pagerView = ref;
|
|
133
|
+
},
|
|
134
|
+
style: this.props.style,
|
|
135
|
+
layoutDirection: this.deducedLayoutDirection,
|
|
136
|
+
onPageScroll: this._onPageScroll,
|
|
137
|
+
onPageScrollStateChanged: this._onPageScrollStateChanged,
|
|
138
|
+
onPageSelected: this._onPageSelected,
|
|
139
|
+
onMoveShouldSetResponderCapture: this._onMoveShouldSetResponderCapture,
|
|
140
|
+
children: (0, _utils.childrenWithOverriddenStyle)(this.props.children)
|
|
141
|
+
}));
|
|
142
|
+
}
|
|
143
|
+
}
|
|
144
|
+
exports.PagerView = PagerView;
|
|
145
|
+
//# sourceMappingURL=PagerView.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_react","_interopRequireDefault","require","_reactNative","_utils","_PagerViewNativeComponent","_interopRequireWildcard","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","_extends","assign","bind","arguments","length","apply","_defineProperty","_toPropertyKey","value","enumerable","configurable","writable","_toPrimitive","Symbol","toPrimitive","TypeError","String","Number","PagerView","React","Component","constructor","args","props","onPageScroll","Platform","OS","keyboardDismissMode","Keyboard","dismiss","onPageScrollStateChanged","isScrolling","nativeEvent","pageScrollState","onPageSelected","selectedPage","pagerView","PagerViewCommands","setPage","setPageWithoutAnimation","scrollEnabled","setScrollEnabledImperatively","deducedLayoutDirection","layoutDirection","I18nManager","isRTL","render","createElement","ref","style","_onPageScroll","_onPageScrollStateChanged","_onPageSelected","onMoveShouldSetResponderCapture","_onMoveShouldSetResponderCapture","children","childrenWithOverriddenStyle","exports"],"sources":["PagerView.tsx"],"sourcesContent":["import React from 'react';\r\nimport { Platform, Keyboard } from 'react-native';\r\nimport { I18nManager } from 'react-native';\r\nimport type {\r\n OnPageScrollEventData,\r\n OnPageScrollStateChangedEventData,\r\n OnPageSelectedEventData,\r\n} from './PagerViewNativeComponent';\r\nimport type * as ReactNative from 'react-native';\r\n\r\nimport type { NativeProps as PagerViewProps } from './PagerViewNativeComponent';\r\nimport { childrenWithOverriddenStyle } from './utils';\r\nimport PagerViewView, {\r\n Commands as PagerViewCommands,\r\n} from './PagerViewNativeComponent';\r\n\r\n/**\r\n * Container that allows to flip left and right between child views. Each\r\n * child view of the `PagerView` will be treated as a separate page\r\n * and will be stretched to fill the `PagerView`.\r\n *\r\n * It is important all children are `<View>`s and not composite components.\r\n * You can set style properties like `padding` or `backgroundColor` for each\r\n * child. It is also important that each child have a `key` prop.\r\n *\r\n * Example:\r\n *\r\n * ```\r\n * render: function() {\r\n * return (\r\n * <PagerView\r\n * style={styles.PagerView}\r\n * initialPage={0}>\r\n * <View style={styles.pageStyle} key=\"1\">\r\n * <Text>First page</Text>\r\n * </View>\r\n * <View style={styles.pageStyle} key=\"2\">\r\n * <Text>Second page</Text>\r\n * </View>\r\n * </PagerView>\r\n * );\r\n * }\r\n *\r\n * ...\r\n *\r\n * var styles = {\r\n * ...\r\n * PagerView: {\r\n * flex: 1\r\n * },\r\n * pageStyle: {\r\n * alignItems: 'center',\r\n * padding: 20,\r\n * }\r\n * }\r\n * ```\r\n */\r\n\r\nexport class PagerView extends React.Component<PagerViewProps> {\r\n private isScrolling = false;\r\n pagerView: React.ElementRef<typeof PagerViewView> | null = null;\r\n\r\n private _onPageScroll = (\r\n e: ReactNative.NativeSyntheticEvent<OnPageScrollEventData>\r\n ) => {\r\n if (this.props.onPageScroll) {\r\n this.props.onPageScroll(e);\r\n }\r\n\r\n // Not implemented on iOS yet\r\n // @ts-ignore\r\n if (Platform.OS === 'android' || Platform.OS === 'harmony') {\r\n if (this.props.keyboardDismissMode === 'on-drag') {\r\n Keyboard.dismiss();\r\n }\r\n }\r\n };\r\n\r\n private _onPageScrollStateChanged = (\r\n e: ReactNative.NativeSyntheticEvent<OnPageScrollStateChangedEventData>\r\n ) => {\r\n if (this.props.onPageScrollStateChanged) {\r\n this.props.onPageScrollStateChanged(e);\r\n }\r\n this.isScrolling = e.nativeEvent.pageScrollState === 'dragging';\r\n };\r\n\r\n private _onPageSelected = (\r\n e: ReactNative.NativeSyntheticEvent<OnPageSelectedEventData>\r\n ) => {\r\n if (this.props.onPageSelected) {\r\n this.props.onPageSelected(e);\r\n }\r\n };\r\n\r\n /**\r\n * A helper function to scroll to a specific page in the PagerView.\r\n * The transition between pages will be animated.\r\n */\r\n public setPage = (selectedPage: number) => {\r\n if (this.pagerView) {\r\n PagerViewCommands.setPage(this.pagerView, selectedPage);\r\n }\r\n };\r\n\r\n /**\r\n * A helper function to scroll to a specific page in the PagerView.\r\n * The transition between pages will *not* be animated.\r\n */\r\n public setPageWithoutAnimation = (selectedPage: number) => {\r\n if (this.pagerView) {\r\n PagerViewCommands.setPageWithoutAnimation(this.pagerView, selectedPage);\r\n }\r\n };\r\n\r\n /**\r\n * A helper function to enable/disable scroll imperatively\r\n * The recommended way is using the scrollEnabled prop, however, there might be a case where a\r\n * imperative solution is more useful (e.g. for not blocking an animation)\r\n */\r\n public setScrollEnabled = (scrollEnabled: boolean) => {\r\n if (this.pagerView) {\r\n PagerViewCommands.setScrollEnabledImperatively(\r\n this.pagerView,\r\n scrollEnabled\r\n );\r\n }\r\n };\r\n\r\n private _onMoveShouldSetResponderCapture = () => {\r\n return this.isScrolling;\r\n };\r\n\r\n private get deducedLayoutDirection() {\r\n if (\r\n !this.props.layoutDirection ||\r\n //@ts-ignore fix it\r\n this.props.layoutDirection === 'locale'\r\n ) {\r\n return I18nManager.isRTL ? 'rtl' : 'ltr';\r\n } else {\r\n return this.props.layoutDirection;\r\n }\r\n }\r\n\r\n render() {\r\n return (\r\n <PagerViewView\r\n {...this.props}\r\n ref={(ref) => {\r\n this.pagerView = ref;\r\n }}\r\n style={this.props.style}\r\n layoutDirection={this.deducedLayoutDirection}\r\n onPageScroll={this._onPageScroll}\r\n onPageScrollStateChanged={this._onPageScrollStateChanged}\r\n onPageSelected={this._onPageSelected}\r\n onMoveShouldSetResponderCapture={this._onMoveShouldSetResponderCapture}\r\n children={childrenWithOverriddenStyle(this.props.children)}\r\n />\r\n );\r\n }\r\n}\r\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = exports.Commands = void 0;
|
|
7
|
+
var _codegenNativeCommands = _interopRequireDefault(require("react-native/Libraries/Utilities/codegenNativeCommands"));
|
|
8
|
+
var _codegenNativeComponent = _interopRequireDefault(require("react-native/Libraries/Utilities/codegenNativeComponent"));
|
|
9
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
10
|
+
const Commands = exports.Commands = (0, _codegenNativeCommands.default)({
|
|
11
|
+
supportedCommands: ['setPage', 'setPageWithoutAnimation', 'setScrollEnabledImperatively']
|
|
12
|
+
});
|
|
13
|
+
var _default = exports.default = (0, _codegenNativeComponent.default)('RNCViewPager');
|
|
14
|
+
//# sourceMappingURL=PagerViewNativeComponent.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_codegenNativeCommands","_interopRequireDefault","require","_codegenNativeComponent","e","__esModule","default","Commands","exports","codegenNativeCommands","supportedCommands","_default","codegenNativeComponent"],"sources":["PagerViewNativeComponent.ts"],"sourcesContent":["import type * as React from 'react';\r\nimport codegenNativeCommands from 'react-native/Libraries/Utilities/codegenNativeCommands';\r\nimport codegenNativeComponent from 'react-native/Libraries/Utilities/codegenNativeComponent';\r\nimport type { HostComponent, ViewProps } from 'react-native';\r\nimport type {\r\n DirectEventHandler,\r\n Double,\r\n Int32,\r\n WithDefault,\r\n} from 'react-native/Libraries/Types/CodegenTypes';\r\n\r\nexport type OnPageScrollEventData = Readonly<{\r\n position: Double;\r\n offset: Double;\r\n}>;\r\n\r\nexport type OnPageSelectedEventData = Readonly<{\r\n position: Double;\r\n}>;\r\n\r\nexport type OnPageScrollStateChangedEventData = Readonly<{\r\n pageScrollState: 'idle' | 'dragging' | 'settling';\r\n}>;\r\n\r\nexport interface NativeProps extends ViewProps {\r\n scrollEnabled?: WithDefault<boolean, true>;\r\n layoutDirection?: WithDefault<'ltr' | 'rtl', 'ltr'>;\r\n initialPage?: Int32;\r\n orientation?: WithDefault<'horizontal' | 'vertical', 'horizontal'>;\r\n offscreenPageLimit?: Int32;\r\n pageMargin?: Int32;\r\n overScrollMode?: WithDefault<'auto' | 'always' | 'never', 'auto'>;\r\n overdrag?: WithDefault<boolean, false>;\r\n keyboardDismissMode?: WithDefault<'none' | 'on-drag', 'none'>;\r\n onPageScroll?: DirectEventHandler<OnPageScrollEventData>;\r\n onPageSelected?: DirectEventHandler<OnPageSelectedEventData>;\r\n onPageScrollStateChanged?: DirectEventHandler<OnPageScrollStateChangedEventData>;\r\n}\r\n\r\ntype PagerViewViewType = HostComponent<NativeProps>;\r\n\r\nexport interface NativeCommands {\r\n setPage: (\r\n viewRef: React.ElementRef<PagerViewViewType>,\r\n selectedPage: Int32\r\n ) => void;\r\n setPageWithoutAnimation: (\r\n viewRef: React.ElementRef<PagerViewViewType>,\r\n selectedPage: Int32\r\n ) => void;\r\n setScrollEnabledImperatively: (\r\n viewRef: React.ElementRef<PagerViewViewType>,\r\n scrollEnabled: boolean\r\n ) => void;\r\n}\r\n\r\nexport const Commands: NativeCommands = codegenNativeCommands<NativeCommands>({\r\n supportedCommands: [\r\n 'setPage',\r\n 'setPageWithoutAnimation',\r\n 'setScrollEnabledImperatively',\r\n ],\r\n});\r\n\r\nexport default codegenNativeComponent<NativeProps>(\r\n 'RNCViewPager'\r\n) as HostComponent<NativeProps>;\r\n"],"mappings":";;;;;;AACA,IAAAA,sBAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,uBAAA,GAAAF,sBAAA,CAAAC,OAAA;AAA6F,SAAAD,uBAAAG,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAsDtF,MAAMG,QAAwB,GAAAC,OAAA,CAAAD,QAAA,GAAG,IAAAE,8BAAqB,EAAiB;EAC5EC,iBAAiB,EAAE,CACjB,SAAS,EACT,yBAAyB,EACzB,8BAA8B;AAElC,CAAC,CAAC;AAAC,IAAAC,QAAA,GAAAH,OAAA,CAAAF,OAAA,GAEY,IAAAM,+BAAsB,EACnC,cACF,CAAC","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_PagerView","require","_default","exports","default","PagerView"],"sources":["index.tsx"],"sourcesContent":["import type * as ReactNative from 'react-native';\r\nimport { PagerView } from './PagerView';\r\nexport default PagerView;\r\n\r\nimport type {\r\n OnPageScrollEventData as PagerViewOnPageScrollEventData,\r\n OnPageSelectedEventData as PagerViewOnPageSelectedEventData,\r\n OnPageScrollStateChangedEventData as PageScrollStateChangedNativeEventData,\r\n NativeProps,\r\n} from './PagerViewNativeComponent';\r\n\r\nexport type {\r\n PagerViewOnPageScrollEventData,\r\n PagerViewOnPageSelectedEventData,\r\n PageScrollStateChangedNativeEventData,\r\n NativeProps as PagerViewProps,\r\n};\r\n\r\nexport type PagerViewOnPageScrollEvent =\r\n ReactNative.NativeSyntheticEvent<PagerViewOnPageScrollEventData>;\r\n\r\nexport type PagerViewOnPageSelectedEvent =\r\n ReactNative.NativeSyntheticEvent<PagerViewOnPageSelectedEventData>;\r\n\r\nexport type PageScrollStateChangedNativeEvent =\r\n ReactNative.NativeSyntheticEvent<PageScrollStateChangedNativeEventData>;\r\n"],"mappings":";;;;;;AACA,IAAAA,UAAA,GAAAC,OAAA;AAAwC,IAAAC,QAAA,GAAAC,OAAA,CAAAC,OAAA,GACzBC,oBAAS","ignoreList":[]}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.childrenWithOverriddenStyle = void 0;
|
|
7
|
+
var _react = _interopRequireWildcard(require("react"));
|
|
8
|
+
var _reactNative = require("react-native");
|
|
9
|
+
function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
|
|
10
|
+
const childrenWithOverriddenStyle = children => {
|
|
11
|
+
return _react.Children.map(children, child => {
|
|
12
|
+
const element = child;
|
|
13
|
+
return (
|
|
14
|
+
/*#__PURE__*/
|
|
15
|
+
// Add a wrapper to ensure layout is calculated correctly
|
|
16
|
+
_react.default.createElement(_reactNative.View, {
|
|
17
|
+
style: _reactNative.StyleSheet.absoluteFill,
|
|
18
|
+
collapsable: false
|
|
19
|
+
}, /*#__PURE__*/_react.default.cloneElement(element, {
|
|
20
|
+
...element.props,
|
|
21
|
+
// Override styles so that each page will fill the parent.
|
|
22
|
+
style: [element.props.style, _reactNative.StyleSheet.absoluteFill]
|
|
23
|
+
}))
|
|
24
|
+
);
|
|
25
|
+
});
|
|
26
|
+
};
|
|
27
|
+
exports.childrenWithOverriddenStyle = childrenWithOverriddenStyle;
|
|
28
|
+
//# sourceMappingURL=utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_react","_interopRequireWildcard","require","_reactNative","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","childrenWithOverriddenStyle","children","Children","map","child","element","createElement","View","style","StyleSheet","absoluteFill","collapsable","React","cloneElement","props","exports"],"sources":["utils.tsx"],"sourcesContent":["import React, { Children, ReactNode } from 'react';\r\nimport { StyleSheet, View } from 'react-native';\r\n\r\nexport const childrenWithOverriddenStyle = (children?: ReactNode) => {\r\n return Children.map(children, (child) => {\r\n const element = child as React.ReactElement;\r\n return (\r\n // Add a wrapper to ensure layout is calculated correctly\r\n <View style={StyleSheet.absoluteFill} collapsable={false}>\r\n {/* @ts-ignore */}\r\n {React.cloneElement(element, {\r\n ...element.props,\r\n // Override styles so that each page will fill the parent.\r\n style: [element.props.style, StyleSheet.absoluteFill],\r\n })}\r\n </View>\r\n );\r\n });\r\n};\r\n"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,uBAAA,CAAAC,OAAA;AACA,IAAAC,YAAA,GAAAD,OAAA;AAAgD,SAAAD,wBAAAG,CAAA,EAAAC,CAAA,6BAAAC,OAAA,MAAAC,CAAA,OAAAD,OAAA,IAAAE,CAAA,OAAAF,OAAA,YAAAL,uBAAA,YAAAA,CAAAG,CAAA,EAAAC,CAAA,SAAAA,CAAA,IAAAD,CAAA,IAAAA,CAAA,CAAAK,UAAA,SAAAL,CAAA,MAAAM,CAAA,EAAAC,CAAA,EAAAC,CAAA,KAAAC,SAAA,QAAAC,OAAA,EAAAV,CAAA,iBAAAA,CAAA,uBAAAA,CAAA,yBAAAA,CAAA,SAAAQ,CAAA,MAAAF,CAAA,GAAAL,CAAA,GAAAG,CAAA,GAAAD,CAAA,QAAAG,CAAA,CAAAK,GAAA,CAAAX,CAAA,UAAAM,CAAA,CAAAM,GAAA,CAAAZ,CAAA,GAAAM,CAAA,CAAAO,GAAA,CAAAb,CAAA,EAAAQ,CAAA,gBAAAP,CAAA,IAAAD,CAAA,gBAAAC,CAAA,OAAAa,cAAA,CAAAC,IAAA,CAAAf,CAAA,EAAAC,CAAA,OAAAM,CAAA,IAAAD,CAAA,GAAAU,MAAA,CAAAC,cAAA,KAAAD,MAAA,CAAAE,wBAAA,CAAAlB,CAAA,EAAAC,CAAA,OAAAM,CAAA,CAAAK,GAAA,IAAAL,CAAA,CAAAM,GAAA,IAAAP,CAAA,CAAAE,CAAA,EAAAP,CAAA,EAAAM,CAAA,IAAAC,CAAA,CAAAP,CAAA,IAAAD,CAAA,CAAAC,CAAA,WAAAO,CAAA,KAAAR,CAAA,EAAAC,CAAA;AAEzC,MAAMkB,2BAA2B,GAAIC,QAAoB,IAAK;EACnE,OAAOC,eAAQ,CAACC,GAAG,CAACF,QAAQ,EAAGG,KAAK,IAAK;IACvC,MAAMC,OAAO,GAAGD,KAA2B;IAC3C;MAAA;MACE;MACA3B,MAAA,CAAAc,OAAA,CAAAe,aAAA,CAAC1B,YAAA,CAAA2B,IAAI;QAACC,KAAK,EAAEC,uBAAU,CAACC,YAAa;QAACC,WAAW,EAAE;MAAM,gBAEtDC,cAAK,CAACC,YAAY,CAACR,OAAO,EAAE;QAC3B,GAAGA,OAAO,CAACS,KAAK;QAChB;QACAN,KAAK,EAAE,CAACH,OAAO,CAACS,KAAK,CAACN,KAAK,EAAEC,uBAAU,CAACC,YAAY;MACtD,CAAC,CACG;IAAC;EAEX,CAAC,CAAC;AACJ,CAAC;AAACK,OAAA,CAAAf,2BAAA,GAAAA,2BAAA","ignoreList":[]}
|
|
@@ -0,0 +1,138 @@
|
|
|
1
|
+
function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
|
|
2
|
+
function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
|
|
3
|
+
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
|
|
4
|
+
function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
|
|
5
|
+
import React from 'react';
|
|
6
|
+
import { Platform, Keyboard } from 'react-native';
|
|
7
|
+
import { I18nManager } from 'react-native';
|
|
8
|
+
import { childrenWithOverriddenStyle } from './utils';
|
|
9
|
+
import PagerViewView, { Commands as PagerViewCommands } from './PagerViewNativeComponent';
|
|
10
|
+
|
|
11
|
+
/**
|
|
12
|
+
* Container that allows to flip left and right between child views. Each
|
|
13
|
+
* child view of the `PagerView` will be treated as a separate page
|
|
14
|
+
* and will be stretched to fill the `PagerView`.
|
|
15
|
+
*
|
|
16
|
+
* It is important all children are `<View>`s and not composite components.
|
|
17
|
+
* You can set style properties like `padding` or `backgroundColor` for each
|
|
18
|
+
* child. It is also important that each child have a `key` prop.
|
|
19
|
+
*
|
|
20
|
+
* Example:
|
|
21
|
+
*
|
|
22
|
+
* ```
|
|
23
|
+
* render: function() {
|
|
24
|
+
* return (
|
|
25
|
+
* <PagerView
|
|
26
|
+
* style={styles.PagerView}
|
|
27
|
+
* initialPage={0}>
|
|
28
|
+
* <View style={styles.pageStyle} key="1">
|
|
29
|
+
* <Text>First page</Text>
|
|
30
|
+
* </View>
|
|
31
|
+
* <View style={styles.pageStyle} key="2">
|
|
32
|
+
* <Text>Second page</Text>
|
|
33
|
+
* </View>
|
|
34
|
+
* </PagerView>
|
|
35
|
+
* );
|
|
36
|
+
* }
|
|
37
|
+
*
|
|
38
|
+
* ...
|
|
39
|
+
*
|
|
40
|
+
* var styles = {
|
|
41
|
+
* ...
|
|
42
|
+
* PagerView: {
|
|
43
|
+
* flex: 1
|
|
44
|
+
* },
|
|
45
|
+
* pageStyle: {
|
|
46
|
+
* alignItems: 'center',
|
|
47
|
+
* padding: 20,
|
|
48
|
+
* }
|
|
49
|
+
* }
|
|
50
|
+
* ```
|
|
51
|
+
*/
|
|
52
|
+
|
|
53
|
+
export class PagerView extends React.Component {
|
|
54
|
+
constructor(...args) {
|
|
55
|
+
super(...args);
|
|
56
|
+
_defineProperty(this, "isScrolling", false);
|
|
57
|
+
_defineProperty(this, "pagerView", null);
|
|
58
|
+
_defineProperty(this, "_onPageScroll", e => {
|
|
59
|
+
if (this.props.onPageScroll) {
|
|
60
|
+
this.props.onPageScroll(e);
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
// Not implemented on iOS yet
|
|
64
|
+
// @ts-ignore
|
|
65
|
+
if (Platform.OS === 'android' || Platform.OS === 'harmony') {
|
|
66
|
+
if (this.props.keyboardDismissMode === 'on-drag') {
|
|
67
|
+
Keyboard.dismiss();
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
});
|
|
71
|
+
_defineProperty(this, "_onPageScrollStateChanged", e => {
|
|
72
|
+
if (this.props.onPageScrollStateChanged) {
|
|
73
|
+
this.props.onPageScrollStateChanged(e);
|
|
74
|
+
}
|
|
75
|
+
this.isScrolling = e.nativeEvent.pageScrollState === 'dragging';
|
|
76
|
+
});
|
|
77
|
+
_defineProperty(this, "_onPageSelected", e => {
|
|
78
|
+
if (this.props.onPageSelected) {
|
|
79
|
+
this.props.onPageSelected(e);
|
|
80
|
+
}
|
|
81
|
+
});
|
|
82
|
+
/**
|
|
83
|
+
* A helper function to scroll to a specific page in the PagerView.
|
|
84
|
+
* The transition between pages will be animated.
|
|
85
|
+
*/
|
|
86
|
+
_defineProperty(this, "setPage", selectedPage => {
|
|
87
|
+
if (this.pagerView) {
|
|
88
|
+
PagerViewCommands.setPage(this.pagerView, selectedPage);
|
|
89
|
+
}
|
|
90
|
+
});
|
|
91
|
+
/**
|
|
92
|
+
* A helper function to scroll to a specific page in the PagerView.
|
|
93
|
+
* The transition between pages will *not* be animated.
|
|
94
|
+
*/
|
|
95
|
+
_defineProperty(this, "setPageWithoutAnimation", selectedPage => {
|
|
96
|
+
if (this.pagerView) {
|
|
97
|
+
PagerViewCommands.setPageWithoutAnimation(this.pagerView, selectedPage);
|
|
98
|
+
}
|
|
99
|
+
});
|
|
100
|
+
/**
|
|
101
|
+
* A helper function to enable/disable scroll imperatively
|
|
102
|
+
* The recommended way is using the scrollEnabled prop, however, there might be a case where a
|
|
103
|
+
* imperative solution is more useful (e.g. for not blocking an animation)
|
|
104
|
+
*/
|
|
105
|
+
_defineProperty(this, "setScrollEnabled", scrollEnabled => {
|
|
106
|
+
if (this.pagerView) {
|
|
107
|
+
PagerViewCommands.setScrollEnabledImperatively(this.pagerView, scrollEnabled);
|
|
108
|
+
}
|
|
109
|
+
});
|
|
110
|
+
_defineProperty(this, "_onMoveShouldSetResponderCapture", () => {
|
|
111
|
+
return this.isScrolling;
|
|
112
|
+
});
|
|
113
|
+
}
|
|
114
|
+
get deducedLayoutDirection() {
|
|
115
|
+
if (!this.props.layoutDirection ||
|
|
116
|
+
//@ts-ignore fix it
|
|
117
|
+
this.props.layoutDirection === 'locale') {
|
|
118
|
+
return I18nManager.isRTL ? 'rtl' : 'ltr';
|
|
119
|
+
} else {
|
|
120
|
+
return this.props.layoutDirection;
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
render() {
|
|
124
|
+
return /*#__PURE__*/React.createElement(PagerViewView, _extends({}, this.props, {
|
|
125
|
+
ref: ref => {
|
|
126
|
+
this.pagerView = ref;
|
|
127
|
+
},
|
|
128
|
+
style: this.props.style,
|
|
129
|
+
layoutDirection: this.deducedLayoutDirection,
|
|
130
|
+
onPageScroll: this._onPageScroll,
|
|
131
|
+
onPageScrollStateChanged: this._onPageScrollStateChanged,
|
|
132
|
+
onPageSelected: this._onPageSelected,
|
|
133
|
+
onMoveShouldSetResponderCapture: this._onMoveShouldSetResponderCapture,
|
|
134
|
+
children: childrenWithOverriddenStyle(this.props.children)
|
|
135
|
+
}));
|
|
136
|
+
}
|
|
137
|
+
}
|
|
138
|
+
//# sourceMappingURL=PagerView.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["React","Platform","Keyboard","I18nManager","childrenWithOverriddenStyle","PagerViewView","Commands","PagerViewCommands","PagerView","Component","constructor","args","_defineProperty","e","props","onPageScroll","OS","keyboardDismissMode","dismiss","onPageScrollStateChanged","isScrolling","nativeEvent","pageScrollState","onPageSelected","selectedPage","pagerView","setPage","setPageWithoutAnimation","scrollEnabled","setScrollEnabledImperatively","deducedLayoutDirection","layoutDirection","isRTL","render","createElement","_extends","ref","style","_onPageScroll","_onPageScrollStateChanged","_onPageSelected","onMoveShouldSetResponderCapture","_onMoveShouldSetResponderCapture","children"],"sources":["PagerView.tsx"],"sourcesContent":["import React from 'react';\r\nimport { Platform, Keyboard } from 'react-native';\r\nimport { I18nManager } from 'react-native';\r\nimport type {\r\n OnPageScrollEventData,\r\n OnPageScrollStateChangedEventData,\r\n OnPageSelectedEventData,\r\n} from './PagerViewNativeComponent';\r\nimport type * as ReactNative from 'react-native';\r\n\r\nimport type { NativeProps as PagerViewProps } from './PagerViewNativeComponent';\r\nimport { childrenWithOverriddenStyle } from './utils';\r\nimport PagerViewView, {\r\n Commands as PagerViewCommands,\r\n} from './PagerViewNativeComponent';\r\n\r\n/**\r\n * Container that allows to flip left and right between child views. Each\r\n * child view of the `PagerView` will be treated as a separate page\r\n * and will be stretched to fill the `PagerView`.\r\n *\r\n * It is important all children are `<View>`s and not composite components.\r\n * You can set style properties like `padding` or `backgroundColor` for each\r\n * child. It is also important that each child have a `key` prop.\r\n *\r\n * Example:\r\n *\r\n * ```\r\n * render: function() {\r\n * return (\r\n * <PagerView\r\n * style={styles.PagerView}\r\n * initialPage={0}>\r\n * <View style={styles.pageStyle} key=\"1\">\r\n * <Text>First page</Text>\r\n * </View>\r\n * <View style={styles.pageStyle} key=\"2\">\r\n * <Text>Second page</Text>\r\n * </View>\r\n * </PagerView>\r\n * );\r\n * }\r\n *\r\n * ...\r\n *\r\n * var styles = {\r\n * ...\r\n * PagerView: {\r\n * flex: 1\r\n * },\r\n * pageStyle: {\r\n * alignItems: 'center',\r\n * padding: 20,\r\n * }\r\n * }\r\n * ```\r\n */\r\n\r\nexport class PagerView extends React.Component<PagerViewProps> {\r\n private isScrolling = false;\r\n pagerView: React.ElementRef<typeof PagerViewView> | null = null;\r\n\r\n private _onPageScroll = (\r\n e: ReactNative.NativeSyntheticEvent<OnPageScrollEventData>\r\n ) => {\r\n if (this.props.onPageScroll) {\r\n this.props.onPageScroll(e);\r\n }\r\n\r\n // Not implemented on iOS yet\r\n // @ts-ignore\r\n if (Platform.OS === 'android' || Platform.OS === 'harmony') {\r\n if (this.props.keyboardDismissMode === 'on-drag') {\r\n Keyboard.dismiss();\r\n }\r\n }\r\n };\r\n\r\n private _onPageScrollStateChanged = (\r\n e: ReactNative.NativeSyntheticEvent<OnPageScrollStateChangedEventData>\r\n ) => {\r\n if (this.props.onPageScrollStateChanged) {\r\n this.props.onPageScrollStateChanged(e);\r\n }\r\n this.isScrolling = e.nativeEvent.pageScrollState === 'dragging';\r\n };\r\n\r\n private _onPageSelected = (\r\n e: ReactNative.NativeSyntheticEvent<OnPageSelectedEventData>\r\n ) => {\r\n if (this.props.onPageSelected) {\r\n this.props.onPageSelected(e);\r\n }\r\n };\r\n\r\n /**\r\n * A helper function to scroll to a specific page in the PagerView.\r\n * The transition between pages will be animated.\r\n */\r\n public setPage = (selectedPage: number) => {\r\n if (this.pagerView) {\r\n PagerViewCommands.setPage(this.pagerView, selectedPage);\r\n }\r\n };\r\n\r\n /**\r\n * A helper function to scroll to a specific page in the PagerView.\r\n * The transition between pages will *not* be animated.\r\n */\r\n public setPageWithoutAnimation = (selectedPage: number) => {\r\n if (this.pagerView) {\r\n PagerViewCommands.setPageWithoutAnimation(this.pagerView, selectedPage);\r\n }\r\n };\r\n\r\n /**\r\n * A helper function to enable/disable scroll imperatively\r\n * The recommended way is using the scrollEnabled prop, however, there might be a case where a\r\n * imperative solution is more useful (e.g. for not blocking an animation)\r\n */\r\n public setScrollEnabled = (scrollEnabled: boolean) => {\r\n if (this.pagerView) {\r\n PagerViewCommands.setScrollEnabledImperatively(\r\n this.pagerView,\r\n scrollEnabled\r\n );\r\n }\r\n };\r\n\r\n private _onMoveShouldSetResponderCapture = () => {\r\n return this.isScrolling;\r\n };\r\n\r\n private get deducedLayoutDirection() {\r\n if (\r\n !this.props.layoutDirection ||\r\n //@ts-ignore fix it\r\n this.props.layoutDirection === 'locale'\r\n ) {\r\n return I18nManager.isRTL ? 'rtl' : 'ltr';\r\n } else {\r\n return this.props.layoutDirection;\r\n }\r\n }\r\n\r\n render() {\r\n return (\r\n <PagerViewView\r\n {...this.props}\r\n ref={(ref) => {\r\n this.pagerView = ref;\r\n }}\r\n style={this.props.style}\r\n layoutDirection={this.deducedLayoutDirection}\r\n onPageScroll={this._onPageScroll}\r\n onPageScrollStateChanged={this._onPageScrollStateChanged}\r\n onPageSelected={this._onPageSelected}\r\n onMoveShouldSetResponderCapture={this._onMoveShouldSetResponderCapture}\r\n children={childrenWithOverriddenStyle(this.props.children)}\r\n />\r\n );\r\n }\r\n}\r\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import codegenNativeCommands from 'react-native/Libraries/Utilities/codegenNativeCommands';
|
|
2
|
+
import codegenNativeComponent from 'react-native/Libraries/Utilities/codegenNativeComponent';
|
|
3
|
+
export const Commands = codegenNativeCommands({
|
|
4
|
+
supportedCommands: ['setPage', 'setPageWithoutAnimation', 'setScrollEnabledImperatively']
|
|
5
|
+
});
|
|
6
|
+
export default codegenNativeComponent('RNCViewPager');
|
|
7
|
+
//# sourceMappingURL=PagerViewNativeComponent.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["codegenNativeCommands","codegenNativeComponent","Commands","supportedCommands"],"sources":["PagerViewNativeComponent.ts"],"sourcesContent":["import type * as React from 'react';\r\nimport codegenNativeCommands from 'react-native/Libraries/Utilities/codegenNativeCommands';\r\nimport codegenNativeComponent from 'react-native/Libraries/Utilities/codegenNativeComponent';\r\nimport type { HostComponent, ViewProps } from 'react-native';\r\nimport type {\r\n DirectEventHandler,\r\n Double,\r\n Int32,\r\n WithDefault,\r\n} from 'react-native/Libraries/Types/CodegenTypes';\r\n\r\nexport type OnPageScrollEventData = Readonly<{\r\n position: Double;\r\n offset: Double;\r\n}>;\r\n\r\nexport type OnPageSelectedEventData = Readonly<{\r\n position: Double;\r\n}>;\r\n\r\nexport type OnPageScrollStateChangedEventData = Readonly<{\r\n pageScrollState: 'idle' | 'dragging' | 'settling';\r\n}>;\r\n\r\nexport interface NativeProps extends ViewProps {\r\n scrollEnabled?: WithDefault<boolean, true>;\r\n layoutDirection?: WithDefault<'ltr' | 'rtl', 'ltr'>;\r\n initialPage?: Int32;\r\n orientation?: WithDefault<'horizontal' | 'vertical', 'horizontal'>;\r\n offscreenPageLimit?: Int32;\r\n pageMargin?: Int32;\r\n overScrollMode?: WithDefault<'auto' | 'always' | 'never', 'auto'>;\r\n overdrag?: WithDefault<boolean, false>;\r\n keyboardDismissMode?: WithDefault<'none' | 'on-drag', 'none'>;\r\n onPageScroll?: DirectEventHandler<OnPageScrollEventData>;\r\n onPageSelected?: DirectEventHandler<OnPageSelectedEventData>;\r\n onPageScrollStateChanged?: DirectEventHandler<OnPageScrollStateChangedEventData>;\r\n}\r\n\r\ntype PagerViewViewType = HostComponent<NativeProps>;\r\n\r\nexport interface NativeCommands {\r\n setPage: (\r\n viewRef: React.ElementRef<PagerViewViewType>,\r\n selectedPage: Int32\r\n ) => void;\r\n setPageWithoutAnimation: (\r\n viewRef: React.ElementRef<PagerViewViewType>,\r\n selectedPage: Int32\r\n ) => void;\r\n setScrollEnabledImperatively: (\r\n viewRef: React.ElementRef<PagerViewViewType>,\r\n scrollEnabled: boolean\r\n ) => void;\r\n}\r\n\r\nexport const Commands: NativeCommands = codegenNativeCommands<NativeCommands>({\r\n supportedCommands: [\r\n 'setPage',\r\n 'setPageWithoutAnimation',\r\n 'setScrollEnabledImperatively',\r\n ],\r\n});\r\n\r\nexport default codegenNativeComponent<NativeProps>(\r\n 'RNCViewPager'\r\n) as HostComponent<NativeProps>;\r\n"],"mappings":"AACA,OAAOA,qBAAqB,MAAM,wDAAwD;AAC1F,OAAOC,sBAAsB,MAAM,yDAAyD;AAsD5F,OAAO,MAAMC,QAAwB,GAAGF,qBAAqB,CAAiB;EAC5EG,iBAAiB,EAAE,CACjB,SAAS,EACT,yBAAyB,EACzB,8BAA8B;AAElC,CAAC,CAAC;AAEF,eAAeF,sBAAsB,CACnC,cACF,CAAC","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["PagerView"],"sources":["index.tsx"],"sourcesContent":["import type * as ReactNative from 'react-native';\r\nimport { PagerView } from './PagerView';\r\nexport default PagerView;\r\n\r\nimport type {\r\n OnPageScrollEventData as PagerViewOnPageScrollEventData,\r\n OnPageSelectedEventData as PagerViewOnPageSelectedEventData,\r\n OnPageScrollStateChangedEventData as PageScrollStateChangedNativeEventData,\r\n NativeProps,\r\n} from './PagerViewNativeComponent';\r\n\r\nexport type {\r\n PagerViewOnPageScrollEventData,\r\n PagerViewOnPageSelectedEventData,\r\n PageScrollStateChangedNativeEventData,\r\n NativeProps as PagerViewProps,\r\n};\r\n\r\nexport type PagerViewOnPageScrollEvent =\r\n ReactNative.NativeSyntheticEvent<PagerViewOnPageScrollEventData>;\r\n\r\nexport type PagerViewOnPageSelectedEvent =\r\n ReactNative.NativeSyntheticEvent<PagerViewOnPageSelectedEventData>;\r\n\r\nexport type PageScrollStateChangedNativeEvent =\r\n ReactNative.NativeSyntheticEvent<PageScrollStateChangedNativeEventData>;\r\n"],"mappings":"AACA,SAASA,SAAS,QAAQ,aAAa;AACvC,eAAeA,SAAS","ignoreList":[]}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import React, { Children } from 'react';
|
|
2
|
+
import { StyleSheet, View } from 'react-native';
|
|
3
|
+
export const childrenWithOverriddenStyle = children => {
|
|
4
|
+
return Children.map(children, child => {
|
|
5
|
+
const element = child;
|
|
6
|
+
return (
|
|
7
|
+
/*#__PURE__*/
|
|
8
|
+
// Add a wrapper to ensure layout is calculated correctly
|
|
9
|
+
React.createElement(View, {
|
|
10
|
+
style: StyleSheet.absoluteFill,
|
|
11
|
+
collapsable: false
|
|
12
|
+
}, /*#__PURE__*/React.cloneElement(element, {
|
|
13
|
+
...element.props,
|
|
14
|
+
// Override styles so that each page will fill the parent.
|
|
15
|
+
style: [element.props.style, StyleSheet.absoluteFill]
|
|
16
|
+
}))
|
|
17
|
+
);
|
|
18
|
+
});
|
|
19
|
+
};
|
|
20
|
+
//# sourceMappingURL=utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["React","Children","StyleSheet","View","childrenWithOverriddenStyle","children","map","child","element","createElement","style","absoluteFill","collapsable","cloneElement","props"],"sources":["utils.tsx"],"sourcesContent":["import React, { Children, ReactNode } from 'react';\r\nimport { StyleSheet, View } from 'react-native';\r\n\r\nexport const childrenWithOverriddenStyle = (children?: ReactNode) => {\r\n return Children.map(children, (child) => {\r\n const element = child as React.ReactElement;\r\n return (\r\n // Add a wrapper to ensure layout is calculated correctly\r\n <View style={StyleSheet.absoluteFill} collapsable={false}>\r\n {/* @ts-ignore */}\r\n {React.cloneElement(element, {\r\n ...element.props,\r\n // Override styles so that each page will fill the parent.\r\n style: [element.props.style, StyleSheet.absoluteFill],\r\n })}\r\n </View>\r\n );\r\n });\r\n};\r\n"],"mappings":"AAAA,OAAOA,KAAK,IAAIC,QAAQ,QAAmB,OAAO;AAClD,SAASC,UAAU,EAAEC,IAAI,QAAQ,cAAc;AAE/C,OAAO,MAAMC,2BAA2B,GAAIC,QAAoB,IAAK;EACnE,OAAOJ,QAAQ,CAACK,GAAG,CAACD,QAAQ,EAAGE,KAAK,IAAK;IACvC,MAAMC,OAAO,GAAGD,KAA2B;IAC3C;MAAA;MACE;MACAP,KAAA,CAAAS,aAAA,CAACN,IAAI;QAACO,KAAK,EAAER,UAAU,CAACS,YAAa;QAACC,WAAW,EAAE;MAAM,gBAEtDZ,KAAK,CAACa,YAAY,CAACL,OAAO,EAAE;QAC3B,GAAGA,OAAO,CAACM,KAAK;QAChB;QACAJ,KAAK,EAAE,CAACF,OAAO,CAACM,KAAK,CAACJ,KAAK,EAAER,UAAU,CAACS,YAAY;MACtD,CAAC,CACG;IAAC;EAEX,CAAC,CAAC;AACJ,CAAC","ignoreList":[]}
|