react-native-maplibre-gl-js 1.18.4 → 1.20.0

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 (29) hide show
  1. package/lib/module/react-native/components/core/MapProvider/MapProvider.js +15 -3
  2. package/lib/module/react-native/components/core/MapProvider/MapProvider.js.map +1 -1
  3. package/lib/module/react-native/components/web-objects/Map/Map.types.js +38 -1
  4. package/lib/module/react-native/components/web-objects/Map/Map.types.js.map +1 -1
  5. package/lib/module/react-native/components/web-objects/Marker/Marker.types.js +39 -1
  6. package/lib/module/react-native/components/web-objects/Marker/Marker.types.js.map +1 -1
  7. package/lib/module/react-native/components/web-objects/Popup/Popup.types.js +39 -1
  8. package/lib/module/react-native/components/web-objects/Popup/Popup.types.js.map +1 -1
  9. package/lib/module/web/controllers/WebObjectsController.js +33 -10
  10. package/lib/module/web/controllers/WebObjectsController.js.map +1 -1
  11. package/lib/module/web/generated/webview_static_html.js +77 -20
  12. package/lib/module/web/generated/webview_static_html.js.map +1 -1
  13. package/lib/typescript/src/communication/messages.types.d.ts +7 -0
  14. package/lib/typescript/src/communication/messages.types.d.ts.map +1 -1
  15. package/lib/typescript/src/react-native/components/core/MapProvider/MapProvider.d.ts.map +1 -1
  16. package/lib/typescript/src/react-native/components/core/MapProvider/MapProvider.types.d.ts +4 -0
  17. package/lib/typescript/src/react-native/components/core/MapProvider/MapProvider.types.d.ts.map +1 -1
  18. package/lib/typescript/src/react-native/components/web-objects/Map/Map.types.d.ts +18 -1
  19. package/lib/typescript/src/react-native/components/web-objects/Map/Map.types.d.ts.map +1 -1
  20. package/lib/typescript/src/react-native/components/web-objects/Marker/Marker.types.d.ts +18 -4
  21. package/lib/typescript/src/react-native/components/web-objects/Marker/Marker.types.d.ts.map +1 -1
  22. package/lib/typescript/src/react-native/components/web-objects/Popup/Popup.types.d.ts +18 -1
  23. package/lib/typescript/src/react-native/components/web-objects/Popup/Popup.types.d.ts.map +1 -1
  24. package/lib/typescript/src/react-native/components-factories/web-objects/createWebObjectAsComponent.types.d.ts +3 -2
  25. package/lib/typescript/src/react-native/components-factories/web-objects/createWebObjectAsComponent.types.d.ts.map +1 -1
  26. package/lib/typescript/src/web/controllers/WebObjectsController.d.ts.map +1 -1
  27. package/lib/typescript/src/web/generated/webview_static_html.d.ts +1 -1
  28. package/lib/typescript/src/web/generated/webview_static_html.d.ts.map +1 -1
  29. package/package.json +1 -1
@@ -45,12 +45,13 @@ const MapProviderInner = ({
45
45
  children,
46
46
  cssStyles,
47
47
  rnLoggerEnabled = false,
48
- webLoggerEnabled = true,
48
+ webLoggerEnabled = false,
49
49
  webMessageOptions = {
50
50
  flushIntervalMs: 100,
51
51
  keepOnlyLastMessagePerType: true
52
52
  },
53
- nativeScripts = []
53
+ nativeScripts = [],
54
+ onWebViewReset = () => {}
54
55
  }) => {
55
56
  // States.
56
57
  // - Global.
@@ -97,8 +98,19 @@ const MapProviderInner = ({
97
98
  // Trigger the reload everything (remount, etc. by changing the session
98
99
  // key and resetting atoms) if the webview has crashed or was closed if
99
100
  // app in background.
101
+ // - For iOS:
100
102
  ,
101
- onContentProcessDidTerminate: reset
103
+ onContentProcessDidTerminate: () => {
104
+ reset();
105
+ onWebViewReset();
106
+ }
107
+ // - For Android:
108
+ ,
109
+ onRenderProcessGone: () => {
110
+ reset();
111
+ onWebViewReset();
112
+ }
113
+ // - TODO add for web once supported?
102
114
  }, 'map-provider-webview-session-' + webWorldSessionKey), children]
103
115
  });
104
116
  };
