@office-iss/react-native-win32 0.71.2 → 0.71.3

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/CHANGELOG.md CHANGED
@@ -1,9 +1,18 @@
1
- # Change Log - @office-iss/react-native-win32
2
-
3
- This log was last generated on Mon, 13 Feb 2023 16:16:01 GMT and should not be manually modified.
4
-
5
- <!-- Start content -->
6
-
1
+ # Change Log - @office-iss/react-native-win32
2
+
3
+ This log was last generated on Tue, 21 Mar 2023 20:58:27 GMT and should not be manually modified.
4
+
5
+ <!-- Start content -->
6
+
7
+ ## 0.71.3
8
+
9
+ Tue, 21 Mar 2023 20:58:27 GMT
10
+
11
+ ### Patches
12
+
13
+ - Align dependencies with react-native@0.71.4 (30809111+acoates-ms@users.noreply.github.com)
14
+ - Minor TS type updates (30809111+acoates-ms@users.noreply.github.com)
15
+
7
16
  ## 0.71.1
8
17
 
9
18
  Mon, 13 Feb 2023 16:16:01 GMT
@@ -4818,4 +4827,4 @@ Mon, 01 May 2017 19:28:16 GMT
4818
4827
 
4819
4828
  ### Patches
4820
4829
 
4821
- - Move @office-iss/react-native to 0.40.1 to fix build
4830
+ - Move @office-iss/react-native to 0.40.1 to fix build
@@ -77,6 +77,7 @@ export interface AlertStatic {
77
77
  type?: AlertType,
78
78
  defaultValue?: string,
79
79
  keyboardType?: string,
80
+ options?: AlertOptions,
80
81
  ) => void;
81
82
  }
82
83
 
@@ -45,6 +45,16 @@ export type KeyboardTypeOptions =
45
45
  | KeyboardTypeAndroid
46
46
  | KeyboardTypeIOS;
47
47
 
48
+ export type InputModeOptions =
49
+ | 'none'
50
+ | 'text'
51
+ | 'decimal'
52
+ | 'numeric'
53
+ | 'tel'
54
+ | 'search'
55
+ | 'email'
56
+ | 'url';
57
+
48
58
  export type ReturnKeyType = 'done' | 'go' | 'next' | 'search' | 'send';
49
59
  export type ReturnKeyTypeAndroid = 'none' | 'previous';
50
60
  export type ReturnKeyTypeIOS =
@@ -588,6 +598,11 @@ export interface TextInputProps
588
598
  */
589
599
  keyboardType?: KeyboardTypeOptions | undefined;
590
600
 
601
+ /**
602
+ * Works like the inputmode attribute in HTML, it determines which keyboard to open, e.g. numeric and has precedence over keyboardType.
603
+ */
604
+ inputMode?: InputModeOptions | undefined;
605
+
591
606
  /**
592
607
  * Limits the maximum number of characters that can be entered.
593
608
  * Use this instead of implementing the logic in JS to avoid flicker.
@@ -301,9 +301,8 @@ class TouchableOpacity extends React.Component<Props, State> {
301
301
  this.state.pressability.configure(this._createPressabilityConfig());
302
302
  if (
303
303
  this.props.disabled !== prevProps.disabled ||
304
- (flattenStyle(prevProps.style)?.opacity !==
305
- flattenStyle(this.props.style)?.opacity) !==
306
- undefined
304
+ flattenStyle(prevProps.style)?.opacity !==
305
+ flattenStyle(this.props.style)?.opacity
307
306
  ) {
308
307
  this._opacityInactive(250);
309
308
  }
@@ -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 {EdgeInsetsProp} from '../../StyleSheet/EdgeInsetsPropType';
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?: ?EdgeInsetsProp,
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?: ?EdgeInsetsProp,
82
+ pressRetentionOffset?: ?EdgeInsetsOrSizeProp,
83
83
  rejectResponderTermination?: ?boolean,
84
84
  testID?: ?string,
85
85
  touchSoundDisabled?: ?boolean,
@@ -251,6 +251,12 @@ export interface AccessibilityPropsAndroid {
251
251
  | 'no'
252
252
  | 'no-hide-descendants'
253
253
  | undefined;
254
+
255
+ /**
256
+ * A reference to another element `nativeID` used to build complex forms. The value of `accessibilityLabelledBy` should match the `nativeID` of the related element.
257
+ * @platform android
258
+ */
259
+ accessibilityLabelledBy?: string | string[] | undefined;
254
260
  }
