react-native-map4d-map-dtqg 0.1.4 → 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 (217) hide show
  1. package/README.md +58 -0
  2. package/android/.gradle/9.2.0/fileHashes/fileHashes.lock +0 -0
  3. package/android/.gradle/buildOutputCleanup/buildOutputCleanup.lock +0 -0
  4. package/android/.gradle/buildOutputCleanup/cache.properties +1 -1
  5. package/android/build.gradle +2 -2
  6. package/android/src/main/java/com/reactnativemap4dmap/Map4dMapModule.java +39 -27
  7. package/ios/Map4dMap.h +12 -3
  8. package/ios/Map4dMap.m +108 -3
  9. package/ios/Map4dMapTurbo.mm +16 -0
  10. package/ios/RMFCircleManager.m +40 -68
  11. package/ios/RMFDirectionsRendererManager.m +26 -24
  12. package/ios/RMFMapViewManager.m +64 -149
  13. package/ios/RMFMarkerManager.m +36 -64
  14. package/ios/RMFPOIManager.m +40 -74
  15. package/ios/RMFPolygonManager.m +38 -60
  16. package/ios/RMFPolylineManager.m +36 -58
  17. package/ios/building/RMFBuildingManager.m +36 -64
  18. package/lib/commonjs/components/MFBanDoSo/constants.js +27 -0
  19. package/lib/commonjs/components/MFBanDoSo/constants.js.map +1 -0
  20. package/lib/commonjs/components/MFBanDoSo/helpers.js +200 -0
  21. package/lib/commonjs/components/MFBanDoSo/helpers.js.map +1 -0
  22. package/lib/commonjs/components/MFBanDoSo/propTypes.js +18 -0
  23. package/lib/commonjs/components/MFBanDoSo/propTypes.js.map +1 -0
  24. package/lib/commonjs/components/MFBanDoSo/styles.js +328 -0
  25. package/lib/commonjs/components/MFBanDoSo/styles.js.map +1 -0
  26. package/lib/commonjs/components/MFBanDoSo/ui.js +220 -0
  27. package/lib/commonjs/components/MFBanDoSo/ui.js.map +1 -0
  28. package/lib/commonjs/components/MFBanDoSo.js +190 -73
  29. package/lib/commonjs/components/MFBanDoSo.js.map +1 -1
  30. package/lib/commonjs/components/MFBuilding.js +15 -90
  31. package/lib/commonjs/components/MFBuilding.js.map +1 -1
  32. package/lib/commonjs/components/MFCircle.js +20 -88
  33. package/lib/commonjs/components/MFCircle.js.map +1 -1
  34. package/lib/commonjs/components/MFDirectionsRenderer.js +15 -93
  35. package/lib/commonjs/components/MFDirectionsRenderer.js.map +1 -1
  36. package/lib/commonjs/components/MFMapView.js +50 -147
  37. package/lib/commonjs/components/MFMapView.js.map +1 -1
  38. package/lib/commonjs/components/MFMarker.js +15 -101
  39. package/lib/commonjs/components/MFMarker.js.map +1 -1
  40. package/lib/commonjs/components/MFPOI.js +17 -92
  41. package/lib/commonjs/components/MFPOI.js.map +1 -1
  42. package/lib/commonjs/components/MFPolygon.js +15 -87
  43. package/lib/commonjs/components/MFPolygon.js.map +1 -1
  44. package/lib/commonjs/components/MFPolyline.js +17 -87
  45. package/lib/commonjs/components/MFPolyline.js.map +1 -1
  46. package/lib/commonjs/components/MFTileOverlay.js +7 -15
  47. package/lib/commonjs/components/MFTileOverlay.js.map +1 -1
  48. package/lib/commonjs/components/Map4dMapView.js +1 -4
  49. package/lib/commonjs/components/Map4dMapView.js.map +1 -1
  50. package/lib/commonjs/components/extends/AreaFocusManager.js +4 -38
  51. package/lib/commonjs/components/extends/AreaFocusManager.js.map +1 -1
  52. package/lib/commonjs/components/extends/AreaFocuser.js +1 -17
  53. package/lib/commonjs/components/extends/AreaFocuser.js.map +1 -1
  54. package/lib/commonjs/components/extends/BoundHelper.js +0 -6
  55. package/lib/commonjs/components/extends/BoundHelper.js.map +1 -1
  56. package/lib/commonjs/components/extends/area/AreaFocusAreas.js +0 -37
  57. package/lib/commonjs/components/extends/area/AreaFocusAreas.js.map +1 -1
  58. package/lib/commonjs/components/extends/area/AreaFocusGeometryUtils.js +1 -35
  59. package/lib/commonjs/components/extends/area/AreaFocusGeometryUtils.js.map +1 -1
  60. package/lib/commonjs/components/extends/area/AreaFocusSession.js +0 -18
  61. package/lib/commonjs/components/extends/area/AreaFocusSession.js.map +1 -1
  62. package/lib/commonjs/components/extends/area/AreaFocusTypes.js +2 -3
  63. package/lib/commonjs/components/extends/area/AreaFocusTypes.js.map +1 -1
  64. package/lib/commonjs/components/internal/DefaultRoadmapStyle.js +1 -2
  65. package/lib/commonjs/components/internal/DefaultRoadmapStyle.js.map +1 -1
  66. package/lib/commonjs/components/internal/GeojsonStyleUtils.js +20 -31
  67. package/lib/commonjs/components/internal/GeojsonStyleUtils.js.map +1 -1
  68. package/lib/commonjs/index.js +0 -11
  69. package/lib/commonjs/index.js.map +1 -1
  70. package/lib/commonjs/native/Map4dMapNativeModule.js +10 -0
  71. package/lib/commonjs/native/Map4dMapNativeModule.js.map +1 -0
  72. package/lib/commonjs/native/NativeModuleResolver.js +35 -0
  73. package/lib/commonjs/native/NativeModuleResolver.js.map +1 -0
  74. package/lib/commonjs/native/ViewManagerCommand.js +67 -0
  75. package/lib/commonjs/native/ViewManagerCommand.js.map +1 -0
  76. package/lib/commonjs/package.json +1 -0
  77. package/lib/commonjs/specs/NativeMap4dMap.js +9 -0
  78. package/lib/commonjs/specs/NativeMap4dMap.js.map +1 -0
  79. package/lib/module/components/MFBanDoSo/constants.js +22 -0
  80. package/lib/module/components/MFBanDoSo/constants.js.map +1 -0
  81. package/lib/module/components/MFBanDoSo/helpers.js +188 -0
  82. package/lib/module/components/MFBanDoSo/helpers.js.map +1 -0
  83. package/lib/module/components/MFBanDoSo/propTypes.js +14 -0
  84. package/lib/module/components/MFBanDoSo/propTypes.js.map +1 -0
  85. package/lib/module/components/MFBanDoSo/styles.js +325 -0
  86. package/lib/module/components/MFBanDoSo/styles.js.map +1 -0
  87. package/lib/module/components/MFBanDoSo/ui.js +213 -0
  88. package/lib/module/components/MFBanDoSo/ui.js.map +1 -0
  89. package/lib/module/components/MFBanDoSo.js +192 -63
  90. package/lib/module/components/MFBanDoSo.js.map +1 -1
  91. package/lib/module/components/MFBuilding.js +17 -82
  92. package/lib/module/components/MFBuilding.js.map +1 -1
  93. package/lib/module/components/MFCircle.js +22 -80
  94. package/lib/module/components/MFCircle.js.map +1 -1
  95. package/lib/module/components/MFDirectionsRenderer.js +16 -85
  96. package/lib/module/components/MFDirectionsRenderer.js.map +1 -1
  97. package/lib/module/components/MFMapView.js +51 -136
  98. package/lib/module/components/MFMapView.js.map +1 -1
  99. package/lib/module/components/MFMarker.js +17 -92
  100. package/lib/module/components/MFMarker.js.map +1 -1
  101. package/lib/module/components/MFPOI.js +19 -84
  102. package/lib/module/components/MFPOI.js.map +1 -1
  103. package/lib/module/components/MFPolygon.js +17 -79
  104. package/lib/module/components/MFPolygon.js.map +1 -1
  105. package/lib/module/components/MFPolyline.js +19 -79
  106. package/lib/module/components/MFPolyline.js.map +1 -1
  107. package/lib/module/components/MFTileOverlay.js +10 -9
  108. package/lib/module/components/MFTileOverlay.js.map +1 -1
  109. package/lib/module/components/Map4dMapView.js +2 -0
  110. package/lib/module/components/Map4dMapView.js.map +1 -1
  111. package/lib/module/components/extends/AreaFocusManager.js +6 -32
  112. package/lib/module/components/extends/AreaFocusManager.js.map +1 -1
  113. package/lib/module/components/extends/AreaFocuser.js +3 -15
  114. package/lib/module/components/extends/AreaFocuser.js.map +1 -1
  115. package/lib/module/components/extends/BoundHelper.js +2 -5
  116. package/lib/module/components/extends/BoundHelper.js.map +1 -1
  117. package/lib/module/components/extends/area/AreaFocusAreas.js +2 -33
  118. package/lib/module/components/extends/area/AreaFocusAreas.js.map +1 -1
  119. package/lib/module/components/extends/area/AreaFocusGeometryUtils.js +2 -32
  120. package/lib/module/components/extends/area/AreaFocusGeometryUtils.js.map +1 -1
  121. package/lib/module/components/extends/area/AreaFocusSession.js +2 -17
  122. package/lib/module/components/extends/area/AreaFocusSession.js.map +1 -1
  123. package/lib/module/components/extends/area/AreaFocusTypes.js +3 -0
  124. package/lib/module/components/extends/area/AreaFocusTypes.js.map +1 -1
  125. package/lib/module/components/internal/DefaultRoadmapStyle.js +2 -0
  126. package/lib/module/components/internal/DefaultRoadmapStyle.js.map +1 -1
  127. package/lib/module/components/internal/GeojsonStyleUtils.js +21 -28
  128. package/lib/module/components/internal/GeojsonStyleUtils.js.map +1 -1
  129. package/lib/module/index.js +2 -0
  130. package/lib/module/index.js.map +1 -1
  131. package/lib/module/native/Map4dMapNativeModule.js +5 -0
  132. package/lib/module/native/Map4dMapNativeModule.js.map +1 -0
  133. package/lib/module/native/NativeModuleResolver.js +29 -0
  134. package/lib/module/native/NativeModuleResolver.js.map +1 -0
  135. package/lib/module/native/ViewManagerCommand.js +61 -0
  136. package/lib/module/native/ViewManagerCommand.js.map +1 -0
  137. package/lib/module/specs/NativeMap4dMap.js +5 -0
  138. package/lib/module/specs/NativeMap4dMap.js.map +1 -0
  139. package/lib/typescript/components/MFBanDoSo/constants.d.ts +8 -0
  140. package/lib/typescript/components/MFBanDoSo/constants.d.ts.map +1 -0
  141. package/lib/typescript/components/MFBanDoSo/helpers.d.ts +14 -0
  142. package/lib/typescript/components/MFBanDoSo/helpers.d.ts.map +1 -0
  143. package/lib/typescript/components/MFBanDoSo/propTypes.d.ts +2 -0
  144. package/lib/typescript/components/MFBanDoSo/propTypes.d.ts.map +1 -0
  145. package/lib/typescript/components/MFBanDoSo/styles.d.ts +462 -0
  146. package/lib/typescript/components/MFBanDoSo/styles.d.ts.map +1 -0
  147. package/lib/typescript/components/MFBanDoSo/ui.d.ts +30 -0
  148. package/lib/typescript/components/MFBanDoSo/ui.d.ts.map +1 -0
  149. package/lib/typescript/components/MFBanDoSo.d.ts +37 -0
  150. package/lib/typescript/components/MFBanDoSo.d.ts.map +1 -0
  151. package/lib/typescript/components/MFBuilding.d.ts +24 -0
  152. package/lib/typescript/components/MFBuilding.d.ts.map +1 -0
  153. package/lib/typescript/components/MFCircle.d.ts +24 -0
  154. package/lib/typescript/components/MFCircle.d.ts.map +1 -0
  155. package/lib/typescript/components/MFDirectionsRenderer.d.ts +19 -0
  156. package/lib/typescript/components/MFDirectionsRenderer.d.ts.map +1 -0
  157. package/lib/typescript/components/MFMapView.d.ts +66 -0
  158. package/lib/typescript/components/MFMapView.d.ts.map +1 -0
  159. package/lib/typescript/components/MFMarker.d.ts +26 -0
  160. package/lib/typescript/components/MFMarker.d.ts.map +1 -0
  161. package/lib/typescript/components/MFPOI.d.ts +24 -0
  162. package/lib/typescript/components/MFPOI.d.ts.map +1 -0
  163. package/lib/typescript/components/MFPolygon.d.ts +24 -0
  164. package/lib/typescript/components/MFPolygon.d.ts.map +1 -0
  165. package/lib/typescript/components/MFPolyline.d.ts +24 -0
  166. package/lib/typescript/components/MFPolyline.d.ts.map +1 -0
  167. package/lib/typescript/components/MFTileOverlay.d.ts +12 -0
  168. package/lib/typescript/components/MFTileOverlay.d.ts.map +1 -0
  169. package/lib/typescript/components/Map4dMapView.d.ts +8 -7
  170. package/lib/typescript/components/Map4dMapView.d.ts.map +1 -0
  171. package/lib/typescript/components/extends/AreaFocusManager.d.ts +34 -0
  172. package/lib/typescript/components/extends/AreaFocusManager.d.ts.map +1 -0
  173. package/lib/typescript/components/extends/AreaFocuser.d.ts +15 -0
  174. package/lib/typescript/components/extends/AreaFocuser.d.ts.map +1 -0
  175. package/lib/typescript/components/extends/BoundHelper.d.ts +11 -0
  176. package/lib/typescript/components/extends/BoundHelper.d.ts.map +1 -0
  177. package/lib/typescript/components/extends/area/AreaFocusAreas.d.ts +58 -0
  178. package/lib/typescript/components/extends/area/AreaFocusAreas.d.ts.map +1 -0
  179. package/lib/typescript/components/extends/area/AreaFocusGeometryUtils.d.ts +19 -0
  180. package/lib/typescript/components/extends/area/AreaFocusGeometryUtils.d.ts.map +1 -0
  181. package/lib/typescript/components/extends/area/AreaFocusSession.d.ts +14 -0
  182. package/lib/typescript/components/extends/area/AreaFocusSession.d.ts.map +1 -0
  183. package/lib/typescript/components/extends/area/AreaFocusTypes.d.ts +40 -0
  184. package/lib/typescript/components/extends/area/AreaFocusTypes.d.ts.map +1 -0
  185. package/lib/typescript/components/internal/DefaultRoadmapStyle.d.ts +820 -0
  186. package/lib/typescript/components/internal/DefaultRoadmapStyle.d.ts.map +1 -0
  187. package/lib/typescript/components/internal/GeojsonStyleUtils.d.ts +3 -0
  188. package/lib/typescript/components/internal/GeojsonStyleUtils.d.ts.map +1 -0
  189. package/lib/typescript/index.d.ts +13 -0
  190. package/lib/typescript/index.d.ts.map +1 -0
  191. package/lib/typescript/native/Map4dMapNativeModule.d.ts +2 -0
  192. package/lib/typescript/native/Map4dMapNativeModule.d.ts.map +1 -0
  193. package/lib/typescript/native/NativeModuleResolver.d.ts +3 -0
  194. package/lib/typescript/native/NativeModuleResolver.d.ts.map +1 -0
  195. package/lib/typescript/native/ViewManagerCommand.d.ts +11 -0
  196. package/lib/typescript/native/ViewManagerCommand.d.ts.map +1 -0
  197. package/package.json +27 -11
  198. package/src/components/MFBanDoSo/constants.js +32 -0
  199. package/src/components/MFBanDoSo/helpers.js +273 -0
  200. package/src/components/MFBanDoSo/propTypes.js +14 -0
  201. package/src/components/MFBanDoSo/styles.js +316 -0
  202. package/src/components/MFBanDoSo/ui.js +230 -0
  203. package/src/components/MFBanDoSo.js +268 -78
  204. package/src/components/MFBuilding.js +8 -48
  205. package/src/components/MFCircle.js +8 -48
  206. package/src/components/MFDirectionsRenderer.js +8 -47
  207. package/src/components/MFMapView.js +31 -53
  208. package/src/components/MFMarker.js +9 -50
  209. package/src/components/MFPOI.js +8 -48
  210. package/src/components/MFPolygon.js +8 -48
  211. package/src/components/MFPolyline.js +8 -48
  212. package/src/components/internal/GeojsonStyleUtils.js +3 -0
  213. package/src/native/Map4dMapNativeModule.js +3 -0
  214. package/src/native/NativeModuleResolver.js +33 -0
  215. package/src/native/ViewManagerCommand.js +82 -0
  216. package/src/specs/NativeMap4dMap.js +12 -0
  217. package/ios/Map4dMapViewManager.m +0 -34
