react-native-maplibre-lite 0.2.5 → 0.2.6

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 (51) hide show
  1. package/README.md +32 -12
  2. package/lib/module/components/MapView.js +19 -22
  3. package/lib/module/components/MapView.js.map +1 -1
  4. package/lib/module/components/NavigatorVoiceControl.js +9 -10
  5. package/lib/module/components/NavigatorVoiceControl.js.map +1 -1
  6. package/lib/module/components/navigatorVoicePlayer.js +2 -4
  7. package/lib/module/components/navigatorVoicePlayer.js.map +1 -1
  8. package/lib/module/components/types.js +6 -2
  9. package/lib/module/components/types.js.map +1 -1
  10. package/lib/module/components/useNavigatorTts.js +154 -0
  11. package/lib/module/components/useNavigatorTts.js.map +1 -0
  12. package/lib/module/components/webMapBuild.js +1 -1
  13. package/lib/module/components/webMapBuild.js.map +1 -1
  14. package/lib/module/index.js.map +1 -1
  15. package/lib/typescript/src/components/MapView.d.ts +8 -5
  16. package/lib/typescript/src/components/MapView.d.ts.map +1 -1
  17. package/lib/typescript/src/components/NavigatorVoiceControl.d.ts +6 -7
  18. package/lib/typescript/src/components/NavigatorVoiceControl.d.ts.map +1 -1
  19. package/lib/typescript/src/components/navigatorVoicePlayer.d.ts.map +1 -1
  20. package/lib/typescript/src/components/types.d.ts +8 -4
  21. package/lib/typescript/src/components/types.d.ts.map +1 -1
  22. package/lib/typescript/src/components/useNavigatorTts.d.ts +28 -0
  23. package/lib/typescript/src/components/useNavigatorTts.d.ts.map +1 -0
  24. package/lib/typescript/src/components/webMapBuild.d.ts +1 -1
  25. package/lib/typescript/src/components/webMapBuild.d.ts.map +1 -1
  26. package/lib/typescript/src/index.d.ts +1 -1
  27. package/lib/typescript/src/index.d.ts.map +1 -1
  28. package/package.json +1 -1
  29. package/resources/map.html +42 -43
  30. package/src/components/MapView.tsx +34 -25
  31. package/src/components/NavigatorVoiceControl.tsx +13 -14
  32. package/src/components/navigatorVoicePlayer.tsx +2 -4
  33. package/src/components/types.ts +13 -4
  34. package/src/components/useNavigatorTts.ts +195 -0
  35. package/src/components/webMapBuild.ts +1 -1
  36. package/src/index.tsx +2 -0
  37. package/lib/module/components/navigatorVoiceCatalog.js +0 -261
  38. package/lib/module/components/navigatorVoiceCatalog.js.map +0 -1
  39. package/lib/module/components/navigatorVoiceKeys.js +0 -14
  40. package/lib/module/components/navigatorVoiceKeys.js.map +0 -1
  41. package/lib/module/components/useNavigatorVoice.js +0 -78
  42. package/lib/module/components/useNavigatorVoice.js.map +0 -1
  43. package/lib/typescript/src/components/navigatorVoiceCatalog.d.ts +0 -50
  44. package/lib/typescript/src/components/navigatorVoiceCatalog.d.ts.map +0 -1
  45. package/lib/typescript/src/components/navigatorVoiceKeys.d.ts +0 -10
  46. package/lib/typescript/src/components/navigatorVoiceKeys.d.ts.map +0 -1
  47. package/lib/typescript/src/components/useNavigatorVoice.d.ts +0 -20
  48. package/lib/typescript/src/components/useNavigatorVoice.d.ts.map +0 -1
  49. package/src/components/navigatorVoiceCatalog.ts +0 -316
  50. package/src/components/navigatorVoiceKeys.ts +0 -132
  51. package/src/components/useNavigatorVoice.ts +0 -96
package/README.md CHANGED
@@ -131,9 +131,10 @@ Navigator mode adds a route line, a current-position arrow, a driving HUD and Gr
131
131
  The route line and position arrow are drawn inside the WebView, while the
132
132
  instruction HUD, the recenter / voice floating buttons and voice playback are
133
133
  rendered natively by `MapView`. The WebView streams a HUD view-model and
134
- abstract voice phrase keys to the native side; the native side renders the UI
135
- (`react-native-svg`) and plays the matching audio clips (`react-native-video`),
136
- owning voice selection, volume and persistence (`AsyncStorage`). Tapping the
134
+ full voice phrase text to the native side; the native side renders the UI
135
+ (`react-native-svg`), calls your `ttsHandler` to obtain audio URLs and plays them
136
+ (`react-native-video`), owning voice selection, volume and persistence
137
+ (`AsyncStorage`). Tapping the
137
138
  recenter button sends a command back to the WebView to recenter the camera.
138
139
 
