react-native-windows 0.0.0-canary.621 → 0.0.0-canary.623
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/.flowconfig +3 -1
- package/Libraries/Components/Touchable/TouchableHighlight.windows.js +1 -0
- package/Libraries/Components/Touchable/TouchableOpacity.windows.js +1 -0
- package/Libraries/Components/Touchable/TouchableWithoutFeedback.d.ts +2 -2
- package/Libraries/Components/Touchable/TouchableWithoutFeedback.js +3 -3
- package/Libraries/Components/Touchable/TouchableWithoutFeedback.windows.js +3 -3
- package/Libraries/Components/View/View.windows.js +2 -0
- package/Libraries/Components/View/ViewPropTypes.windows.js +2 -0
- package/Libraries/Core/InitializeCore.js +1 -0
- package/Libraries/Core/ReactNativeVersion.js +1 -1
- package/Libraries/Core/setUpDOM.js +18 -0
- package/Libraries/Core/setUpGlobals.js +5 -2
- package/Libraries/Core/setUpNavigator.js +6 -5
- package/Libraries/Core/setUpPerformance.js +1 -0
- package/Libraries/Core/setUpWebPerformance.js +1 -0
- package/Libraries/DOM/Geometry/DOMRect.js +82 -0
- package/Libraries/DOM/Geometry/DOMRectReadOnly.js +188 -0
- package/Libraries/Inspector/NetworkOverlay.js +1 -1
- package/Libraries/Lists/FillRateHelper.js +4 -238
- package/Libraries/Lists/FlatList.d.ts +1 -1
- package/Libraries/Lists/FlatList.js +7 -4
- package/Libraries/Lists/SectionList.d.ts +1 -1
- package/Libraries/Lists/SectionList.js +3 -3
- package/Libraries/Lists/SectionListModern.js +3 -3
- package/Libraries/Lists/ViewabilityHelper.js +8 -344
- package/Libraries/Lists/VirtualizeUtils.js +4 -244
- package/Libraries/Lists/VirtualizedList.js +10 -1939
- package/Libraries/Lists/VirtualizedListContext.js +6 -104
- package/Libraries/Lists/VirtualizedSectionList.js +9 -604
- package/Libraries/Modal/Modal.js +1 -1
- package/Libraries/Text/Text.d.ts +1 -1
- package/Libraries/Text/TextProps.js +1 -1
- package/Libraries/TurboModule/samples/NativeSampleTurboModule.js +6 -0
- package/Libraries/Utilities/ReactNativeTestTools.js +1 -1
- package/Libraries/WebPerformance/NativePerformanceObserver.js +2 -2
- package/Libraries/WebPerformance/PerformanceObserver.js +26 -3
- package/Microsoft.ReactNative/Fabric/FabricUIManagerModule.cpp +2 -3
- package/Microsoft.ReactNative/Fabric/FabricUIManagerModule.h +2 -3
- package/Microsoft.ReactNative/Microsoft.ReactNative.vcxproj +1 -0
- package/Microsoft.ReactNative/Version.rc +6 -2
- package/Microsoft.ReactNative/Views/ControlViewManager.cpp +6 -2
- package/Microsoft.ReactNative/Views/ShadowNodeBase.cpp +7 -0
- package/Microsoft.ReactNative/Views/ShadowNodeBase.h +3 -0
- package/Microsoft.ReactNative/Views/ViewViewManager.cpp +11 -3
- package/PropertySheets/Generated/PackageVersion.g.props +2 -1
- package/PropertySheets/PackageVersionDefinitions.props +2 -0
- package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/view/ViewProps.cpp +25 -23
- package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/view/YogaStylableProps.cpp +362 -0
- package/ReactCommon/Yoga.cpp +8 -0
- package/codegen/NativePerformanceObserverSpec.g.h +6 -6
- package/codegen/NativeSampleTurboModuleSpec.g.h +23 -17
- package/codegen/rnwcoreJSI-generated.cpp +6 -2
- package/codegen/rnwcoreJSI.h +40 -4
- package/index.js +1 -1
- package/index.windows.js +1 -1
- package/interface.js +1 -1
- package/package.json +11 -9
- package/Libraries/Interaction/Batchinator.js +0 -76
- package/Libraries/Interaction/BridgeSpyStallHandler.js +0 -63
- package/Libraries/Interaction/InteractionStallDebugger.js +0 -23
- package/Libraries/Lists/CellRenderMask.js +0 -155
- package/Libraries/Lists/ChildListCollection.js +0 -72
- package/Libraries/Lists/StateSafePureComponent.js +0 -85
- package/Libraries/Lists/VirtualizedList.d.ts +0 -374
- package/Libraries/Lists/VirtualizedListCellRenderer.js +0 -263
- package/Libraries/Lists/VirtualizedListProps.js +0 -290
- package/Libraries/Performance/PureComponentDebug.js +0 -74
- package/Libraries/Reliability/UserFlow.js +0 -158
- package/Libraries/Utilities/MatrixMath.js +0 -748
- package/Libraries/Utilities/buildStyleInterpolator.js +0 -209
- package/Libraries/Utilities/clamp.js +0 -23
- package/Libraries/Utilities/deprecatedPropType.js +0 -36
- package/Libraries/Utilities/groupByEveryN.js +0 -51
- package/Libraries/Utilities/mergeIntoFast.js +0 -26
- package/Libraries/Utilities/truncate.js +0 -51
package/.flowconfig
CHANGED
|
@@ -324,6 +324,7 @@ class TouchableHighlight extends React.Component<Props, State> {
|
|
|
324
324
|
accessibilityValue={accessibilityValue}
|
|
325
325
|
accessibilityActions={this.props.accessibilityActions}
|
|
326
326
|
onAccessibilityAction={this.props.onAccessibilityAction}
|
|
327
|
+
disabled={this.props.disabled}
|
|
327
328
|
importantForAccessibility={
|
|
328
329
|
this.props['aria-hidden'] === true
|
|
329
330
|
? 'no-hide-descendants'
|
|
@@ -281,6 +281,7 @@ class TouchableOpacity extends React.Component<Props, State> {
|
|
|
281
281
|
accessibilityElementsHidden={
|
|
282
282
|
this.props['aria-hidden'] ?? this.props.accessibilityElementsHidden
|
|
283
283
|
}
|
|
284
|
+
disabled={this.props.disabled}
|
|
284
285
|
style={[this.props.style, {opacity: this.state.anim}]}
|
|
285
286
|
nativeID={this.props.nativeID}
|
|
286
287
|
testID={this.props.testID}
|
|
@@ -69,7 +69,7 @@ export interface TouchableWithoutFeedbackProps
|
|
|
69
69
|
* the Z-index of sibling views always takes precedence if a touch hits
|
|
70
70
|
* two overlapping views.
|
|
71
71
|
*/
|
|
72
|
-
hitSlop?: Insets | undefined;
|
|
72
|
+
hitSlop?: null | Insets | number | undefined;
|
|
73
73
|
|
|
74
74
|
/**
|
|
75
75
|
* Used to reference react managed views from native code.
|
|
@@ -121,7 +121,7 @@ export interface TouchableWithoutFeedbackProps
|
|
|
121
121
|
* while the scroll view is disabled. Ensure you pass in a constant
|
|
122
122
|
* to reduce memory allocations.
|
|
123
123
|
*/
|
|
124
|
-
pressRetentionOffset?: Insets | undefined;
|
|
124
|
+
pressRetentionOffset?: null | Insets | number | undefined;
|
|
125
125
|
|
|
126
126
|
/**
|
|
127
127
|
* Used to locate this view in end-to-end tests.
|
|
@@ -15,7 +15,7 @@ import type {
|
|
|
15
15
|
AccessibilityState,
|
|
16
16
|
AccessibilityValue,
|
|
17
17
|
} from '../../Components/View/ViewAccessibility';
|
|
18
|
-
import type {
|
|
18
|
+
import type {EdgeInsetsOrSizeProp} from '../../StyleSheet/EdgeInsetsPropType';
|
|
19
19
|
import type {
|
|
20
20
|
BlurEvent,
|
|
21
21
|
FocusEvent,
|
|
@@ -67,7 +67,7 @@ type Props = $ReadOnly<{|
|
|
|
67
67
|
delayPressOut?: ?number,
|
|
68
68
|
disabled?: ?boolean,
|
|
69
69
|
focusable?: ?boolean,
|
|
70
|
-
hitSlop?: ?
|
|
70
|
+
hitSlop?: ?EdgeInsetsOrSizeProp,
|
|
71
71
|
id?: string,
|
|
72
72
|
importantForAccessibility?: ?('auto' | 'yes' | 'no' | 'no-hide-descendants'),
|
|
73
73
|
nativeID?: ?string,
|
|
@@ -79,7 +79,7 @@ type Props = $ReadOnly<{|
|
|
|
79
79
|
onPress?: ?(event: PressEvent) => mixed,
|
|
80
80
|
onPressIn?: ?(event: PressEvent) => mixed,
|
|
81
81
|
onPressOut?: ?(event: PressEvent) => mixed,
|
|
82
|
-
pressRetentionOffset?: ?
|
|
82
|
+
pressRetentionOffset?: ?EdgeInsetsOrSizeProp,
|
|
83
83
|
rejectResponderTermination?: ?boolean,
|
|
84
84
|
testID?: ?string,
|
|
85
85
|
touchSoundDisabled?: ?boolean,
|
|
@@ -15,7 +15,7 @@ import type {
|
|
|
15
15
|
AccessibilityState,
|
|
16
16
|
AccessibilityValue,
|
|
17
17
|
} from '../../Components/View/ViewAccessibility';
|
|
18
|
-
import type {
|
|
18
|
+
import type {EdgeInsetsOrSizeProp} from '../../StyleSheet/EdgeInsetsPropType';
|
|
19
19
|
import type {
|
|
20
20
|
BlurEvent,
|
|
21
21
|
FocusEvent,
|
|
@@ -68,7 +68,7 @@ type Props = $ReadOnly<{|
|
|
|
68
68
|
delayPressOut?: ?number,
|
|
69
69
|
disabled?: ?boolean,
|
|
70
70
|
focusable?: ?boolean,
|
|
71
|
-
hitSlop?: ?
|
|
71
|
+
hitSlop?: ?EdgeInsetsOrSizeProp,
|
|
72
72
|
id?: string,
|
|
73
73
|
importantForAccessibility?: ?('auto' | 'yes' | 'no' | 'no-hide-descendants'),
|
|
74
74
|
nativeID?: ?string,
|
|
@@ -80,7 +80,7 @@ type Props = $ReadOnly<{|
|
|
|
80
80
|
onPress?: ?(event: PressEvent) => mixed,
|
|
81
81
|
onPressIn?: ?(event: PressEvent) => mixed,
|
|
82
82
|
onPressOut?: ?(event: PressEvent) => mixed,
|
|
83
|
-
pressRetentionOffset?: ?
|
|
83
|
+
pressRetentionOffset?: ?EdgeInsetsOrSizeProp,
|
|
84
84
|
rejectResponderTermination?: ?boolean,
|
|
85
85
|
testID?: ?string,
|
|
86
86
|
touchSoundDisabled?: ?boolean,
|
|
@@ -56,6 +56,7 @@ const View: React.AbstractComponent<
|
|
|
56
56
|
'aria-valuenow': ariaValueNow,
|
|
57
57
|
'aria-valuetext': ariaValueText,
|
|
58
58
|
focusable,
|
|
59
|
+
disabled,
|
|
59
60
|
id,
|
|
60
61
|
importantForAccessibility,
|
|
61
62
|
nativeID,
|
|
@@ -205,6 +206,7 @@ const View: React.AbstractComponent<
|
|
|
205
206
|
}
|
|
206
207
|
accessibilityLabel={ariaLabel ?? accessibilityLabel}
|
|
207
208
|
focusable={tabIndex !== undefined ? !tabIndex : focusable}
|
|
209
|
+
disabled={disabled}
|
|
208
210
|
accessibilityState={_accessibilityState}
|
|
209
211
|
accessibilityRole={
|
|
210
212
|
role ? getAccessibilityRoleFromRole(role) : accessibilityRole
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright (c) Meta Platforms, Inc. and affiliates.
|
|
3
|
+
*
|
|
4
|
+
* This source code is licensed under the MIT license found in the
|
|
5
|
+
* LICENSE file in the root directory of this source tree.
|
|
6
|
+
*
|
|
7
|
+
* @flow strict
|
|
8
|
+
* @format
|
|
9
|
+
*/
|
|
10
|
+
|
|
11
|
+
import DOMRect from '../DOM/Geometry/DOMRect';
|
|
12
|
+
import DOMRectReadOnly from '../DOM/Geometry/DOMRectReadOnly';
|
|
13
|
+
|
|
14
|
+
// $FlowExpectedError[cannot-write] The global isn't writable anywhere but here, where we define it
|
|
15
|
+
global.DOMRect = DOMRect;
|
|
16
|
+
|
|
17
|
+
// $FlowExpectedError[cannot-write] The global isn't writable anywhere but here, where we define it
|
|
18
|
+
global.DOMRectReadOnly = DOMRectReadOnly;
|
|
@@ -15,18 +15,21 @@
|
|
|
15
15
|
* You can use this module directly, or just require InitializeCore.
|
|
16
16
|
*/
|
|
17
17
|
if (global.window === undefined) {
|
|
18
|
-
// $
|
|
18
|
+
// $FlowExpectedError[cannot-write] The global isn't writable anywhere but here, where we define it.
|
|
19
19
|
global.window = global;
|
|
20
20
|
}
|
|
21
21
|
|
|
22
22
|
if (global.self === undefined) {
|
|
23
|
-
// $
|
|
23
|
+
// $FlowExpectedError[cannot-write] The global isn't writable anywhere but here, where we define it.
|
|
24
24
|
global.self = global;
|
|
25
25
|
}
|
|
26
26
|
|
|
27
27
|
// Set up process
|
|
28
|
+
// $FlowExpectedError[cannot-write] The global isn't writable anywhere but here, where we define it.
|
|
28
29
|
global.process = global.process || {};
|
|
30
|
+
// $FlowExpectedError[cannot-write] The global isn't writable anywhere but here, where we define it.
|
|
29
31
|
global.process.env = global.process.env || {};
|
|
30
32
|
if (!global.process.env.NODE_ENV) {
|
|
33
|
+
// $FlowExpectedError[cannot-write] The global isn't writable anywhere but here, where we define it.
|
|
31
34
|
global.process.env.NODE_ENV = __DEV__ ? 'development' : 'production';
|
|
32
35
|
}
|
|
@@ -12,10 +12,11 @@
|
|
|
12
12
|
|
|
13
13
|
const {polyfillObjectProperty} = require('../Utilities/PolyfillFunctions');
|
|
14
14
|
|
|
15
|
-
|
|
15
|
+
const navigator = global.navigator;
|
|
16
16
|
if (navigator === undefined) {
|
|
17
|
-
global
|
|
17
|
+
// $FlowExpectedError[cannot-write] The global isn't writable anywhere but here, where we define it.
|
|
18
|
+
global.navigator = {product: 'ReactNative'};
|
|
19
|
+
} else {
|
|
20
|
+
// see https://github.com/facebook/react-native/issues/10881
|
|
21
|
+
polyfillObjectProperty(navigator, 'product', () => 'ReactNative');
|
|
18
22
|
}
|
|
19
|
-
|
|
20
|
-
// see https://github.com/facebook/react-native/issues/10881
|
|
21
|
-
polyfillObjectProperty(navigator, 'product', () => 'ReactNative');
|
|
@@ -17,6 +17,7 @@ if (!global.performance) {
|
|
|
17
17
|
* https://developer.mozilla.org/en-US/docs/Web/API/Performance/now
|
|
18
18
|
*/
|
|
19
19
|
if (typeof global.performance.now !== 'function') {
|
|
20
|
+
// $FlowExpectedError[cannot-write] The global isn't writable anywhere but here, where we define it.
|
|
20
21
|
global.performance.now = function () {
|
|
21
22
|
const performanceNow = global.nativePerformanceNow || Date.now;
|
|
22
23
|
return performanceNow();
|
|
@@ -12,5 +12,6 @@ import Performance from '../WebPerformance/Performance';
|
|
|
12
12
|
|
|
13
13
|
// TODO: Replace setUpPerformance with this once the WebPerformance API is stable (T143070419)
|
|
14
14
|
export default function setUpPerformance() {
|
|
15
|
+
// $FlowExpectedError[cannot-write] The global isn't writable anywhere but here, where we define it.
|
|
15
16
|
global.performance = new Performance();
|
|
16
17
|
}
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright (c) Meta Platforms, Inc. and affiliates.
|
|
3
|
+
*
|
|
4
|
+
* This source code is licensed under the MIT license found in the
|
|
5
|
+
* LICENSE file in the root directory of this source tree.
|
|
6
|
+
*
|
|
7
|
+
* @flow strict
|
|
8
|
+
* @format
|
|
9
|
+
*/
|
|
10
|
+
|
|
11
|
+
/**
|
|
12
|
+
* The JSDoc comments in this file have been extracted from [DOMRect](https://developer.mozilla.org/en-US/docs/Web/API/DOMRect).
|
|
13
|
+
* Content by [Mozilla Contributors](https://developer.mozilla.org/en-US/docs/Web/API/DOMRect/contributors.txt),
|
|
14
|
+
* licensed under [CC-BY-SA 2.5](https://creativecommons.org/licenses/by-sa/2.5/).
|
|
15
|
+
*/
|
|
16
|
+
|
|
17
|
+
import DOMRectReadOnly, {type DOMRectLike} from './DOMRectReadOnly';
|
|
18
|
+
|
|
19
|
+
// flowlint unsafe-getters-setters:off
|
|
20
|
+
|
|
21
|
+
/**
|
|
22
|
+
* A `DOMRect` describes the size and position of a rectangle.
|
|
23
|
+
* The type of box represented by the `DOMRect` is specified by the method or property that returned it.
|
|
24
|
+
*
|
|
25
|
+
* This is a (mostly) spec-compliant version of `DOMRect` (https://developer.mozilla.org/en-US/docs/Web/API/DOMRect).
|
|
26
|
+
*/
|
|
27
|
+
export default class DOMRect extends DOMRectReadOnly {
|
|
28
|
+
/**
|
|
29
|
+
* The x coordinate of the `DOMRect`'s origin.
|
|
30
|
+
*/
|
|
31
|
+
get x(): number {
|
|
32
|
+
return this.__getInternalX();
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
set x(x: ?number) {
|
|
36
|
+
this.__setInternalX(x);
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
/**
|
|
40
|
+
* The y coordinate of the `DOMRect`'s origin.
|
|
41
|
+
*/
|
|
42
|
+
get y(): number {
|
|
43
|
+
return this.__getInternalY();
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
set y(y: ?number) {
|
|
47
|
+
this.__setInternalY(y);
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
/**
|
|
51
|
+
* The width of the `DOMRect`.
|
|
52
|
+
*/
|
|
53
|
+
get width(): number {
|
|
54
|
+
return this.__getInternalWidth();
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
set width(width: ?number) {
|
|
58
|
+
this.__setInternalWidth(width);
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
/**
|
|
62
|
+
* The height of the `DOMRect`.
|
|
63
|
+
*/
|
|
64
|
+
get height(): number {
|
|
65
|
+
return this.__getInternalHeight();
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
set height(height: ?number) {
|
|
69
|
+
this.__setInternalHeight(height);
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
/**
|
|
73
|
+
* Creates a new `DOMRect` object with a given location and dimensions.
|
|
74
|
+
*/
|
|
75
|
+
static fromRect(rect?: ?DOMRectLike): DOMRect {
|
|
76
|
+
if (!rect) {
|
|
77
|
+
return new DOMRect();
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
return new DOMRect(rect.x, rect.y, rect.width, rect.height);
|
|
81
|
+
}
|
|
82
|
+
}
|
|
@@ -0,0 +1,188 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright (c) Meta Platforms, Inc. and affiliates.
|
|
3
|
+
*
|
|
4
|
+
* This source code is licensed under the MIT license found in the
|
|
5
|
+
* LICENSE file in the root directory of this source tree.
|
|
6
|
+
*
|
|
7
|
+
* @flow strict
|
|
8
|
+
* @format
|
|
9
|
+
*/
|
|
10
|
+
|
|
11
|
+
/**
|
|
12
|
+
* The JSDoc comments in this file have been extracted from [DOMRectReadOnly](https://developer.mozilla.org/en-US/docs/Web/API/DOMRectReadOnly).
|
|
13
|
+
* Content by [Mozilla Contributors](https://developer.mozilla.org/en-US/docs/Web/API/DOMRectReadOnly/contributors.txt),
|
|
14
|
+
* licensed under [CC-BY-SA 2.5](https://creativecommons.org/licenses/by-sa/2.5/).
|
|
15
|
+
*/
|
|
16
|
+
|
|
17
|
+
// flowlint sketchy-null:off, unsafe-getters-setters:off
|
|
18
|
+
|
|
19
|
+
export interface DOMRectLike {
|
|
20
|
+
x?: ?number;
|
|
21
|
+
y?: ?number;
|
|
22
|
+
width?: ?number;
|
|
23
|
+
height?: ?number;
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
function castToNumber(value: mixed): number {
|
|
27
|
+
return value ? Number(value) : 0;
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
/**
|
|
31
|
+
* The `DOMRectReadOnly` interface specifies the standard properties used by `DOMRect` to define a rectangle whose properties are immutable.
|
|
32
|
+
*
|
|
33
|
+
* This is a (mostly) spec-compliant version of `DOMRectReadOnly` (https://developer.mozilla.org/en-US/docs/Web/API/DOMRectReadOnly).
|
|
34
|
+
*/
|
|
35
|
+
export default class DOMRectReadOnly {
|
|
36
|
+
_x: number;
|
|
37
|
+
_y: number;
|
|
38
|
+
_width: number;
|
|
39
|
+
_height: number;
|
|
40
|
+
|
|
41
|
+
constructor(x: ?number, y: ?number, width: ?number, height: ?number) {
|
|
42
|
+
this.__setInternalX(x);
|
|
43
|
+
this.__setInternalY(y);
|
|
44
|
+
this.__setInternalWidth(width);
|
|
45
|
+
this.__setInternalHeight(height);
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
/**
|
|
49
|
+
* The x coordinate of the `DOMRectReadOnly`'s origin.
|
|
50
|
+
*/
|
|
51
|
+
get x(): number {
|
|
52
|
+
return this._x;
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
/**
|
|
56
|
+
* The y coordinate of the `DOMRectReadOnly`'s origin.
|
|
57
|
+
*/
|
|
58
|
+
get y(): number {
|
|
59
|
+
return this._y;
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
/**
|
|
63
|
+
* The width of the `DOMRectReadOnly`.
|
|
64
|
+
*/
|
|
65
|
+
get width(): number {
|
|
66
|
+
return this._width;
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
/**
|
|
70
|
+
* The height of the `DOMRectReadOnly`.
|
|
71
|
+
*/
|
|
72
|
+
get height(): number {
|
|
73
|
+
return this._height;
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
/**
|
|
77
|
+
* Returns the top coordinate value of the `DOMRect` (has the same value as `y`, or `y + height` if `height` is negative).
|
|
78
|
+
*/
|
|
79
|
+
get top(): number {
|
|
80
|
+
const height = this._height;
|
|
81
|
+
const y = this._y;
|
|
82
|
+
|
|
83
|
+
if (height < 0) {
|
|
84
|
+
return y + height;
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
return y;
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
/**
|
|
91
|
+
* Returns the right coordinate value of the `DOMRect` (has the same value as ``x + width`, or `x` if `width` is negative).
|
|
92
|
+
*/
|
|
93
|
+
get right(): number {
|
|
94
|
+
const width = this._width;
|
|
95
|
+
const x = this._x;
|
|
96
|
+
|
|
97
|
+
if (width < 0) {
|
|
98
|
+
return x;
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
return x + width;
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
/**
|
|
105
|
+
* Returns the bottom coordinate value of the `DOMRect` (has the same value as `y + height`, or `y` if `height` is negative).
|
|
106
|
+
*/
|
|
107
|
+
get bottom(): number {
|
|
108
|
+
const height = this._height;
|
|
109
|
+
const y = this._y;
|
|
110
|
+
|
|
111
|
+
if (height < 0) {
|
|
112
|
+
return y;
|
|
113
|
+
}
|
|
114
|
+
|
|
115
|
+
return y + height;
|
|
116
|
+
}
|
|
117
|
+
|
|
118
|
+
/**
|
|
119
|
+
* Returns the left coordinate value of the `DOMRect` (has the same value as `x`, or `x + width` if `width` is negative).
|
|
120
|
+
*/
|
|
121
|
+
get left(): number {
|
|
122
|
+
const width = this._width;
|
|
123
|
+
const x = this._x;
|
|
124
|
+
|
|
125
|
+
if (width < 0) {
|
|
126
|
+
return x + width;
|
|
127
|
+
}
|
|
128
|
+
|
|
129
|
+
return x;
|
|
130
|
+
}
|
|
131
|
+
|
|
132
|
+
toJSON(): {
|
|
133
|
+
x: number,
|
|
134
|
+
y: number,
|
|
135
|
+
width: number,
|
|
136
|
+
height: number,
|
|
137
|
+
top: number,
|
|
138
|
+
left: number,
|
|
139
|
+
bottom: number,
|
|
140
|
+
right: number,
|
|
141
|
+
} {
|
|
142
|
+
const {x, y, width, height, top, left, bottom, right} = this;
|
|
143
|
+
return {x, y, width, height, top, left, bottom, right};
|
|
144
|
+
}
|
|
145
|
+
|
|
146
|
+
/**
|
|
147
|
+
* Creates a new `DOMRectReadOnly` object with a given location and dimensions.
|
|
148
|
+
*/
|
|
149
|
+
static fromRect(rect?: ?DOMRectLike): DOMRectReadOnly {
|
|
150
|
+
if (!rect) {
|
|
151
|
+
return new DOMRectReadOnly();
|
|
152
|
+
}
|
|
153
|
+
|
|
154
|
+
return new DOMRectReadOnly(rect.x, rect.y, rect.width, rect.height);
|
|
155
|
+
}
|
|
156
|
+
|
|
157
|
+
__getInternalX(): number {
|
|
158
|
+
return this._x;
|
|
159
|
+
}
|
|
160
|
+
|
|
161
|
+
__getInternalY(): number {
|
|
162
|
+
return this._y;
|
|
163
|
+
}
|
|
164
|
+
|
|
165
|
+
__getInternalWidth(): number {
|
|
166
|
+
return this._width;
|
|
167
|
+
}
|
|
168
|
+
|
|
169
|
+
__getInternalHeight(): number {
|
|
170
|
+
return this._height;
|
|
171
|
+
}
|
|
172
|
+
|
|
173
|
+
__setInternalX(x: ?number) {
|
|
174
|
+
this._x = castToNumber(x);
|
|
175
|
+
}
|
|
176
|
+
|
|
177
|
+
__setInternalY(y: ?number) {
|
|
178
|
+
this._y = castToNumber(y);
|
|
179
|
+
}
|
|
180
|
+
|
|
181
|
+
__setInternalWidth(width: ?number) {
|
|
182
|
+
this._width = castToNumber(width);
|
|
183
|
+
}
|
|
184
|
+
|
|
185
|
+
__setInternalHeight(height: ?number) {
|
|
186
|
+
this._height = castToNumber(height);
|
|
187
|
+
}
|
|
188
|
+
}
|
|
@@ -10,7 +10,7 @@
|
|
|
10
10
|
|
|
11
11
|
'use strict';
|
|
12
12
|
|
|
13
|
-
import type {RenderItemProps} from '
|
|
13
|
+
import type {RenderItemProps} from '@react-native/virtualized-lists';
|
|
14
14
|
|
|
15
15
|
const ScrollView = require('../Components/ScrollView/ScrollView');
|
|
16
16
|
const TouchableHighlight = require('../Components/Touchable/TouchableHighlight');
|