@granite-js/naver-map 1.0.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 (104) hide show
  1. package/CHANGELOG.md +7 -0
  2. package/GraniteNaverMap.podspec +81 -0
  3. package/android/build.gradle +160 -0
  4. package/android/gradle.properties +5 -0
  5. package/android/src/builtinProvider/java/run/granite/navermap/builtinProvider/BuiltInGraniteNaverMapProvider.kt +549 -0
  6. package/android/src/main/AndroidManifest.xml +3 -0
  7. package/android/src/main/java/run/granite/navermap/GraniteNaverMapEvents.kt +91 -0
  8. package/android/src/main/java/run/granite/navermap/GraniteNaverMapPackage.kt +16 -0
  9. package/android/src/main/java/run/granite/navermap/GraniteNaverMapProvider.kt +242 -0
  10. package/android/src/main/java/run/granite/navermap/GraniteNaverMapRegistry.kt +116 -0
  11. package/android/src/main/java/run/granite/navermap/GraniteNaverMapView.kt +732 -0
  12. package/android/src/newarch/java/run/granite/navermap/GraniteNaverMapViewManager.kt +446 -0
  13. package/android/src/oldarch/java/run/granite/navermap/GraniteNaverMapViewManager.kt +249 -0
  14. package/dist/module/NaverMapView.js +110 -0
  15. package/dist/module/NaverMapView.js.map +1 -0
  16. package/dist/module/index.js +6 -0
  17. package/dist/module/index.js.map +1 -0
  18. package/dist/module/internals/colorUtils.js +624 -0
  19. package/dist/module/internals/colorUtils.js.map +1 -0
  20. package/dist/module/internals/context.js +8 -0
  21. package/dist/module/internals/context.js.map +1 -0
  22. package/dist/module/internals/id.js +10 -0
  23. package/dist/module/internals/id.js.map +1 -0
  24. package/dist/module/internals/useMapOverlay.js +44 -0
  25. package/dist/module/internals/useMapOverlay.js.map +1 -0
  26. package/dist/module/internals/usePreservedReference.js +36 -0
  27. package/dist/module/internals/usePreservedReference.js.map +1 -0
  28. package/dist/module/overlays/ArrowheadPath.js +37 -0
  29. package/dist/module/overlays/ArrowheadPath.js.map +1 -0
  30. package/dist/module/overlays/Circle.js +35 -0
  31. package/dist/module/overlays/Circle.js.map +1 -0
  32. package/dist/module/overlays/GroundOverlay.js +30 -0
  33. package/dist/module/overlays/GroundOverlay.js.map +1 -0
  34. package/dist/module/overlays/InfoWindow.js +32 -0
  35. package/dist/module/overlays/InfoWindow.js.map +1 -0
  36. package/dist/module/overlays/Marker.js +37 -0
  37. package/dist/module/overlays/Marker.js.map +1 -0
  38. package/dist/module/overlays/Path.js +41 -0
  39. package/dist/module/overlays/Path.js.map +1 -0
  40. package/dist/module/overlays/Polygon.js +51 -0
  41. package/dist/module/overlays/Polygon.js.map +1 -0
  42. package/dist/module/overlays/Polyline.js +60 -0
  43. package/dist/module/overlays/Polyline.js.map +1 -0
  44. package/dist/module/overlays/index.js +11 -0
  45. package/dist/module/overlays/index.js.map +1 -0
  46. package/dist/module/package.json +1 -0
  47. package/dist/module/specs/GraniteNaverMapViewNativeComponent.ts +352 -0
  48. package/dist/module/types/Coord.js +2 -0
  49. package/dist/module/types/Coord.js.map +1 -0
  50. package/dist/module/types/index.js +29 -0
  51. package/dist/module/types/index.js.map +1 -0
  52. package/dist/typescript/NaverMapView.d.ts +41 -0
  53. package/dist/typescript/index.d.ts +3 -0
  54. package/dist/typescript/internals/colorUtils.d.ts +10 -0
  55. package/dist/typescript/internals/context.d.ts +8 -0
  56. package/dist/typescript/internals/id.d.ts +1 -0
  57. package/dist/typescript/internals/useMapOverlay.d.ts +15 -0
  58. package/dist/typescript/internals/usePreservedReference.d.ts +6 -0
  59. package/dist/typescript/overlays/ArrowheadPath.d.ts +11 -0
  60. package/dist/typescript/overlays/Circle.d.ts +10 -0
  61. package/dist/typescript/overlays/GroundOverlay.d.ts +11 -0
  62. package/dist/typescript/overlays/InfoWindow.d.ts +14 -0
  63. package/dist/typescript/overlays/Marker.d.ts +16 -0
  64. package/dist/typescript/overlays/Path.d.ts +15 -0
  65. package/dist/typescript/overlays/Polygon.d.ts +10 -0
  66. package/dist/typescript/overlays/Polyline.d.ts +11 -0
  67. package/dist/typescript/overlays/index.d.ts +16 -0
  68. package/dist/typescript/specs/GraniteNaverMapViewNativeComponent.d.ts +92 -0
  69. package/dist/typescript/types/Coord.d.ts +4 -0
  70. package/dist/typescript/types/index.d.ts +55 -0
  71. package/ios/GraniteNaverMap-Bridging-Header.h +20 -0
  72. package/ios/GraniteNaverMapProvider.swift +312 -0
  73. package/ios/GraniteNaverMapRegistry.swift +91 -0
  74. package/ios/GraniteNaverMapView.h +15 -0
  75. package/ios/GraniteNaverMapView.mm +390 -0
  76. package/ios/GraniteNaverMapViewImpl.swift +496 -0
  77. package/ios/GraniteNaverMapViewManager.m +67 -0
  78. package/ios/GraniteNaverMapViewManager.swift +133 -0
  79. package/ios/GraniteNaverMapViewWrapper.swift +215 -0
  80. package/ios/builtinProvider/BuiltInNaverMapProvider.swift +489 -0
  81. package/ios/builtinProvider/GraniteNaverMapMarkerData.swift +66 -0
  82. package/ios/builtinProvider/NMFMarker+Extension.swift +65 -0
  83. package/ios/builtinProvider/RCTConvert+NMFMapView.h +17 -0
  84. package/ios/builtinProvider/RCTConvert+NMFMapView.m +67 -0
  85. package/package.json +103 -0
  86. package/src/NaverMapView.tsx +168 -0
  87. package/src/index.tsx +3 -0
  88. package/src/internals/colorUtils.ts +697 -0
  89. package/src/internals/context.ts +14 -0
  90. package/src/internals/id.ts +9 -0
  91. package/src/internals/useMapOverlay.ts +59 -0
  92. package/src/internals/usePreservedReference.ts +41 -0
  93. package/src/overlays/ArrowheadPath.ts +71 -0
  94. package/src/overlays/Circle.ts +68 -0
  95. package/src/overlays/GroundOverlay.ts +62 -0
  96. package/src/overlays/InfoWindow.ts +68 -0
  97. package/src/overlays/Marker.ts +83 -0
  98. package/src/overlays/Path.ts +87 -0
  99. package/src/overlays/Polygon.ts +83 -0
  100. package/src/overlays/Polyline.ts +93 -0
  101. package/src/overlays/index.ts +23 -0
  102. package/src/specs/GraniteNaverMapViewNativeComponent.ts +352 -0
  103. package/src/types/Coord.ts +4 -0
  104. package/src/types/index.ts +78 -0
