react-native-map4d-map-dtqg 0.1.3 → 0.1.5

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 (321) hide show
  1. package/LICENSE +21 -21
  2. package/README.md +191 -133
  3. package/android/.gradle/8.9/checksums/checksums.lock +0 -0
  4. package/android/.gradle/8.9/dependencies-accessors/gc.properties +0 -0
  5. package/android/.gradle/8.9/fileChanges/last-build.bin +0 -0
  6. package/android/.gradle/8.9/fileHashes/fileHashes.lock +0 -0
  7. package/android/.gradle/8.9/gc.properties +0 -0
  8. package/android/.gradle/9.2.0/checksums/checksums.lock +0 -0
  9. package/android/.gradle/9.2.0/fileChanges/last-build.bin +0 -0
  10. package/android/.gradle/9.2.0/fileHashes/fileHashes.bin +0 -0
  11. package/android/.gradle/9.2.0/fileHashes/fileHashes.lock +0 -0
  12. package/android/.gradle/9.2.0/gc.properties +0 -0
  13. package/android/.gradle/buildOutputCleanup/buildOutputCleanup.lock +0 -0
  14. package/android/.gradle/buildOutputCleanup/cache.properties +2 -0
  15. package/android/.gradle/vcs-1/gc.properties +0 -0
  16. package/android/build.gradle +60 -60
  17. package/android/src/main/AndroidManifest.xml +4 -4
  18. package/android/src/main/java/com/reactnativemap4dmap/ImageUtils.java +87 -87
  19. package/android/src/main/java/com/reactnativemap4dmap/Map4dMapModule.java +310 -298
  20. package/android/src/main/java/com/reactnativemap4dmap/Map4dMapPackage.java +35 -35
  21. package/android/src/main/java/com/reactnativemap4dmap/Map4dMapViewManager.java +31 -31
  22. package/android/src/main/java/com/reactnativemap4dmap/RMFBuilding.java +167 -167
  23. package/android/src/main/java/com/reactnativemap4dmap/RMFBuildingManager.java +121 -121
  24. package/android/src/main/java/com/reactnativemap4dmap/RMFCircle.java +105 -105
  25. package/android/src/main/java/com/reactnativemap4dmap/RMFCircleManager.java +121 -121
  26. package/android/src/main/java/com/reactnativemap4dmap/RMFDirectionsRenderer.java +502 -502
  27. package/android/src/main/java/com/reactnativemap4dmap/RMFDirectionsRendererManager.java +143 -143
  28. package/android/src/main/java/com/reactnativemap4dmap/RMFFeature.java +17 -17
  29. package/android/src/main/java/com/reactnativemap4dmap/RMFMapView.java +1172 -1172
  30. package/android/src/main/java/com/reactnativemap4dmap/RMFMapViewManager.java +231 -231
  31. package/android/src/main/java/com/reactnativemap4dmap/RMFMarker.java +412 -412
  32. package/android/src/main/java/com/reactnativemap4dmap/RMFMarkerManager.java +211 -211
  33. package/android/src/main/java/com/reactnativemap4dmap/RMFPOI.java +222 -222
  34. package/android/src/main/java/com/reactnativemap4dmap/RMFPOIManager.java +119 -119
  35. package/android/src/main/java/com/reactnativemap4dmap/RMFPolygon.java +172 -172
  36. package/android/src/main/java/com/reactnativemap4dmap/RMFPolygonManager.java +147 -147
  37. package/android/src/main/java/com/reactnativemap4dmap/RMFPolyline.java +146 -146
  38. package/android/src/main/java/com/reactnativemap4dmap/RMFPolylineManager.java +137 -137
  39. package/android/src/main/java/com/reactnativemap4dmap/RMFTileOverlay.java +95 -95
  40. package/android/src/main/java/com/reactnativemap4dmap/RMFTileOverlayManager.java +64 -64
  41. package/android/src/main/java/com/reactnativemap4dmap/SizeReportingShadowNode.java +31 -31
  42. package/android/src/main/java/com/reactnativemap4dmap/ViewAttacherGroup.java +31 -31
  43. package/android/src/main/java/com/reactnativemap4dmap/ViewChangesTracker.java +70 -70
  44. package/android/src/main/java/vn/map4d/map/annotations/RMFBitmapDescriptor.java +9 -9
  45. package/ios/Map4dMap.h +16 -7
  46. package/ios/Map4dMap.m +119 -14
  47. package/ios/Map4dMapTurbo.mm +16 -0
  48. package/ios/RCTConvert+Map4dMap.h +33 -33
  49. package/ios/RCTConvert+Map4dMap.m +112 -112
  50. package/ios/RMFCircle.h +37 -37
  51. package/ios/RMFCircle.m +100 -100
  52. package/ios/RMFCircleManager.h +18 -18
  53. package/ios/RMFCircleManager.m +127 -155
  54. package/ios/RMFCircleMap4d.h +23 -23
  55. package/ios/RMFCircleMap4d.m +13 -13
  56. package/ios/RMFCoordinate.h +22 -22
  57. package/ios/RMFCoordinate.m +13 -13
  58. package/ios/RMFDirectionsMarkerOptions.h +24 -24
  59. package/ios/RMFDirectionsMarkerOptions.m +23 -23
  60. package/ios/RMFDirectionsRenderer.h +47 -47
  61. package/ios/RMFDirectionsRenderer.m +182 -182
  62. package/ios/RMFDirectionsRendererManager.h +17 -17
  63. package/ios/RMFDirectionsRendererManager.m +86 -84
  64. package/ios/RMFDirectionsRendererMap4d.h +21 -21
  65. package/ios/RMFDirectionsRendererMap4d.m +12 -12
  66. package/ios/RMFDummyView.h +6 -6
  67. package/ios/RMFDummyView.m +12 -12
  68. package/ios/RMFEventResponse.h +39 -39
  69. package/ios/RMFEventResponse.m +98 -98
  70. package/ios/RMFIcon.h +24 -24
  71. package/ios/RMFIcon.m +35 -35
  72. package/ios/RMFMapView.h +84 -84
  73. package/ios/RMFMapView.m +376 -376
  74. package/ios/RMFMapViewManager.h +17 -17
  75. package/ios/RMFMapViewManager.m +424 -509
  76. package/ios/RMFMarker.h +57 -57
  77. package/ios/RMFMarker.m +267 -267
  78. package/ios/RMFMarkerManager.h +17 -17
  79. package/ios/RMFMarkerManager.m +128 -156
  80. package/ios/RMFMarkerMap4d.h +19 -19
  81. package/ios/RMFMarkerMap4d.m +13 -13
  82. package/ios/RMFPOI.h +38 -38
  83. package/ios/RMFPOI.m +123 -123
  84. package/ios/RMFPOIManager.h +18 -18
  85. package/ios/RMFPOIManager.m +134 -168
  86. package/ios/RMFPOIMap4d.h +22 -22
  87. package/ios/RMFPOIMap4d.m +12 -12
  88. package/ios/RMFPolygon.h +41 -41
  89. package/ios/RMFPolygon.m +106 -106
  90. package/ios/RMFPolygonManager.h +18 -18
  91. package/ios/RMFPolygonManager.m +119 -141
  92. package/ios/RMFPolygonMap4d.h +23 -23
  93. package/ios/RMFPolygonMap4d.m +15 -15
  94. package/ios/RMFPolyline.h +38 -38
  95. package/ios/RMFPolyline.m +101 -101
  96. package/ios/RMFPolylineManager.h +18 -18
  97. package/ios/RMFPolylineManager.m +117 -139
  98. package/ios/RMFPolylineMap4d.h +22 -22
  99. package/ios/RMFPolylineMap4d.m +15 -15
  100. package/ios/building/RMFBuilding.h +41 -41
  101. package/ios/building/RMFBuilding.m +104 -104
  102. package/ios/building/RMFBuildingManager.h +19 -19
  103. package/ios/building/RMFBuildingManager.m +105 -133
  104. package/ios/building/RMFBuildingMap4d.h +23 -23
  105. package/ios/building/RMFBuildingMap4d.m +15 -15
  106. package/ios/overlays/RMFTileOverlay.h +36 -36
  107. package/ios/overlays/RMFTileOverlay.m +64 -64
  108. package/ios/overlays/RMFTileOverlayManager.h +17 -17
  109. package/ios/overlays/RMFTileOverlayManager.m +27 -27
  110. package/lib/commonjs/components/MFBanDoSo/constants.js +27 -0
  111. package/lib/commonjs/components/MFBanDoSo/constants.js.map +1 -0
  112. package/lib/commonjs/components/MFBanDoSo/helpers.js +200 -0
  113. package/lib/commonjs/components/MFBanDoSo/helpers.js.map +1 -0
  114. package/lib/commonjs/components/MFBanDoSo/propTypes.js +18 -0
  115. package/lib/commonjs/components/MFBanDoSo/propTypes.js.map +1 -0
  116. package/lib/commonjs/components/MFBanDoSo/styles.js +328 -0
  117. package/lib/commonjs/components/MFBanDoSo/styles.js.map +1 -0
  118. package/lib/commonjs/components/MFBanDoSo/ui.js +220 -0
  119. package/lib/commonjs/components/MFBanDoSo/ui.js.map +1 -0
  120. package/lib/commonjs/components/MFBanDoSo.js +190 -73
  121. package/lib/commonjs/components/MFBanDoSo.js.map +1 -1
  122. package/lib/commonjs/components/MFBuilding.js +41 -98
  123. package/lib/commonjs/components/MFBuilding.js.map +1 -1
  124. package/lib/commonjs/components/MFCircle.js +40 -90
  125. package/lib/commonjs/components/MFCircle.js.map +1 -1
  126. package/lib/commonjs/components/MFDirectionsRenderer.js +47 -107
  127. package/lib/commonjs/components/MFDirectionsRenderer.js.map +1 -1
  128. package/lib/commonjs/components/MFMapView.js +119 -199
  129. package/lib/commonjs/components/MFMapView.js.map +1 -1
  130. package/lib/commonjs/components/MFMarker.js +50 -118
  131. package/lib/commonjs/components/MFMarker.js.map +1 -1
  132. package/lib/commonjs/components/MFPOI.js +37 -94
  133. package/lib/commonjs/components/MFPOI.js.map +1 -1
  134. package/lib/commonjs/components/MFPolygon.js +37 -91
  135. package/lib/commonjs/components/MFPolygon.js.map +1 -1
  136. package/lib/commonjs/components/MFPolyline.js +35 -87
  137. package/lib/commonjs/components/MFPolyline.js.map +1 -1
  138. package/lib/commonjs/components/MFTileOverlay.js +16 -24
  139. package/lib/commonjs/components/MFTileOverlay.js.map +1 -1
  140. package/lib/commonjs/components/Map4dMapView.js +1 -4
  141. package/lib/commonjs/components/Map4dMapView.js.map +1 -1
  142. package/lib/commonjs/components/extends/AreaFocusManager.js +20 -54
  143. package/lib/commonjs/components/extends/AreaFocusManager.js.map +1 -1
  144. package/lib/commonjs/components/extends/AreaFocuser.js +3 -19
  145. package/lib/commonjs/components/extends/AreaFocuser.js.map +1 -1
  146. package/lib/commonjs/components/extends/BoundHelper.js +0 -6
  147. package/lib/commonjs/components/extends/BoundHelper.js.map +1 -1
  148. package/lib/commonjs/components/extends/area/AreaFocusAreas.js +0 -37
  149. package/lib/commonjs/components/extends/area/AreaFocusAreas.js.map +1 -1
  150. package/lib/commonjs/components/extends/area/AreaFocusGeometryUtils.js +1 -35
  151. package/lib/commonjs/components/extends/area/AreaFocusGeometryUtils.js.map +1 -1
  152. package/lib/commonjs/components/extends/area/AreaFocusSession.js +0 -18
  153. package/lib/commonjs/components/extends/area/AreaFocusSession.js.map +1 -1
  154. package/lib/commonjs/components/extends/area/AreaFocusTypes.js +20 -21
  155. package/lib/commonjs/components/extends/area/AreaFocusTypes.js.map +1 -1
  156. package/lib/commonjs/components/internal/DefaultRoadmapStyle.js +1 -2
  157. package/lib/commonjs/components/internal/DefaultRoadmapStyle.js.map +1 -1
  158. package/lib/commonjs/components/internal/GeojsonStyleUtils.js +20 -31
  159. package/lib/commonjs/components/internal/GeojsonStyleUtils.js.map +1 -1
  160. package/lib/commonjs/index.js +0 -11
  161. package/lib/commonjs/index.js.map +1 -1
  162. package/lib/commonjs/native/Map4dMapNativeModule.js +10 -0
  163. package/lib/commonjs/native/Map4dMapNativeModule.js.map +1 -0
  164. package/lib/commonjs/native/NativeModuleResolver.js +35 -0
  165. package/lib/commonjs/native/NativeModuleResolver.js.map +1 -0
  166. package/lib/commonjs/native/ViewManagerCommand.js +67 -0
  167. package/lib/commonjs/native/ViewManagerCommand.js.map +1 -0
  168. package/lib/commonjs/package.json +1 -0
  169. package/lib/commonjs/specs/NativeMap4dMap.js +9 -0
  170. package/lib/commonjs/specs/NativeMap4dMap.js.map +1 -0
  171. package/lib/module/components/MFBanDoSo/constants.js +22 -0
  172. package/lib/module/components/MFBanDoSo/constants.js.map +1 -0
  173. package/lib/module/components/MFBanDoSo/helpers.js +188 -0
  174. package/lib/module/components/MFBanDoSo/helpers.js.map +1 -0
  175. package/lib/module/components/MFBanDoSo/propTypes.js +14 -0
  176. package/lib/module/components/MFBanDoSo/propTypes.js.map +1 -0
  177. package/lib/module/components/MFBanDoSo/styles.js +325 -0
  178. package/lib/module/components/MFBanDoSo/styles.js.map +1 -0
  179. package/lib/module/components/MFBanDoSo/ui.js +213 -0
  180. package/lib/module/components/MFBanDoSo/ui.js.map +1 -0
  181. package/lib/module/components/MFBanDoSo.js +192 -63
  182. package/lib/module/components/MFBanDoSo.js.map +1 -1
  183. package/lib/module/components/MFBuilding.js +43 -90
  184. package/lib/module/components/MFBuilding.js.map +1 -1
  185. package/lib/module/components/MFCircle.js +42 -82
  186. package/lib/module/components/MFCircle.js.map +1 -1
  187. package/lib/module/components/MFDirectionsRenderer.js +48 -99
  188. package/lib/module/components/MFDirectionsRenderer.js.map +1 -1
  189. package/lib/module/components/MFMapView.js +120 -188
  190. package/lib/module/components/MFMapView.js.map +1 -1
  191. package/lib/module/components/MFMarker.js +52 -109
  192. package/lib/module/components/MFMarker.js.map +1 -1
  193. package/lib/module/components/MFPOI.js +39 -86
  194. package/lib/module/components/MFPOI.js.map +1 -1
  195. package/lib/module/components/MFPolygon.js +39 -83
  196. package/lib/module/components/MFPolygon.js.map +1 -1
  197. package/lib/module/components/MFPolyline.js +37 -79
  198. package/lib/module/components/MFPolyline.js.map +1 -1
  199. package/lib/module/components/MFTileOverlay.js +19 -18
  200. package/lib/module/components/MFTileOverlay.js.map +1 -1
  201. package/lib/module/components/Map4dMapView.js +2 -0
  202. package/lib/module/components/Map4dMapView.js.map +1 -1
  203. package/lib/module/components/extends/AreaFocusManager.js +22 -48
  204. package/lib/module/components/extends/AreaFocusManager.js.map +1 -1
  205. package/lib/module/components/extends/AreaFocuser.js +5 -17
  206. package/lib/module/components/extends/AreaFocuser.js.map +1 -1
  207. package/lib/module/components/extends/BoundHelper.js +2 -5
  208. package/lib/module/components/extends/BoundHelper.js.map +1 -1
  209. package/lib/module/components/extends/area/AreaFocusAreas.js +2 -33
  210. package/lib/module/components/extends/area/AreaFocusAreas.js.map +1 -1
  211. package/lib/module/components/extends/area/AreaFocusGeometryUtils.js +2 -32
  212. package/lib/module/components/extends/area/AreaFocusGeometryUtils.js.map +1 -1
  213. package/lib/module/components/extends/area/AreaFocusSession.js +2 -17
  214. package/lib/module/components/extends/area/AreaFocusSession.js.map +1 -1
  215. package/lib/module/components/extends/area/AreaFocusTypes.js +21 -18
  216. package/lib/module/components/extends/area/AreaFocusTypes.js.map +1 -1
  217. package/lib/module/components/internal/DefaultRoadmapStyle.js +2 -0
  218. package/lib/module/components/internal/DefaultRoadmapStyle.js.map +1 -1
  219. package/lib/module/components/internal/GeojsonStyleUtils.js +21 -28
  220. package/lib/module/components/internal/GeojsonStyleUtils.js.map +1 -1
  221. package/lib/module/index.js +2 -0
  222. package/lib/module/index.js.map +1 -1
  223. package/lib/module/native/Map4dMapNativeModule.js +5 -0
  224. package/lib/module/native/Map4dMapNativeModule.js.map +1 -0
  225. package/lib/module/native/NativeModuleResolver.js +29 -0
  226. package/lib/module/native/NativeModuleResolver.js.map +1 -0
  227. package/lib/module/native/ViewManagerCommand.js +61 -0
  228. package/lib/module/native/ViewManagerCommand.js.map +1 -0
  229. package/lib/module/specs/NativeMap4dMap.js +5 -0
  230. package/lib/module/specs/NativeMap4dMap.js.map +1 -0
  231. package/lib/typescript/components/MFBanDoSo/constants.d.ts +8 -0
  232. package/lib/typescript/components/MFBanDoSo/constants.d.ts.map +1 -0
  233. package/lib/typescript/components/MFBanDoSo/helpers.d.ts +14 -0
  234. package/lib/typescript/components/MFBanDoSo/helpers.d.ts.map +1 -0
  235. package/lib/typescript/components/MFBanDoSo/propTypes.d.ts +2 -0
  236. package/lib/typescript/components/MFBanDoSo/propTypes.d.ts.map +1 -0
  237. package/lib/typescript/components/MFBanDoSo/styles.d.ts +462 -0
  238. package/lib/typescript/components/MFBanDoSo/styles.d.ts.map +1 -0
  239. package/lib/typescript/components/MFBanDoSo/ui.d.ts +30 -0
  240. package/lib/typescript/components/MFBanDoSo/ui.d.ts.map +1 -0
  241. package/lib/typescript/components/MFBanDoSo.d.ts +37 -0
  242. package/lib/typescript/components/MFBanDoSo.d.ts.map +1 -0
  243. package/lib/typescript/components/MFBuilding.d.ts +24 -0
  244. package/lib/typescript/components/MFBuilding.d.ts.map +1 -0
  245. package/lib/typescript/components/MFCircle.d.ts +24 -0
  246. package/lib/typescript/components/MFCircle.d.ts.map +1 -0
  247. package/lib/typescript/components/MFDirectionsRenderer.d.ts +19 -0
  248. package/lib/typescript/components/MFDirectionsRenderer.d.ts.map +1 -0
  249. package/lib/typescript/components/MFMapView.d.ts +66 -0
  250. package/lib/typescript/components/MFMapView.d.ts.map +1 -0
  251. package/lib/typescript/components/MFMarker.d.ts +26 -0
  252. package/lib/typescript/components/MFMarker.d.ts.map +1 -0
  253. package/lib/typescript/components/MFPOI.d.ts +24 -0
  254. package/lib/typescript/components/MFPOI.d.ts.map +1 -0
  255. package/lib/typescript/components/MFPolygon.d.ts +24 -0
  256. package/lib/typescript/components/MFPolygon.d.ts.map +1 -0
  257. package/lib/typescript/components/MFPolyline.d.ts +24 -0
  258. package/lib/typescript/components/MFPolyline.d.ts.map +1 -0
  259. package/lib/typescript/components/MFTileOverlay.d.ts +12 -0
  260. package/lib/typescript/components/MFTileOverlay.d.ts.map +1 -0
  261. package/lib/typescript/components/Map4dMapView.d.ts +2 -1
  262. package/lib/typescript/components/Map4dMapView.d.ts.map +1 -0
  263. package/lib/typescript/components/extends/AreaFocusManager.d.ts +34 -0
  264. package/lib/typescript/components/extends/AreaFocusManager.d.ts.map +1 -0
  265. package/lib/typescript/components/extends/AreaFocuser.d.ts +15 -0
  266. package/lib/typescript/components/extends/AreaFocuser.d.ts.map +1 -0
  267. package/lib/typescript/components/extends/BoundHelper.d.ts +11 -0
  268. package/lib/typescript/components/extends/BoundHelper.d.ts.map +1 -0
  269. package/lib/typescript/components/extends/area/AreaFocusAreas.d.ts +58 -0
  270. package/lib/typescript/components/extends/area/AreaFocusAreas.d.ts.map +1 -0
  271. package/lib/typescript/components/extends/area/AreaFocusGeometryUtils.d.ts +19 -0
  272. package/lib/typescript/components/extends/area/AreaFocusGeometryUtils.d.ts.map +1 -0
  273. package/lib/typescript/components/extends/area/AreaFocusSession.d.ts +14 -0
  274. package/lib/typescript/components/extends/area/AreaFocusSession.d.ts.map +1 -0
  275. package/lib/typescript/components/extends/area/AreaFocusTypes.d.ts +40 -0
  276. package/lib/typescript/components/extends/area/AreaFocusTypes.d.ts.map +1 -0
  277. package/lib/typescript/components/internal/DefaultRoadmapStyle.d.ts +820 -0
  278. package/lib/typescript/components/internal/DefaultRoadmapStyle.d.ts.map +1 -0
  279. package/lib/typescript/components/internal/GeojsonStyleUtils.d.ts +3 -0
  280. package/lib/typescript/components/internal/GeojsonStyleUtils.d.ts.map +1 -0
  281. package/lib/typescript/index.d.ts +13 -0
  282. package/lib/typescript/index.d.ts.map +1 -0
  283. package/lib/typescript/native/Map4dMapNativeModule.d.ts +2 -0
  284. package/lib/typescript/native/Map4dMapNativeModule.d.ts.map +1 -0
  285. package/lib/typescript/native/NativeModuleResolver.d.ts +3 -0
  286. package/lib/typescript/native/NativeModuleResolver.d.ts.map +1 -0
  287. package/lib/typescript/native/ViewManagerCommand.d.ts +11 -0
  288. package/lib/typescript/native/ViewManagerCommand.d.ts.map +1 -0
  289. package/package.json +168 -152
  290. package/react-native-map4d-map.podspec +20 -20
  291. package/src/components/MFBanDoSo/constants.js +32 -0
  292. package/src/components/MFBanDoSo/helpers.js +273 -0
  293. package/src/components/MFBanDoSo/propTypes.js +14 -0
  294. package/src/components/MFBanDoSo/styles.js +316 -0
  295. package/src/components/MFBanDoSo/ui.js +230 -0
  296. package/src/components/MFBanDoSo.js +314 -124
  297. package/src/components/MFBuilding.js +160 -187
  298. package/src/components/MFCircle.js +146 -173
  299. package/src/components/MFDirectionsRenderer.js +211 -237
  300. package/src/components/MFMapView.js +458 -464
  301. package/src/components/MFMarker.js +218 -246
  302. package/src/components/MFPOI.js +157 -184
  303. package/src/components/MFPolygon.js +159 -186
  304. package/src/components/MFPolyline.js +145 -172
  305. package/src/components/MFTileOverlay.js +45 -45
  306. package/src/components/Map4dMapView.tsx +26 -26
  307. package/src/components/extends/AreaFocusManager.js +196 -196
  308. package/src/components/extends/AreaFocuser.js +61 -61
  309. package/src/components/extends/BoundHelper.js +31 -31
  310. package/src/components/extends/area/AreaFocusAreas.js +164 -164
  311. package/src/components/extends/area/AreaFocusGeometryUtils.js +164 -164
  312. package/src/components/extends/area/AreaFocusSession.js +100 -100
  313. package/src/components/extends/area/AreaFocusTypes.js +36 -36
  314. package/src/components/internal/DefaultRoadmapStyle.js +3365 -3365
  315. package/src/components/internal/GeojsonStyleUtils.js +146 -143
  316. package/src/index.js +25 -25
  317. package/src/native/Map4dMapNativeModule.js +3 -0
  318. package/src/native/NativeModuleResolver.js +33 -0
  319. package/src/native/ViewManagerCommand.js +82 -0
  320. package/src/specs/NativeMap4dMap.js +12 -0
  321. package/ios/Map4dMapViewManager.m +0 -34
