@maplibre/maplibre-react-native 10.0.0-beta.13 → 10.0.0-beta.14

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (35) hide show
  1. package/README.md +9 -11
  2. package/android/src/main/java/org/maplibre/reactnative/components/camera/MLRNCamera.java +37 -48
  3. package/android/src/main/java/org/maplibre/reactnative/components/location/LocationComponentManager.java +16 -9
  4. package/app.plugin.js +1 -1
  5. package/ios/MLRN/MLRNCamera.m +6 -7
  6. package/lib/commonjs/components/Camera.js +109 -60
  7. package/lib/commonjs/components/Camera.js.map +1 -1
  8. package/lib/commonjs/components/MapView.js +6 -6
  9. package/lib/commonjs/modules/offline/OfflineManager.js +8 -8
  10. package/lib/commonjs/plugin/withMapLibre.js +149 -0
  11. package/lib/commonjs/plugin/withMapLibre.js.map +1 -0
  12. package/lib/module/components/Camera.js +111 -62
  13. package/lib/module/components/Camera.js.map +1 -1
  14. package/lib/module/components/MapView.js +6 -6
  15. package/lib/module/modules/offline/OfflineManager.js +8 -8
  16. package/lib/module/plugin/withMapLibre.js +140 -0
  17. package/lib/module/plugin/withMapLibre.js.map +1 -0
  18. package/lib/typescript/commonjs/src/components/Camera.d.ts.map +1 -1
  19. package/lib/typescript/commonjs/src/modules/offline/OfflineManager.d.ts +8 -8
  20. package/{plugin/build → lib/typescript/commonjs/src/plugin}/withMapLibre.d.ts +1 -0
  21. package/lib/typescript/commonjs/src/plugin/withMapLibre.d.ts.map +1 -0
  22. package/lib/typescript/module/src/components/Camera.d.ts.map +1 -1
  23. package/lib/typescript/module/src/modules/offline/OfflineManager.d.ts +8 -8
  24. package/lib/typescript/module/src/plugin/withMapLibre.d.ts +13 -0
  25. package/lib/typescript/module/src/plugin/withMapLibre.d.ts.map +1 -0
  26. package/package.json +8 -10
  27. package/src/components/Camera.tsx +151 -73
  28. package/src/components/MapView.tsx +6 -6
  29. package/src/modules/offline/OfflineManager.ts +8 -8
  30. package/src/plugin/withMapLibre.ts +181 -0
  31. package/lib/typescript/commonjs/jest.config.d.ts +0 -2
  32. package/lib/typescript/commonjs/jest.config.d.ts.map +0 -1
  33. package/lib/typescript/module/jest.config.d.ts +0 -2
  34. package/lib/typescript/module/jest.config.d.ts.map +0 -1
  35. package/plugin/build/withMapLibre.js +0 -148
