@rnmapbox/maps 10.1.0-beta.24 → 10.1.0-beta.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/android/src/main/java/com/rnmapbox/rnmbx/RNMBXPackage.kt +4 -0
- package/android/src/main/java/com/rnmapbox/rnmbx/components/images/RNMBXImagesManager.kt +27 -3
- package/android/src/main/java/com/rnmapbox/rnmbx/components/mapview/NativeMapViewModule.kt +1 -1
- package/android/src/main/java/com/rnmapbox/rnmbx/components/styles/RNMBXStyleFactory.kt +1184 -109
- package/android/src/main/java/com/rnmapbox/rnmbx/components/styles/layers/RNMBXModelLayer.kt +33 -0
- package/android/src/main/java/com/rnmapbox/rnmbx/components/styles/layers/RNMBXModelLayerManager.kt +85 -0
- package/android/src/main/java/com/rnmapbox/rnmbx/components/styles/model/RNMBXModels.kt +33 -0
- package/android/src/main/java/com/rnmapbox/rnmbx/components/styles/model/RNMBXModelsManager.kt +59 -0
- package/android/src/main/java/com/rnmapbox/rnmbx/modules/RNMBXOfflineModule.kt +4 -1
- package/android/src/main/mapbox-v11-compat/v10/com/rnmapbox/rnmbx/v11compat/OfflineManager.kt +6 -0
- package/android/src/main/mapbox-v11-compat/v10/com/rnmapbox/rnmbx/v11compat/StyleFactory.kt +395 -0
- package/android/src/main/mapbox-v11-compat/v11/com/rnmapbox/rnmbx/v11compat/OfflineManager.kt +4 -0
- package/android/src/main/mapbox-v11-compat/v11/com/rnmapbox/rnmbx/v11compat/StyleFactory.kt +8 -0
- package/android/src/main/old-arch/com/facebook/react/viewmanagers/RNMBXModelLayerManagerDelegate.java +65 -0
- package/android/src/main/old-arch/com/facebook/react/viewmanagers/RNMBXModelLayerManagerInterface.java +28 -0
- package/android/src/main/old-arch/com/facebook/react/viewmanagers/RNMBXModelsManagerDelegate.java +32 -0
- package/android/src/main/old-arch/com/facebook/react/viewmanagers/RNMBXModelsManagerInterface.java +17 -0
- package/ios/RNMBX/CustomHttpHeaders.swift +2 -9
- package/ios/RNMBX/RNMBXModelLayer.swift +59 -0
- package/ios/RNMBX/RNMBXModelLayerComponentView.h +15 -0
- package/ios/RNMBX/RNMBXModelLayerComponentView.mm +70 -0
- package/ios/RNMBX/RNMBXModelLayerViewManager.m +12 -0
- package/ios/RNMBX/RNMBXModelLayerViewManager.swift +13 -0
- package/ios/RNMBX/RNMBXModels.swift +63 -0
- package/ios/RNMBX/RNMBXModelsComponentView.h +17 -0
- package/ios/RNMBX/RNMBXModelsComponentView.mm +67 -0
- package/ios/RNMBX/RNMBXModelsManager.mm +9 -0
- package/ios/RNMBX/RNMBXModelsManager.swift +13 -0
- package/ios/RNMBX/RNMBXStyle.swift +786 -1
- package/ios/RNMBX/RNMBXStyleValue.swift +34 -3
- package/lib/commonjs/Mapbox.js +16 -0
- package/lib/commonjs/Mapbox.js.map +1 -1
- package/lib/commonjs/components/AbstractLayer.js +1 -1
- package/lib/commonjs/components/AbstractLayer.js.map +1 -1
- package/lib/commonjs/components/ModelLayer.js +37 -0
- package/lib/commonjs/components/ModelLayer.js.map +1 -0
- package/lib/commonjs/components/Models.js +43 -0
- package/lib/commonjs/components/Models.js.map +1 -0
- package/lib/commonjs/specs/RNMBXCircleLayerNativeComponent.js.map +1 -1
- package/lib/commonjs/specs/RNMBXFillLayerNativeComponent.js.map +1 -1
- package/lib/commonjs/specs/RNMBXHeatmapLayerNativeComponent.js.map +1 -1
- package/lib/commonjs/specs/RNMBXLineLayerNativeComponent.js.map +1 -1
- package/lib/commonjs/specs/RNMBXModelLayerNativeComponent.js +13 -0
- package/lib/commonjs/specs/RNMBXModelLayerNativeComponent.js.map +1 -0
- package/lib/commonjs/specs/RNMBXModelsNativeComponent.js +10 -0
- package/lib/commonjs/specs/RNMBXModelsNativeComponent.js.map +1 -0
- package/lib/commonjs/specs/RNMBXRasterLayerNativeComponent.js.map +1 -1
- package/lib/commonjs/specs/RNMBXSymbolLayerNativeComponent.js.map +1 -1
- package/lib/commonjs/specs/codeparts/CommonLayerNativeComponentsProps.codepart-ts +11 -10
- package/lib/commonjs/utils/MapboxStyles.d.js +5 -0
- package/lib/commonjs/utils/MapboxStyles.d.js.map +1 -1
- package/lib/commonjs/utils/styleMap.js +67 -2
- package/lib/commonjs/utils/styleMap.js.map +1 -1
- package/lib/module/Mapbox.js +2 -0
- package/lib/module/Mapbox.js.map +1 -1
- package/lib/module/components/AbstractLayer.js +1 -1
- package/lib/module/components/AbstractLayer.js.map +1 -1
- package/lib/module/components/ModelLayer.js +30 -0
- package/lib/module/components/ModelLayer.js.map +1 -0
- package/lib/module/components/Models.js +36 -0
- package/lib/module/components/Models.js.map +1 -0
- package/lib/module/specs/RNMBXCircleLayerNativeComponent.js +2 -0
- package/lib/module/specs/RNMBXCircleLayerNativeComponent.js.map +1 -1
- package/lib/module/specs/RNMBXFillLayerNativeComponent.js +2 -0
- package/lib/module/specs/RNMBXFillLayerNativeComponent.js.map +1 -1
- package/lib/module/specs/RNMBXHeatmapLayerNativeComponent.js +2 -0
- package/lib/module/specs/RNMBXHeatmapLayerNativeComponent.js.map +1 -1
- package/lib/module/specs/RNMBXLineLayerNativeComponent.js +2 -0
- package/lib/module/specs/RNMBXLineLayerNativeComponent.js.map +1 -1
- package/lib/module/specs/RNMBXModelLayerNativeComponent.js +9 -0
- package/lib/module/specs/RNMBXModelLayerNativeComponent.js.map +1 -0
- package/lib/module/specs/RNMBXModelsNativeComponent.js +3 -0
- package/lib/module/specs/RNMBXModelsNativeComponent.js.map +1 -0
- package/lib/module/specs/RNMBXRasterLayerNativeComponent.js +2 -0
- package/lib/module/specs/RNMBXRasterLayerNativeComponent.js.map +1 -1
- package/lib/module/specs/RNMBXSymbolLayerNativeComponent.js +2 -0
- package/lib/module/specs/RNMBXSymbolLayerNativeComponent.js.map +1 -1
- package/lib/module/specs/RNMBXViewportNativeComponent.js +2 -0
- package/lib/module/specs/RNMBXViewportNativeComponent.js.map +1 -1
- package/lib/module/specs/codeparts/CommonLayerNativeComponentsProps.codepart-ts +11 -10
- package/lib/module/utils/MapboxStyles.d.js +5 -0
- package/lib/module/utils/MapboxStyles.d.js.map +1 -1
- package/lib/module/utils/styleMap.js +67 -2
- package/lib/module/utils/styleMap.js.map +1 -1
- package/lib/typescript/src/Mapbox.d.ts +3 -1
- package/lib/typescript/src/Mapbox.d.ts.map +1 -1
- package/lib/typescript/src/components/AbstractLayer.d.ts +9 -4
- package/lib/typescript/src/components/AbstractLayer.d.ts.map +1 -1
- package/lib/typescript/src/components/MapView.d.ts +1 -5
- package/lib/typescript/src/components/MapView.d.ts.map +1 -1
- package/lib/typescript/src/components/ModelLayer.d.ts +77 -0
- package/lib/typescript/src/components/ModelLayer.d.ts.map +1 -0
- package/lib/typescript/src/components/Models.d.ts +15 -0
- package/lib/typescript/src/components/Models.d.ts.map +1 -0
- package/lib/typescript/src/components/Viewport.d.ts +1 -1
- package/lib/typescript/src/specs/RNMBXCircleLayerNativeComponent.d.ts +12 -10
- package/lib/typescript/src/specs/RNMBXCircleLayerNativeComponent.d.ts.map +1 -1
- package/lib/typescript/src/specs/RNMBXFillLayerNativeComponent.d.ts +12 -10
- package/lib/typescript/src/specs/RNMBXFillLayerNativeComponent.d.ts.map +1 -1
- package/lib/typescript/src/specs/RNMBXHeatmapLayerNativeComponent.d.ts +12 -10
- package/lib/typescript/src/specs/RNMBXHeatmapLayerNativeComponent.d.ts.map +1 -1
- package/lib/typescript/src/specs/RNMBXLineLayerNativeComponent.d.ts +12 -10
- package/lib/typescript/src/specs/RNMBXLineLayerNativeComponent.d.ts.map +1 -1
- package/lib/typescript/src/specs/RNMBXModelLayerNativeComponent.d.ts +28 -0
- package/lib/typescript/src/specs/RNMBXModelLayerNativeComponent.d.ts.map +1 -0
- package/lib/typescript/src/specs/RNMBXModelsNativeComponent.d.ts +15 -0
- package/lib/typescript/src/specs/RNMBXModelsNativeComponent.d.ts.map +1 -0
- package/lib/typescript/src/specs/RNMBXRasterLayerNativeComponent.d.ts +12 -10
- package/lib/typescript/src/specs/RNMBXRasterLayerNativeComponent.d.ts.map +1 -1
- package/lib/typescript/src/specs/RNMBXSymbolLayerNativeComponent.d.ts +12 -10
- package/lib/typescript/src/specs/RNMBXSymbolLayerNativeComponent.d.ts.map +1 -1
- package/lib/typescript/src/utils/styleMap.d.ts.map +1 -1
- package/package.json +2 -2
- package/src/Mapbox.ts +3 -0
- package/src/components/AbstractLayer.tsx +11 -5
- package/src/components/ModelLayer.tsx +107 -0
- package/src/components/Models.tsx +44 -0
- package/src/components/Viewport.tsx +1 -1
- package/src/specs/RNMBXCircleLayerNativeComponent.ts +15 -12
- package/src/specs/RNMBXFillLayerNativeComponent.ts +15 -12
- package/src/specs/RNMBXHeatmapLayerNativeComponent.ts +15 -12
- package/src/specs/RNMBXLineLayerNativeComponent.ts +15 -12
- package/src/specs/RNMBXModelLayerNativeComponent.ts +38 -0
- package/src/specs/RNMBXModelsNativeComponent.ts +18 -0
- package/src/specs/RNMBXRasterLayerNativeComponent.ts +15 -12
- package/src/specs/RNMBXSymbolLayerNativeComponent.ts +15 -12
- package/src/specs/codeparts/CommonLayerNativeComponentsProps.codepart-ts +11 -10
- package/src/utils/MapboxStyles.d.ts +526 -63
- package/src/utils/styleMap.ts +69 -2
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* This code was generated by [react-native-codegen](https://www.npmjs.com/package/react-native-codegen).
|
|
3
|
+
*
|
|
4
|
+
* Do not edit this file as changes may cause incorrect behavior and will be lost
|
|
5
|
+
* once the code is regenerated.
|
|
6
|
+
*
|
|
7
|
+
* @generated by codegen project: GeneratePropsJavaDelegate.js
|
|
8
|
+
*/
|
|
9
|
+
|
|
10
|
+
package com.facebook.react.viewmanagers;
|
|
11
|
+
|
|
12
|
+
import android.view.View;
|
|
13
|
+
import androidx.annotation.Nullable;
|
|
14
|
+
import com.facebook.react.bridge.DynamicFromObject;
|
|
15
|
+
import com.facebook.react.uimanager.BaseViewManagerDelegate;
|
|
16
|
+
import com.facebook.react.uimanager.BaseViewManagerInterface;
|
|
17
|
+
|
|
18
|
+
public class RNMBXModelLayerManagerDelegate<T extends View, U extends BaseViewManagerInterface<T> & RNMBXModelLayerManagerInterface<T>> extends BaseViewManagerDelegate<T, U> {
|
|
19
|
+
public RNMBXModelLayerManagerDelegate(U viewManager) {
|
|
20
|
+
super(viewManager);
|
|
21
|
+
}
|
|
22
|
+
@Override
|
|
23
|
+
public void setProperty(T view, String propName, @Nullable Object value) {
|
|
24
|
+
switch (propName) {
|
|
25
|
+
case "sourceID":
|
|
26
|
+
mViewManager.setSourceID(view, new DynamicFromObject(value));
|
|
27
|
+
break;
|
|
28
|
+
case "existing":
|
|
29
|
+
mViewManager.setExisting(view, new DynamicFromObject(value));
|
|
30
|
+
break;
|
|
31
|
+
case "filter":
|
|
32
|
+
mViewManager.setFilter(view, new DynamicFromObject(value));
|
|
33
|
+
break;
|
|
34
|
+
case "aboveLayerID":
|
|
35
|
+
mViewManager.setAboveLayerID(view, new DynamicFromObject(value));
|
|
36
|
+
break;
|
|
37
|
+
case "belowLayerID":
|
|
38
|
+
mViewManager.setBelowLayerID(view, new DynamicFromObject(value));
|
|
39
|
+
break;
|
|
40
|
+
case "layerIndex":
|
|
41
|
+
mViewManager.setLayerIndex(view, new DynamicFromObject(value));
|
|
42
|
+
break;
|
|
43
|
+
case "maxZoomLevel":
|
|
44
|
+
mViewManager.setMaxZoomLevel(view, new DynamicFromObject(value));
|
|
45
|
+
break;
|
|
46
|
+
case "minZoomLevel":
|
|
47
|
+
mViewManager.setMinZoomLevel(view, new DynamicFromObject(value));
|
|
48
|
+
break;
|
|
49
|
+
case "sourceLayerID":
|
|
50
|
+
mViewManager.setSourceLayerID(view, new DynamicFromObject(value));
|
|
51
|
+
break;
|
|
52
|
+
case "slot":
|
|
53
|
+
mViewManager.setSlot(view, new DynamicFromObject(value));
|
|
54
|
+
break;
|
|
55
|
+
case "id":
|
|
56
|
+
mViewManager.setId(view, new DynamicFromObject(value));
|
|
57
|
+
break;
|
|
58
|
+
case "reactStyle":
|
|
59
|
+
mViewManager.setReactStyle(view, new DynamicFromObject(value));
|
|
60
|
+
break;
|
|
61
|
+
default:
|
|
62
|
+
super.setProperty(view, propName, value);
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* This code was generated by [react-native-codegen](https://www.npmjs.com/package/react-native-codegen).
|
|
3
|
+
*
|
|
4
|
+
* Do not edit this file as changes may cause incorrect behavior and will be lost
|
|
5
|
+
* once the code is regenerated.
|
|
6
|
+
*
|
|
7
|
+
* @generated by codegen project: GeneratePropsJavaInterface.js
|
|
8
|
+
*/
|
|
9
|
+
|
|
10
|
+
package com.facebook.react.viewmanagers;
|
|
11
|
+
|
|
12
|
+
import android.view.View;
|
|
13
|
+
import com.facebook.react.bridge.Dynamic;
|
|
14
|
+
|
|
15
|
+
public interface RNMBXModelLayerManagerInterface<T extends View> {
|
|
16
|
+
void setSourceID(T view, Dynamic value);
|
|
17
|
+
void setExisting(T view, Dynamic value);
|
|
18
|
+
void setFilter(T view, Dynamic value);
|
|
19
|
+
void setAboveLayerID(T view, Dynamic value);
|
|
20
|
+
void setBelowLayerID(T view, Dynamic value);
|
|
21
|
+
void setLayerIndex(T view, Dynamic value);
|
|
22
|
+
void setMaxZoomLevel(T view, Dynamic value);
|
|
23
|
+
void setMinZoomLevel(T view, Dynamic value);
|
|
24
|
+
void setSourceLayerID(T view, Dynamic value);
|
|
25
|
+
void setSlot(T view, Dynamic value);
|
|
26
|
+
void setId(T view, Dynamic value);
|
|
27
|
+
void setReactStyle(T view, Dynamic value);
|
|
28
|
+
}
|
package/android/src/main/old-arch/com/facebook/react/viewmanagers/RNMBXModelsManagerDelegate.java
ADDED
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* This code was generated by [react-native-codegen](https://www.npmjs.com/package/react-native-codegen).
|
|
3
|
+
*
|
|
4
|
+
* Do not edit this file as changes may cause incorrect behavior and will be lost
|
|
5
|
+
* once the code is regenerated.
|
|
6
|
+
*
|
|
7
|
+
* @generated by codegen project: GeneratePropsJavaDelegate.js
|
|
8
|
+
*/
|
|
9
|
+
|
|
10
|
+
package com.facebook.react.viewmanagers;
|
|
11
|
+
|
|
12
|
+
import android.view.View;
|
|
13
|
+
import androidx.annotation.Nullable;
|
|
14
|
+
import com.facebook.react.bridge.DynamicFromObject;
|
|
15
|
+
import com.facebook.react.uimanager.BaseViewManagerDelegate;
|
|
16
|
+
import com.facebook.react.uimanager.BaseViewManagerInterface;
|
|
17
|
+
|
|
18
|
+
public class RNMBXModelsManagerDelegate<T extends View, U extends BaseViewManagerInterface<T> & RNMBXModelsManagerInterface<T>> extends BaseViewManagerDelegate<T, U> {
|
|
19
|
+
public RNMBXModelsManagerDelegate(U viewManager) {
|
|
20
|
+
super(viewManager);
|
|
21
|
+
}
|
|
22
|
+
@Override
|
|
23
|
+
public void setProperty(T view, String propName, @Nullable Object value) {
|
|
24
|
+
switch (propName) {
|
|
25
|
+
case "models":
|
|
26
|
+
mViewManager.setModels(view, new DynamicFromObject(value));
|
|
27
|
+
break;
|
|
28
|
+
default:
|
|
29
|
+
super.setProperty(view, propName, value);
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
}
|
package/android/src/main/old-arch/com/facebook/react/viewmanagers/RNMBXModelsManagerInterface.java
ADDED
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* This code was generated by [react-native-codegen](https://www.npmjs.com/package/react-native-codegen).
|
|
3
|
+
*
|
|
4
|
+
* Do not edit this file as changes may cause incorrect behavior and will be lost
|
|
5
|
+
* once the code is regenerated.
|
|
6
|
+
*
|
|
7
|
+
* @generated by codegen project: GeneratePropsJavaInterface.js
|
|
8
|
+
*/
|
|
9
|
+
|
|
10
|
+
package com.facebook.react.viewmanagers;
|
|
11
|
+
|
|
12
|
+
import android.view.View;
|
|
13
|
+
import com.facebook.react.bridge.Dynamic;
|
|
14
|
+
|
|
15
|
+
public interface RNMBXModelsManagerInterface<T extends View> {
|
|
16
|
+
void setModels(T view, Dynamic value);
|
|
17
|
+
}
|
|
@@ -46,23 +46,16 @@ class CustomHttpHeaders : HttpServiceInterceptorInterface {
|
|
|
46
46
|
return request
|
|
47
47
|
}
|
|
48
48
|
|
|
49
|
+
#if !RNMBX_11
|
|
49
50
|
func onDownload(forDownload download: DownloadOptions) -> DownloadOptions {
|
|
50
51
|
customHeaders.forEach {(key,value) in
|
|
51
52
|
download.request.headers[key] = value
|
|
52
53
|
}
|
|
53
54
|
return download
|
|
54
55
|
}
|
|
56
|
+
#endif
|
|
55
57
|
|
|
56
58
|
func onResponse(for response: HttpResponse) -> HttpResponse {
|
|
57
59
|
return response
|
|
58
60
|
}
|
|
59
|
-
|
|
60
|
-
#if RNMBX_11
|
|
61
|
-
func onUpload(forUpload upload: UploadOptions) -> UploadOptions {
|
|
62
|
-
customHeaders.forEach {(key,value) in
|
|
63
|
-
upload.headers[key] = value
|
|
64
|
-
}
|
|
65
|
-
return upload
|
|
66
|
-
}
|
|
67
|
-
#endif
|
|
68
61
|
}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
@_spi(Experimental) import MapboxMaps
|
|
2
|
+
|
|
3
|
+
@objc(RNMBXModelLayer)
|
|
4
|
+
public class RNMBXModelLayer: RNMBXVectorLayer {
|
|
5
|
+
typealias LayerType = ModelLayer
|
|
6
|
+
|
|
7
|
+
override func makeLayer(style: Style) throws -> Layer {
|
|
8
|
+
let vectorSource : VectorSource = try self.layerWithSourceID(in: style)
|
|
9
|
+
#if RNMBX_11
|
|
10
|
+
var layer = LayerType(id: self.id!, source: sourceID!)
|
|
11
|
+
#else
|
|
12
|
+
var layer = LayerType(id: self.id!)
|
|
13
|
+
#endif
|
|
14
|
+
layer.sourceLayer = self.sourceLayerID
|
|
15
|
+
layer.source = sourceID
|
|
16
|
+
return layer
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
override func layerType() -> Layer.Type {
|
|
20
|
+
return LayerType.self
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
override func apply(style : Style) throws {
|
|
24
|
+
try style.updateLayer(withId: id, type: LayerType.self) { (layer : inout ModelLayer) in
|
|
25
|
+
if self.styleLayer != nil {
|
|
26
|
+
self.setOptions(&self.styleLayer!)
|
|
27
|
+
}
|
|
28
|
+
if let styleLayer = self.styleLayer as? ModelLayer {
|
|
29
|
+
layer = styleLayer
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
override func addStyles() {
|
|
35
|
+
if let style : Style = self.style {
|
|
36
|
+
let styler = RNMBXStyle(style: self.style!)
|
|
37
|
+
styler.bridge = self.bridge
|
|
38
|
+
|
|
39
|
+
if var styleLayer = self.styleLayer as? LayerType,
|
|
40
|
+
let reactStyle = reactStyle {
|
|
41
|
+
styler.modelLayer(
|
|
42
|
+
layer: &styleLayer,
|
|
43
|
+
reactStyle: reactStyle,
|
|
44
|
+
oldReactStyle: oldReatStyle,
|
|
45
|
+
applyUpdater: { (updater) in logged("RNMBXModelLayer.updateLayer") {
|
|
46
|
+
try style.updateLayer(withId: self.id, type: LayerType.self) { (layer: inout LayerType) in updater(&layer) }
|
|
47
|
+
}},
|
|
48
|
+
isValid: {
|
|
49
|
+
return self.isAddedToMap()
|
|
50
|
+
})
|
|
51
|
+
self.styleLayer = styleLayer
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
func isAddedToMap() -> Bool {
|
|
57
|
+
return true
|
|
58
|
+
}
|
|
59
|
+
}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
#ifdef RCT_NEW_ARCH_ENABLED
|
|
2
|
+
|
|
3
|
+
#import <UIKit/UIKit.h>
|
|
4
|
+
|
|
5
|
+
#import <React/RCTUIManager.h>
|
|
6
|
+
#import <React/RCTViewComponentView.h>
|
|
7
|
+
|
|
8
|
+
NS_ASSUME_NONNULL_BEGIN
|
|
9
|
+
|
|
10
|
+
@interface RNMBXModelLayerComponentView : RCTViewComponentView
|
|
11
|
+
@end
|
|
12
|
+
|
|
13
|
+
NS_ASSUME_NONNULL_END
|
|
14
|
+
|
|
15
|
+
#endif // RCT_NEW_ARCH_ENABLED
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
#ifdef RCT_NEW_ARCH_ENABLED
|
|
2
|
+
|
|
3
|
+
#import "RNMBXModelLayerComponentView.h"
|
|
4
|
+
#import "RNMBXFabricHelpers.h"
|
|
5
|
+
|
|
6
|
+
#import <React/RCTConversions.h>
|
|
7
|
+
#import <React/RCTFabricComponentsPlugins.h>
|
|
8
|
+
#import <React/RCTBridge+Private.h>
|
|
9
|
+
|
|
10
|
+
#import <react/renderer/components/rnmapbox_maps_specs/ComponentDescriptors.h>
|
|
11
|
+
#import <react/renderer/components/rnmapbox_maps_specs/EventEmitters.h>
|
|
12
|
+
#import <react/renderer/components/rnmapbox_maps_specs/Props.h>
|
|
13
|
+
#import <react/renderer/components/rnmapbox_maps_specs/RCTComponentViewHelpers.h>
|
|
14
|
+
|
|
15
|
+
using namespace facebook::react;
|
|
16
|
+
|
|
17
|
+
@interface RNMBXModelLayerComponentView () <RCTRNMBXModelLayerViewProtocol>
|
|
18
|
+
@end
|
|
19
|
+
|
|
20
|
+
@implementation RNMBXModelLayerComponentView {
|
|
21
|
+
RNMBXModelLayer *_view;
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
- (instancetype)initWithFrame:(CGRect)frame
|
|
25
|
+
{
|
|
26
|
+
if (self = [super initWithFrame:frame]) {
|
|
27
|
+
static const auto defaultProps = std::make_shared<const RNMBXModelLayerProps>();
|
|
28
|
+
_props = defaultProps;
|
|
29
|
+
[self prepareView];
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
return self;
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
- (void)prepareView
|
|
36
|
+
{
|
|
37
|
+
_view = [[RNMBXModelLayer alloc] init];
|
|
38
|
+
_view.bridge = [RCTBridge currentBridge];
|
|
39
|
+
self.contentView = _view;
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
#pragma mark - RCTComponentViewProtocol
|
|
43
|
+
|
|
44
|
+
+ (ComponentDescriptorProvider)componentDescriptorProvider
|
|
45
|
+
{
|
|
46
|
+
return concreteComponentDescriptorProvider<RNMBXModelLayerComponentDescriptor>();
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
- (void)updateProps:(const Props::Shared &)props oldProps:(const Props::Shared &)oldProps
|
|
50
|
+
{
|
|
51
|
+
const auto &newProps = static_cast<const RNMBXModelLayerProps &>(*props);
|
|
52
|
+
RNMBXSetCommonLayerProps(newProps, _view);
|
|
53
|
+
|
|
54
|
+
[super updateProps:props oldProps:oldProps];
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
- (void)prepareForRecycle
|
|
58
|
+
{
|
|
59
|
+
[super prepareForRecycle];
|
|
60
|
+
[self prepareView];
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
@end
|
|
64
|
+
|
|
65
|
+
Class<RCTComponentViewProtocol> RNMBXModelLayerCls(void)
|
|
66
|
+
{
|
|
67
|
+
return RNMBXModelLayerComponentView.class;
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
#endif // RCT_NEW_ARCH_ENABLED
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
#import <React/RCTBridgeModule.h>
|
|
2
|
+
#import <React/RCTViewManager.h>
|
|
3
|
+
|
|
4
|
+
@interface RCT_EXTERN_REMAP_MODULE(RNMBXModelLayer, RNMBXModelLayerViewManager, RCTViewManager)
|
|
5
|
+
|
|
6
|
+
// circle layer props
|
|
7
|
+
RCT_EXPORT_VIEW_PROPERTY(sourceLayerID, NSString)
|
|
8
|
+
|
|
9
|
+
// standard layer props
|
|
10
|
+
#include "CommonLayerProperties.H"
|
|
11
|
+
|
|
12
|
+
@end
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
@objc(RNMBXModelLayerViewManager)
|
|
2
|
+
class RNMBXModelLayerViewManager: RCTViewManager {
|
|
3
|
+
@objc
|
|
4
|
+
override static func requiresMainQueueSetup() -> Bool {
|
|
5
|
+
return true
|
|
6
|
+
}
|
|
7
|
+
|
|
8
|
+
override func view() -> UIView! {
|
|
9
|
+
let layer = RNMBXModelLayer()
|
|
10
|
+
layer.bridge = self.bridge
|
|
11
|
+
return layer
|
|
12
|
+
}
|
|
13
|
+
}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
@_spi(Experimental) import MapboxMaps
|
|
2
|
+
|
|
3
|
+
@objc(RNMBXModels)
|
|
4
|
+
open class RNMBXModels : UIView, RNMBXMapComponent {
|
|
5
|
+
var modelIdToUrl: [String: String] = [:]
|
|
6
|
+
|
|
7
|
+
@objc(models)
|
|
8
|
+
public var models: NSDictionary {
|
|
9
|
+
set {
|
|
10
|
+
var newModels: [String: String] = [:]
|
|
11
|
+
newValue.forEach { (key, value) in
|
|
12
|
+
if let value = value as? NSDictionary, let key = key as? String {
|
|
13
|
+
if let uri = value["uri"] as? String {
|
|
14
|
+
newModels[key] = uri
|
|
15
|
+
} else if let url = value["url"] as? String {
|
|
16
|
+
newModels[key] = url
|
|
17
|
+
} else {
|
|
18
|
+
Logger.log(level: .error, message: "Unexpected value for model key: \(key) \(value) - no uri or url found")
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
self.modelIdToUrl = newModels
|
|
23
|
+
}
|
|
24
|
+
get {
|
|
25
|
+
Logger.error("RNMBXModels.models.getter not implemented")
|
|
26
|
+
return NSDictionary()
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
func setModels(_ models: NSDictionary) {
|
|
31
|
+
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
func addToMap(_ map: RNMBXMapView, style: Style) {
|
|
35
|
+
modelIdToUrl.forEach { (id, uri) in
|
|
36
|
+
logged("Models.addStyleModel") {
|
|
37
|
+
if let link = URL(string: uri), let scheme = link.scheme, let host = link.host,
|
|
38
|
+
let port = link.port {
|
|
39
|
+
|
|
40
|
+
// https://github.com/mapbox/mapbox-maps-ios/issues/2067
|
|
41
|
+
let uriWithoutQuery = "\(scheme)://\(host):\(port)\(link.path)"
|
|
42
|
+
|
|
43
|
+
try style.addStyleModel(modelId: id, modelUri: uriWithoutQuery)
|
|
44
|
+
} else {
|
|
45
|
+
try style.addStyleModel(modelId: id, modelUri: uri)
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
func removeFromMap(_ map: RNMBXMapView, reason: RemovalReason) -> Bool {
|
|
52
|
+
modelIdToUrl.forEach { (id, _) in
|
|
53
|
+
#if RNMBX_11
|
|
54
|
+
try? map._mapView?.mapboxMap.removeStyleModel(modelId: id)
|
|
55
|
+
#endif
|
|
56
|
+
}
|
|
57
|
+
return true
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
func waitForStyleLoad() -> Bool {
|
|
61
|
+
true
|
|
62
|
+
}
|
|
63
|
+
}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
#ifdef RCT_NEW_ARCH_ENABLED
|
|
2
|
+
|
|
3
|
+
#import <UIKit/UIKit.h>
|
|
4
|
+
|
|
5
|
+
#import <React/RCTUIManager.h>
|
|
6
|
+
#import <React/RCTViewComponentView.h>
|
|
7
|
+
|
|
8
|
+
NS_ASSUME_NONNULL_BEGIN
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
@interface RNMBXModelsComponentView : RCTViewComponentView
|
|
12
|
+
|
|
13
|
+
@end
|
|
14
|
+
|
|
15
|
+
NS_ASSUME_NONNULL_END
|
|
16
|
+
|
|
17
|
+
#endif // RCT_NEW_ARCH_ENABLED
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
#ifdef RCT_NEW_ARCH_ENABLED
|
|
2
|
+
|
|
3
|
+
#import "RNMBXModelsComponentView.h"
|
|
4
|
+
|
|
5
|
+
#import <React/RCTConversions.h>
|
|
6
|
+
#import <React/RCTFabricComponentsPlugins.h>
|
|
7
|
+
|
|
8
|
+
#import <react/renderer/components/rnmapbox_maps_specs/ComponentDescriptors.h>
|
|
9
|
+
#import <react/renderer/components/rnmapbox_maps_specs/EventEmitters.h>
|
|
10
|
+
#import <react/renderer/components/rnmapbox_maps_specs/Props.h>
|
|
11
|
+
#import <react/renderer/components/rnmapbox_maps_specs/RCTComponentViewHelpers.h>
|
|
12
|
+
|
|
13
|
+
#import "rnmapbox_maps-Swift.pre.h"
|
|
14
|
+
|
|
15
|
+
#import "RCTFollyConvert.h"
|
|
16
|
+
#import "RNMBXFabricPropConvert.h"
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
// TODO: use generated RNMBXModelsEventEmitter, but need 0.73+ for dynamic support
|
|
20
|
+
using namespace facebook::react;
|
|
21
|
+
|
|
22
|
+
@implementation RNMBXModelsComponentView {
|
|
23
|
+
RNMBXModels *_view;
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
- (instancetype)initWithFrame:(CGRect)frame
|
|
27
|
+
{
|
|
28
|
+
if (self = [super initWithFrame:frame]) {
|
|
29
|
+
static const auto defaultProps = std::make_shared<const RNMBXModelsProps>();
|
|
30
|
+
_props = defaultProps;
|
|
31
|
+
_view = [[RNMBXModels alloc] init];
|
|
32
|
+
[self prepareView];
|
|
33
|
+
|
|
34
|
+
self.contentView = _view;
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
return self;
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
- (void)prepareView
|
|
41
|
+
{
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
|
|
45
|
+
#pragma mark - RCTComponentViewProtocol
|
|
46
|
+
|
|
47
|
+
+ (ComponentDescriptorProvider)componentDescriptorProvider
|
|
48
|
+
{
|
|
49
|
+
return concreteComponentDescriptorProvider<RNMBXModelsComponentDescriptor>();
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
- (void)updateProps:(const Props::Shared &)props oldProps:(const Props::Shared &)oldProps
|
|
53
|
+
{
|
|
54
|
+
const auto &oldViewProps = static_cast<const RNMBXModelsProps &>(*oldProps);
|
|
55
|
+
const auto &newViewProps = static_cast<const RNMBXModelsProps &>(*props);
|
|
56
|
+
|
|
57
|
+
RNMBX_OPTIONAL_PROP_NSDictionary(models);
|
|
58
|
+
[super updateProps:props oldProps:oldProps];
|
|
59
|
+
}
|
|
60
|
+
@end
|
|
61
|
+
|
|
62
|
+
Class<RCTComponentViewProtocol> RNMBXModelsCls(void)
|
|
63
|
+
{
|
|
64
|
+
return RNMBXModelsComponentView.class;
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
#endif // RCT_NEW_ARCH_ENABLED
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
@objc(RNMBXModelsManager)
|
|
2
|
+
public class RNMBXModelsManager : RCTViewManager {
|
|
3
|
+
@objc
|
|
4
|
+
public override static func requiresMainQueueSetup() -> Bool {
|
|
5
|
+
return true
|
|
6
|
+
}
|
|
7
|
+
|
|
8
|
+
public override func view() -> UIView! {
|
|
9
|
+
let layer = RNMBXModels()
|
|
10
|
+
return layer
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
|