@@ -0,0 +1,273 @@
1
+ import { createCategoryItemsSignature } from '../internal/GeojsonStyleUtils';
2
+
3
+ function normalizeColorValue(color) {
4
+ if (typeof color === 'string' && color.trim().length > 0) {
5
+ return color.trim();
6
+ }
7
+
8
+ if (Array.isArray(color) && typeof color[0] === 'string' && color[0].trim().length > 0) {
9
+ return color[0].trim();
10
+ }
11
+
12
+ return null;
13
+ }
14
+
15
+ function resolveItemsFromCategoryResponse(json) {
16
+ const data = json?.data ?? json;
17
+
18
+ if (Array.isArray(data)) {
19
+ return data;
20
+ }
21
+
22
+ if (Array.isArray(data?.items)) {
23
+ return data.items;
24
+ }
25
+
26
+ if (Array.isArray(json?.items)) {
27
+ return json.items;
28
+ }
29
+
30
+ return [];
31
+ }
32
+
33
+ function resolveCategoryGroupMetadataFromResponse(json) {
34
+ const data = json?.data ?? json;
35
+ const groups = Array.isArray(data?.groups)
36
+ ? data.groups
37
+ : Array.isArray(json?.groups)
38
+ ? json.groups
39
+ : [];
40
+
41
+ const titleByKey = {};
42
+ const orderKeys = [];
43
+
44
+ groups.forEach((group, index) => {
45
+ if (!group || typeof group !== 'object') {
46
+ return;
47
+ }
48
+
49
+ const rawKeyValue = [group.key, group.code, group.group, group.id]
50
+ .find((value) => value != null && `${value}`.trim().length > 0);
51
+
52
+ if (rawKeyValue == null) {
53
+ return;
54
+ }
55
+
56
+ const key = `${rawKeyValue}`.trim();
57
+ const rawTitleValue = [
58
+ group.title,
59
+ group.name,
60
+ group.label,
61
+ group.display_name,
62
+ group.displayName,
63
+ ].find((value) => typeof value === 'string' && value.trim().length > 0);
64
+
65
+ const title = rawTitleValue ? rawTitleValue.trim() : key;
66
+
67
+ titleByKey[key] = title;
68
+
69
+ const preferredOrder = Number.isFinite(group.order) ? group.order : index;
70
+ orderKeys.push({
71
+ key,
72
+ order: preferredOrder,
73
+ index,
74
+ });
75
+ });
76
+
77
+ orderKeys.sort((a, b) => {
78
+ if (a.order === b.order) {
79
+ return a.index - b.index;
80
+ }
81
+ return a.order - b.order;
82
+ });
83
+
84
+ return {
85
+ titleByKey,
86
+ orderedKeys: orderKeys.map((entry) => entry.key),
87
+ };
88
+ }
89
+
90
+ function normalizeCategoryItems(items) {
91
+ if (!Array.isArray(items)) {
92
+ return [];
93
+ }
94
+
95
+ return items.map((item) => ({
96
+ ...item,
97
+ checked: item?.checked !== false,
98
+ }));
99
+ }
100
+
101
+ function getSelectedCategoryItems(items) {
102
+ return (Array.isArray(items) ? items : []).filter(
103
+ (item) => item?.checked !== false
104
+ );
105
+ }
106
+
107
+ function resolveCategoryGroupKey(item) {
108
+ const rawGroup = typeof item?.group === 'string' ? item.group.trim() : '';
109
+ return rawGroup.length > 0 ? rawGroup : '__ungrouped__';
110
+ }
111
+
112
+ function createCategoryGroupSections(items, titleByKey = {}, orderedKeys = []) {
113
+ const list = Array.isArray(items) ? items : [];
114
+ const groupedMap = new Map();
115
+
116
+ list.forEach((item, index) => {
117
+ const groupKey = resolveCategoryGroupKey(item);
118
+ const mappedTitle =
119
+ typeof titleByKey[groupKey] === 'string' && titleByKey[groupKey].trim().length > 0
120
+ ? titleByKey[groupKey].trim()
121
+ : null;
122
+ const groupTitle = mappedTitle || (groupKey === '__ungrouped__' ? 'Khac' : groupKey);
123
+
124
+ if (!groupedMap.has(groupKey)) {
125
+ groupedMap.set(groupKey, {
126
+ key: groupKey,
127
+ title: groupTitle,
128
+ items: [],
129
+ });
130
+ }
131
+
132
+ groupedMap.get(groupKey).items.push({
133
+ item,
134
+ index,
135
+ });
136
+ });
137
+
138
+ const sections = Array.from(groupedMap.values());
139
+ if (!Array.isArray(orderedKeys) || orderedKeys.length === 0) {
140
+ return sections;
141
+ }
142
+
143
+ const orderMap = orderedKeys.reduce((acc, key, index) => {
144
+ if (typeof key === 'string' && key.length > 0) {
145
+ acc[key] = index;
146
+ }
147
+ return acc;
148
+ }, {});
149
+
150
+ return sections.sort((a, b) => {
151
+ const aOrder = Object.prototype.hasOwnProperty.call(orderMap, a.key)
152
+ ? orderMap[a.key]
153
+ : Number.MAX_SAFE_INTEGER;
154
+ const bOrder = Object.prototype.hasOwnProperty.call(orderMap, b.key)
155
+ ? orderMap[b.key]
156
+ : Number.MAX_SAFE_INTEGER;
157
+
158
+ if (aOrder === bOrder) {
159
+ return a.title.localeCompare(b.title);
160
+ }
161
+ return aOrder - bOrder;
162
+ });
163
+ }
164
+
165
+ function reconcileExpandedGroupKeys(groupSections, previousExpandedGroupKeys) {
166
+ const prev =
167
+ previousExpandedGroupKeys && typeof previousExpandedGroupKeys === 'object'
168
+ ? previousExpandedGroupKeys
169
+ : {};
170
+
171
+ return (Array.isArray(groupSections) ? groupSections : []).reduce(
172
+ (acc, group) => {
173
+ const key = group?.key;
174
+ if (typeof key !== 'string' || key.length === 0) {
175
+ return acc;
176
+ }
177
+
178
+ acc[key] = typeof prev[key] === 'boolean' ? prev[key] : true;
179
+ return acc;
180
+ },
181
+ {}
182
+ );
183
+ }
184
+
185
+ function createSelectedCategoryItemsSignature(items) {
186
+ return createCategoryItemsSignature(getSelectedCategoryItems(items));
187
+ }
188
+
189
+ function toggleCategoryItemChecked(items, targetKey, targetIndex) {
190
+ return (Array.isArray(items) ? items : []).map((item, index) => {
191
+ const currentKey = item?.key ?? `index-${index}`;
192
+ const isTarget = currentKey === targetKey && index === targetIndex;
193
+
194
+ if (!isTarget) {
195
+ return item;
196
+ }
197
+
198
+ return {
199
+ ...item,
200
+ checked: !(item?.checked !== false),
201
+ };
202
+ });
203
+ }
204
+
205
+ function toggleCategoryGroupChecked(items, targetGroupKey, checkedValue) {
206
+ if (typeof targetGroupKey !== 'string' || targetGroupKey.length === 0) {
207
+ return Array.isArray(items) ? items : [];
208
+ }
209
+
210
+ const nextChecked = checkedValue !== false;
211
+
212
+ return (Array.isArray(items) ? items : []).map((item) => {
213
+ const groupKey = resolveCategoryGroupKey(item);
214
+ if (groupKey !== targetGroupKey) {
215
+ return item;
216
+ }
217
+
218
+ return {
219
+ ...item,
220
+ checked: nextChecked,
221
+ };
222
+ });
223
+ }
224
+
225
+ function extractColorFromItemStyle(item) {
226
+ if (!item || typeof item !== 'object') {
227
+ return null;
228
+ }
229
+
230
+ const lineColor = normalizeColorValue(item?.style?.line?.[0]?.draw?.color);
231
+ if (lineColor) {
232
+ return lineColor;
233
+ }
234
+
235
+ const fillColor = normalizeColorValue(item?.style?.fill?.[0]?.draw?.color);
236
+ if (fillColor) {
237
+ return fillColor;
238
+ }
239
+
240
+ const symbolColor = normalizeColorValue(item?.style?.symbol?.[0]?.draw?.icon_color);
241
+ if (symbolColor) {
242
+ return symbolColor;
243
+ }
244
+
245
+ return null;
246
+ }
247
+
248
+ function resolveCategoryItemColor(item) {
249
+ const customColor = normalizeColorValue(item?.color);
250
+ if (customColor) {
251
+ return customColor;
252
+ }
253
+
254
+ const styleColor = extractColorFromItemStyle(item);
255
+ if (styleColor) {
256
+ return styleColor;
257
+ }
258
+
259
+ return null;
260
+ }
261
+
262
+ export {
263
+ createCategoryGroupSections,
264
+ createSelectedCategoryItemsSignature,
265
+ getSelectedCategoryItems,
266
+ normalizeCategoryItems,
267
+ reconcileExpandedGroupKeys,
268
+ resolveCategoryGroupMetadataFromResponse,
269
+ resolveCategoryItemColor,
270
+ resolveItemsFromCategoryResponse,
271
+ toggleCategoryGroupChecked,
272
+ toggleCategoryItemChecked,
273
+ };
@@ -0,0 +1,14 @@
1
+ import PropTypes from 'prop-types';
2
+ import { MFMapView } from '../MFMapView';
3
+
4
+ const banDoSoPropTypes = {
5
+ ...MFMapView.propTypes,
6
+
7
+ /**
8
+ * If `true` (default), fetch category config and vector tiles from the staging API.
9
+ * If `false`, use the production API (no `/staging` path segment).
10
+ */
11
+ isStaging: PropTypes.bool,
12
+ };
13
+
14
+ export { banDoSoPropTypes };
@@ -0,0 +1,316 @@
1
+ import { StyleSheet } from 'react-native';
2
+
3
+ const styles = StyleSheet.create({
4
+ layerButtonContainer: {
5
+ ...StyleSheet.absoluteFillObject,
6
+ zIndex: 20,
7
+ elevation: 20,
8
+ },
9
+ layerButton: {
10
+ position: 'absolute',
11
+ top: 16,
12
+ right: 12,
13
+ width: 42,
14
+ height: 42,
15
+ borderRadius: 21,
16
+ borderWidth: 1,
17
+ borderColor: '#d1d5db',
18
+ backgroundColor: '#ffffff',
19
+ alignItems: 'center',
20
+ justifyContent: 'center',
21
+ shadowColor: '#000000',
22
+ shadowOpacity: 0.14,
23
+ shadowRadius: 8,
24
+ shadowOffset: {
25
+ width: 0,
26
+ height: 3,
27
+ },
28
+ },
29
+ layerButtonActive: {
30
+ borderColor: '#3b82f6',
31
+ backgroundColor: '#eff6ff',
32
+ },
33
+ legendButton: {
34
+ top: 66,
35
+ },
36
+ layerIconBoxPrimary: {
37
+ position: 'absolute',
38
+ width: 12,
39
+ height: 12,
40
+ borderRadius: 3,
41
+ borderWidth: 1.4,
42
+ borderColor: '#6b7280',
43
+ backgroundColor: '#eef2f7',
44
+ transform: [{ translateX: -2 }, { translateY: -2 }],
45
+ },
46
+ layerIconBoxSecondary: {
47
+ position: 'absolute',
48
+ width: 12,
49
+ height: 12,
50
+ borderRadius: 3,
51
+ borderWidth: 1.4,
52
+ borderColor: '#4b5563',
53
+ backgroundColor: '#ffffff',
54
+ transform: [{ translateX: 2 }, { translateY: 2 }],
55
+ },
56
+ legendToggleIconRow: {
57
+ width: 16,
58
+ flexDirection: 'row',
59
+ alignItems: 'center',
60
+ marginVertical: 1,
61
+ },
62
+ legendToggleIconDot: {
63
+ width: 4,
64
+ height: 4,
65
+ borderRadius: 2,
66
+ backgroundColor: '#4b5563',
67
+ marginRight: 3,
68
+ },
69
+ legendToggleIconLine: {
70
+ flex: 1,
71
+ height: 2,
72
+ borderRadius: 1,
73
+ backgroundColor: '#6b7280',
74
+ },
75
+ selectorContainer: {
76
+ ...StyleSheet.absoluteFillObject,
77
+ zIndex: 18,
78
+ elevation: 18,
79
+ },
80
+ selectorBackdrop: {
81
+ ...StyleSheet.absoluteFillObject,
82
+ backgroundColor: '#11182740',
83
+ },
84
+ selectorBackdropPressable: {
85
+ ...StyleSheet.absoluteFillObject,
86
+ },
87
+ selectorPanel: {
88
+ position: 'absolute',
89
+ top: 0,
90
+ left: 0,
91
+ bottom: 0,
92
+ width: '76%',
93
+ maxWidth: 320,
94
+ minWidth: 260,
95
+ backgroundColor: '#f3f4f6',
96
+ borderTopRightRadius: 14,
97
+ borderBottomRightRadius: 14,
98
+ paddingHorizontal: 14,
99
+ paddingTop: 18,
100
+ paddingBottom: 14,
101
+ shadowColor: '#000000',
102
+ shadowOpacity: 0.2,
103
+ shadowRadius: 14,
104
+ shadowOffset: {
105
+ width: 2,
106
+ height: 0,
107
+ },
108
+ },
109
+ selectorHeader: {
110
+ marginBottom: 10,
111
+ },
112
+ selectorTitle: {
113
+ fontSize: 15,
114
+ fontWeight: '700',
115
+ color: '#1f2937',
116
+ },
117
+ selectorList: {
118
+ flex: 1,
119
+ },
120
+ selectorGrid: {
121
+ paddingBottom: 10,
122
+ },
123
+ selectorGroupSection: {
124
+ marginBottom: 8,
125
+ },
126
+ selectorGroupHeader: {
127
+ flexDirection: 'row',
128
+ alignItems: 'center',
129
+ minHeight: 28,
130
+ paddingHorizontal: 0,
131
+ marginBottom: 6,
132
+ },
133
+ selectorGroupCheckAction: {
134
+ width: 18,
135
+ alignItems: 'center',
136
+ justifyContent: 'center',
137
+ marginRight: 10,
138
+ },
139
+ selectorGroupToggleAction: {
140
+ flex: 1,
141
+ minHeight: 28,
142
+ flexDirection: 'row',
143
+ alignItems: 'center',
144
+ marginLeft: 2,
145
+ paddingLeft: 2,
146
+ },
147
+ selectorGroupChevronTriangle: {
148
+ width: 0,
149
+ height: 0,
150
+ marginRight: 10,
151
+ },
152
+ selectorGroupChevronCollapsed: {
153
+ borderTopWidth: 5,
154
+ borderBottomWidth: 5,
155
+ borderLeftWidth: 7,
156
+ borderTopColor: 'transparent',
157
+ borderBottomColor: 'transparent',
158
+ borderLeftColor: '#374151',
159
+ },
160
+ selectorGroupChevronExpanded: {
161
+ borderLeftWidth: 5,
162
+ borderRightWidth: 5,
163
+ borderTopWidth: 7,
164
+ borderLeftColor: 'transparent',
165
+ borderRightColor: 'transparent',
166
+ borderTopColor: '#374151',
167
+ marginTop: 1,
168
+ },
169
+ selectorGroupTitle: {
170
+ flex: 1,
171
+ fontSize: 16,
172
+ fontWeight: '700',
173
+ color: '#374151',
174
+ },
175
+ selectorGroupBody: {
176
+ paddingLeft: 24,
177
+ paddingTop: 0,
178
+ },
179
+ selectorRow: {
180
+ flexDirection: 'row',
181
+ alignItems: 'center',
182
+ minHeight: 34,
183
+ marginBottom: 6,
184
+ paddingRight: 6,
185
+ },
186
+ selectorLabel: {
187
+ flex: 1,
188
+ fontSize: 15,
189
+ color: '#2f343a',
190
+ lineHeight: 22,
191
+ fontWeight: '500',
192
+ },
193
+ checkboxOuter: {
194
+ width: 18,
195
+ height: 18,
196
+ borderRadius: 4,
197
+ borderWidth: 1.5,
198
+ marginRight: 10,
199
+ marginTop: 2,
200
+ borderColor: '#b7bcc3',
201
+ alignItems: 'center',
202
+ justifyContent: 'center',
203
+ backgroundColor: '#ffffff',
204
+ },
205
+ checkboxOuterChecked: {
206
+ borderColor: '#2563eb',
207
+ backgroundColor: '#2563eb',
208
+ },
209
+ checkboxMark: {
210
+ fontSize: 11,
211
+ fontWeight: '700',
212
+ color: '#ffffff',
213
+ lineHeight: 11,
214
+ },
215
+ groupCheckOuter: {
216
+ width: 18,
217
+ height: 18,
218
+ borderRadius: 4,
219
+ borderWidth: 1.5,
220
+ borderColor: '#b7bcc3',
221
+ backgroundColor: '#ffffff',
222
+ alignItems: 'center',
223
+ justifyContent: 'center',
224
+ },
225
+ groupCheckOuterChecked: {
226
+ borderColor: '#2563eb',
227
+ backgroundColor: '#2563eb',
228
+ },
229
+ groupCheckOuterIndeterminate: {
230
+ borderColor: '#2563eb',
231
+ backgroundColor: '#ffffff',
232
+ },
233
+ groupCheckMark: {
234
+ fontSize: 11,
235
+ fontWeight: '700',
236
+ color: '#ffffff',
237
+ lineHeight: 11,
238
+ },
239
+ groupCheckIndeterminateMark: {
240
+ width: 8,
241
+ height: 8,
242
+ borderRadius: 1,
243
+ backgroundColor: '#2563eb',
244
+ },
245
+ legendContainer: {
246
+ ...StyleSheet.absoluteFillObject,
247
+ zIndex: 10,
248
+ elevation: 10,
249
+ },
250
+ legendPanel: {
251
+ position: 'absolute',
252
+ right: 12,
253
+ bottom: 20,
254
+ width: 160,
255
+ maxHeight: 240,
256
+ backgroundColor: '#FFFFFFF5',
257
+ borderRadius: 12,
258
+ paddingHorizontal: 10,
259
+ paddingVertical: 8,
260
+ shadowColor: '#000000',
261
+ shadowOpacity: 0.12,
262
+ shadowRadius: 10,
263
+ shadowOffset: {
264
+ width: 0,
265
+ height: 4,
266
+ },
267
+ },
268
+ legendTitle: {
269
+ fontSize: 13,
270
+ fontWeight: '600',
271
+ color: '#9ca3af',
272
+ marginBottom: 6,
273
+ },
274
+ legendDivider: {
275
+ height: 1,
276
+ backgroundColor: '#e5e7eb',
277
+ marginBottom: 6,
278
+ },
279
+ legendList: {
280
+ maxHeight: 188,
281
+ marginLeft: -10,
282
+ marginRight: -8,
283
+ },
284
+ legendListInner: {
285
+ paddingBottom: 2,
286
+ paddingHorizontal: 10,
287
+ },
288
+ legendRow: {
289
+ flexDirection: 'row',
290
+ alignItems: 'center',
291
+ minHeight: 24,
292
+ marginBottom: 3,
293
+ paddingRight: 2,
294
+ },
295
+ legendLabel: {
296
+ flex: 1,
297
+ fontSize: 13,
298
+ color: '#6b7280',
299
+ fontWeight: '500',
300
+ },
301
+ legendDot: {
302
+ width: 10,
303
+ height: 10,
304
+ borderRadius: 5,
305
+ borderWidth: 2,
306
+ marginRight: 8,
307
+ backgroundColor: '#9ca3af',
308
+ borderColor: '#9ca3af',
309
+ },
310
+ legendDotUnchecked: {
311
+ backgroundColor: '#ffffff',
312
+ borderColor: '#9ca3af',
313
+ },
314
+ });
315
+
316
+ export { styles };