@maplibre/maplibre-react-native 10.0.0-alpha.24 → 10.0.0-alpha.26
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +12 -0
- package/CONTRIBUTING.md +1 -1
- package/android/build.gradle +51 -16
- package/docs/Annotation.md +8 -17
- package/docs/BackgroundLayer.md +136 -128
- package/docs/Callout.md +5 -4
- package/docs/Camera.md +38 -39
- package/docs/CircleLayer.md +413 -388
- package/docs/FillExtrusionLayer.md +303 -292
- package/docs/FillLayer.md +266 -251
- package/docs/HeadingIndicator.md +5 -4
- package/docs/HeatmapLayer.md +179 -172
- package/docs/ImageSource.md +5 -4
- package/docs/Images.md +5 -4
- package/docs/Light.md +131 -123
- package/docs/LineLayer.md +525 -498
- package/docs/MapView.md +23 -42
- package/docs/MarkerView.md +5 -4
- package/docs/NativeUserLocation.md +5 -4
- package/docs/PointAnnotation.md +7 -10
- package/docs/RasterLayer.md +318 -310
- package/docs/RasterSource.md +5 -4
- package/docs/ShapeSource.md +16 -15
- package/docs/Style.md +5 -4
- package/docs/SymbolLayer.md +1501 -1406
- package/docs/UserLocation.md +10 -13
- package/docs/VectorSource.md +10 -9
- package/docs/coordinates.md +4 -3
- package/docs/docs.json +49 -88
- package/docs/location.md +4 -3
- package/docs/offlineManager.md +29 -44
- package/docs/snapshotManager.md +7 -6
- package/ios/RCTMLN/RCTMLNCamera.h +0 -3
- package/ios/RCTMLN/RCTMLNCamera.m +1 -1
- package/ios/RCTMLN/RCTMLNCameraManager.m +0 -3
- package/javascript/MLNModule.ts +9 -0
- package/javascript/Maplibre.ts +1 -1
- package/javascript/components/{annotations/Annotation.tsx → Annotation.tsx} +5 -5
- package/javascript/components/Camera.tsx +257 -388
- package/javascript/components/UserLocation.tsx +1 -1
- package/javascript/hooks/useNativeRef.ts +2 -1
- package/javascript/types/CameraMode.ts +6 -0
- package/package.json +16 -24
- package/scripts/codegen.ts +340 -0
- package/scripts/templates/MaplibreStyles.ts.ejs +8 -7
- package/scripts/templates/RCTMLNStyle.h.ejs +4 -3
- package/scripts/templates/RCTMLNStyle.m.ejs +11 -10
- package/scripts/templates/RCTMLNStyleFactory.java.ejs +12 -11
- package/scripts/templates/component.md.ejs +88 -85
- package/scripts/templates/index.d.ts.ejs +2 -1
- package/scripts/templates/styleMap.ts.ejs +2 -1
- package/scripts/utils/{DocJSONBuilder.js → DocJSONBuilder.ts} +133 -128
- package/scripts/utils/{JSDocNodeTree.js → JSDocNodeTree.ts} +14 -13
- package/scripts/utils/MarkdownBuilder.ts +44 -0
- package/scripts/utils/{template-globals.js → TemplateHelpers.ts} +66 -95
- package/scripts/utils/getNativeVersion.ts +53 -0
- package/tsconfig.json +2 -3
- package/.husky/pre-commit +0 -5
- package/android/rctmln/.settings/org.eclipse.buildship.core.prefs +0 -2
- package/android/rctmln/build.gradle +0 -64
- package/android/rctmln/proguard-rules.pro +0 -25
- package/docs/OfflineManager.md +0 -246
- package/react-native.config.js +0 -10
- package/scripts/download-style-spec.sh +0 -15
- package/scripts/generate-docs.js +0 -396
- package/scripts/utils/MarkdownBuilder.js +0 -37
- package/style-spec/v8.json +0 -6645
- /package/android/{rctmln/src → src}/main/AndroidManifest.xml +0 -0
- /package/android/{rctmln/src → src}/main/java/com/maplibre/rctmln/RCTMLNPackage.java +0 -0
- /package/android/{rctmln/src → src}/main/java/com/maplibre/rctmln/components/AbstractEvent.java +0 -0
- /package/android/{rctmln/src → src}/main/java/com/maplibre/rctmln/components/AbstractEventEmitter.java +0 -0
- /package/android/{rctmln/src → src}/main/java/com/maplibre/rctmln/components/AbstractMapFeature.java +0 -0
- /package/android/{rctmln/src → src}/main/java/com/maplibre/rctmln/components/annotation/MarkerView.java +0 -0
- /package/android/{rctmln/src → src}/main/java/com/maplibre/rctmln/components/annotation/MarkerViewManager.java +0 -0
- /package/android/{rctmln/src → src}/main/java/com/maplibre/rctmln/components/annotation/RCTMLNCallout.java +0 -0
- /package/android/{rctmln/src → src}/main/java/com/maplibre/rctmln/components/annotation/RCTMLNCalloutManager.java +0 -0
- /package/android/{rctmln/src → src}/main/java/com/maplibre/rctmln/components/annotation/RCTMLNMarkerView.java +0 -0
- /package/android/{rctmln/src → src}/main/java/com/maplibre/rctmln/components/annotation/RCTMLNMarkerViewManager.java +0 -0
- /package/android/{rctmln/src → src}/main/java/com/maplibre/rctmln/components/annotation/RCTMLNPointAnnotation.java +0 -0
- /package/android/{rctmln/src → src}/main/java/com/maplibre/rctmln/components/annotation/RCTMLNPointAnnotationManager.java +0 -0
- /package/android/{rctmln/src → src}/main/java/com/maplibre/rctmln/components/camera/CameraStop.java +0 -0
- /package/android/{rctmln/src → src}/main/java/com/maplibre/rctmln/components/camera/CameraUpdateItem.java +0 -0
- /package/android/{rctmln/src → src}/main/java/com/maplibre/rctmln/components/camera/CameraUpdateQueue.java +0 -0
- /package/android/{rctmln/src → src}/main/java/com/maplibre/rctmln/components/camera/RCTMLNCamera.java +0 -0
- /package/android/{rctmln/src → src}/main/java/com/maplibre/rctmln/components/camera/RCTMLNCameraManager.java +0 -0
- /package/android/{rctmln/src → src}/main/java/com/maplibre/rctmln/components/camera/constants/CameraMode.java +0 -0
- /package/android/{rctmln/src → src}/main/java/com/maplibre/rctmln/components/images/RCTMLNImages.java +0 -0
- /package/android/{rctmln/src → src}/main/java/com/maplibre/rctmln/components/images/RCTMLNImagesManager.java +0 -0
- /package/android/{rctmln/src → src}/main/java/com/maplibre/rctmln/components/location/LocationComponentManager.java +0 -0
- /package/android/{rctmln/src → src}/main/java/com/maplibre/rctmln/components/location/RCTMLNNativeUserLocation.java +0 -0
- /package/android/{rctmln/src → src}/main/java/com/maplibre/rctmln/components/location/RCTMLNNativeUserLocationManager.java +0 -0
- /package/android/{rctmln/src → src}/main/java/com/maplibre/rctmln/components/mapview/LayerSourceInfo.java +0 -0
- /package/android/{rctmln/src → src}/main/java/com/maplibre/rctmln/components/mapview/RCTMLNAndroidTextureMapView.java +0 -0
- /package/android/{rctmln/src → src}/main/java/com/maplibre/rctmln/components/mapview/RCTMLNAndroidTextureMapViewManager.java +0 -0
- /package/android/{rctmln/src → src}/main/java/com/maplibre/rctmln/components/mapview/RCTMLNMapView.java +0 -0
- /package/android/{rctmln/src → src}/main/java/com/maplibre/rctmln/components/mapview/RCTMLNMapViewManager.java +0 -0
- /package/android/{rctmln/src → src}/main/java/com/maplibre/rctmln/components/mapview/helpers/CameraChangeTracker.java +0 -0
- /package/android/{rctmln/src → src}/main/java/com/maplibre/rctmln/components/styles/RCTMLNStyle.java +0 -0
- /package/android/{rctmln/src → src}/main/java/com/maplibre/rctmln/components/styles/RCTMLNStyleFactory.java +0 -0
- /package/android/{rctmln/src → src}/main/java/com/maplibre/rctmln/components/styles/RCTMLNStyleFunctionParser.java +0 -0
- /package/android/{rctmln/src → src}/main/java/com/maplibre/rctmln/components/styles/RCTMLNStyleValue.java +0 -0
- /package/android/{rctmln/src → src}/main/java/com/maplibre/rctmln/components/styles/layers/RCTLayer.java +0 -0
- /package/android/{rctmln/src → src}/main/java/com/maplibre/rctmln/components/styles/layers/RCTMLNBackgroundLayer.java +0 -0
- /package/android/{rctmln/src → src}/main/java/com/maplibre/rctmln/components/styles/layers/RCTMLNBackgroundLayerManager.java +0 -0
- /package/android/{rctmln/src → src}/main/java/com/maplibre/rctmln/components/styles/layers/RCTMLNCircleLayer.java +0 -0
- /package/android/{rctmln/src → src}/main/java/com/maplibre/rctmln/components/styles/layers/RCTMLNCircleLayerManager.java +0 -0
- /package/android/{rctmln/src → src}/main/java/com/maplibre/rctmln/components/styles/layers/RCTMLNFillExtrusionLayer.java +0 -0
- /package/android/{rctmln/src → src}/main/java/com/maplibre/rctmln/components/styles/layers/RCTMLNFillExtrusionLayerManager.java +0 -0
- /package/android/{rctmln/src → src}/main/java/com/maplibre/rctmln/components/styles/layers/RCTMLNFillLayer.java +0 -0
- /package/android/{rctmln/src → src}/main/java/com/maplibre/rctmln/components/styles/layers/RCTMLNFillLayerManager.java +0 -0
- /package/android/{rctmln/src → src}/main/java/com/maplibre/rctmln/components/styles/layers/RCTMLNHeatmapLayer.java +0 -0
- /package/android/{rctmln/src → src}/main/java/com/maplibre/rctmln/components/styles/layers/RCTMLNHeatmapLayerManager.java +0 -0
- /package/android/{rctmln/src → src}/main/java/com/maplibre/rctmln/components/styles/layers/RCTMLNLineLayer.java +0 -0
- /package/android/{rctmln/src → src}/main/java/com/maplibre/rctmln/components/styles/layers/RCTMLNLineLayerManager.java +0 -0
- /package/android/{rctmln/src → src}/main/java/com/maplibre/rctmln/components/styles/layers/RCTMLNRasterLayer.java +0 -0
- /package/android/{rctmln/src → src}/main/java/com/maplibre/rctmln/components/styles/layers/RCTMLNRasterLayerManager.java +0 -0
- /package/android/{rctmln/src → src}/main/java/com/maplibre/rctmln/components/styles/layers/RCTMLNSymbolLayer.java +0 -0
- /package/android/{rctmln/src → src}/main/java/com/maplibre/rctmln/components/styles/layers/RCTMLNSymbolLayerManager.java +0 -0
- /package/android/{rctmln/src → src}/main/java/com/maplibre/rctmln/components/styles/light/RCTMLNLight.java +0 -0
- /package/android/{rctmln/src → src}/main/java/com/maplibre/rctmln/components/styles/light/RCTMLNLightManager.java +0 -0
- /package/android/{rctmln/src → src}/main/java/com/maplibre/rctmln/components/styles/sources/RCTMLNImageSource.java +0 -0
- /package/android/{rctmln/src → src}/main/java/com/maplibre/rctmln/components/styles/sources/RCTMLNImageSourceManager.java +0 -0
- /package/android/{rctmln/src → src}/main/java/com/maplibre/rctmln/components/styles/sources/RCTMLNRasterSource.java +0 -0
- /package/android/{rctmln/src → src}/main/java/com/maplibre/rctmln/components/styles/sources/RCTMLNRasterSourceManager.java +0 -0
- /package/android/{rctmln/src → src}/main/java/com/maplibre/rctmln/components/styles/sources/RCTMLNShapeSource.java +0 -0
- /package/android/{rctmln/src → src}/main/java/com/maplibre/rctmln/components/styles/sources/RCTMLNShapeSourceManager.java +0 -0
- /package/android/{rctmln/src → src}/main/java/com/maplibre/rctmln/components/styles/sources/RCTMLNTileSource.java +0 -0
- /package/android/{rctmln/src → src}/main/java/com/maplibre/rctmln/components/styles/sources/RCTMLNTileSourceManager.java +0 -0
- /package/android/{rctmln/src → src}/main/java/com/maplibre/rctmln/components/styles/sources/RCTMLNVectorSource.java +0 -0
- /package/android/{rctmln/src → src}/main/java/com/maplibre/rctmln/components/styles/sources/RCTMLNVectorSourceManager.java +0 -0
- /package/android/{rctmln/src → src}/main/java/com/maplibre/rctmln/components/styles/sources/RCTSource.java +0 -0
- /package/android/{rctmln/src → src}/main/java/com/maplibre/rctmln/events/AbstractEvent.java +0 -0
- /package/android/{rctmln/src → src}/main/java/com/maplibre/rctmln/events/AndroidCallbackEvent.java +0 -0
- /package/android/{rctmln/src → src}/main/java/com/maplibre/rctmln/events/EventEmitter.java +0 -0
- /package/android/{rctmln/src → src}/main/java/com/maplibre/rctmln/events/FeatureClickEvent.java +0 -0
- /package/android/{rctmln/src → src}/main/java/com/maplibre/rctmln/events/IEvent.java +0 -0
- /package/android/{rctmln/src → src}/main/java/com/maplibre/rctmln/events/ImageMissingEvent.java +0 -0
- /package/android/{rctmln/src → src}/main/java/com/maplibre/rctmln/events/LocationEvent.java +0 -0
- /package/android/{rctmln/src → src}/main/java/com/maplibre/rctmln/events/MapChangeEvent.java +0 -0
- /package/android/{rctmln/src → src}/main/java/com/maplibre/rctmln/events/MapClickEvent.java +0 -0
- /package/android/{rctmln/src → src}/main/java/com/maplibre/rctmln/events/MapUserTrackingModeEvent.java +0 -0
- /package/android/{rctmln/src → src}/main/java/com/maplibre/rctmln/events/OfflineEvent.java +0 -0
- /package/android/{rctmln/src → src}/main/java/com/maplibre/rctmln/events/PointAnnotationClickEvent.java +0 -0
- /package/android/{rctmln/src → src}/main/java/com/maplibre/rctmln/events/PointAnnotationDragEvent.java +0 -0
- /package/android/{rctmln/src → src}/main/java/com/maplibre/rctmln/events/constants/EventKeys.java +0 -0
- /package/android/{rctmln/src → src}/main/java/com/maplibre/rctmln/events/constants/EventTypes.java +0 -0
- /package/android/{rctmln/src → src}/main/java/com/maplibre/rctmln/http/CustomHeadersInterceptor.java +0 -0
- /package/android/{rctmln/src → src}/main/java/com/maplibre/rctmln/location/LocationManager.java +0 -0
- /package/android/{rctmln/src → src}/main/java/com/maplibre/rctmln/location/UserLocation.java +0 -0
- /package/android/{rctmln/src → src}/main/java/com/maplibre/rctmln/location/UserLocationVerticalAlignment.java +0 -0
- /package/android/{rctmln/src → src}/main/java/com/maplibre/rctmln/location/UserTrackingMode.java +0 -0
- /package/android/{rctmln/src → src}/main/java/com/maplibre/rctmln/location/UserTrackingState.java +0 -0
- /package/android/{rctmln/src → src}/main/java/com/maplibre/rctmln/modules/RCTMLNLocationModule.java +0 -0
- /package/android/{rctmln/src → src}/main/java/com/maplibre/rctmln/modules/RCTMLNLogging.java +0 -0
- /package/android/{rctmln/src → src}/main/java/com/maplibre/rctmln/modules/RCTMLNModule.java +0 -0
- /package/android/{rctmln/src → src}/main/java/com/maplibre/rctmln/modules/RCTMLNOfflineModule.java +0 -0
- /package/android/{rctmln/src → src}/main/java/com/maplibre/rctmln/modules/RCTMLNSnapshotModule.java +0 -0
- /package/android/{rctmln/src → src}/main/java/com/maplibre/rctmln/utils/BitmapUtils.java +0 -0
- /package/android/{rctmln/src → src}/main/java/com/maplibre/rctmln/utils/ClusterPropertyEntry.java +0 -0
- /package/android/{rctmln/src → src}/main/java/com/maplibre/rctmln/utils/ConvertUtils.java +0 -0
- /package/android/{rctmln/src → src}/main/java/com/maplibre/rctmln/utils/DownloadMapImageTask.java +0 -0
- /package/android/{rctmln/src → src}/main/java/com/maplibre/rctmln/utils/ExpressionParser.java +0 -0
- /package/android/{rctmln/src → src}/main/java/com/maplibre/rctmln/utils/GeoJSONUtils.java +0 -0
- /package/android/{rctmln/src → src}/main/java/com/maplibre/rctmln/utils/GeoViewport.java +0 -0
- /package/android/{rctmln/src → src}/main/java/com/maplibre/rctmln/utils/ImageEntry.java +0 -0
- /package/android/{rctmln/src → src}/main/java/com/maplibre/rctmln/utils/ResourceUtils.java +0 -0
- /package/android/{rctmln/src → src}/main/java/com/maplibre/rctmln/utils/SimpleEventCallback.java +0 -0
- /package/android/{rctmln/src → src}/main/java/com/maplibre/rctmln/utils/SphericalMercator.java +0 -0
- /package/android/{rctmln/src → src}/main/res/drawable/empty.xml +0 -0
- /package/android/{rctmln/src → src}/main/res/drawable/empty_drawable.png +0 -0
- /package/android/{rctmln/src → src}/main/res/drawable-xxhdpi/red_marker.png +0 -0
- /package/android/{rctmln/src → src}/main/res/layout/annotation.xml +0 -0
- /package/android/{rctmln/src → src}/main/res/values/strings.xml +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
const iosPropNameOverrides = {};
|
|
1
|
+
const iosPropNameOverrides: Record<string, string> = {};
|
|
2
2
|
|
|
3
|
-
const iosSpecOverrides = {
|
|
3
|
+
const iosSpecOverrides: Record<string, string> = {
|
|
4
4
|
"icon-allow-overlap": "icon-allows-overlap",
|
|
5
5
|
"icon-image": "icon-image-name",
|
|
6
6
|
"icon-ignore-placement": "icon-ignores-placement",
|
|
@@ -40,19 +40,18 @@ const iosSpecOverrides = {
|
|
|
40
40
|
"text-writing-mode": "text-writing-modes",
|
|
41
41
|
};
|
|
42
42
|
|
|
43
|
-
function exists(value) {
|
|
43
|
+
export function exists<T>(value: T): value is NonNullable<T> {
|
|
44
44
|
return typeof value !== "undefined" && value !== null;
|
|
45
45
|
}
|
|
46
|
-
global.exists = exists;
|
|
47
46
|
|
|
48
|
-
|
|
47
|
+
export function getValue(value: any, defaultValue: any) {
|
|
49
48
|
if (!exists(value) || value === "") {
|
|
50
49
|
return defaultValue;
|
|
51
50
|
}
|
|
52
51
|
return value;
|
|
53
|
-
}
|
|
52
|
+
}
|
|
54
53
|
|
|
55
|
-
function camelCase(str, delimiter = "-") {
|
|
54
|
+
export function camelCase(str: string, delimiter = "-") {
|
|
56
55
|
const parts = str.split(delimiter);
|
|
57
56
|
return parts
|
|
58
57
|
.map((part, index) => {
|
|
@@ -63,9 +62,8 @@ function camelCase(str, delimiter = "-") {
|
|
|
63
62
|
})
|
|
64
63
|
.join("");
|
|
65
64
|
}
|
|
66
|
-
global.camelCase = camelCase;
|
|
67
65
|
|
|
68
|
-
function pascalCase(str, delimiter = "-") {
|
|
66
|
+
export function pascalCase(str: string, delimiter = "-") {
|
|
69
67
|
const parts = str.split(delimiter);
|
|
70
68
|
return parts
|
|
71
69
|
.map((part) => {
|
|
@@ -73,16 +71,15 @@ function pascalCase(str, delimiter = "-") {
|
|
|
73
71
|
})
|
|
74
72
|
.join("");
|
|
75
73
|
}
|
|
76
|
-
global.pascalCase = pascalCase;
|
|
77
74
|
|
|
78
|
-
|
|
75
|
+
export function setLayerMethodName(layer: any, platform: "android" | "ios") {
|
|
79
76
|
if (platform === "ios") {
|
|
80
77
|
return `${camelCase(layer.name)}Layer`;
|
|
81
78
|
}
|
|
82
79
|
return `set${pascalCase(layer.name)}LayerStyle`;
|
|
83
|
-
}
|
|
80
|
+
}
|
|
84
81
|
|
|
85
|
-
|
|
82
|
+
export function getLayerType(layer: any, platform: "android" | "ios") {
|
|
86
83
|
const isIOS = platform === "ios";
|
|
87
84
|
|
|
88
85
|
switch (layer.name) {
|
|
@@ -111,20 +108,20 @@ global.getLayerType = function (layer, platform) {
|
|
|
111
108
|
`Is ${layer.name} a new layer? We should add support for it!`,
|
|
112
109
|
);
|
|
113
110
|
}
|
|
114
|
-
}
|
|
111
|
+
}
|
|
115
112
|
|
|
116
|
-
|
|
113
|
+
export function ifOrElseIf(index: number) {
|
|
117
114
|
if (index === 0) {
|
|
118
115
|
return "if";
|
|
119
116
|
}
|
|
120
117
|
return "} else if";
|
|
121
|
-
}
|
|
118
|
+
}
|
|
122
119
|
|
|
123
|
-
|
|
124
|
-
return `@[@${
|
|
125
|
-
}
|
|
120
|
+
export function iosStringArrayLiteral(array: string[]) {
|
|
121
|
+
return `@[@${array.map((item) => `"${item}"`).join(", @")}]`;
|
|
122
|
+
}
|
|
126
123
|
|
|
127
|
-
function iosPropName(name) {
|
|
124
|
+
export function iosPropName(name: string) {
|
|
128
125
|
if (name.indexOf("visibility") !== -1) {
|
|
129
126
|
return "visible";
|
|
130
127
|
}
|
|
@@ -137,24 +134,22 @@ function iosPropName(name) {
|
|
|
137
134
|
return name;
|
|
138
135
|
}
|
|
139
136
|
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
global.iosMapLibrePropName = function (name) {
|
|
137
|
+
export function iosMapLibrePropName(name: string) {
|
|
143
138
|
const result = iosPropName(name);
|
|
144
139
|
if (result === "fillExtrusionVerticalGradient") {
|
|
145
140
|
return "fillExtrusionHasVerticalGradient";
|
|
146
141
|
}
|
|
147
142
|
return undefined;
|
|
148
|
-
}
|
|
143
|
+
}
|
|
149
144
|
|
|
150
|
-
|
|
145
|
+
export function iosPropMethodName(layer: any, name: string) {
|
|
151
146
|
if (name.indexOf("Visibility") !== -1) {
|
|
152
147
|
return pascalCase(layer.name) + "StyleLayer" + name;
|
|
153
148
|
}
|
|
154
149
|
return name;
|
|
155
|
-
}
|
|
150
|
+
}
|
|
156
151
|
|
|
157
|
-
function androidInputType(type, value) {
|
|
152
|
+
export function androidInputType(type: string, value?: string): string {
|
|
158
153
|
if (type === "array" && value) {
|
|
159
154
|
return `${androidInputType(value)}[]`;
|
|
160
155
|
}
|
|
@@ -171,9 +166,7 @@ function androidInputType(type, value) {
|
|
|
171
166
|
}
|
|
172
167
|
}
|
|
173
168
|
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
function androidOutputType(type, value) {
|
|
169
|
+
export function androidOutputType(type: string, value?: any): string {
|
|
177
170
|
if (type === "array" && value) {
|
|
178
171
|
return `${androidOutputType(value)}[]`;
|
|
179
172
|
}
|
|
@@ -190,9 +183,7 @@ function androidOutputType(type, value) {
|
|
|
190
183
|
}
|
|
191
184
|
}
|
|
192
185
|
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
global.androidGetConfigType = function (androidType, prop) {
|
|
186
|
+
export function androidGetConfigType(androidType: string, prop: any) {
|
|
196
187
|
switch (androidType) {
|
|
197
188
|
case "Integer":
|
|
198
189
|
return "styleValue.getInt(VALUE_KEY)";
|
|
@@ -211,9 +202,9 @@ global.androidGetConfigType = function (androidType, prop) {
|
|
|
211
202
|
return "styleValue.getString(VALUE_KEY)";
|
|
212
203
|
}
|
|
213
204
|
}
|
|
214
|
-
}
|
|
205
|
+
}
|
|
215
206
|
|
|
216
|
-
|
|
207
|
+
export function jsStyleType(prop: any) {
|
|
217
208
|
if (prop.type === "color") {
|
|
218
209
|
return "StyleTypes.Color";
|
|
219
210
|
}
|
|
@@ -235,9 +226,9 @@ global.jsStyleType = function (prop) {
|
|
|
235
226
|
}
|
|
236
227
|
|
|
237
228
|
return "StyleTypes.Constant";
|
|
238
|
-
}
|
|
229
|
+
}
|
|
239
230
|
|
|
240
|
-
|
|
231
|
+
export function jsDocPropRequires(prop: any) {
|
|
241
232
|
if (!prop.doc.requires) {
|
|
242
233
|
return;
|
|
243
234
|
}
|
|
@@ -250,13 +241,13 @@ global.jsDocPropRequires = function (prop) {
|
|
|
250
241
|
}
|
|
251
242
|
|
|
252
243
|
return desc;
|
|
253
|
-
}
|
|
244
|
+
}
|
|
254
245
|
|
|
255
|
-
|
|
256
|
-
const result = {};
|
|
246
|
+
export function getEnums(layers: any[]) {
|
|
247
|
+
const result: Record<string, any> = {};
|
|
257
248
|
|
|
258
249
|
layers.forEach((layer) => {
|
|
259
|
-
layer.properties.forEach((property) => {
|
|
250
|
+
layer.properties.forEach((property: any) => {
|
|
260
251
|
if (
|
|
261
252
|
property.type === "enum" ||
|
|
262
253
|
(property.type === "array" && property.value === "enum")
|
|
@@ -269,10 +260,10 @@ global.getEnums = function (layers) {
|
|
|
269
260
|
});
|
|
270
261
|
});
|
|
271
262
|
return Object.values(result);
|
|
272
|
-
}
|
|
263
|
+
}
|
|
273
264
|
|
|
274
|
-
|
|
275
|
-
const propTypes = [];
|
|
265
|
+
export function dtsInterfaceType(prop: any) {
|
|
266
|
+
const propTypes: string[] = [];
|
|
276
267
|
|
|
277
268
|
if (prop.name.indexOf("Translate") !== -1 && prop.type !== "enum") {
|
|
278
269
|
propTypes.push("Translation");
|
|
@@ -332,7 +323,7 @@ ${startAtSpace(2, "")}`;
|
|
|
332
323
|
let params = "";
|
|
333
324
|
if (prop.expression && prop.expression.parameters) {
|
|
334
325
|
params = `,[${prop.expression.parameters
|
|
335
|
-
.map((v) => `'${v}'`)
|
|
326
|
+
.map((v: string) => `'${v}'`)
|
|
336
327
|
.join(",")}]`;
|
|
337
328
|
}
|
|
338
329
|
return `Value<${propTypes[0]}${params}>`;
|
|
@@ -340,9 +331,9 @@ ${startAtSpace(2, "")}`;
|
|
|
340
331
|
return propTypes[0];
|
|
341
332
|
}
|
|
342
333
|
}
|
|
343
|
-
}
|
|
334
|
+
}
|
|
344
335
|
|
|
345
|
-
|
|
336
|
+
export function jsDocReactProp(prop: any) {
|
|
346
337
|
const propTypes = [];
|
|
347
338
|
|
|
348
339
|
if (prop.type === "color") {
|
|
@@ -394,9 +385,9 @@ ${startAtSpace(2, "])")}`;
|
|
|
394
385
|
} else {
|
|
395
386
|
return propTypes[0];
|
|
396
387
|
}
|
|
397
|
-
}
|
|
388
|
+
}
|
|
398
389
|
|
|
399
|
-
function startAtSpace(spaceCount, str) {
|
|
390
|
+
export function startAtSpace(spaceCount: number, str: string) {
|
|
400
391
|
let value = "";
|
|
401
392
|
|
|
402
393
|
for (let i = 0; i < spaceCount; i++) {
|
|
@@ -406,31 +397,21 @@ function startAtSpace(spaceCount, str) {
|
|
|
406
397
|
return `${value}${str}`;
|
|
407
398
|
}
|
|
408
399
|
|
|
409
|
-
|
|
410
|
-
|
|
411
|
-
function replaceNewLine(str) {
|
|
412
|
-
if (str === undefined) {
|
|
413
|
-
return undefined;
|
|
414
|
-
}
|
|
415
|
-
if (str === null) {
|
|
416
|
-
return null;
|
|
417
|
-
}
|
|
418
|
-
return str.replace(/\n/g, "<br/>");
|
|
400
|
+
export function replaceNewLine(str: string) {
|
|
401
|
+
return str?.replace(/\n/g, "<br/>");
|
|
419
402
|
}
|
|
420
403
|
|
|
421
|
-
|
|
422
|
-
|
|
423
|
-
global.styleMarkdownTableRow = function (style) {
|
|
404
|
+
export function styleMarkdownTableRow(style: any) {
|
|
424
405
|
return `| \`${style.name}\` | \`${style.type}\` | \`${
|
|
425
406
|
style.requires.join(", ") || "none"
|
|
426
407
|
}\` | \`${style.disabledBy.join(", ") || "none"}\` | ${replaceNewLine(
|
|
427
408
|
style.description,
|
|
428
409
|
)} |`;
|
|
429
|
-
}
|
|
410
|
+
}
|
|
430
411
|
|
|
431
|
-
|
|
412
|
+
export function methodMarkdownTableRow(method: any) {
|
|
432
413
|
return method.params
|
|
433
|
-
.map((param) => {
|
|
414
|
+
.map((param: any) => {
|
|
434
415
|
return `| \`${param.name}\` | \`${
|
|
435
416
|
(param.type && param.type.name) || "n/a"
|
|
436
417
|
}\` | \`${param.optional ? "No" : "Yes"}\` | ${replaceNewLine(
|
|
@@ -438,9 +419,9 @@ global.methodMarkdownTableRow = function (method) {
|
|
|
438
419
|
)} |`;
|
|
439
420
|
})
|
|
440
421
|
.join("\n");
|
|
441
|
-
}
|
|
422
|
+
}
|
|
442
423
|
|
|
443
|
-
function _propMarkdownTableRows(props, prefix = "") {
|
|
424
|
+
function _propMarkdownTableRows(props: any[], prefix = "") {
|
|
444
425
|
return props
|
|
445
426
|
.map((prop) => {
|
|
446
427
|
let { type } = prop;
|
|
@@ -449,51 +430,46 @@ function _propMarkdownTableRows(props, prefix = "") {
|
|
|
449
430
|
}
|
|
450
431
|
const defaultValue = prop.default || "";
|
|
451
432
|
const { description = "" } = prop;
|
|
433
|
+
|
|
452
434
|
let result = `| ${prefix}${
|
|
453
435
|
prop.name
|
|
454
436
|
} | \`${type.replace(/^\\\| /, "").replace(/\n/g, " ")}\` | \`${defaultValue}\` | \`${
|
|
455
437
|
prop.required
|
|
456
438
|
}\` | ${replaceNewLine(description)} |`;
|
|
439
|
+
|
|
457
440
|
if (type === "shape") {
|
|
458
441
|
result = `${result}\n${_propMarkdownTableRows(
|
|
459
442
|
prop.type.value,
|
|
460
443
|
` ${prefix}`,
|
|
461
444
|
)}`;
|
|
462
445
|
}
|
|
446
|
+
|
|
463
447
|
return result;
|
|
464
448
|
})
|
|
465
449
|
.join("\n");
|
|
466
450
|
}
|
|
467
451
|
|
|
468
|
-
|
|
452
|
+
export function propMarkdownTableRows(component: any) {
|
|
469
453
|
return _propMarkdownTableRows(component.props, "");
|
|
470
|
-
}
|
|
454
|
+
}
|
|
471
455
|
|
|
472
|
-
|
|
456
|
+
export function getMarkdownMethodSignature(method: {
|
|
457
|
+
name: string;
|
|
458
|
+
params: { name: string; optional: boolean }[];
|
|
459
|
+
}) {
|
|
473
460
|
const params = method.params
|
|
474
|
-
.map((param
|
|
475
|
-
|
|
461
|
+
.map((param) => (param.optional ? `[${param.name}]` : param.name))
|
|
462
|
+
.join(", ");
|
|
476
463
|
|
|
477
|
-
|
|
478
|
-
|
|
479
|
-
if (i !== 0) {
|
|
480
|
-
name += ", ";
|
|
481
|
-
}
|
|
482
|
-
|
|
483
|
-
name += param.name;
|
|
484
|
-
return isOptional ? `[${name}]` : name;
|
|
485
|
-
})
|
|
486
|
-
.join("");
|
|
487
|
-
|
|
488
|
-
return `${method.name}(${params})`;
|
|
489
|
-
};
|
|
464
|
+
return `\`${method.name}(${params})\``;
|
|
465
|
+
}
|
|
490
466
|
|
|
491
|
-
|
|
467
|
+
export function getMarkdownMethodExamples(method: any) {
|
|
492
468
|
if (method.examples == null) {
|
|
493
469
|
return null;
|
|
494
470
|
}
|
|
495
471
|
return method.examples
|
|
496
|
-
.map((example) => {
|
|
472
|
+
.map((example: string) => {
|
|
497
473
|
return `
|
|
498
474
|
|
|
499
475
|
\`\`\`javascript
|
|
@@ -503,9 +479,9 @@ ${example.trim()}
|
|
|
503
479
|
`;
|
|
504
480
|
})
|
|
505
481
|
.join("");
|
|
506
|
-
}
|
|
482
|
+
}
|
|
507
483
|
|
|
508
|
-
|
|
484
|
+
export function getStyleDefaultValue(style: any) {
|
|
509
485
|
if (style.type === "string" && style.default === "") {
|
|
510
486
|
return "empty string";
|
|
511
487
|
} else if (style.type.includes("array")) {
|
|
@@ -513,7 +489,7 @@ global.getStyleDefaultValue = function (style) {
|
|
|
513
489
|
} else {
|
|
514
490
|
return style.default;
|
|
515
491
|
}
|
|
516
|
-
}
|
|
492
|
+
}
|
|
517
493
|
|
|
518
494
|
Object.keys(iosSpecOverrides).forEach((propName) => {
|
|
519
495
|
const camelCasePropName = camelCase(propName);
|
|
@@ -521,8 +497,3 @@ Object.keys(iosSpecOverrides).forEach((propName) => {
|
|
|
521
497
|
iosSpecOverrides[propName],
|
|
522
498
|
);
|
|
523
499
|
});
|
|
524
|
-
|
|
525
|
-
module.exports = {
|
|
526
|
-
camelCase,
|
|
527
|
-
pascalCase,
|
|
528
|
-
};
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
import { promises as fs } from "fs";
|
|
2
|
+
import path from "node:path";
|
|
3
|
+
|
|
4
|
+
async function getNativeVersion(pathSegments: string[], regex: RegExp) {
|
|
5
|
+
const resolvedFilePath = path.join(__dirname, "..", "..", ...pathSegments);
|
|
6
|
+
const lines = (await fs.readFile(resolvedFilePath, "utf8")).split("\n");
|
|
7
|
+
const line = lines.filter((i) => regex.exec(i))[0];
|
|
8
|
+
const version = regex.exec(line)?.[1];
|
|
9
|
+
|
|
10
|
+
if (!version) {
|
|
11
|
+
throw new Error("Could not find native version from " + resolvedFilePath);
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
return version;
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
let cachedAndroidVersion: string;
|
|
18
|
+
let cachedIosVersion: string;
|
|
19
|
+
|
|
20
|
+
export const getAndroidVersion = async () => {
|
|
21
|
+
if (!cachedAndroidVersion) {
|
|
22
|
+
cachedAndroidVersion = await getNativeVersion(
|
|
23
|
+
["android", "build.gradle"],
|
|
24
|
+
/^\s+implementation\s+"org.maplibre.gl:android-sdk:(\d+\.\d+\.\d+)"$/,
|
|
25
|
+
);
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
return cachedAndroidVersion;
|
|
29
|
+
};
|
|
30
|
+
|
|
31
|
+
export const getIosVersion = async () => {
|
|
32
|
+
if (!cachedIosVersion) {
|
|
33
|
+
cachedIosVersion = await getNativeVersion(
|
|
34
|
+
["maplibre-react-native.podspec"],
|
|
35
|
+
/^\s+version:\s*"(\d+\.\d+\.\d+)"$/,
|
|
36
|
+
);
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
return cachedIosVersion;
|
|
40
|
+
};
|
|
41
|
+
|
|
42
|
+
export function isVersionGTE(
|
|
43
|
+
version: string,
|
|
44
|
+
otherVersion: string | undefined,
|
|
45
|
+
) {
|
|
46
|
+
return (
|
|
47
|
+
!!otherVersion?.match(/^(\d+\.\d+\.\d+)$/) &&
|
|
48
|
+
version.localeCompare(otherVersion, undefined, {
|
|
49
|
+
numeric: true,
|
|
50
|
+
sensitivity: "base",
|
|
51
|
+
}) >= 0
|
|
52
|
+
);
|
|
53
|
+
}
|
package/tsconfig.json
CHANGED
|
@@ -10,6 +10,7 @@
|
|
|
10
10
|
"isolatedModules": true,
|
|
11
11
|
"skipLibCheck": true,
|
|
12
12
|
"strict": true,
|
|
13
|
+
"strictNullChecks": true,
|
|
13
14
|
"types": ["node", "react-native", "geojson", "jest"],
|
|
14
15
|
"moduleResolution": "node",
|
|
15
16
|
"allowSyntheticDefaultImports": true,
|
|
@@ -17,7 +18,5 @@
|
|
|
17
18
|
"noUnusedLocals": true,
|
|
18
19
|
"noImplicitReturns": true
|
|
19
20
|
},
|
|
20
|
-
"include": [
|
|
21
|
-
"javascript/**/*", "index.ts"
|
|
22
|
-
],
|
|
21
|
+
"include": ["javascript/**/*", "index.ts"]
|
|
23
22
|
}
|
package/.husky/pre-commit
DELETED
|
@@ -1,64 +0,0 @@
|
|
|
1
|
-
apply plugin: 'com.android.library'
|
|
2
|
-
|
|
3
|
-
def safeExtGet(prop, fallback) {
|
|
4
|
-
rootProject.ext.has(prop) ? rootProject.ext.get(prop) : fallback
|
|
5
|
-
}
|
|
6
|
-
|
|
7
|
-
def isNewArchitectureEnabled() {
|
|
8
|
-
return project.hasProperty("newArchEnabled") && project.newArchEnabled == "true"
|
|
9
|
-
}
|
|
10
|
-
|
|
11
|
-
android {
|
|
12
|
-
compileSdkVersion safeExtGet("compileSdkVersion", 33)
|
|
13
|
-
buildToolsVersion safeExtGet("buildToolsVersion", '33.0.1')
|
|
14
|
-
|
|
15
|
-
defaultConfig {
|
|
16
|
-
minSdkVersion safeExtGet('minSdkVersion', 16)
|
|
17
|
-
targetSdkVersion safeExtGet('targetSdkVersion', 26)
|
|
18
|
-
versionCode 1
|
|
19
|
-
versionName "1.0"
|
|
20
|
-
buildConfigField("boolean", "IS_NEW_ARCHITECTURE_ENABLED", isNewArchitectureEnabled().toString())
|
|
21
|
-
}
|
|
22
|
-
|
|
23
|
-
compileOptions {
|
|
24
|
-
sourceCompatibility JavaVersion.VERSION_1_8
|
|
25
|
-
targetCompatibility JavaVersion.VERSION_1_8
|
|
26
|
-
}
|
|
27
|
-
|
|
28
|
-
buildTypes {
|
|
29
|
-
release {
|
|
30
|
-
minifyEnabled false
|
|
31
|
-
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
|
|
32
|
-
}
|
|
33
|
-
}
|
|
34
|
-
}
|
|
35
|
-
|
|
36
|
-
dependencies {
|
|
37
|
-
// The version of react-native is set by the React Native Gradle Plugin
|
|
38
|
-
implementation("com.facebook.react:react-android")
|
|
39
|
-
|
|
40
|
-
// MapLibre SDK
|
|
41
|
-
implementation "org.maplibre.gl:android-sdk:11.5.0"
|
|
42
|
-
implementation "org.maplibre.gl:android-sdk-turf:6.0.1"
|
|
43
|
-
|
|
44
|
-
// Dependencies
|
|
45
|
-
implementation "androidx.vectordrawable:vectordrawable:1.1.0"
|
|
46
|
-
implementation "androidx.annotation:annotation:1.7.0"
|
|
47
|
-
implementation "androidx.appcompat:appcompat:1.6.1"
|
|
48
|
-
implementation "com.squareup.okhttp3:okhttp:${safeExtGet('okhttpVersion', '4.9.0')}"
|
|
49
|
-
implementation "com.squareup.okhttp3:okhttp-urlconnection:${safeExtGet('okhttpVersion', '4.9.0')}"
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
// MapLibre plugins
|
|
53
|
-
implementation ("org.maplibre.gl:android-plugin-localization-v9:3.0.1")
|
|
54
|
-
implementation ("org.maplibre.gl:android-plugin-annotation-v9:3.0.1")
|
|
55
|
-
implementation ("org.maplibre.gl:android-plugin-markerview-v9:3.0.1")
|
|
56
|
-
}
|
|
57
|
-
|
|
58
|
-
allprojects {
|
|
59
|
-
repositories {
|
|
60
|
-
maven {
|
|
61
|
-
url = "https://dl.bintray.com/maplibre/maplibre-gl-native"
|
|
62
|
-
}
|
|
63
|
-
}
|
|
64
|
-
}
|
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
# Add project specific ProGuard rules here.
|
|
2
|
-
# By default, the flags in this file are appended to flags specified
|
|
3
|
-
# in /Users/nickitaliano/Library/Android/sdk/tools/proguard/proguard-android.txt
|
|
4
|
-
# You can edit the include path and order by changing the proguardFiles
|
|
5
|
-
# directive in build.gradle.
|
|
6
|
-
#
|
|
7
|
-
# For more details, see
|
|
8
|
-
# http://developer.android.com/guide/developing/tools/proguard.html
|
|
9
|
-
|
|
10
|
-
# Add any project specific keep options here:
|
|
11
|
-
|
|
12
|
-
# If your project uses WebView with JS, uncomment the following
|
|
13
|
-
# and specify the fully qualified class name to the JavaScript interface
|
|
14
|
-
# class:
|
|
15
|
-
#-keepclassmembers class fqcn.of.javascript.interface.for.webview {
|
|
16
|
-
# public *;
|
|
17
|
-
#}
|
|
18
|
-
|
|
19
|
-
# Uncomment this to preserve the line number information for
|
|
20
|
-
# debugging stack traces.
|
|
21
|
-
#-keepattributes SourceFile,LineNumberTable
|
|
22
|
-
|
|
23
|
-
# If you keep the line number information, uncomment this to
|
|
24
|
-
# hide the original source file name.
|
|
25
|
-
#-renamesourcefileattribute SourceFile
|