139
140
  ```tsx
@@ -180,15 +181,33 @@ export function NavigatorScreen() {
180
181
 
181
182
  Use `setNavigatorPosition(latitude, longitude)` to feed real GPS updates. The WebView side snaps the position to the route, marks arrival, or reroutes when the point is too far from the current route. `pickNavigatorPosition()` is a development helper: the next tap on the map becomes the current navigator position.
182
183
 
183
- ### Voice guidance (`navigatorVoiceUrl`)
184
+ ### Voice guidance (TTS)
184
185
 
185
- Pass `navigatorVoiceUrl` (the `.../voices/data.json` catalog URL) to enable
186
- voice guidance and the native voice floating button. The native side loads the
187
- catalog and per-voice manifest, lets the user pick a voice and volume (1–5),
188
- persists the choice with `AsyncStorage`, maps the phrase keys emitted by the
189
- WebView to clip URLs and plays them with `react-native-video`. Voice guidance
190
- uses the Russian phrase set, so it is active only when `navigatorLang` is not
191
- `'en'`.
186
+ Pass `ttsVoices` and `ttsHandler` on `MapView` to enable voice guidance and the
187
+ native voice floating button. The WebView builds localized phrase text from
188
+ embedded dictionaries (`ru` / `en`, keyed by `navigatorLang`) and sends the full
189
+ string to React Native. Your handler synthesizes audio and returns a URL; the
190
+ library plays it and caches URLs per voice and text.
191
+
192
+ ```tsx
193
+ <MapView
194
+ navigator
195
+ navigatorLang="ru"
196
+ ttsVoices={{ silero_kseniya: 'Ксения', silero_aidar: 'Айдар' }}
197
+ ttsHandler={async (text, voiceKey) => {
198
+ const res = await fetch('https://your-tts.example/speak', {
199
+ method: 'POST',
200
+ headers: { 'Content-Type': 'application/json' },
201
+ body: JSON.stringify({ text, voice: voiceKey }),
202
+ });
203
+ const { url } = (await res.json()) as { url: string };
204
+ return url;
205
+ }}
206
+ /* … */
207
+ />
208
+ ```
209
+
210
+ See [`webProject/NAVIGATION_VOICE.md`](webProject/NAVIGATION_VOICE.md) for phrase keys and announcement rules.
192
211
 
193
212
  ### Navigator chrome (`navigatorChrome`)
194
213
 
@@ -249,7 +268,8 @@ and the simulation stops automatically on arrival. Requires `navigator: true`.
249
268
  | `navigatorLang` | `'ru' \| 'en'` | no | Navigator HUD and instruction language. Defaults to `ru` |
250
269
  | `navigatorProfile` | `NavigatorProfile \| string` | no | GraphHopper routing `profile` (`car`, `bike`, `foot`, …). Unknown → `car` |
251
270
  | `navigatorChrome` | `NavigatorChromeParams` | no | Navigator colors: route line, arrow accent, native HUD/FAB theme (see section above) |
252
- | `navigatorVoiceUrl` | `string` | no | Voice catalog URL (`.../voices/data.json`). Enables native voice guidance + voice FAB |
271
+ | `ttsVoices` | `Record<string, string>` | no | TTS voice key → user-visible label. With `ttsHandler`, enables voice guidance + FAB |
272
+ | `ttsHandler` | `(text, voiceKey) => Promise<string>` | no | Synthesize phrase text to an audio URL for playback |
253
273
  | `navigatorSimulate` | `boolean` | no | Dev-only: auto-drive the marker along the built route (trip simulation). Suspends real GPS forwarding while on |
254
274
  | `onReady` | `() => void` | no | Called after the WebView map is initialized |
255
275
  | `onMoveStart` | `(params) => void` | no | `movestart` event |
@@ -11,10 +11,9 @@ import { NavigatorHud } from "./NavigatorHud.js";
11
11
  import { NavigatorRecenterButton } from "./NavigatorRecenterButton.js";
12
12
  import { NavigatorVoiceControl } from "./NavigatorVoiceControl.js";
13
13
  import { resolveNavigatorChromeTheme } from "./navigatorChromeTheme.js";
14
- import { keysToClipUrls, volumeLevelToGain } from "./navigatorVoiceCatalog.js";
15
14
  import { NavigatorVoicePlayer } from "./navigatorVoicePlayer.js";
16
15
  import { navigatorUiStrings } from "./navigatorVoiceStrings.js";
17
- import { useNavigatorVoice } from "./useNavigatorVoice.js";
16
+ import { useNavigatorTts, volumeLevelToGain } from "./useNavigatorTts.js";
18
17
  import { loadResources, getNativeMapHtmlUri } from "./utils.js";
19
18
  import { MAP_HTML } from "./webMapBuild.js";
20
19
  import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
@@ -82,15 +81,13 @@ export const MapView = /*#__PURE__*/forwardRef((props, ref) => {
82
81
  /** View-model HUD маршрута, приходит из WebView (`navigatorHud`). */
83
82
  const [hudState, setHudState] = useState(null);
84
83
  const voicePlayerRef = useRef(null);
85
-
86
- /** Озвучка ограничена русским набором фраз (как в веб-навигаторе). */
87
- const voiceSupported = props.navigator === true && props.navigatorLang !== 'en';
88
- const voice = useNavigatorVoice(voiceSupported ? props.navigatorVoiceUrl : undefined);
84
+ const ttsEnabled = props.navigator === true && props.ttsHandler != null && Object.keys(props.ttsVoices ?? {}).length > 0;
85
+ const tts = useNavigatorTts(ttsEnabled ? props.ttsVoices : undefined, ttsEnabled ? props.ttsHandler : undefined);
89
86
  const chromeTheme = useMemo(() => resolveNavigatorChromeTheme(props.navigatorChrome), [props.navigatorChrome]);
90
87
  const navigatorStrings = useMemo(() => navigatorUiStrings(props.navigatorLang), [props.navigatorLang]);
91
88
  useEffect(() => {
92
- voicePlayerRef.current?.setVolume(volumeLevelToGain(voice.volumeLevel));
93
- }, [voice.volumeLevel]);
89
+ voicePlayerRef.current?.setVolume(volumeLevelToGain(tts.volumeLevel));
90
+ }, [tts.volumeLevel]);
94
91
  const handleNavigatorVoice = params => {
95
92
  const player = voicePlayerRef.current;
96
93
  if (!player) return;
@@ -98,10 +95,10 @@ export const MapView = /*#__PURE__*/forwardRef((props, ref) => {
98
95
  player.stop();
99
96
  return;
100
97
  }
101
- if (params.action === 'prefetch') return;
102
- if (!voice.voiceEnabled || !voice.manifest || !voice.clipBaseUrl) return;
103
- const urls = keysToClipUrls(voice.manifest, voice.clipBaseUrl, params.keys);
104
- if (urls.length > 0) player.playUrls(urls);
98
+ if (params.action !== 'play' || !params.text?.trim()) return;
99
+ void tts.synthesize(params.text).then(url => {
100
+ if (url) player.playUrls([url]);
101
+ });
105
102
  };
106
103
  const coordsInMapRef = useRef({});
107
104
  const markersClickHandlers = useRef({});
@@ -528,19 +525,19 @@ export const MapView = /*#__PURE__*/forwardRef((props, ref) => {
528
525
  theme: chromeTheme,
529
526
  accessibilityLabel: navigatorStrings.recenterAria,
530
527
  onPress: recenterNavigatorCamera
531
- }), voiceSupported && /*#__PURE__*/_jsx(NavigatorVoiceControl, {
528
+ }), ttsEnabled && /*#__PURE__*/_jsx(NavigatorVoiceControl, {
532
529
  theme: chromeTheme,
533
530
  strings: navigatorStrings,
534
- catalog: voice.catalog,
535
- selectedDir: voice.selectedDir,
536
- voiceEnabled: voice.voiceEnabled,
537
- volumeLevel: voice.volumeLevel,
538
- onSelectVoice: voice.selectVoice,
539
- onSelectVolume: voice.selectVolume,
540
- onDisable: voice.disableVoice
541
- }), voiceSupported && /*#__PURE__*/_jsx(NavigatorVoicePlayer, {
531
+ voiceEntries: tts.voiceEntries,
532
+ selectedVoiceKey: tts.selectedVoiceKey,
533
+ voiceEnabled: tts.voiceEnabled,
534
+ volumeLevel: tts.volumeLevel,
535
+ onSelectVoice: tts.selectVoice,
536
+ onSelectVolume: tts.selectVolume,
537
+ onDisable: tts.disableVoice
538
+ }), ttsEnabled && /*#__PURE__*/_jsx(NavigatorVoicePlayer, {
542
539
  ref: voicePlayerRef,
543
- initialVolume: volumeLevelToGain(voice.volumeLevel)
540
+ initialVolume: volumeLevelToGain(tts.volumeLevel)
544
541
  })]
545
542
  })]
546
543
  }), !inited && /*#__PURE__*/_jsx(MapPlaceholder, {
@@ -1 +1 @@
1
- {"version":3,"names":["createContext","forwardRef","useContext","useEffect","useImperativeHandle","useMemo","useRef","useState","Platform","View","WebView","Geolocation","KeepAwake","MapPlaceholder","MapSelectPoint","NavigatorHud","NavigatorRecenterButton","NavigatorVoiceControl","resolveNavigatorChromeTheme","keysToClipUrls","volumeLevelToGain","NavigatorVoicePlayer","navigatorUiStrings","useNavigatorVoice","loadResources","getNativeMapHtmlUri","MAP_HTML","jsx","_jsx","Fragment","_Fragment","jsxs","_jsxs","MapViewContext","useMapViewContext","ctx","Error","getBoundsFromCoords","coords","length","minLng","maxLng","minLat","maxLat","lng","lat","toWebMarkerParams","props","uniqueId","latitude","longitude","color","iconUrl","iconWidth","iconHeight","html","toWebPolylineParams","coordinates","width","toWebPolygonParams","fillColor","fillOpacity","strokeColor","strokeOpacity","strokeWidth","toWebRemoveParams","NAVIGATOR_GPS_FORWARD_MIN_MS","MapView","ref","webViewRef","inited","setInited","initedRef","current","hudState","setHudState","voicePlayerRef","voiceSupported","navigator","navigatorLang","voice","navigatorVoiceUrl","undefined","chromeTheme","navigatorChrome","navigatorStrings","setVolume","volumeLevel","handleNavigatorVoice","params","player","action","stop","voiceEnabled","manifest","clipBaseUrl","urls","keys","playUrls","coordsInMapRef","markersClickHandlers","mapSelectPointRef","performanceMode","OS","webViewSource","developerLocalhostBundleUrl","uri","useNativeMapHtml","fallbackPixelRatio","sendToWebView","message","__DEV__","console","log","postMessage","JSON","stringify","sendToWebViewRef","initMap","mapStyle","mapStyleText","parse","initParams","zoomEnabled","scrollEnabled","center","zoom","minZoom","maxZoom","antialias","crossSourceCollisions","fadeDuration","pixelRatio","simplifyStyle","aggressiveSimplifyStyle","maxPitch","renderWorldCopies","turboWhileMoving","debugMode","graphhopperUrl","navigatorProfile","function","updateMarkerClickHandler","propsMarker","onPress","addMarker","ignoreFitBounds","scheduleAutoFitBounds","removeMarker","addPolyline","propsPolyline","removePolyline","addPolygon","propsPolygon","removePolygon","autoFitBoundsTimeoutRef","autoFitBounds","clearTimeout","setTimeout","fitBounds","fitBoundsPadding","Object","values","flat","bounds","padding","duration","fitBoundsDuration","flyTo","flyToDuration","setNavigatorPoint","advanceNavigatorInstruction","setNavigatorPosition","accuracy","Number","isFinite","pickNavigatorPosition","recenterNavigatorCamera","setNavigatorSimulation","enabled","lastPropsRef","updateProps","then","onReceiveMessageFromWebView","data","msg","type","event","up","onMoveStart","onMoveEnd","down","onZoomStart","onZoomEnd","onIdle","onMapError","onNavigatorRouteSet","onNavigatorInstruction","onNavigatorPositionSet","onMapLiteError","onReady","handler","e","warn","navigatorSimulate","lastForwardedAt","watchId","watchPosition","position","now","Date","error","enableHighAccuracy","interval","fastestInterval","distanceFilter","maximumAge","clearWatch","style","children","Provider","value","flex","backgroundColor","originWhitelist","source","onMessage","nativeEvent","javaScriptEnabled","domStorageEnabled","showSelectPoint","pointerEvents","justifyContent","alignItems","top","left","height","selectPointColor","selectPointBackgroundColor","state","theme","pickHint","accessibilityLabel","recenterAria","strings","catalog","selectedDir","onSelectVoice","selectVoice","onSelectVolume","selectVolume","onDisable","disableVoice","initialVolume","placeholderTheme"],"sourceRoot":"../../../src","sources":["components/MapView.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["createContext","forwardRef","useContext","useEffect","useImperativeHandle","useMemo","useRef","useState","Platform","View","WebView","Geolocation","KeepAwake","MapPlaceholder","MapSelectPoint","NavigatorHud","NavigatorRecenterButton","NavigatorVoiceControl","resolveNavigatorChromeTheme","NavigatorVoicePlayer","navigatorUiStrings","useNavigatorTts","volumeLevelToGain","loadResources","getNativeMapHtmlUri","MAP_HTML","jsx","_jsx","Fragment","_Fragment","jsxs","_jsxs","MapViewContext","useMapViewContext","ctx","Error","getBoundsFromCoords","coords","length","minLng","maxLng","minLat","maxLat","lng","lat","toWebMarkerParams","props","uniqueId","latitude","longitude","color","iconUrl","iconWidth","iconHeight","html","toWebPolylineParams","coordinates","width","toWebPolygonParams","fillColor","fillOpacity","strokeColor","strokeOpacity","strokeWidth","toWebRemoveParams","NAVIGATOR_GPS_FORWARD_MIN_MS","MapView","ref","webViewRef","inited","setInited","initedRef","current","hudState","setHudState","voicePlayerRef","ttsEnabled","navigator","ttsHandler","Object","keys","ttsVoices","tts","undefined","chromeTheme","navigatorChrome","navigatorStrings","navigatorLang","setVolume","volumeLevel","handleNavigatorVoice","params","player","action","stop","text","trim","synthesize","then","url","playUrls","coordsInMapRef","markersClickHandlers","mapSelectPointRef","performanceMode","OS","webViewSource","developerLocalhostBundleUrl","uri","useNativeMapHtml","fallbackPixelRatio","sendToWebView","message","__DEV__","console","log","postMessage","JSON","stringify","sendToWebViewRef","initMap","mapStyle","mapStyleText","parse","initParams","zoomEnabled","scrollEnabled","center","zoom","minZoom","maxZoom","antialias","crossSourceCollisions","fadeDuration","pixelRatio","simplifyStyle","aggressiveSimplifyStyle","maxPitch","renderWorldCopies","turboWhileMoving","debugMode","graphhopperUrl","navigatorProfile","function","updateMarkerClickHandler","propsMarker","onPress","addMarker","ignoreFitBounds","scheduleAutoFitBounds","removeMarker","addPolyline","propsPolyline","removePolyline","addPolygon","propsPolygon","removePolygon","autoFitBoundsTimeoutRef","autoFitBounds","clearTimeout","setTimeout","fitBounds","fitBoundsPadding","values","flat","bounds","padding","duration","fitBoundsDuration","flyTo","flyToDuration","setNavigatorPoint","advanceNavigatorInstruction","setNavigatorPosition","accuracy","Number","isFinite","pickNavigatorPosition","recenterNavigatorCamera","setNavigatorSimulation","enabled","lastPropsRef","updateProps","onReceiveMessageFromWebView","data","msg","type","event","up","onMoveStart","onMoveEnd","down","onZoomStart","onZoomEnd","onIdle","onMapError","onNavigatorRouteSet","onNavigatorInstruction","onNavigatorPositionSet","onMapLiteError","onReady","handler","e","warn","navigatorSimulate","lastForwardedAt","watchId","watchPosition","position","now","Date","error","enableHighAccuracy","interval","fastestInterval","distanceFilter","maximumAge","clearWatch","style","children","Provider","value","flex","backgroundColor","originWhitelist","source","onMessage","nativeEvent","javaScriptEnabled","domStorageEnabled","showSelectPoint","pointerEvents","justifyContent","alignItems","top","left","height","selectPointColor","selectPointBackgroundColor","state","theme","pickHint","accessibilityLabel","recenterAria","strings","voiceEntries","selectedVoiceKey","voiceEnabled","onSelectVoice","selectVoice","onSelectVolume","selectVolume","onDisable","disableVoice","initialVolume","placeholderTheme"],"sourceRoot":"../../../src","sources":["components/MapView.tsx"],"mappings":"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","ignoreList":[]}
@@ -6,14 +6,13 @@ import { NavigatorVoiceIcon } from "./navigatorManeuverIcon.js";
6
6
  import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
7
7
  /**
8
8
  * FAB выбора голоса + меню (список голосов, громкость 1–5, «отключить»).
9
- * Порт DOM-меню из веб-навигатора. Каталог/манифест и персист — в
10
- * `useNavigatorVoice`; компонент только презентационный.
9
+ * Порт DOM-меню из веб-навигатора. Персист и TTS — в `useNavigatorTts`.
11
10
  */
12
11
  export function NavigatorVoiceControl({
13
12
  theme,
14
13
  strings,
15
- catalog,
16
- selectedDir,
14
+ voiceEntries,
15
+ selectedVoiceKey,
17
16
  voiceEnabled,
18
17
  volumeLevel,
19
18
  onSelectVoice,
@@ -21,7 +20,7 @@ export function NavigatorVoiceControl({
21
20
  onDisable
22
21
  }) {
23
22
  const [open, setOpen] = useState(false);
24
- if (catalog.length === 0) return null;
23
+ if (voiceEntries.length === 0) return null;
25
24
  return /*#__PURE__*/_jsxs(_Fragment, {
26
25
  children: [/*#__PURE__*/_jsx(Pressable, {
27
26
  accessibilityRole: "button",
@@ -75,13 +74,13 @@ export function NavigatorVoiceControl({
75
74
  style: {
76
75
  maxHeight: 280
77
76
  },
78
- children: [catalog.map(entry => {
79
- const active = voiceEnabled && entry.dir === selectedDir;
77
+ children: [voiceEntries.map(([voiceKey, label]) => {
78
+ const active = voiceEnabled && voiceKey === selectedVoiceKey;
80
79
  return /*#__PURE__*/_jsx(Pressable, {
81
80
  accessibilityRole: "menuitem",
82
81
  onPress: () => {
83
82
  setOpen(false);
84
- onSelectVoice(entry.dir);
83
+ onSelectVoice(voiceKey);
85
84
  },
86
85
  style: {
87
86
  paddingVertical: 10,
@@ -93,9 +92,9 @@ export function NavigatorVoiceControl({
93
92
  color: active ? theme.iconForeground : theme.foreground,
94
93
  fontWeight: active ? '600' : '400'
95
94
  },
96
- children: entry.name
95
+ children: label
97
96
  })
98
- }, entry.dir);
97
+ }, voiceKey);
99
98
  }), /*#__PURE__*/_jsxs(View, {
100
99
  style: {
101
100
  marginTop: 4,
@@ -1 +1 @@
1
- {"version":3,"names":["useState","Pressable","ScrollView","Text","View","NavigatorVoiceIcon","jsx","_jsx","jsxs","_jsxs","Fragment","_Fragment","NavigatorVoiceControl","theme","strings","catalog","selectedDir","voiceEnabled","volumeLevel","onSelectVoice","onSelectVolume","onDisable","open","setOpen","length","children","accessibilityRole","accessibilityLabel","voicePickerAria","onPress","v","style","pressed","position","right","bottom","width","height","borderRadius","alignItems","justifyContent","backgroundColor","background","shadowColor","shadowOpacity","shadowRadius","shadowOffset","elevation","opacity","color","iconForeground","muted","minWidth","maxWidth","paddingVertical","maxHeight","map","entry","active","dir","paddingHorizontal","fontSize","foreground","fontWeight","name","marginTop","paddingTop","borderTopWidth","borderTopColor","marginBottom","voiceVolumeLabel","flexDirection","gap","step","stepActive","voiceVolumeStepAria","flex","paddingBottom","Math","max","voiceDisable"],"sourceRoot":"../../../src","sources":["components/NavigatorVoiceControl.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["useState","Pressable","ScrollView","Text","View","NavigatorVoiceIcon","jsx","_jsx","jsxs","_jsxs","Fragment","_Fragment","NavigatorVoiceControl","theme","strings","voiceEntries","selectedVoiceKey","voiceEnabled","volumeLevel","onSelectVoice","onSelectVolume","onDisable","open","setOpen","length","children","accessibilityRole","accessibilityLabel","voicePickerAria","onPress","v","style","pressed","position","right","bottom","width","height","borderRadius","alignItems","justifyContent","backgroundColor","background","shadowColor","shadowOpacity","shadowRadius","shadowOffset","elevation","opacity","color","iconForeground","muted","minWidth","maxWidth","paddingVertical","maxHeight","map","voiceKey","label","active","paddingHorizontal","fontSize","foreground","fontWeight","marginTop","paddingTop","borderTopWidth","borderTopColor","marginBottom","voiceVolumeLabel","flexDirection","gap","step","stepActive","voiceVolumeStepAria","flex","paddingBottom","Math","max","voiceDisable"],"sourceRoot":"../../../src","sources":["components/NavigatorVoiceControl.tsx"],"mappings":"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","ignoreList":[]}
@@ -4,10 +4,8 @@ import { forwardRef, useImperativeHandle, useMemo, useRef, useState } from 'reac
4
4
  import Video from 'react-native-video';
5
5
 
6
6
  /**
7
- * Последовательный проигрыватель клипов озвучки навигатора. Порт логики
8
- * очереди из `webProject/src/map/navigationVoicePlayer.ts` на `react-native-video`:
9
- * веб присылает список ключей фраз, нативная часть собирает из них URL и
10
- * проигрывает их по очереди с короткой паузой между клипами.
7
+ * Проигрыватель озвучки навигатора на `react-native-video`.
8
+ * Нативная часть передаёт URL аудио (из `ttsHandler`) и проигрывает очередь.
11
9
  *
12
10
  * Один экземпляр `<Video>` на всю сессию — между клипами меняется только source
13
11
  * (или seek(0) при повторе того же URL), без remount.
@@ -1 +1 @@
1
- {"version":3,"names":["forwardRef","useImperativeHandle","useMemo","useRef","useState","Video","jsx","_jsx","CLIP_PAUSE_MS","NavigatorVoicePlayer","props","ref","sourceUri","setSourceUri","playing","setPlaying","volume","setVolume","initialVolume","Math","min","max","videoRef","queueRef","indexRef","genRef","clipGenRef","loadedUriRef","pauseTimerRef","clearPause","current","clearTimeout","playClip","gen","uri","seek","resume","scheduleNext","length","setTimeout","handleEnd","handleLoad","playUrls","urls","pause","stop","gain","source","shouldCache","paused","repeat","ignoreSilentSwitch","playInBackground","onLoad","onEnd","onError","style","width","height","displayName"],"sourceRoot":"../../../src","sources":["components/navigatorVoicePlayer.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["forwardRef","useImperativeHandle","useMemo","useRef","useState","Video","jsx","_jsx","CLIP_PAUSE_MS","NavigatorVoicePlayer","props","ref","sourceUri","setSourceUri","playing","setPlaying","volume","setVolume","initialVolume","Math","min","max","videoRef","queueRef","indexRef","genRef","clipGenRef","loadedUriRef","pauseTimerRef","clearPause","current","clearTimeout","playClip","gen","uri","seek","resume","scheduleNext","length","setTimeout","handleEnd","handleLoad","playUrls","urls","pause","stop","gain","source","shouldCache","paused","repeat","ignoreSilentSwitch","playInBackground","onLoad","onEnd","onError","style","width","height","displayName"],"sourceRoot":"../../../src","sources":["components/navigatorVoicePlayer.tsx"],"mappings":"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","ignoreList":[]}
@@ -28,10 +28,14 @@ export const NAVIGATOR_PROFILE_IDS = ['car', 'car_avoid_motorway', 'car_avoid_fe
28
28
  /** Действие озвучки в событии `navigatorVoice`. */
29
29
 
30
30
  /**
31
- * Web → RN: `navigatorVoice` event. Веб шлёт абстрактные ключи фраз;
32
- * нативная часть мапит их в URL клипов и воспроизводит.
31
+ * Web → RN: `navigatorVoice` event. Веб собирает полную фразу и шлёт текст;
32
+ * нативная часть вызывает `ttsHandler` и воспроизводит URL аудио.
33
33
  */
34
34
 
35
+ /** Голоса TTS: ключ → подпись в UI выбора голоса. */
36
+
37
+ /** Колбэк TTS: текст фразы + ключ голоса → URL аудио для воспроизведения. */
38
+
35
39
  /** Parsed MapLibre style JSON — `InitParams.mapStyle` / `UpdateParams.mapStyle` в WebView. */
36
40
 
37
41
  /** RN → Web: `init` (`MapLiteController.InitParams`). */
@@ -1 +1 @@
1
- {"version":3,"names":["NAVIGATOR_PROFILE_IDS"],"sourceRoot":"../../../src","sources":["components/types.ts"],"mappings":";;AAAA;;AAYA;;AAQA;;AAWA;;AAkBA;;AAWA;AACA;AACA;AACA;;AAgBA;AACA,OAAO,MAAMA,qBAAqB,GAAG,CACjC,KAAK,EACL,oBAAoB,EACpB,iBAAiB,EACjB,gBAAgB,EAChB,aAAa,EACb,OAAO,EACP,SAAS,EACT,MAAM,EACN,MAAM,EACN,MAAM,EACN,KAAK,EACL,YAAY,EACZ,YAAY,CACN;;AAIV;;AA8BA;AACA;AACA;AACA;;AAwBA;;AAGA;AACA;AACA;AACA;;AAWA;;AAGA;;AA0BA;;AASA;;AAOA;;AAOA;;AAMA;AACA;AACA;AACA;;AAOA;;AAKA;;AAmBA;;AAWA;;AAkBA","ignoreList":[]}
1
+ {"version":3,"names":["NAVIGATOR_PROFILE_IDS"],"sourceRoot":"../../../src","sources":["components/types.ts"],"mappings":";;AAAA;;AAYA;;AAQA;;AAWA;;AAkBA;;AAWA;AACA;AACA;AACA;;AAgBA;AACA,OAAO,MAAMA,qBAAqB,GAAG,CACjC,KAAK,EACL,oBAAoB,EACpB,iBAAiB,EACjB,gBAAgB,EAChB,aAAa,EACb,OAAO,EACP,SAAS,EACT,MAAM,EACN,MAAM,EACN,MAAM,EACN,KAAK,EACL,YAAY,EACZ,YAAY,CACN;;AAIV;;AA8BA;AACA;AACA;AACA;;AAwBA;;AAGA;AACA;AACA;AACA;;AAMA;;AAGA;;AAWA;;AAGA;;AA0BA;;AASA;;AAOA;;AAOA;;AAMA;AACA;AACA;AACA;;AAOA;;AAKA;;AAmBA;;AAWA;;AAkBA","ignoreList":[]}
@@ -0,0 +1,154 @@
1
+ "use strict";
2
+
3
+ import { useCallback, useEffect, useRef, useState } from 'react';
4
+ import AsyncStorage from '@react-native-async-storage/async-storage';
5
+ const LS_TTS_VOICE_PREF = 'maplite-navigator-tts-voice-pref';
6
+ const LS_VOICE_VOLUME = 'maplite-navigator-voice-volume';
7
+ const DEFAULT_VOICE_VOLUME_LEVEL = 5;
8
+ export function volumeLevelToGain(level) {
9
+ return level * 0.2;
10
+ }
11
+ export async function readVoiceVolumeLevel() {
12
+ try {
13
+ const raw = await AsyncStorage.getItem(LS_VOICE_VOLUME);
14
+ if (!raw) return DEFAULT_VOICE_VOLUME_LEVEL;
15
+ const n = Number.parseInt(raw, 10);
16
+ if (n >= 1 && n <= 5) return n;
17
+ } catch {
18
+ /* ignore */
19
+ }
20
+ return DEFAULT_VOICE_VOLUME_LEVEL;
21
+ }
22
+ export async function writeVoiceVolumeLevel(level) {
23
+ try {
24
+ await AsyncStorage.setItem(LS_VOICE_VOLUME, String(level));
25
+ } catch {
26
+ /* ignore */
27
+ }
28
+ }
29
+ export async function readTtsVoicePref() {
30
+ try {
31
+ const raw = await AsyncStorage.getItem(LS_TTS_VOICE_PREF);
32
+ if (!raw) return null;
33
+ const parsed = JSON.parse(raw);
34
+ if (parsed && typeof parsed === 'object' && 'disabled' in parsed && parsed.disabled === true) {
35
+ return {
36
+ disabled: true
37
+ };
38
+ }
39
+ if (parsed && typeof parsed === 'object' && 'voiceKey' in parsed && typeof parsed.voiceKey === 'string') {
40
+ const voiceKey = parsed.voiceKey.trim();
41
+ if (voiceKey) return {
42
+ voiceKey
43
+ };
44
+ }
45
+ } catch {
46
+ /* ignore */
47
+ }
48
+ return null;
49
+ }
50
+ export async function writeTtsVoicePref(pref) {
51
+ try {
52
+ await AsyncStorage.setItem(LS_TTS_VOICE_PREF, JSON.stringify(pref));
53
+ } catch {
54
+ /* ignore */
55
+ }
56
+ }
57
+ function defaultVoiceKey(voices) {
58
+ const keys = Object.keys(voices);
59
+ return keys.length > 0 ? keys[0] : null;
60
+ }
61
+ function resolveVoiceKey(voices, pref) {
62
+ if (pref && 'voiceKey' in pref && pref.voiceKey in voices) {
63
+ return pref.voiceKey;
64
+ }
65
+ return defaultVoiceKey(voices);
66
+ }
67
+
68
+ /**
69
+ * Нативное владение TTS навигатора: выбор голоса/громкости, персист,
70
+ * кэш URL по (voiceKey, text). Веб шлёт готовый текст фразы.
71
+ */
72
+
73
+ export function useNavigatorTts(ttsVoices, ttsHandler) {
74
+ const [selectedVoiceKey, setSelectedVoiceKey] = useState(null);
75
+ const [voiceEnabled, setVoiceEnabled] = useState(true);
76
+ const [volumeLevel, setVolumeLevel] = useState(5);
77
+ const urlCacheRef = useRef(new Map());
78
+ const voiceEntries = Object.entries(ttsVoices ?? {});
79
+ const ttsActive = voiceEntries.length > 0 && typeof ttsHandler === 'function';
80
+ useEffect(() => {
81
+ let cancelled = false;
82
+ void readVoiceVolumeLevel().then(lvl => {
83
+ if (!cancelled) setVolumeLevel(lvl);
84
+ });
85
+ if (!ttsActive) {
86
+ setSelectedVoiceKey(null);
87
+ setVoiceEnabled(false);
88
+ return () => {
89
+ cancelled = true;
90
+ };
91
+ }
92
+ void readTtsVoicePref().then(pref => {
93
+ if (cancelled) return;
94
+ if (pref && 'disabled' in pref) {
95
+ setVoiceEnabled(false);
96
+ setSelectedVoiceKey(resolveVoiceKey(ttsVoices, pref));
97
+ return;
98
+ }
99
+ setVoiceEnabled(true);
100
+ setSelectedVoiceKey(resolveVoiceKey(ttsVoices, pref));
101
+ });
102
+ return () => {
103
+ cancelled = true;
104
+ };
105
+ }, [ttsActive, ttsVoices]);
106
+ const selectVoice = useCallback(async voiceKey => {
107
+ if (!ttsVoices || !(voiceKey in ttsVoices)) return;
108
+ setSelectedVoiceKey(voiceKey);
109
+ setVoiceEnabled(true);
110
+ await writeTtsVoicePref({
111
+ voiceKey
112
+ });
113
+ }, [ttsVoices]);
114
+ const selectVolume = useCallback(level => {
115
+ setVolumeLevel(level);
116
+ void writeVoiceVolumeLevel(level);
117
+ }, []);
118
+ const disableVoice = useCallback(async () => {
119
+ await writeTtsVoicePref({
120
+ disabled: true
121
+ });
122
+ setVoiceEnabled(false);
123
+ }, []);
124
+ const synthesize = useCallback(async text => {
125
+ if (!ttsHandler || !voiceEnabled || !selectedVoiceKey) return null;
126
+ const trimmed = text.trim();
127
+ if (!trimmed) return null;
128
+ const cacheKey = `${selectedVoiceKey}\0${trimmed}`;
129
+ const cached = urlCacheRef.current.get(cacheKey);
130
+ if (cached) return cached;
131
+ try {
132
+ const url = await ttsHandler(trimmed, selectedVoiceKey);
133
+ if (typeof url === 'string' && url.trim()) {
134
+ const u = url.trim();
135
+ urlCacheRef.current.set(cacheKey, u);
136
+ return u;
137
+ }
138
+ } catch (err) {
139
+ console.warn('[maplite] navigator TTS failed', err);
140
+ }
141
+ return null;
142
+ }, [ttsHandler, voiceEnabled, selectedVoiceKey]);
143
+ return {
144
+ voiceEntries: ttsActive ? voiceEntries : [],
145
+ selectedVoiceKey: ttsActive ? selectedVoiceKey : null,
146
+ voiceEnabled: ttsActive && voiceEnabled,
147
+ volumeLevel,
148
+ synthesize,
149
+ selectVoice,
150
+ selectVolume,
151
+ disableVoice
152
+ };
153
+ }
154
+ //# sourceMappingURL=useNavigatorTts.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["useCallback","useEffect","useRef","useState","AsyncStorage","LS_TTS_VOICE_PREF","LS_VOICE_VOLUME","DEFAULT_VOICE_VOLUME_LEVEL","volumeLevelToGain","level","readVoiceVolumeLevel","raw","getItem","n","Number","parseInt","writeVoiceVolumeLevel","setItem","String","readTtsVoicePref","parsed","JSON","parse","disabled","voiceKey","trim","writeTtsVoicePref","pref","stringify","defaultVoiceKey","voices","keys","Object","length","resolveVoiceKey","useNavigatorTts","ttsVoices","ttsHandler","selectedVoiceKey","setSelectedVoiceKey","voiceEnabled","setVoiceEnabled","volumeLevel","setVolumeLevel","urlCacheRef","Map","voiceEntries","entries","ttsActive","cancelled","then","lvl","selectVoice","selectVolume","disableVoice","synthesize","text","trimmed","cacheKey","cached","current","get","url","u","set","err","console","warn"],"sourceRoot":"../../../src","sources":["components/useNavigatorTts.ts"],"mappings":"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","ignoreList":[]}