react-native-windows 0.72.0-preview.1 → 0.72.0-preview.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.
Files changed (28) hide show
  1. package/Directory.Build.props +2 -2
  2. package/Folly/cgmanifest.json +1 -1
  3. package/Libraries/Components/TraceUpdateOverlay/TraceUpdateOverlay.js +6 -16
  4. package/Libraries/Components/View/View.js +29 -36
  5. package/Libraries/Core/ReactNativeVersion.js +2 -2
  6. package/Libraries/Core/ReactNativeVersionCheck.js +5 -1
  7. package/Libraries/Inspector/DevtoolsOverlay.js +3 -6
  8. package/Libraries/Pressability/Pressability.js +1 -1
  9. package/Libraries/ReactNative/UIManager.js +27 -1
  10. package/Libraries/Renderer/shims/ReactNativeTypes.js +15 -33
  11. package/Libraries/Utilities/NativeDevSplitBundleLoader.js +19 -0
  12. package/Libraries/Utilities/useColorScheme.js +1 -1
  13. package/Libraries/Utilities/useColorScheme.windows.js +26 -0
  14. package/Microsoft.ReactNative/Microsoft.ReactNative.vcxproj +1 -1
  15. package/Microsoft.ReactNative.Managed/Microsoft.ReactNative.Managed.csproj +1 -1
  16. package/Microsoft.ReactNative.Managed/packages.lock.json +54 -11
  17. package/PropertySheets/External/Microsoft.ReactNative.WindowsSdk.Default.props +2 -2
  18. package/PropertySheets/Generated/PackageVersion.g.props +2 -2
  19. package/PropertySheets/NuGet.Cpp.props +1 -1
  20. package/PropertySheets/WinUI.props +1 -1
  21. package/Scripts/Microsoft.ReactNative.Managed.nuspec +1 -1
  22. package/Scripts/rnw-dependencies.ps1 +4 -4
  23. package/codegen/NativeDevSplitBundleLoaderSpec.g.h +33 -0
  24. package/codegen/rnwcoreJSI-generated.cpp +8 -0
  25. package/codegen/rnwcoreJSI.h +44 -0
  26. package/package.json +12 -12
  27. package/template/cpp-lib/proj/MyLib.vcxproj +1 -1
  28. package/template/cs-lib/proj/MyLib.csproj +1 -1
@@ -16,8 +16,8 @@
16
16
  -->
17
17
  <EnableSourceLink Condition="'$(EnableSourceLink)' == ''">false</EnableSourceLink>
18
18
  <!-- When bumping the Folly version, be sure to bump the git hash of that version's commit and build Folly.vcxproj (to update its cgmanifest.json) too. -->
19
- <FollyVersion>2022.11.07.00</FollyVersion>
20
- <FollyCommitHash>2aa28128d1f7a04b41521367f0b615f782814089</FollyCommitHash>
19
+ <FollyVersion>2022.11.28.00</FollyVersion>
20
+ <FollyCommitHash>6ed36117cdc4831f3a3951e013ae76b405e88e15</FollyCommitHash>
21
21
  <!-- When bumping the fmt version, be sure to bump the git hash of that version's commit and build fmt.vcxproj (to update its cgmanifest.json) too. -->
22
22
  <FmtVersion>8.0.0</FmtVersion>
23
23
  <FmtCommitHash>9e8b86fd2d9806672cc73133d21780dd182bfd24</FmtCommitHash>
@@ -6,7 +6,7 @@
6
6
  "Type": "git",
7
7
  "Git": {
8
8
  "RepositoryUrl": "https://github.com/facebook/folly",
9
- "CommitHash": "2aa28128d1f7a04b41521367f0b615f782814089"
9
+ "CommitHash": "6ed36117cdc4831f3a3951e013ae76b405e88e15"
10
10
  }
11
11
  },
12
12
  "DevelopmentDependency": false
@@ -33,7 +33,10 @@ interface Agent {
33
33
  removeListener(event: $Keys<AgentEvents>, listener: () => void): void;
34
34
  }
35
35
 