255
261
 
256
262
  export interface AccessibilityPropsIOS {
@@ -290,6 +296,13 @@ export interface AccessibilityPropsIOS {
290
296
  * @platform ios
291
297
  */
292
298
  accessibilityIgnoresInvertColors?: boolean | undefined;
299
+
300
+ /**
301
+ * By using the accessibilityLanguage property, the screen reader will understand which language to use while reading the element's label, value and hint. The provided string value must follow the BCP 47 specification (https://www.rfc-editor.org/info/bcp47).
302
+ * https://reactnative.dev/docs/accessibility#accessibilitylanguage-ios
303
+ * @platform ios
304
+ */
305
+ accessibilityLanguage?: string | undefined;
293
306
  }
294
307
 
295
308
  export type Role =
@@ -9,7 +9,7 @@
9
9
 
10
10
  import type * as React from 'react';
11
11
  import {Constructor} from 'react-native/types/private/Utilities';
12
- import {ViewProps} from './ViewPropTypes';
12
+ import {ViewProps} from './ViewPropTypes.win32';
13
13
  import {NativeMethods} from 'react-native/types/public/ReactNativeTypes';
14
14
 
15
15
  /**
@@ -12,6 +12,6 @@
12
12
  exports.version = {
13
13
  major: 0,
14
14
  minor: 71,
15
- patch: 0,
15
+ patch: 4,
16
16
  prerelease: null,
17
17
  };
@@ -14,9 +14,9 @@ import type {
14
14
  VirtualizedListProps,
15
15
  } from './VirtualizedList';
16
16
  import type {ScrollViewComponent} from '../Components/ScrollView/ScrollView';
17
- import {StyleProp} from '../StyleSheet/StyleSheet';
18
- import {ViewStyle} from '../StyleSheet/StyleSheetTypes';
19
- import {View} from '../Components/View/View';
17
+ import type {StyleProp} from '../StyleSheet/StyleSheet';
18
+ import type {ViewStyle} from '../StyleSheet/StyleSheetTypes';
19
+ import type {View} from '../Components/View/View';
20
20
 
21
21
  export interface FlatListProps<ItemT> extends VirtualizedListProps<ItemT> {
22
22
  /**
@@ -40,10 +40,10 @@ export interface FlatListProps<ItemT> extends VirtualizedListProps<ItemT> {
40
40
  | undefined;
41
41
 
42
42
  /**
43
- * For simplicity, data is just a plain array. If you want to use something else,
44
- * like an immutable list, use the underlying VirtualizedList directly.
43
+ * An array (or array-like list) of items to render. Other data types can be
44
+ * used by targetting VirtualizedList directly.
45
45
  */
46
- data: ReadonlyArray<ItemT> | null | undefined;
46
+ data: ArrayLike<ItemT> | null | undefined;
47
47
 
48
48
  /**
49
49
  * A marker property for telling the list to re-render (since it implements PureComponent).
@@ -30,10 +30,10 @@ const React = require('react');
30
30
 
31
31
  type RequiredProps<ItemT> = {|
32
32
  /**
33
- * For simplicity, data is just a plain array. If you want to use something else, like an
34
- * immutable list, use the underlying `VirtualizedList` directly.
33
+ * An array (or array-like list) of items to render. Other data types can be
34
+ * used by targetting VirtualizedList directly.
35
35
  */
36
- data: ?$ReadOnlyArray<ItemT>,
36
+ data: ?$ArrayLike<ItemT>,
37
37
  |};