@@ -1 +1 @@
1
- {"version":3,"names":["View","WebView","WEBVIEW_STATIC_HTML","useMapAtoms","useCssStylesInjectionScript","useEnableDisableRNLogger","useFlushMessagesOnMapMounted","useInjectJavaScriptIfAScriptChanged","useInjectJavaScriptIfScriptChanged","useMessageOptionsInjectionScript","useStyles","useWebLoggerEnabledInjectionScript","useWebMessageHandler","ScopeProvider","mapAtomsList","jsx","_jsx","jsxs","_jsxs","MapProvider","props","atoms","children","MapProviderInner","style","webViewStyle","cssStyles","rnLoggerEnabled","webLoggerEnabled","webMessageOptions","flushIntervalMs","keepOnlyLastMessagePerType","nativeScripts","setWebView","webWorldSessionKey","reset","styles","handler","cssStylesInjectionScript","webLoggerEnabledInjectionScript","messageOptionsInjectionScript","container","testID","ref","webView","scrollEnabled","javaScriptEnabled","domStorageEnabled","onMessage","source","html","injectedJavaScriptBeforeContentLoaded","join","onContentProcessDidTerminate"],"sourceRoot":"../../../../../../src","sources":["react-native/components/core/MapProvider/MapProvider.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["View","WebView","WEBVIEW_STATIC_HTML","useMapAtoms","useCssStylesInjectionScript","useEnableDisableRNLogger","useFlushMessagesOnMapMounted","useInjectJavaScriptIfAScriptChanged","useInjectJavaScriptIfScriptChanged","useMessageOptionsInjectionScript","useStyles","useWebLoggerEnabledInjectionScript","useWebMessageHandler","ScopeProvider","mapAtomsList","jsx","_jsx","jsxs","_jsxs","MapProvider","props","atoms","children","MapProviderInner","style","webViewStyle","cssStyles","rnLoggerEnabled","webLoggerEnabled","webMessageOptions","flushIntervalMs","keepOnlyLastMessagePerType","nativeScripts","onWebViewReset","setWebView","webWorldSessionKey","reset","styles","handler","cssStylesInjectionScript","webLoggerEnabledInjectionScript","messageOptionsInjectionScript","container","testID","ref","webView","scrollEnabled","javaScriptEnabled","domStorageEnabled","onMessage","source","html","injectedJavaScriptBeforeContentLoaded","join","onContentProcessDidTerminate","onRenderProcessGone"],"sourceRoot":"../../../../../../src","sources":["react-native/components/core/MapProvider/MapProvider.tsx"],"mappings":";;AAAA,SAASA,IAAI,QAAQ,cAAc;AACnC,SAASC,OAAO,QAAQ,sBAAsB;AAC9C,SAASC,mBAAmB,QAAQ,kDAA+C;AACnF,OAAOC,WAAW,MAAM,qCAAkC;AAC1D,SACEC,2BAA2B,EAC3BC,wBAAwB,EACxBC,4BAA4B,EAC5BC,mCAAmC,EACnCC,kCAAkC,EAClCC,gCAAgC,EAChCC,SAAS,EACTC,kCAAkC,EAClCC,oBAAoB,QACf,wBAAqB;AAE5B,SAASC,aAAa,QAAQ,aAAa;AAC3C,SAASC,YAAY,QAAQ,kCAA+B;;AAE5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAdA,SAAAC,GAAA,IAAAC,IAAA,EAAAC,IAAA,IAAAC,KAAA;AAeA,MAAMC,WAAW,GAAIC,KAAuB,IAAK;EAC/C;EACA;EACA;EACA,oBACEJ,IAAA,CAACH,aAAa;IAACQ,KAAK,EAAEP,YAAa;IAAAQ,QAAA,eACjCN,IAAA,CAACO,gBAAgB;MAAA,GAAKH;IAAK,CAAG;EAAC,CAClB,CAAC;AAEpB,CAAC;;AAED;AACA;AACA;AACA,MAAMG,gBAAgB,GAAGA,CAAC;EACxBC,KAAK;EACLC,YAAY;EACZH,QAAQ;EACRI,SAAS;EACTC,eAAe,GAAG,KAAK;EACvBC,gBAAgB,GAAG,KAAK;EACxBC,iBAAiB,GAAG;IAClBC,eAAe,EAAE,GAAG;IACpBC,0BAA0B,EAAE;EAC9B,CAAC;EACDC,aAAa,GAAG,EAAE;EAClBC,cAAc,GAAGA,CAAA,KAAM,CAAC;AACR,CAAC,KAAK;EACtB;EACA;EACA,MAAM;IAAEC,UAAU;IAAEC,kBAAkB;IAAEC;EAAM,CAAC,GAAGjC,WAAW,CAAC,CAAC;EAC/D;EACA,MAAMkC,MAAM,GAAG3B,SAAS,CAAC,CAAC;EAC1B;EACA,MAAM;IAAE4B;EAAQ,CAAC,GAAG1B,oBAAoB,CAAC,CAAC;EAC1CP,wBAAwB,CAACsB,eAAe,CAAC;EACzCrB,4BAA4B,CAAC,CAAC;EAC9B,MAAM;IAAEiC;EAAyB,CAAC,GAAGnC,2BAA2B,CAACsB,SAAS,CAAC;EAC3E,MAAM;IAAEc;EAAgC,CAAC,GACvC7B,kCAAkC,CAACiB,gBAAgB,CAAC;EACtD,MAAM;IAAEa;EAA8B,CAAC,GACrChC,gCAAgC,CAACoB,iBAAiB,CAAC;EACrDrB,kCAAkC,CAAC+B,wBAAwB,CAAC;EAC5D/B,kCAAkC,CAACgC,+BAA+B,CAAC;EACnEhC,kCAAkC,CAACiC,6BAA6B,CAAC;EACjElC,mCAAmC,CAACyB,aAAa,CAAC;EAElD,oBACEd,KAAA,CAAClB,IAAI;IAACwB,KAAK,EAAE,CAACa,MAAM,CAACK,SAAS,EAAElB,KAAK,CAAE;IAAAF,QAAA,gBACrCN,IAAA,CAACf,OAAO;MAEN0C,MAAM,EAAE,sBAAuB;MAC/BC,GAAG,EAAEV,UAAW;MAChBV,KAAK,EAAE,CAACa,MAAM,CAACQ,OAAO,EAAEpB,YAAY,CAAE;MACtCqB,aAAa,EAAE,KAAM;MACrBC,iBAAiB,EAAE,IAAK;MACxBC,iBAAiB,EAAE,IAAK;MACxBC,SAAS,EAAEX,OAAQ;MACnBY,MAAM,EAAE;QAAEC,IAAI,EAAEjD;MAAoB,CAAE;MACtCkD,qCAAqC,EAAE,CACrCb,wBAAwB,EACxBC,+BAA+B,EAC/BC,6BAA6B,CAC9B,CAACY,IAAI,CAAC,GAAG;MACV;MACA;MACA;MACA;MAAA;MACAC,4BAA4B,EAAEA,CAAA,KAAM;QAClClB,KAAK,CAAC,CAAC;QACPH,cAAc,CAAC,CAAC;MAClB;MACA;MAAA;MACAsB,mBAAmB,EAAEA,CAAA,KAAM;QACzBnB,KAAK,CAAC,CAAC;QACPH,cAAc,CAAC,CAAC;MAClB;MACA;IAAA,GA3BK,+BAA+B,GAAGE,kBA4BxC,CAAC,EACDb,QAAQ;EAAA,CACL,CAAC;AAEX,CAAC;AAED,eAAeH,WAAW","ignoreList":[]}
@@ -1,4 +1,41 @@
1
1
  "use strict";
2
2
 
3
- export {};
3
+ export const MAP_OPTIONS_THAT_ARE_WEB_FUNCTIONS = ['transformCameraUpdate', 'transformConstrain', 'transformRequest'];
4
+ export const MAP_OPTIONS_THAT_ARE_HTML_ELEMENTS = ['container'];
5
+
6
+ /**
7
+ * Map component ref.
8
+ * @interface
9
+ * @group Types (web objects)
10
+ */
11
+
12
+ /**
13
+ * Map component props.
14
+ * @group Types (web objects)
15
+ */
16
+
17
+ /**
18
+ * @interface
19
+ * @group Map types
20
+ */
21
+
22
+ /**
23
+ * @interface
24
+ * @group Map types
25
+ */
26
+
27
+ /**
28
+ * @interface
29
+ * @group Map types
30
+ */
31
+
32
+ /**
33
+ * @interface
34
+ * @group Map types
35
+ */
36
+
37
+ /**
38
+ * @interface
39
+ * @group Map types
40
+ */
4
41
  //# sourceMappingURL=Map.types.js.map
@@ -1 +1 @@
1
- {"version":3,"names":[],"sourceRoot":"../../../../../../src","sources":["react-native/components/web-objects/Map/Map.types.ts"],"mappings":"","ignoreList":[]}
1
+ {"version":3,"names":["MAP_OPTIONS_THAT_ARE_WEB_FUNCTIONS","MAP_OPTIONS_THAT_ARE_HTML_ELEMENTS"],"sourceRoot":"../../../../../../src","sources":["react-native/components/web-objects/Map/Map.types.ts"],"mappings":";;AA+BA,OAAO,MAAMA,kCAAkC,GAAG,CAChD,uBAAuB,EACvB,oBAAoB,EACpB,kBAAkB,CACV;AAEV,OAAO,MAAMC,kCAAkC,GAAG,CAAC,WAAW,CAAU;;AAExE;AACA;AACA;AACA;AACA;;AAGA;AACA;AACA;AACA;;AAGA;AACA;AACA;AACA;;AAaA;AACA;AACA;AACA;;AAMA;AACA;AACA;AACA;;AAMA;AACA;AACA;AACA;;AAMA;AACA;AACA;AACA","ignoreList":[]}
@@ -1,4 +1,42 @@
1
1
  "use strict";
2
2
 
3
- export {};
3
+ export const MARKER_OPTIONS_THAT_ARE_WEB_FUNCTIONS = [];
4
+ export const MARKER_OPTIONS_THAT_ARE_HTML_ELEMENTS = ['element'];
5
+
6
+ /**
7
+ * Marker component ref.
8
+ * @interface
9
+ * @group Types (web objects)
10
+ */
11
+
12
+ /**
13
+ * Marker component props.
14
+ * @interface
15
+ * @group Types (web objects)
16
+ */
17
+
18
+ /**
19
+ * @interface
20
+ * @group Marker types
21
+ */
22
+
23
+ /**
24
+ * @interface
25
+ * @group Marker types
26
+ */
27
+
28
+ /**
29
+ * @interface
30
+ * @group Marker types
31
+ */
32
+
33
+ /**
34
+ * @interface
35
+ * @group Marker types
36
+ */
37
+
38
+ /**
39
+ * @interface
40
+ * @group Marker types
41
+ */
4
42
  //# sourceMappingURL=Marker.types.js.map
@@ -1 +1 @@
1
- {"version":3,"names":[],"sourceRoot":"../../../../../../src","sources":["react-native/components/web-objects/Marker/Marker.types.ts"],"mappings":"","ignoreList":[]}
1
+ {"version":3,"names":["MARKER_OPTIONS_THAT_ARE_WEB_FUNCTIONS","MARKER_OPTIONS_THAT_ARE_HTML_ELEMENTS"],"sourceRoot":"../../../../../../src","sources":["react-native/components/web-objects/Marker/Marker.types.ts"],"mappings":";;AAoBA,OAAO,MAAMA,qCAAqC,GAAG,EAAW;AAEhE,OAAO,MAAMC,qCAAqC,GAAG,CAAC,SAAS,CAAU;;AAEzE;AACA;AACA;AACA;AACA;;AAGA;AACA;AACA;AACA;AACA;;AAGA;AACA;AACA;AACA;;AAaA;AACA;AACA;AACA;;AAMA;AACA;AACA;AACA;;AAMA;AACA;AACA;AACA;;AAMA;AACA;AACA;AACA","ignoreList":[]}
@@ -1,4 +1,42 @@
1
1
  "use strict";
2
2
 
3
- export {};
3
+ export const POPUP_OPTIONS_THAT_ARE_WEB_FUNCTIONS = [];
4
+ export const POPUP_OPTIONS_THAT_ARE_HTML_ELEMENTS = [];
5
+
6
+ /**
7
+ * Popup component ref.
8
+ * @interface
9
+ * @group Types (web objects)
10
+ */
11
+
12
+ /**
13
+ * Popup component props.
14
+ * @interface
15
+ * @group Types (web objects)
16
+ */
17
+
18
+ /**
19
+ * @interface
20
+ * @group Popup types
21
+ */
22
+
23
+ /**
24
+ * @interface
25
+ * @group Popup types
26
+ */
27
+
28
+ /**
29
+ * @interface
30
+ * @group Popup types
31
+ */
32
+
33
+ /**
34
+ * @interface
35
+ * @group Popup types
36
+ */
37
+
38
+ /**
39
+ * @interface
40
+ * @group Popup types
41
+ */
4
42
  //# sourceMappingURL=Popup.types.js.map
@@ -1 +1 @@
1
- {"version":3,"names":[],"sourceRoot":"../../../../../../src","sources":["react-native/components/web-objects/Popup/Popup.types.ts"],"mappings":"","ignoreList":[]}
1
+ {"version":3,"names":["POPUP_OPTIONS_THAT_ARE_WEB_FUNCTIONS","POPUP_OPTIONS_THAT_ARE_HTML_ELEMENTS"],"sourceRoot":"../../../../../../src","sources":["react-native/components/web-objects/Popup/Popup.types.ts"],"mappings":";;AAkBA,OAAO,MAAMA,oCAAoC,GAAG,EAAW;AAE/D,OAAO,MAAMC,oCAAoC,GAAG,EAAW;;AAE/D;AACA;AACA;AACA;AACA;;AAGA;AACA;AACA;AACA;AACA;;AAGA;AACA;AACA;AACA;;AAWA;AACA;AACA;AACA;;AAMA;AACA;AACA;AACA;;AAMA;AACA;AACA;AACA;;AAMA;AACA;AACA;AACA","ignoreList":[]}
@@ -3,6 +3,9 @@
3
3
  import maplibregl from 'maplibre-gl';
4
4
  import { isWebObjectListenerOnHTMLElement, isWebObjectListenerOnMapLayer, isWebObjectListenerOnObject } from "../../communication/messages.utils.js";
5
5
  import { stableStringify } from "../../react-native/hooks/atoms/useMapAtoms.utils.js";
6
+ import { MAP_OPTIONS_THAT_ARE_HTML_ELEMENTS, MAP_OPTIONS_THAT_ARE_WEB_FUNCTIONS } from "../../react-native/components/web-objects/Map/Map.types.js";
7
+ import { MARKER_OPTIONS_THAT_ARE_HTML_ELEMENTS, MARKER_OPTIONS_THAT_ARE_WEB_FUNCTIONS } from "../../react-native/components/web-objects/Marker/Marker.types.js";
8
+ import { POPUP_OPTIONS_THAT_ARE_HTML_ELEMENTS, POPUP_OPTIONS_THAT_ARE_WEB_FUNCTIONS } from "../../react-native/components/web-objects/Popup/Popup.types.js";
6
9
 
7
10
  /**
8
11
  *
@@ -83,29 +86,25 @@ export default class WebObjectsController {
83
86
  switch (objectType) {
84
87
  case 'map':
85
88
  {
89
+ options = this.#resolveDescriptorsInOptions(options, MAP_OPTIONS_THAT_ARE_WEB_FUNCTIONS, MAP_OPTIONS_THAT_ARE_HTML_ELEMENTS);
86
90
  const htmlContainer = document.getElementById('app');
87
91
  element = new maplibregl.Map({
88
92
  ...options,
89
- container: htmlContainer
93
+ container: options.container ?? htmlContainer
90
94
  });
91
95
  this.#mapId = objectId;
92
96
  break;
93
97
  }
94
98
  case 'marker':
95
99
  {
96
- const htmlElement = this.#buildHTMLElement(options.element);
97
- element = new maplibregl.Marker({
98
- ...options,
99
- element: htmlElement
100
- }).setLngLat(options.coordinate ?? [0, 0]).addTo(this.map);
100
+ options = this.#resolveDescriptorsInOptions(options, MARKER_OPTIONS_THAT_ARE_WEB_FUNCTIONS, MARKER_OPTIONS_THAT_ARE_HTML_ELEMENTS);
101
+ element = new maplibregl.Marker(options).setLngLat(options.coordinate ?? [0, 0]).addTo(this.map);
101
102
  break;
102
103
  }
103
104
  case 'popup':
104
105
  {
105
- element = new maplibregl.Popup({
106
- ...options
107
- });
108
- //.addTo(this.map)
106
+ options = this.#resolveDescriptorsInOptions(options, POPUP_OPTIONS_THAT_ARE_WEB_FUNCTIONS, POPUP_OPTIONS_THAT_ARE_HTML_ELEMENTS);
107
+ element = new maplibregl.Popup(options);
109
108
  break;
110
109
  }
111
110
  }
@@ -262,6 +261,30 @@ export default class WebObjectsController {
262
261
  #runNormalMethod = async (message, object) => {
263
262
  return await object[message.payload.method]?.(...message.payload.args);
264
263
  };
264
+ #resolveDescriptorsInOptions = (options, optionsThatAreFunctions, optionsThatAreHTMLElements) => {
265
+ if (options === null || typeof options !== 'object') {
266
+ return options;
267
+ }
268
+
269
+ // Flatten the array if needed.
270
+ if (Array.isArray(options)) {
271
+ return options.map(opt => this.#resolveDescriptorsInOptions(opt, optionsThatAreFunctions, optionsThatAreHTMLElements));
272
+ }
273
+ const resolved = {};
274
+
275
+ // Parse for the options that are known to be descriptors for this object
276
+ // type.
277
+ for (const key in options) {
278
+ if (optionsThatAreFunctions.includes(key)) {
279
+ resolved[key] = window[options[key]];
280
+ } else if (optionsThatAreHTMLElements.includes(key)) {
281
+ resolved[key] = this.#buildHTMLElement(options[key]);
282
+ } else {
283
+ resolved[key] = this.#resolveDescriptorsInOptions(options[key], optionsThatAreFunctions, optionsThatAreHTMLElements);
284
+ }
285
+ }
286
+ return resolved;
287
+ };
265
288
  #buildHTMLElement = descriptor => {
266
289
  // From a descriptor, build the corresponding HTMLElement.
267
290
  if (!descriptor) {
@@ -1 +1 @@
1
- {"version":3,"names":["maplibregl","isWebObjectListenerOnHTMLElement","isWebObjectListenerOnMapLayer","isWebObjectListenerOnObject","stableStringify","WebObjectsController","objects","Map","objectsOptions","mapId","map","get","Error","addExistingObjectsToMap","reactNativeBridge","entries","forEach","id","object","addTo","postMessage","type","payload","objectId","eventName","handleMountMessage","message","element","addObject","objectType","options","setObjectListeners","listeners","set","handleUpdateMessage","updateObject","handleUnmountMessage","removeObject","delete","handleMethodCall","result","runIfSpecialMethod","runNormalMethod","JSON","stringify","error","requestId","#addObject","htmlContainer","document","getElementById","container","htmlElement","buildHTMLElement","Marker","setLngLat","coordinate","Popup","#updateObject","oldOptionsAsString","newOptionsAsString","#removeObject","remove","#setObjectListeners","Object","listener","sendEventToReactNative","event","target","on","layerId","getElement","addEventListener","stopPropagation","#runIfSpecialMethod","method","image","loadImage","args","addImage","data","at","parentId","parent","setEventedParent","popupId","popup","setPopup","#runNormalMethod","descriptor","undefined","createElement","tagName","className","attributes","name","value","setAttribute","style","assign","dataset","innerHTML"],"sourceRoot":"../../../../src","sources":["web/controllers/WebObjectsController.ts"],"mappings":";;AAIA,OAAOA,UAAU,MAAkC,aAAa;AAChE,SACEC,gCAAgC,EAChCC,6BAA6B,EAC7BC,2BAA2B,QACtB,uCAAoC;AAU3C,SAASC,eAAe,QAAQ,qDAAkD;;AAElF;AACA;AACA;AACA,eAAe,MAAMC,oBAAoB,CAAC;EACxC,CAACC,OAAO,GAAG,IAAIC,GAAG,CAAyB,CAAC;EAC5C,CAACC,cAAc,GAAG,IAAID,GAAG,CAAwC,CAAC;EAClE,CAACE,KAAK;EAEN,IAAIC,GAAGA,CAAA,EAAmB;IACxB,MAAMA,GAAG,GAAG,IAAI,CAAC,CAACJ,OAAO,CAACK,GAAG,CAAC,IAAI,CAAC,CAACF,KAAK,IAAI,EAAE,CAAC;IAChD,IAAI,CAACC,GAAG,EAAE;MACR,MAAM,IAAIE,KAAK,CAAC,mBAAmB,CAAC;IACtC;IACA,OAAOF,GAAG;EACZ;;EAEA;AACF;AACA;AACA;AACA;EACEG,uBAAuB,GAAGA,CACxBC,iBAAoC,EACpCJ,GAAmB,KAChB;IACH,IAAI,CAAC,CAACJ,OAAO,CAACS,OAAO,CAAC,CAAC,CAACC,OAAO,CAAC,CAAC,CAACC,EAAE,EAAEC,MAAM,CAAC,KAAK;MAChD,IAAI,EAAEA,MAAM,YAAYlB,UAAU,CAACO,GAAG,CAAC,EAAE;QACvCW,MAAM,CAACC,KAAK,CAACT,GAAG,CAAC;QACjBI,iBAAiB,CAACM,WAAW,CAAC;UAC5BC,IAAI,EAAE,wBAAwB;UAC9BC,OAAO,EAAE;YACPC,QAAQ,EAAEN,EAAE;YACZO,SAAS,EAAE;UACb;QACF,CAAC,CAAC;MACJ;IACF,CAAC,CAAC;EACJ,CAAC;EAEDC,kBAAkB,GAAGA,CACnBC,OAAgE,EAChEZ,iBAAoC,KACjC;IACH,MAAMa,OAAO,GAAG,IAAI,CAAC,CAACC,SAAS,CAC7BF,OAAO,CAACJ,OAAO,CAACC,QAAQ,EACxBG,OAAO,CAACJ,OAAO,CAACO,UAAU,EAC1BH,OAAO,CAACJ,OAAO,CAACQ,OAAO,EACvBhB,iBACF,CAAC;IACD,IAAI,CAAC,CAACiB,kBAAkB,CACtBjB,iBAAiB,EACjBa,OAAO,EACPD,OAAO,CAACJ,OAAO,CAACC,QAAQ,EACxBG,OAAO,CAACJ,OAAO,CAACU,SAClB,CAAC;IACD,IAAI,CAAC,CAAC1B,OAAO,CAAC2B,GAAG,CAACP,OAAO,CAACJ,OAAO,CAACC,QAAQ,EAAEI,OAAO,CAAC;IACpD,IAAI,CAAC,CAACnB,cAAc,CAACyB,GAAG,CAACP,OAAO,CAACJ,OAAO,CAACC,QAAQ,EAAEG,OAAO,CAACJ,OAAO,CAACQ,OAAO,CAAC;EAC7E,CAAC;EAEDI,mBAAmB,GAAGA,CACpBR,OAAiE,EACjEZ,iBAAoC,KACjC;IACH,MAAMa,OAAO,GAAG,IAAI,CAAC,CAACQ,YAAY,CAChCT,OAAO,CAACJ,OAAO,CAACC,QAAQ,EACxBG,OAAO,CAACJ,OAAO,CAACO,UAAU,EAC1BH,OAAO,CAACJ,OAAO,CAACQ,OAAO,EACvBhB,iBACF,CAAC;IACD,IAAI,CAAC,CAACiB,kBAAkB,CACtBjB,iBAAiB,EACjBa,OAAO,EACPD,OAAO,CAACJ,OAAO,CAACC,QAAQ,EACxBG,OAAO,CAACJ,OAAO,CAACU,SAClB,CAAC;IACD,IAAI,CAAC,CAAC1B,OAAO,CAAC2B,GAAG,CAACP,OAAO,CAACJ,OAAO,CAACC,QAAQ,EAAEI,OAAO,CAAC;IACpD,IAAI,CAAC,CAACnB,cAAc,CAACyB,GAAG,CAACP,OAAO,CAACJ,OAAO,CAACC,QAAQ,EAAEG,OAAO,CAACJ,OAAO,CAACQ,OAAO,CAAC;EAC7E,CAAC;EAEDM,oBAAoB,GAAGA,CACrBV,OAAkE,EAClEZ,iBAAoC,KACjC;IACH,IAAI,CAAC,CAACuB,YAAY,CAACX,OAAO,CAACJ,OAAO,CAACC,QAAQ,EAAET,iBAAiB,CAAC;IAC/D,IAAI,CAAC,CAACR,OAAO,CAACgC,MAAM,CAACZ,OAAO,CAACJ,OAAO,CAACC,QAAQ,CAAC;IAC9C,IAAI,CAAC,CAACf,cAAc,CAAC8B,MAAM,CAACZ,OAAO,CAACJ,OAAO,CAACC,QAAQ,CAAC;EACvD,CAAC;EAEDgB,gBAAgB,GAAG,MAAAA,CACjBb,OAAqE,EACrEZ,iBAAoC,KACjC;IACH,MAAMI,MAAM,GAAG,IAAI,CAAC,CAACZ,OAAO,CAACK,GAAG,CAACe,OAAO,CAACJ,OAAO,CAACC,QAAQ,CAAC;IAE1D,IAAI,CAACL,MAAM,EAAE;MACX;IACF;IAEA,IAAIsB,MAAM;IAEV,IAAI,EAAE,MAAM,IAAI,CAAC,CAACC,kBAAkB,CAACf,OAAO,EAAER,MAAM,CAAC,CAAC,EAAE;MACtDsB,MAAM,GAAG,MAAM,IAAI,CAAC,CAACE,eAAe,CAAChB,OAAO,EAAER,MAAM,CAAC;MACrD;MACA,IAAI;QACFyB,IAAI,CAACC,SAAS,CAACJ,MAAM,CAAC;MACxB,CAAC,CAAC,OAAOK,KAAK,EAAE;QACdL,MAAM,GAAG,IAAI;MACf;IACF;IAEA1B,iBAAiB,CAACM,WAAW,CAAC;MAC5BC,IAAI,EAAE,yBAAyB;MAC/BC,OAAO,EAAE;QAAEwB,SAAS,EAAEpB,OAAO,CAACJ,OAAO,CAACwB,SAAS;QAAEN;MAAO;IAC1D,CAAC,CAAC;EACJ,CAAC;EAED,CAACZ,SAAS,GAAGmB,CACXxB,QAAqB,EACrBM,UAAyB,EACzBC,OAAsC,EACtChB,iBAAoC,KACjB;IACnB,IAAIa,OAAmC;IAEvC,QAAQE,UAAU;MAChB,KAAK,KAAK;QAAE;UACV,MAAMmB,aAAa,GAAGC,QAAQ,CAACC,cAAc,CAAC,KAAK,CAAE;UACrDvB,OAAO,GAAG,IAAI3B,UAAU,CAACO,GAAG,CAAC;YAC3B,GAAGuB,OAAO;YACVqB,SAAS,EAAEH;UACb,CAAC,CAAC;UACF,IAAI,CAAC,CAACvC,KAAK,GAAGc,QAAQ;UACtB;QACF;MACA,KAAK,QAAQ;QAAE;UACb,MAAM6B,WAAW,GAAG,IAAI,CAAC,CAACC,gBAAgB,CAACvB,OAAO,CAACH,OAAO,CAAC;UAC3DA,OAAO,GAAG,IAAI3B,UAAU,CAACsD,MAAM,CAAC;YAC9B,GAAGxB,OAAO;YACVH,OAAO,EAAEyB;UACX,CAAC,CAAC,CACCG,SAAS,CAACzB,OAAO,CAAC0B,UAAU,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CACvCrC,KAAK,CAAC,IAAI,CAACT,GAAG,CAAC;UAClB;QACF;MACA,KAAK,OAAO;QAAE;UACZiB,OAAO,GAAG,IAAI3B,UAAU,CAACyD,KAAK,CAAC;YAC7B,GAAG3B;UACL,CAAC,CAAC;UACF;UACA;QACF;IACF;IAEA,IAAI,CAACH,OAAO,EAAE;MACZ,MAAM,IAAIf,KAAK,CAAC,4BAA4BiB,UAAU,EAAE,CAAC;IAC3D;;IAEA;IACAf,iBAAiB,CAACM,WAAW,CAAC;MAC5BC,IAAI,EAAE,wBAAwB;MAC9BC,OAAO,EAAE;QACPC,QAAQ;QACRC,SAAS,EAAE;MACb;IACF,CAAC,CAAC;IAEF,OAAOG,OAAO;EAChB,CAAC;EAED,CAACQ,YAAY,GAAGuB,CACdnC,QAAqB,EACrBM,UAAyB,EACzBC,OAAsC,EACtChB,iBAAoC,KACjB;IACnB,IAAIa,OAAmC;IAEvC,MAAMgC,kBAAkB,GAAGvD,eAAe,CACxC,IAAI,CAAC,CAACI,cAAc,CAACG,GAAG,CAACY,QAAQ,CACnC,CAAC;IACD,MAAMqC,kBAAkB,GAAGxD,eAAe,CAAC0B,OAAO,CAAC;IAEnD,IAAI6B,kBAAkB,KAAKC,kBAAkB,EAAE;MAC7C,IAAI,CAAC,CAACvB,YAAY,CAACd,QAAQ,EAAET,iBAAiB,CAAC;MAC/Ca,OAAO,GAAG,IAAI,CAAC,CAACC,SAAS,CACvBL,QAAQ,EACRM,UAAU,EACVC,OAAO,EACPhB,iBACF,CAAC;IACH,CAAC,MAAM;MACLa,OAAO,GAAG,IAAI,CAAC,CAACrB,OAAO,CAACK,GAAG,CAACY,QAAQ,CAAC;IACvC;IAEA,IAAI,CAACI,OAAO,EAAE;MACZ,MAAM,IAAIf,KAAK,CAAC,0BAA0BW,QAAQ,MAAMM,UAAU,EAAE,CAAC;IACvE;IAEA,OAAOF,OAAO;EAChB,CAAC;EAED,CAACU,YAAY,GAAGwB,CACdtC,QAAqB,EACrBT,iBAAoC,KACjC;IACH,MAAMI,MAAM,GAAG,IAAI,CAAC,CAACZ,OAAO,CAACK,GAAG,CAACY,QAAQ,CAAC;IAC1C,IAAI,CAACL,MAAM,EAAE;MACX;IACF;IACAA,MAAM,CAAC4C,MAAM,CAAC,CAAC;IACf;IACAhD,iBAAiB,CAACM,WAAW,CAAC;MAC5BC,IAAI,EAAE,wBAAwB;MAC9BC,OAAO,EAAE;QACPC,QAAQ,EAAEA,QAAQ;QAClBC,SAAS,EAAE;MACb;IACF,CAAC,CAAC;EACJ,CAAC;EAED,CAACO,kBAAkB,GAAGgC,CACpBjD,iBAAoC,EACpCI,MAAsB,EACtBK,QAAgB,EAChBS,SAA8B,KAC3B;IACH,IAAI,CAACA,SAAS,EAAE;MACd;IACF;IACAgC,MAAM,CAACjD,OAAO,CAACiB,SAAS,CAAC,CAAChB,OAAO,CAAC,CAAC,CAACQ,SAAS,EAAEyC,QAAQ,CAAC,KAAK;MAC3D,MAAMC,sBAAsB,GAAIC,KAAU,IAAK;QAC7C;QACA,OAAOA,KAAK,CAACC,MAAM;QACnB;QACAtD,iBAAiB,CAACM,WAAW,CAAC;UAC5BC,IAAI,EAAE,wBAAwB;UAC9BC,OAAO,EAAE;YACPC,QAAQ;YACRC,SAAS;YACT2C;UACF;QACF,CAAC,CAAC;MACJ,CAAC;;MAED;MACA,IAAIhE,2BAA2B,CAAC8D,QAAQ,CAAC,EAAE;QACzC/C,MAAM,CAACmD,EAAE,CAAC7C,SAAS,EAAE0C,sBAAsB,CAAC;MAC9C;MACA;MACA,IAAIhE,6BAA6B,CAAC+D,QAAQ,CAAC,EAAE;QAC3C;QACA;QACA,IAAI/C,MAAM,YAAYlB,UAAU,CAACO,GAAG,EAAE;UACpCW,MAAM,CAACmD,EAAE,CACP7C,SAAS,EACRyC,QAAQ,CAAsCK,OAAO,EACtDJ,sBACF,CAAC;QACH;MACF;MACA;MACA,IAAIjE,gCAAgC,CAACgE,QAAQ,CAAC,EAAE;QAC9C;QACA;QACA,IAAI,EAAE/C,MAAM,YAAYlB,UAAU,CAACO,GAAG,CAAC,EAAE;UACvCW,MAAM,CAACqD,UAAU,CAAC,CAAC,CAACC,gBAAgB,CAAChD,SAAS,EAAG2C,KAAY,IAAK;YAChED,sBAAsB,CAACC,KAAK,CAAC;YAC7BA,KAAK,CAACM,eAAe,CAAC,CAAC;UACzB,CAAC,CAAC;QACJ;MACF;IACF,CAAC,CAAC;EACJ,CAAC;EAED,CAAChC,kBAAkB,GAAG,MAAAiC,CACpBhD,OAAqE,EACrER,MAAsB,KACnB;IACH;IACA;IACA;;IAEA,IAAIA,MAAM,YAAYlB,UAAU,CAACO,GAAG,EAAE;MACpC,QAAQmB,OAAO,CAACJ,OAAO,CAACqD,MAAM;QAC5B,KAAK,UAAU;UAAE;YACf,MAAMC,KAAK,GAAG,MAAM1D,MAAM,CAAC2D,SAAS,CAACnD,OAAO,CAACJ,OAAO,CAACwD,IAAI,CAAC,CAAC,CAAC,CAAC;YAC7D5D,MAAM,CAAC6D,QAAQ,CACbrD,OAAO,CAACJ,OAAO,CAACwD,IAAI,CAAC,CAAC,CAAC,EACvBF,KAAK,CAACI,IAAI,EACVtD,OAAO,CAACJ,OAAO,CAACwD,IAAI,CAACG,EAAE,CAAC,CAAC,CAC3B,CAAC;YACD,OAAO,IAAI;UACb;MACF;IACF;IACA,IAAI/D,MAAM,YAAYlB,UAAU,CAACsD,MAAM,EAAE;MACvC,QAAQ5B,OAAO,CAACJ,OAAO,CAACqD,MAAM;QAC5B,KAAK,OAAO;UAAE;YACZzD,MAAM,CAACC,KAAK,CAAC,IAAI,CAACT,GAAG,CAAC;YACtB,OAAO,IAAI;UACb;QACA,KAAK,kBAAkB;UAAE;YACvB,MAAMwE,QAAQ,GAAGxD,OAAO,CAACJ,OAAO,CAACwD,IAAI,CAAC,CAAC,CAAW;YAClD,MAAMK,MAAM,GAAG,IAAI,CAAC,CAAC7E,OAAO,CAACK,GAAG,CAACuE,QAAQ,CAAC,IAAI,IAAI;YAClD,IAAIC,MAAM,EAAE;cACVjE,MAAM,CAACkE,gBAAgB,CAACD,MAAM,CAAC;YACjC;YACA,OAAO,IAAI;UACb;QACA,KAAK,UAAU;UAAE;YACf,MAAME,OAAO,GAAG3D,OAAO,CAACJ,OAAO,CAACwD,IAAI,CAAC,CAAC,CAAW;YACjD,MAAMQ,KAAK,GAAG,IAAI,CAAC,CAAChF,OAAO,CAACK,GAAG,CAAC0E,OAAO,CAAC,IAAI,IAAI;YAChD,IAAIC,KAAK,IAAIA,KAAK,YAAYtF,UAAU,CAACyD,KAAK,EAAE;cAC9CvC,MAAM,CAACqE,QAAQ,CAACD,KAAK,CAAC;YACxB;YACA,OAAO,IAAI;UACb;MACF;IACF;IACA,IAAIpE,MAAM,YAAYlB,UAAU,CAACyD,KAAK,EAAE;MACtC,QAAQ/B,OAAO,CAACJ,OAAO,CAACqD,MAAM;QAC5B,KAAK,OAAO;UAAE;YACZzD,MAAM,CAACC,KAAK,CAAC,IAAI,CAACT,GAAG,CAAC;YACtB,OAAO,IAAI;UACb;QACA,KAAK,kBAAkB;UAAE;YACvB,MAAMwE,QAAQ,GAAGxD,OAAO,CAACJ,OAAO,CAACwD,IAAI,CAAC,CAAC,CAAW;YAClD,MAAMK,MAAM,GAAG,IAAI,CAAC,CAAC7E,OAAO,CAACK,GAAG,CAACuE,QAAQ,CAAC,IAAI,IAAI;YAClD,IAAIC,MAAM,EAAE;cACVjE,MAAM,CAACkE,gBAAgB,CAACD,MAAM,CAAC;YACjC;YACA,OAAO,IAAI;UACb;MACF;IACF;IACA,OAAO,KAAK;EACd,CAAC;EAED,CAACzC,eAAe,GAAG,MAAA8C,CACjB9D,OAAqE,EACrER,MAAsB,KACnB;IACH,OAAO,MAAMA,MAAM,CAACQ,OAAO,CAACJ,OAAO,CAACqD,MAAM,CAAwB,GAChE,GAAGjD,OAAO,CAACJ,OAAO,CAACwD,IACrB,CAAC;EACH,CAAC;EAED,CAACzB,gBAAgB,GACfoC,UAAkC,IACN;IAC5B;IACA,IAAI,CAACA,UAAU,EAAE;MACf,OAAOC,SAAS;IAClB;IAEA,MAAM/D,OAAO,GAAGsB,QAAQ,CAAC0C,aAAa,CAACF,UAAU,CAACG,OAAO,IAAI,KAAK,CAAC;IACnEjE,OAAO,CAACkE,SAAS,GAAGJ,UAAU,CAACI,SAAS,IAAI,EAAE;IAE9C,IAAIJ,UAAU,CAACK,UAAU,EAAE;MACzB,KAAK,MAAM,CAACC,IAAI,EAAEC,KAAK,CAAC,IAAIhC,MAAM,CAACjD,OAAO,CAAC0E,UAAU,CAACK,UAAU,CAAC,EAAE;QACjEnE,OAAO,CAACsE,YAAY,CAACF,IAAI,EAAEC,KAAK,CAAC;MACnC;IACF;IACA,IAAIP,UAAU,CAACS,KAAK,EAAE;MACpBlC,MAAM,CAACmC,MAAM,CAACxE,OAAO,CAACuE,KAAK,EAAET,UAAU,CAACS,KAAK,CAAC;IAChD;IACA,IAAIT,UAAU,CAACW,OAAO,EAAE;MACtB,KAAK,MAAM,CAACL,IAAI,EAAEC,KAAK,CAAC,IAAIhC,MAAM,CAACjD,OAAO,CAAC0E,UAAU,CAACW,OAAO,CAAC,EAAE;QAC9D;QAAEzE,OAAO,CAACyE,OAAO,CAASL,IAAI,CAAC,GAAGC,KAAK;MACzC;IACF;IACA,IAAIP,UAAU,CAACY,SAAS,KAAKX,SAAS,EAAE;MACtC/D,OAAO,CAAC0E,SAAS,GAAGZ,UAAU,CAACY,SAAS;IAC1C;IAEA,OAAO1E,OAAO;EAChB,CAAC;AACH","ignoreList":[]}
1
+ {"version":3,"names":["maplibregl","isWebObjectListenerOnHTMLElement","isWebObjectListenerOnMapLayer","isWebObjectListenerOnObject","stableStringify","MAP_OPTIONS_THAT_ARE_HTML_ELEMENTS","MAP_OPTIONS_THAT_ARE_WEB_FUNCTIONS","MARKER_OPTIONS_THAT_ARE_HTML_ELEMENTS","MARKER_OPTIONS_THAT_ARE_WEB_FUNCTIONS","POPUP_OPTIONS_THAT_ARE_HTML_ELEMENTS","POPUP_OPTIONS_THAT_ARE_WEB_FUNCTIONS","WebObjectsController","objects","Map","objectsOptions","mapId","map","get","Error","addExistingObjectsToMap","reactNativeBridge","entries","forEach","id","object","addTo","postMessage","type","payload","objectId","eventName","handleMountMessage","message","element","addObject","objectType","options","setObjectListeners","listeners","set","handleUpdateMessage","updateObject","handleUnmountMessage","removeObject","delete","handleMethodCall","result","runIfSpecialMethod","runNormalMethod","JSON","stringify","error","requestId","#addObject","resolveDescriptorsInOptions","htmlContainer","document","getElementById","container","Marker","setLngLat","coordinate","Popup","#updateObject","oldOptionsAsString","newOptionsAsString","#removeObject","remove","#setObjectListeners","Object","listener","sendEventToReactNative","event","target","on","layerId","getElement","addEventListener","stopPropagation","#runIfSpecialMethod","method","image","loadImage","args","addImage","data","at","parentId","parent","setEventedParent","popupId","popup","setPopup","#runNormalMethod","#resolveDescriptorsInOptions","optionsThatAreFunctions","optionsThatAreHTMLElements","Array","isArray","opt","resolved","key","includes","window","buildHTMLElement","descriptor","undefined","createElement","tagName","className","attributes","name","value","setAttribute","style","assign","dataset","innerHTML"],"sourceRoot":"../../../../src","sources":["web/controllers/WebObjectsController.ts"],"mappings":"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","ignoreList":[]}
@@ -23289,7 +23289,7 @@ uniform mat4 u_projection_matrix;
23289
23289
  var web_logger_default = WebLogger;
23290
23290
 
23291
23291
  // src/web/controllers/WebObjectsController.ts
23292
- var import_maplibre_gl = __toESM(require_maplibre_gl());
23292
+ var import_maplibre_gl4 = __toESM(require_maplibre_gl());
23293
23293
 
23294
23294
  // src/communication/messages.utils.ts
23295
23295
  var isWebObjectListenerOnObject = (listener) => {
@@ -23334,6 +23334,25 @@ uniform mat4 u_projection_matrix;
23334
23334
  return JSON.stringify(sortKeys(message), replacer);
23335
23335
  };
23336
23336
 
23337
+ // src/react-native/components/web-objects/Map/Map.types.ts
23338
+ var import_maplibre_gl = __toESM(require_maplibre_gl());
23339
+ var MAP_OPTIONS_THAT_ARE_WEB_FUNCTIONS = [
23340
+ "transformCameraUpdate",
23341
+ "transformConstrain",
23342
+ "transformRequest"
23343
+ ];
23344
+ var MAP_OPTIONS_THAT_ARE_HTML_ELEMENTS = ["container"];
23345
+
23346
+ // src/react-native/components/web-objects/Marker/Marker.types.ts
23347
+ var import_maplibre_gl2 = __toESM(require_maplibre_gl());
23348
+ var MARKER_OPTIONS_THAT_ARE_WEB_FUNCTIONS = [];
23349
+ var MARKER_OPTIONS_THAT_ARE_HTML_ELEMENTS = ["element"];
23350
+
23351
+ // src/react-native/components/web-objects/Popup/Popup.types.ts
23352
+ var import_maplibre_gl3 = __toESM(require_maplibre_gl());
23353
+ var POPUP_OPTIONS_THAT_ARE_WEB_FUNCTIONS = [];
23354
+ var POPUP_OPTIONS_THAT_ARE_HTML_ELEMENTS = [];
23355
+
23337
23356
  // src/web/controllers/WebObjectsController.ts
23338
23357
  var WebObjectsController = class {
23339
23358
  #objects = /* @__PURE__ */ new Map();
@@ -23353,7 +23372,7 @@ uniform mat4 u_projection_matrix;
23353
23372
  */
23354
23373
  addExistingObjectsToMap = (reactNativeBridge, map) => {
23355
23374
  this.#objects.entries().forEach(([id, object]) => {
23356
- if (!(object instanceof import_maplibre_gl.default.Map)) {
23375
+ if (!(object instanceof import_maplibre_gl4.default.Map)) {
23357
23376
  object.addTo(map);
23358
23377
  reactNativeBridge.postMessage({
23359
23378
  type: "webObjectListenerEvent",
@@ -23425,26 +23444,35 @@ uniform mat4 u_projection_matrix;
23425
23444
  let element;
23426
23445
  switch (objectType) {
23427
23446
  case "map": {
23447
+ options = this.#resolveDescriptorsInOptions(
23448
+ options,
23449
+ MAP_OPTIONS_THAT_ARE_WEB_FUNCTIONS,
23450
+ MAP_OPTIONS_THAT_ARE_HTML_ELEMENTS
23451
+ );
23428
23452
  const htmlContainer = document.getElementById("app");
23429
- element = new import_maplibre_gl.default.Map({
23453
+ element = new import_maplibre_gl4.default.Map({
23430
23454
  ...options,
23431
- container: htmlContainer
23455
+ container: options.container ?? htmlContainer
23432
23456
  });
23433
23457
  this.#mapId = objectId;
23434
23458
  break;
23435
23459
  }
23436
23460
  case "marker": {
23437
- const htmlElement = this.#buildHTMLElement(options.element);
23438
- element = new import_maplibre_gl.default.Marker({
23439
- ...options,
23440
- element: htmlElement
23441
- }).setLngLat(options.coordinate ?? [0, 0]).addTo(this.map);
23461
+ options = this.#resolveDescriptorsInOptions(
23462
+ options,
23463
+ MARKER_OPTIONS_THAT_ARE_WEB_FUNCTIONS,
23464
+ MARKER_OPTIONS_THAT_ARE_HTML_ELEMENTS
23465
+ );
23466
+ element = new import_maplibre_gl4.default.Marker(options).setLngLat(options.coordinate ?? [0, 0]).addTo(this.map);
23442
23467
  break;
23443
23468
  }
23444
23469
  case "popup": {
23445
- element = new import_maplibre_gl.default.Popup({
23446
- ...options
23447
- });
23470
+ options = this.#resolveDescriptorsInOptions(
23471
+ options,
23472
+ POPUP_OPTIONS_THAT_ARE_WEB_FUNCTIONS,
23473
+ POPUP_OPTIONS_THAT_ARE_HTML_ELEMENTS
23474
+ );
23475
+ element = new import_maplibre_gl4.default.Popup(options);
23448
23476
  break;
23449
23477
  }
23450
23478
  }
@@ -23516,7 +23544,7 @@ uniform mat4 u_projection_matrix;
23516
23544
  object.on(eventName, sendEventToReactNative);
23517
23545
  }
23518
23546
  if (isWebObjectListenerOnMapLayer(listener)) {
23519
- if (object instanceof import_maplibre_gl.default.Map) {
23547
+ if (object instanceof import_maplibre_gl4.default.Map) {
23520
23548
  object.on(
23521
23549
  eventName,
23522
23550
  listener.layerId,
@@ -23525,7 +23553,7 @@ uniform mat4 u_projection_matrix;
23525
23553
  }
23526
23554
  }
23527
23555
  if (isWebObjectListenerOnHTMLElement(listener)) {
23528
- if (!(object instanceof import_maplibre_gl.default.Map)) {
23556
+ if (!(object instanceof import_maplibre_gl4.default.Map)) {
23529
23557
  object.getElement().addEventListener(eventName, (event) => {
23530
23558
  sendEventToReactNative(event);
23531
23559
  event.stopPropagation();
@@ -23535,7 +23563,7 @@ uniform mat4 u_projection_matrix;
23535
23563
  });
23536
23564
  };
23537
23565
  #runIfSpecialMethod = async (message, object) => {
23538
- if (object instanceof import_maplibre_gl.default.Map) {
23566
+ if (object instanceof import_maplibre_gl4.default.Map) {
23539
23567
  switch (message.payload.method) {
23540
23568
  case "addImage": {
23541
23569
  const image = await object.loadImage(message.payload.args[1]);
@@ -23548,7 +23576,7 @@ uniform mat4 u_projection_matrix;
23548
23576
  }
23549
23577
  }
23550
23578
  }
23551
- if (object instanceof import_maplibre_gl.default.Marker) {
23579
+ if (object instanceof import_maplibre_gl4.default.Marker) {
23552
23580
  switch (message.payload.method) {
23553
23581
  case "addTo": {
23554
23582
  object.addTo(this.map);
@@ -23565,14 +23593,14 @@ uniform mat4 u_projection_matrix;
23565
23593
  case "setPopup": {
23566
23594
  const popupId = message.payload.args[0];
23567
23595
  const popup = this.#objects.get(popupId) ?? null;
23568
- if (popup && popup instanceof import_maplibre_gl.default.Popup) {
23596
+ if (popup && popup instanceof import_maplibre_gl4.default.Popup) {
23569
23597
  object.setPopup(popup);
23570
23598
  }
23571
23599
  return true;
23572
23600
  }
23573
23601
  }
23574
23602
  }
23575
- if (object instanceof import_maplibre_gl.default.Popup) {
23603
+ if (object instanceof import_maplibre_gl4.default.Popup) {
23576
23604
  switch (message.payload.method) {
23577
23605
  case "addTo": {
23578
23606
  object.addTo(this.map);
@@ -23595,6 +23623,35 @@ uniform mat4 u_projection_matrix;
23595
23623
  ...message.payload.args
23596
23624
  );
23597
23625
  };
23626
+ #resolveDescriptorsInOptions = (options, optionsThatAreFunctions, optionsThatAreHTMLElements) => {
23627
+ if (options === null || typeof options !== "object") {
23628
+ return options;
23629
+ }
23630
+ if (Array.isArray(options)) {
23631
+ return options.map(
23632
+ (opt) => this.#resolveDescriptorsInOptions(
23633
+ opt,
23634
+ optionsThatAreFunctions,
23635
+ optionsThatAreHTMLElements
23636
+ )
23637
+ );
23638
+ }
23639
+ const resolved = {};
23640
+ for (const key in options) {
23641
+ if (optionsThatAreFunctions.includes(key)) {
23642
+ resolved[key] = window[options[key]];
23643
+ } else if (optionsThatAreHTMLElements.includes(key)) {
23644
+ resolved[key] = this.#buildHTMLElement(options[key]);
23645
+ } else {
23646
+ resolved[key] = this.#resolveDescriptorsInOptions(
23647
+ options[key],
23648
+ optionsThatAreFunctions,
23649
+ optionsThatAreHTMLElements
23650
+ );
23651
+ }
23652
+ }
23653
+ return resolved;
23654
+ };
23598
23655
  #buildHTMLElement = (descriptor) => {
23599
23656
  if (!descriptor) {
23600
23657
  return void 0;
@@ -23623,7 +23680,7 @@ uniform mat4 u_projection_matrix;
23623
23680
  };
23624
23681
 
23625
23682
  // src/web/controllers/MapSourcesController.ts
23626
- var import_maplibre_gl2 = __toESM(require_maplibre_gl());
23683
+ var import_maplibre_gl5 = __toESM(require_maplibre_gl());
23627
23684
  var MapSourcesController = class {
23628
23685
  #sources = /* @__PURE__ */ new Map();
23629
23686
  /**
@@ -23826,7 +23883,7 @@ uniform mat4 u_projection_matrix;
23826
23883
  };
23827
23884
 
23828
23885
  // src/web/controllers/CoreController.ts
23829
- var import_maplibre_gl3 = __toESM(require_maplibre_gl());
23886
+ var import_maplibre_gl6 = __toESM(require_maplibre_gl());
23830
23887
  var CoreController = class {
23831
23888
  #webObjectsController;
23832
23889
  #mapSourcesController;