@@ -4,13 +4,9 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.AreaFocusManager = void 0;
7
-
8
7
  var _AreaFocusSession = require("./area/AreaFocusSession");
9
-
10
8
  var _AreaFocusAreas = require("./area/AreaFocusAreas");
11
-
12
9
  var _AreaFocusTypes = require("./area/AreaFocusTypes");
13
-
14
10
  /**
15
11
  * @typedef {'normal' | 'highlight'} FocusDisplay
16
12
  */
@@ -31,6 +27,7 @@ var _AreaFocusTypes = require("./area/AreaFocusTypes");
31
27
  * @property {FocusDisplay=} display
32
28
  * @property {FocusPadding=} padding
33
29
  */
30
+
34
31
  const VIETNAM_MAINLAND_BOUNDS = {
35
32
  minLat: 8.18,
36
33
  minLng: 102.14,
@@ -45,31 +42,25 @@ const FOCUS_TYPE_TO_INDUSTRIAL_ECONOMIC_TYPE = {
45
42
  nonTariffZone: _AreaFocusTypes.IndustrialEconomicType.NON_TARIFF_ZONE,
46
43
  otherZoneModel: _AreaFocusTypes.IndustrialEconomicType.OTHER_ZONE_MODEL
47
44
  };
48
-
49
45
  class AreaFocusManager {
50
46
  constructor(mapView) {
51
47
  this.mapView = mapView;
52
48
  this.currentSession = null;
53
49
  }
54
-
55
50
  async _focusArea(area, options) {
56
51
  this.clear();
57
-
58
52
  if (!area) {
59
53
  return null;
60
54
  }
61
-
62
55
  try {
63
56
  if (!(await area.load())) {
64
57
  return null;
65
58
  }
66
-
67
- const focusOptions = { ...(options || {})
59
+ const focusOptions = {
60
+ ...(options || {})
68
61
  };
69
62
  const bounds = area.getBounds() || VIETNAM_MAINLAND_BOUNDS;
70
-
71
63
  this._fitBounds(bounds, focusOptions);
72
-
73
64
  this.currentSession = new _AreaFocusSession.AreaFocusSession(this.mapView, area, focusOptions);
74
65
  this.currentSession.render();
75
66
  return this.currentSession;
@@ -78,17 +69,13 @@ class AreaFocusManager {
78
69
  return null;
79
70
  }
80
71
  }
81
-
82
72
  async _focusProvince(options) {
83
73
  const provinceId = this._getProvinceId(options);
84
-
85
74
  const provinceName = this._getProvinceName(options);
86
-
87
75
  if (provinceId == null && !provinceName) {
88
76
  this.clear();
89
77
  return null;
90
78
  }
91
-
92
79
  const area = provinceId != null ? new _AreaFocusAreas.ProvinceArea(provinceId) : _AreaFocusAreas.ProvinceArea.fromName(provinceName);
93
80
  const display = options && options.display === 'highlight' ? 'highlight' : 'normal';
94
81
  return this._focusArea(area, {
@@ -96,66 +83,54 @@ class AreaFocusManager {
96
83
  padding: options ? options.padding : undefined
97
84
  });
98
85
  }
86
+
99
87
  /**
100
88
  * @param {FocusOptions | null | undefined} focusOptions
101
89
  * @returns {Promise<AreaFocusSession | null>}
102
90
  */
103
-
104
-
105
91
  async focus(focusOptions) {
106
92
  if (focusOptions == null) {
107
93
  this.clear();
108
94
  return null;
109
95
  }
110
-
111
96
  if (focusOptions.type === 'province') {
112
97
  return this._focusProvince(focusOptions);
113
98
  }
114
-
115
99
  if (focusOptions.id == null) {
116
100
  console.warn('Focus options must include an id for non-province types:', focusOptions);
117
101
  this.clear();
118
102
  return null;
119
103
  }
120
-
121
104
  const industrialEconomicType = this._getIndustrialEconomicType(focusOptions.type);
122
-
123
105
  if (industrialEconomicType != null) {
124
106
  return this._focusArea(new _AreaFocusAreas.IndustrialEconomicArea(industrialEconomicType, focusOptions.id), {
125
107
  display: focusOptions.display,
126
108
  padding: focusOptions.padding
127
109
  });
128
110
  }
129
-
130
111
  console.warn('Unsupported focus type:', focusOptions.type);
131
112
  return null;
132
113
  }
133
-
134
114
  _getIndustrialEconomicType(type) {
135
115
  if (typeof type === 'number') {
136
116
  const values = Object.values(_AreaFocusTypes.IndustrialEconomicType);
137
117
  return values.includes(type) ? type : null;
138
118
  }
139
-
140
119
  if (typeof type !== 'string') {
141
120
  return null;
142
121
  }
143
-
144
122
  return FOCUS_TYPE_TO_INDUSTRIAL_ECONOMIC_TYPE[type] || null;
145
123
  }
146
-
147
124
  clear() {
148
125
  if (this.currentSession) {
149
126
  this.currentSession.destroy();
150
127
  this.currentSession = null;
151
128
  }
152
129
  }
153
-
154
130
  _fitBounds(bounds, options) {
155
131
  if (!this.mapView || typeof this.mapView.fitBounds !== 'function' || !bounds) {
156
132
  return;
157
133
  }
158
-
159
134
  this.mapView.fitBounds({
160
135
  bounds: {
161
136
  southWest: {
@@ -170,36 +145,27 @@ class AreaFocusManager {
170
145
  padding: options ? options.padding : undefined
171
146
  });
172
147
  }
173
-
174
148
  _getProvinceName(options) {
175
149
  if (options == null || typeof options !== 'object') {
176
150
  return null;
177
151
  }
178
-
179
152
  if (typeof options.name === 'string') {
180
153
  const name = options.name.trim();
181
154
  return name.length > 0 ? name : null;
182
155
  }
183
-
184
156
  const optionKeys = Object.keys(options);
185
157
  const unsupportedKeys = optionKeys.filter(key => key !== 'type' && key !== 'id' && key !== 'name' && key !== 'display' && key !== 'padding');
186
-
187
158
  if (unsupportedKeys.length > 0) {
188
159
  console.warn(`[AreaFocusManager] focusProvince expects options like { type: 'province', name: 'Ha Noi', display: 'highlight' }. Unsupported keys: ${unsupportedKeys.join(', ')}`);
189
160
  }
190
-
191
161
  return null;
192
162
  }
193
-
194
163
  _getProvinceId(options) {
195
164
  if (options == null || typeof options !== 'object') {
196
165
  return null;
197
166
  }
198
-
199
167
  return typeof options.id === 'number' ? options.id : null;
200
168
  }
201
-
202
169
  }
203
-
204
170
  exports.AreaFocusManager = AreaFocusManager;
205
171
  //# sourceMappingURL=AreaFocusManager.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["VIETNAM_MAINLAND_BOUNDS","minLat","minLng","maxLat","maxLng","FOCUS_TYPE_TO_INDUSTRIAL_ECONOMIC_TYPE","industrialZone","IndustrialEconomicType","INDUSTRIAL_ZONE","economicZone","ECONOMIC_ZONE","ecoIndustrialZone","ECO_INDUSTRIAL_ZONE","freeTradeZone","FREE_TRADE_ZONE","nonTariffZone","NON_TARIFF_ZONE","otherZoneModel","OTHER_ZONE_MODEL","AreaFocusManager","constructor","mapView","currentSession","_focusArea","area","options","clear","load","focusOptions","bounds","getBounds","_fitBounds","AreaFocusSession","render","error","console","_focusProvince","provinceId","_getProvinceId","provinceName","_getProvinceName","ProvinceArea","fromName","display","padding","undefined","focus","type","id","warn","industrialEconomicType","_getIndustrialEconomicType","IndustrialEconomicArea","values","Object","includes","destroy","fitBounds","southWest","latitude","longitude","northEast","name","trim","length","optionKeys","keys","unsupportedKeys","filter","key","join"],"sources":["AreaFocusManager.js"],"sourcesContent":["import {AreaFocusSession} from './area/AreaFocusSession'\r\nimport {ProvinceArea, IndustrialEconomicArea} from './area/AreaFocusAreas'\r\nimport {IndustrialEconomicType} from './area/AreaFocusTypes'\r\n\r\n/**\r\n * @typedef {'normal' | 'highlight'} FocusDisplay\r\n */\r\n\r\n/**\r\n * @typedef {{left?: number, right?: number, top?: number, bottom?: number}} FocusPadding\r\n */\r\n\r\n/**\r\n * @typedef {'province' | 'industrialZone' | 'economicZone' | 'ecoIndustrialZone' | 'freeTradeZone' | 'nonTariffZone' | 'otherZoneModel' | number} FocusType\r\n */\r\n\r\n/**\r\n * @typedef {Object} FocusOptions\r\n * @property {FocusType} type\r\n * @property {number=} id\r\n * @property {string=} name\r\n * @property {FocusDisplay=} display\r\n * @property {FocusPadding=} padding\r\n */\r\n\r\nconst VIETNAM_MAINLAND_BOUNDS = {\r\n minLat: 8.18,\r\n minLng: 102.14,\r\n maxLat: 23.4,\r\n maxLng: 109.47,\r\n}\r\n\r\nconst FOCUS_TYPE_TO_INDUSTRIAL_ECONOMIC_TYPE = {\r\n industrialZone: IndustrialEconomicType.INDUSTRIAL_ZONE,\r\n economicZone: IndustrialEconomicType.ECONOMIC_ZONE,\r\n ecoIndustrialZone: IndustrialEconomicType.ECO_INDUSTRIAL_ZONE,\r\n freeTradeZone: IndustrialEconomicType.FREE_TRADE_ZONE,\r\n nonTariffZone: IndustrialEconomicType.NON_TARIFF_ZONE,\r\n otherZoneModel: IndustrialEconomicType.OTHER_ZONE_MODEL,\r\n}\r\n\r\nexport class AreaFocusManager {\r\n constructor(mapView) {\r\n this.mapView = mapView\r\n this.currentSession = null\r\n }\r\n\r\n async _focusArea(area, options) {\r\n this.clear()\r\n\r\n if (!area) {\r\n return null\r\n }\r\n\r\n try {\r\n if (!(await area.load())) {\r\n return null\r\n }\r\n\r\n const focusOptions = {...(options || {})}\r\n const bounds = area.getBounds() || VIETNAM_MAINLAND_BOUNDS\r\n\r\n this._fitBounds(bounds, focusOptions)\r\n\r\n this.currentSession = new AreaFocusSession(this.mapView, area, focusOptions)\r\n this.currentSession.render()\r\n\r\n return this.currentSession\r\n }\r\n catch (error) {\r\n console.error('Cannot focus area:', error)\r\n return null\r\n }\r\n }\r\n\r\n async _focusProvince(options) {\r\n const provinceId = this._getProvinceId(options)\r\n const provinceName = this._getProvinceName(options)\r\n\r\n if (provinceId == null && !provinceName) {\r\n this.clear()\r\n return null\r\n }\r\n\r\n const area = provinceId != null ? new ProvinceArea(provinceId) : ProvinceArea.fromName(provinceName)\r\n const display = options && options.display === 'highlight' ? 'highlight' : 'normal'\r\n\r\n return this._focusArea(area, {\r\n display,\r\n padding: options ? options.padding : undefined,\r\n })\r\n }\r\n\r\n /**\r\n * @param {FocusOptions | null | undefined} focusOptions\r\n * @returns {Promise<AreaFocusSession | null>}\r\n */\r\n async focus(focusOptions) {\r\n if (focusOptions == null) {\r\n this.clear()\r\n return null\r\n }\r\n\r\n if (focusOptions.type === 'province') {\r\n return this._focusProvince(focusOptions)\r\n }\r\n\r\n if (focusOptions.id == null) {\r\n console.warn('Focus options must include an id for non-province types:', focusOptions)\r\n this.clear()\r\n return null\r\n }\r\n\r\n const industrialEconomicType = this._getIndustrialEconomicType(focusOptions.type)\r\n\r\n if (industrialEconomicType != null) {\r\n return this._focusArea(new IndustrialEconomicArea(industrialEconomicType, focusOptions.id), {\r\n display: focusOptions.display,\r\n padding: focusOptions.padding,\r\n })\r\n }\r\n\r\n console.warn('Unsupported focus type:', focusOptions.type)\r\n return null\r\n }\r\n\r\n _getIndustrialEconomicType(type) {\r\n if (typeof type === 'number') {\r\n const values = Object.values(IndustrialEconomicType)\r\n return values.includes(type) ? type : null\r\n }\r\n\r\n if (typeof type !== 'string') {\r\n return null\r\n }\r\n\r\n return FOCUS_TYPE_TO_INDUSTRIAL_ECONOMIC_TYPE[type] || null\r\n }\r\n\r\n clear() {\r\n if (this.currentSession) {\r\n this.currentSession.destroy()\r\n this.currentSession = null\r\n }\r\n }\r\n\r\n _fitBounds(bounds, options) {\r\n if (!this.mapView || typeof this.mapView.fitBounds !== 'function' || !bounds) {\r\n return\r\n }\r\n\r\n this.mapView.fitBounds({\r\n bounds: {\r\n southWest: {\r\n latitude: bounds.minLat,\r\n longitude: bounds.minLng,\r\n },\r\n northEast: {\r\n latitude: bounds.maxLat,\r\n longitude: bounds.maxLng,\r\n },\r\n },\r\n padding: options ? options.padding : undefined,\r\n })\r\n }\r\n\r\n _getProvinceName(options) {\r\n if (options == null || typeof options !== 'object') {\r\n return null\r\n }\r\n\r\n if (typeof options.name === 'string') {\r\n const name = options.name.trim()\r\n return name.length > 0 ? name : null\r\n }\r\n\r\n const optionKeys = Object.keys(options)\r\n const unsupportedKeys = optionKeys.filter((key) => key !== 'type' && key !== 'id' && key !== 'name' && key !== 'display' && key !== 'padding')\r\n\r\n if (unsupportedKeys.length > 0) {\r\n console.warn(\r\n `[AreaFocusManager] focusProvince expects options like { type: 'province', name: 'Ha Noi', display: 'highlight' }. Unsupported keys: ${unsupportedKeys.join(', ')}`\r\n )\r\n }\r\n\r\n return null\r\n }\r\n\r\n _getProvinceId(options) {\r\n if (options == null || typeof options !== 'object') {\r\n return null\r\n }\r\n\r\n return typeof options.id === 'number' ? options.id : null\r\n }\r\n}\r\n"],"mappings":"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"}
1
+ {"version":3,"names":["_AreaFocusSession","require","_AreaFocusAreas","_AreaFocusTypes","VIETNAM_MAINLAND_BOUNDS","minLat","minLng","maxLat","maxLng","FOCUS_TYPE_TO_INDUSTRIAL_ECONOMIC_TYPE","industrialZone","IndustrialEconomicType","INDUSTRIAL_ZONE","economicZone","ECONOMIC_ZONE","ecoIndustrialZone","ECO_INDUSTRIAL_ZONE","freeTradeZone","FREE_TRADE_ZONE","nonTariffZone","NON_TARIFF_ZONE","otherZoneModel","OTHER_ZONE_MODEL","AreaFocusManager","constructor","mapView","currentSession","_focusArea","area","options","clear","load","focusOptions","bounds","getBounds","_fitBounds","AreaFocusSession","render","error","console","_focusProvince","provinceId","_getProvinceId","provinceName","_getProvinceName","ProvinceArea","fromName","display","padding","undefined","focus","type","id","warn","industrialEconomicType","_getIndustrialEconomicType","IndustrialEconomicArea","values","Object","includes","destroy","fitBounds","southWest","latitude","longitude","northEast","name","trim","length","optionKeys","keys","unsupportedKeys","filter","key","join","exports"],"sourceRoot":"..\\..\\..\\..\\src","sources":["components/extends/AreaFocusManager.js"],"mappings":"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","ignoreList":[]}
@@ -4,27 +4,21 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.AreaFocuser = void 0;
7
-
8
7
  class AreaFocuser {
9
8
  constructor(areaFocusManager) {
10
9
  this._areaFocusManager = areaFocusManager;
11
10
  }
11
+
12
12
  /**
13
13
  * @param {{name?: string, highlight?: boolean}=} options
14
14
  */
15
-
16
-
17
15
  async focusProvince(options) {
18
16
  const provinceName = this._getProvinceName(options);
19
-
20
17
  const shouldHighlight = this._shouldHighlight(options);
21
-
22
18
  if (!provinceName) {
23
19
  this._clear();
24
-
25
20
  return;
26
21
  }
27
-
28
22
  if (this._areaFocusManager) {
29
23
  await this._areaFocusManager.focus({
30
24
  type: 'province',
@@ -33,41 +27,31 @@ class AreaFocuser {
33
27
  });
34
28
  }
35
29
  }
36
-
37
30
  _clear() {
38
31
  if (this._areaFocusManager) {
39
32
  this._areaFocusManager.clear();
40
33
  }
41
34
  }
42
-
43
35
  _getProvinceName(options) {
44
36
  if (options == null || typeof options !== 'object') {
45
37
  return null;
46
38
  }
47
-
48
39
  if (typeof options.name === 'string') {
49
40
  return options.name.trim();
50
41
  }
51
-
52
42
  const optionKeys = Object.keys(options);
53
43
  const unsupportedKeys = optionKeys.filter(key => key !== 'name' && key !== 'highlight');
54
-
55
44
  if (unsupportedKeys.length > 0) {
56
45
  console.warn(`[AreaFocuser] focusProvince expects options like { name: 'Ha Noi', highlight: true }. Unsupported keys: ${unsupportedKeys.join(', ')}`);
57
46
  }
58
-
59
47
  return null;
60
48
  }
61
-
62
49
  _shouldHighlight(options) {
63
50
  if (options == null || typeof options !== 'object') {
64
51
  return false;
65
52
  }
66
-
67
53
  return options.highlight === true;
68
54
  }
69
-
70
55
  }
71
-
72
56
  exports.AreaFocuser = AreaFocuser;
73
57
  //# sourceMappingURL=AreaFocuser.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["AreaFocuser","constructor","areaFocusManager","_areaFocusManager","focusProvince","options","provinceName","_getProvinceName","shouldHighlight","_shouldHighlight","_clear","focus","type","name","display","clear","trim","optionKeys","Object","keys","unsupportedKeys","filter","key","length","console","warn","join","highlight"],"sources":["AreaFocuser.js"],"sourcesContent":["export class AreaFocuser {\r\n\r\n constructor(areaFocusManager) {\r\n this._areaFocusManager = areaFocusManager\r\n }\r\n\r\n /**\r\n * @param {{name?: string, highlight?: boolean}=} options\r\n */\r\n async focusProvince(options) {\r\n const provinceName = this._getProvinceName(options)\r\n const shouldHighlight = this._shouldHighlight(options)\r\n\r\n if (!provinceName) {\r\n this._clear()\r\n return\r\n }\r\n\r\n if (this._areaFocusManager) {\r\n await this._areaFocusManager.focus({\r\n type: 'province',\r\n name: provinceName,\r\n display: shouldHighlight ? 'highlight' : 'normal',\r\n })\r\n }\r\n }\r\n\r\n _clear() {\r\n if (this._areaFocusManager) {\r\n this._areaFocusManager.clear()\r\n }\r\n }\r\n\r\n _getProvinceName(options) {\r\n if (options == null || typeof options !== 'object') {\r\n return null\r\n }\r\n\r\n if (typeof options.name === 'string') {\r\n return options.name.trim()\r\n }\r\n\r\n const optionKeys = Object.keys(options)\r\n const unsupportedKeys = optionKeys.filter((key) => key !== 'name' && key !== 'highlight')\r\n\r\n if (unsupportedKeys.length > 0) {\r\n console.warn(\r\n `[AreaFocuser] focusProvince expects options like { name: 'Ha Noi', highlight: true }. Unsupported keys: ${unsupportedKeys.join(', ')}`\r\n )\r\n }\r\n\r\n return null\r\n }\r\n\r\n _shouldHighlight(options) {\r\n if (options == null || typeof options !== 'object') {\r\n return false\r\n }\r\n\r\n return options.highlight === true\r\n }\r\n}"],"mappings":";;;;;;;AAAO,MAAMA,WAAN,CAAkB;EAEvBC,WAAW,CAACC,gBAAD,EAAmB;IAC5B,KAAKC,iBAAL,GAAyBD,gBAAzB;EACD;EAED;AACF;AACA;;;EACqB,MAAbE,aAAa,CAACC,OAAD,EAAU;IAC3B,MAAMC,YAAY,GAAG,KAAKC,gBAAL,CAAsBF,OAAtB,CAArB;;IACA,MAAMG,eAAe,GAAG,KAAKC,gBAAL,CAAsBJ,OAAtB,CAAxB;;IAEA,IAAI,CAACC,YAAL,EAAmB;MACjB,KAAKI,MAAL;;MACA;IACD;;IAED,IAAI,KAAKP,iBAAT,EAA4B;MAC1B,MAAM,KAAKA,iBAAL,CAAuBQ,KAAvB,CAA6B;QACjCC,IAAI,EAAE,UAD2B;QAEjCC,IAAI,EAAEP,YAF2B;QAGjCQ,OAAO,EAAEN,eAAe,GAAG,WAAH,GAAiB;MAHR,CAA7B,CAAN;IAKD;EACF;;EAEDE,MAAM,GAAG;IACP,IAAI,KAAKP,iBAAT,EAA4B;MAC1B,KAAKA,iBAAL,CAAuBY,KAAvB;IACD;EACF;;EAEDR,gBAAgB,CAACF,OAAD,EAAU;IACxB,IAAIA,OAAO,IAAI,IAAX,IAAmB,OAAOA,OAAP,KAAmB,QAA1C,EAAoD;MAClD,OAAO,IAAP;IACD;;IAED,IAAI,OAAOA,OAAO,CAACQ,IAAf,KAAwB,QAA5B,EAAsC;MACpC,OAAOR,OAAO,CAACQ,IAAR,CAAaG,IAAb,EAAP;IACD;;IAED,MAAMC,UAAU,GAAGC,MAAM,CAACC,IAAP,CAAYd,OAAZ,CAAnB;IACA,MAAMe,eAAe,GAAGH,UAAU,CAACI,MAAX,CAAmBC,GAAD,IAASA,GAAG,KAAK,MAAR,IAAkBA,GAAG,KAAK,WAArD,CAAxB;;IAEA,IAAIF,eAAe,CAACG,MAAhB,GAAyB,CAA7B,EAAgC;MAC9BC,OAAO,CAACC,IAAR,CACG,2GAA0GL,eAAe,CAACM,IAAhB,CAAqB,IAArB,CAA2B,EADxI;IAGD;;IAED,OAAO,IAAP;EACD;;EAEDjB,gBAAgB,CAACJ,OAAD,EAAU;IACxB,IAAIA,OAAO,IAAI,IAAX,IAAmB,OAAOA,OAAP,KAAmB,QAA1C,EAAoD;MAClD,OAAO,KAAP;IACD;;IAED,OAAOA,OAAO,CAACsB,SAAR,KAAsB,IAA7B;EACD;;AA5DsB"}
1
+ {"version":3,"names":["AreaFocuser","constructor","areaFocusManager","_areaFocusManager","focusProvince","options","provinceName","_getProvinceName","shouldHighlight","_shouldHighlight","_clear","focus","type","name","display","clear","trim","optionKeys","Object","keys","unsupportedKeys","filter","key","length","console","warn","join","highlight","exports"],"sourceRoot":"..\\..\\..\\..\\src","sources":["components/extends/AreaFocuser.js"],"mappings":";;;;;;AAAO,MAAMA,WAAW,CAAC;EAEvBC,WAAWA,CAACC,gBAAgB,EAAE;IAC5B,IAAI,CAACC,iBAAiB,GAAGD,gBAAgB;EAC3C;;EAEA;AACF;AACA;EACE,MAAME,aAAaA,CAACC,OAAO,EAAE;IAC3B,MAAMC,YAAY,GAAG,IAAI,CAACC,gBAAgB,CAACF,OAAO,CAAC;IACnD,MAAMG,eAAe,GAAG,IAAI,CAACC,gBAAgB,CAACJ,OAAO,CAAC;IAEtD,IAAI,CAACC,YAAY,EAAE;MACjB,IAAI,CAACI,MAAM,CAAC,CAAC;MACb;IACF;IAEA,IAAI,IAAI,CAACP,iBAAiB,EAAE;MAC1B,MAAM,IAAI,CAACA,iBAAiB,CAACQ,KAAK,CAAC;QACjCC,IAAI,EAAE,UAAU;QAChBC,IAAI,EAAEP,YAAY;QAClBQ,OAAO,EAAEN,eAAe,GAAG,WAAW,GAAG;MAC3C,CAAC,CAAC;IACJ;EACF;EAEAE,MAAMA,CAAA,EAAG;IACP,IAAI,IAAI,CAACP,iBAAiB,EAAE;MAC1B,IAAI,CAACA,iBAAiB,CAACY,KAAK,CAAC,CAAC;IAChC;EACF;EAEAR,gBAAgBA,CAACF,OAAO,EAAE;IACxB,IAAIA,OAAO,IAAI,IAAI,IAAI,OAAOA,OAAO,KAAK,QAAQ,EAAE;MAClD,OAAO,IAAI;IACb;IAEA,IAAI,OAAOA,OAAO,CAACQ,IAAI,KAAK,QAAQ,EAAE;MACpC,OAAOR,OAAO,CAACQ,IAAI,CAACG,IAAI,CAAC,CAAC;IAC5B;IAEA,MAAMC,UAAU,GAAGC,MAAM,CAACC,IAAI,CAACd,OAAO,CAAC;IACvC,MAAMe,eAAe,GAAGH,UAAU,CAACI,MAAM,CAAEC,GAAG,IAAKA,GAAG,KAAK,MAAM,IAAIA,GAAG,KAAK,WAAW,CAAC;IAEzF,IAAIF,eAAe,CAACG,MAAM,GAAG,CAAC,EAAE;MAC9BC,OAAO,CAACC,IAAI,CACV,2GAA2GL,eAAe,CAACM,IAAI,CAAC,IAAI,CAAC,EACvI,CAAC;IACH;IAEA,OAAO,IAAI;EACb;EAEAjB,gBAAgBA,CAACJ,OAAO,EAAE;IACxB,IAAIA,OAAO,IAAI,IAAI,IAAI,OAAOA,OAAO,KAAK,QAAQ,EAAE;MAClD,OAAO,KAAK;IACd;IAEA,OAAOA,OAAO,CAACsB,SAAS,KAAK,IAAI;EACnC;AACF;AAACC,OAAA,CAAA5B,WAAA,GAAAA,WAAA","ignoreList":[]}
@@ -4,7 +4,6 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.BoundHelper = void 0;
7
-
8
7
  class BoundHelper {
9
8
  static createEmptyBounds() {
10
9
  return {
@@ -14,23 +13,18 @@ class BoundHelper {
14
13
  maxLng: -Infinity
15
14
  };
16
15
  }
17
-
18
16
  static updateBounds(bounds, lat, lng) {
19
17
  bounds.minLat = Math.min(bounds.minLat, lat);
20
18
  bounds.minLng = Math.min(bounds.minLng, lng);
21
19
  bounds.maxLat = Math.max(bounds.maxLat, lat);
22
20
  bounds.maxLng = Math.max(bounds.maxLng, lng);
23
21
  }
24
-
25
22
  static isValidBounds(bounds) {
26
23
  if (!bounds) {
27
24
  return false;
28
25
  }
29
-
30
26
  return !(bounds.minLat === Infinity || bounds.minLng === Infinity || bounds.maxLat === -Infinity || bounds.maxLng === -Infinity);
31
27
  }
32
-
33
28
  }
34
-
35
29
  exports.BoundHelper = BoundHelper;
36
30
  //# sourceMappingURL=BoundHelper.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["BoundHelper","createEmptyBounds","minLat","Infinity","minLng","maxLat","maxLng","updateBounds","bounds","lat","lng","Math","min","max","isValidBounds"],"sources":["BoundHelper.js"],"sourcesContent":["class BoundHelper {\r\n static createEmptyBounds() {\r\n return {\r\n minLat: Infinity,\r\n minLng: Infinity,\r\n maxLat: -Infinity,\r\n maxLng: -Infinity,\r\n }\r\n }\r\n\r\n static updateBounds(bounds, lat, lng) {\r\n bounds.minLat = Math.min(bounds.minLat, lat)\r\n bounds.minLng = Math.min(bounds.minLng, lng)\r\n bounds.maxLat = Math.max(bounds.maxLat, lat)\r\n bounds.maxLng = Math.max(bounds.maxLng, lng)\r\n }\r\n\r\n static isValidBounds(bounds) {\r\n if (!bounds) {\r\n return false\r\n }\r\n\r\n return !(\r\n bounds.minLat === Infinity ||\r\n bounds.minLng === Infinity ||\r\n bounds.maxLat === -Infinity ||\r\n bounds.maxLng === -Infinity\r\n )\r\n }\r\n}\r\n\r\nexport {BoundHelper}"],"mappings":";;;;;;;AAAA,MAAMA,WAAN,CAAkB;EACQ,OAAjBC,iBAAiB,GAAG;IACzB,OAAO;MACLC,MAAM,EAAEC,QADH;MAELC,MAAM,EAAED,QAFH;MAGLE,MAAM,EAAE,CAACF,QAHJ;MAILG,MAAM,EAAE,CAACH;IAJJ,CAAP;EAMD;;EAEkB,OAAZI,YAAY,CAACC,MAAD,EAASC,GAAT,EAAcC,GAAd,EAAmB;IACpCF,MAAM,CAACN,MAAP,GAAgBS,IAAI,CAACC,GAAL,CAASJ,MAAM,CAACN,MAAhB,EAAwBO,GAAxB,CAAhB;IACAD,MAAM,CAACJ,MAAP,GAAgBO,IAAI,CAACC,GAAL,CAASJ,MAAM,CAACJ,MAAhB,EAAwBM,GAAxB,CAAhB;IACAF,MAAM,CAACH,MAAP,GAAgBM,IAAI,CAACE,GAAL,CAASL,MAAM,CAACH,MAAhB,EAAwBI,GAAxB,CAAhB;IACAD,MAAM,CAACF,MAAP,GAAgBK,IAAI,CAACE,GAAL,CAASL,MAAM,CAACF,MAAhB,EAAwBI,GAAxB,CAAhB;EACD;;EAEmB,OAAbI,aAAa,CAACN,MAAD,EAAS;IAC3B,IAAI,CAACA,MAAL,EAAa;MACX,OAAO,KAAP;IACD;;IAED,OAAO,EACLA,MAAM,CAACN,MAAP,KAAkBC,QAAlB,IACAK,MAAM,CAACJ,MAAP,KAAkBD,QADlB,IAEAK,MAAM,CAACH,MAAP,KAAkB,CAACF,QAFnB,IAGAK,MAAM,CAACF,MAAP,KAAkB,CAACH,QAJd,CAAP;EAMD;;AA5Be"}
1
+ {"version":3,"names":["BoundHelper","createEmptyBounds","minLat","Infinity","minLng","maxLat","maxLng","updateBounds","bounds","lat","lng","Math","min","max","isValidBounds","exports"],"sourceRoot":"..\\..\\..\\..\\src","sources":["components/extends/BoundHelper.js"],"mappings":";;;;;;AAAA,MAAMA,WAAW,CAAC;EAChB,OAAOC,iBAAiBA,CAAA,EAAG;IACzB,OAAO;MACLC,MAAM,EAAEC,QAAQ;MAChBC,MAAM,EAAED,QAAQ;MAChBE,MAAM,EAAE,CAACF,QAAQ;MACjBG,MAAM,EAAE,CAACH;IACX,CAAC;EACH;EAEA,OAAOI,YAAYA,CAACC,MAAM,EAAEC,GAAG,EAAEC,GAAG,EAAE;IACpCF,MAAM,CAACN,MAAM,GAAGS,IAAI,CAACC,GAAG,CAACJ,MAAM,CAACN,MAAM,EAAEO,GAAG,CAAC;IAC5CD,MAAM,CAACJ,MAAM,GAAGO,IAAI,CAACC,GAAG,CAACJ,MAAM,CAACJ,MAAM,EAAEM,GAAG,CAAC;IAC5CF,MAAM,CAACH,MAAM,GAAGM,IAAI,CAACE,GAAG,CAACL,MAAM,CAACH,MAAM,EAAEI,GAAG,CAAC;IAC5CD,MAAM,CAACF,MAAM,GAAGK,IAAI,CAACE,GAAG,CAACL,MAAM,CAACF,MAAM,EAAEI,GAAG,CAAC;EAC9C;EAEA,OAAOI,aAAaA,CAACN,MAAM,EAAE;IAC3B,IAAI,CAACA,MAAM,EAAE;MACX,OAAO,KAAK;IACd;IAEA,OAAO,EACLA,MAAM,CAACN,MAAM,KAAKC,QAAQ,IAC1BK,MAAM,CAACJ,MAAM,KAAKD,QAAQ,IAC1BK,MAAM,CAACH,MAAM,KAAK,CAACF,QAAQ,IAC3BK,MAAM,CAACF,MAAM,KAAK,CAACH,QAAQ,CAC5B;EACH;AACF;AAACY,OAAA,CAAAf,WAAA,GAAAA,WAAA","ignoreList":[]}
@@ -4,11 +4,8 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.ProvinceArea = exports.IndustrialEconomicArea = void 0;
7
-
8
7
  var _AreaFocusGeometryUtils = require("./AreaFocusGeometryUtils");
9
-
10
8
  var _AreaFocusTypes = require("./AreaFocusTypes");
11
-
12
9
  const INDUSTRIAL_ECONOMIC_PATH_BY_TYPE = {
13
10
  [_AreaFocusTypes.IndustrialEconomicType.INDUSTRIAL_ZONE]: 'khu-cong-nghiep',
14
11
  [_AreaFocusTypes.IndustrialEconomicType.ECONOMIC_ZONE]: 'khu-kinh-te',
@@ -18,7 +15,6 @@ const INDUSTRIAL_ECONOMIC_PATH_BY_TYPE = {
18
15
  [_AreaFocusTypes.IndustrialEconomicType.OTHER_ZONE_MODEL]: 'mo-hinh-khu-khac'
19
16
  };
20
17
  const BDS_API_BASE_URL = 'https://cmcdtqg-gateway.dieuhanhso.vn/staging';
21
-
22
18
  class ProvinceArea {
23
19
  constructor(id) {
24
20
  this.id = id;
@@ -27,47 +23,36 @@ class ProvinceArea {
27
23
  this.geometryData = null;
28
24
  this.bounds = null;
29
25
  }
30
-
31
26
  static fromName(name) {
32
27
  const area = new ProvinceArea(null);
33
28
  area.name = name;
34
29
  return area;
35
30
  }
36
-
37
31
  async load() {
38
32
  if (this.loaded) {
39
33
  return true;
40
34
  }
41
-
42
35
  const hasValidId = typeof this.id === 'number';
43
36
  const hasValidName = typeof this.name === 'string' && this.name.trim() !== '';
44
-
45
37
  if (!hasValidId && !hasValidName) {
46
38
  return false;
47
39
  }
48
-
49
40
  const normalizedName = hasValidName ? this.name.trim() : null;
50
41
  const url = hasValidId ? `${BDS_API_BASE_URL}/bds/api/dmhc/TinhThanh/${this.id}/geometry` : `${BDS_API_BASE_URL}/bds/api/dmhc/TinhThanh/geometry?ten=${encodeURIComponent(normalizedName)}`;
51
42
  const response = await fetch(url);
52
-
53
43
  if (!response.ok) {
54
44
  return false;
55
45
  }
56
-
57
46
  const data = await response.json();
58
-
59
47
  if (!data.success) {
60
48
  console.error('Fetch province area data failed:', data.message);
61
49
  return false;
62
50
  }
63
-
64
51
  const areaData = data.data;
65
52
  const geometry = areaData && areaData.geometry ? areaData.geometry : null;
66
-
67
53
  if (!geometry) {
68
54
  return false;
69
55
  }
70
-
71
56
  this.geometryData = {
72
57
  name: areaData && areaData.name ? areaData.name : normalizedName,
73
58
  geometry
@@ -76,23 +61,17 @@ class ProvinceArea {
76
61
  this.loaded = true;
77
62
  return true;
78
63
  }
79
-
80
64
  getGeometryData() {
81
65
  return this.geometryData;
82
66
  }
83
-
84
67
  getBounds() {
85
68
  return this.bounds;
86
69
  }
87
-
88
70
  getId() {
89
71
  return this.id != null ? this.id : `province-${this.name || 'unknown'}`;
90
72
  }
91
-
92
73
  }
93
-
94
74
  exports.ProvinceArea = ProvinceArea;
95
-
96
75
  class IndustrialEconomicArea {
97
76
  constructor(type, id) {
98
77
  this.type = type;
@@ -101,45 +80,34 @@ class IndustrialEconomicArea {
101
80
  this.geometryData = null;
102
81
  this.bounds = null;
103
82
  }
104
-
105
83
  async load() {
106
84
  if (this.loaded) {
107
85
  return true;
108
86
  }
109
-
110
87
  if (typeof this.id !== 'number') {
111
88
  return false;
112
89
  }
113
-
114
90
  const pathSegment = INDUSTRIAL_ECONOMIC_PATH_BY_TYPE[this.type];
115
-
116
91
  if (!pathSegment) {
117
92
  console.error('Unsupported industrial/economic area type:', this.type);
118
93
  return false;
119
94
  }
120
-
121
95
  const url = `${BDS_API_BASE_URL}/bds/api/kcnkkt/${pathSegment}/${this.id}/geometry`;
122
96
  const response = await fetch(url);
123
-
124
97
  if (!response.ok) {
125
98
  console.error('Failed to fetch industrial zone data:', response.status, response.statusText);
126
99
  return false;
127
100
  }
128
-
129
101
  const data = await response.json();
130
-
131
102
  if (!data.success) {
132
103
  console.error('API returned error:', data.message);
133
104
  return false;
134
105
  }
135
-
136
106
  const areaData = data.data;
137
107
  const geometry = areaData && areaData.geometry ? areaData.geometry : null;
138
-
139
108
  if (!geometry) {
140
109
  return false;
141
110
  }
142
-
143
111
  this.geometryData = {
144
112
  name: areaData && areaData.name ? areaData.name : null,
145
113
  geometry
@@ -148,20 +116,15 @@ class IndustrialEconomicArea {
148
116
  this.loaded = true;
149
117
  return true;
150
118
  }
151
-
152
119
  getGeometryData() {
153
120
  return this.geometryData;
154
121
  }
155
-
156
122
  getBounds() {
157
123
  return this.bounds;
158
124
  }
159
-
160
125
  getId() {
161
126
  return this.id;
162
127
  }
163
-
164
128
  }
165
-
166
129
  exports.IndustrialEconomicArea = IndustrialEconomicArea;
167
130
  //# sourceMappingURL=AreaFocusAreas.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["INDUSTRIAL_ECONOMIC_PATH_BY_TYPE","IndustrialEconomicType","INDUSTRIAL_ZONE","ECONOMIC_ZONE","ECO_INDUSTRIAL_ZONE","FREE_TRADE_ZONE","NON_TARIFF_ZONE","OTHER_ZONE_MODEL","BDS_API_BASE_URL","ProvinceArea","constructor","id","name","loaded","geometryData","bounds","fromName","area","load","hasValidId","hasValidName","trim","normalizedName","url","encodeURIComponent","response","fetch","ok","data","json","success","console","error","message","areaData","geometry","getViewboxFromGeometry","getGeometryData","getBounds","getId","IndustrialEconomicArea","type","pathSegment","status","statusText"],"sources":["AreaFocusAreas.js"],"sourcesContent":["import {getViewboxFromGeometry} from './AreaFocusGeometryUtils'\r\nimport {IndustrialEconomicType} from './AreaFocusTypes'\r\n\r\nconst INDUSTRIAL_ECONOMIC_PATH_BY_TYPE = {\r\n [IndustrialEconomicType.INDUSTRIAL_ZONE]: 'khu-cong-nghiep',\r\n [IndustrialEconomicType.ECONOMIC_ZONE]: 'khu-kinh-te',\r\n [IndustrialEconomicType.ECO_INDUSTRIAL_ZONE]: 'khu-cong-nghiep-sinh-thai',\r\n [IndustrialEconomicType.FREE_TRADE_ZONE]: 'khu-thuong-mai-tu-do',\r\n [IndustrialEconomicType.NON_TARIFF_ZONE]: 'khu-phi-thue-quan',\r\n [IndustrialEconomicType.OTHER_ZONE_MODEL]: 'mo-hinh-khu-khac',\r\n}\r\n\r\nconst BDS_API_BASE_URL = 'https://cmcdtqg-gateway.dieuhanhso.vn/staging'\r\n\r\nclass ProvinceArea {\r\n constructor(id) {\r\n this.id = id\r\n this.name = null\r\n this.loaded = false\r\n this.geometryData = null\r\n this.bounds = null\r\n }\r\n\r\n static fromName(name) {\r\n const area = new ProvinceArea(null)\r\n area.name = name\r\n return area\r\n }\r\n\r\n async load() {\r\n if (this.loaded) {\r\n return true\r\n }\r\n\r\n const hasValidId = typeof this.id === 'number'\r\n const hasValidName = typeof this.name === 'string' && this.name.trim() !== ''\r\n\r\n if (!hasValidId && !hasValidName) {\r\n return false\r\n }\r\n\r\n const normalizedName = hasValidName ? this.name.trim() : null\r\n const url = hasValidId\r\n ? `${BDS_API_BASE_URL}/bds/api/dmhc/TinhThanh/${this.id}/geometry`\r\n : `${BDS_API_BASE_URL}/bds/api/dmhc/TinhThanh/geometry?ten=${encodeURIComponent(normalizedName)}`\r\n\r\n const response = await fetch(url)\r\n\r\n if (!response.ok) {\r\n return false\r\n }\r\n\r\n const data = await response.json()\r\n\r\n if (!data.success) {\r\n console.error('Fetch province area data failed:', data.message)\r\n return false\r\n }\r\n\r\n const areaData = data.data\r\n const geometry = areaData && areaData.geometry ? areaData.geometry : null\r\n\r\n if (!geometry) {\r\n return false\r\n }\r\n\r\n this.geometryData = {\r\n name: areaData && areaData.name ? areaData.name : normalizedName,\r\n geometry,\r\n }\r\n this.bounds = getViewboxFromGeometry(geometry)\r\n this.loaded = true\r\n\r\n return true\r\n }\r\n\r\n getGeometryData() {\r\n return this.geometryData\r\n }\r\n\r\n getBounds() {\r\n return this.bounds\r\n }\r\n\r\n getId() {\r\n return this.id != null ? this.id : `province-${this.name || 'unknown'}`\r\n }\r\n}\r\n\r\nclass IndustrialEconomicArea {\r\n constructor(type, id) {\r\n this.type = type\r\n this.id = id\r\n this.loaded = false\r\n this.geometryData = null\r\n this.bounds = null\r\n }\r\n\r\n async load() {\r\n if (this.loaded) {\r\n return true\r\n }\r\n\r\n if (typeof this.id !== 'number') {\r\n return false\r\n }\r\n\r\n const pathSegment = INDUSTRIAL_ECONOMIC_PATH_BY_TYPE[this.type]\r\n\r\n if (!pathSegment) {\r\n console.error('Unsupported industrial/economic area type:', this.type)\r\n return false\r\n }\r\n\r\n const url = `${BDS_API_BASE_URL}/bds/api/kcnkkt/${pathSegment}/${this.id}/geometry`\r\n\r\n const response = await fetch(url)\r\n\r\n if (!response.ok) {\r\n console.error('Failed to fetch industrial zone data:', response.status, response.statusText)\r\n return false\r\n }\r\n\r\n const data = await response.json()\r\n\r\n if (!data.success) {\r\n console.error('API returned error:', data.message)\r\n return false\r\n }\r\n\r\n const areaData = data.data\r\n const geometry = areaData && areaData.geometry ? areaData.geometry : null\r\n\r\n if (!geometry) {\r\n return false\r\n }\r\n\r\n this.geometryData = {\r\n name: areaData && areaData.name ? areaData.name : null,\r\n geometry,\r\n }\r\n this.bounds = getViewboxFromGeometry(geometry)\r\n this.loaded = true\r\n\r\n return true\r\n }\r\n\r\n getGeometryData() {\r\n return this.geometryData\r\n }\r\n\r\n getBounds() {\r\n return this.bounds\r\n }\r\n\r\n getId() {\r\n return this.id\r\n }\r\n}\r\n\r\nexport {\r\n ProvinceArea,\r\n IndustrialEconomicArea,\r\n}\r\n"],"mappings":"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"}
1
+ {"version":3,"names":["_AreaFocusGeometryUtils","require","_AreaFocusTypes","INDUSTRIAL_ECONOMIC_PATH_BY_TYPE","IndustrialEconomicType","INDUSTRIAL_ZONE","ECONOMIC_ZONE","ECO_INDUSTRIAL_ZONE","FREE_TRADE_ZONE","NON_TARIFF_ZONE","OTHER_ZONE_MODEL","BDS_API_BASE_URL","ProvinceArea","constructor","id","name","loaded","geometryData","bounds","fromName","area","load","hasValidId","hasValidName","trim","normalizedName","url","encodeURIComponent","response","fetch","ok","data","json","success","console","error","message","areaData","geometry","getViewboxFromGeometry","getGeometryData","getBounds","getId","exports","IndustrialEconomicArea","type","pathSegment","status","statusText"],"sourceRoot":"..\\..\\..\\..\\..\\src","sources":["components/extends/area/AreaFocusAreas.js"],"mappings":"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","ignoreList":[]}