38
38
  type OptionalProps<ItemT> = {|
39
39
  /**
@@ -163,6 +163,11 @@ function numColumnsOrDefault(numColumns: ?number) {
163
163
  return numColumns ?? 1;
164
164
  }
165
165
 
166
+ function isArrayLike(data: mixed): boolean {
167
+ // $FlowExpectedError[incompatible-use]
168
+ return typeof Object(data).length === 'number';
169
+ }
170
+
166
171
  type FlatListProps<ItemT> = {|
167
172
  ...RequiredProps<ItemT>,
168
173
  ...OptionalProps<ItemT>,
@@ -497,8 +502,10 @@ class FlatList<ItemT> extends React.PureComponent<Props<ItemT>, void> {
497
502
  );
498
503
  }
499
504
 
500
- // $FlowFixMe[missing-local-annot]
501
- _getItem = (data: Array<ItemT>, index: number) => {
505
+ _getItem = (
506
+ data: $ArrayLike<ItemT>,
507
+ index: number,
508
+ ): ?(ItemT | $ReadOnlyArray<ItemT>) => {
502
509
  const numColumns = numColumnsOrDefault(this.props.numColumns);
503
510
  if (numColumns > 1) {
504
511
  const ret = [];
@@ -515,8 +522,14 @@ class FlatList<ItemT> extends React.PureComponent<Props<ItemT>, void> {
515
522
  }
516
523
  };
517
524
 
518
- _getItemCount = (data: ?Array<ItemT>): number => {
519
- if (Array.isArray(data)) {
525
+ _getItemCount = (data: ?$ArrayLike<ItemT>): number => {
526
+ // Legacy behavior of FlatList was to forward "undefined" length if invalid
527
+ // data like a non-arraylike object is passed. VirtualizedList would then
528
+ // coerce this, and the math would work out to no-op. For compatibility, if
529
+ // invalid data is passed, we tell VirtualizedList there are zero items
530
+ // available to prevent it from trying to read from the invalid data
531
+ // (without propagating invalidly typed data).
532
+ if (data != null && isArrayLike(data)) {
520
533
  const numColumns = numColumnsOrDefault(this.props.numColumns);
521
534
  return numColumns > 1 ? Math.ceil(data.length / numColumns) : data.length;
522
535
  } else {
@@ -860,16 +860,19 @@ export default class VirtualizedList extends StateSafePureComponent<
860
860
  <ListEmptyComponent />
861
861
  )): any);
862
862
  cells.push(
863
- React.cloneElement(element, {
864
- key: '$empty',
865
- onLayout: event => {
866
- this._onLayoutEmpty(event);
867
- if (element.props.onLayout) {
868
- element.props.onLayout(event);
869
- }
870
- },
871
- style: StyleSheet.compose(inversionStyle, element.props.style),
872
- }),
863
+ <VirtualizedListCellContextProvider
864
+ cellKey={this._getCellKey() + '-empty'}
865
+ key="$empty">
866
+ {React.cloneElement(element, {
867
+ onLayout: (event: LayoutEvent) => {
868
+ this._onLayoutEmpty(event);
869
+ if (element.props.onLayout) {
870
+ element.props.onLayout(event);
871
+ }
872
+ },
873
+ style: StyleSheet.compose(inversionStyle, element.props.style),
874
+ })}
875
+ </VirtualizedListCellContextProvider>,
873
876
  );
874
877
  }
875
878
 
@@ -12,10 +12,20 @@
12
12
 
13
13
  const invariant = require('invariant');
14
14
 
15
- function processAspectRatio(aspectRatio: number | string): ?number {
15
+ function processAspectRatio(aspectRatio?: number | string): ?number {
16
16
  if (typeof aspectRatio === 'number') {
17
17
  return aspectRatio;
18
18
  }
19
+ if (typeof aspectRatio !== 'string') {
20
+ if (__DEV__) {
21
+ invariant(
22
+ !aspectRatio,
23
+ 'aspectRatio must either be a number, a ratio string or `auto`. You passed: %s',
24
+ aspectRatio,
25
+ );
26
+ }
27
+ return;
28
+ }
19
29
 
20
30
  const matches = aspectRatio.split('/').map(s => s.trim());
21
31
 
@@ -34,7 +44,7 @@ function processAspectRatio(aspectRatio: number | string): ?number {
34
44
  if (__DEV__) {
35
45
  invariant(
36
46
  !hasNonNumericValues && (matches.length === 1 || matches.length === 2),
37
- 'aspectRatio must either be a number, a ratio or `auto`. You passed: %s',
47
+ 'aspectRatio must either be a number, a ratio string or `auto`. You passed: %s',
38
48
  aspectRatio,
39
49
  );
40
50
  }
@@ -9,7 +9,5 @@
9
9
 
10
10
  import {TurboModule} from './RCTExport';
11
11
 
12
- export const TurboModuleRegistry: {
13
- get<T extends TurboModule>(name: string): T | null;
14
- getEnforcing<T extends TurboModule>(name: string): T;
15
- };
12
+ export function get<T extends TurboModule>(name: string): T | null;
13
+ export function getEnforcing<T extends TurboModule>(name: string): T;
@@ -6,6 +6,7 @@
6
6
  */
7
7
 
8
8
  export {ViewWin32} from './Components/View/ViewWin32';
9
+ export {IViewWin32Props} from './Components/View/ViewPropTypes.win32';
9
10
  export {TextWin32TextStyle, ITextWin32Props } from './Components/Text/TextWin32.Props';
10
11
  export {TextWin32} from './Components/Text/TextWin32';
11
12
  export {IButtonWin32Props, IButtonWin32Style} from './Components/Button/ButtonWin32.Props';
package/overrides.json CHANGED
@@ -7,7 +7,7 @@
7
7
  "**/__snapshots__/**",
8
8
  "src/rntypes/**"
9
9
  ],
