diff --git a/.github/actions/composite/buildAndroidAPK/action.yml b/.github/actions/composite/buildAndroidAPK/action.yml
index 819234df0bc3..798df2eeaed3 100644
--- a/.github/actions/composite/buildAndroidAPK/action.yml
+++ b/.github/actions/composite/buildAndroidAPK/action.yml
@@ -11,6 +11,10 @@ runs:
steps:
- uses: Expensify/App/.github/actions/composite/setupNode@main
+ - name: Setup credentails for Mapbox SDK
+ run: ./scripts/setup-mapbox-sdk.sh ${{ secrets.MAPBOX_SDK_DOWNLOAD_TOKEN }}
+ shell: bash
+
- uses: ruby/setup-ruby@eae47962baca661befdfd24e4d6c34ade04858f7
with:
ruby-version: '2.7'
diff --git a/.github/workflows/platformDeploy.yml b/.github/workflows/platformDeploy.yml
index 2587d30477ae..75dbc8a45e16 100644
--- a/.github/workflows/platformDeploy.yml
+++ b/.github/workflows/platformDeploy.yml
@@ -151,6 +151,9 @@ jobs:
ruby-version: '2.7'
bundler-cache: true
+ - name: Setup credentails for Mapbox SDK
+ run: ./scripts/setup-mapbox-sdk.sh ${{ secrets.MAPBOX_SDK_DOWNLOAD_TOKEN }}
+
- name: Install cocoapods
uses: nick-invision/retry@0711ba3d7808574133d713a0d92d2941be03a350
with:
@@ -241,6 +244,9 @@ jobs:
AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }}
AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
+ - name: Setup credentails for Mapbox SDK
+ run: ./scripts/setup-mapbox-sdk.sh ${{ secrets.MAPBOX_SDK_DOWNLOAD_TOKEN }}
+
- name: Build web for production
if: ${{ fromJSON(env.SHOULD_DEPLOY_PRODUCTION) }}
run: npm run build
diff --git a/.github/workflows/testBuild.yml b/.github/workflows/testBuild.yml
index 728e2da0d474..868403737858 100644
--- a/.github/workflows/testBuild.yml
+++ b/.github/workflows/testBuild.yml
@@ -80,7 +80,7 @@ jobs:
sed -i 's/ENVIRONMENT=staging/ENVIRONMENT=adhoc/' .env.adhoc
echo "PULL_REQUEST_NUMBER=$PULL_REQUEST_NUMBER" >> .env.adhoc
- - uses: Expensify/App/.github/actions/composite/setupNode@main
+ - uses: ./.github/actions/composite/setupNode
- uses: ruby/setup-ruby@eae47962baca661befdfd24e4d6c34ade04858f7
with:
@@ -103,6 +103,9 @@ jobs:
AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }}
AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
+ - name: Setup credentails for Mapbox SDK
+ run: ./scripts/setup-mapbox-sdk.sh ${{ secrets.MAPBOX_SDK_DOWNLOAD_TOKEN }}
+
- name: Run Fastlane beta test
id: runFastlaneBetaTest
run: bundle exec fastlane android build_internal
@@ -148,6 +151,9 @@ jobs:
ruby-version: '2.7'
bundler-cache: true
+ - name: Setup credentails for Mapbox SDK
+ run: ./scripts/setup-mapbox-sdk.sh ${{ secrets.MAPBOX_SDK_DOWNLOAD_TOKEN }}
+
- name: Install cocoapods
uses: nick-invision/retry@0711ba3d7808574133d713a0d92d2941be03a350
with:
diff --git a/README.md b/README.md
index 25382161978f..f0a94a16855c 100644
--- a/README.md
+++ b/README.md
@@ -50,13 +50,14 @@ For an M1 Mac, read this [SO](https://stackoverflow.com/c/expensify/questions/11
* Install project gems, including cocoapods, using bundler to ensure everyone uses the same versions. In the project root, run: `bundle install`
* If you get the error `Could not find 'bundler'`, install the bundler gem first: `gem install bundler` and try again.
* If you are using MacOS and get the error `Gem::FilePermissionError` when trying to install the bundler gem, you're likely using system Ruby, which requires administrator permission to modify. To get around this, install another version of Ruby with a version manager like [rbenv](https://github.com/rbenv/rbenv#installation).
+* Before installing iOS dependencies, you need to obtain a token from Mapbox to download their SDKs. Please run `npm run configure-mapbox` and follow the instructions.
* To install the iOS dependencies, run: `npm install && npm run pod-install`
* If you are an Expensify employee and want to point the emulator to your local VM, follow [this](https://stackoverflow.com/c/expensify/questions/7699)
* To run a on a **Development Simulator**: `npm run ios`
* Changes applied to Javascript will be applied automatically, any changes to native code will require a recompile
## Running the Android app 🤖
-* To install the Android dependencies, run: `npm install`
+* Before installing Android dependencies, you need to obtain a token from Mapbox to download their SDKs. Please run `npm run configure-mapbox` and follow the instructions. If you already did this step for iOS, there is no need to repeat this step.
* Go through the instructions on [this SO post](https://stackoverflow.com/c/expensify/questions/13283/13284#13284) to start running the app on android.
* For more information, go through the official React-Native instructions on [this page](https://reactnative.dev/docs/environment-setup#development-os) for "React Native CLI Quickstart" > Mac OS > Android
* If you are an Expensify employee and want to point the emulator to your local VM, follow [this](https://stackoverflow.com/c/expensify/questions/7699)
diff --git a/android/build.gradle b/android/build.gradle
index c04314a9aa0c..d7e9529ae6dd 100644
--- a/android/build.gradle
+++ b/android/build.gradle
@@ -14,6 +14,10 @@ buildscript {
multiDexEnabled = true
googlePlayServicesVersion = "17.0.0"
kotlinVersion = '1.6.20'
+
+ // This property configures the type of Mapbox SDK used by the @rnmapbox/maps library.
+ // "mapbox" indicates the usage of the Mapbox SDK.
+ RNMapboxMapsImpl = "mapbox"
}
repositories {
google()
@@ -48,5 +52,23 @@ allprojects {
// All of React Native (JS, Obj-C sources, Android binaries) is installed from npm
url("$rootDir/../node_modules/react-native/android")
}
+ maven {
+ // Mapbox SDK requires authentication to download from Mapbox's private Maven repository.
+ url 'https://api.mapbox.com/downloads/v2/releases/maven'
+ authentication {
+ basic(BasicAuthentication)
+ }
+ credentials {
+ // 'mapbox' is the fixed username for Mapbox's Maven repository.
+ username = 'mapbox'
+
+ // The value for password is read from the 'MAPBOX_DOWNLOADS_TOKEN' gradle property.
+ // Run "npm run setup-mapbox-sdk" to set this property in «USER_HOME»/.gradle/gradle.properties
+
+ // Example gradle.properties entry:
+ // MAPBOX_DOWNLOADS_TOKEN=YOUR_SECRET_TOKEN_HERE
+ password = project.properties['MAPBOX_DOWNLOADS_TOKEN'] ?: ""
+ }
+ }
}
-}
\ No newline at end of file
+}
diff --git a/assets/images/emptystate__routepending.svg b/assets/images/emptystate__routepending.svg
new file mode 100644
index 000000000000..7646917046cc
--- /dev/null
+++ b/assets/images/emptystate__routepending.svg
@@ -0,0 +1,43 @@
+
+
+
diff --git a/ios/NewExpensify.xcodeproj/project.pbxproj b/ios/NewExpensify.xcodeproj/project.pbxproj
index 632dc5d221a0..d87226269a8b 100644
--- a/ios/NewExpensify.xcodeproj/project.pbxproj
+++ b/ios/NewExpensify.xcodeproj/project.pbxproj
@@ -384,8 +384,13 @@
);
inputPaths = (
"${PODS_ROOT}/Target Support Files/Pods-NewExpensify/Pods-NewExpensify-frameworks.sh",
+ "${BUILT_PRODUCTS_DIR}/MapboxMaps/MapboxMaps.framework",
+ "${BUILT_PRODUCTS_DIR}/Turf/Turf.framework",
"${PODS_XCFRAMEWORKS_BUILD_DIR}/Flipper-DoubleConversion/double-conversion.framework/double-conversion",
"${PODS_XCFRAMEWORKS_BUILD_DIR}/Flipper-Glog/glog.framework/glog",
+ "${PODS_XCFRAMEWORKS_BUILD_DIR}/MapboxCommon/MapboxCommon.framework/MapboxCommon",
+ "${PODS_XCFRAMEWORKS_BUILD_DIR}/MapboxCoreMaps/MapboxCoreMaps.framework/MapboxCoreMaps",
+ "${PODS_XCFRAMEWORKS_BUILD_DIR}/MapboxMobileEvents/MapboxMobileEvents.framework/MapboxMobileEvents",
"${PODS_XCFRAMEWORKS_BUILD_DIR}/Onfido/Onfido.framework/Onfido",
"${PODS_XCFRAMEWORKS_BUILD_DIR}/OpenSSL-Universal/OpenSSL.framework/OpenSSL",
"${PODS_XCFRAMEWORKS_BUILD_DIR}/Plaid/LinkKit.framework/LinkKit",
@@ -393,8 +398,13 @@
);
name = "[CP] Embed Pods Frameworks";
outputPaths = (
+ "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/MapboxMaps.framework",
+ "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/Turf.framework",
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/double-conversion.framework",
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/glog.framework",
+ "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/MapboxCommon.framework",
+ "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/MapboxCoreMaps.framework",
+ "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/MapboxMobileEvents.framework",
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/Onfido.framework",
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/OpenSSL.framework",
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/LinkKit.framework",
@@ -455,8 +465,13 @@
);
inputPaths = (
"${PODS_ROOT}/Target Support Files/Pods-NewExpensify-NewExpensifyTests/Pods-NewExpensify-NewExpensifyTests-frameworks.sh",
+ "${BUILT_PRODUCTS_DIR}/MapboxMaps/MapboxMaps.framework",
+ "${BUILT_PRODUCTS_DIR}/Turf/Turf.framework",
"${PODS_XCFRAMEWORKS_BUILD_DIR}/Flipper-DoubleConversion/double-conversion.framework/double-conversion",
"${PODS_XCFRAMEWORKS_BUILD_DIR}/Flipper-Glog/glog.framework/glog",
+ "${PODS_XCFRAMEWORKS_BUILD_DIR}/MapboxCommon/MapboxCommon.framework/MapboxCommon",
+ "${PODS_XCFRAMEWORKS_BUILD_DIR}/MapboxCoreMaps/MapboxCoreMaps.framework/MapboxCoreMaps",
+ "${PODS_XCFRAMEWORKS_BUILD_DIR}/MapboxMobileEvents/MapboxMobileEvents.framework/MapboxMobileEvents",
"${PODS_XCFRAMEWORKS_BUILD_DIR}/Onfido/Onfido.framework/Onfido",
"${PODS_XCFRAMEWORKS_BUILD_DIR}/OpenSSL-Universal/OpenSSL.framework/OpenSSL",
"${PODS_XCFRAMEWORKS_BUILD_DIR}/Plaid/LinkKit.framework/LinkKit",
@@ -464,8 +479,13 @@
);
name = "[CP] Embed Pods Frameworks";
outputPaths = (
+ "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/MapboxMaps.framework",
+ "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/Turf.framework",
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/double-conversion.framework",
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/glog.framework",
+ "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/MapboxCommon.framework",
+ "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/MapboxCoreMaps.framework",
+ "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/MapboxMobileEvents.framework",
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/Onfido.framework",
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/OpenSSL.framework",
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/LinkKit.framework",
diff --git a/ios/Podfile b/ios/Podfile
index 50b9f4646932..6445685db014 100644
--- a/ios/Podfile
+++ b/ios/Podfile
@@ -1,3 +1,7 @@
+# Set the type of Mapbox SDK to use
+# This value is used by $RNMapboxMaps
+$RNMapboxMapsImpl = 'mapbox'
+
# Resolve react_native_pods.rb with node to allow for hoisting
require Pod::Executable.execute_command('node', ['-p',
'require.resolve(
@@ -41,6 +45,11 @@ def __apply_Xcode_14_3_RC_post_install_workaround(installer)
end
end
+# Configure Mapbox before installing dependencies
+pre_install do |installer|
+ $RNMapboxMaps.pre_install(installer)
+end
+
target 'NewExpensify' do
permissions_path = '../node_modules/react-native-permissions/ios'
@@ -83,6 +92,9 @@ target 'NewExpensify' do
end
post_install do |installer|
+ # Configure Mapbox after installation
+ $RNMapboxMaps.post_install(installer)
+
# https://github.com/facebook/react-native/blob/main/scripts/react_native_pods.rb#L197-L202
react_native_post_install(
installer,
diff --git a/ios/Podfile.lock b/ios/Podfile.lock
index bccec660492b..16ed1e05dc64 100644
--- a/ios/Podfile.lock
+++ b/ios/Podfile.lock
@@ -237,6 +237,15 @@ PODS:
- lottie-react-native (5.1.6):
- lottie-ios (~> 3.4.0)
- React-Core
+ - MapboxCommon (23.6.0)
+ - MapboxCoreMaps (10.14.0):
+ - MapboxCommon (~> 23.6)
+ - MapboxMaps (10.14.0):
+ - MapboxCommon (= 23.6.0)
+ - MapboxCoreMaps (= 10.14.0)
+ - MapboxMobileEvents (= 1.0.10)
+ - Turf (~> 2.0)
+ - MapboxMobileEvents (1.0.10)
- nanopb (2.30908.0):
- nanopb/decode (= 2.30908.0)
- nanopb/encode (= 2.30908.0)
@@ -759,6 +768,17 @@ PODS:
- React-Core
- RNLocalize (2.2.6):
- React-Core
+ - rnmapbox-maps (10.0.11):
+ - MapboxMaps (~> 10.14.0)
+ - React
+ - React-Core
+ - rnmapbox-maps/DynamicLibrary (= 10.0.11)
+ - Turf
+ - rnmapbox-maps/DynamicLibrary (10.0.11):
+ - MapboxMaps (~> 10.14.0)
+ - React
+ - React-Core
+ - Turf
- RNPermissions (3.6.1):
- React-Core
- RNReactNativeHapticFeedback (1.14.0):
@@ -804,6 +824,7 @@ PODS:
- libwebp (~> 1.0)
- SDWebImage/Core (~> 5.10)
- SocketRocket (0.6.1)
+ - Turf (2.6.1)
- VisionCamera (2.15.4):
- React
- React-callinvoker
@@ -917,6 +938,7 @@ DEPENDENCIES:
- RNGestureHandler (from `../node_modules/react-native-gesture-handler`)
- "RNGoogleSignin (from `../node_modules/@react-native-google-signin/google-signin`)"
- RNLocalize (from `../node_modules/react-native-localize`)
+ - "rnmapbox-maps (from `../node_modules/@rnmapbox/maps`)"
- RNPermissions (from `../node_modules/react-native-permissions`)
- RNReactNativeHapticFeedback (from `../node_modules/react-native-haptic-feedback`)
- RNReanimated (from `../node_modules/react-native-reanimated`)
@@ -958,6 +980,10 @@ SPEC REPOS:
- libevent
- libwebp
- lottie-ios
+ - MapboxCommon
+ - MapboxCoreMaps
+ - MapboxMaps
+ - MapboxMobileEvents
- nanopb
- Onfido
- OpenSSL-Universal
@@ -966,6 +992,7 @@ SPEC REPOS:
- SDWebImage
- SDWebImageWebPCoder
- SocketRocket
+ - Turf
- YogaKit
EXTERNAL SOURCES:
@@ -1130,6 +1157,8 @@ EXTERNAL SOURCES:
:path: "../node_modules/@react-native-google-signin/google-signin"
RNLocalize:
:path: "../node_modules/react-native-localize"
+ rnmapbox-maps:
+ :path: "../node_modules/@rnmapbox/maps"
RNPermissions:
:path: "../node_modules/react-native-permissions"
RNReactNativeHapticFeedback:
@@ -1185,6 +1214,10 @@ SPEC CHECKSUMS:
libwebp: f62cb61d0a484ba548448a4bd52aabf150ff6eef
lottie-ios: 8f97d3271e155c2d688875c29cd3c74908aef5f8
lottie-react-native: 8f9d4be452e23f6e5ca0fdc11669dc99ab52be81
+ MapboxCommon: 4a0251dd470ee37e7fadda8e285c01921a5e1eb0
+ MapboxCoreMaps: eb07203bbb0b1509395db5ab89cd3ad6c2e3c04c
+ MapboxMaps: af50ec61a7eb3b032c3f7962c6bd671d93d2a209
+ MapboxMobileEvents: de50b3a4de180dd129c326e09cd12c8adaaa46d6
nanopb: a0ba3315591a9ae0a16a309ee504766e90db0c96
Onfido: e36f284b865adcf99d9c905590a64ac09d4a576b
onfido-react-native-sdk: 4ecde1a97435dcff9f00a878e3f8d1eb14fabbdc
@@ -1262,6 +1295,7 @@ SPEC CHECKSUMS:
RNGestureHandler: dec4645026e7401a0899f2846d864403478ff6a5
RNGoogleSignin: ccaa4a81582cf713eea562c5dd9dc1961a715fd0
RNLocalize: d4b8af4e442d4bcca54e68fc687a2129b4d71a81
+ rnmapbox-maps: 6f638ec002aa6e906a6f766d69cd45f968d98e64
RNPermissions: dcdb7b99796bbeda6975a6e79ad519c41b251b1c
RNReactNativeHapticFeedback: 1e3efeca9628ff9876ee7cdd9edec1b336913f8c
RNReanimated: 020859659f64be2d30849a1fe88c821a7c3e0cbf
@@ -1270,10 +1304,11 @@ SPEC CHECKSUMS:
SDWebImage: a7f831e1a65eb5e285e3fb046a23fcfbf08e696d
SDWebImageWebPCoder: 908b83b6adda48effe7667cd2b7f78c897e5111d
SocketRocket: f32cd54efbe0f095c4d7594881e52619cfe80b17
+ Turf: 469ce2c3d22e5e8e4818d5a3b254699a5c89efa4
VisionCamera: d3ec8883417a6a4a0e3a6ba37d81d22db7611601
Yoga: 8796b55dba14d7004f980b54bcc9833ee45b28ce
YogaKit: f782866e155069a2cca2517aafea43200b01fd5a
-PODFILE CHECKSUM: ff7c8276619cfa428c00b8439045ffd134df7eb8
+PODFILE CHECKSUM: 845537d35601574adcd0794e17003ba7dbccdbfd
COCOAPODS: 1.12.1
diff --git a/package-lock.json b/package-lock.json
index 778e74c88ddb..acfa4a420290 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -35,6 +35,7 @@
"@react-navigation/native": "6.1.6",
"@react-navigation/stack": "6.3.16",
"@react-ng/bounds-observer": "^0.2.1",
+ "@rnmapbox/maps": "^10.0.11",
"@ua/react-native-airship": "^15.2.6",
"awesome-phonenumber": "^5.4.0",
"babel-plugin-transform-remove-console": "^6.9.4",
@@ -44,7 +45,7 @@
"date-fns-tz": "^2.0.0",
"dom-serializer": "^0.2.2",
"domhandler": "^4.3.0",
- "expensify-common": "git+ssh://git@github.com/Expensify/expensify-common.git#b60e464ca23e452eacffb93d471abed977b9abf0",
+ "expensify-common": "git+ssh://git@github.com/Expensify/expensify-common.git#4cc5f72b69bd77d2c8052a3c167d039e502a2796",
"fbjs": "^3.0.2",
"htmlparser2": "^7.2.0",
"jest-when": "^3.5.2",
@@ -52,6 +53,7 @@
"localforage-removeitems": "^1.4.0",
"lodash": "4.17.21",
"lottie-react-native": "^5.1.6",
+ "mapbox-gl": "^2.15.0",
"metro-config": "^0.71.3",
"moment": "^2.29.4",
"moment-timezone": "^0.5.31",
@@ -64,6 +66,7 @@
"react-collapse": "^5.1.0",
"react-content-loader": "^6.1.0",
"react-dom": "18.1.0",
+ "react-map-gl": "^7.1.3",
"react-native": "0.72.3",
"react-native-blob-util": "^0.17.3",
"react-native-collapsible": "^1.6.0",
@@ -104,6 +107,7 @@
"react-native-web-linear-gradient": "^1.1.2",
"react-native-web-lottie": "^1.4.4",
"react-native-webview": "^11.17.2",
+ "react-native-x-maps": "1.0.6",
"react-pdf": "^6.2.2",
"react-plaid-link": "3.3.2",
"react-web-config": "^1.0.0",
@@ -148,6 +152,7 @@
"@types/jest-when": "^3.5.2",
"@types/js-yaml": "^4.0.5",
"@types/lodash": "^4.14.195",
+ "@types/mapbox-gl": "^2.7.13",
"@types/mock-fs": "^4.13.1",
"@types/pusher-js": "^5.1.0",
"@types/react": "^18.2.12",
@@ -5459,6 +5464,31 @@
"node": ">= 10.0.0"
}
},
+ "node_modules/@mapbox/geojson-rewind": {
+ "version": "0.5.2",
+ "resolved": "https://registry.npmjs.org/@mapbox/geojson-rewind/-/geojson-rewind-0.5.2.tgz",
+ "integrity": "sha512-tJaT+RbYGJYStt7wI3cq4Nl4SXxG8W7JDG5DMJu97V25RnbNg3QtQtf+KD+VLjNpWKYsRvXDNmNrBgEETr1ifA==",
+ "dependencies": {
+ "get-stream": "^6.0.1",
+ "minimist": "^1.2.6"
+ },
+ "bin": {
+ "geojson-rewind": "geojson-rewind"
+ }
+ },
+ "node_modules/@mapbox/jsonlint-lines-primitives": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/@mapbox/jsonlint-lines-primitives/-/jsonlint-lines-primitives-2.0.2.tgz",
+ "integrity": "sha512-rY0o9A5ECsTQRVhv7tL/OyDpGAoUB4tTvLiW1DSzQGq4bvTPhNw1VpSNjDJc5GFZ2XuyOtSWSVN05qOtcD71qQ==",
+ "engines": {
+ "node": ">= 0.6"
+ }
+ },
+ "node_modules/@mapbox/mapbox-gl-supported": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/@mapbox/mapbox-gl-supported/-/mapbox-gl-supported-2.0.1.tgz",
+ "integrity": "sha512-HP6XvfNIzfoMVfyGjBckjiAOQK9WfX0ywdLubuPMPv+Vqf5fj0uCbgBQYpiqcWZT6cbyyRnTSXDheT1ugvF6UQ=="
+ },
"node_modules/@mapbox/node-pre-gyp": {
"version": "1.0.10",
"resolved": "https://registry.npmjs.org/@mapbox/node-pre-gyp/-/node-pre-gyp-1.0.10.tgz",
@@ -5526,6 +5556,65 @@
"node": ">=6"
}
},
+ "node_modules/@mapbox/point-geometry": {
+ "version": "0.1.0",
+ "resolved": "https://registry.npmjs.org/@mapbox/point-geometry/-/point-geometry-0.1.0.tgz",
+ "integrity": "sha512-6j56HdLTwWGO0fJPlrZtdU/B13q8Uwmo18Ck2GnGgN9PCFyKTZ3UbXeEdRFh18i9XQ92eH2VdtpJHpBD3aripQ=="
+ },
+ "node_modules/@mapbox/tiny-sdf": {
+ "version": "2.0.6",
+ "resolved": "https://registry.npmjs.org/@mapbox/tiny-sdf/-/tiny-sdf-2.0.6.tgz",
+ "integrity": "sha512-qMqa27TLw+ZQz5Jk+RcwZGH7BQf5G/TrutJhspsca/3SHwmgKQ1iq+d3Jxz5oysPVYTGP6aXxCo5Lk9Er6YBAA=="
+ },
+ "node_modules/@mapbox/unitbezier": {
+ "version": "0.0.1",
+ "resolved": "https://registry.npmjs.org/@mapbox/unitbezier/-/unitbezier-0.0.1.tgz",
+ "integrity": "sha512-nMkuDXFv60aBr9soUG5q+GvZYL+2KZHVvsqFCzqnkGEf46U2fvmytHaEVc1/YZbiLn8X+eR3QzX1+dwDO1lxlw=="
+ },
+ "node_modules/@mapbox/vector-tile": {
+ "version": "1.3.1",
+ "resolved": "https://registry.npmjs.org/@mapbox/vector-tile/-/vector-tile-1.3.1.tgz",
+ "integrity": "sha512-MCEddb8u44/xfQ3oD+Srl/tNcQoqTw3goGk2oLsrFxOTc3dUp+kAnby3PvAeeBYSMSjSPD1nd1AJA6W49WnoUw==",
+ "dependencies": {
+ "@mapbox/point-geometry": "~0.1.0"
+ }
+ },
+ "node_modules/@mapbox/whoots-js": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/@mapbox/whoots-js/-/whoots-js-3.1.0.tgz",
+ "integrity": "sha512-Es6WcD0nO5l+2BOQS4uLfNPYQaNDfbot3X1XUoloz+x0mPDS3eeORZJl06HXjwBG1fOGwCRnzK88LMdxKRrd6Q==",
+ "engines": {
+ "node": ">=6.0.0"
+ }
+ },
+ "node_modules/@maplibre/maplibre-gl-style-spec": {
+ "version": "19.3.0",
+ "resolved": "https://registry.npmjs.org/@maplibre/maplibre-gl-style-spec/-/maplibre-gl-style-spec-19.3.0.tgz",
+ "integrity": "sha512-ZbhX9CTV+Z7vHwkRIasDOwTSzr76e8Q6a55RMsAibjyX6+P0ZNL1qAKNzOjjBDP3+aEfNMl7hHo5knuY6pTAUQ==",
+ "dependencies": {
+ "@mapbox/jsonlint-lines-primitives": "~2.0.2",
+ "@mapbox/unitbezier": "^0.0.1",
+ "json-stringify-pretty-compact": "^3.0.0",
+ "minimist": "^1.2.8",
+ "rw": "^1.3.3",
+ "sort-object": "^3.0.3"
+ },
+ "bin": {
+ "gl-style-format": "dist/gl-style-format.mjs",
+ "gl-style-migrate": "dist/gl-style-migrate.mjs",
+ "gl-style-validate": "dist/gl-style-validate.mjs"
+ }
+ },
+ "node_modules/@math.gl/web-mercator": {
+ "version": "3.6.3",
+ "resolved": "https://registry.npmjs.org/@math.gl/web-mercator/-/web-mercator-3.6.3.tgz",
+ "integrity": "sha512-UVrkSOs02YLehKaehrxhAejYMurehIHPfFQvPFZmdJHglHOU4V2cCUApTVEwOksvCp161ypEqVp+9H6mGhTTcw==",
+ "peer": true,
+ "dependencies": {
+ "@babel/runtime": "^7.12.0",
+ "gl-matrix": "^3.4.0"
+ }
+ },
"node_modules/@mdx-js/mdx": {
"version": "1.6.22",
"dev": true,
@@ -9440,6 +9529,34 @@
"loose-envify": "^1.1.0"
}
},
+ "node_modules/@rnmapbox/maps": {
+ "version": "10.0.11",
+ "resolved": "https://registry.npmjs.org/@rnmapbox/maps/-/maps-10.0.11.tgz",
+ "integrity": "sha512-CqaAOEV2nYjZzAwSd7RceGIVVIyDO0G/Vqdvgen20LDuejX9N9Yqw7BrMH8MgIH3FNFxtjwyXiw6aVtybpke0w==",
+ "dependencies": {
+ "@turf/along": "6.5.0",
+ "@turf/distance": "6.5.0",
+ "@turf/helpers": "6.5.0",
+ "@turf/length": "6.5.0",
+ "@turf/nearest-point-on-line": "6.5.0",
+ "@types/geojson": "^7946.0.7",
+ "debounce": "^1.2.0"
+ },
+ "peerDependencies": {
+ "expo": ">=47.0.0",
+ "mapbox-gl": "^2.9.0",
+ "react": ">=16.6.1",
+ "react-native": ">=0.59.9"
+ },
+ "peerDependenciesMeta": {
+ "expo": {
+ "optional": true
+ },
+ "mapbox-gl": {
+ "optional": true
+ }
+ }
+ },
"node_modules/@sentry/browser": {
"version": "7.11.1",
"license": "BSD-3-Clause",
@@ -19774,6 +19891,157 @@
"node": ">=10.13.0"
}
},
+ "node_modules/@turf/along": {
+ "version": "6.5.0",
+ "resolved": "https://registry.npmjs.org/@turf/along/-/along-6.5.0.tgz",
+ "integrity": "sha512-LLyWQ0AARqJCmMcIEAXF4GEu8usmd4Kbz3qk1Oy5HoRNpZX47+i5exQtmIWKdqJ1MMhW26fCTXgpsEs5zgJ5gw==",
+ "dependencies": {
+ "@turf/bearing": "^6.5.0",
+ "@turf/destination": "^6.5.0",
+ "@turf/distance": "^6.5.0",
+ "@turf/helpers": "^6.5.0",
+ "@turf/invariant": "^6.5.0"
+ },
+ "funding": {
+ "url": "https://opencollective.com/turf"
+ }
+ },
+ "node_modules/@turf/bbox": {
+ "version": "6.5.0",
+ "resolved": "https://registry.npmjs.org/@turf/bbox/-/bbox-6.5.0.tgz",
+ "integrity": "sha512-RBbLaao5hXTYyyg577iuMtDB8ehxMlUqHEJiMs8jT1GHkFhr6sYre3lmLsPeYEi/ZKj5TP5tt7fkzNdJ4GIVyw==",
+ "dependencies": {
+ "@turf/helpers": "^6.5.0",
+ "@turf/meta": "^6.5.0"
+ },
+ "funding": {
+ "url": "https://opencollective.com/turf"
+ }
+ },
+ "node_modules/@turf/bearing": {
+ "version": "6.5.0",
+ "resolved": "https://registry.npmjs.org/@turf/bearing/-/bearing-6.5.0.tgz",
+ "integrity": "sha512-dxINYhIEMzgDOztyMZc20I7ssYVNEpSv04VbMo5YPQsqa80KO3TFvbuCahMsCAW5z8Tncc8dwBlEFrmRjJG33A==",
+ "dependencies": {
+ "@turf/helpers": "^6.5.0",
+ "@turf/invariant": "^6.5.0"
+ },
+ "funding": {
+ "url": "https://opencollective.com/turf"
+ }
+ },
+ "node_modules/@turf/destination": {
+ "version": "6.5.0",
+ "resolved": "https://registry.npmjs.org/@turf/destination/-/destination-6.5.0.tgz",
+ "integrity": "sha512-4cnWQlNC8d1tItOz9B4pmJdWpXqS0vEvv65bI/Pj/genJnsL7evI0/Xw42RvEGROS481MPiU80xzvwxEvhQiMQ==",
+ "dependencies": {
+ "@turf/helpers": "^6.5.0",
+ "@turf/invariant": "^6.5.0"
+ },
+ "funding": {
+ "url": "https://opencollective.com/turf"
+ }
+ },
+ "node_modules/@turf/distance": {
+ "version": "6.5.0",
+ "resolved": "https://registry.npmjs.org/@turf/distance/-/distance-6.5.0.tgz",
+ "integrity": "sha512-xzykSLfoURec5qvQJcfifw/1mJa+5UwByZZ5TZ8iaqjGYN0vomhV9aiSLeYdUGtYRESZ+DYC/OzY+4RclZYgMg==",
+ "dependencies": {
+ "@turf/helpers": "^6.5.0",
+ "@turf/invariant": "^6.5.0"
+ },
+ "funding": {
+ "url": "https://opencollective.com/turf"
+ }
+ },
+ "node_modules/@turf/helpers": {
+ "version": "6.5.0",
+ "resolved": "https://registry.npmjs.org/@turf/helpers/-/helpers-6.5.0.tgz",
+ "integrity": "sha512-VbI1dV5bLFzohYYdgqwikdMVpe7pJ9X3E+dlr425wa2/sMJqYDhTO++ec38/pcPvPE6oD9WEEeU3Xu3gza+VPw==",
+ "funding": {
+ "url": "https://opencollective.com/turf"
+ }
+ },
+ "node_modules/@turf/invariant": {
+ "version": "6.5.0",
+ "resolved": "https://registry.npmjs.org/@turf/invariant/-/invariant-6.5.0.tgz",
+ "integrity": "sha512-Wv8PRNCtPD31UVbdJE/KVAWKe7l6US+lJItRR/HOEW3eh+U/JwRCSUl/KZ7bmjM/C+zLNoreM2TU6OoLACs4eg==",
+ "dependencies": {
+ "@turf/helpers": "^6.5.0"
+ },
+ "funding": {
+ "url": "https://opencollective.com/turf"
+ }
+ },
+ "node_modules/@turf/length": {
+ "version": "6.5.0",
+ "resolved": "https://registry.npmjs.org/@turf/length/-/length-6.5.0.tgz",
+ "integrity": "sha512-5pL5/pnw52fck3oRsHDcSGrj9HibvtlrZ0QNy2OcW8qBFDNgZ4jtl6U7eATVoyWPKBHszW3dWETW+iLV7UARig==",
+ "dependencies": {
+ "@turf/distance": "^6.5.0",
+ "@turf/helpers": "^6.5.0",
+ "@turf/meta": "^6.5.0"
+ },
+ "funding": {
+ "url": "https://opencollective.com/turf"
+ }
+ },
+ "node_modules/@turf/line-intersect": {
+ "version": "6.5.0",
+ "resolved": "https://registry.npmjs.org/@turf/line-intersect/-/line-intersect-6.5.0.tgz",
+ "integrity": "sha512-CS6R1tZvVQD390G9Ea4pmpM6mJGPWoL82jD46y0q1KSor9s6HupMIo1kY4Ny+AEYQl9jd21V3Scz20eldpbTVA==",
+ "dependencies": {
+ "@turf/helpers": "^6.5.0",
+ "@turf/invariant": "^6.5.0",
+ "@turf/line-segment": "^6.5.0",
+ "@turf/meta": "^6.5.0",
+ "geojson-rbush": "3.x"
+ },
+ "funding": {
+ "url": "https://opencollective.com/turf"
+ }
+ },
+ "node_modules/@turf/line-segment": {
+ "version": "6.5.0",
+ "resolved": "https://registry.npmjs.org/@turf/line-segment/-/line-segment-6.5.0.tgz",
+ "integrity": "sha512-jI625Ho4jSuJESNq66Mmi290ZJ5pPZiQZruPVpmHkUw257Pew0alMmb6YrqYNnLUuiVVONxAAKXUVeeUGtycfw==",
+ "dependencies": {
+ "@turf/helpers": "^6.5.0",
+ "@turf/invariant": "^6.5.0",
+ "@turf/meta": "^6.5.0"
+ },
+ "funding": {
+ "url": "https://opencollective.com/turf"
+ }
+ },
+ "node_modules/@turf/meta": {
+ "version": "6.5.0",
+ "resolved": "https://registry.npmjs.org/@turf/meta/-/meta-6.5.0.tgz",
+ "integrity": "sha512-RrArvtsV0vdsCBegoBtOalgdSOfkBrTJ07VkpiCnq/491W67hnMWmDu7e6Ztw0C3WldRYTXkg3SumfdzZxLBHA==",
+ "dependencies": {
+ "@turf/helpers": "^6.5.0"
+ },
+ "funding": {
+ "url": "https://opencollective.com/turf"
+ }
+ },
+ "node_modules/@turf/nearest-point-on-line": {
+ "version": "6.5.0",
+ "resolved": "https://registry.npmjs.org/@turf/nearest-point-on-line/-/nearest-point-on-line-6.5.0.tgz",
+ "integrity": "sha512-WthrvddddvmymnC+Vf7BrkHGbDOUu6Z3/6bFYUGv1kxw8tiZ6n83/VG6kHz4poHOfS0RaNflzXSkmCi64fLBlg==",
+ "dependencies": {
+ "@turf/bearing": "^6.5.0",
+ "@turf/destination": "^6.5.0",
+ "@turf/distance": "^6.5.0",
+ "@turf/helpers": "^6.5.0",
+ "@turf/invariant": "^6.5.0",
+ "@turf/line-intersect": "^6.5.0",
+ "@turf/meta": "^6.5.0"
+ },
+ "funding": {
+ "url": "https://opencollective.com/turf"
+ }
+ },
"node_modules/@types/acorn": {
"version": "4.0.6",
"resolved": "https://registry.npmjs.org/@types/acorn/-/acorn-4.0.6.tgz",
@@ -19962,6 +20230,11 @@
"@types/node": "*"
}
},
+ "node_modules/@types/geojson": {
+ "version": "7946.0.10",
+ "resolved": "https://registry.npmjs.org/@types/geojson/-/geojson-7946.0.10.tgz",
+ "integrity": "sha512-Nmh0K3iWQJzniTuPRcJn5hxXkfB1T1pgB89SBig5PlJQU5yocazeu4jATJlaA0GYFKWMqDdvYemoSnF2pXgLVA=="
+ },
"node_modules/@types/glob": {
"version": "7.2.0",
"dev": true,
@@ -20117,6 +20390,14 @@
"version": "4.0.2",
"license": "MIT"
},
+ "node_modules/@types/mapbox-gl": {
+ "version": "2.7.13",
+ "resolved": "https://registry.npmjs.org/@types/mapbox-gl/-/mapbox-gl-2.7.13.tgz",
+ "integrity": "sha512-qNffhTdYkeFl8QG9Q1zPPJmcs8PvHgmLa1PcwP1rxvcfMsIgcFr/FnrCttG0ZnH7Kzdd7xfECSRNTWSr4jC3PQ==",
+ "dependencies": {
+ "@types/geojson": "*"
+ }
+ },
"node_modules/@types/mdast": {
"version": "3.0.10",
"dev": true,
@@ -22013,7 +22294,6 @@
},
"node_modules/arr-union": {
"version": "3.1.0",
- "devOptional": true,
"license": "MIT",
"engines": {
"node": ">=0.10.0"
@@ -22206,7 +22486,6 @@
},
"node_modules/assign-symbols": {
"version": "1.0.0",
- "devOptional": true,
"license": "MIT",
"engines": {
"node": ">=0.10.0"
@@ -23899,6 +24178,23 @@
"node": ">= 0.8"
}
},
+ "node_modules/bytewise": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/bytewise/-/bytewise-1.1.0.tgz",
+ "integrity": "sha512-rHuuseJ9iQ0na6UDhnrRVDh8YnWVlU6xM3VH6q/+yHDeUH2zIhUzP+2/h3LIrhLDBtTqzWpE3p3tP/boefskKQ==",
+ "dependencies": {
+ "bytewise-core": "^1.2.2",
+ "typewise": "^1.0.3"
+ }
+ },
+ "node_modules/bytewise-core": {
+ "version": "1.2.3",
+ "resolved": "https://registry.npmjs.org/bytewise-core/-/bytewise-core-1.2.3.tgz",
+ "integrity": "sha512-nZD//kc78OOxeYtRlVk8/zXqTB4gf/nlguL1ggWA8FuchMyOxcyHR4QPQZMUmA7czC+YnaBrPUCubqAWe50DaA==",
+ "dependencies": {
+ "typewise-core": "^1.2"
+ }
+ },
"node_modules/c8": {
"version": "7.12.0",
"dev": true,
@@ -25956,6 +26252,11 @@
"url": "https://github.com/sponsors/fb55"
}
},
+ "node_modules/csscolorparser": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/csscolorparser/-/csscolorparser-1.0.3.tgz",
+ "integrity": "sha512-umPSgYwZkdFoUrH5hIq5kf0wPSXiro51nPw0j2K/c83KflkPSTBGMz6NJvMB+07VlL0y7VPo6QJcDjcgKTTm3w=="
+ },
"node_modules/cssesc": {
"version": "3.0.0",
"dev": true,
@@ -26066,6 +26367,11 @@
"resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.9.tgz",
"integrity": "sha512-QvzAURSbQ0pKdIye2txOzNaHmxtUBXerpY0FJsFXUMKbIZeFm5ht1LS/jFsrncjnmtv8HsG0W2g6c0zUjZWmpA=="
},
+ "node_modules/debounce": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/debounce/-/debounce-1.2.1.tgz",
+ "integrity": "sha512-XRRe6Glud4rd/ZGQfiV1ruXSfbvfJedlV9Y6zOlP+2K04vBYiJEte6stfFkCP03aMnY5tsipamumUjL14fofug=="
+ },
"node_modules/debug": {
"version": "4.3.4",
"license": "MIT",
@@ -26799,6 +27105,11 @@
"stream-shift": "^1.0.0"
}
},
+ "node_modules/earcut": {
+ "version": "2.2.4",
+ "resolved": "https://registry.npmjs.org/earcut/-/earcut-2.2.4.tgz",
+ "integrity": "sha512-/pjZsA1b4RPHbeWZQn66SWS8nZZWLQQ23oE3Eam7aroEFGEvwKAsJfZ9ytiEMycfzXWpca4FA9QIOehf7PocBQ=="
+ },
"node_modules/eastasianwidth": {
"version": "0.2.0",
"resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz",
@@ -29231,8 +29542,8 @@
},
"node_modules/expensify-common": {
"version": "1.0.0",
- "resolved": "git+ssh://git@github.com/Expensify/expensify-common.git#b60e464ca23e452eacffb93d471abed977b9abf0",
- "integrity": "sha512-SA+1PDrST90MoWKNuqyfw7vT1c3S14JrrHCuk5l5m77k2T1Khu1lHPAw7sCUt0Yeoceq7JHL7zC4ZPhqVzDXwQ==",
+ "resolved": "git+ssh://git@github.com/Expensify/expensify-common.git#4cc5f72b69bd77d2c8052a3c167d039e502a2796",
+ "integrity": "sha512-nNYAweSE5bwjKyFTi9tz+p1z+gxkytCnIa8M11vnseV60ZzJespcwB/2SbWkdaAL5wpvcgHLlFTTGbPUwIiTvw==",
"license": "MIT",
"dependencies": {
"classnames": "2.3.1",
@@ -29414,7 +29725,6 @@
},
"node_modules/extend-shallow": {
"version": "3.0.2",
- "devOptional": true,
"license": "MIT",
"dependencies": {
"assign-symbols": "^1.0.0",
@@ -30422,6 +30732,28 @@
"node": ">=6.9.0"
}
},
+ "node_modules/geojson-rbush": {
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/geojson-rbush/-/geojson-rbush-3.2.0.tgz",
+ "integrity": "sha512-oVltQTXolxvsz1sZnutlSuLDEcQAKYC/uXt9zDzJJ6bu0W+baTI8LZBaTup5afzibEH4N3jlq2p+a152wlBJ7w==",
+ "dependencies": {
+ "@turf/bbox": "*",
+ "@turf/helpers": "6.x",
+ "@turf/meta": "6.x",
+ "@types/geojson": "7946.0.8",
+ "rbush": "^3.0.1"
+ }
+ },
+ "node_modules/geojson-rbush/node_modules/@types/geojson": {
+ "version": "7946.0.8",
+ "resolved": "https://registry.npmjs.org/@types/geojson/-/geojson-7946.0.8.tgz",
+ "integrity": "sha512-1rkryxURpr6aWP7R786/UQOkJ3PcpQiWkAXBmdWc7ryFWqN6a4xfK7BtjXvFBKO9LjQ+MWQSWxYeZX1OApnArA=="
+ },
+ "node_modules/geojson-vt": {
+ "version": "3.2.1",
+ "resolved": "https://registry.npmjs.org/geojson-vt/-/geojson-vt-3.2.1.tgz",
+ "integrity": "sha512-EvGQQi/zPrDA6zr6BnJD/YhwAkBP8nnJ9emh3EnHQKVMfg/MRVtPbMYdgVy/IaEmn4UfagD2a6fafPDL5hbtwg=="
+ },
"node_modules/get-caller-file": {
"version": "2.0.5",
"license": "ISC",
@@ -30491,7 +30823,6 @@
},
"node_modules/get-value": {
"version": "2.0.6",
- "devOptional": true,
"license": "MIT",
"engines": {
"node": ">=0.10.0"
@@ -30510,6 +30841,11 @@
"integrity": "sha512-wIh+gKBI9Nshz2o46B0B3f5k/W+WI9ZAv6y5Dn5WJ5SK1t0TnDimB4WE5rmTD05ZAIn8HALCZVmCsvj0w0v0lw==",
"dev": true
},
+ "node_modules/gl-matrix": {
+ "version": "3.4.3",
+ "resolved": "https://registry.npmjs.org/gl-matrix/-/gl-matrix-3.4.3.tgz",
+ "integrity": "sha512-wcCp8vu8FT22BnvKVPjXa/ICBWRq/zjFfdofZy1WSpQZpphblv12/bOQLBC1rMM7SGOFS9ltVmKOHil5+Ml7gA=="
+ },
"node_modules/glob": {
"version": "7.1.6",
"license": "ISC",
@@ -30664,6 +31000,11 @@
"integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==",
"dev": true
},
+ "node_modules/grid-index": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/grid-index/-/grid-index-1.1.0.tgz",
+ "integrity": "sha512-HZRwumpOGUrHyxO5bqKZL0B0GlUpwtCAzZ42sgxUPniu33R1LSFH5yrIcBCHjkctCAh3mtWKcKd9J4vDDdeVHA=="
+ },
"node_modules/gzip-size": {
"version": "6.0.0",
"dev": true,
@@ -32370,7 +32711,6 @@
},
"node_modules/is-extendable": {
"version": "1.0.1",
- "devOptional": true,
"license": "MIT",
"dependencies": {
"is-plain-object": "^2.0.4"
@@ -32381,7 +32721,6 @@
},
"node_modules/is-extendable/node_modules/is-plain-object": {
"version": "2.0.4",
- "devOptional": true,
"license": "MIT",
"dependencies": {
"isobject": "^3.0.1"
@@ -35655,6 +35994,11 @@
"dev": true,
"license": "MIT"
},
+ "node_modules/json-stringify-pretty-compact": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/json-stringify-pretty-compact/-/json-stringify-pretty-compact-3.0.0.tgz",
+ "integrity": "sha512-Rc2suX5meI0S3bfdZuA7JMFBGkJ875ApfVyq2WHELjBiiG22My/l7/8zPpH/CfFVQHuVLd8NLR0nv6vi0BYYKA=="
+ },
"node_modules/json-stringify-safe": {
"version": "5.0.1",
"dev": true,
@@ -35708,6 +36052,11 @@
"node": ">=8"
}
},
+ "node_modules/kdbush": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/kdbush/-/kdbush-4.0.2.tgz",
+ "integrity": "sha512-WbCVYJ27Sz8zi9Q7Q0xHC+05iwkm3Znipc2XTlrnJbsHMYktW4hPhXUE8Ys1engBrvffoSCqbil1JQAa7clRpA=="
+ },
"node_modules/kebab-case": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/kebab-case/-/kebab-case-1.0.2.tgz",
@@ -36617,6 +36966,35 @@
"node": ">=0.10.0"
}
},
+ "node_modules/mapbox-gl": {
+ "version": "2.15.0",
+ "resolved": "https://registry.npmjs.org/mapbox-gl/-/mapbox-gl-2.15.0.tgz",
+ "integrity": "sha512-fjv+aYrd5TIHiL7wRa+W7KjtUqKWziJMZUkK5hm8TvJ3OLeNPx4NmW/DgfYhd/jHej8wWL+QJBDbdMMAKvNC0A==",
+ "dependencies": {
+ "@mapbox/geojson-rewind": "^0.5.2",
+ "@mapbox/jsonlint-lines-primitives": "^2.0.2",
+ "@mapbox/mapbox-gl-supported": "^2.0.1",
+ "@mapbox/point-geometry": "^0.1.0",
+ "@mapbox/tiny-sdf": "^2.0.6",
+ "@mapbox/unitbezier": "^0.0.1",
+ "@mapbox/vector-tile": "^1.3.1",
+ "@mapbox/whoots-js": "^3.1.0",
+ "csscolorparser": "~1.0.3",
+ "earcut": "^2.2.4",
+ "geojson-vt": "^3.2.1",
+ "gl-matrix": "^3.4.3",
+ "grid-index": "^1.1.0",
+ "kdbush": "^4.0.1",
+ "murmurhash-js": "^1.0.0",
+ "pbf": "^3.2.1",
+ "potpack": "^2.0.0",
+ "quickselect": "^2.0.0",
+ "rw": "^1.3.3",
+ "supercluster": "^8.0.0",
+ "tinyqueue": "^2.0.3",
+ "vt-pbf": "^3.1.3"
+ }
+ },
"node_modules/markdown-builder": {
"version": "0.9.0",
"resolved": "https://registry.npmjs.org/markdown-builder/-/markdown-builder-0.9.0.tgz",
@@ -39484,8 +39862,12 @@
}
},
"node_modules/minimist": {
- "version": "1.2.6",
- "license": "MIT"
+ "version": "1.2.8",
+ "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz",
+ "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==",
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
},
"node_modules/minipass": {
"version": "3.3.4",
@@ -39762,6 +40144,11 @@
"multicast-dns": "cli.js"
}
},
+ "node_modules/murmurhash-js": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/murmurhash-js/-/murmurhash-js-1.0.0.tgz",
+ "integrity": "sha512-TvmkNhkv8yct0SVBSy+o8wYzXjE4Zz3PCesbfs8HiCXXdcTuocApFv11UWlNFWKYsP2okqrhb7JNlSm9InBhIw=="
+ },
"node_modules/mute-stream": {
"version": "0.0.8",
"dev": true,
@@ -41221,6 +41608,18 @@
"through": "~2.3"
}
},
+ "node_modules/pbf": {
+ "version": "3.2.1",
+ "resolved": "https://registry.npmjs.org/pbf/-/pbf-3.2.1.tgz",
+ "integrity": "sha512-ClrV7pNOn7rtmoQVF4TS1vyU0WhYRnP92fzbfF75jAIwpnzdJXf8iTd4CMEqO4yUenH6NDqLiwjqlh6QgZzgLQ==",
+ "dependencies": {
+ "ieee754": "^1.1.12",
+ "resolve-protobuf-schema": "^2.1.0"
+ },
+ "bin": {
+ "pbf": "bin/pbf"
+ }
+ },
"node_modules/pbkdf2": {
"version": "3.1.2",
"license": "MIT",
@@ -41612,6 +42011,11 @@
"version": "4.2.0",
"license": "MIT"
},
+ "node_modules/potpack": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/potpack/-/potpack-2.0.0.tgz",
+ "integrity": "sha512-Q+/tYsFU9r7xoOJ+y/ZTtdVQwTWfzjbiXBDMM/JKUux3+QPP02iUuIoeBQ+Ot6oEDlC+/PGjB/5A3K7KKb7hcw=="
+ },
"node_modules/preact": {
"version": "10.11.3",
"resolved": "https://registry.npmjs.org/preact/-/preact-10.11.3.tgz",
@@ -41818,6 +42222,11 @@
"url": "https://github.com/sponsors/wooorm"
}
},
+ "node_modules/protocol-buffers-schema": {
+ "version": "3.6.0",
+ "resolved": "https://registry.npmjs.org/protocol-buffers-schema/-/protocol-buffers-schema-3.6.0.tgz",
+ "integrity": "sha512-TdDRD+/QNdrCGCE7v8340QyuXd4kIWIgapsE2+n/SaGiSSbomYl4TjHlvIoCWRpE7wFt02EpB35VVA2ImcBVqw=="
+ },
"node_modules/proxy-addr": {
"version": "2.0.7",
"dev": true,
@@ -42149,6 +42558,11 @@
"url": "https://github.com/sponsors/sindresorhus"
}
},
+ "node_modules/quickselect": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/quickselect/-/quickselect-2.0.0.tgz",
+ "integrity": "sha512-RKJ22hX8mHe3Y6wH/N3wCM6BWtjaxIyyUIkpHOvfFnxdI4yD4tBXEBKSbriGujF6jnSVkJrffuo6vxACiSSxIw=="
+ },
"node_modules/ramda": {
"version": "0.29.0",
"resolved": "https://registry.npmjs.org/ramda/-/ramda-0.29.0.tgz",
@@ -42233,6 +42647,14 @@
"webpack": "^4.0.0 || ^5.0.0"
}
},
+ "node_modules/rbush": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/rbush/-/rbush-3.0.1.tgz",
+ "integrity": "sha512-XRaVO0YecOpEuIvbhbpTrZgoiI6xBlz6hnlr6EHhd+0x9ase6EmeN+hdwwUaJvLcsFFQ8iWVF1GAK1yB0BWi0w==",
+ "dependencies": {
+ "quickselect": "^2.0.0"
+ }
+ },
"node_modules/react": {
"version": "18.2.0",
"license": "MIT",
@@ -42369,6 +42791,29 @@
"version": "16.13.1",
"license": "MIT"
},
+ "node_modules/react-map-gl": {
+ "version": "7.1.3",
+ "resolved": "https://registry.npmjs.org/react-map-gl/-/react-map-gl-7.1.3.tgz",
+ "integrity": "sha512-uMiwk3x/XxYqSxWWBPgqitvLh8y+O9AabEIBeg3tLjoCVBEyFiZko7tAcRqA7WLT079KX/lyDL1N2zALqJb/MQ==",
+ "dependencies": {
+ "@maplibre/maplibre-gl-style-spec": "^19.2.1",
+ "@types/mapbox-gl": ">=1.0.0"
+ },
+ "peerDependencies": {
+ "mapbox-gl": ">=1.13.0",
+ "maplibre-gl": ">=1.13.0",
+ "react": ">=16.3.0",
+ "react-dom": ">=16.3.0"
+ },
+ "peerDependenciesMeta": {
+ "mapbox-gl": {
+ "optional": true
+ },
+ "maplibre-gl": {
+ "optional": true
+ }
+ }
+ },
"node_modules/react-native": {
"version": "0.72.3",
"resolved": "https://registry.npmjs.org/react-native/-/react-native-0.72.3.tgz",
@@ -43011,6 +43456,19 @@
"node": ">=8"
}
},
+ "node_modules/react-native-x-maps": {
+ "version": "1.0.6",
+ "resolved": "https://registry.npmjs.org/react-native-x-maps/-/react-native-x-maps-1.0.6.tgz",
+ "integrity": "sha512-aGqhdjBPDI6ZXhccjnetjA88eYFB5l8wtpY1ooGwEbiAUOaCqEWqeUHMI79q3VByBOgfP51gJOtpZbk9JOIKcw==",
+ "peerDependencies": {
+ "@math.gl/web-mercator": "^3.6.3",
+ "@rnmapbox/maps": "^10.0.11",
+ "mapbox-gl": "^2.15.0",
+ "react": "^18.2.0",
+ "react-map-gl": "^7.1.3",
+ "react-native": "^0.72.3"
+ }
+ },
"node_modules/react-native/node_modules/ansi-regex": {
"version": "5.0.1",
"resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz",
@@ -44797,6 +45255,14 @@
"version": "2.2.0",
"license": "MIT"
},
+ "node_modules/resolve-protobuf-schema": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/resolve-protobuf-schema/-/resolve-protobuf-schema-2.1.0.tgz",
+ "integrity": "sha512-kI5ffTiZWmJaS/huM8wZfEMer1eRd7oJQhDuxeCLe3t7N7mX3z94CN0xPxBQxFYQTSNz9T0i+v6inKqSdK8xrQ==",
+ "dependencies": {
+ "protocol-buffers-schema": "^3.3.1"
+ }
+ },
"node_modules/resolve-url": {
"version": "0.2.1",
"devOptional": true,
@@ -44963,6 +45429,11 @@
"dev": true,
"license": "ISC"
},
+ "node_modules/rw": {
+ "version": "1.3.3",
+ "resolved": "https://registry.npmjs.org/rw/-/rw-1.3.3.tgz",
+ "integrity": "sha512-PdhdWy89SiZogBLaw42zdeqtRJ//zFd2PgQavcICDUgJT5oW10QCRKbJ6bg4r0/UY2M6BWd5tkxuGFRvCkgfHQ=="
+ },
"node_modules/rxjs": {
"version": "6.6.7",
"dev": true,
@@ -45332,7 +45803,6 @@
},
"node_modules/set-value": {
"version": "2.0.1",
- "devOptional": true,
"license": "MIT",
"dependencies": {
"extend-shallow": "^2.0.1",
@@ -45346,7 +45816,6 @@
},
"node_modules/set-value/node_modules/extend-shallow": {
"version": "2.0.1",
- "devOptional": true,
"license": "MIT",
"dependencies": {
"is-extendable": "^0.1.0"
@@ -45357,7 +45826,6 @@
},
"node_modules/set-value/node_modules/is-extendable": {
"version": "0.1.1",
- "devOptional": true,
"license": "MIT",
"engines": {
"node": ">=0.10.0"
@@ -45365,7 +45833,6 @@
},
"node_modules/set-value/node_modules/is-plain-object": {
"version": "2.0.4",
- "devOptional": true,
"license": "MIT",
"dependencies": {
"isobject": "^3.0.1"
@@ -45941,6 +46408,46 @@
"node": ">= 10"
}
},
+ "node_modules/sort-asc": {
+ "version": "0.2.0",
+ "resolved": "https://registry.npmjs.org/sort-asc/-/sort-asc-0.2.0.tgz",
+ "integrity": "sha512-umMGhjPeHAI6YjABoSTrFp2zaBtXBej1a0yKkuMUyjjqu6FJsTF+JYwCswWDg+zJfk/5npWUUbd33HH/WLzpaA==",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/sort-desc": {
+ "version": "0.2.0",
+ "resolved": "https://registry.npmjs.org/sort-desc/-/sort-desc-0.2.0.tgz",
+ "integrity": "sha512-NqZqyvL4VPW+RAxxXnB8gvE1kyikh8+pR+T+CXLksVRN9eiQqkQlPwqWYU0mF9Jm7UnctShlxLyAt1CaBOTL1w==",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/sort-object": {
+ "version": "3.0.3",
+ "resolved": "https://registry.npmjs.org/sort-object/-/sort-object-3.0.3.tgz",
+ "integrity": "sha512-nK7WOY8jik6zaG9CRwZTaD5O7ETWDLZYMM12pqY8htll+7dYeqGfEUPcUBHOpSJg2vJOrvFIY2Dl5cX2ih1hAQ==",
+ "dependencies": {
+ "bytewise": "^1.1.0",
+ "get-value": "^2.0.2",
+ "is-extendable": "^0.1.1",
+ "sort-asc": "^0.2.0",
+ "sort-desc": "^0.2.0",
+ "union-value": "^1.0.1"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/sort-object/node_modules/is-extendable": {
+ "version": "0.1.1",
+ "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz",
+ "integrity": "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
"node_modules/source-list-map": {
"version": "2.0.1",
"license": "MIT"
@@ -46084,7 +46591,6 @@
},
"node_modules/split-string": {
"version": "3.1.0",
- "devOptional": true,
"license": "MIT",
"dependencies": {
"extend-shallow": "^3.0.0"
@@ -46642,6 +47148,14 @@
"node": ">= 8.0"
}
},
+ "node_modules/supercluster": {
+ "version": "8.0.1",
+ "resolved": "https://registry.npmjs.org/supercluster/-/supercluster-8.0.1.tgz",
+ "integrity": "sha512-IiOea5kJ9iqzD2t7QJq/cREyLHTtSmUT6gQsweojg9WH2sYJqZK9SswTu6jrscO6D1G5v5vYZ9ru/eq85lXeZQ==",
+ "dependencies": {
+ "kdbush": "^4.0.2"
+ }
+ },
"node_modules/superstruct": {
"version": "0.6.2",
"license": "MIT",
@@ -47240,6 +47754,11 @@
"version": "1.0.3",
"license": "MIT"
},
+ "node_modules/tinyqueue": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/tinyqueue/-/tinyqueue-2.0.3.tgz",
+ "integrity": "sha512-ppJZNDuKGgxzkHihX8v9v9G5f+18gzaTfrukGrq6ueg0lmH4nqVnA2IPG0AEH3jKEk2GRJCUhDoqpoiw3PHLBA=="
+ },
"node_modules/tmp": {
"version": "0.2.1",
"resolved": "https://registry.npmjs.org/tmp/-/tmp-0.2.1.tgz",
@@ -47616,6 +48135,19 @@
"node": ">=4.2.0"
}
},
+ "node_modules/typewise": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/typewise/-/typewise-1.0.3.tgz",
+ "integrity": "sha512-aXofE06xGhaQSPzt8hlTY+/YWQhm9P0jYUp1f2XtmW/3Bk0qzXcyFWAtPoo2uTGQj1ZwbDuSyuxicq+aDo8lCQ==",
+ "dependencies": {
+ "typewise-core": "^1.2.0"
+ }
+ },
+ "node_modules/typewise-core": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/typewise-core/-/typewise-core-1.2.0.tgz",
+ "integrity": "sha512-2SCC/WLzj2SbUwzFOzqMCkz5amXLlxtJqDKTICqg30x+2DZxcfZN2MvQZmGfXWKNWaKK9pBPsvkcwv8bF/gxKg=="
+ },
"node_modules/ua-parser-js": {
"version": "0.7.31",
"funding": [
@@ -47758,7 +48290,6 @@
},
"node_modules/union-value": {
"version": "1.0.1",
- "devOptional": true,
"license": "MIT",
"dependencies": {
"arr-union": "^3.1.0",
@@ -47772,7 +48303,6 @@
},
"node_modules/union-value/node_modules/is-extendable": {
"version": "0.1.1",
- "devOptional": true,
"license": "MIT",
"engines": {
"node": ">=0.10.0"
@@ -48405,6 +48935,16 @@
"version": "1.1.2",
"license": "MIT"
},
+ "node_modules/vt-pbf": {
+ "version": "3.1.3",
+ "resolved": "https://registry.npmjs.org/vt-pbf/-/vt-pbf-3.1.3.tgz",
+ "integrity": "sha512-2LzDFzt0mZKZ9IpVF2r69G9bXaP2Q2sArJCmcCgvfTdCCZzSyz4aCLoQyUilu37Ll56tCblIZrXFIjNUpGIlmA==",
+ "dependencies": {
+ "@mapbox/point-geometry": "0.1.0",
+ "@mapbox/vector-tile": "^1.3.1",
+ "pbf": "^3.2.1"
+ }
+ },
"node_modules/w3c-hr-time": {
"version": "1.0.2",
"dev": true,
@@ -53566,6 +54106,25 @@
"tmp-promise": "^3.0.2"
}
},
+ "@mapbox/geojson-rewind": {
+ "version": "0.5.2",
+ "resolved": "https://registry.npmjs.org/@mapbox/geojson-rewind/-/geojson-rewind-0.5.2.tgz",
+ "integrity": "sha512-tJaT+RbYGJYStt7wI3cq4Nl4SXxG8W7JDG5DMJu97V25RnbNg3QtQtf+KD+VLjNpWKYsRvXDNmNrBgEETr1ifA==",
+ "requires": {
+ "get-stream": "^6.0.1",
+ "minimist": "^1.2.6"
+ }
+ },
+ "@mapbox/jsonlint-lines-primitives": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/@mapbox/jsonlint-lines-primitives/-/jsonlint-lines-primitives-2.0.2.tgz",
+ "integrity": "sha512-rY0o9A5ECsTQRVhv7tL/OyDpGAoUB4tTvLiW1DSzQGq4bvTPhNw1VpSNjDJc5GFZ2XuyOtSWSVN05qOtcD71qQ=="
+ },
+ "@mapbox/mapbox-gl-supported": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/@mapbox/mapbox-gl-supported/-/mapbox-gl-supported-2.0.1.tgz",
+ "integrity": "sha512-HP6XvfNIzfoMVfyGjBckjiAOQK9WfX0ywdLubuPMPv+Vqf5fj0uCbgBQYpiqcWZT6cbyyRnTSXDheT1ugvF6UQ=="
+ },
"@mapbox/node-pre-gyp": {
"version": "1.0.10",
"resolved": "https://registry.npmjs.org/@mapbox/node-pre-gyp/-/node-pre-gyp-1.0.10.tgz",
@@ -53619,6 +54178,57 @@
}
}
},
+ "@mapbox/point-geometry": {
+ "version": "0.1.0",
+ "resolved": "https://registry.npmjs.org/@mapbox/point-geometry/-/point-geometry-0.1.0.tgz",
+ "integrity": "sha512-6j56HdLTwWGO0fJPlrZtdU/B13q8Uwmo18Ck2GnGgN9PCFyKTZ3UbXeEdRFh18i9XQ92eH2VdtpJHpBD3aripQ=="
+ },
+ "@mapbox/tiny-sdf": {
+ "version": "2.0.6",
+ "resolved": "https://registry.npmjs.org/@mapbox/tiny-sdf/-/tiny-sdf-2.0.6.tgz",
+ "integrity": "sha512-qMqa27TLw+ZQz5Jk+RcwZGH7BQf5G/TrutJhspsca/3SHwmgKQ1iq+d3Jxz5oysPVYTGP6aXxCo5Lk9Er6YBAA=="
+ },
+ "@mapbox/unitbezier": {
+ "version": "0.0.1",
+ "resolved": "https://registry.npmjs.org/@mapbox/unitbezier/-/unitbezier-0.0.1.tgz",
+ "integrity": "sha512-nMkuDXFv60aBr9soUG5q+GvZYL+2KZHVvsqFCzqnkGEf46U2fvmytHaEVc1/YZbiLn8X+eR3QzX1+dwDO1lxlw=="
+ },
+ "@mapbox/vector-tile": {
+ "version": "1.3.1",
+ "resolved": "https://registry.npmjs.org/@mapbox/vector-tile/-/vector-tile-1.3.1.tgz",
+ "integrity": "sha512-MCEddb8u44/xfQ3oD+Srl/tNcQoqTw3goGk2oLsrFxOTc3dUp+kAnby3PvAeeBYSMSjSPD1nd1AJA6W49WnoUw==",
+ "requires": {
+ "@mapbox/point-geometry": "~0.1.0"
+ }
+ },
+ "@mapbox/whoots-js": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/@mapbox/whoots-js/-/whoots-js-3.1.0.tgz",
+ "integrity": "sha512-Es6WcD0nO5l+2BOQS4uLfNPYQaNDfbot3X1XUoloz+x0mPDS3eeORZJl06HXjwBG1fOGwCRnzK88LMdxKRrd6Q=="
+ },
+ "@maplibre/maplibre-gl-style-spec": {
+ "version": "19.3.0",
+ "resolved": "https://registry.npmjs.org/@maplibre/maplibre-gl-style-spec/-/maplibre-gl-style-spec-19.3.0.tgz",
+ "integrity": "sha512-ZbhX9CTV+Z7vHwkRIasDOwTSzr76e8Q6a55RMsAibjyX6+P0ZNL1qAKNzOjjBDP3+aEfNMl7hHo5knuY6pTAUQ==",
+ "requires": {
+ "@mapbox/jsonlint-lines-primitives": "~2.0.2",
+ "@mapbox/unitbezier": "^0.0.1",
+ "json-stringify-pretty-compact": "^3.0.0",
+ "minimist": "^1.2.8",
+ "rw": "^1.3.3",
+ "sort-object": "^3.0.3"
+ }
+ },
+ "@math.gl/web-mercator": {
+ "version": "3.6.3",
+ "resolved": "https://registry.npmjs.org/@math.gl/web-mercator/-/web-mercator-3.6.3.tgz",
+ "integrity": "sha512-UVrkSOs02YLehKaehrxhAejYMurehIHPfFQvPFZmdJHglHOU4V2cCUApTVEwOksvCp161ypEqVp+9H6mGhTTcw==",
+ "peer": true,
+ "requires": {
+ "@babel/runtime": "^7.12.0",
+ "gl-matrix": "^3.4.0"
+ }
+ },
"@mdx-js/mdx": {
"version": "1.6.22",
"dev": true,
@@ -56403,6 +57013,20 @@
}
}
},
+ "@rnmapbox/maps": {
+ "version": "10.0.11",
+ "resolved": "https://registry.npmjs.org/@rnmapbox/maps/-/maps-10.0.11.tgz",
+ "integrity": "sha512-CqaAOEV2nYjZzAwSd7RceGIVVIyDO0G/Vqdvgen20LDuejX9N9Yqw7BrMH8MgIH3FNFxtjwyXiw6aVtybpke0w==",
+ "requires": {
+ "@turf/along": "6.5.0",
+ "@turf/distance": "6.5.0",
+ "@turf/helpers": "6.5.0",
+ "@turf/length": "6.5.0",
+ "@turf/nearest-point-on-line": "6.5.0",
+ "@types/geojson": "^7946.0.7",
+ "debounce": "^1.2.0"
+ }
+ },
"@sentry/browser": {
"version": "7.11.1",
"requires": {
@@ -63499,6 +64123,121 @@
"version": "0.2.0",
"dev": true
},
+ "@turf/along": {
+ "version": "6.5.0",
+ "resolved": "https://registry.npmjs.org/@turf/along/-/along-6.5.0.tgz",
+ "integrity": "sha512-LLyWQ0AARqJCmMcIEAXF4GEu8usmd4Kbz3qk1Oy5HoRNpZX47+i5exQtmIWKdqJ1MMhW26fCTXgpsEs5zgJ5gw==",
+ "requires": {
+ "@turf/bearing": "^6.5.0",
+ "@turf/destination": "^6.5.0",
+ "@turf/distance": "^6.5.0",
+ "@turf/helpers": "^6.5.0",
+ "@turf/invariant": "^6.5.0"
+ }
+ },
+ "@turf/bbox": {
+ "version": "6.5.0",
+ "resolved": "https://registry.npmjs.org/@turf/bbox/-/bbox-6.5.0.tgz",
+ "integrity": "sha512-RBbLaao5hXTYyyg577iuMtDB8ehxMlUqHEJiMs8jT1GHkFhr6sYre3lmLsPeYEi/ZKj5TP5tt7fkzNdJ4GIVyw==",
+ "requires": {
+ "@turf/helpers": "^6.5.0",
+ "@turf/meta": "^6.5.0"
+ }
+ },
+ "@turf/bearing": {
+ "version": "6.5.0",
+ "resolved": "https://registry.npmjs.org/@turf/bearing/-/bearing-6.5.0.tgz",
+ "integrity": "sha512-dxINYhIEMzgDOztyMZc20I7ssYVNEpSv04VbMo5YPQsqa80KO3TFvbuCahMsCAW5z8Tncc8dwBlEFrmRjJG33A==",
+ "requires": {
+ "@turf/helpers": "^6.5.0",
+ "@turf/invariant": "^6.5.0"
+ }
+ },
+ "@turf/destination": {
+ "version": "6.5.0",
+ "resolved": "https://registry.npmjs.org/@turf/destination/-/destination-6.5.0.tgz",
+ "integrity": "sha512-4cnWQlNC8d1tItOz9B4pmJdWpXqS0vEvv65bI/Pj/genJnsL7evI0/Xw42RvEGROS481MPiU80xzvwxEvhQiMQ==",
+ "requires": {
+ "@turf/helpers": "^6.5.0",
+ "@turf/invariant": "^6.5.0"
+ }
+ },
+ "@turf/distance": {
+ "version": "6.5.0",
+ "resolved": "https://registry.npmjs.org/@turf/distance/-/distance-6.5.0.tgz",
+ "integrity": "sha512-xzykSLfoURec5qvQJcfifw/1mJa+5UwByZZ5TZ8iaqjGYN0vomhV9aiSLeYdUGtYRESZ+DYC/OzY+4RclZYgMg==",
+ "requires": {
+ "@turf/helpers": "^6.5.0",
+ "@turf/invariant": "^6.5.0"
+ }
+ },
+ "@turf/helpers": {
+ "version": "6.5.0",
+ "resolved": "https://registry.npmjs.org/@turf/helpers/-/helpers-6.5.0.tgz",
+ "integrity": "sha512-VbI1dV5bLFzohYYdgqwikdMVpe7pJ9X3E+dlr425wa2/sMJqYDhTO++ec38/pcPvPE6oD9WEEeU3Xu3gza+VPw=="
+ },
+ "@turf/invariant": {
+ "version": "6.5.0",
+ "resolved": "https://registry.npmjs.org/@turf/invariant/-/invariant-6.5.0.tgz",
+ "integrity": "sha512-Wv8PRNCtPD31UVbdJE/KVAWKe7l6US+lJItRR/HOEW3eh+U/JwRCSUl/KZ7bmjM/C+zLNoreM2TU6OoLACs4eg==",
+ "requires": {
+ "@turf/helpers": "^6.5.0"
+ }
+ },
+ "@turf/length": {
+ "version": "6.5.0",
+ "resolved": "https://registry.npmjs.org/@turf/length/-/length-6.5.0.tgz",
+ "integrity": "sha512-5pL5/pnw52fck3oRsHDcSGrj9HibvtlrZ0QNy2OcW8qBFDNgZ4jtl6U7eATVoyWPKBHszW3dWETW+iLV7UARig==",
+ "requires": {
+ "@turf/distance": "^6.5.0",
+ "@turf/helpers": "^6.5.0",
+ "@turf/meta": "^6.5.0"
+ }
+ },
+ "@turf/line-intersect": {
+ "version": "6.5.0",
+ "resolved": "https://registry.npmjs.org/@turf/line-intersect/-/line-intersect-6.5.0.tgz",
+ "integrity": "sha512-CS6R1tZvVQD390G9Ea4pmpM6mJGPWoL82jD46y0q1KSor9s6HupMIo1kY4Ny+AEYQl9jd21V3Scz20eldpbTVA==",
+ "requires": {
+ "@turf/helpers": "^6.5.0",
+ "@turf/invariant": "^6.5.0",
+ "@turf/line-segment": "^6.5.0",
+ "@turf/meta": "^6.5.0",
+ "geojson-rbush": "3.x"
+ }
+ },
+ "@turf/line-segment": {
+ "version": "6.5.0",
+ "resolved": "https://registry.npmjs.org/@turf/line-segment/-/line-segment-6.5.0.tgz",
+ "integrity": "sha512-jI625Ho4jSuJESNq66Mmi290ZJ5pPZiQZruPVpmHkUw257Pew0alMmb6YrqYNnLUuiVVONxAAKXUVeeUGtycfw==",
+ "requires": {
+ "@turf/helpers": "^6.5.0",
+ "@turf/invariant": "^6.5.0",
+ "@turf/meta": "^6.5.0"
+ }
+ },
+ "@turf/meta": {
+ "version": "6.5.0",
+ "resolved": "https://registry.npmjs.org/@turf/meta/-/meta-6.5.0.tgz",
+ "integrity": "sha512-RrArvtsV0vdsCBegoBtOalgdSOfkBrTJ07VkpiCnq/491W67hnMWmDu7e6Ztw0C3WldRYTXkg3SumfdzZxLBHA==",
+ "requires": {
+ "@turf/helpers": "^6.5.0"
+ }
+ },
+ "@turf/nearest-point-on-line": {
+ "version": "6.5.0",
+ "resolved": "https://registry.npmjs.org/@turf/nearest-point-on-line/-/nearest-point-on-line-6.5.0.tgz",
+ "integrity": "sha512-WthrvddddvmymnC+Vf7BrkHGbDOUu6Z3/6bFYUGv1kxw8tiZ6n83/VG6kHz4poHOfS0RaNflzXSkmCi64fLBlg==",
+ "requires": {
+ "@turf/bearing": "^6.5.0",
+ "@turf/destination": "^6.5.0",
+ "@turf/distance": "^6.5.0",
+ "@turf/helpers": "^6.5.0",
+ "@turf/invariant": "^6.5.0",
+ "@turf/line-intersect": "^6.5.0",
+ "@turf/meta": "^6.5.0"
+ }
+ },
"@types/acorn": {
"version": "4.0.6",
"resolved": "https://registry.npmjs.org/@types/acorn/-/acorn-4.0.6.tgz",
@@ -63671,6 +64410,11 @@
"@types/node": "*"
}
},
+ "@types/geojson": {
+ "version": "7946.0.10",
+ "resolved": "https://registry.npmjs.org/@types/geojson/-/geojson-7946.0.10.tgz",
+ "integrity": "sha512-Nmh0K3iWQJzniTuPRcJn5hxXkfB1T1pgB89SBig5PlJQU5yocazeu4jATJlaA0GYFKWMqDdvYemoSnF2pXgLVA=="
+ },
"@types/glob": {
"version": "7.2.0",
"dev": true,
@@ -63802,6 +64546,14 @@
"@types/long": {
"version": "4.0.2"
},
+ "@types/mapbox-gl": {
+ "version": "2.7.13",
+ "resolved": "https://registry.npmjs.org/@types/mapbox-gl/-/mapbox-gl-2.7.13.tgz",
+ "integrity": "sha512-qNffhTdYkeFl8QG9Q1zPPJmcs8PvHgmLa1PcwP1rxvcfMsIgcFr/FnrCttG0ZnH7Kzdd7xfECSRNTWSr4jC3PQ==",
+ "requires": {
+ "@types/geojson": "*"
+ }
+ },
"@types/mdast": {
"version": "3.0.10",
"dev": true,
@@ -65146,8 +65898,7 @@
"devOptional": true
},
"arr-union": {
- "version": "3.1.0",
- "devOptional": true
+ "version": "3.1.0"
},
"array-find-index": {
"version": "1.0.2",
@@ -65273,8 +66024,7 @@
"optional": true
},
"assign-symbols": {
- "version": "1.0.0",
- "devOptional": true
+ "version": "1.0.0"
},
"ast-types": {
"version": "0.14.2",
@@ -66446,6 +67196,23 @@
"bytes": {
"version": "3.0.0"
},
+ "bytewise": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/bytewise/-/bytewise-1.1.0.tgz",
+ "integrity": "sha512-rHuuseJ9iQ0na6UDhnrRVDh8YnWVlU6xM3VH6q/+yHDeUH2zIhUzP+2/h3LIrhLDBtTqzWpE3p3tP/boefskKQ==",
+ "requires": {
+ "bytewise-core": "^1.2.2",
+ "typewise": "^1.0.3"
+ }
+ },
+ "bytewise-core": {
+ "version": "1.2.3",
+ "resolved": "https://registry.npmjs.org/bytewise-core/-/bytewise-core-1.2.3.tgz",
+ "integrity": "sha512-nZD//kc78OOxeYtRlVk8/zXqTB4gf/nlguL1ggWA8FuchMyOxcyHR4QPQZMUmA7czC+YnaBrPUCubqAWe50DaA==",
+ "requires": {
+ "typewise-core": "^1.2"
+ }
+ },
"c8": {
"version": "7.12.0",
"dev": true,
@@ -67806,6 +68573,11 @@
"css-what": {
"version": "6.1.0"
},
+ "csscolorparser": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/csscolorparser/-/csscolorparser-1.0.3.tgz",
+ "integrity": "sha512-umPSgYwZkdFoUrH5hIq5kf0wPSXiro51nPw0j2K/c83KflkPSTBGMz6NJvMB+07VlL0y7VPo6QJcDjcgKTTm3w=="
+ },
"cssesc": {
"version": "3.0.0",
"dev": true
@@ -67881,6 +68653,11 @@
"resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.9.tgz",
"integrity": "sha512-QvzAURSbQ0pKdIye2txOzNaHmxtUBXerpY0FJsFXUMKbIZeFm5ht1LS/jFsrncjnmtv8HsG0W2g6c0zUjZWmpA=="
},
+ "debounce": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/debounce/-/debounce-1.2.1.tgz",
+ "integrity": "sha512-XRRe6Glud4rd/ZGQfiV1ruXSfbvfJedlV9Y6zOlP+2K04vBYiJEte6stfFkCP03aMnY5tsipamumUjL14fofug=="
+ },
"debug": {
"version": "4.3.4",
"requires": {
@@ -68390,6 +69167,11 @@
"stream-shift": "^1.0.0"
}
},
+ "earcut": {
+ "version": "2.2.4",
+ "resolved": "https://registry.npmjs.org/earcut/-/earcut-2.2.4.tgz",
+ "integrity": "sha512-/pjZsA1b4RPHbeWZQn66SWS8nZZWLQQ23oE3Eam7aroEFGEvwKAsJfZ9ytiEMycfzXWpca4FA9QIOehf7PocBQ=="
+ },
"eastasianwidth": {
"version": "0.2.0",
"resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz",
@@ -70048,9 +70830,9 @@
}
},
"expensify-common": {
- "version": "git+ssh://git@github.com/Expensify/expensify-common.git#b60e464ca23e452eacffb93d471abed977b9abf0",
- "integrity": "sha512-SA+1PDrST90MoWKNuqyfw7vT1c3S14JrrHCuk5l5m77k2T1Khu1lHPAw7sCUt0Yeoceq7JHL7zC4ZPhqVzDXwQ==",
- "from": "expensify-common@git+ssh://git@github.com/Expensify/expensify-common.git#b60e464ca23e452eacffb93d471abed977b9abf0",
+ "version": "git+ssh://git@github.com/Expensify/expensify-common.git#4cc5f72b69bd77d2c8052a3c167d039e502a2796",
+ "integrity": "sha512-nNYAweSE5bwjKyFTi9tz+p1z+gxkytCnIa8M11vnseV60ZzJespcwB/2SbWkdaAL5wpvcgHLlFTTGbPUwIiTvw==",
+ "from": "expensify-common@git+ssh://git@github.com/Expensify/expensify-common.git#4cc5f72b69bd77d2c8052a3c167d039e502a2796",
"requires": {
"classnames": "2.3.1",
"clipboard": "2.0.4",
@@ -70181,7 +70963,6 @@
},
"extend-shallow": {
"version": "3.0.2",
- "devOptional": true,
"requires": {
"assign-symbols": "^1.0.0",
"is-extendable": "^1.0.1"
@@ -70847,6 +71628,30 @@
"gensync": {
"version": "1.0.0-beta.2"
},
+ "geojson-rbush": {
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/geojson-rbush/-/geojson-rbush-3.2.0.tgz",
+ "integrity": "sha512-oVltQTXolxvsz1sZnutlSuLDEcQAKYC/uXt9zDzJJ6bu0W+baTI8LZBaTup5afzibEH4N3jlq2p+a152wlBJ7w==",
+ "requires": {
+ "@turf/bbox": "*",
+ "@turf/helpers": "6.x",
+ "@turf/meta": "6.x",
+ "@types/geojson": "7946.0.8",
+ "rbush": "^3.0.1"
+ },
+ "dependencies": {
+ "@types/geojson": {
+ "version": "7946.0.8",
+ "resolved": "https://registry.npmjs.org/@types/geojson/-/geojson-7946.0.8.tgz",
+ "integrity": "sha512-1rkryxURpr6aWP7R786/UQOkJ3PcpQiWkAXBmdWc7ryFWqN6a4xfK7BtjXvFBKO9LjQ+MWQSWxYeZX1OApnArA=="
+ }
+ }
+ },
+ "geojson-vt": {
+ "version": "3.2.1",
+ "resolved": "https://registry.npmjs.org/geojson-vt/-/geojson-vt-3.2.1.tgz",
+ "integrity": "sha512-EvGQQi/zPrDA6zr6BnJD/YhwAkBP8nnJ9emh3EnHQKVMfg/MRVtPbMYdgVy/IaEmn4UfagD2a6fafPDL5hbtwg=="
+ },
"get-caller-file": {
"version": "2.0.5"
},
@@ -70882,8 +71687,7 @@
}
},
"get-value": {
- "version": "2.0.6",
- "devOptional": true
+ "version": "2.0.6"
},
"getenv": {
"version": "1.0.0"
@@ -70894,6 +71698,11 @@
"integrity": "sha512-wIh+gKBI9Nshz2o46B0B3f5k/W+WI9ZAv6y5Dn5WJ5SK1t0TnDimB4WE5rmTD05ZAIn8HALCZVmCsvj0w0v0lw==",
"dev": true
},
+ "gl-matrix": {
+ "version": "3.4.3",
+ "resolved": "https://registry.npmjs.org/gl-matrix/-/gl-matrix-3.4.3.tgz",
+ "integrity": "sha512-wcCp8vu8FT22BnvKVPjXa/ICBWRq/zjFfdofZy1WSpQZpphblv12/bOQLBC1rMM7SGOFS9ltVmKOHil5+Ml7gA=="
+ },
"glob": {
"version": "7.1.6",
"requires": {
@@ -70997,6 +71806,11 @@
"integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==",
"dev": true
},
+ "grid-index": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/grid-index/-/grid-index-1.1.0.tgz",
+ "integrity": "sha512-HZRwumpOGUrHyxO5bqKZL0B0GlUpwtCAzZ42sgxUPniu33R1LSFH5yrIcBCHjkctCAh3mtWKcKd9J4vDDdeVHA=="
+ },
"gzip-size": {
"version": "6.0.0",
"dev": true,
@@ -72105,14 +72919,12 @@
},
"is-extendable": {
"version": "1.0.1",
- "devOptional": true,
"requires": {
"is-plain-object": "^2.0.4"
},
"dependencies": {
"is-plain-object": {
"version": "2.0.4",
- "devOptional": true,
"requires": {
"isobject": "^3.0.1"
}
@@ -74262,6 +75074,11 @@
"version": "1.0.1",
"dev": true
},
+ "json-stringify-pretty-compact": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/json-stringify-pretty-compact/-/json-stringify-pretty-compact-3.0.0.tgz",
+ "integrity": "sha512-Rc2suX5meI0S3bfdZuA7JMFBGkJ875ApfVyq2WHELjBiiG22My/l7/8zPpH/CfFVQHuVLd8NLR0nv6vi0BYYKA=="
+ },
"json-stringify-safe": {
"version": "5.0.1",
"dev": true
@@ -74293,6 +75110,11 @@
"version": "3.1.0",
"dev": true
},
+ "kdbush": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/kdbush/-/kdbush-4.0.2.tgz",
+ "integrity": "sha512-WbCVYJ27Sz8zi9Q7Q0xHC+05iwkm3Znipc2XTlrnJbsHMYktW4hPhXUE8Ys1engBrvffoSCqbil1JQAa7clRpA=="
+ },
"kebab-case": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/kebab-case/-/kebab-case-1.0.2.tgz",
@@ -74930,6 +75752,35 @@
"object-visit": "^1.0.0"
}
},
+ "mapbox-gl": {
+ "version": "2.15.0",
+ "resolved": "https://registry.npmjs.org/mapbox-gl/-/mapbox-gl-2.15.0.tgz",
+ "integrity": "sha512-fjv+aYrd5TIHiL7wRa+W7KjtUqKWziJMZUkK5hm8TvJ3OLeNPx4NmW/DgfYhd/jHej8wWL+QJBDbdMMAKvNC0A==",
+ "requires": {
+ "@mapbox/geojson-rewind": "^0.5.2",
+ "@mapbox/jsonlint-lines-primitives": "^2.0.2",
+ "@mapbox/mapbox-gl-supported": "^2.0.1",
+ "@mapbox/point-geometry": "^0.1.0",
+ "@mapbox/tiny-sdf": "^2.0.6",
+ "@mapbox/unitbezier": "^0.0.1",
+ "@mapbox/vector-tile": "^1.3.1",
+ "@mapbox/whoots-js": "^3.1.0",
+ "csscolorparser": "~1.0.3",
+ "earcut": "^2.2.4",
+ "geojson-vt": "^3.2.1",
+ "gl-matrix": "^3.4.3",
+ "grid-index": "^1.1.0",
+ "kdbush": "^4.0.1",
+ "murmurhash-js": "^1.0.0",
+ "pbf": "^3.2.1",
+ "potpack": "^2.0.0",
+ "quickselect": "^2.0.0",
+ "rw": "^1.3.3",
+ "supercluster": "^8.0.0",
+ "tinyqueue": "^2.0.3",
+ "vt-pbf": "^3.1.3"
+ }
+ },
"markdown-builder": {
"version": "0.9.0",
"resolved": "https://registry.npmjs.org/markdown-builder/-/markdown-builder-0.9.0.tgz",
@@ -76932,7 +77783,9 @@
}
},
"minimist": {
- "version": "1.2.6"
+ "version": "1.2.8",
+ "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz",
+ "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA=="
},
"minipass": {
"version": "3.3.4",
@@ -77126,6 +77979,11 @@
"thunky": "^1.0.2"
}
},
+ "murmurhash-js": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/murmurhash-js/-/murmurhash-js-1.0.0.tgz",
+ "integrity": "sha512-TvmkNhkv8yct0SVBSy+o8wYzXjE4Zz3PCesbfs8HiCXXdcTuocApFv11UWlNFWKYsP2okqrhb7JNlSm9InBhIw=="
+ },
"mute-stream": {
"version": "0.0.8",
"dev": true
@@ -78107,6 +78965,15 @@
"through": "~2.3"
}
},
+ "pbf": {
+ "version": "3.2.1",
+ "resolved": "https://registry.npmjs.org/pbf/-/pbf-3.2.1.tgz",
+ "integrity": "sha512-ClrV7pNOn7rtmoQVF4TS1vyU0WhYRnP92fzbfF75jAIwpnzdJXf8iTd4CMEqO4yUenH6NDqLiwjqlh6QgZzgLQ==",
+ "requires": {
+ "ieee754": "^1.1.12",
+ "resolve-protobuf-schema": "^2.1.0"
+ }
+ },
"pbkdf2": {
"version": "3.1.2",
"requires": {
@@ -78369,6 +79236,11 @@
"postcss-value-parser": {
"version": "4.2.0"
},
+ "potpack": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/potpack/-/potpack-2.0.0.tgz",
+ "integrity": "sha512-Q+/tYsFU9r7xoOJ+y/ZTtdVQwTWfzjbiXBDMM/JKUux3+QPP02iUuIoeBQ+Ot6oEDlC+/PGjB/5A3K7KKb7hcw=="
+ },
"preact": {
"version": "10.11.3",
"resolved": "https://registry.npmjs.org/preact/-/preact-10.11.3.tgz",
@@ -78500,6 +79372,11 @@
"xtend": "^4.0.0"
}
},
+ "protocol-buffers-schema": {
+ "version": "3.6.0",
+ "resolved": "https://registry.npmjs.org/protocol-buffers-schema/-/protocol-buffers-schema-3.6.0.tgz",
+ "integrity": "sha512-TdDRD+/QNdrCGCE7v8340QyuXd4kIWIgapsE2+n/SaGiSSbomYl4TjHlvIoCWRpE7wFt02EpB35VVA2ImcBVqw=="
+ },
"proxy-addr": {
"version": "2.0.7",
"dev": true,
@@ -78717,6 +79594,11 @@
"version": "5.1.1",
"dev": true
},
+ "quickselect": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/quickselect/-/quickselect-2.0.0.tgz",
+ "integrity": "sha512-RKJ22hX8mHe3Y6wH/N3wCM6BWtjaxIyyUIkpHOvfFnxdI4yD4tBXEBKSbriGujF6jnSVkJrffuo6vxACiSSxIw=="
+ },
"ramda": {
"version": "0.29.0",
"resolved": "https://registry.npmjs.org/ramda/-/ramda-0.29.0.tgz",
@@ -78770,6 +79652,14 @@
"schema-utils": "^3.0.0"
}
},
+ "rbush": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/rbush/-/rbush-3.0.1.tgz",
+ "integrity": "sha512-XRaVO0YecOpEuIvbhbpTrZgoiI6xBlz6hnlr6EHhd+0x9ase6EmeN+hdwwUaJvLcsFFQ8iWVF1GAK1yB0BWi0w==",
+ "requires": {
+ "quickselect": "^2.0.0"
+ }
+ },
"react": {
"version": "18.2.0",
"requires": {
@@ -78856,6 +79746,15 @@
"react-is": {
"version": "16.13.1"
},
+ "react-map-gl": {
+ "version": "7.1.3",
+ "resolved": "https://registry.npmjs.org/react-map-gl/-/react-map-gl-7.1.3.tgz",
+ "integrity": "sha512-uMiwk3x/XxYqSxWWBPgqitvLh8y+O9AabEIBeg3tLjoCVBEyFiZko7tAcRqA7WLT079KX/lyDL1N2zALqJb/MQ==",
+ "requires": {
+ "@maplibre/maplibre-gl-style-spec": "^19.2.1",
+ "@types/mapbox-gl": ">=1.0.0"
+ }
+ },
"react-native": {
"version": "0.72.3",
"resolved": "https://registry.npmjs.org/react-native/-/react-native-0.72.3.tgz",
@@ -79409,6 +80308,12 @@
}
}
},
+ "react-native-x-maps": {
+ "version": "1.0.6",
+ "resolved": "https://registry.npmjs.org/react-native-x-maps/-/react-native-x-maps-1.0.6.tgz",
+ "integrity": "sha512-aGqhdjBPDI6ZXhccjnetjA88eYFB5l8wtpY1ooGwEbiAUOaCqEWqeUHMI79q3VByBOgfP51gJOtpZbk9JOIKcw==",
+ "requires": {}
+ },
"react-pdf": {
"version": "6.2.2",
"resolved": "https://registry.npmjs.org/react-pdf/-/react-pdf-6.2.2.tgz",
@@ -80488,6 +81393,14 @@
"resolve-pathname": {
"version": "2.2.0"
},
+ "resolve-protobuf-schema": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/resolve-protobuf-schema/-/resolve-protobuf-schema-2.1.0.tgz",
+ "integrity": "sha512-kI5ffTiZWmJaS/huM8wZfEMer1eRd7oJQhDuxeCLe3t7N7mX3z94CN0xPxBQxFYQTSNz9T0i+v6inKqSdK8xrQ==",
+ "requires": {
+ "protocol-buffers-schema": "^3.3.1"
+ }
+ },
"resolve-url": {
"version": "0.2.1",
"devOptional": true
@@ -80588,6 +81501,11 @@
}
}
},
+ "rw": {
+ "version": "1.3.3",
+ "resolved": "https://registry.npmjs.org/rw/-/rw-1.3.3.tgz",
+ "integrity": "sha512-PdhdWy89SiZogBLaw42zdeqtRJ//zFd2PgQavcICDUgJT5oW10QCRKbJ6bg4r0/UY2M6BWd5tkxuGFRvCkgfHQ=="
+ },
"rxjs": {
"version": "6.6.7",
"dev": true,
@@ -80862,7 +81780,6 @@
},
"set-value": {
"version": "2.0.1",
- "devOptional": true,
"requires": {
"extend-shallow": "^2.0.1",
"is-extendable": "^0.1.1",
@@ -80872,18 +81789,15 @@
"dependencies": {
"extend-shallow": {
"version": "2.0.1",
- "devOptional": true,
"requires": {
"is-extendable": "^0.1.0"
}
},
"is-extendable": {
- "version": "0.1.1",
- "devOptional": true
+ "version": "0.1.1"
},
"is-plain-object": {
"version": "2.0.4",
- "devOptional": true,
"requires": {
"isobject": "^3.0.1"
}
@@ -81294,6 +82208,36 @@
"socks": "^2.6.2"
}
},
+ "sort-asc": {
+ "version": "0.2.0",
+ "resolved": "https://registry.npmjs.org/sort-asc/-/sort-asc-0.2.0.tgz",
+ "integrity": "sha512-umMGhjPeHAI6YjABoSTrFp2zaBtXBej1a0yKkuMUyjjqu6FJsTF+JYwCswWDg+zJfk/5npWUUbd33HH/WLzpaA=="
+ },
+ "sort-desc": {
+ "version": "0.2.0",
+ "resolved": "https://registry.npmjs.org/sort-desc/-/sort-desc-0.2.0.tgz",
+ "integrity": "sha512-NqZqyvL4VPW+RAxxXnB8gvE1kyikh8+pR+T+CXLksVRN9eiQqkQlPwqWYU0mF9Jm7UnctShlxLyAt1CaBOTL1w=="
+ },
+ "sort-object": {
+ "version": "3.0.3",
+ "resolved": "https://registry.npmjs.org/sort-object/-/sort-object-3.0.3.tgz",
+ "integrity": "sha512-nK7WOY8jik6zaG9CRwZTaD5O7ETWDLZYMM12pqY8htll+7dYeqGfEUPcUBHOpSJg2vJOrvFIY2Dl5cX2ih1hAQ==",
+ "requires": {
+ "bytewise": "^1.1.0",
+ "get-value": "^2.0.2",
+ "is-extendable": "^0.1.1",
+ "sort-asc": "^0.2.0",
+ "sort-desc": "^0.2.0",
+ "union-value": "^1.0.1"
+ },
+ "dependencies": {
+ "is-extendable": {
+ "version": "0.1.1",
+ "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz",
+ "integrity": "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw=="
+ }
+ }
+ },
"source-list-map": {
"version": "2.0.1"
},
@@ -81401,7 +82345,6 @@
},
"split-string": {
"version": "3.1.0",
- "devOptional": true,
"requires": {
"extend-shallow": "^3.0.0"
}
@@ -81780,6 +82723,14 @@
"debug": "^4.1.0"
}
},
+ "supercluster": {
+ "version": "8.0.1",
+ "resolved": "https://registry.npmjs.org/supercluster/-/supercluster-8.0.1.tgz",
+ "integrity": "sha512-IiOea5kJ9iqzD2t7QJq/cREyLHTtSmUT6gQsweojg9WH2sYJqZK9SswTu6jrscO6D1G5v5vYZ9ru/eq85lXeZQ==",
+ "requires": {
+ "kdbush": "^4.0.2"
+ }
+ },
"superstruct": {
"version": "0.6.2",
"requires": {
@@ -82178,6 +83129,11 @@
"tiny-warning": {
"version": "1.0.3"
},
+ "tinyqueue": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/tinyqueue/-/tinyqueue-2.0.3.tgz",
+ "integrity": "sha512-ppJZNDuKGgxzkHihX8v9v9G5f+18gzaTfrukGrq6ueg0lmH4nqVnA2IPG0AEH3jKEk2GRJCUhDoqpoiw3PHLBA=="
+ },
"tmp": {
"version": "0.2.1",
"resolved": "https://registry.npmjs.org/tmp/-/tmp-0.2.1.tgz",
@@ -82422,6 +83378,19 @@
"integrity": "sha512-QCh+85mCy+h0IGff8r5XWzOVSbBO+KfeYrMQh7NJ58QujwcE22u+NUSmUxqF+un70P9GXKxa2HCNiTTMJknyjQ==",
"dev": true
},
+ "typewise": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/typewise/-/typewise-1.0.3.tgz",
+ "integrity": "sha512-aXofE06xGhaQSPzt8hlTY+/YWQhm9P0jYUp1f2XtmW/3Bk0qzXcyFWAtPoo2uTGQj1ZwbDuSyuxicq+aDo8lCQ==",
+ "requires": {
+ "typewise-core": "^1.2.0"
+ }
+ },
+ "typewise-core": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/typewise-core/-/typewise-core-1.2.0.tgz",
+ "integrity": "sha512-2SCC/WLzj2SbUwzFOzqMCkz5amXLlxtJqDKTICqg30x+2DZxcfZN2MvQZmGfXWKNWaKK9pBPsvkcwv8bF/gxKg=="
+ },
"ua-parser-js": {
"version": "0.7.31"
},
@@ -82508,7 +83477,6 @@
},
"union-value": {
"version": "1.0.1",
- "devOptional": true,
"requires": {
"arr-union": "^3.1.0",
"get-value": "^2.0.6",
@@ -82517,8 +83485,7 @@
},
"dependencies": {
"is-extendable": {
- "version": "0.1.1",
- "devOptional": true
+ "version": "0.1.1"
}
}
},
@@ -82937,6 +83904,16 @@
"vm-browserify": {
"version": "1.1.2"
},
+ "vt-pbf": {
+ "version": "3.1.3",
+ "resolved": "https://registry.npmjs.org/vt-pbf/-/vt-pbf-3.1.3.tgz",
+ "integrity": "sha512-2LzDFzt0mZKZ9IpVF2r69G9bXaP2Q2sArJCmcCgvfTdCCZzSyz4aCLoQyUilu37Ll56tCblIZrXFIjNUpGIlmA==",
+ "requires": {
+ "@mapbox/point-geometry": "0.1.0",
+ "@mapbox/vector-tile": "^1.3.1",
+ "pbf": "^3.2.1"
+ }
+ },
"w3c-hr-time": {
"version": "1.0.2",
"dev": true,
diff --git a/package.json b/package.json
index 993e3deafd38..03773ecd9f91 100644
--- a/package.json
+++ b/package.json
@@ -7,6 +7,7 @@
"license": "MIT",
"private": true,
"scripts": {
+ "configure-mapbox": "scripts/setup-mapbox-sdk-walkthrough.sh",
"postinstall": "scripts/postInstall.sh",
"clean": "npx react-native clean-project-auto",
"android": "scripts/set-pusher-suffix.sh && npx react-native run-android --variant=developmentDebug --appId=com.expensify.chat.dev",
@@ -74,6 +75,7 @@
"@react-navigation/native": "6.1.6",
"@react-navigation/stack": "6.3.16",
"@react-ng/bounds-observer": "^0.2.1",
+ "@rnmapbox/maps": "^10.0.11",
"@ua/react-native-airship": "^15.2.6",
"awesome-phonenumber": "^5.4.0",
"babel-plugin-transform-remove-console": "^6.9.4",
@@ -91,6 +93,7 @@
"localforage-removeitems": "^1.4.0",
"lodash": "4.17.21",
"lottie-react-native": "^5.1.6",
+ "mapbox-gl": "^2.15.0",
"metro-config": "^0.71.3",
"moment": "^2.29.4",
"moment-timezone": "^0.5.31",
@@ -103,6 +106,7 @@
"react-collapse": "^5.1.0",
"react-content-loader": "^6.1.0",
"react-dom": "18.1.0",
+ "react-map-gl": "^7.1.3",
"react-native": "0.72.3",
"react-native-blob-util": "^0.17.3",
"react-native-collapsible": "^1.6.0",
@@ -143,6 +147,7 @@
"react-native-web-linear-gradient": "^1.1.2",
"react-native-web-lottie": "^1.4.4",
"react-native-webview": "^11.17.2",
+ "react-native-x-maps": "1.0.6",
"react-pdf": "^6.2.2",
"react-plaid-link": "3.3.2",
"react-web-config": "^1.0.0",
@@ -187,6 +192,7 @@
"@types/jest-when": "^3.5.2",
"@types/js-yaml": "^4.0.5",
"@types/lodash": "^4.14.195",
+ "@types/mapbox-gl": "^2.7.13",
"@types/mock-fs": "^4.13.1",
"@types/pusher-js": "^5.1.0",
"@types/react": "^18.2.12",
diff --git a/scripts/setup-mapbox-sdk-walkthrough.sh b/scripts/setup-mapbox-sdk-walkthrough.sh
new file mode 100755
index 000000000000..20b79641fc42
--- /dev/null
+++ b/scripts/setup-mapbox-sdk-walkthrough.sh
@@ -0,0 +1,55 @@
+#!/bin/bash
+
+# Mapbox SDK Credential Setup Script
+# ==================================
+#
+# Purpose:
+# --------
+# This script assists users in setting up the necessary credentials to utilize
+# Mapbox's closed-source SDKs for iOS and Android. It provides step-by-step
+# guidance for obtaining a secret token from Mapbox and subsequently invokes
+# the "setup-mapbox-sdk.sh" script to configure the development environment.
+#
+# Background:
+# -----------
+# To use the Mapbox SDKs for iOS and Android development, a secret token
+# must be obtained from Mapbox's account page. This token is essential for
+# authenticating downloads of the closed-source SDKs during the build process.
+#
+# Usage:
+# ------
+# To configure Mapbox, invoke this script by running the following command from the project's root directory:
+# npm run configure-mapbox
+
+# Use functions and varaibles from the utils script
+source scripts/shellUtils.sh
+
+# Intro message
+title "This script helps you set up the credential needed to use Mapbox's closed-sourced SDKs for iOS and Android."
+echo -e "\n"
+
+echo -e "1. Visit: https://account.mapbox.com/access-tokens/\n"
+echo -e "2. If you don't have a Mapbox account, create one.\n"
+echo -e "3. Create a secret token needed to download Mapbox SDKs. If you haven't done this yet:"
+echo -e " - Click the \"Create a token\" button."
+echo -e " - Provide a descriptive name for the token (e.g., Token for SDK downloads)."
+echo -e " - Ensure the checkbox next to \"Downloads:Read\" under \"Secret scopes\" is ticked."
+echo -e " - All checkboxes under the \"Public scopes\" should be ticked by default. Leave them as they are."
+echo -e " - Click the \"Create token\" button at the bottom of the page."
+echo -e " - IMPORTANT: Copy the value of the newly created token. This is your only opportunity to do so."
+echo -e "\nOnce you've done the above steps, please paste the token value below.\n"
+
+# Reading the secret token
+read -r -s -p "Secret download token: " SECRET_TOKEN
+echo -e "\n"
+
+if [[ -z "$SECRET_TOKEN" ]]; then
+ error "Token is empty. Please run the script again and provide a valid token."
+ exit 1
+fi
+
+success "Thank you for providing the token. Setting these credentials in relevant files..."
+echo -e "\n"
+
+# Execute the configuration script
+./scripts/setup-mapbox-sdk.sh "$SECRET_TOKEN"
diff --git a/scripts/setup-mapbox-sdk.sh b/scripts/setup-mapbox-sdk.sh
new file mode 100755
index 000000000000..06fd75fba299
--- /dev/null
+++ b/scripts/setup-mapbox-sdk.sh
@@ -0,0 +1,140 @@
+#!/bin/bash
+
+# Mapbox SDK Configuration Script for iOS and Android
+# ===================================================
+#
+# Purpose:
+# --------
+# This script configures the development environment to download Mapbox SDKs
+# for both iOS and Android builds. We use Mapbox to display maps in the App. As Mapbox SDKs
+# are closed-sourced, we need to authenticate with Mapbox during the download.
+#
+# Background:
+# -----------
+# Engineers are required to obtain a secret token from Mapbox and store it on
+# their development machine. This allows tools like CocoaPods for iOS or Gradle for Android
+# to access the Mapbox SDK during the build process.
+#
+# The `.netrc` file for iOS Configuration:
+# ----------------------------------------
+# The token for iOS is stored in the `.netrc` file located in the user's home directory.
+# This file is used in Unix-like systems to store credentials for remote machine access.
+#
+# The `gradle.properties` file for Android Configuration:
+# -------------------------------------------------------
+# The token for Android is stored in the `gradle.properties` file located in the .gradle directory
+# in the user's home. This is accessed by the Android build system during the SDK download.
+#
+# How this script helps:
+# ----------------------
+# This script streamlines the process of adding the credential to both the `.netrc` and
+# `gradle.properties` files. When executed, it prompts the user for the secret token and
+# then saves it to the respective files along with other necessary information.\n
+#
+# Usage:
+# ------
+# To run this script, pass the secret Mapbox access token as a command-line argument:
+# ./scriptname.sh YOUR_MAPBOX_ACCESS_TOKEN
+
+# Use functions and varaibles from the utils script
+source scripts/shellUtils.sh
+
+NETRC_PATH="$HOME/.netrc"
+GRADLE_PROPERTIES_PATH="$HOME/.gradle/gradle.properties"
+
+# This function provides a user-friendly error message when the script encounters an error.
+# It informs the user about probable permission issues and suggests commands to resolve them.
+handleError() {
+ echo -e "\n"
+
+ error "The script failed."
+ echo "The most probable reason is permissions."
+ echo -e "Please ensure you have read/write permissions for the following:\n"
+
+ echo -e "1. \033[1m$NETRC_PATH\033[0m"
+ echo -e "2. \033[1m$GRADLE_PROPERTIES_PATH\033[0m"
+ echo -e "\nYou can grant permissions using the commands:"
+ echo -e "\033[1mchmod u+rw $NETRC_PATH\033[0m"
+ echo -e "\033[1mchmod u+rw $GRADLE_PROPERTIES_PATH\033[0m"
+
+ echo -e "\n"
+ exit 1
+}
+
+# Set a trap to call the handleError function when any of the commands fail
+trap handleError ERR
+
+# Take the token as a command-line argument
+TOKEN="$1"
+
+# Check if the token was provided
+if [ -z "$TOKEN" ]; then
+ echo "Usage: $0 "
+ echo "No token provided. Exiting."
+ exit 1
+fi
+
+# -----------------------------------------------
+# iOS Configuration for .netrc
+# -----------------------------------------------
+info "Configuring $NETRC_PATH for Mapbox iOS SDK download"
+
+# Check for existing Mapbox entries in .netrc
+if grep -q "api.mapbox.com" "$NETRC_PATH"; then
+ # Extract the current token from .netrc
+ CURRENT_TOKEN=$(grep -A2 "api.mapbox.com" "$NETRC_PATH" | grep "password" | awk '{print $2}')
+
+ # Compare the current token to the entered token
+ if [ "$CURRENT_TOKEN" == "$TOKEN" ]; then
+ echo -e "\nThe entered token matches the existing token in $NETRC_PATH. No changes made."
+ else
+ # Use sed to replace the old token with the new one
+ sed -i.bak "/api.mapbox.com/,+2s/password $CURRENT_TOKEN/password $TOKEN/" "$NETRC_PATH"
+ echo -e "\nToken updated in $NETRC_PATH"
+ fi
+else
+ # If no existing entry, append the new credentials
+ {
+ echo "machine api.mapbox.com"
+ echo "login mapbox"
+ echo "password $TOKEN"
+ } >> "$NETRC_PATH"
+
+ # Set the permissions of the .netrc file to ensure it's kept private
+ chmod 600 "$NETRC_PATH"
+
+ echo -e "\n$NETRC_PATH has been updated with new credentials"
+fi
+
+# -----------------------------------------------
+# Android Configuration for gradle.properties
+# -----------------------------------------------
+echo -e "\n"
+info "Configuring $GRADLE_PROPERTIES_PATH for Mapbox Android SDK download"
+
+# Ensure the .gradle directory exists
+if [ ! -d "$HOME/.gradle" ]; then
+ mkdir "$HOME/.gradle"
+fi
+
+# Check if gradle.properties exists. If not, create one.
+if [ ! -f "$GRADLE_PROPERTIES_PATH" ]; then
+ touch "$GRADLE_PROPERTIES_PATH"
+fi
+
+# Check if MAPBOX_DOWNLOADS_TOKEN already exists in the file
+if grep -q "MAPBOX_DOWNLOADS_TOKEN" "$GRADLE_PROPERTIES_PATH"; then
+ # Extract the current token from gradle.properties
+ CURRENT_ANDROID_TOKEN=$(grep "MAPBOX_DOWNLOADS_TOKEN" "$GRADLE_PROPERTIES_PATH" | cut -d'=' -f2)
+
+ # Compare the current token to the entered token
+ if [ "$CURRENT_ANDROID_TOKEN" == "$TOKEN" ]; then
+ echo -e "\nThe entered token matches the existing token in $GRADLE_PROPERTIES_PATH. No changes made."
+ else
+ sed -i.bak "s/MAPBOX_DOWNLOADS_TOKEN=$CURRENT_ANDROID_TOKEN/MAPBOX_DOWNLOADS_TOKEN=$TOKEN/" "$GRADLE_PROPERTIES_PATH"
+ echo -e "\nToken updated in $GRADLE_PROPERTIES_PATH"
+ fi
+else
+ echo "MAPBOX_DOWNLOADS_TOKEN=$TOKEN" >> "$GRADLE_PROPERTIES_PATH"
+ echo -e "\n$GRADLE_PROPERTIES_PATH has been updated with new credentials"
+fi
diff --git a/src/CONST.js b/src/CONST.js
index d39cb505962a..aaf2567ab683 100755
--- a/src/CONST.js
+++ b/src/CONST.js
@@ -2541,6 +2541,7 @@ const CONST = {
DISTANCE: 'distance',
},
STATUS_TEXT_MAX_LENGTH: 100,
+ SF_COORDINATES: [-122.4194, 37.7749],
NAVIGATION: {
TYPE: {
FORCED_UP: 'FORCED_UP',
diff --git a/src/components/DistanceRequest.js b/src/components/DistanceRequest.js
index a42d5f7f230a..93254bdfddf1 100644
--- a/src/components/DistanceRequest.js
+++ b/src/components/DistanceRequest.js
@@ -4,23 +4,30 @@ import lodashGet from 'lodash/get';
import _ from 'underscore';
import PropTypes from 'prop-types';
import {withOnyx} from 'react-native-onyx';
+import MapView from 'react-native-x-maps';
import ONYXKEYS from '../ONYXKEYS';
import * as Transaction from '../libs/actions/Transaction';
import MenuItemWithTopDescription from './MenuItemWithTopDescription';
-import withLocalize, {withLocalizePropTypes} from './withLocalize';
-import compose from '../libs/compose';
import * as Expensicons from './Icon/Expensicons';
import theme from '../styles/themes/default';
import Button from './Button';
import styles from '../styles/styles';
import variables from '../styles/variables';
import LinearGradient from './LinearGradient';
+import * as MapboxToken from '../libs/actions/MapboxToken';
+import CONST from '../CONST';
+import BlockingView from './BlockingViews/BlockingView';
+import useNetwork from '../hooks/useNetwork';
+import useLocalize from '../hooks/useLocalize';
import Navigation from '../libs/Navigation/Navigation';
import ROUTES from '../ROUTES';
const MAX_WAYPOINTS = 25;
const MAX_WAYPOINTS_TO_DISPLAY = 4;
+const MAP_PADDING = 50;
+const DEFAULT_ZOOM_LEVEL = 10;
+
const propTypes = {
/** The transactionID of this request */
transactionID: PropTypes.string,
@@ -46,18 +53,28 @@ const propTypes = {
}),
}),
- ...withLocalizePropTypes,
+ /** Data about Mapbox token for calling Mapbox API */
+ mapboxAccessToken: PropTypes.shape({
+ /** Temporary token for Mapbox API */
+ token: PropTypes.string,
+
+ /** Time when the token will expire in ISO 8601 */
+ expiration: PropTypes.string,
+ }),
};
const defaultProps = {
transactionID: '',
transaction: {},
+ mapboxAccessToken: {},
};
-function DistanceRequest({transactionID, transaction, translate}) {
+function DistanceRequest({transactionID, transaction, mapboxAccessToken}) {
const [shouldShowGradient, setShouldShowGradient] = useState(false);
const [scrollContainerHeight, setScrollContainerHeight] = useState(0);
const [scrollContentHeight, setScrollContentHeight] = useState(0);
+ const {isOffline} = useNetwork();
+ const {translate} = useLocalize();
const waypoints = lodashGet(transaction, 'comment.waypoints', {});
const numberOfWaypoints = _.size(waypoints);
@@ -67,6 +84,11 @@ function DistanceRequest({transactionID, transaction, translate}) {
const halfMenuItemHeight = Math.floor(variables.baseMenuItemHeight / 2);
const scrollContainerMaxHeight = variables.baseMenuItemHeight * MAX_WAYPOINTS_TO_DISPLAY + halfMenuItemHeight;
+ useEffect(() => {
+ MapboxToken.init();
+ return MapboxToken.stop;
+ }, []);
+
useEffect(() => {
if (!transactionID || !_.isEmpty(waypoints)) {
return;
@@ -86,7 +108,7 @@ function DistanceRequest({transactionID, transaction, translate}) {
return (
<>
setScrollContainerHeight(lodashGet(event, 'nativeEvent.layout.height', 0))}
>
+
+ {!isOffline && Boolean(mapboxAccessToken.token) ? (
+
+ ) : (
+
+
+
+ )}
+
>
);
}
@@ -149,12 +193,12 @@ function DistanceRequest({transactionID, transaction, translate}) {
DistanceRequest.displayName = 'DistanceRequest';
DistanceRequest.propTypes = propTypes;
DistanceRequest.defaultProps = defaultProps;
-export default compose(
- withLocalize,
- withOnyx({
- transaction: {
- key: (props) => `${ONYXKEYS.COLLECTION.TRANSACTION}${props.transactionID}`,
- selector: (transaction) => (transaction ? {transactionID: transaction.transactionID, comment: {waypoints: lodashGet(transaction, 'comment.waypoints')}} : null),
- },
- }),
-)(DistanceRequest);
+export default withOnyx({
+ transaction: {
+ key: (props) => `${ONYXKEYS.COLLECTION.TRANSACTION}${props.transactionID}`,
+ selector: (transaction) => (transaction ? {transactionID: transaction.transactionID, comment: {waypoints: lodashGet(transaction, 'comment.waypoints')}} : null),
+ },
+ mapboxAccessToken: {
+ key: ONYXKEYS.MAPBOX_ACCESS_TOKEN,
+ },
+})(DistanceRequest);
diff --git a/src/components/Icon/Expensicons.js b/src/components/Icon/Expensicons.js
index 17cee476f68d..4ad00c771296 100644
--- a/src/components/Icon/Expensicons.js
+++ b/src/components/Icon/Expensicons.js
@@ -38,6 +38,7 @@ import DownArrow from '../../../assets/images/down.svg';
import Download from '../../../assets/images/download.svg';
import DragHandles from '../../../assets/images/drag-handles.svg';
import Emoji from '../../../assets/images/emoji.svg';
+import EmptyStateRoutePending from '../../../assets/images/emptystate__routepending.svg';
import Exclamation from '../../../assets/images/exclamation.svg';
import Exit from '../../../assets/images/exit.svg';
import ExpensifyCard from '../../../assets/images/expensifycard.svg';
@@ -166,6 +167,7 @@ export {
DragAndDrop,
DragHandles,
Emoji,
+ EmptyStateRoutePending,
Exclamation,
Exit,
ExpensifyCard,
diff --git a/src/languages/en.js b/src/languages/en.js
index f2cec92fbdd9..19dbd9c63187 100755
--- a/src/languages/en.js
+++ b/src/languages/en.js
@@ -1608,6 +1608,11 @@ export default {
finish: 'Finish',
stop: 'Stop',
},
+ mapPending: {
+ title: 'Map pending',
+ subtitle: 'The map will be generated when you go back online',
+ onlineSubtitle: 'One moment while we set up the map',
+ },
errors: {
selectSuggestedAddress: 'Please select a suggested address',
},
diff --git a/src/languages/es.js b/src/languages/es.js
index 0259ff95afaf..bb3306417e17 100644
--- a/src/languages/es.js
+++ b/src/languages/es.js
@@ -2095,6 +2095,11 @@ export default {
finish: 'Final',
stop: 'Parada',
},
+ mapPending: {
+ title: 'Mapa pendiente',
+ subtitle: 'El mapa se generará cuando vuelvas a estar en línea',
+ onlineSubtitle: 'Un momento mientras configuramos el mapa',
+ },
errors: {
selectSuggestedAddress: 'Por favor, selecciona una dirección sugerida',
},
diff --git a/src/styles/styles.js b/src/styles/styles.js
index b3dce725fdd4..4217148bd35b 100644
--- a/src/styles/styles.js
+++ b/src/styles/styles.js
@@ -3727,10 +3727,37 @@ const styles = {
flexDirection: 'row',
alignItems: 'center',
},
+
rotate90: {
transform: [{rotate: '90deg'}],
},
+ distanceRequestContainer: (maxHeight) => ({
+ ...flex.flexShrink2,
+ minHeight: variables.baseMenuItemHeight,
+ maxHeight,
+ }),
+
+ mapViewContainer: {
+ ...flex.flex1,
+ ...spacing.p4,
+ ...spacing.flex1,
+ minHeight: 300,
+ maxHeight: 500,
+ },
+
+ mapView: {
+ flex: 1,
+ borderRadius: 20,
+ overflow: 'hidden',
+ },
+
+ mapPendingView: {
+ backgroundColor: themeColors.highlightBG,
+ ...flex.flex1,
+ borderRadius: variables.componentBorderRadiusLarge,
+ },
+
userReportStatusEmoji: {
fontSize: variables.fontSizeNormal,
marginRight: 4,
diff --git a/src/styles/utilities/flex.js b/src/styles/utilities/flex.js
index 6cdd0a5b1d6a..aef7de698519 100644
--- a/src/styles/utilities/flex.js
+++ b/src/styles/utilities/flex.js
@@ -115,6 +115,10 @@ export default {
flexGrow: 4,
},
+ flexShrink2: {
+ flexShrink: 2,
+ },
+
flexShrink1: {
flexShrink: 1,
},