36
- type PublicInstance = {
36
+ type TraceNode = {
37
+ publicInstance?: TraceNode,
38
+ // TODO: remove this field when syncing the new version of the renderer from React to React Native.
39
+ canonical?: TraceNode,
37
40
  measure?: (
38
41
  (
39
42
  x: number,
@@ -46,16 +49,6 @@ type PublicInstance = {
46
49
  ) => void,
47
50
  };
48
51
 
49
- type TraceNode =
50
- | PublicInstance
51
- | {
52
- canonical?:
53
- | PublicInstance // TODO: remove this variant when syncing the new version of the renderer from React to React Native.
54
- | {
55
- publicInstance?: PublicInstance,
56
- },
57
- };
58
-
59
52
  type ReactDevToolsGlobalHook = {
60
53
  on: (eventName: string, (agent: Agent) => void) => void,
61
54
  off: (eventName: string, (agent: Agent) => void) => void,
@@ -109,14 +102,11 @@ export default function TraceUpdateOverlay(): React.Node {
109
102
 
110
103
  const newFramesToDraw: Array<Promise<Overlay>> = [];
111
104
  nodesToDraw.forEach(({node, color}) => {
112
- // `canonical.publicInstance` => Fabric
105
+ // `publicInstance` => Fabric
113
106
  // TODO: remove this check when syncing the new version of the renderer from React to React Native.
114
107
  // `canonical` => Legacy Fabric
115
108
  // `node` => Legacy renderer
116
- const component =
117
- (node.canonical && node.canonical.publicInstance) ??
118
- node.canonical ??
119
- node;
109
+ const component = node.publicInstance ?? node.canonical ?? node;
120
110
  if (!component || !component.measure) {
121
111
  return;
122
112
  }
@@ -62,7 +62,6 @@ const View: React.AbstractComponent<
62
62
  }: ViewProps,
63
63
  forwardedRef,
64
64
  ) => {
65
- const hasTextAncestor = React.useContext(TextAncestor);
66
65
  const _accessibilityLabelledBy =
67
66
  ariaLabelledBy?.split(/\s*,\s*/g) ?? accessibilityLabelledBy;
68
67
 
@@ -104,42 +103,36 @@ const View: React.AbstractComponent<
104
103
 
105
104
  const newPointerEvents = style?.pointerEvents || pointerEvents;
106
105
 
107
- const actualView = (
108
- <ViewNativeComponent
109
- {...otherProps}
110
- accessibilityLiveRegion={
111
- ariaLive === 'off' ? 'none' : ariaLive ?? accessibilityLiveRegion
112
- }
113
- accessibilityLabel={ariaLabel ?? accessibilityLabel}
114
- focusable={tabIndex !== undefined ? !tabIndex : focusable}
115
- accessibilityState={_accessibilityState}
116
- accessibilityRole={
117
- role ? getAccessibilityRoleFromRole(role) : accessibilityRole
118
- }
119
- accessibilityElementsHidden={ariaHidden ?? accessibilityElementsHidden}
120
- accessibilityLabelledBy={_accessibilityLabelledBy}
121
- accessibilityValue={_accessibilityValue}
122
- importantForAccessibility={
123
- ariaHidden === true
124
- ? 'no-hide-descendants'
125
- : importantForAccessibility
126
- }
127
- nativeID={id ?? nativeID}
128
- style={style}
129
- pointerEvents={newPointerEvents}
130
- ref={forwardedRef}
131
- />
106
+ return (
107
+ <TextAncestor.Provider value={false}>
108
+ <ViewNativeComponent
109
+ {...otherProps}
110
+ accessibilityLiveRegion={
111
+ ariaLive === 'off' ? 'none' : ariaLive ?? accessibilityLiveRegion
112
+ }
113
+ accessibilityLabel={ariaLabel ?? accessibilityLabel}
114
+ focusable={tabIndex !== undefined ? !tabIndex : focusable}
115
+ accessibilityState={_accessibilityState}
116
+ accessibilityRole={
117
+ role ? getAccessibilityRoleFromRole(role) : accessibilityRole
118
+ }
119
+ accessibilityElementsHidden={
120
+ ariaHidden ?? accessibilityElementsHidden
121
+ }
122
+ accessibilityLabelledBy={_accessibilityLabelledBy}
123
+ accessibilityValue={_accessibilityValue}
124
+ importantForAccessibility={
125
+ ariaHidden === true
126
+ ? 'no-hide-descendants'
127
+ : importantForAccessibility
128
+ }
129
+ nativeID={id ?? nativeID}
130
+ style={style}
131
+ pointerEvents={newPointerEvents}
132
+ ref={forwardedRef}
133
+ />
134
+ </TextAncestor.Provider>
132
135
  );
133
-
134
- if (hasTextAncestor) {
135
- return (
136
- <TextAncestor.Provider value={false}>
137
- {actualView}
138
- </TextAncestor.Provider>
139
- );
140
- }
141
-
142
- return actualView;
143
136
  },
144
137
  );
145
138
 
@@ -11,7 +11,7 @@
11
11
 
12
12
  exports.version = {
13
13
  major: 0,
14
- minor: 0,
14
+ minor: 72,
15
15
  patch: 0,
16
- prerelease: '20230321-2153-7b86e3aae',
16
+ prerelease: 'rc.1',
17
17
  };
@@ -39,8 +39,12 @@ exports.checkVersions = function checkVersions(): void {
39
39
  }
40
40
  };
41
41
 
42
+ // Note: in OSS, the prerelease version is usually 0.Y.0-rc.W, so it is a string and not a number
43
+ // Then we need to keep supporting that object shape.
42
44
  function _formatVersion(
43
- version: (typeof Platform)['constants']['reactNativeVersion'],
45
+ version:
46
+ | (typeof Platform)['constants']['reactNativeVersion']
47
+ | {major: number, minor: number, patch: number, prerelease: ?string},
44
48
  ): string {
45
49
  return (
46
50
  `${version.major}.${version.minor}.${version.patch}` +
@@ -52,14 +52,11 @@ export default function DevtoolsOverlay({
52
52
  function onAgentShowNativeHighlight(node: any) {
53
53
  clearTimeout(hideTimeoutId);
54
54
 
55
- // `canonical.publicInstance` => Fabric
55
+ // `publicInstance` => Fabric
56
+ // TODO: remove this check when syncing the new version of the renderer from React to React Native.
56
57
  // `canonical` => Legacy Fabric
57
58
  // `node` => Legacy renderer
58
- const component =
59
- (node.canonical && node.canonical.publicInstance) ??
60
- // TODO: remove this check when syncing the new version of the renderer from React to React Native.
61
- node.canonical ??
62
- node;
59
+ const component = node.publicInstance ?? node.canonical ?? node;
63
60
  if (!component || !component.measure) {
64
61
  return;
65
62
  }
@@ -295,7 +295,7 @@ let longPressDeactivationDistance = DEFAULT_LONG_PRESS_DEACTIVATION_DISTANCE;
295
295
  *
296
296
  * - When a press has activated (e.g. highlight an element)
297
297
  * - When a press has deactivated (e.g. un-highlight an element)
298
- * - When a press should trigger an action, meaning it activated and deactivated
298
+ * - When a press sould trigger an action, meaning it activated and deactivated
299
299
  * while within the geometry of the element without the lock being stolen.
300
300
  *
301
301
  * A high quality interaction isn't as simple as you might think. There should
@@ -9,7 +9,6 @@
9
9
  */
10
10
 
11
11
  import type {RootTag} from '../Types/RootTagTypes';
12
- import type {Spec as FabricUIManagerSpec} from './FabricUIManager';
13
12
  import type {Spec} from './NativeUIManager';
14
13
 
15
14
  import {getFabricUIManager} from './FabricUIManager';
@@ -175,6 +174,33 @@ const UIManager = {
175
174
  );
176
175
  }
177
176
  },
177
+
178
+ dispatchViewManagerCommand(
179
+ reactTag: number,
180
+ commandName: number | string,
181
+ commandArgs: any[],
182
+ ) {
183
+ if (isFabricReactTag(reactTag)) {
184
+ const FabricUIManager = nullthrows(getFabricUIManager());
185
+ const shadowNode =
186
+ FabricUIManager.findShadowNodeByTag_DEPRECATED(reactTag);
187
+ if (shadowNode) {
188
+ // Transform the accidental CommandID into a CommandName which is the stringified number.
189
+ // The interop layer knows how to convert this number into the right method name.
190
+ // Stringify a string is a no-op, so it's safe.
191
+ commandName = `${commandName}`;
192
+ FabricUIManager.dispatchCommand(shadowNode, commandName, commandArgs);
193
+ }
194
+ } else {
195
+ UIManagerImpl.dispatchViewManagerCommand(
196
+ reactTag,
197
+ // We have some legacy components that are actually already using strings. ¯\_(ツ)_/¯
198
+ // $FlowFixMe[incompatible-call]
199
+ commandName,
200
+ commandArgs,
201
+ );
202
+ }
203
+ },
178
204
  };
179
205
 
180
206
  module.exports = UIManager;
@@ -6,7 +6,7 @@
6
6
  *
7
7
  * @noformat
8
8
  * @flow strict
9
- * @generated SignedSource<<7dc3ed81183377055bac08760fcd775b>>
9
+ * @generated SignedSource<<265b342f0d29323bebb711ba0bc882ec>>
10
10
  *
11
11
  * This file was sync'd from the facebook/react repository.
12
12
  */
@@ -98,23 +98,7 @@ export type PartialViewConfig = $ReadOnly<{
98
98
  validAttributes?: PartialAttributeConfiguration,
99
99
  }>;
100
100
 
101
- /**
102
- * Current usages should migrate to this definition
103
- */
104
- export interface INativeMethods {
105
- blur(): void;
106
- focus(): void;
107
- measure(callback: MeasureOnSuccessCallback): void;
108
- measureInWindow(callback: MeasureInWindowOnSuccessCallback): void;
109
- measureLayout(
110
- relativeToNativeNode: number | ElementRef<HostComponent<mixed>>,
111
- onSuccess: MeasureLayoutOnSuccessCallback,
112
- onFail?: () => void,
113
- ): void;
114
- setNativeProps(nativeProps: {...}): void;
115
- }
116
-
117
- export type NativeMethods = $ReadOnly<{|
101
+ export type NativeMethods = $ReadOnly<{
118
102
  blur(): void,
119
103
  focus(): void,
120
104
  measure(callback: MeasureOnSuccessCallback): void,
@@ -125,11 +109,7 @@ export type NativeMethods = $ReadOnly<{|
125
109
  onFail?: () => void,
126
110
  ): void,
127
111
  setNativeProps(nativeProps: {...}): void,
128
- |}>;
129
-
130
- // This validates that INativeMethods and NativeMethods stay in sync using Flow!
131
- declare var ensureNativeMethodsAreSynced: NativeMethods;
132
- (ensureNativeMethodsAreSynced: INativeMethods);
112
+ }>;
133
113
 
134
114
  export type HostComponent<T> = AbstractComponent<T, $ReadOnly<NativeMethods>>;
135
115
 
@@ -215,10 +195,6 @@ export type ReactNativeType = {
215
195
  ...
216
196
  };
217
197
 
218
- export opaque type Node = mixed;
219
- type InternalInstanceHandle = mixed;
220
- type PublicInstance = mixed;
221
-
222
198
  export type ReactFabricType = {
223
199
  findHostInstance_DEPRECATED<TElementType: ElementType>(
224
200
  componentOrHandle: ?(ElementRef<TElementType> | number),
@@ -242,12 +218,18 @@ export type ReactFabricType = {
242
218
  concurrentRoot: ?boolean,
243
219
  ): ?ElementRef<ElementType>,
244
220
  unmountComponentAtNode(containerTag: number): void,
245
- getNodeFromInternalInstanceHandle(
246
- internalInstanceHandle: InternalInstanceHandle,
247
- ): ?Node,
248
- getPublicInstanceFromInternalInstanceHandle(
249
- internalInstanceHandle: InternalInstanceHandle,
250
- ): PublicInstance,
221
+ ...
222
+ };
223
+
224
+ export type ReactNativeEventTarget = {
225
+ node: {...},
226
+ canonical: {
227
+ _nativeTag: number,
228
+ viewConfig: ViewConfig,
229
+ currentProps: {...},
230
+ _internalInstanceHandle: {...},
231
+ ...
232
+ },
251
233
  ...
252
234
  };
253
235
 
@@ -0,0 +1,19 @@
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 type {TurboModule} from '../TurboModule/RCTExport';
12
+
13
+ import * as TurboModuleRegistry from '../TurboModule/TurboModuleRegistry';
14
+
15
+ export interface Spec extends TurboModule {
16
+ +loadBundle: (bundlePath: string) => Promise<void>;
17
+ }
18
+
19
+ export default (TurboModuleRegistry.get<Spec>('DevSplitBundleLoader'): ?Spec);
@@ -13,7 +13,7 @@
13
13
  import type {ColorSchemeName} from './NativeAppearance';
14
14
 
15
15
  import Appearance from './Appearance';
16
- import {useSyncExternalStore} from 'react';
16
+ import {useSyncExternalStore} from 'use-sync-external-store/shim';
17
17
 
18
18
  export default function useColorScheme(): ?ColorSchemeName {
19
19
  return useSyncExternalStore(
@@ -0,0 +1,26 @@
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
+ * @format
8
+ * @flow strict-local
9
+ */
10
+
11
+ 'use strict';
12
+
13
+ import type {ColorSchemeName} from './NativeAppearance';
14
+
15
+ import Appearance from './Appearance';
16
+ import {useSyncExternalStore} from 'react';
17
+
18
+ export default function useColorScheme(): ?ColorSchemeName {
19
+ return useSyncExternalStore(
20
+ callback => {
21
+ const appearanceSubscription = Appearance.addChangeListener(callback);
22
+ return () => appearanceSubscription.remove();
23
+ },
24
+ () => Appearance.getColorScheme(),
25
+ );
26
+ }
@@ -14,7 +14,7 @@
14
14
  <ApplicationType>Windows Store</ApplicationType>
15
15
  <ApplicationTypeRevision>10.0</ApplicationTypeRevision>
16
16
  <!-- Overriding for WinUI3 compatibility. See property UseWinUI3. -->
17
- <WindowsTargetPlatformMinVersion>10.0.17134.0</WindowsTargetPlatformMinVersion>
17
+ <WindowsTargetPlatformMinVersion>10.0.17763.0</WindowsTargetPlatformMinVersion>
18
18
  <CppWinRTNamespaceMergeDepth>
19
19
  </CppWinRTNamespaceMergeDepth>
20
20
  <CppWinRTLibs>true</CppWinRTLibs>
@@ -14,7 +14,7 @@
14
14
  <GenerateProjectSpecificOutputFolder>false</GenerateProjectSpecificOutputFolder>
15
15
  <TargetPlatformIdentifier>UAP</TargetPlatformIdentifier>
16
16
  <TargetPlatformVersion Condition=" '$(TargetPlatformVersion)' == '' ">10.0.19041.0</TargetPlatformVersion>
17
- <TargetPlatformMinVersion>10.0.16299.0</TargetPlatformMinVersion>
17
+ <TargetPlatformMinVersion>10.0.17763.0</TargetPlatformMinVersion>
18
18
  <MinimumVisualStudioVersion>17.0</MinimumVisualStudioVersion>
19
19
  <FileAlignment>512</FileAlignment>
20
20
  <ProjectTypeGuids>{A5A43C5B-DE2A-4C0C-9213-0A381AF9435A};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 1,
3
3
  "dependencies": {
4
- "UAP,Version=v10.0.16299": {
4
+ "UAP,Version=v10.0.17763": {
5
5
  "Microsoft.NETCore.UniversalWindowsPlatform": {
6
6
  "type": "Direct",
7
7
  "requested": "[6.2.9, )",
@@ -67,8 +67,16 @@
67
67
  },
68
68
  "Microsoft.UI.Xaml": {
69
69
  "type": "Transitive",
70
- "resolved": "2.7.0",
71
- "contentHash": "dB4im13tfmMgL/V3Ei+3kD2rUF+/lTxAmR4gjJ45l577eljHfdo/KUrxpq/3I1Vp6e5GCDG1evDaEGuDxypLMg=="
70
+ "resolved": "2.8.0",
71
+ "contentHash": "vxdHxTr63s5KVtNddMFpgvjBjUH50z7seq/5jLWmmSuf8poxg+sXrywkofUdE8ZstbpO9y3FL/IXXUcPYbeesA==",
72
+ "dependencies": {
73
+ "Microsoft.Web.WebView2": "1.0.1264.42"
74
+ }
75
+ },
76
+ "Microsoft.Web.WebView2": {
77
+ "type": "Transitive",
78
+ "resolved": "1.0.1264.42",
79
+ "contentHash": "7OBUTkzQ5VI/3gb0ufi5U4zjuCowAJwQg2li0zXXzqkM+S1kmOlivTy1R4jAW+gY5Vyg510M+qMAESCQUjrfgA=="
72
80
  },
73
81
  "Microsoft.Windows.SDK.BuildTools": {
74
82
  "type": "Transitive",
@@ -173,7 +181,7 @@
173
181
  "dependencies": {
174
182
  "Common": "[1.0.0, )",
175
183
  "Folly": "[1.0.0, )",
176
- "Microsoft.UI.Xaml": "[2.7.0, )",
184
+ "Microsoft.UI.Xaml": "[2.8.0, )",
177
185
  "Microsoft.Windows.SDK.BuildTools": "[10.0.22000.194, )",
178
186
  "ReactCommon": "[1.0.0, )",
179
187
  "ReactNative.Hermes.Windows": "[0.0.0-2302.1001-19052299, )",
@@ -188,7 +196,7 @@
188
196
  }
189
197
  }
190
198
  },
191
- "UAP,Version=v10.0.16299/win10-arm": {
199
+ "UAP,Version=v10.0.17763/win10-arm": {
192
200
  "Microsoft.NETCore.UniversalWindowsPlatform": {
193
201
  "type": "Direct",
194
202
  "requested": "[6.2.9, )",
@@ -202,13 +210,18 @@
202
210
  "runtime.win10-arm.Microsoft.NETCore.UniversalWindowsPlatform": "6.2.9"
203
211
  }
204
212
  },
213
+ "Microsoft.Web.WebView2": {
214
+ "type": "Transitive",
215
+ "resolved": "1.0.1264.42",
216
+ "contentHash": "7OBUTkzQ5VI/3gb0ufi5U4zjuCowAJwQg2li0zXXzqkM+S1kmOlivTy1R4jAW+gY5Vyg510M+qMAESCQUjrfgA=="
217
+ },
205
218
  "runtime.win10-arm.Microsoft.NETCore.UniversalWindowsPlatform": {
206
219
  "type": "Transitive",
207
220
  "resolved": "6.2.9",
208
221
  "contentHash": "/q9U+SqJTVrocU7CHFd1D4ac2jqPc4U8kPy8F147Li3XGf0Ce9v6UKJqf7nskR+XgVi3IVfUJUcjWLVskG5ZKw=="
209
222
  }
210
223
  },
211
- "UAP,Version=v10.0.16299/win10-arm-aot": {
224
+ "UAP,Version=v10.0.17763/win10-arm-aot": {
212
225
  "Microsoft.NETCore.UniversalWindowsPlatform": {
213
226
  "type": "Direct",
214
227
  "requested": "[6.2.9, )",
@@ -222,13 +235,18 @@
222
235
  "runtime.win10-arm-aot.Microsoft.NETCore.UniversalWindowsPlatform": "6.2.9"
223
236
  }
224
237
  },
238
+ "Microsoft.Web.WebView2": {
239
+ "type": "Transitive",
240
+ "resolved": "1.0.1264.42",
241
+ "contentHash": "7OBUTkzQ5VI/3gb0ufi5U4zjuCowAJwQg2li0zXXzqkM+S1kmOlivTy1R4jAW+gY5Vyg510M+qMAESCQUjrfgA=="
242
+ },
225
243
  "runtime.win10-arm-aot.Microsoft.NETCore.UniversalWindowsPlatform": {
226
244
  "type": "Transitive",
227
245
  "resolved": "6.2.9",
228
246
  "contentHash": "tN7AmnRPUuu29nh9ulL/UGMdzayAe/AQNhM7+fQNKuT4jUlxc61Ilf2djKNJ5MvK8wY69KH0Iz9Yy5+95rB+DQ=="
229
247
  }
230
248
  },
231
- "UAP,Version=v10.0.16299/win10-arm64-aot": {
249
+ "UAP,Version=v10.0.17763/win10-arm64-aot": {
232
250
  "Microsoft.NETCore.UniversalWindowsPlatform": {
233
251
  "type": "Direct",
234
252
  "requested": "[6.2.9, )",
@@ -242,13 +260,18 @@
242
260
  "runtime.win10-arm64-aot.Microsoft.NETCore.UniversalWindowsPlatform": "6.2.9"
243
261
  }
244
262
  },
263
+ "Microsoft.Web.WebView2": {
264
+ "type": "Transitive",
265
+ "resolved": "1.0.1264.42",
266
+ "contentHash": "7OBUTkzQ5VI/3gb0ufi5U4zjuCowAJwQg2li0zXXzqkM+S1kmOlivTy1R4jAW+gY5Vyg510M+qMAESCQUjrfgA=="
267
+ },
245
268
  "runtime.win10-arm64-aot.Microsoft.NETCore.UniversalWindowsPlatform": {
246
269
  "type": "Transitive",
247
270
  "resolved": "6.2.9",
248
271
  "contentHash": "gupfeyxXmaOyqLps1gGLh4Lzh5Wee6iuKpgZ70l2nmoHtzqCdk9aK4i+03259M6X2r7BXoIjJJml0paXBQY1kw=="
249
272
  }
250
273
  },
251
- "UAP,Version=v10.0.16299/win10-x64": {
274
+ "UAP,Version=v10.0.17763/win10-x64": {
252
275
  "Microsoft.NETCore.UniversalWindowsPlatform": {
253
276
  "type": "Direct",
254
277
  "requested": "[6.2.9, )",
@@ -262,13 +285,18 @@
262
285
  "runtime.win10-x64.Microsoft.NETCore.UniversalWindowsPlatform": "6.2.9"
263
286
  }
264
287
  },
288
+ "Microsoft.Web.WebView2": {
289
+ "type": "Transitive",
290
+ "resolved": "1.0.1264.42",
291
+ "contentHash": "7OBUTkzQ5VI/3gb0ufi5U4zjuCowAJwQg2li0zXXzqkM+S1kmOlivTy1R4jAW+gY5Vyg510M+qMAESCQUjrfgA=="
292
+ },
265
293
  "runtime.win10-x64.Microsoft.NETCore.UniversalWindowsPlatform": {
266
294
  "type": "Transitive",
267
295
  "resolved": "6.2.9",
268
296
  "contentHash": "JjnUToWq2LQfNKtiqld4YYkgUcC3tCQ0RvRKiut0B7AgS+Eo/HnI/viFiH4FoNG7pFvcWoKimLctj06IgJoiyA=="
269
297
  }
270
298
  },
271
- "UAP,Version=v10.0.16299/win10-x64-aot": {
299
+ "UAP,Version=v10.0.17763/win10-x64-aot": {
272
300
  "Microsoft.NETCore.UniversalWindowsPlatform": {
273
301
  "type": "Direct",
274
302
  "requested": "[6.2.9, )",
@@ -282,13 +310,18 @@
282
310
  "runtime.win10-x64-aot.Microsoft.NETCore.UniversalWindowsPlatform": "6.2.9"
283
311
  }
284
312
  },
313
+ "Microsoft.Web.WebView2": {
314
+ "type": "Transitive",
315
+ "resolved": "1.0.1264.42",
316
+ "contentHash": "7OBUTkzQ5VI/3gb0ufi5U4zjuCowAJwQg2li0zXXzqkM+S1kmOlivTy1R4jAW+gY5Vyg510M+qMAESCQUjrfgA=="
317
+ },
285
318
  "runtime.win10-x64-aot.Microsoft.NETCore.UniversalWindowsPlatform": {
286
319
  "type": "Transitive",
287
320
  "resolved": "6.2.9",
288
321
  "contentHash": "XTmgQZIB3JbzwVE0h+GN//VniFM4MmSWjxjtK7g5zypTwtpuj68oulxWqN5R3F19GaUzT+EFdfKXKEWI73/qwQ=="
289
322
  }
290
323
  },
291
- "UAP,Version=v10.0.16299/win10-x86": {
324
+ "UAP,Version=v10.0.17763/win10-x86": {
292
325
  "Microsoft.NETCore.UniversalWindowsPlatform": {
293
326
  "type": "Direct",
294
327
  "requested": "[6.2.9, )",
@@ -302,13 +335,18 @@
302
335
  "runtime.win10-x86.Microsoft.NETCore.UniversalWindowsPlatform": "6.2.9"
303
336
  }
304
337
  },
338
+ "Microsoft.Web.WebView2": {
339
+ "type": "Transitive",
340
+ "resolved": "1.0.1264.42",
341
+ "contentHash": "7OBUTkzQ5VI/3gb0ufi5U4zjuCowAJwQg2li0zXXzqkM+S1kmOlivTy1R4jAW+gY5Vyg510M+qMAESCQUjrfgA=="
342
+ },
305
343
  "runtime.win10-x86.Microsoft.NETCore.UniversalWindowsPlatform": {
306
344
  "type": "Transitive",
307
345
  "resolved": "6.2.9",
308
346
  "contentHash": "BckZHjaqBTSEtvzj0aliq3DQvLOT7C4ei4L8pCgcD3k/MZpECBg8kUsixDanwYtRot+jNXxc6LF5J87cyigGfA=="
309
347
  }
310
348
  },
311
- "UAP,Version=v10.0.16299/win10-x86-aot": {
349
+ "UAP,Version=v10.0.17763/win10-x86-aot": {
312
350
  "Microsoft.NETCore.UniversalWindowsPlatform": {
313
351
  "type": "Direct",
314
352
  "requested": "[6.2.9, )",
@@ -322,6 +360,11 @@
322
360
  "runtime.win10-x86-aot.Microsoft.NETCore.UniversalWindowsPlatform": "6.2.9"
323
361
  }
324
362
  },
363
+ "Microsoft.Web.WebView2": {
364
+ "type": "Transitive",
365
+ "resolved": "1.0.1264.42",
366
+ "contentHash": "7OBUTkzQ5VI/3gb0ufi5U4zjuCowAJwQg2li0zXXzqkM+S1kmOlivTy1R4jAW+gY5Vyg510M+qMAESCQUjrfgA=="
367
+ },
325
368
  "runtime.win10-x86-aot.Microsoft.NETCore.UniversalWindowsPlatform": {
326
369
  "type": "Transitive",
327
370
  "resolved": "6.2.9",
@@ -13,14 +13,14 @@
13
13
  -->
14
14
  <PropertyGroup Label="Globals" Condition="'$(MSBuildProjectExtension)' == '.vcxproj'">
15
15
  <WindowsTargetPlatformVersion Condition="'$(WindowsTargetPlatformVersion)'=='' Or '$(WindowsTargetPlatformVersion)'=='10.0.0.0'">10.0.19041.0</WindowsTargetPlatformVersion>
16
- <WindowsTargetPlatformMinVersion Condition="'$(WindowsTargetPlatformMinVersion)'=='' Or '$(WindowsTargetPlatformMinVersion)'=='10.0.0.0'">10.0.16299.0</WindowsTargetPlatformMinVersion>
16
+ <WindowsTargetPlatformMinVersion Condition="'$(WindowsTargetPlatformMinVersion)'=='' Or '$(WindowsTargetPlatformMinVersion)'=='10.0.0.0'">10.0.17763.0</WindowsTargetPlatformMinVersion>
17
17
 
18
18
  <WindowsTargetPlatformMinVersion Condition="'$(UseWinUI3)'=='true' And $([MSBuild]::VersionLessThan('$(WindowsTargetPlatformMinVersion)', '10.0.17763.0'))">10.0.17763.0</WindowsTargetPlatformMinVersion>
19
19
  </PropertyGroup>
20
20
 
21
21
  <PropertyGroup Label="Globals" Condition="'$(MSBuildProjectExtension)' == '.csproj'">
22
22
  <TargetPlatformVersion Condition="'$(TargetPlatformVersion)'==''">10.0.19041.0</TargetPlatformVersion>
23
- <TargetPlatformMinVersion Condition="'$(TargetPlatformMinVersion)'==''">10.0.16299.0</TargetPlatformMinVersion>
23
+ <TargetPlatformMinVersion Condition="'$(TargetPlatformMinVersion)'==''">10.0.17763.0</TargetPlatformMinVersion>
24
24
 
25
25
  <TargetPlatformMinVersion Condition="'$(UseWinUI3)'=='true' And $([MSBuild]::VersionLessThan('$(TargetPlatformMinVersion)', '10.0.17763.0'))">10.0.17763.0</TargetPlatformMinVersion>
26
26
  </PropertyGroup>
@@ -10,11 +10,11 @@
10
10
  -->
11
11
  <Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
12
12
  <PropertyGroup>
13
- <ReactNativeWindowsVersion>0.72.0-preview.1</ReactNativeWindowsVersion>
13
+ <ReactNativeWindowsVersion>0.72.0-preview.3</ReactNativeWindowsVersion>
14
14
  <ReactNativeWindowsMajor>0</ReactNativeWindowsMajor>
15
15
  <ReactNativeWindowsMinor>72</ReactNativeWindowsMinor>
16
16
  <ReactNativeWindowsPatch>0</ReactNativeWindowsPatch>
17
17
  <ReactNativeWindowsCanary>false</ReactNativeWindowsCanary>
18
- <ReactNativeWindowsCommitId>6c01774188f98145e5dd501361321aee9dc0f0ba</ReactNativeWindowsCommitId>
18
+ <ReactNativeWindowsCommitId>0783647397c3eb6c2a594b5805c5523ded61743a</ReactNativeWindowsCommitId>
19
19
  </PropertyGroup>
20
20
  </Project>
@@ -16,7 +16,7 @@
16
16
  <ResolveNuGetPackages>false</ResolveNuGetPackages>
17
17
 
18
18
  <!-- https://github.com/NuGet/Home/issues/10511#issuecomment-778400668 -->
19
- <AssetTargetFallback>$(AssetTargetFallback);uap10.0.16299</AssetTargetFallback>
19
+ <AssetTargetFallback>$(AssetTargetFallback);uap10.0.17763</AssetTargetFallback>
20
20
 
21
21
  <!--
22
22
  Avoid Visual Studio error message:
@@ -7,7 +7,7 @@
7
7
 
8
8
  <PropertyGroup Label="WinUI2x versioning">
9
9
  <!--This value is also used by the CLI, see /packages/@react-native-windows/generate-windows -->
10
- <WinUI2xVersion Condition="'$(WinUI2xVersion)'==''">2.7.0</WinUI2xVersion>
10
+ <WinUI2xVersion Condition="'$(WinUI2xVersion)'==''">2.8.0</WinUI2xVersion>
11
11
  </PropertyGroup>
12
12
 
13
13
  <PropertyGroup Condition="'$(UseWinUI3)'=='true'">
@@ -15,7 +15,7 @@
15
15
  <tags>react react-native react-native-windows native-module microsoft c# csharp</tags>
16
16
  <dependencies>
17
17
  <group targetFramework="UAP10.0">
18
- <dependency id="Microsoft.UI.Xaml" version="2.7.0" />
18
+ <dependency id="Microsoft.UI.Xaml" version="2.8.0" />
19
19
  <dependency id="Microsoft.NETCore.UniversalWindowsPlatform" version="6.2.9" />
20
20
  <dependency id="Microsoft.ReactNative" version="$version$" />
21
21
  <dependency id="Microsoft.ReactNative.Managed.CodeGen" version="$version$" />
@@ -215,7 +215,7 @@ function CheckNode {
215
215
  $nodeVersion = (Get-Command node -ErrorAction Stop).Version;
216
216
  Write-Verbose "Node version found: $nodeVersion";
217
217
  $v = $nodeVersion.Major;
218
- return ($v -ge 14) -and (($v % 2) -eq 0);
218
+ return ($v -ge 16) -and (($v % 2) -eq 0);
219
219
  } catch { Write-Debug $_ }
220
220
 
221
221
  Write-Verbose "Node not found.";
@@ -360,7 +360,7 @@ $requiredFreeSpaceGB = 15;
360
360
  $requirements = @(
361
361
  @{
362
362
  Id=[CheckId]::FreeSpace;
363
- Name = "Free space on $drive`: > $requiredFreeSpaceGB GB";
363
+ Name = "Free space on current drive > $requiredFreeSpaceGB GB";
364
364
  Tags = @('appDev');
365
365
  Valid = { $drive.Free/1GB -gt $requiredFreeSpaceGB; }
366
366
  HasVerboseOutput = $true;
@@ -376,7 +376,7 @@ $requirements = @(
376
376
  },
377
377
  @{
378
378
  Id=[CheckId]::WindowsVersion;
379
- Name = 'Windows version >= 10.0.16299.0';
379
+ Name = 'Windows version >= 10.0.17763.0';
380
380
  Tags = @('appDev');
381
381
  Valid = { ($v.Major -eq 10 -and $v.Minor -eq 0 -and $v.Build -ge 16299); }
382
382
  },
@@ -412,7 +412,7 @@ $requirements = @(
412
412
  },
413
413
  @{
414
414
  Id=[CheckId]::Node;
415
- Name = 'Node.js (LTS, >= 14.0)';
415
+ Name = 'Node.js (LTS, >= 16.0)';
416
416
  Tags = @('appDev');
417
417
  Valid = { CheckNode; }
418
418
  Install = { choco install -y nodejs-lts };
@@ -0,0 +1,33 @@
1
+
2
+ /*
3
+ * This file is auto-generated from a NativeModule spec file in js.
4
+ *
5
+ * This is a C++ Spec class that should be used with MakeTurboModuleProvider to register native modules
6
+ * in a way that also verifies at compile time that the native module matches the interface required
7
+ * by the TurboModule JS spec.
8
+ */
9
+ #pragma once
10
+
11
+ #include "NativeModules.h"
12
+ #include <tuple>
13
+
14
+ namespace Microsoft::ReactNativeSpecs {
15
+
16
+ struct DevSplitBundleLoaderSpec : winrt::Microsoft::ReactNative::TurboModuleSpec {
17
+ static constexpr auto methods = std::tuple{
18
+ Method<void(std::string, Promise<void>) noexcept>{0, L"loadBundle"},
19
+ };
20
+
21
+ template <class TModule>
22
+ static constexpr void ValidateModule() noexcept {
23
+ constexpr auto methodCheckResults = CheckMethods<TModule, DevSplitBundleLoaderSpec>();
24
+
25
+ REACT_SHOW_METHOD_SPEC_ERRORS(
26
+ 0,
27
+ "loadBundle",
28
+ " REACT_METHOD(loadBundle) void loadBundle(std::string bundlePath, ::React::ReactPromise<void> &&result) noexcept { /* implementation */ }\n"
29
+ " REACT_METHOD(loadBundle) static void loadBundle(std::string bundlePath, ::React::ReactPromise<void> &&result) noexcept { /* implementation */ }\n");
30
+ }
31
+ };
32
+
33
+ } // namespace Microsoft::ReactNativeSpecs
@@ -1095,6 +1095,14 @@ NativeDevLoadingViewCxxSpecJSI::NativeDevLoadingViewCxxSpecJSI(std::shared_ptr<C
1095
1095
  methodMap_["showMessage"] = MethodMetadata {3, __hostFunction_NativeDevLoadingViewCxxSpecJSI_showMessage};
1096
1096
  methodMap_["hide"] = MethodMetadata {0, __hostFunction_NativeDevLoadingViewCxxSpecJSI_hide};
1097
1097
  }
1098
+ static jsi::Value __hostFunction_NativeDevSplitBundleLoaderCxxSpecJSI_loadBundle(jsi::Runtime &rt, TurboModule &turboModule, const jsi::Value* args, size_t count) {
1099
+ return static_cast<NativeDevSplitBundleLoaderCxxSpecJSI *>(&turboModule)->loadBundle(rt, args[0].asString(rt));
1100
+ }
1101
+
1102
+ NativeDevSplitBundleLoaderCxxSpecJSI::NativeDevSplitBundleLoaderCxxSpecJSI(std::shared_ptr<CallInvoker> jsInvoker)
1103
+ : TurboModule("DevSplitBundleLoader", jsInvoker) {
1104
+ methodMap_["loadBundle"] = MethodMetadata {1, __hostFunction_NativeDevSplitBundleLoaderCxxSpecJSI_loadBundle};
1105
+ }
1098
1106
  static jsi::Value __hostFunction_NativePlatformConstantsAndroidCxxSpecJSI_getConstants(jsi::Runtime &rt, TurboModule &turboModule, const jsi::Value* args, size_t count) {
1099
1107
  return static_cast<NativePlatformConstantsAndroidCxxSpecJSI *>(&turboModule)->getConstants(rt);
1100
1108
  }
@@ -4076,6 +4076,50 @@ private:
4076
4076
  };
4077
4077
 
4078
4078
 
4079
+ class JSI_EXPORT NativeDevSplitBundleLoaderCxxSpecJSI : public TurboModule {
4080
+ protected:
4081
+ NativeDevSplitBundleLoaderCxxSpecJSI(std::shared_ptr<CallInvoker> jsInvoker);
4082
+
4083
+ public:
4084
+ virtual jsi::Value loadBundle(jsi::Runtime &rt, jsi::String bundlePath) = 0;
4085
+
4086
+ };
4087
+
4088
+ template <typename T>
4089
+ class JSI_EXPORT NativeDevSplitBundleLoaderCxxSpec : public TurboModule {
4090
+ public:
4091
+ jsi::Value get(jsi::Runtime &rt, const jsi::PropNameID &propName) override {
4092
+ return delegate_.get(rt, propName);
4093
+ }
4094
+
4095
+ protected:
4096
+ NativeDevSplitBundleLoaderCxxSpec(std::shared_ptr<CallInvoker> jsInvoker)
4097
+ : TurboModule("DevSplitBundleLoader", jsInvoker),
4098
+ delegate_(static_cast<T*>(this), jsInvoker) {}
4099
+
4100
+ private:
4101
+ class Delegate : public NativeDevSplitBundleLoaderCxxSpecJSI {
4102
+ public:
4103
+ Delegate(T *instance, std::shared_ptr<CallInvoker> jsInvoker) :
4104
+ NativeDevSplitBundleLoaderCxxSpecJSI(std::move(jsInvoker)), instance_(instance) {}
4105
+
4106
+ jsi::Value loadBundle(jsi::Runtime &rt, jsi::String bundlePath) override {
4107
+ static_assert(
4108
+ bridging::getParameterCount(&T::loadBundle) == 2,
4109
+ "Expected loadBundle(...) to have 2 parameters");
4110
+
4111
+ return bridging::callFromJs<jsi::Value>(
4112
+ rt, &T::loadBundle, jsInvoker_, instance_, std::move(bundlePath));
4113
+ }
4114
+
4115
+ private:
4116
+ T *instance_;
4117
+ };
4118
+
4119
+ Delegate delegate_;
4120
+ };
4121
+
4122
+
4079
4123
  class JSI_EXPORT NativePlatformConstantsAndroidCxxSpecJSI : public TurboModule {
4080
4124
  protected:
4081
4125
  NativePlatformConstantsAndroidCxxSpecJSI(std::shared_ptr<CallInvoker> jsInvoker);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "react-native-windows",
3
- "version": "0.72.0-preview.1",
3
+ "version": "0.72.0-preview.3",
4
4
  "license": "MIT",
5
5
  "repository": {
6
6
  "type": "git",
@@ -23,10 +23,10 @@
23
23
  "dependencies": {
24
24
  "@babel/runtime": "^7.0.0",
25
25
  "@jest/create-cache-key-function": "^29.2.1",
26
- "@react-native-community/cli": "11.0.0-alpha.2",
27
- "@react-native-community/cli-platform-android": "11.0.0-alpha.2",
28
- "@react-native-community/cli-platform-ios": "11.0.0-alpha.2",
29
- "@react-native-windows/cli": "0.72.0-preview.1",
26
+ "@react-native-community/cli": "11.2.0",
27
+ "@react-native-community/cli-platform-android": "11.2.0",
28
+ "@react-native-community/cli-platform-ios": "11.2.0",
29
+ "@react-native-windows/cli": "0.72.0-preview.3",
30
30
  "@react-native/assets": "1.0.0",
31
31
  "@react-native/assets-registry": "^0.72.0",
32
32
  "@react-native/codegen": "^0.72.3",
@@ -44,8 +44,8 @@
44
44
  "jest-environment-node": "^29.2.1",
45
45
  "jsc-android": "^250231.0.0",
46
46
  "memoize-one": "^5.0.0",
47
- "metro-runtime": "0.75.1",
48
- "metro-source-map": "0.75.1",
47
+ "metro-runtime": "0.76.2",
48
+ "metro-source-map": "0.76.2",
49
49
  "mkdirp": "^0.5.1",
50
50
  "nullthrows": "^1.1.1",
51
51
  "pretty-format": "^26.5.2",
@@ -62,24 +62,24 @@
62
62
  "yargs": "^17.6.2"
63
63
  },
64
64
  "devDependencies": {
65
- "@react-native-windows/codegen": "0.72.0-preview.1",
65
+ "@react-native-windows/codegen": "0.72.0-preview.2",
66
66
  "@rnw-scripts/babel-react-native-config": "0.0.0",
67
67
  "@rnw-scripts/eslint-config": "1.1.15",
68
68
  "@rnw-scripts/jest-out-of-tree-snapshot-resolver": "^1.1.1",
69
69
  "@rnw-scripts/just-task": "2.3.6",
70
70
  "@rnw-scripts/metro-dev-config": "0.0.0",
71
71
  "@rnx-kit/jest-preset": "^0.1.0",
72
- "@types/node": "^14.14.22",
72
+ "@types/node": "^16.0.0",
73
73
  "@types/react": "^18.0.18",
74
74
  "eslint": "^8.19.0",
75
75
  "eslint-plugin-prettier": "^4.2.1",
76
76
  "flow-bin": "^0.202.0",
77
77
  "jscodeshift": "^0.14.0",
78
78
  "just-scripts": "^1.3.3",
79
- "metro-config": "0.73.7",
79
+ "metro-config": "0.76.2",
80
80
  "prettier": "^2.4.1",
81
81
  "react": "18.2.0",
82
- "react-native": "0.0.0-20230321-2153-7b86e3aae",
82
+ "react-native": "0.72.0-rc.1",
83
83
  "react-native-platform-override": "^1.9.4",
84
84
  "react-refresh": "^0.4.0",
85
85
  "typescript": "^4.9.5"
@@ -144,6 +144,6 @@
144
144
  ],
145
145
  "promoteRelease": true,
146
146
  "engines": {
147
- "node": ">= 14"
147
+ "node": ">= 16"
148
148
  }
149
149
  }
@@ -21,7 +21,7 @@
21
21
  <Import Project="$(ReactNativeWindowsDir)\PropertySheets\External\Microsoft.ReactNative.WindowsSdk.Default.props" Condition="Exists('$(ReactNativeWindowsDir)\PropertySheets\External\Microsoft.ReactNative.WindowsSdk.Default.props')" />
22
22
  <PropertyGroup Label="Fallback Windows SDK Versions">
23
23
  <WindowsTargetPlatformVersion Condition=" '$(WindowsTargetPlatformVersion)' == '' ">10.0.19041.0</WindowsTargetPlatformVersion>
24
- <WindowsTargetPlatformMinVersion Condition=" '$(WindowsTargetPlatformMinVersion)' == '' ">10.0.16299.0</WindowsTargetPlatformMinVersion>
24
+ <WindowsTargetPlatformMinVersion Condition=" '$(WindowsTargetPlatformMinVersion)' == '' ">10.0.17763.0</WindowsTargetPlatformMinVersion>
25
25
  </PropertyGroup>
26
26
  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
27
27
  <ItemGroup Label="ProjectConfigurations">
@@ -25,7 +25,7 @@
25
25
  <Import Project="$(ReactNativeWindowsDir)\PropertySheets\External\Microsoft.ReactNative.WindowsSdk.Default.props" Condition="Exists('$(ReactNativeWindowsDir)\PropertySheets\External\Microsoft.ReactNative.WindowsSdk.Default.props')" />
26
26
  <PropertyGroup Label="Fallback Windows SDK Versions">
27
27
  <TargetPlatformVersion Condition=" '$(TargetPlatformVersion)' == '' ">10.0.19041.0</TargetPlatformVersion>
28
- <TargetPlatformMinVersion Condition=" '$(TargetPlatformMinVersion)' == '' ">10.0.16299.0</TargetPlatformMinVersion>
28
+ <TargetPlatformMinVersion Condition=" '$(TargetPlatformMinVersion)' == '' ">10.0.17763.0</TargetPlatformMinVersion>
29
29
  </PropertyGroup>
30
30
  <PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|x86'">
31
31
  <DebugSymbols>true</DebugSymbols>