10
- "baseVersion": "0.71.0",
10
+ "baseVersion": "0.71.4",
11
11
  "overrides": [
12
12
  {
13
13
  "type": "derived",
@@ -191,7 +191,7 @@
191
191
  "type": "derived",
192
192
  "file": "src/Libraries/Components/View/ViewAccessibility.win32.d.ts",
193
193
  "baseFile": "Libraries/Components/View/ViewAccessibility.d.ts",
194
- "baseHash": "fb6095450277c96f033749633af10b42a184e07c"
194
+ "baseHash": "a9a7bfcff4be91484ad8bb17680c4ec225a28f0e"
195
195
  },
196
196
  {
197
197
  "type": "derived",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@office-iss/react-native-win32",
3
- "version": "0.71.2",
3
+ "version": "0.71.3",
4
4
  "description": "Implementation of react native on top of Office's Win32 platform.",
5
5
  "license": "MIT",
6
6
  "main": "./index.win32.js",
@@ -22,9 +22,9 @@
22
22
  "dependencies": {
23
23
  "@babel/runtime": "^7.0.0",
24
24
  "@jest/create-cache-key-function": "^29.2.1",
25
- "@react-native-community/cli": "10.0.0",
26
- "@react-native-community/cli-platform-android": "10.0.0",
27
- "@react-native-community/cli-platform-ios": "10.0.0",
25
+ "@react-native-community/cli": "10.2.0",
26
+ "@react-native-community/cli-platform-android": "10.2.0",
27
+ "@react-native-community/cli-platform-ios": "10.2.0",
28
28
  "@react-native/assets": "1.0.0",
29
29
  "@react-native/normalize-color": "2.1.0",
30
30
  "@react-native/polyfills": "2.0.0",
@@ -36,19 +36,17 @@
36
36
  "event-target-shim": "^5.0.1",
37
37
  "invariant": "^2.2.4",
38
38
  "jest-environment-node": "^29.2.1",
39
- "jsc-android": "^250230.2.1",
40
39
  "memoize-one": "^5.0.0",
41
- "metro-react-native-babel-transformer": "0.73.5",
42
- "metro-runtime": "0.73.5",
43
- "metro-source-map": "0.73.5",
40
+ "metro-react-native-babel-transformer": "0.73.8",
41
+ "metro-runtime": "0.73.8",
42
+ "metro-source-map": "0.73.8",
44
43
  "mkdirp": "^0.5.1",
45
44
  "nullthrows": "^1.1.1",
46
45
  "pretty-format": "^26.5.2",
47
46
  "promise": "^8.3.0",
48
47
  "react-clone-referenced-element": "^1.0.1",
49
48
  "react-devtools-core": "^4.26.1",
50
- "react-native-codegen": "^0.71.3",
51
- "react-native-gradle-plugin": "^0.71.12",
49
+ "react-native-codegen": "^0.71.5",
52
50
  "react-refresh": "^0.4.0",
53
51
  "react-shallow-renderer": "^16.15.0",
54
52
  "regenerator-runtime": "^0.13.2",
@@ -59,7 +57,7 @@
59
57
  "ws": "^6.2.2"
60
58
  },
61
59
  "devDependencies": {
62
- "@babel/core": "^7.14.0",
60
+ "@babel/core": "^7.20.0",
63
61
  "@babel/eslint-parser": "^7.18.2",
64
62
  "@rnw-scripts/babel-react-native-config": "0.0.0",
65
63
  "@rnw-scripts/eslint-config": "1.1.14",
@@ -76,13 +74,13 @@
76
74
  "just-scripts": "^1.3.3",
77
75
  "prettier": "^2.4.1",
78
76
  "react": "18.2.0",
79
- "react-native": "0.71.0",
77
+ "react-native": "0.71.4",
80
78
  "react-native-platform-override": "^1.8.3",
81
79
  "typescript": "^4.9.5"
82
80
  },
83
81
  "peerDependencies": {
84
82
  "react": "18.2.0",
85
- "react-native": "0.71.0"
83
+ "react-native": "^0.71.0"
86
84
  },
87
85
  "beachball": {
88
86
  "defaultNpmTag": "latest",
@@ -9,7 +9,7 @@
9
9
 
10
10
  import type * as React from 'react';
11
11
  import {Constructor} from 'react-native/types/private/Utilities';
12
- import {ViewProps} from './ViewPropTypes';
12
+ import {ViewProps} from './ViewPropTypes.win32';
13
13
  import {NativeMethods} from 'react-native/types/public/ReactNativeTypes';
14
14
 
15
15
  /**
@@ -6,6 +6,7 @@
6
6
  */
7
7
 
8
8
  export {ViewWin32} from './Components/View/ViewWin32';
9
+ export {IViewWin32Props} from './Components/View/ViewPropTypes.win32';
9
10
  export {TextWin32TextStyle, ITextWin32Props } from './Components/Text/TextWin32.Props';
10
11
  export {TextWin32} from './Components/Text/TextWin32';
11
12
  export {IButtonWin32Props, IButtonWin32Style} from './Components/Button/ButtonWin32.Props';
package/types/index.d.ts CHANGED
@@ -139,7 +139,7 @@ export * from '../Libraries/StyleSheet/StyleSheetTypes';
139
139
  export * from '../Libraries/StyleSheet/processColor';
140
140
  export * from '../Libraries/Text/Text';
141
141
  export * from '../Libraries/TurboModule/RCTExport';
142
- export * from '../Libraries/TurboModule/TurboModuleRegistry';
142
+ export * as TurboModuleRegistry from '../Libraries/TurboModule/TurboModuleRegistry';
143
143
  export * from '../Libraries/Types/CoreEventTypes';
144
144
  export * from '../Libraries/Utilities/Appearance';
145
145
  export * from '../Libraries/Utilities/BackHandler';