react-native-google-maps-plus 1.0.3-dev.1 → 1.1.0-dev.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/RNGoogleMapsPlus.podspec +2 -0
- package/android/src/main/java/com/rngooglemapsplus/GoogleMapsViewImpl.kt +122 -29
- package/android/src/main/java/com/rngooglemapsplus/LocationHandler.kt +44 -44
- package/android/src/main/java/com/rngooglemapsplus/{MapCircle.kt → MapCircleBuilder.kt} +2 -12
- package/android/src/main/java/com/rngooglemapsplus/{MapMarker.kt → MapMarkerBuilder.kt} +23 -27
- package/android/src/main/java/com/rngooglemapsplus/{MapPolygon.kt → MapPolygonBuilder.kt} +2 -18
- package/android/src/main/java/com/rngooglemapsplus/{MapPolyline.kt → MapPolylineBuilder.kt.kt} +2 -19
- package/android/src/main/java/com/rngooglemapsplus/RNGoogleMapsPlusView.kt +45 -54
- package/android/src/main/java/com/rngooglemapsplus/extensions/RNCameraExtension.kt +19 -0
- package/android/src/main/java/com/rngooglemapsplus/extensions/RNLocationPriorityExtension.kt +12 -0
- package/android/src/main/java/com/rngooglemapsplus/extensions/RNMapCircleExtension.kt +14 -0
- package/android/src/main/java/com/rngooglemapsplus/extensions/RNMarkerExtension.kt +17 -0
- package/android/src/main/java/com/rngooglemapsplus/extensions/RNPolygonExtension.kt +20 -0
- package/android/src/main/java/com/rngooglemapsplus/extensions/RNPolylineExtension.kt +21 -0
- package/android/src/main/java/com/rngooglemapsplus/extensions/RNUserInterfaceExtension.kt +12 -0
- package/android/src/main/java/com/rngooglemapsplus/{Color.kt → extensions/StringExtension.kt} +1 -1
- package/android/src/main/java/com/rngooglemapsplus/extensions/ThrowableExtension.kt +38 -0
- package/ios/GoogleMapViewImpl.swift +165 -22
- package/ios/LocationHandler.swift +29 -69
- package/ios/MapCircleBuilder.swift +20 -0
- package/ios/{MapMarker.swift → MapMarkerBuilder.swift} +17 -32
- package/ios/MapPolygonBuilder.swift +20 -0
- package/ios/MapPolylineBuilder.swift +24 -0
- package/ios/RNGoogleMapsPlusView.swift +63 -116
- package/ios/extensions/RNCamera+Extension.swift +22 -0
- package/ios/{MapCircle.swift → extensions/RNCircle+Extension.swift} +0 -19
- package/ios/extensions/RNIOSLocationAccuracy+Extensions.swift +19 -0
- package/ios/extensions/RNMarker+Extension.swift +25 -0
- package/ios/{MapPolygon.swift → extensions/RNPolygon+Extension.swift.swift} +0 -19
- package/ios/{MapPolyline.swift → extensions/RNPolyline+Extension.swift.swift} +16 -39
- package/ios/extensions/RNUserInterface+Extension.swift +16 -0
- package/lib/module/types.js +14 -0
- package/lib/module/types.js.map +1 -1
- package/lib/typescript/src/RNGoogleMapsPlusView.nitro.d.ts +5 -1
- package/lib/typescript/src/RNGoogleMapsPlusView.nitro.d.ts.map +1 -1
- package/lib/typescript/src/types.d.ts +43 -2
- package/lib/typescript/src/types.d.ts.map +1 -1
- package/nitrogen/generated/android/c++/JHybridRNGoogleMapsPlusViewSpec.cpp +64 -0
- package/nitrogen/generated/android/c++/JHybridRNGoogleMapsPlusViewSpec.hpp +8 -0
- package/nitrogen/generated/android/c++/JRNAndroidLocationConfig.hpp +63 -0
- package/nitrogen/generated/android/c++/JRNAndroidLocationPriority.hpp +65 -0
- package/nitrogen/generated/android/c++/JRNIOSLocationAccuracy.hpp +65 -0
- package/nitrogen/generated/android/c++/JRNIOSLocationConfig.hpp +59 -0
- package/nitrogen/generated/android/c++/JRNInitialProps.hpp +4 -4
- package/nitrogen/generated/android/c++/JRNLocationConfig.hpp +65 -0
- package/nitrogen/generated/android/c++/JRNMapUiSettings.hpp +93 -0
- package/nitrogen/generated/android/c++/JRNMarker.hpp +6 -12
- package/nitrogen/generated/android/c++/JRNMarkerSvg.hpp +61 -0
- package/nitrogen/generated/android/c++/views/JHybridRNGoogleMapsPlusViewStateUpdater.cpp +16 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/rngooglemapsplus/HybridRNGoogleMapsPlusViewSpec.kt +24 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/rngooglemapsplus/RNAndroidLocationConfig.kt +35 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/rngooglemapsplus/RNAndroidLocationPriority.kt +23 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/rngooglemapsplus/RNIOSLocationAccuracy.kt +23 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/rngooglemapsplus/RNIOSLocationConfig.kt +32 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/rngooglemapsplus/RNInitialProps.kt +1 -1
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/rngooglemapsplus/RNLocationConfig.kt +32 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/rngooglemapsplus/RNMapUiSettings.kt +59 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/rngooglemapsplus/RNMarker.kt +1 -7
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/rngooglemapsplus/RNMarkerSvg.kt +35 -0
- package/nitrogen/generated/ios/RNGoogleMapsPlus-Swift-Cxx-Bridge.hpp +126 -0
- package/nitrogen/generated/ios/RNGoogleMapsPlus-Swift-Cxx-Umbrella.hpp +21 -0
- package/nitrogen/generated/ios/c++/HybridRNGoogleMapsPlusViewSpecSwift.hpp +49 -0
- package/nitrogen/generated/ios/c++/views/HybridRNGoogleMapsPlusViewComponent.mm +20 -0
- package/nitrogen/generated/ios/swift/HybridRNGoogleMapsPlusViewSpec.swift +4 -0
- package/nitrogen/generated/ios/swift/HybridRNGoogleMapsPlusViewSpec_cxx.swift +82 -0
- package/nitrogen/generated/ios/swift/RNAndroidLocationConfig.swift +93 -0
- package/nitrogen/generated/ios/swift/RNAndroidLocationPriority.swift +48 -0
- package/nitrogen/generated/ios/swift/RNIOSLocationAccuracy.swift +48 -0
- package/nitrogen/generated/ios/swift/RNIOSLocationConfig.swift +70 -0
- package/nitrogen/generated/ios/swift/RNInitialProps.swift +6 -6
- package/nitrogen/generated/ios/swift/RNLocationConfig.swift +84 -0
- package/nitrogen/generated/ios/swift/RNMapUiSettings.swift +277 -0
- package/nitrogen/generated/ios/swift/RNMarker.swift +24 -27
- package/nitrogen/generated/ios/swift/RNMarkerSvg.swift +57 -0
- package/nitrogen/generated/shared/c++/HybridRNGoogleMapsPlusViewSpec.cpp +8 -0
- package/nitrogen/generated/shared/c++/HybridRNGoogleMapsPlusViewSpec.hpp +14 -0
- package/nitrogen/generated/shared/c++/RNAndroidLocationConfig.hpp +77 -0
- package/nitrogen/generated/shared/c++/RNAndroidLocationPriority.hpp +64 -0
- package/nitrogen/generated/shared/c++/RNIOSLocationAccuracy.hpp +64 -0
- package/nitrogen/generated/shared/c++/RNIOSLocationConfig.hpp +73 -0
- package/nitrogen/generated/shared/c++/RNInitialProps.hpp +5 -5
- package/nitrogen/generated/shared/c++/RNLocationConfig.hpp +76 -0
- package/nitrogen/generated/shared/c++/RNMapUiSettings.hpp +107 -0
- package/nitrogen/generated/shared/c++/RNMarker.hpp +8 -13
- package/nitrogen/generated/shared/c++/RNMarkerSvg.hpp +75 -0
- package/nitrogen/generated/shared/c++/views/HybridRNGoogleMapsPlusViewComponent.cpp +48 -0
- package/nitrogen/generated/shared/c++/views/HybridRNGoogleMapsPlusViewComponent.hpp +6 -0
- package/nitrogen/generated/shared/json/RNGoogleMapsPlusViewConfig.json +4 -0
- package/package.json +1 -1
- package/src/RNGoogleMapsPlusView.nitro.ts +6 -0
- package/src/types.ts +49 -2
- /package/ios/{Color.swift → extensions/String+Extensions.swift} +0 -0
|
@@ -40,12 +40,12 @@ namespace margelo::nitro::rngooglemapsplus {
|
|
|
40
40
|
jni::local_ref<jni::JString> mapId = this->getFieldValue(fieldMapId);
|
|
41
41
|
static const auto fieldLiteMode = clazz->getField<jni::JBoolean>("liteMode");
|
|
42
42
|
jni::local_ref<jni::JBoolean> liteMode = this->getFieldValue(fieldLiteMode);
|
|
43
|
-
static const auto
|
|
44
|
-
jni::local_ref<JRNCamera>
|
|
43
|
+
static const auto fieldCamera = clazz->getField<JRNCamera>("camera");
|
|
44
|
+
jni::local_ref<JRNCamera> camera = this->getFieldValue(fieldCamera);
|
|
45
45
|
return RNInitialProps(
|
|
46
46
|
mapId != nullptr ? std::make_optional(mapId->toStdString()) : std::nullopt,
|
|
47
47
|
liteMode != nullptr ? std::make_optional(static_cast<bool>(liteMode->value())) : std::nullopt,
|
|
48
|
-
|
|
48
|
+
camera != nullptr ? std::make_optional(camera->toCpp()) : std::nullopt
|
|
49
49
|
);
|
|
50
50
|
}
|
|
51
51
|
|
|
@@ -58,7 +58,7 @@ namespace margelo::nitro::rngooglemapsplus {
|
|
|
58
58
|
return newInstance(
|
|
59
59
|
value.mapId.has_value() ? jni::make_jstring(value.mapId.value()) : nullptr,
|
|
60
60
|
value.liteMode.has_value() ? jni::JBoolean::valueOf(value.liteMode.value()) : nullptr,
|
|
61
|
-
value.
|
|
61
|
+
value.camera.has_value() ? JRNCamera::fromCpp(value.camera.value()) : nullptr
|
|
62
62
|
);
|
|
63
63
|
}
|
|
64
64
|
};
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
///
|
|
2
|
+
/// JRNLocationConfig.hpp
|
|
3
|
+
/// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
|
|
4
|
+
/// https://github.com/mrousavy/nitro
|
|
5
|
+
/// Copyright © 2025 Marc Rousavy @ Margelo
|
|
6
|
+
///
|
|
7
|
+
|
|
8
|
+
#pragma once
|
|
9
|
+
|
|
10
|
+
#include <fbjni/fbjni.h>
|
|
11
|
+
#include "RNLocationConfig.hpp"
|
|
12
|
+
|
|
13
|
+
#include "JRNAndroidLocationConfig.hpp"
|
|
14
|
+
#include "JRNAndroidLocationPriority.hpp"
|
|
15
|
+
#include "JRNIOSLocationAccuracy.hpp"
|
|
16
|
+
#include "JRNIOSLocationConfig.hpp"
|
|
17
|
+
#include "RNAndroidLocationConfig.hpp"
|
|
18
|
+
#include "RNAndroidLocationPriority.hpp"
|
|
19
|
+
#include "RNIOSLocationAccuracy.hpp"
|
|
20
|
+
#include "RNIOSLocationConfig.hpp"
|
|
21
|
+
#include <optional>
|
|
22
|
+
|
|
23
|
+
namespace margelo::nitro::rngooglemapsplus {
|
|
24
|
+
|
|
25
|
+
using namespace facebook;
|
|
26
|
+
|
|
27
|
+
/**
|
|
28
|
+
* The C++ JNI bridge between the C++ struct "RNLocationConfig" and the the Kotlin data class "RNLocationConfig".
|
|
29
|
+
*/
|
|
30
|
+
struct JRNLocationConfig final: public jni::JavaClass<JRNLocationConfig> {
|
|
31
|
+
public:
|
|
32
|
+
static auto constexpr kJavaDescriptor = "Lcom/rngooglemapsplus/RNLocationConfig;";
|
|
33
|
+
|
|
34
|
+
public:
|
|
35
|
+
/**
|
|
36
|
+
* Convert this Java/Kotlin-based struct to the C++ struct RNLocationConfig by copying all values to C++.
|
|
37
|
+
*/
|
|
38
|
+
[[maybe_unused]]
|
|
39
|
+
[[nodiscard]]
|
|
40
|
+
RNLocationConfig toCpp() const {
|
|
41
|
+
static const auto clazz = javaClassStatic();
|
|
42
|
+
static const auto fieldAndroid = clazz->getField<JRNAndroidLocationConfig>("android");
|
|
43
|
+
jni::local_ref<JRNAndroidLocationConfig> android = this->getFieldValue(fieldAndroid);
|
|
44
|
+
static const auto fieldIos = clazz->getField<JRNIOSLocationConfig>("ios");
|
|
45
|
+
jni::local_ref<JRNIOSLocationConfig> ios = this->getFieldValue(fieldIos);
|
|
46
|
+
return RNLocationConfig(
|
|
47
|
+
android != nullptr ? std::make_optional(android->toCpp()) : std::nullopt,
|
|
48
|
+
ios != nullptr ? std::make_optional(ios->toCpp()) : std::nullopt
|
|
49
|
+
);
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
public:
|
|
53
|
+
/**
|
|
54
|
+
* Create a Java/Kotlin-based struct by copying all values from the given C++ struct to Java.
|
|
55
|
+
*/
|
|
56
|
+
[[maybe_unused]]
|
|
57
|
+
static jni::local_ref<JRNLocationConfig::javaobject> fromCpp(const RNLocationConfig& value) {
|
|
58
|
+
return newInstance(
|
|
59
|
+
value.android.has_value() ? JRNAndroidLocationConfig::fromCpp(value.android.value()) : nullptr,
|
|
60
|
+
value.ios.has_value() ? JRNIOSLocationConfig::fromCpp(value.ios.value()) : nullptr
|
|
61
|
+
);
|
|
62
|
+
}
|
|
63
|
+
};
|
|
64
|
+
|
|
65
|
+
} // namespace margelo::nitro::rngooglemapsplus
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
///
|
|
2
|
+
/// JRNMapUiSettings.hpp
|
|
3
|
+
/// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
|
|
4
|
+
/// https://github.com/mrousavy/nitro
|
|
5
|
+
/// Copyright © 2025 Marc Rousavy @ Margelo
|
|
6
|
+
///
|
|
7
|
+
|
|
8
|
+
#pragma once
|
|
9
|
+
|
|
10
|
+
#include <fbjni/fbjni.h>
|
|
11
|
+
#include "RNMapUiSettings.hpp"
|
|
12
|
+
|
|
13
|
+
#include <optional>
|
|
14
|
+
|
|
15
|
+
namespace margelo::nitro::rngooglemapsplus {
|
|
16
|
+
|
|
17
|
+
using namespace facebook;
|
|
18
|
+
|
|
19
|
+
/**
|
|
20
|
+
* The C++ JNI bridge between the C++ struct "RNMapUiSettings" and the the Kotlin data class "RNMapUiSettings".
|
|
21
|
+
*/
|
|
22
|
+
struct JRNMapUiSettings final: public jni::JavaClass<JRNMapUiSettings> {
|
|
23
|
+
public:
|
|
24
|
+
static auto constexpr kJavaDescriptor = "Lcom/rngooglemapsplus/RNMapUiSettings;";
|
|
25
|
+
|
|
26
|
+
public:
|
|
27
|
+
/**
|
|
28
|
+
* Convert this Java/Kotlin-based struct to the C++ struct RNMapUiSettings by copying all values to C++.
|
|
29
|
+
*/
|
|
30
|
+
[[maybe_unused]]
|
|
31
|
+
[[nodiscard]]
|
|
32
|
+
RNMapUiSettings toCpp() const {
|
|
33
|
+
static const auto clazz = javaClassStatic();
|
|
34
|
+
static const auto fieldAllGesturesEnabled = clazz->getField<jni::JBoolean>("allGesturesEnabled");
|
|
35
|
+
jni::local_ref<jni::JBoolean> allGesturesEnabled = this->getFieldValue(fieldAllGesturesEnabled);
|
|
36
|
+
static const auto fieldCompassEnabled = clazz->getField<jni::JBoolean>("compassEnabled");
|
|
37
|
+
jni::local_ref<jni::JBoolean> compassEnabled = this->getFieldValue(fieldCompassEnabled);
|
|
38
|
+
static const auto fieldIndoorLevelPickerEnabled = clazz->getField<jni::JBoolean>("indoorLevelPickerEnabled");
|
|
39
|
+
jni::local_ref<jni::JBoolean> indoorLevelPickerEnabled = this->getFieldValue(fieldIndoorLevelPickerEnabled);
|
|
40
|
+
static const auto fieldMapToolbarEnabled = clazz->getField<jni::JBoolean>("mapToolbarEnabled");
|
|
41
|
+
jni::local_ref<jni::JBoolean> mapToolbarEnabled = this->getFieldValue(fieldMapToolbarEnabled);
|
|
42
|
+
static const auto fieldMyLocationButtonEnabled = clazz->getField<jni::JBoolean>("myLocationButtonEnabled");
|
|
43
|
+
jni::local_ref<jni::JBoolean> myLocationButtonEnabled = this->getFieldValue(fieldMyLocationButtonEnabled);
|
|
44
|
+
static const auto fieldRotateEnabled = clazz->getField<jni::JBoolean>("rotateEnabled");
|
|
45
|
+
jni::local_ref<jni::JBoolean> rotateEnabled = this->getFieldValue(fieldRotateEnabled);
|
|
46
|
+
static const auto fieldScrollEnabled = clazz->getField<jni::JBoolean>("scrollEnabled");
|
|
47
|
+
jni::local_ref<jni::JBoolean> scrollEnabled = this->getFieldValue(fieldScrollEnabled);
|
|
48
|
+
static const auto fieldScrollDuringRotateOrZoomEnabled = clazz->getField<jni::JBoolean>("scrollDuringRotateOrZoomEnabled");
|
|
49
|
+
jni::local_ref<jni::JBoolean> scrollDuringRotateOrZoomEnabled = this->getFieldValue(fieldScrollDuringRotateOrZoomEnabled);
|
|
50
|
+
static const auto fieldTiltEnabled = clazz->getField<jni::JBoolean>("tiltEnabled");
|
|
51
|
+
jni::local_ref<jni::JBoolean> tiltEnabled = this->getFieldValue(fieldTiltEnabled);
|
|
52
|
+
static const auto fieldZoomControlsEnabled = clazz->getField<jni::JBoolean>("zoomControlsEnabled");
|
|
53
|
+
jni::local_ref<jni::JBoolean> zoomControlsEnabled = this->getFieldValue(fieldZoomControlsEnabled);
|
|
54
|
+
static const auto fieldZoomGesturesEnabled = clazz->getField<jni::JBoolean>("zoomGesturesEnabled");
|
|
55
|
+
jni::local_ref<jni::JBoolean> zoomGesturesEnabled = this->getFieldValue(fieldZoomGesturesEnabled);
|
|
56
|
+
return RNMapUiSettings(
|
|
57
|
+
allGesturesEnabled != nullptr ? std::make_optional(static_cast<bool>(allGesturesEnabled->value())) : std::nullopt,
|
|
58
|
+
compassEnabled != nullptr ? std::make_optional(static_cast<bool>(compassEnabled->value())) : std::nullopt,
|
|
59
|
+
indoorLevelPickerEnabled != nullptr ? std::make_optional(static_cast<bool>(indoorLevelPickerEnabled->value())) : std::nullopt,
|
|
60
|
+
mapToolbarEnabled != nullptr ? std::make_optional(static_cast<bool>(mapToolbarEnabled->value())) : std::nullopt,
|
|
61
|
+
myLocationButtonEnabled != nullptr ? std::make_optional(static_cast<bool>(myLocationButtonEnabled->value())) : std::nullopt,
|
|
62
|
+
rotateEnabled != nullptr ? std::make_optional(static_cast<bool>(rotateEnabled->value())) : std::nullopt,
|
|
63
|
+
scrollEnabled != nullptr ? std::make_optional(static_cast<bool>(scrollEnabled->value())) : std::nullopt,
|
|
64
|
+
scrollDuringRotateOrZoomEnabled != nullptr ? std::make_optional(static_cast<bool>(scrollDuringRotateOrZoomEnabled->value())) : std::nullopt,
|
|
65
|
+
tiltEnabled != nullptr ? std::make_optional(static_cast<bool>(tiltEnabled->value())) : std::nullopt,
|
|
66
|
+
zoomControlsEnabled != nullptr ? std::make_optional(static_cast<bool>(zoomControlsEnabled->value())) : std::nullopt,
|
|
67
|
+
zoomGesturesEnabled != nullptr ? std::make_optional(static_cast<bool>(zoomGesturesEnabled->value())) : std::nullopt
|
|
68
|
+
);
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
public:
|
|
72
|
+
/**
|
|
73
|
+
* Create a Java/Kotlin-based struct by copying all values from the given C++ struct to Java.
|
|
74
|
+
*/
|
|
75
|
+
[[maybe_unused]]
|
|
76
|
+
static jni::local_ref<JRNMapUiSettings::javaobject> fromCpp(const RNMapUiSettings& value) {
|
|
77
|
+
return newInstance(
|
|
78
|
+
value.allGesturesEnabled.has_value() ? jni::JBoolean::valueOf(value.allGesturesEnabled.value()) : nullptr,
|
|
79
|
+
value.compassEnabled.has_value() ? jni::JBoolean::valueOf(value.compassEnabled.value()) : nullptr,
|
|
80
|
+
value.indoorLevelPickerEnabled.has_value() ? jni::JBoolean::valueOf(value.indoorLevelPickerEnabled.value()) : nullptr,
|
|
81
|
+
value.mapToolbarEnabled.has_value() ? jni::JBoolean::valueOf(value.mapToolbarEnabled.value()) : nullptr,
|
|
82
|
+
value.myLocationButtonEnabled.has_value() ? jni::JBoolean::valueOf(value.myLocationButtonEnabled.value()) : nullptr,
|
|
83
|
+
value.rotateEnabled.has_value() ? jni::JBoolean::valueOf(value.rotateEnabled.value()) : nullptr,
|
|
84
|
+
value.scrollEnabled.has_value() ? jni::JBoolean::valueOf(value.scrollEnabled.value()) : nullptr,
|
|
85
|
+
value.scrollDuringRotateOrZoomEnabled.has_value() ? jni::JBoolean::valueOf(value.scrollDuringRotateOrZoomEnabled.value()) : nullptr,
|
|
86
|
+
value.tiltEnabled.has_value() ? jni::JBoolean::valueOf(value.tiltEnabled.value()) : nullptr,
|
|
87
|
+
value.zoomControlsEnabled.has_value() ? jni::JBoolean::valueOf(value.zoomControlsEnabled.value()) : nullptr,
|
|
88
|
+
value.zoomGesturesEnabled.has_value() ? jni::JBoolean::valueOf(value.zoomGesturesEnabled.value()) : nullptr
|
|
89
|
+
);
|
|
90
|
+
}
|
|
91
|
+
};
|
|
92
|
+
|
|
93
|
+
} // namespace margelo::nitro::rngooglemapsplus
|
|
@@ -11,8 +11,10 @@
|
|
|
11
11
|
#include "RNMarker.hpp"
|
|
12
12
|
|
|
13
13
|
#include "JRNLatLng.hpp"
|
|
14
|
+
#include "JRNMarkerSvg.hpp"
|
|
14
15
|
#include "JRNPosition.hpp"
|
|
15
16
|
#include "RNLatLng.hpp"
|
|
17
|
+
#include "RNMarkerSvg.hpp"
|
|
16
18
|
#include "RNPosition.hpp"
|
|
17
19
|
#include <optional>
|
|
18
20
|
#include <string>
|
|
@@ -44,20 +46,14 @@ namespace margelo::nitro::rngooglemapsplus {
|
|
|
44
46
|
jni::local_ref<JRNLatLng> coordinate = this->getFieldValue(fieldCoordinate);
|
|
45
47
|
static const auto fieldAnchor = clazz->getField<JRNPosition>("anchor");
|
|
46
48
|
jni::local_ref<JRNPosition> anchor = this->getFieldValue(fieldAnchor);
|
|
47
|
-
static const auto
|
|
48
|
-
|
|
49
|
-
static const auto fieldHeight = clazz->getField<double>("height");
|
|
50
|
-
double height = this->getFieldValue(fieldHeight);
|
|
51
|
-
static const auto fieldIconSvg = clazz->getField<jni::JString>("iconSvg");
|
|
52
|
-
jni::local_ref<jni::JString> iconSvg = this->getFieldValue(fieldIconSvg);
|
|
49
|
+
static const auto fieldIconSvg = clazz->getField<JRNMarkerSvg>("iconSvg");
|
|
50
|
+
jni::local_ref<JRNMarkerSvg> iconSvg = this->getFieldValue(fieldIconSvg);
|
|
53
51
|
return RNMarker(
|
|
54
52
|
id->toStdString(),
|
|
55
53
|
zIndex != nullptr ? std::make_optional(zIndex->value()) : std::nullopt,
|
|
56
54
|
coordinate->toCpp(),
|
|
57
55
|
anchor != nullptr ? std::make_optional(anchor->toCpp()) : std::nullopt,
|
|
58
|
-
|
|
59
|
-
height,
|
|
60
|
-
iconSvg->toStdString()
|
|
56
|
+
iconSvg != nullptr ? std::make_optional(iconSvg->toCpp()) : std::nullopt
|
|
61
57
|
);
|
|
62
58
|
}
|
|
63
59
|
|
|
@@ -72,9 +68,7 @@ namespace margelo::nitro::rngooglemapsplus {
|
|
|
72
68
|
value.zIndex.has_value() ? jni::JDouble::valueOf(value.zIndex.value()) : nullptr,
|
|
73
69
|
JRNLatLng::fromCpp(value.coordinate),
|
|
74
70
|
value.anchor.has_value() ? JRNPosition::fromCpp(value.anchor.value()) : nullptr,
|
|
75
|
-
value.
|
|
76
|
-
value.height,
|
|
77
|
-
jni::make_jstring(value.iconSvg)
|
|
71
|
+
value.iconSvg.has_value() ? JRNMarkerSvg::fromCpp(value.iconSvg.value()) : nullptr
|
|
78
72
|
);
|
|
79
73
|
}
|
|
80
74
|
};
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
///
|
|
2
|
+
/// JRNMarkerSvg.hpp
|
|
3
|
+
/// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
|
|
4
|
+
/// https://github.com/mrousavy/nitro
|
|
5
|
+
/// Copyright © 2025 Marc Rousavy @ Margelo
|
|
6
|
+
///
|
|
7
|
+
|
|
8
|
+
#pragma once
|
|
9
|
+
|
|
10
|
+
#include <fbjni/fbjni.h>
|
|
11
|
+
#include "RNMarkerSvg.hpp"
|
|
12
|
+
|
|
13
|
+
#include <string>
|
|
14
|
+
|
|
15
|
+
namespace margelo::nitro::rngooglemapsplus {
|
|
16
|
+
|
|
17
|
+
using namespace facebook;
|
|
18
|
+
|
|
19
|
+
/**
|
|
20
|
+
* The C++ JNI bridge between the C++ struct "RNMarkerSvg" and the the Kotlin data class "RNMarkerSvg".
|
|
21
|
+
*/
|
|
22
|
+
struct JRNMarkerSvg final: public jni::JavaClass<JRNMarkerSvg> {
|
|
23
|
+
public:
|
|
24
|
+
static auto constexpr kJavaDescriptor = "Lcom/rngooglemapsplus/RNMarkerSvg;";
|
|
25
|
+
|
|
26
|
+
public:
|
|
27
|
+
/**
|
|
28
|
+
* Convert this Java/Kotlin-based struct to the C++ struct RNMarkerSvg by copying all values to C++.
|
|
29
|
+
*/
|
|
30
|
+
[[maybe_unused]]
|
|
31
|
+
[[nodiscard]]
|
|
32
|
+
RNMarkerSvg toCpp() const {
|
|
33
|
+
static const auto clazz = javaClassStatic();
|
|
34
|
+
static const auto fieldWidth = clazz->getField<double>("width");
|
|
35
|
+
double width = this->getFieldValue(fieldWidth);
|
|
36
|
+
static const auto fieldHeight = clazz->getField<double>("height");
|
|
37
|
+
double height = this->getFieldValue(fieldHeight);
|
|
38
|
+
static const auto fieldSvgString = clazz->getField<jni::JString>("svgString");
|
|
39
|
+
jni::local_ref<jni::JString> svgString = this->getFieldValue(fieldSvgString);
|
|
40
|
+
return RNMarkerSvg(
|
|
41
|
+
width,
|
|
42
|
+
height,
|
|
43
|
+
svgString->toStdString()
|
|
44
|
+
);
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
public:
|
|
48
|
+
/**
|
|
49
|
+
* Create a Java/Kotlin-based struct by copying all values from the given C++ struct to Java.
|
|
50
|
+
*/
|
|
51
|
+
[[maybe_unused]]
|
|
52
|
+
static jni::local_ref<JRNMarkerSvg::javaobject> fromCpp(const RNMarkerSvg& value) {
|
|
53
|
+
return newInstance(
|
|
54
|
+
value.width,
|
|
55
|
+
value.height,
|
|
56
|
+
jni::make_jstring(value.svgString)
|
|
57
|
+
);
|
|
58
|
+
}
|
|
59
|
+
};
|
|
60
|
+
|
|
61
|
+
} // namespace margelo::nitro::rngooglemapsplus
|
|
@@ -40,6 +40,14 @@ void JHybridRNGoogleMapsPlusViewStateUpdater::updateViewProps(jni::alias_ref<jni
|
|
|
40
40
|
view->setInitialProps(props.initialProps.value);
|
|
41
41
|
// TODO: Set isDirty = false
|
|
42
42
|
}
|
|
43
|
+
if (props.uiSettings.isDirty) {
|
|
44
|
+
view->setUiSettings(props.uiSettings.value);
|
|
45
|
+
// TODO: Set isDirty = false
|
|
46
|
+
}
|
|
47
|
+
if (props.myLocationEnabled.isDirty) {
|
|
48
|
+
view->setMyLocationEnabled(props.myLocationEnabled.value);
|
|
49
|
+
// TODO: Set isDirty = false
|
|
50
|
+
}
|
|
43
51
|
if (props.buildingEnabled.isDirty) {
|
|
44
52
|
view->setBuildingEnabled(props.buildingEnabled.value);
|
|
45
53
|
// TODO: Set isDirty = false
|
|
@@ -48,6 +56,10 @@ void JHybridRNGoogleMapsPlusViewStateUpdater::updateViewProps(jni::alias_ref<jni
|
|
|
48
56
|
view->setTrafficEnabled(props.trafficEnabled.value);
|
|
49
57
|
// TODO: Set isDirty = false
|
|
50
58
|
}
|
|
59
|
+
if (props.indoorEnabled.isDirty) {
|
|
60
|
+
view->setIndoorEnabled(props.indoorEnabled.value);
|
|
61
|
+
// TODO: Set isDirty = false
|
|
62
|
+
}
|
|
51
63
|
if (props.customMapStyle.isDirty) {
|
|
52
64
|
view->setCustomMapStyle(props.customMapStyle.value);
|
|
53
65
|
// TODO: Set isDirty = false
|
|
@@ -88,6 +100,10 @@ void JHybridRNGoogleMapsPlusViewStateUpdater::updateViewProps(jni::alias_ref<jni
|
|
|
88
100
|
view->setCircles(props.circles.value);
|
|
89
101
|
// TODO: Set isDirty = false
|
|
90
102
|
}
|
|
103
|
+
if (props.locationConfig.isDirty) {
|
|
104
|
+
view->setLocationConfig(props.locationConfig.value);
|
|
105
|
+
// TODO: Set isDirty = false
|
|
106
|
+
}
|
|
91
107
|
if (props.onMapError.isDirty) {
|
|
92
108
|
view->setOnMapError(props.onMapError.value);
|
|
93
109
|
// TODO: Set isDirty = false
|
|
@@ -44,6 +44,18 @@ abstract class HybridRNGoogleMapsPlusViewSpec: HybridView() {
|
|
|
44
44
|
@set:Keep
|
|
45
45
|
abstract var initialProps: RNInitialProps?
|
|
46
46
|
|
|
47
|
+
@get:DoNotStrip
|
|
48
|
+
@get:Keep
|
|
49
|
+
@set:DoNotStrip
|
|
50
|
+
@set:Keep
|
|
51
|
+
abstract var uiSettings: RNMapUiSettings?
|
|
52
|
+
|
|
53
|
+
@get:DoNotStrip
|
|
54
|
+
@get:Keep
|
|
55
|
+
@set:DoNotStrip
|
|
56
|
+
@set:Keep
|
|
57
|
+
abstract var myLocationEnabled: Boolean?
|
|
58
|
+
|
|
47
59
|
@get:DoNotStrip
|
|
48
60
|
@get:Keep
|
|
49
61
|
@set:DoNotStrip
|
|
@@ -56,6 +68,12 @@ abstract class HybridRNGoogleMapsPlusViewSpec: HybridView() {
|
|
|
56
68
|
@set:Keep
|
|
57
69
|
abstract var trafficEnabled: Boolean?
|
|
58
70
|
|
|
71
|
+
@get:DoNotStrip
|
|
72
|
+
@get:Keep
|
|
73
|
+
@set:DoNotStrip
|
|
74
|
+
@set:Keep
|
|
75
|
+
abstract var indoorEnabled: Boolean?
|
|
76
|
+
|
|
59
77
|
@get:DoNotStrip
|
|
60
78
|
@get:Keep
|
|
61
79
|
@set:DoNotStrip
|
|
@@ -116,6 +134,12 @@ abstract class HybridRNGoogleMapsPlusViewSpec: HybridView() {
|
|
|
116
134
|
@set:Keep
|
|
117
135
|
abstract var circles: Array<RNCircle>?
|
|
118
136
|
|
|
137
|
+
@get:DoNotStrip
|
|
138
|
+
@get:Keep
|
|
139
|
+
@set:DoNotStrip
|
|
140
|
+
@set:Keep
|
|
141
|
+
abstract var locationConfig: RNLocationConfig?
|
|
142
|
+
|
|
119
143
|
abstract var onMapError: ((error: RNMapErrorCode) -> Unit)?
|
|
120
144
|
|
|
121
145
|
private var onMapError_cxx: Func_void_RNMapErrorCode?
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
///
|
|
2
|
+
/// RNAndroidLocationConfig.kt
|
|
3
|
+
/// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
|
|
4
|
+
/// https://github.com/mrousavy/nitro
|
|
5
|
+
/// Copyright © 2025 Marc Rousavy @ Margelo
|
|
6
|
+
///
|
|
7
|
+
|
|
8
|
+
package com.rngooglemapsplus
|
|
9
|
+
|
|
10
|
+
import androidx.annotation.Keep
|
|
11
|
+
import com.facebook.proguard.annotations.DoNotStrip
|
|
12
|
+
import com.margelo.nitro.core.*
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
/**
|
|
16
|
+
* Represents the JavaScript object/struct "RNAndroidLocationConfig".
|
|
17
|
+
*/
|
|
18
|
+
@DoNotStrip
|
|
19
|
+
@Keep
|
|
20
|
+
data class RNAndroidLocationConfig
|
|
21
|
+
@DoNotStrip
|
|
22
|
+
@Keep
|
|
23
|
+
constructor(
|
|
24
|
+
@DoNotStrip
|
|
25
|
+
@Keep
|
|
26
|
+
val priority: RNAndroidLocationPriority?,
|
|
27
|
+
@DoNotStrip
|
|
28
|
+
@Keep
|
|
29
|
+
val interval: Double?,
|
|
30
|
+
@DoNotStrip
|
|
31
|
+
@Keep
|
|
32
|
+
val minUpdateInterval: Double?
|
|
33
|
+
) {
|
|
34
|
+
/* main constructor */
|
|
35
|
+
}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
///
|
|
2
|
+
/// RNAndroidLocationPriority.kt
|
|
3
|
+
/// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
|
|
4
|
+
/// https://github.com/mrousavy/nitro
|
|
5
|
+
/// Copyright © 2025 Marc Rousavy @ Margelo
|
|
6
|
+
///
|
|
7
|
+
|
|
8
|
+
package com.rngooglemapsplus
|
|
9
|
+
|
|
10
|
+
import androidx.annotation.Keep
|
|
11
|
+
import com.facebook.proguard.annotations.DoNotStrip
|
|
12
|
+
|
|
13
|
+
/**
|
|
14
|
+
* Represents the JavaScript enum/union "RNAndroidLocationPriority".
|
|
15
|
+
*/
|
|
16
|
+
@DoNotStrip
|
|
17
|
+
@Keep
|
|
18
|
+
enum class RNAndroidLocationPriority(@DoNotStrip @Keep val value: Int) {
|
|
19
|
+
PRIORITY_HIGH_ACCURACY(0),
|
|
20
|
+
PRIORITY_BALANCED_POWER_ACCURACY(1),
|
|
21
|
+
PRIORITY_LOW_POWER(2),
|
|
22
|
+
PRIORITY_PASSIVE(3);
|
|
23
|
+
}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
///
|
|
2
|
+
/// RNIOSLocationAccuracy.kt
|
|
3
|
+
/// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
|
|
4
|
+
/// https://github.com/mrousavy/nitro
|
|
5
|
+
/// Copyright © 2025 Marc Rousavy @ Margelo
|
|
6
|
+
///
|
|
7
|
+
|
|
8
|
+
package com.rngooglemapsplus
|
|
9
|
+
|
|
10
|
+
import androidx.annotation.Keep
|
|
11
|
+
import com.facebook.proguard.annotations.DoNotStrip
|
|
12
|
+
|
|
13
|
+
/**
|
|
14
|
+
* Represents the JavaScript enum/union "RNIOSLocationAccuracy".
|
|
15
|
+
*/
|
|
16
|
+
@DoNotStrip
|
|
17
|
+
@Keep
|
|
18
|
+
enum class RNIOSLocationAccuracy(@DoNotStrip @Keep val value: Int) {
|
|
19
|
+
ACCURACY_BEST(0),
|
|
20
|
+
ACCURACY_NEAREST_TEN_METER(1),
|
|
21
|
+
ACCURACY_NEAREST_HUNDRED_METER(2),
|
|
22
|
+
ACCURACY_KILOMETER(3);
|
|
23
|
+
}
|
package/nitrogen/generated/android/kotlin/com/margelo/nitro/rngooglemapsplus/RNIOSLocationConfig.kt
ADDED
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
///
|
|
2
|
+
/// RNIOSLocationConfig.kt
|
|
3
|
+
/// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
|
|
4
|
+
/// https://github.com/mrousavy/nitro
|
|
5
|
+
/// Copyright © 2025 Marc Rousavy @ Margelo
|
|
6
|
+
///
|
|
7
|
+
|
|
8
|
+
package com.rngooglemapsplus
|
|
9
|
+
|
|
10
|
+
import androidx.annotation.Keep
|
|
11
|
+
import com.facebook.proguard.annotations.DoNotStrip
|
|
12
|
+
import com.margelo.nitro.core.*
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
/**
|
|
16
|
+
* Represents the JavaScript object/struct "RNIOSLocationConfig".
|
|
17
|
+
*/
|
|
18
|
+
@DoNotStrip
|
|
19
|
+
@Keep
|
|
20
|
+
data class RNIOSLocationConfig
|
|
21
|
+
@DoNotStrip
|
|
22
|
+
@Keep
|
|
23
|
+
constructor(
|
|
24
|
+
@DoNotStrip
|
|
25
|
+
@Keep
|
|
26
|
+
val desiredAccuracy: RNIOSLocationAccuracy?,
|
|
27
|
+
@DoNotStrip
|
|
28
|
+
@Keep
|
|
29
|
+
val distanceFilterMeters: Double?
|
|
30
|
+
) {
|
|
31
|
+
/* main constructor */
|
|
32
|
+
}
|
package/nitrogen/generated/android/kotlin/com/margelo/nitro/rngooglemapsplus/RNLocationConfig.kt
ADDED
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
///
|
|
2
|
+
/// RNLocationConfig.kt
|
|
3
|
+
/// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
|
|
4
|
+
/// https://github.com/mrousavy/nitro
|
|
5
|
+
/// Copyright © 2025 Marc Rousavy @ Margelo
|
|
6
|
+
///
|
|
7
|
+
|
|
8
|
+
package com.rngooglemapsplus
|
|
9
|
+
|
|
10
|
+
import androidx.annotation.Keep
|
|
11
|
+
import com.facebook.proguard.annotations.DoNotStrip
|
|
12
|
+
import com.margelo.nitro.core.*
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
/**
|
|
16
|
+
* Represents the JavaScript object/struct "RNLocationConfig".
|
|
17
|
+
*/
|
|
18
|
+
@DoNotStrip
|
|
19
|
+
@Keep
|
|
20
|
+
data class RNLocationConfig
|
|
21
|
+
@DoNotStrip
|
|
22
|
+
@Keep
|
|
23
|
+
constructor(
|
|
24
|
+
@DoNotStrip
|
|
25
|
+
@Keep
|
|
26
|
+
val android: RNAndroidLocationConfig?,
|
|
27
|
+
@DoNotStrip
|
|
28
|
+
@Keep
|
|
29
|
+
val ios: RNIOSLocationConfig?
|
|
30
|
+
) {
|
|
31
|
+
/* main constructor */
|
|
32
|
+
}
|
package/nitrogen/generated/android/kotlin/com/margelo/nitro/rngooglemapsplus/RNMapUiSettings.kt
ADDED
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
///
|
|
2
|
+
/// RNMapUiSettings.kt
|
|
3
|
+
/// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
|
|
4
|
+
/// https://github.com/mrousavy/nitro
|
|
5
|
+
/// Copyright © 2025 Marc Rousavy @ Margelo
|
|
6
|
+
///
|
|
7
|
+
|
|
8
|
+
package com.rngooglemapsplus
|
|
9
|
+
|
|
10
|
+
import androidx.annotation.Keep
|
|
11
|
+
import com.facebook.proguard.annotations.DoNotStrip
|
|
12
|
+
import com.margelo.nitro.core.*
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
/**
|
|
16
|
+
* Represents the JavaScript object/struct "RNMapUiSettings".
|
|
17
|
+
*/
|
|
18
|
+
@DoNotStrip
|
|
19
|
+
@Keep
|
|
20
|
+
data class RNMapUiSettings
|
|
21
|
+
@DoNotStrip
|
|
22
|
+
@Keep
|
|
23
|
+
constructor(
|
|
24
|
+
@DoNotStrip
|
|
25
|
+
@Keep
|
|
26
|
+
val allGesturesEnabled: Boolean?,
|
|
27
|
+
@DoNotStrip
|
|
28
|
+
@Keep
|
|
29
|
+
val compassEnabled: Boolean?,
|
|
30
|
+
@DoNotStrip
|
|
31
|
+
@Keep
|
|
32
|
+
val indoorLevelPickerEnabled: Boolean?,
|
|
33
|
+
@DoNotStrip
|
|
34
|
+
@Keep
|
|
35
|
+
val mapToolbarEnabled: Boolean?,
|
|
36
|
+
@DoNotStrip
|
|
37
|
+
@Keep
|
|
38
|
+
val myLocationButtonEnabled: Boolean?,
|
|
39
|
+
@DoNotStrip
|
|
40
|
+
@Keep
|
|
41
|
+
val rotateEnabled: Boolean?,
|
|
42
|
+
@DoNotStrip
|
|
43
|
+
@Keep
|
|
44
|
+
val scrollEnabled: Boolean?,
|
|
45
|
+
@DoNotStrip
|
|
46
|
+
@Keep
|
|
47
|
+
val scrollDuringRotateOrZoomEnabled: Boolean?,
|
|
48
|
+
@DoNotStrip
|
|
49
|
+
@Keep
|
|
50
|
+
val tiltEnabled: Boolean?,
|
|
51
|
+
@DoNotStrip
|
|
52
|
+
@Keep
|
|
53
|
+
val zoomControlsEnabled: Boolean?,
|
|
54
|
+
@DoNotStrip
|
|
55
|
+
@Keep
|
|
56
|
+
val zoomGesturesEnabled: Boolean?
|
|
57
|
+
) {
|
|
58
|
+
/* main constructor */
|
|
59
|
+
}
|
|
@@ -35,13 +35,7 @@ data class RNMarker
|
|
|
35
35
|
val anchor: RNPosition?,
|
|
36
36
|
@DoNotStrip
|
|
37
37
|
@Keep
|
|
38
|
-
val
|
|
39
|
-
@DoNotStrip
|
|
40
|
-
@Keep
|
|
41
|
-
val height: Double,
|
|
42
|
-
@DoNotStrip
|
|
43
|
-
@Keep
|
|
44
|
-
val iconSvg: String
|
|
38
|
+
val iconSvg: RNMarkerSvg?
|
|
45
39
|
) {
|
|
46
40
|
/* main constructor */
|
|
47
41
|
}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
///
|
|
2
|
+
/// RNMarkerSvg.kt
|
|
3
|
+
/// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
|
|
4
|
+
/// https://github.com/mrousavy/nitro
|
|
5
|
+
/// Copyright © 2025 Marc Rousavy @ Margelo
|
|
6
|
+
///
|
|
7
|
+
|
|
8
|
+
package com.rngooglemapsplus
|
|
9
|
+
|
|
10
|
+
import androidx.annotation.Keep
|
|
11
|
+
import com.facebook.proguard.annotations.DoNotStrip
|
|
12
|
+
import com.margelo.nitro.core.*
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
/**
|
|
16
|
+
* Represents the JavaScript object/struct "RNMarkerSvg".
|
|
17
|
+
*/
|
|
18
|
+
@DoNotStrip
|
|
19
|
+
@Keep
|
|
20
|
+
data class RNMarkerSvg
|
|
21
|
+
@DoNotStrip
|
|
22
|
+
@Keep
|
|
23
|
+
constructor(
|
|
24
|
+
@DoNotStrip
|
|
25
|
+
@Keep
|
|
26
|
+
val width: Double,
|
|
27
|
+
@DoNotStrip
|
|
28
|
+
@Keep
|
|
29
|
+
val height: Double,
|
|
30
|
+
@DoNotStrip
|
|
31
|
+
@Keep
|
|
32
|
+
val svgString: String
|
|
33
|
+
) {
|
|
34
|
+
/* main constructor */
|
|
35
|
+
}
|