@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.
- package/CHANGELOG.md +7 -0
- package/GraniteNaverMap.podspec +81 -0
- package/android/build.gradle +160 -0
- package/android/gradle.properties +5 -0
- package/android/src/builtinProvider/java/run/granite/navermap/builtinProvider/BuiltInGraniteNaverMapProvider.kt +549 -0
- package/android/src/main/AndroidManifest.xml +3 -0
- package/android/src/main/java/run/granite/navermap/GraniteNaverMapEvents.kt +91 -0
- package/android/src/main/java/run/granite/navermap/GraniteNaverMapPackage.kt +16 -0
- package/android/src/main/java/run/granite/navermap/GraniteNaverMapProvider.kt +242 -0
- package/android/src/main/java/run/granite/navermap/GraniteNaverMapRegistry.kt +116 -0
- package/android/src/main/java/run/granite/navermap/GraniteNaverMapView.kt +732 -0
- package/android/src/newarch/java/run/granite/navermap/GraniteNaverMapViewManager.kt +446 -0
- package/android/src/oldarch/java/run/granite/navermap/GraniteNaverMapViewManager.kt +249 -0
- package/dist/module/NaverMapView.js +110 -0
- package/dist/module/NaverMapView.js.map +1 -0
- package/dist/module/index.js +6 -0
- package/dist/module/index.js.map +1 -0
- package/dist/module/internals/colorUtils.js +624 -0
- package/dist/module/internals/colorUtils.js.map +1 -0
- package/dist/module/internals/context.js +8 -0
- package/dist/module/internals/context.js.map +1 -0
- package/dist/module/internals/id.js +10 -0
- package/dist/module/internals/id.js.map +1 -0
- package/dist/module/internals/useMapOverlay.js +44 -0
- package/dist/module/internals/useMapOverlay.js.map +1 -0
- package/dist/module/internals/usePreservedReference.js +36 -0
- package/dist/module/internals/usePreservedReference.js.map +1 -0
- package/dist/module/overlays/ArrowheadPath.js +37 -0
- package/dist/module/overlays/ArrowheadPath.js.map +1 -0
- package/dist/module/overlays/Circle.js +35 -0
- package/dist/module/overlays/Circle.js.map +1 -0
- package/dist/module/overlays/GroundOverlay.js +30 -0
- package/dist/module/overlays/GroundOverlay.js.map +1 -0
- package/dist/module/overlays/InfoWindow.js +32 -0
- package/dist/module/overlays/InfoWindow.js.map +1 -0
- package/dist/module/overlays/Marker.js +37 -0
- package/dist/module/overlays/Marker.js.map +1 -0
- package/dist/module/overlays/Path.js +41 -0
- package/dist/module/overlays/Path.js.map +1 -0
- package/dist/module/overlays/Polygon.js +51 -0
- package/dist/module/overlays/Polygon.js.map +1 -0
- package/dist/module/overlays/Polyline.js +60 -0
- package/dist/module/overlays/Polyline.js.map +1 -0
- package/dist/module/overlays/index.js +11 -0
- package/dist/module/overlays/index.js.map +1 -0
- package/dist/module/package.json +1 -0
- package/dist/module/specs/GraniteNaverMapViewNativeComponent.ts +352 -0
- package/dist/module/types/Coord.js +2 -0
- package/dist/module/types/Coord.js.map +1 -0
- package/dist/module/types/index.js +29 -0
- package/dist/module/types/index.js.map +1 -0
- package/dist/typescript/NaverMapView.d.ts +41 -0
- package/dist/typescript/index.d.ts +3 -0
- package/dist/typescript/internals/colorUtils.d.ts +10 -0
- package/dist/typescript/internals/context.d.ts +8 -0
- package/dist/typescript/internals/id.d.ts +1 -0
- package/dist/typescript/internals/useMapOverlay.d.ts +15 -0
- package/dist/typescript/internals/usePreservedReference.d.ts +6 -0
- package/dist/typescript/overlays/ArrowheadPath.d.ts +11 -0
- package/dist/typescript/overlays/Circle.d.ts +10 -0
- package/dist/typescript/overlays/GroundOverlay.d.ts +11 -0
- package/dist/typescript/overlays/InfoWindow.d.ts +14 -0
- package/dist/typescript/overlays/Marker.d.ts +16 -0
- package/dist/typescript/overlays/Path.d.ts +15 -0
- package/dist/typescript/overlays/Polygon.d.ts +10 -0
- package/dist/typescript/overlays/Polyline.d.ts +11 -0
- package/dist/typescript/overlays/index.d.ts +16 -0
- package/dist/typescript/specs/GraniteNaverMapViewNativeComponent.d.ts +92 -0
- package/dist/typescript/types/Coord.d.ts +4 -0
- package/dist/typescript/types/index.d.ts +55 -0
- package/ios/GraniteNaverMap-Bridging-Header.h +20 -0
- package/ios/GraniteNaverMapProvider.swift +312 -0
- package/ios/GraniteNaverMapRegistry.swift +91 -0
- package/ios/GraniteNaverMapView.h +15 -0
- package/ios/GraniteNaverMapView.mm +390 -0
- package/ios/GraniteNaverMapViewImpl.swift +496 -0
- package/ios/GraniteNaverMapViewManager.m +67 -0
- package/ios/GraniteNaverMapViewManager.swift +133 -0
- package/ios/GraniteNaverMapViewWrapper.swift +215 -0
- package/ios/builtinProvider/BuiltInNaverMapProvider.swift +489 -0
- package/ios/builtinProvider/GraniteNaverMapMarkerData.swift +66 -0
- package/ios/builtinProvider/NMFMarker+Extension.swift +65 -0
- package/ios/builtinProvider/RCTConvert+NMFMapView.h +17 -0
- package/ios/builtinProvider/RCTConvert+NMFMapView.m +67 -0
- package/package.json +103 -0
- package/src/NaverMapView.tsx +168 -0
- package/src/index.tsx +3 -0
- package/src/internals/colorUtils.ts +697 -0
- package/src/internals/context.ts +14 -0
- package/src/internals/id.ts +9 -0
- package/src/internals/useMapOverlay.ts +59 -0
- package/src/internals/usePreservedReference.ts +41 -0
- package/src/overlays/ArrowheadPath.ts +71 -0
- package/src/overlays/Circle.ts +68 -0
- package/src/overlays/GroundOverlay.ts +62 -0
- package/src/overlays/InfoWindow.ts +68 -0
- package/src/overlays/Marker.ts +83 -0
- package/src/overlays/Path.ts +87 -0
- package/src/overlays/Polygon.ts +83 -0
- package/src/overlays/Polyline.ts +93 -0
- package/src/overlays/index.ts +23 -0
- package/src/specs/GraniteNaverMapViewNativeComponent.ts +352 -0
- package/src/types/Coord.ts +4 -0
- package/src/types/index.ts +78 -0
package/CHANGELOG.md
ADDED
|
@@ -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
|
+
}
|