@react-native-kakao/map 2.2.6 → 3.1.0-next.2

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 (165) hide show
  1. package/CHANGELOG.md +14 -0
  2. package/README.md +5 -38
  3. package/RNCKakaoMap.podspec +16 -52
  4. package/android/build.gradle +12 -107
  5. package/android/consumer-rules.pro +2 -0
  6. package/android/src/main/AndroidManifest.xml +3 -1
  7. package/android/src/main/java/net/mjstudio/rnkakao/map/CameraOptions.kt +61 -0
  8. package/android/src/main/java/net/mjstudio/rnkakao/map/KakaoMapModule.kt +131 -0
  9. package/android/src/main/java/net/mjstudio/rnkakao/map/KakaoMapView.kt +1257 -0
  10. package/android/src/main/java/net/mjstudio/rnkakao/map/MapCameraCommands.kt +306 -0
  11. package/android/src/main/java/net/mjstudio/rnkakao/map/MapDimScreen.kt +431 -0
  12. package/android/src/main/java/net/mjstudio/rnkakao/map/MapGui.kt +899 -0
  13. package/android/src/main/java/net/mjstudio/rnkakao/map/MapImageLoader.kt +232 -0
  14. package/android/src/main/java/net/mjstudio/rnkakao/map/MapLabels.kt +1572 -0
  15. package/android/src/main/java/net/mjstudio/rnkakao/map/MapOptions.kt +360 -0
  16. package/android/src/main/java/net/mjstudio/rnkakao/map/MapRoutes.kt +805 -0
  17. package/android/src/main/java/net/mjstudio/rnkakao/map/MapShapes.kt +1096 -0
  18. package/android/src/main/java/net/mjstudio/rnkakao/map/MapUtilities.kt +495 -0
  19. package/expo-module.config.json +5 -0
  20. package/ios/CameraOptions.swift +41 -0
  21. package/ios/KakaoMapModule.swift +204 -0
  22. package/ios/KakaoMapView.swift +1018 -0
  23. package/ios/MapCameraCommands.swift +451 -0
  24. package/ios/MapDimScreen.swift +463 -0
  25. package/ios/MapGui.swift +1099 -0
  26. package/ios/MapImageLoader.swift +177 -0
  27. package/ios/MapLabels.swift +1676 -0
  28. package/ios/MapOptions.swift +374 -0
  29. package/ios/MapRoutes.swift +903 -0
  30. package/ios/MapShapes.swift +1294 -0
  31. package/ios/MapUnits.swift +20 -0
  32. package/ios/MapUtilities.swift +365 -0
  33. package/lib/commonjs/index.js +180 -29
  34. package/lib/commonjs/index.js.map +1 -1
  35. package/lib/commonjs/index.web.js +18 -0
  36. package/lib/commonjs/index.web.js.map +1 -0
  37. package/lib/commonjs/package.json +1 -0
  38. package/lib/commonjs/types-assets.js +2 -0
  39. package/lib/commonjs/types-assets.js.map +1 -0
  40. package/lib/commonjs/types-camera.js +6 -0
  41. package/lib/commonjs/types-camera.js.map +1 -0
  42. package/lib/commonjs/types-dim.js +6 -0
  43. package/lib/commonjs/types-dim.js.map +1 -0
  44. package/lib/commonjs/types-gui.js +6 -0
  45. package/lib/commonjs/types-gui.js.map +1 -0
  46. package/lib/commonjs/types-labels.js +6 -0
  47. package/lib/commonjs/types-labels.js.map +1 -0
  48. package/lib/commonjs/types-routes.js +6 -0
  49. package/lib/commonjs/types-routes.js.map +1 -0
  50. package/lib/commonjs/types-shapes.js +6 -0
  51. package/lib/commonjs/types-shapes.js.map +1 -0
  52. package/lib/commonjs/types-utilities.js +6 -0
  53. package/lib/commonjs/types-utilities.js.map +1 -0
  54. package/lib/commonjs/types.js +6 -0
  55. package/lib/commonjs/types.js.map +1 -0
  56. package/lib/module/index.js +180 -22
  57. package/lib/module/index.js.map +1 -1
  58. package/lib/module/index.web.js +13 -0
  59. package/lib/module/index.web.js.map +1 -0
  60. package/lib/module/types-assets.js +2 -0
  61. package/lib/module/types-assets.js.map +1 -0
  62. package/lib/module/types-camera.js +4 -0
  63. package/lib/module/types-camera.js.map +1 -0
  64. package/lib/module/types-dim.js +4 -0
  65. package/lib/module/types-dim.js.map +1 -0
  66. package/lib/module/types-gui.js +4 -0
  67. package/lib/module/types-gui.js.map +1 -0
  68. package/lib/module/types-labels.js +4 -0
  69. package/lib/module/types-labels.js.map +1 -0
  70. package/lib/module/types-routes.js +4 -0
  71. package/lib/module/types-routes.js.map +1 -0
  72. package/lib/module/types-shapes.js +4 -0
  73. package/lib/module/types-shapes.js.map +1 -0
  74. package/lib/module/types-utilities.js +4 -0
  75. package/lib/module/types-utilities.js.map +1 -0
  76. package/lib/module/types.js +4 -0
  77. package/lib/module/types.js.map +1 -0
  78. package/lib/typescript/src/index.d.ts +59 -9
  79. package/lib/typescript/src/index.d.ts.map +1 -1
  80. package/lib/typescript/src/types-assets.d.ts +9 -0
  81. package/lib/typescript/src/types-assets.d.ts.map +1 -0
  82. package/lib/typescript/src/types-camera.d.ts +123 -0
  83. package/lib/typescript/src/types-camera.d.ts.map +1 -0
  84. package/lib/typescript/src/types-dim.d.ts +54 -0
  85. package/lib/typescript/src/types-dim.d.ts.map +1 -0
  86. package/lib/typescript/src/types-gui.d.ts +189 -0
  87. package/lib/typescript/src/types-gui.d.ts.map +1 -0
  88. package/lib/typescript/src/types-labels.d.ts +246 -0
  89. package/lib/typescript/src/types-labels.d.ts.map +1 -0
  90. package/lib/typescript/src/types-routes.d.ts +162 -0
  91. package/lib/typescript/src/types-routes.d.ts.map +1 -0
  92. package/lib/typescript/src/types-shapes.d.ts +253 -0
  93. package/lib/typescript/src/types-shapes.d.ts.map +1 -0
  94. package/lib/typescript/src/types-utilities.d.ts +130 -0
  95. package/lib/typescript/src/types-utilities.d.ts.map +1 -0
  96. package/lib/typescript/src/types.d.ts +222 -0
  97. package/lib/typescript/src/types.d.ts.map +1 -0
  98. package/package.json +24 -77
  99. package/src/index.tsx +322 -0
  100. package/src/index.web.tsx +46 -0
  101. package/src/types-assets.ts +8 -0
  102. package/src/types-camera.ts +97 -0
  103. package/src/types-dim.ts +54 -0
  104. package/src/types-gui.ts +171 -0
  105. package/src/types-labels.ts +207 -0
  106. package/src/types-routes.ts +118 -0
  107. package/src/types-shapes.ts +244 -0
  108. package/src/types-utilities.ts +115 -0
  109. package/src/types.ts +223 -0
  110. package/android/gradle.properties +0 -1
  111. package/android/src/main/AndroidManifestNew.xml +0 -2
  112. package/android/src/main/java/net/mjstudio/rnkakao/map/RNCKakaoMapModule.kt +0 -25
  113. package/android/src/main/java/net/mjstudio/rnkakao/map/RNCKakaoMapPackage.kt +0 -35
  114. package/android/src/newarch/KakaoMapSpec.kt +0 -7
  115. package/android/src/oldarch/KakaoMapSpec.kt +0 -14
  116. package/ios/Component/Map/RNCKakaoMapView.h +0 -23
  117. package/ios/Component/Map/RNCKakaoMapView.mm +0 -209
  118. package/ios/Component/Map/RNCKakaoMapViewManager.mm +0 -19
  119. package/ios/NativeModule/RNCKakaoMap.h +0 -7
  120. package/ios/NativeModule/RNCKakaoMap.mm +0 -19
  121. package/ios/NativeModule/RNCKakaoMapManager.swift +0 -7
  122. package/ios/Util/Util.h +0 -97
  123. package/lib/commonjs/component/KakaoMapView.js +0 -54
  124. package/lib/commonjs/component/KakaoMapView.js.map +0 -1
  125. package/lib/commonjs/spec/NativeKakaoMap.js +0 -9
  126. package/lib/commonjs/spec/NativeKakaoMap.js.map +0 -1
  127. package/lib/commonjs/spec/RNCKakaoMapViewNativeComponent.js +0 -15
  128. package/lib/commonjs/spec/RNCKakaoMapViewNativeComponent.js.map +0 -1
  129. package/lib/commonjs/type/type.js +0 -2
  130. package/lib/commonjs/type/type.js.map +0 -1
  131. package/lib/commonjs/util/Const.js +0 -14
  132. package/lib/commonjs/util/Const.js.map +0 -1
  133. package/lib/commonjs/util/Util.js +0 -15
  134. package/lib/commonjs/util/Util.js.map +0 -1
  135. package/lib/module/component/KakaoMapView.js +0 -48
  136. package/lib/module/component/KakaoMapView.js.map +0 -1
  137. package/lib/module/spec/NativeKakaoMap.js +0 -3
  138. package/lib/module/spec/NativeKakaoMap.js.map +0 -1
  139. package/lib/module/spec/RNCKakaoMapViewNativeComponent.js +0 -10
  140. package/lib/module/spec/RNCKakaoMapViewNativeComponent.js.map +0 -1
  141. package/lib/module/type/type.js +0 -2
  142. package/lib/module/type/type.js.map +0 -1
  143. package/lib/module/util/Const.js +0 -8
  144. package/lib/module/util/Const.js.map +0 -1
  145. package/lib/module/util/Util.js +0 -9
  146. package/lib/module/util/Util.js.map +0 -1
  147. package/lib/typescript/src/component/KakaoMapView.d.ts +0 -25
  148. package/lib/typescript/src/component/KakaoMapView.d.ts.map +0 -1
  149. package/lib/typescript/src/spec/NativeKakaoMap.d.ts +0 -7
  150. package/lib/typescript/src/spec/NativeKakaoMap.d.ts.map +0 -1
  151. package/lib/typescript/src/spec/RNCKakaoMapViewNativeComponent.d.ts +0 -32
  152. package/lib/typescript/src/spec/RNCKakaoMapViewNativeComponent.d.ts.map +0 -1
  153. package/lib/typescript/src/type/type.d.ts +0 -8
  154. package/lib/typescript/src/type/type.d.ts.map +0 -1
  155. package/lib/typescript/src/util/Const.d.ts +0 -8
  156. package/lib/typescript/src/util/Const.d.ts.map +0 -1
  157. package/lib/typescript/src/util/Util.d.ts +0 -3
  158. package/lib/typescript/src/util/Util.d.ts.map +0 -1
  159. package/src/component/KakaoMapView.tsx +0 -82
  160. package/src/index.ts +0 -43
  161. package/src/spec/NativeKakaoMap.ts +0 -8
  162. package/src/spec/RNCKakaoMapViewNativeComponent.ts +0 -38
  163. package/src/type/type.ts +0 -7
  164. package/src/util/Const.ts +0 -7
  165. package/src/util/Util.ts +0 -11