package/CHANGELOG.md ADDED
@@ -0,0 +1,7 @@
1
+ # @granite-js/naver-map
2
+
3
+ ## 1.0.0
4
+
5
+ ### Major Changes
6
+
7
+ - 260daab: feat: introduce support react native 0.84
@@ -0,0 +1,81 @@
1
+ require "json"
2
+
3
+ package = JSON.parse(File.read(File.join(__dir__, "package.json")))
4
+
5
+ # ============================================================
6
+ # GraniteNaverMap Default Provider Configuration
7
+ # ============================================================
8
+ # Priority: GRANITE_NAVER_MAP_DEFAULT_PROVIDER > GRANITE_DEFAULT_PROVIDER_ALL > true (default)
9
+ #
10
+ # Examples:
11
+ # Include default provider (default):
12
+ # pod install
13
+ #
14
+ # Exclude default provider for naver-map only:
15
+ # GRANITE_NAVER_MAP_DEFAULT_PROVIDER=false pod install
16
+ #
17
+ # Exclude default providers for all Granite packages:
18
+ # GRANITE_DEFAULT_PROVIDER_ALL=false pod install
19
+ #
20
+ # Exclude all but override naver-map to include:
21
+ # GRANITE_DEFAULT_PROVIDER_ALL=false GRANITE_NAVER_MAP_DEFAULT_PROVIDER=true pod install
22
+ # ============================================================
23
+ resolve_default_provider = lambda do |specific_key, fallback_key, default_value|
24
+ if ENV.key?(specific_key)
25
+ ENV[specific_key] == 'true'
26
+ elsif ENV.key?(fallback_key)
27
+ ENV[fallback_key] == 'true'
28
+ else
29
+ default_value
30
+ end
31
+ end
32
+
33
+ use_default_provider = resolve_default_provider.call(
34
+ 'GRANITE_NAVER_MAP_DEFAULT_PROVIDER',
35
+ 'GRANITE_DEFAULT_PROVIDER_ALL',
36
+ true
37
+ )
38
+
39
+ # Exclude NMapsMap-dependent files when not using default provider
40
+ # All NMapsMap-dependent files are in ios/builtinProvider/ directory
41
+ exclude_patterns = []
42
+ unless use_default_provider
43
+ exclude_patterns << "ios/builtinProvider/**/*"
44
+ end
45
+
46
+ Pod::Spec.new do |s|
47
+ s.name = "GraniteNaverMap"
48
+ s.version = package["version"]
49
+ s.summary = package["description"]
50
+ s.homepage = package["homepage"]
51
+ s.license = package["license"]
52
+ s.authors = package["author"]
53
+
54
+ s.platforms = { :ios => min_ios_version_supported }
55
+ s.source = { :git => "https://github.com/toss/granite.git", :tag => "#{s.version}" }
56
+
57
+ s.source_files = "ios/**/*.{h,m,mm,swift}"
58
+ s.exclude_files = exclude_patterns if exclude_patterns.any?
59
+
60
+ # Preprocessor definitions for conditional compilation
61
+ preprocessor_defs = ['$(inherited)']
62
+ preprocessor_defs << 'GRANITE_NAVER_MAP_DEFAULT_PROVIDER=1' if use_default_provider
63
+
64
+ # Swift Active Compilation Conditions
65
+ swift_flags = ['$(inherited)']
66
+ swift_flags << 'GRANITE_NAVER_MAP_DEFAULT_PROVIDER' if use_default_provider
67
+
68
+ s.pod_target_xcconfig = {
69
+ 'CLANG_ENABLE_MODULES' => 'YES',
70
+ 'DEFINES_MODULE' => 'YES',
71
+ 'SWIFT_OBJC_INTERFACE_HEADER_NAME' => 'GraniteNaverMap-Swift.h',
72
+ 'GCC_PREPROCESSOR_DEFINITIONS' => preprocessor_defs.join(' '),
73
+ 'SWIFT_ACTIVE_COMPILATION_CONDITIONS' => swift_flags.join(' ')
74
+ }
75
+
76
+ # React Native modules dependencies (Fabric/TurboModule)
77
+ install_modules_dependencies(s)
78
+
79
+ # Naver Maps SDK dependency (only when using default provider)
80
+ s.dependency "NMapsMap", "~> 3.23.0" if use_default_provider
81
+ end
@@ -0,0 +1,160 @@
1
+ buildscript {
2
+ ext.getExtOrDefault = {name ->
3
+ return rootProject.ext.has(name) ? rootProject.ext.get(name) : project.properties['GraniteNaverMap_' + name]
4
+ }
5
+
6
+ repositories {
7
+ google()
8
+ mavenCentral()
9
+ }
10
+
11
+ dependencies {
12
+ classpath "com.android.tools.build:gradle:8.7.2"
13
+ // noinspection DifferentKotlinGradleVersion
14
+ classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:${getExtOrDefault('kotlinVersion')}"
15
+ }
16
+ }
17
+
18
+
19
+ apply plugin: "com.android.library"
20
+ apply plugin: "kotlin-android"
21
+
22
+ apply plugin: "com.facebook.react"
23
+
24
+ def getExtOrIntegerDefault(name) {
25
+ return rootProject.ext.has(name) ? rootProject.ext.get(name) : (project.properties["GraniteNaverMap_" + name]).toInteger()
26
+ }
27
+
28
+ // ============================================================
29
+ // GraniteNaverMap Default Provider Configuration
30
+ // ============================================================
31
+ // Priority: Environment Variable > gradle.properties > default (true)
32
+ //
33
+ // Environment Variables:
34
+ // GRANITE_NAVER_MAP_DEFAULT_PROVIDER - NaverMap specific override
35
+ // GRANITE_DEFAULT_PROVIDER_ALL - Global default for all Granite packages
36
+ //
37
+ // gradle.properties (alternative):
38
+ // GRANITE_NAVER_MAP_DEFAULT_PROVIDER=false
39
+ // GRANITE_DEFAULT_PROVIDER_ALL=false
40
+ //
41
+ // Examples:
42
+ // Include default provider (default):
43
+ // ./gradlew assembleDebug
44
+ //
45
+ // Exclude default provider for naver-map only (env var):
46
+ // GRANITE_NAVER_MAP_DEFAULT_PROVIDER=false ./gradlew assembleDebug
47
+ //
48
+ // Exclude default provider via gradle.properties:
49
+ // # In gradle.properties:
50
+ // GRANITE_NAVER_MAP_DEFAULT_PROVIDER=false
51
+ //
52
+ // Exclude all but override naver-map to include:
53
+ // GRANITE_DEFAULT_PROVIDER_ALL=false GRANITE_NAVER_MAP_DEFAULT_PROVIDER=true ./gradlew assembleDebug
54
+ // ============================================================
55
+ def resolveDefaultProvider(String specificKey, String fallbackKey, boolean defaultValue) {
56
+ // Priority: Environment Variable > gradle.properties > default
57
+
58
+ // Check specific key
59
+ def specificEnvValue = System.getenv(specificKey)
60
+ if (specificEnvValue != null) {
61
+ return specificEnvValue == 'true'
62
+ }
63
+ def specificPropValue = project.findProperty(specificKey)
64
+ if (specificPropValue != null) {
65
+ return specificPropValue.toString() == 'true'
66
+ }
67
+
68
+ // Check fallback key
69
+ def fallbackEnvValue = System.getenv(fallbackKey)
70
+ if (fallbackEnvValue != null) {
71
+ return fallbackEnvValue == 'true'
72
+ }
73
+ def fallbackPropValue = project.findProperty(fallbackKey)
74
+ if (fallbackPropValue != null) {
75
+ return fallbackPropValue.toString() == 'true'
76
+ }
77
+
78
+ return defaultValue
79
+ }
80
+
81
+ def includeDefaultProvider = resolveDefaultProvider(
82
+ 'GRANITE_NAVER_MAP_DEFAULT_PROVIDER',
83
+ 'GRANITE_DEFAULT_PROVIDER_ALL',
84
+ true
85
+ )
86
+
87
+ android {
88
+ namespace "run.granite.navermap"
89
+
90
+ compileSdkVersion getExtOrIntegerDefault("compileSdkVersion")
91
+
92
+ defaultConfig {
93
+ minSdkVersion getExtOrIntegerDefault("minSdkVersion")
94
+ targetSdkVersion getExtOrIntegerDefault("targetSdkVersion")
95
+
96
+ // Pass build config flag for conditional compilation
97
+ buildConfigField "boolean", "INCLUDE_DEFAULT_PROVIDER", "${includeDefaultProvider}"
98
+ }
99
+
100
+ buildFeatures {
101
+ buildConfig true
102
+ }
103
+
104
+ buildTypes {
105
+ release {
106
+ minifyEnabled false
107
+ }
108
+ }
109
+
110
+ lintOptions {
111
+ disable "GradleCompatible"
112
+ }
113
+
114
+ compileOptions {
115
+ sourceCompatibility JavaVersion.VERSION_1_8
116
+ targetCompatibility JavaVersion.VERSION_1_8
117
+ }
118
+
119
+ sourceSets {
120
+ main {
121
+ java.srcDirs += [
122
+ "generated/java",
123
+ "generated/jni"
124
+ ]
125
+
126
+ // Conditionally include the builtinProvider directory containing BuiltInGraniteNaverMapProvider
127
+ if (includeDefaultProvider) {
128
+ java.srcDirs += "src/builtinProvider/java"
129
+ }
130
+
131
+ // Include the appropriate ViewManager based on architecture
132
+ def isNewArchitectureEnabled = rootProject.findProperty("newArchEnabled")?.toBoolean() ?: false
133
+ if (isNewArchitectureEnabled) {
134
+ java.srcDirs += "src/newarch/java"
135
+ } else {
136
+ java.srcDirs += "src/oldarch/java"
137
+ }
138
+ }
139
+ }
140
+ }
141
+
142
+ repositories {
143
+ mavenCentral()
144
+ google()
145
+ maven {
146
+ url 'https://repository.map.naver.com/archive/maven'
147
+ }
148
+ }
149
+
150
+ def kotlin_version = getExtOrDefault("kotlinVersion")
151
+
152
+ dependencies {
153
+ implementation "com.facebook.react:react-android"
154
+ implementation "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version"
155
+
156
+ // Naver Maps SDK (only included when default provider is enabled)
157
+ if (includeDefaultProvider) {
158
+ implementation "com.naver.maps:map-sdk:3.21.0"
159
+ }
160
+ }
@@ -0,0 +1,5 @@
1
+ GraniteImage_kotlinVersion=2.0.21
2
+ GraniteImage_minSdkVersion=24
3
+ GraniteImage_targetSdkVersion=34
4
+ GraniteImage_compileSdkVersion=35
5
+ GraniteImage_ndkVersion=27.1.12297006