@@ -68,7 +68,7 @@ class OfflineManager {
68
68
  * @example
69
69
  * await OfflineManager.invalidatePack('packName')
70
70
  *
71
- * @param {String} name Name of the offline pack.
71
+ * @param {string} name Name of the offline pack.
72
72
  * @return {void}
73
73
  */
74
74
  async invalidatePack(name) {
@@ -88,7 +88,7 @@ class OfflineManager {
88
88
  * @example
89
89
  * await OfflineManager.deletePack('packName')
90
90
  *
91
- * @param {String} name Name of the offline pack.
91
+ * @param {string} name Name of the offline pack.
92
92
  * @return {void}
93
93
  */
94
94
  async deletePack(name) {
@@ -140,7 +140,7 @@ class OfflineManager {
140
140
  * @example
141
141
  * await OfflineManager.setMaximumAmbientCacheSize(5000000);
142
142
  *
143
- * @param {Number} size Size of ambient cache.
143
+ * @param {number} size Size of ambient cache.
144
144
  * @return {void}
145
145
  */
146
146
  async setMaximumAmbientCacheSize(size) {
@@ -180,7 +180,7 @@ class OfflineManager {
180
180
  * @example
181
181
  * const offlinePack = await OfflineManager.getPack();
182
182
  *
183
- * @param {String} name Name of the offline pack.
183
+ * @param {string} name Name of the offline pack.
184
184
  * @return {OfflinePack}
185
185
  */
186
186
  async getPack(name) {
@@ -194,7 +194,7 @@ class OfflineManager {
194
194
  * @example
195
195
  * await OfflineManager.mergeOfflineRegions(path);
196
196
  *
197
- * @param {String} path Path to offline tile db on file system.
197
+ * @param {string} path Path to offline tile db on file system.
198
198
  * @return {void}
199
199
  */
200
200
  async mergeOfflineRegions(path) {
@@ -209,7 +209,7 @@ class OfflineManager {
209
209
  * @example
210
210
  * OfflineManager.setTileCountLimit(1000);
211
211
  *
212
- * @param {Number} limit Map tile limit count.
212
+ * @param {number} limit Map tile limit count.
213
213
  * @return {void}
214
214
  */
215
215
  setTileCountLimit(limit) {
@@ -223,7 +223,7 @@ class OfflineManager {
223
223
  * @example
224
224
  * OfflineManager.setProgressEventThrottle(500);
225
225
  *
226
- * @param {Number} throttleValue event throttle value in ms.
226
+ * @param {number} throttleValue event throttle value in ms.
227
227
  * @return {void}
228
228
  */
229
229
  setProgressEventThrottle(throttleValue) {
@@ -279,7 +279,7 @@ class OfflineManager {
279
279
  * @example
280
280
  * OfflineManager.unsubscribe('packName')
281
281
  *
282
- * @param {String} packName Name of the offline pack.
282
+ * @param {string} packName Name of the offline pack.
283
283
  * @return {void}
284
284
  */
285
285
  unsubscribe(packName) {
@@ -0,0 +1,149 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.addInstallerBlock = addInstallerBlock;
7
+ exports.addMapLibreInstallerBlock = addMapLibreInstallerBlock;
8
+ exports.applyCocoaPodsModifications = applyCocoaPodsModifications;
9
+ exports.default = void 0;
10
+ exports.setExcludedArchitectures = setExcludedArchitectures;
11
+ var _configPlugins = require("@expo/config-plugins");
12
+ var _generateCode = require("@expo/config-plugins/build/utils/generateCode");
13
+ var _nodeFs = require("node:fs");
14
+ var _nodePath = _interopRequireDefault(require("node:path"));
15
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
16
+ let pkg = {
17
+ name: "@maplibre/maplibre-react-native"
18
+ };
19
+ try {
20
+ pkg = require("@maplibre/maplibre-react-native/package.json");
21
+ } catch {
22
+ // empty catch block
23
+ }
24
+ /**
25
+ * Dangerously adds the custom installer hooks to the Podfile.
26
+ * In the future this should be removed in favor of some custom hooks provided by Expo autolinking.
27
+ *
28
+ * https://github.com/maplibre/maplibre-react-native/blob/main/docs/guides/setup/iOS.md
29
+ */
30
+ const withCocoaPodsInstallerBlocks = c => {
31
+ return (0, _configPlugins.withDangerousMod)(c, ["ios",
32
+ // eslint-disable-next-line @typescript-eslint/explicit-function-return-type
33
+ async config => {
34
+ const file = _nodePath.default.join(config.modRequest.platformProjectRoot, "Podfile");
35
+ const contents = await _nodeFs.promises.readFile(file, "utf8");
36
+ await _nodeFs.promises.writeFile(file, applyCocoaPodsModifications(contents), "utf-8");
37
+ return config;
38
+ }]);
39
+ };
40
+
41
+ // Only the post-install block is required, the post installer block is
42
+ // used for spm (swift package manager) which Expo doesn't currently support.
43
+ function applyCocoaPodsModifications(contents) {
44
+ // Ensure installer blocks exist
45
+ let src = addInstallerBlock(contents, "post");
46
+ src = addMapLibreInstallerBlock(src, "post");
47
+ return src;
48
+ }
49
+ function addInstallerBlock(src, blockName) {
50
+ const matchBlock = new RegExp(`${blockName}_install do \\|installer\\|`);
51
+ const tag = `${blockName}_installer`;
52
+ for (const line of src.split("\n")) {
53
+ const contents = line.trim();
54
+ // Ignore comments
55
+ if (!contents.startsWith("#")) {
56
+ // Prevent adding the block if it exists outside of comments.
57
+ if (contents.match(matchBlock)) {
58
+ // This helps to still allow revisions, since we enabled the block previously.
59
+ // Only continue if the generated block exists...
60
+ const modified = (0, _generateCode.removeGeneratedContents)(src, tag);
61
+ if (!modified) {
62
+ return src;
63
+ }
64
+ }
65
+ }
66
+ }
67
+ return (0, _generateCode.mergeContents)({
68
+ tag,
69
+ src,
70
+ newSrc: [` ${blockName}_install do |installer|`, " end"].join("\n"),
71
+ anchor: /use_react_native/,
72
+ // We can't go after the use_react_native block because it might have parameters, causing it to be multi-line (see react-native template).
73
+ offset: 0,
74
+ comment: "#"
75
+ }).contents;
76
+ }
77
+ function addMapLibreInstallerBlock(src, blockName) {
78
+ return (0, _generateCode.mergeContents)({
79
+ tag: `@maplibre/maplibre-react-native-${blockName}_installer`,
80
+ src,
81
+ newSrc: ` $MLRN.${blockName}_install(installer)`,
82
+ anchor: new RegExp(`${blockName}_install do \\|installer\\|`),
83
+ offset: 1,
84
+ comment: "#"
85
+ }).contents;
86
+ }
87
+
88
+ /**
89
+ * Exclude building for arm64 on simulator devices in the pbxproj project.
90
+ * Without this, production builds targeting simulators will fail.
91
+ */
92
+ function setExcludedArchitectures(project) {
93
+ const configurations = project.pbxXCBuildConfigurationSection();
94
+ // eslint-disable-next-line @typescript-eslint/ban-ts-comment
95
+ // @ts-ignore
96
+ for (const {
97
+ name,
98
+ buildSettings
99
+ } of Object.values(configurations || {})) {
100
+ // Guessing that this is the best way to emulate Xcode.
101
+ // Using `project.addToBuildSettings` modifies too many targets.
102
+ if (name === "Release" && typeof buildSettings?.PRODUCT_NAME !== "undefined") {
103
+ buildSettings['"EXCLUDED_ARCHS[sdk=iphonesimulator*]"'] = '"arm64"';
104
+ }
105
+ }
106
+ return project;
107
+ }
108
+ const withoutSignatures = config => {
109
+ const shellScript = `
110
+ echo "Remove signature files (Xcode workaround)";
111
+ rm -rf "$CONFIGURATION_BUILD_DIR/MapLibre.xcframework-ios.signature";
112
+ `;
113
+ return (0, _configPlugins.withXcodeProject)(config, async config => {
114
+ const xcodeProject = config.modResults;
115
+ xcodeProject.addBuildPhase([], "PBXShellScriptBuildPhase", "Remove signature files (Xcode workaround)", null, {
116
+ shellPath: "/bin/sh",
117
+ shellScript
118
+ });
119
+ return config;
120
+ });
121
+ };
122
+
123
+ /**
124
+ * Set the Debug Information Format to DWARF with dSYM File during EAS Build for Managed App
125
+ * https://github.com/expo/eas-cli/issues/968
126
+ * // Set artifactPath in eas.json
127
+ * "ios": {
128
+ * "artifactPath": "ios/build/*"
129
+ * }
130
+ */
131
+ const withDwarfDsym = config => {
132
+ return (0, _configPlugins.withXcodeProject)(config, async config => {
133
+ const xcodeProject = config.modResults;
134
+ xcodeProject.debugInformationFormat = "dwarf-with-dsym";
135
+ return config;
136
+ });
137
+ };
138
+ const withExcludedSimulatorArchitectures = c => {
139
+ return (0, _configPlugins.withXcodeProject)(c, config => {
140
+ config.modResults = setExcludedArchitectures(config.modResults);
141
+ return config;
142
+ });
143
+ };
144
+ const withMapLibre = config => {
145
+ config = withoutSignatures(withDwarfDsym(withExcludedSimulatorArchitectures(config)));
146
+ return withCocoaPodsInstallerBlocks(config);
147
+ };
148
+ var _default = exports.default = (0, _configPlugins.createRunOncePlugin)(withMapLibre, pkg.name, pkg.version);
149
+ //# sourceMappingURL=withMapLibre.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_configPlugins","require","_generateCode","_nodeFs","_nodePath","_interopRequireDefault","e","__esModule","default","pkg","name","withCocoaPodsInstallerBlocks","c","withDangerousMod","config","file","path","join","modRequest","platformProjectRoot","contents","promises","readFile","writeFile","applyCocoaPodsModifications","src","addInstallerBlock","addMapLibreInstallerBlock","blockName","matchBlock","RegExp","tag","line","split","trim","startsWith","match","modified","removeGeneratedContents","mergeContents","newSrc","anchor","offset","comment","setExcludedArchitectures","project","configurations","pbxXCBuildConfigurationSection","buildSettings","Object","values","PRODUCT_NAME","withoutSignatures","shellScript","withXcodeProject","xcodeProject","modResults","addBuildPhase","shellPath","withDwarfDsym","debugInformationFormat","withExcludedSimulatorArchitectures","withMapLibre","_default","exports","createRunOncePlugin","version"],"sourceRoot":"../../../src","sources":["plugin/withMapLibre.ts"],"mappings":";;;;;;;;;;AAAA,IAAAA,cAAA,GAAAC,OAAA;AAOA,IAAAC,aAAA,GAAAD,OAAA;AAIA,IAAAE,OAAA,GAAAF,OAAA;AACA,IAAAG,SAAA,GAAAC,sBAAA,CAAAJ,OAAA;AAA6B,SAAAI,uBAAAC,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAE7B,IAAIG,GAAuC,GAAG;EAC5CC,IAAI,EAAE;AACR,CAAC;AACD,IAAI;EACFD,GAAG,GAAGR,OAAO,CAAC,8CAA8C,CAAC;AAC/D,CAAC,CAAC,MAAM;EACN;AAAA;AAKF;AACA;AACA;AACA;AACA;AACA;AACA,MAAMU,4BAA0C,GAAIC,CAAC,IAAK;EACxD,OAAO,IAAAC,+BAAgB,EAACD,CAAC,EAAE,CACzB,KAAK;EACL;EACA,MAAOE,MAAM,IAAK;IAChB,MAAMC,IAAI,GAAGC,iBAAI,CAACC,IAAI,CAACH,MAAM,CAACI,UAAU,CAACC,mBAAmB,EAAE,SAAS,CAAC;IAExE,MAAMC,QAAQ,GAAG,MAAMC,gBAAQ,CAACC,QAAQ,CAACP,IAAI,EAAE,MAAM,CAAC;IAEtD,MAAMM,gBAAQ,CAACE,SAAS,CACtBR,IAAI,EACJS,2BAA2B,CAACJ,QAAQ,CAAC,EACrC,OACF,CAAC;IAED,OAAON,MAAM;EACf,CAAC,CACF,CAAC;AACJ,CAAC;;AAED;AACA;AACO,SAASU,2BAA2BA,CAACJ,QAAgB,EAAU;EACpE;EACA,IAAIK,GAAG,GAAGC,iBAAiB,CAACN,QAAQ,EAAE,MAAM,CAAC;EAC7CK,GAAG,GAAGE,yBAAyB,CAACF,GAAG,EAAE,MAAM,CAAC;EAE5C,OAAOA,GAAG;AACZ;AAEO,SAASC,iBAAiBA,CAC/BD,GAAW,EACXG,SAA6B,EACrB;EACR,MAAMC,UAAU,GAAG,IAAIC,MAAM,CAAC,GAAGF,SAAS,6BAA6B,CAAC;EACxE,MAAMG,GAAG,GAAG,GAAGH,SAAS,YAAY;EACpC,KAAK,MAAMI,IAAI,IAAIP,GAAG,CAACQ,KAAK,CAAC,IAAI,CAAC,EAAE;IAClC,MAAMb,QAAQ,GAAGY,IAAI,CAACE,IAAI,CAAC,CAAC;IAC5B;IACA,IAAI,CAACd,QAAQ,CAACe,UAAU,CAAC,GAAG,CAAC,EAAE;MAC7B;MACA,IAAIf,QAAQ,CAACgB,KAAK,CAACP,UAAU,CAAC,EAAE;QAC9B;QACA;QACA,MAAMQ,QAAQ,GAAG,IAAAC,qCAAuB,EAACb,GAAG,EAAEM,GAAG,CAAC;QAClD,IAAI,CAACM,QAAQ,EAAE;UACb,OAAOZ,GAAG;QACZ;MACF;IACF;EACF;EAEA,OAAO,IAAAc,2BAAa,EAAC;IACnBR,GAAG;IACHN,GAAG;IACHe,MAAM,EAAE,CAAC,KAAKZ,SAAS,yBAAyB,EAAE,OAAO,CAAC,CAACX,IAAI,CAAC,IAAI,CAAC;IACrEwB,MAAM,EAAE,kBAAkB;IAC1B;IACAC,MAAM,EAAE,CAAC;IACTC,OAAO,EAAE;EACX,CAAC,CAAC,CAACvB,QAAQ;AACb;AAEO,SAASO,yBAAyBA,CACvCF,GAAW,EACXG,SAA6B,EACrB;EACR,OAAO,IAAAW,2BAAa,EAAC;IACnBR,GAAG,EAAE,mCAAmCH,SAAS,YAAY;IAC7DH,GAAG;IACHe,MAAM,EAAE,aAAaZ,SAAS,qBAAqB;IACnDa,MAAM,EAAE,IAAIX,MAAM,CAAC,GAAGF,SAAS,6BAA6B,CAAC;IAC7Dc,MAAM,EAAE,CAAC;IACTC,OAAO,EAAE;EACX,CAAC,CAAC,CAACvB,QAAQ;AACb;;AAEA;AACA;AACA;AACA;AACO,SAASwB,wBAAwBA,CAACC,OAAqB,EAAgB;EAC5E,MAAMC,cAAc,GAAGD,OAAO,CAACE,8BAA8B,CAAC,CAAC;EAC/D;EACA;EACA,KAAK,MAAM;IAAErC,IAAI;IAAEsC;EAAc,CAAC,IAAIC,MAAM,CAACC,MAAM,CAACJ,cAAc,IAAI,CAAC,CAAC,CAAC,EAAE;IACzE;IACA;IACA,IACEpC,IAAI,KAAK,SAAS,IAClB,OAAOsC,aAAa,EAAEG,YAAY,KAAK,WAAW,EAClD;MACAH,aAAa,CAAC,wCAAwC,CAAC,GAAG,SAAS;IACrE;EACF;EACA,OAAOH,OAAO;AAChB;AAEA,MAAMO,iBAA+B,GAAItC,MAAM,IAAK;EAClD,MAAMuC,WAAW,GAAG;AACtB;AACA;AACA,GAAG;EACD,OAAO,IAAAC,+BAAgB,EAACxC,MAAM,EAAE,MAAOA,MAAM,IAAK;IAChD,MAAMyC,YAAY,GAAGzC,MAAM,CAAC0C,UAAU;IACtCD,YAAY,CAACE,aAAa,CACxB,EAAE,EACF,0BAA0B,EAC1B,2CAA2C,EAC3C,IAAI,EACJ;MACEC,SAAS,EAAE,SAAS;MACpBL;IACF,CACF,CAAC;IACD,OAAOvC,MAAM;EACf,CAAC,CAAC;AACJ,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM6C,aAA2B,GAAI7C,MAAM,IAAK;EAC9C,OAAO,IAAAwC,+BAAgB,EAACxC,MAAM,EAAE,MAAOA,MAAM,IAAK;IAChD,MAAMyC,YAAY,GAAGzC,MAAM,CAAC0C,UAAU;IACtCD,YAAY,CAACK,sBAAsB,GAAG,iBAAiB;IACvD,OAAO9C,MAAM;EACf,CAAC,CAAC;AACJ,CAAC;AAED,MAAM+C,kCAAgD,GAAIjD,CAAC,IAAK;EAC9D,OAAO,IAAA0C,+BAAgB,EAAC1C,CAAC,EAAGE,MAAM,IAAK;IACrCA,MAAM,CAAC0C,UAAU,GAAGZ,wBAAwB,CAAC9B,MAAM,CAAC0C,UAAU,CAAC;IAC/D,OAAO1C,MAAM;EACf,CAAC,CAAC;AACJ,CAAC;AAED,MAAMgD,YAA0B,GAAIhD,MAAM,IAAK;EAC7CA,MAAM,GAAGsC,iBAAiB,CACxBO,aAAa,CAACE,kCAAkC,CAAC/C,MAAM,CAAC,CAC1D,CAAC;EACD,OAAOH,4BAA4B,CAACG,MAAM,CAAC;AAC7C,CAAC;AAAC,IAAAiD,QAAA,GAAAC,OAAA,CAAAxD,OAAA,GAEa,IAAAyD,kCAAmB,EAACH,YAAY,EAAErD,GAAG,CAACC,IAAI,EAAED,GAAG,CAACyD,OAAO,CAAC","ignoreList":[]}
@@ -1,8 +1,8 @@
1
1
  "use strict";
2
2
 
3
3
  import { point } from "@turf/helpers";
4
- import { forwardRef, memo, useImperativeHandle, useMemo } from "react";
5
- import { requireNativeComponent } from "react-native";
4
+ import { forwardRef, memo, useEffect, useImperativeHandle, useMemo, useState } from "react";
5
+ import { Platform, requireNativeComponent } from "react-native";
6
6
  import { CameraModes } from "../MLRNModule.js";
7
7
  import { useNativeRef } from "../hooks/useNativeRef.js";
8
8
  import { makeNativeBounds } from "../utils/makeNativeBounds.js";
@@ -32,49 +32,52 @@ function makeNativeCameraStop(stop) {
32
32
  if (!stop) {
33
33
  return undefined;
34
34
  }
35
- const nativeStop = {};
35
+ const newNativeStop = {};
36
36
  if (stop.animationDuration !== undefined) {
37
- nativeStop.duration = stop.animationDuration;
37
+ newNativeStop.duration = stop.animationDuration;
38
38
  }
39
39
  if (stop.animationMode !== undefined) {
40
- nativeStop.mode = getNativeCameraMode(stop.animationMode);
40
+ newNativeStop.mode = getNativeCameraMode(stop.animationMode);
41
41
  }
42
42
  if (stop.centerCoordinate) {
43
- nativeStop.centerCoordinate = JSON.stringify(point(stop.centerCoordinate));
43
+ newNativeStop.centerCoordinate = JSON.stringify(point(stop.centerCoordinate));
44
44
  }
45
45
  if (stop.heading !== undefined) {
46
- nativeStop.heading = stop.heading;
46
+ newNativeStop.heading = stop.heading;
47
47
  }
48
48
  if (stop.pitch !== undefined) {
49
- nativeStop.pitch = stop.pitch;
49
+ newNativeStop.pitch = stop.pitch;
50
50
  }
51
51
  if (stop.zoomLevel !== undefined) {
52
- nativeStop.zoom = stop.zoomLevel;
52
+ newNativeStop.zoom = stop.zoomLevel;
53
53
  }
54
54
  if (stop.bounds && stop.bounds.ne && stop.bounds.sw) {
55
55
  const {
56
56
  ne,
57
57
  sw
58
58
  } = stop.bounds;
59
- nativeStop.bounds = makeNativeBounds(ne, sw);
59
+ newNativeStop.bounds = makeNativeBounds(ne, sw);
60
60
  }
61
61
  const paddingTop = stop.padding?.paddingTop ?? stop.bounds?.paddingTop;
62
62
  if (paddingTop !== undefined) {
63
- nativeStop.paddingTop = paddingTop;
63
+ newNativeStop.paddingTop = paddingTop;
64
64
  }
65
65
  const paddingRight = stop.padding?.paddingRight ?? stop.bounds?.paddingRight;
66
66
  if (paddingRight !== undefined) {
67
- nativeStop.paddingRight = paddingRight;
67
+ newNativeStop.paddingRight = paddingRight;
68
68
  }
69
69
  const paddingBottom = stop.padding?.paddingBottom ?? stop.bounds?.paddingBottom;
70
70
  if (paddingBottom !== undefined) {
71
- nativeStop.paddingBottom = paddingBottom;
71
+ newNativeStop.paddingBottom = paddingBottom;
72
72
  }
73
73
  const paddingLeft = stop.padding?.paddingLeft ?? stop.bounds?.paddingLeft;
74
74
  if (paddingLeft !== undefined) {
75
- nativeStop.paddingLeft = paddingLeft;
75
+ newNativeStop.paddingLeft = paddingLeft;
76
76
  }
77
- return nativeStop;
77
+ if (newNativeStop.centerCoordinate && newNativeStop.bounds) {
78
+ throw new Error("Create a camera stop with bounds and centerCoordinate – this is not possible.");
79
+ }
80
+ return newNativeStop;
78
81
  }
79
82
  export const Camera = /*#__PURE__*/memo(/*#__PURE__*/forwardRef(({
80
83
  animationMode,
@@ -96,40 +99,19 @@ export const Camera = /*#__PURE__*/memo(/*#__PURE__*/forwardRef(({
96
99
  pitch,
97
100
  zoomLevel
98
101
  }, ref) => {
99
- const nativeCamera = useNativeRef();
100
- const nativeStop = useMemo(() => {
101
- return makeNativeCameraStop({
102
- animationDuration,
103
- animationMode,
104
- bounds,
105
- centerCoordinate,
106
- heading,
107
- padding,
108
- pitch,
109
- zoomLevel
110
- });
111
- }, [animationDuration, animationMode, bounds, centerCoordinate, heading, padding, pitch, zoomLevel]);
112
- const nativeDefaultStop = useMemo(() => {
113
- return makeNativeCameraStop(defaultSettings);
114
- }, [defaultSettings]);
115
- const nativeMaxBounds = useMemo(() => {
116
- if (!maxBounds?.ne || !maxBounds?.sw) {
117
- return undefined;
118
- }
119
- return makeNativeBounds(maxBounds.ne, maxBounds.sw);
120
- }, [maxBounds]);
102
+ const nativeCameraRef = useNativeRef();
121
103
  const setCamera = (config = {}) => {
122
104
  if ("stops" in config) {
123
- nativeCamera.current?.setNativeProps({
105
+ nativeCameraRef.current?.setNativeProps({
124
106
  stop: {
125
107
  stops: config.stops.map(stopItem => makeNativeCameraStop(stopItem)).filter(stopItem => !!stopItem)
126
108
  }
127
109
  });
128
110
  } else {
129
- const nativeStop = makeNativeCameraStop(config);
130
- if (nativeStop) {
131
- nativeCamera.current?.setNativeProps({
132
- stop: nativeStop
111
+ const stop = makeNativeCameraStop(config);
112
+ if (stop) {
113
+ nativeCameraRef.current?.setNativeProps({
114
+ stop
133
115
  });
134
116
  }
135
117
  }
@@ -195,10 +177,10 @@ export const Camera = /*#__PURE__*/memo(/*#__PURE__*/forwardRef(({
195
177
  * cameraRef.current?.fitBounds([lng, lat], [lng, lat], [verticalPadding, horizontalPadding], 1000)
196
178
  * cameraRef.current?.fitBounds([lng, lat], [lng, lat], [top, right, bottom, left], 1000)
197
179
  *
198
- * @param {Array<Number>} ne - North east coordinate of bound
199
- * @param {Array<Number>} sw - South west coordinate of bound
200
- * @param {Number|Array<Number>|undefined} padding - Padding for the bounds
201
- * @param {Number=} animationDuration - Duration of camera animation
180
+ * @param {Array<number>} ne - North east coordinate of bound
181
+ * @param {Array<number>} sw - South west coordinate of bound
182
+ * @param {number|Array<number>|undefined} padding - Padding for the bounds
183
+ * @param {number=} animationDuration - Duration of camera animation
202
184
  * @return {void}
203
185
  */
204
186
  fitBounds,
@@ -209,8 +191,8 @@ export const Camera = /*#__PURE__*/memo(/*#__PURE__*/forwardRef(({
209
191
  * cameraRef.current?.flyTo([lng, lat])
210
192
  * cameraRef.current?.flyTo([lng, lat], 12000)
211
193
  *
212
- * @param {Array<Number>} coordinates - Coordinates that map camera will jump to
213
- * @param {Number=} animationDuration - Duration of camera animation
194
+ * @param {Array<number>} coordinates - Coordinates that map camera will jump to
195
+ * @param {number=} animationDuration - Duration of camera animation
214
196
  * @return {void}
215
197
  */
216
198
  flyTo,
@@ -221,8 +203,8 @@ export const Camera = /*#__PURE__*/memo(/*#__PURE__*/forwardRef(({
221
203
  * cameraRef.current?.moveTo([lng, lat], 200) // eases camera to new location based on duration
222
204
  * cameraRef.current?.moveTo([lng, lat]) // snaps camera to new location without any easing
223
205
  *
224
- * @param {Array<Number>} coordinates - Coordinates that map camera will move too
225
- * @param {Number=} animationDuration - Duration of camera animation
206
+ * @param {Array<number>} coordinates - Coordinates that map camera will move too
207
+ * @param {number=} animationDuration - Duration of camera animation
226
208
  * @return {void}
227
209
  */
228
210
  moveTo,
@@ -233,8 +215,8 @@ export const Camera = /*#__PURE__*/memo(/*#__PURE__*/forwardRef(({
233
215
  * cameraRef.current?.zoomTo(16)
234
216
  * cameraRef.current?.zoomTo(16, 100)
235
217
  *
236
- * @param {Number} zoomLevel - Zoom level that the map camera will animate too
237
- * @param {Number=} animationDuration - Duration of camera animation
218
+ * @param {number} zoomLevel - Zoom level that the map camera will animate too
219
+ * @param {number=} animationDuration - Duration of camera animation
238
220
  * @return {void}
239
221
  */
240
222
  zoomTo,
@@ -259,19 +241,86 @@ export const Camera = /*#__PURE__*/memo(/*#__PURE__*/forwardRef(({
259
241
  */
260
242
  setCamera
261
243
  }));
244
+ const followProps = useMemo(() => {
245
+ return {
246
+ followUserMode,
247
+ followPitch: followPitch ?? pitch,
248
+ followHeading: followHeading ?? heading,
249
+ followZoomLevel: followZoomLevel ?? zoomLevel
250
+ };
251
+ }, [followUserMode, followPitch, pitch, followHeading, heading, followZoomLevel, zoomLevel]);
252
+ useEffect(() => {
253
+ if (followUserLocation) {
254
+ if (Platform.OS === "android") {
255
+ nativeCameraRef.current?.setNativeProps({
256
+ ...followProps,
257
+ followUserLocation
258
+ });
259
+ } else {
260
+ nativeCameraRef.current?.setNativeProps({
261
+ ...followProps
262
+ });
263
+ nativeCameraRef.current?.setNativeProps({
264
+ followUserLocation
265
+ });
266
+ }
267
+ } else {
268
+ nativeCameraRef.current?.setNativeProps({
269
+ followUserLocation
270
+ });
271
+ }
272
+ }, [followUserLocation, followProps]);
273
+ const nativeMaxBounds = useMemo(() => {
274
+ if (!maxBounds?.ne || !maxBounds?.sw) {
275
+ return undefined;
276
+ }
277
+ return makeNativeBounds(maxBounds.ne, maxBounds.sw);
278
+ }, [maxBounds]);
279
+ useEffect(() => {
280
+ if (!followUserLocation) {
281
+ nativeCameraRef.current?.setNativeProps({
282
+ maxBounds: nativeMaxBounds
283
+ });
284
+ }
285
+ }, [followUserLocation, nativeMaxBounds]);
286
+ useEffect(() => {
287
+ if (!followUserLocation) {
288
+ nativeCameraRef.current?.setNativeProps({
289
+ minZoomLevel
290
+ });
291
+ }
292
+ }, [followUserLocation, minZoomLevel]);
293
+ useEffect(() => {
294
+ if (!followUserLocation) {
295
+ nativeCameraRef.current?.setNativeProps({
296
+ maxZoomLevel
297
+ });
298
+ }
299
+ }, [followUserLocation, maxZoomLevel]);
300
+ const nativeStop = useMemo(() => {
301
+ return makeNativeCameraStop({
302
+ animationDuration,
303
+ animationMode,
304
+ bounds,
305
+ centerCoordinate,
306
+ heading,
307
+ padding,
308
+ pitch,
309
+ zoomLevel
310
+ });
311
+ }, [animationDuration, animationMode, bounds, centerCoordinate, heading, padding, pitch, zoomLevel]);
312
+ useEffect(() => {
313
+ if (!followUserLocation) {
314
+ nativeCameraRef.current?.setNativeProps({
315
+ stop: nativeStop
316
+ });
317
+ }
318
+ }, [followUserLocation, nativeStop]);
319
+ const [nativeDefaultStop] = useState(makeNativeCameraStop(defaultSettings));
262
320
  return /*#__PURE__*/_jsx(MLRNCamera, {
263
321
  testID: "Camera",
264
- ref: nativeCamera,
265
- stop: nativeStop,
322
+ ref: nativeCameraRef,
266
323
  defaultStop: nativeDefaultStop,
267
- maxBounds: nativeMaxBounds,
268
- followUserLocation: followUserLocation,
269
- followHeading: followHeading,
270
- followPitch: followPitch,
271
- followUserMode: followUserMode,
272
- followZoomLevel: followZoomLevel,
273
- maxZoomLevel: maxZoomLevel,
274
- minZoomLevel: minZoomLevel,
275
324
  onUserTrackingModeChange: onUserTrackingModeChange
276
325
  });
277
326
  }));
@@ -1 +1 @@
1
- {"version":3,"names":["point","forwardRef","memo","useImperativeHandle","useMemo","requireNativeComponent","CameraModes","useNativeRef","makeNativeBounds","jsx","_jsx","NATIVE_MODULE_NAME","UserTrackingMode","getNativeCameraMode","mode","Flight","None","Linear","Ease","makeNativeCameraStop","stop","undefined","nativeStop","animationDuration","duration","animationMode","centerCoordinate","JSON","stringify","heading","pitch","zoomLevel","zoom","bounds","ne","sw","paddingTop","padding","paddingRight","paddingBottom","paddingLeft","Camera","defaultSettings","followUserLocation","followHeading","followPitch","followUserMode","followZoomLevel","maxBounds","maxZoomLevel","minZoomLevel","onUserTrackingModeChange","ref","nativeCamera","nativeDefaultStop","nativeMaxBounds","setCamera","config","current","setNativeProps","stops","map","stopItem","filter","fitBounds","_padding","Array","isArray","length","flyTo","coordinates","moveTo","zoomTo","MLRNCamera","testID","defaultStop"],"sourceRoot":"../../../src","sources":["components/Camera.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["point","forwardRef","memo","useEffect","useImperativeHandle","useMemo","useState","Platform","requireNativeComponent","CameraModes","useNativeRef","makeNativeBounds","jsx","_jsx","NATIVE_MODULE_NAME","UserTrackingMode","getNativeCameraMode","mode","Flight","None","Linear","Ease","makeNativeCameraStop","stop","undefined","newNativeStop","animationDuration","duration","animationMode","centerCoordinate","JSON","stringify","heading","pitch","zoomLevel","zoom","bounds","ne","sw","paddingTop","padding","paddingRight","paddingBottom","paddingLeft","Error","Camera","defaultSettings","followUserLocation","followHeading","followPitch","followUserMode","followZoomLevel","maxBounds","maxZoomLevel","minZoomLevel","onUserTrackingModeChange","ref","nativeCameraRef","setCamera","config","current","setNativeProps","stops","map","stopItem","filter","fitBounds","_padding","Array","isArray","length","flyTo","coordinates","moveTo","zoomTo","followProps","OS","nativeMaxBounds","nativeStop","nativeDefaultStop","MLRNCamera","testID","defaultStop"],"sourceRoot":"../../../src","sources":["components/Camera.tsx"],"mappings":"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","ignoreList":[]}
@@ -93,8 +93,8 @@ export const MapView = /*#__PURE__*/memo(/*#__PURE__*/forwardRef(({
93
93
  queryRenderedFeaturesInRect,
94
94
  /**
95
95
  * Takes snapshot of map with current tiles and returns a URI to the image
96
- * @param {Boolean} writeToDisk If true will create a temp file, otherwise it is in base64
97
- * @return {String}
96
+ * @param {boolean} writeToDisk If true will create a temp file, otherwise it is in base64
97
+ * @return {string}
98
98
  */
99
99
  takeSnap,
100
100
  /**
@@ -103,7 +103,7 @@ export const MapView = /*#__PURE__*/memo(/*#__PURE__*/forwardRef(({
103
103
  * @example
104
104
  * const zoom = await this._map.getZoom();
105
105
  *
106
- * @return {Number}
106
+ * @return {number}
107
107
  */
108
108
  getZoom,
109
109
  /**
@@ -112,7 +112,7 @@ export const MapView = /*#__PURE__*/memo(/*#__PURE__*/forwardRef(({
112
112
  * @example
113
113
  * const center = await this._map.getCenter();
114
114
  *
115
- * @return {Array<Number>} Coordinates
115
+ * @return {Array<number>} Coordinates
116
116
  */
117
117
  getCenter,
118
118
  /**
@@ -122,8 +122,8 @@ export const MapView = /*#__PURE__*/memo(/*#__PURE__*/forwardRef(({
122
122
  * await this._map.setSourceVisibility(false, 'composite', 'building')
123
123
  *
124
124
  * @param {boolean} visible - Visibility of the layers
125
- * @param {String} sourceId - Identifier of the target source (e.g. 'composite')
126
- * @param {String=} sourceLayerId - Identifier of the target source-layer (e.g. 'building')
125
+ * @param {string} sourceId - Identifier of the target source (e.g. 'composite')
126
+ * @param {string=} sourceLayerId - Identifier of the target source-layer (e.g. 'building')
127
127
  */
128
128
  setSourceVisibility,
129
129
  /**
@@ -64,7 +64,7 @@ class OfflineManager {
64
64
  * @example
65
65
  * await OfflineManager.invalidatePack('packName')
66
66
  *
67
- * @param {String} name Name of the offline pack.
67
+ * @param {string} name Name of the offline pack.
68
68
  * @return {void}
69
69
  */
70
70
  async invalidatePack(name) {
@@ -84,7 +84,7 @@ class OfflineManager {
84
84
  * @example
85
85
  * await OfflineManager.deletePack('packName')
86
86
  *
87
- * @param {String} name Name of the offline pack.
87
+ * @param {string} name Name of the offline pack.
88
88
  * @return {void}
89
89
  */
90
90
  async deletePack(name) {
@@ -136,7 +136,7 @@ class OfflineManager {
136
136
  * @example
137
137
  * await OfflineManager.setMaximumAmbientCacheSize(5000000);
138
138
  *
139
- * @param {Number} size Size of ambient cache.
139
+ * @param {number} size Size of ambient cache.
140
140
  * @return {void}
141
141
  */
142
142
  async setMaximumAmbientCacheSize(size) {
@@ -176,7 +176,7 @@ class OfflineManager {
176
176
  * @example
177
177
  * const offlinePack = await OfflineManager.getPack();
178
178
  *
179
- * @param {String} name Name of the offline pack.
179
+ * @param {string} name Name of the offline pack.
180
180
  * @return {OfflinePack}
181
181
  */
182
182
  async getPack(name) {
@@ -190,7 +190,7 @@ class OfflineManager {
190
190
  * @example
191
191
  * await OfflineManager.mergeOfflineRegions(path);
192
192
  *
193
- * @param {String} path Path to offline tile db on file system.
193
+ * @param {string} path Path to offline tile db on file system.
194
194
  * @return {void}
195
195
  */
196
196
  async mergeOfflineRegions(path) {
@@ -205,7 +205,7 @@ class OfflineManager {
205
205
  * @example
206
206
  * OfflineManager.setTileCountLimit(1000);
207
207
  *
208
- * @param {Number} limit Map tile limit count.
208
+ * @param {number} limit Map tile limit count.
209
209
  * @return {void}
210
210
  */
211
211
  setTileCountLimit(limit) {
@@ -219,7 +219,7 @@ class OfflineManager {
219
219
  * @example
220
220
  * OfflineManager.setProgressEventThrottle(500);
221
221
  *
222
- * @param {Number} throttleValue event throttle value in ms.
222
+ * @param {number} throttleValue event throttle value in ms.
223
223
  * @return {void}
224
224
  */
225
225
  setProgressEventThrottle(throttleValue) {
@@ -275,7 +275,7 @@ class OfflineManager {
275
275
  * @example
276
276
  * OfflineManager.unsubscribe('packName')
277
277
  *
278
- * @param {String} packName Name of the offline pack.
278
+ * @param {string} packName Name of the offline pack.
279
279
  * @return {void}
280
280
  */
281
281
  unsubscribe(packName) {