@@ -0,0 +1,204 @@
1
+ import ExpoModulesCore
2
+ import KakaoMapsSDK
3
+
4
+ public class KakaoMapModule: Module {
5
+ static var appKey: String?
6
+
7
+ public func definition() -> ModuleDefinition {
8
+ Name("RNCKakaoMap")
9
+ AsyncFunction("initialize") { (key: String) in
10
+ guard !key.trimmingCharacters(in: .whitespacesAndNewlines).isEmpty else {
11
+ throw KakaoMapException(invalidCameraArgument, "App key must not be empty.")
12
+ }
13
+ if let existing = Self.appKey, existing != key {
14
+ throw KakaoMapException(
15
+ "ERR_KAKAO_MAP_ALREADY_INITIALIZED",
16
+ "Kakao Maps is already initialized with another key."
17
+ )
18
+ }
19
+ if Self.appKey == nil {
20
+ SDKInitializer.InitSDK(appKey: key)
21
+ Self.appKey = key
22
+ }
23
+ }.runOnQueue(.main)
24
+ View(KakaoMapView.self) {
25
+ Events(
26
+ "onMapReady",
27
+ "onError",
28
+ "onCameraMoveStart",
29
+ "onCameraIdle",
30
+ "onMapClick",
31
+ "onMapLongClick",
32
+ "onPoiClick",
33
+ "onCompassClick",
34
+ "onMapTypeChanged",
35
+ "onTerrainClick",
36
+ "onViewportClick",
37
+ "onVisibilityChanged",
38
+ "onFocusChanged",
39
+ "onPaddingChanged",
40
+ "onViewportChanged",
41
+ "onLabelClick",
42
+ "onLabelAnimationStopped",
43
+ "onLabelsChanged",
44
+ "onShapeAnimationStop",
45
+ "onShapesChanged",
46
+ "onRoutesChanged",
47
+ "onRouteProgress",
48
+ "onRouteAnimationStop",
49
+ "onGuiEvent",
50
+ "onDimScreenEvent",
51
+ "onCameraOperation"
52
+ )
53
+ Prop("initialCamera") { (view: KakaoMapView, camera: CameraOptions?) in
54
+ view.pendingInitialCamera = camera
55
+ }
56
+ Prop("camera") { (view: KakaoMapView, camera: CameraOptions?) in view.camera = camera }
57
+ Prop("options") { (view: KakaoMapView, options: KakaoMapViewOptions?) in
58
+ view.queueOptions(options)
59
+ }
60
+ Prop("labels") { (view: KakaoMapView, scene: MapLabelSceneRecord?) in
61
+ view.queueLabels(scene)
62
+ }
63
+ Prop("shapes") { (view: KakaoMapView, scene: [String: Any]?) in
64
+ view.queueShapes(scene)
65
+ }
66
+ Prop("routes") { (view: KakaoMapView, scene: [String: Any]?) in view.queueRoutes(scene) }
67
+ OnViewDidUpdateProps { (view: KakaoMapView) in view.updateProps() }
68
+ AsyncFunction("moveCamera") { (view: KakaoMapView, camera: CameraOptions, duration: Double) in
69
+ try view.moveCamera(
70
+ camera,
71
+ duration: duration
72
+ )
73
+ }
74
+ AsyncFunction("getCamera") { (view: KakaoMapView) in try view.getCamera() }
75
+ AsyncFunction("updateCamera") {
76
+ (view: KakaoMapView, update: CameraUpdateOptions, duration: Double) in
77
+ try view.updateCamera(update, duration: duration)
78
+ }
79
+ AsyncFunction("getMapInfo") { (view: KakaoMapView) in try view.getMapInfo() }
80
+ AsyncFunction("screenToCoordinate") { (view: KakaoMapView, point: MapScreenPoint) in
81
+ try view.screenToCoordinate(point)
82
+ }
83
+ AsyncFunction("coordinateToScreen") { (_: KakaoMapView, _: MapCoordinate) in
84
+ throw KakaoMapException(
85
+ "ERR_KAKAO_MAP_UNSUPPORTED_PLATFORM_FEATURE",
86
+ "The Kakao Maps iOS SDK does not expose coordinate-to-screen projection."
87
+ )
88
+ }
89
+ AsyncFunction("clearCache") { (view: KakaoMapView) in try view.clearCache() }
90
+ AsyncFunction("runLabelCommand") { (view: KakaoMapView, command: MapLabelCommandRecord) in
91
+ try view.runLabelCommand(command)
92
+ }
93
+ AsyncFunction("getLabelCapabilities") { (view: KakaoMapView) in
94
+ try view.getLabelCapabilities()
95
+ }
96
+ AsyncFunction("getLabelState") { (view: KakaoMapView) in try view.getLabelState() }
97
+ AsyncFunction("applyShapes") { (view: KakaoMapView, scene: [String: Any]) in
98
+ try view.applyShapes(scene)
99
+ }
100
+ AsyncFunction("executeShapeCommand") { (view: KakaoMapView, command: [String: Any]) in
101
+ try view.executeShapeCommand(command)
102
+ }
103
+ AsyncFunction("applyRoutes") { (view: KakaoMapView, scene: [String: Any], promise: Promise) in
104
+ try view.applyRoutes(scene, promise: promise)
105
+ }
106
+ AsyncFunction("executeRouteCommand") { (view: KakaoMapView, command: [String: Any]) in
107
+ try view.executeRouteCommand(command)
108
+ }
109
+ AsyncFunction("applyGui") { (
110
+ view: KakaoMapView,
111
+ scene: MapGuiSceneRecord,
112
+ promise: Promise
113
+ ) in
114
+ try view.requireGui().apply(scene) { error in
115
+ if let error {
116
+ promise.reject(error)
117
+ } else {
118
+ promise.resolve()
119
+ }
120
+ }
121
+ }
122
+ AsyncFunction("showInfoWindow") { (
123
+ view: KakaoMapView,
124
+ id: String,
125
+ autoMove: Bool,
126
+ duration: Double?
127
+ ) in
128
+ try view.requireGui().showInfoWindow(id: id, autoMove: autoMove, duration: duration)
129
+ }
130
+ AsyncFunction("hideInfoWindow") { (view: KakaoMapView, id: String) in
131
+ try view.requireGui().hideInfoWindow(id: id)
132
+ }
133
+ AsyncFunction("moveInfoWindow") { (
134
+ view: KakaoMapView,
135
+ id: String,
136
+ position: MapGuiCoordinateRecord,
137
+ duration: Double
138
+ ) in
139
+ try view.requireGui().moveInfoWindow(id: id, position: position, duration: duration)
140
+ }
141
+ AsyncFunction("showWidget") { (view: KakaoMapView, id: String) in
142
+ try view.requireGui().showWidget(id: id)
143
+ }
144
+ AsyncFunction("hideWidget") { (view: KakaoMapView, id: String) in
145
+ try view.requireGui().hideWidget(id: id)
146
+ }
147
+ AsyncFunction("positionWidget") { (
148
+ view: KakaoMapView,
149
+ id: String,
150
+ position: MapGuiWidgetPositionRecord
151
+ ) in
152
+ try view.requireGui().positionWidget(id: id, position: position)
153
+ }
154
+ AsyncFunction("rotateWidget") { (view: KakaoMapView, id: String, rotation: Double) in
155
+ try view.requireGui().rotateWidget(id: id, rotation: rotation)
156
+ }
157
+ AsyncFunction("startGuiAnimation") { (view: KakaoMapView, id: String) in
158
+ try view.requireGui().startAnimation(id: id)
159
+ }
160
+ AsyncFunction("stopGuiAnimation") { (view: KakaoMapView, id: String) in
161
+ try view.requireGui().stopAnimation(id: id)
162
+ }
163
+ AsyncFunction("controlAnimatedImage") { (
164
+ view: KakaoMapView,
165
+ ownerType: String,
166
+ ownerId: String,
167
+ componentId: String,
168
+ action: String
169
+ ) in
170
+ try view.requireGui().controlAnimatedImage(
171
+ ownerType: ownerType,
172
+ ownerId: ownerId,
173
+ componentId: componentId,
174
+ action: action
175
+ )
176
+ }
177
+ AsyncFunction("getGuiStatus") { (view: KakaoMapView) in try view.requireGui().status() }
178
+ AsyncFunction("applyDimScreen") { (view: KakaoMapView, options: [String: Any]) in
179
+ try view.requireDimScreen().apply(options)
180
+ }
181
+ AsyncFunction("setDimHighlightVisible") { (view: KakaoMapView, id: String, visible: Bool) in
182
+ try view.requireDimScreen().setHighlightVisible(id: id, visible: visible)
183
+ }
184
+ AsyncFunction("startDimAnimation") { (view: KakaoMapView, id: String) in
185
+ try view.requireDimScreen().startAnimation(id: id)
186
+ }
187
+ AsyncFunction("stopDimAnimation") { (view: KakaoMapView, id: String) in
188
+ try view.requireDimScreen().stopAnimation(id: id)
189
+ }
190
+ AsyncFunction("getDimScreenStatus") { (view: KakaoMapView) in
191
+ try view.requireDimScreen().status()
192
+ }
193
+ AsyncFunction("executeUtilityCommand") { (view: KakaoMapView, command: [String: Any]) in
194
+ try view.requireUtilities().command(command)
195
+ }
196
+ AsyncFunction("requestPoiState") { (view: KakaoMapView, promise: Promise) in
197
+ try view.requireUtilities().requestPoiState(promise)
198
+ }
199
+ AsyncFunction("executeCameraCommand") { (view: KakaoMapView, command: [String: Any]) in
200
+ try view.executeCameraCommand(command)
201
+ }
202
+ }
203
+ }
204
+ }