react-native-maplibre-lite 0.1.9 → 0.2.1

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 (78) hide show
  1. package/README.md +92 -6
  2. package/lib/module/components/MapView.js +167 -48
  3. package/lib/module/components/MapView.js.map +1 -1
  4. package/lib/module/components/NavigatorHud.js +152 -0
  5. package/lib/module/components/NavigatorHud.js.map +1 -0
  6. package/lib/module/components/NavigatorRecenterButton.js +48 -0
  7. package/lib/module/components/NavigatorRecenterButton.js.map +1 -0
  8. package/lib/module/components/NavigatorVoiceControl.js +173 -0
  9. package/lib/module/components/NavigatorVoiceControl.js.map +1 -0
  10. package/lib/module/components/navigatorChromeTheme.js +98 -0
  11. package/lib/module/components/navigatorChromeTheme.js.map +1 -0
  12. package/lib/module/components/navigatorManeuverIcon.js +210 -0
  13. package/lib/module/components/navigatorManeuverIcon.js.map +1 -0
  14. package/lib/module/components/navigatorVoiceCatalog.js +225 -0
  15. package/lib/module/components/navigatorVoiceCatalog.js.map +1 -0
  16. package/lib/module/components/navigatorVoiceKeys.js +14 -0
  17. package/lib/module/components/navigatorVoiceKeys.js.map +1 -0
  18. package/lib/module/components/navigatorVoicePlayer.js +100 -0
  19. package/lib/module/components/navigatorVoicePlayer.js.map +1 -0
  20. package/lib/module/components/navigatorVoiceStrings.js +31 -0
  21. package/lib/module/components/navigatorVoiceStrings.js.map +1 -0
  22. package/lib/module/components/types.js +47 -0
  23. package/lib/module/components/types.js.map +1 -1
  24. package/lib/module/components/useNavigatorVoice.js +78 -0
  25. package/lib/module/components/useNavigatorVoice.js.map +1 -0
  26. package/lib/module/components/utils.js +26 -0
  27. package/lib/module/components/utils.js.map +1 -1
  28. package/lib/module/components/webMapBuild.js +1 -1
  29. package/lib/module/components/webMapBuild.js.map +1 -1
  30. package/lib/module/index.js.map +1 -1
  31. package/lib/typescript/src/components/MapView.d.ts +15 -2
  32. package/lib/typescript/src/components/MapView.d.ts.map +1 -1
  33. package/lib/typescript/src/components/NavigatorHud.d.ts +13 -0
  34. package/lib/typescript/src/components/NavigatorHud.d.ts.map +1 -0
  35. package/lib/typescript/src/components/NavigatorRecenterButton.d.ts +11 -0
  36. package/lib/typescript/src/components/NavigatorRecenterButton.d.ts.map +1 -0
  37. package/lib/typescript/src/components/NavigatorVoiceControl.d.ts +20 -0
  38. package/lib/typescript/src/components/NavigatorVoiceControl.d.ts.map +1 -0
  39. package/lib/typescript/src/components/navigatorChromeTheme.d.ts +19 -0
  40. package/lib/typescript/src/components/navigatorChromeTheme.d.ts.map +1 -0
  41. package/lib/typescript/src/components/navigatorManeuverIcon.d.ts +20 -0
  42. package/lib/typescript/src/components/navigatorManeuverIcon.d.ts.map +1 -0
  43. package/lib/typescript/src/components/navigatorVoiceCatalog.d.ts +50 -0
  44. package/lib/typescript/src/components/navigatorVoiceCatalog.d.ts.map +1 -0
  45. package/lib/typescript/src/components/navigatorVoiceKeys.d.ts +10 -0
  46. package/lib/typescript/src/components/navigatorVoiceKeys.d.ts.map +1 -0
  47. package/lib/typescript/src/components/navigatorVoicePlayer.d.ts +15 -0
  48. package/lib/typescript/src/components/navigatorVoicePlayer.d.ts.map +1 -0
  49. package/lib/typescript/src/components/navigatorVoiceStrings.d.ts +19 -0
  50. package/lib/typescript/src/components/navigatorVoiceStrings.d.ts.map +1 -0
  51. package/lib/typescript/src/components/types.d.ts +205 -12
  52. package/lib/typescript/src/components/types.d.ts.map +1 -1
  53. package/lib/typescript/src/components/useNavigatorVoice.d.ts +20 -0
  54. package/lib/typescript/src/components/useNavigatorVoice.d.ts.map +1 -0
  55. package/lib/typescript/src/components/utils.d.ts +9 -0
  56. package/lib/typescript/src/components/utils.d.ts.map +1 -1
  57. package/lib/typescript/src/components/webMapBuild.d.ts +1 -1
  58. package/lib/typescript/src/components/webMapBuild.d.ts.map +1 -1
  59. package/lib/typescript/src/index.d.ts +1 -1
  60. package/lib/typescript/src/index.d.ts.map +1 -1
  61. package/package.json +16 -7
  62. package/resources/README.md +62 -0
  63. package/resources/map.html +797 -0
  64. package/src/components/MapView.tsx +209 -58
  65. package/src/components/NavigatorHud.tsx +166 -0
  66. package/src/components/NavigatorRecenterButton.tsx +45 -0
  67. package/src/components/NavigatorVoiceControl.tsx +198 -0
  68. package/src/components/navigatorChromeTheme.ts +118 -0
  69. package/src/components/navigatorManeuverIcon.tsx +177 -0
  70. package/src/components/navigatorVoiceCatalog.ts +275 -0
  71. package/src/components/navigatorVoiceKeys.ts +132 -0
  72. package/src/components/navigatorVoicePlayer.tsx +126 -0
  73. package/src/components/navigatorVoiceStrings.ts +42 -0
  74. package/src/components/types.ts +198 -16
  75. package/src/components/useNavigatorVoice.ts +96 -0
  76. package/src/components/utils.ts +28 -0
  77. package/src/components/webMapBuild.ts +1 -1
  78. package/src/index.tsx +19 -0
@@ -1 +1 @@
1
- {"version":3,"names":["MAP_HTML"],"sourceRoot":"../../../src","sources":["components/webMapBuild.ts"],"mappings":"aAAA;AACA;AAEA,MAAO,MAAM,CAAAA,QAAQ,CAAG,08jzCAA08jzC","ignoreList":[]}
1
+ {"version":3,"names":["MAP_HTML"],"sourceRoot":"../../../src","sources":["components/webMapBuild.ts"],"mappings":"aAAA;AACA;AAEA,MAAO,MAAM,CAAAA,QAAQ,CAAG,uz0zCAAuz0zC","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"names":["MapView","Marker","Polygon","Polyline","NAVIGATOR_PROFILE_IDS"],"sourceRoot":"../../src","sources":["index.tsx"],"mappings":";;AAAA,SAASA,OAAO,QAAQ,yBAAsB;AAC9C,SAASC,MAAM,QAAQ,wBAAqB;AAC5C,SAASC,OAAO,QAAQ,yBAAsB;AAC9C,SAASC,QAAQ,QAAQ,0BAAuB;AAEhD,SAASH,OAAO,EAAEC,MAAM,EAAEC,OAAO,EAAEC,QAAQ;AAC3C,eAAeH,OAAO;AAmBtB,SAASI,qBAAqB,QAAQ,uBAAoB","ignoreList":[]}
1
+ {"version":3,"names":["MapView","Marker","Polygon","Polyline","NAVIGATOR_PROFILE_IDS"],"sourceRoot":"../../src","sources":["index.tsx"],"mappings":";;AAAA,SAASA,OAAO,QAAQ,yBAAsB;AAC9C,SAASC,MAAM,QAAQ,wBAAqB;AAC5C,SAASC,OAAO,QAAQ,yBAAsB;AAC9C,SAASC,QAAQ,QAAQ,0BAAuB;AAEhD,SAASH,OAAO,EAAEC,MAAM,EAAEC,OAAO,EAAEC,QAAQ;AAC3C,eAAeH,OAAO;AAsCtB,SAASI,qBAAqB,QAAQ,uBAAoB","ignoreList":[]}
@@ -1,5 +1,5 @@
1
1
  import { type StyleProp, type ViewStyle } from 'react-native';
2
- import { type EventParams, type MapLiteWebError, type MarkerProps, type NavigatorChromeParams, type NavigatorInstructionParams, type NavigatorLang, type NavigatorProfile, type NavigatorPositionSetParams, type NavigatorRouteSetParams, type PolygonProps, type PolylineProps } from './types';
2
+ import { type EventParams, type MapLiteMapErrorEventParams, type MapLiteWebError, type MarkerProps, type NavigatorChromeParams, type NavigatorInstructionParams, type NavigatorLang, type NavigatorProfile, type NavigatorPositionSetParams, type NavigatorRouteSetParams, type PolygonProps, type PolylineProps } from './types';
3
3
  interface MapViewProps {
4
4
  children?: React.ReactNode;
5
5
  placeholderTheme?: 'light' | 'dark';
@@ -22,6 +22,8 @@ interface MapViewProps {
22
22
  onZoomStart?: (eventParams: EventParams) => void;
23
23
  onZoomEnd?: (eventParams: EventParams) => void;
24
24
  onIdle?: (eventParams: EventParams) => void;
25
+ /** MapLibre `error` из WebView (`event: 'error'`). */
26
+ onMapError?: (params: MapLiteMapErrorEventParams) => void;
25
27
  showSelectPoint?: boolean;
26
28
  selectPointColor?: string;
27
29
  selectPointBackgroundColor?: string;
@@ -50,11 +52,22 @@ interface MapViewProps {
50
52
  * Sent once in WebView `init` as `navigatorChrome`.
51
53
  */
52
54
  navigatorChrome?: NavigatorChromeParams;
55
+ /**
56
+ * URL каталога голосов навигатора (`.../voices/data.json`). Каталог,
57
+ * манифест, выбор голоса/громкости и воспроизведение — на нативной
58
+ * стороне. Без него озвучка и FAB выбора голоса отключены.
59
+ */
60
+ navigatorVoiceUrl?: string;
53
61
  onNavigatorRouteSet?: (params: NavigatorRouteSetParams) => void;
54
62
  onNavigatorInstruction?: (params: NavigatorInstructionParams) => void;
55
63
  onNavigatorPositionSet?: (params: NavigatorPositionSetParams) => void;
56
64
  /** Ошибки команд WebView (`type: 'error'` из карты). */
57
65
  onMapLiteError?: (err: MapLiteWebError) => void;
66
+ /**
67
+ * Загружать WebView из `map.html` в нативных ресурсах приложения вместо inline `MAP_HTML`.
68
+ * Размещение файла — см. `resources/README.md`.
69
+ */
70
+ useNativeMapHtml?: boolean;
58
71
  developerLocalhostBundleUrl?: string;
59
72
  }
60
73
  export type MapViewRef = {
@@ -67,7 +80,7 @@ export type MapViewRef = {
67
80
  /**
68
81
  * Обновить «текущую позицию» (GPS): snap / reroute / прибытие — на стороне WebView.
69
82
  */
70
- setNavigatorPosition: (latitude: number, longitude: number) => void;
83
+ setNavigatorPosition: (latitude: number, longitude: number, accuracy?: number) => void;
71
84
  /** Режим «клик по карте = новая позиция» (удобно в dev). */
72
85
  pickNavigatorPosition: () => void;
73
86
  };
@@ -1 +1 @@
1
- {"version":3,"file":"MapView.d.ts","sourceRoot":"","sources":["../../../../src/components/MapView.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"MapView.d.ts","sourceRoot":"","sources":["../../../../src/components/MapView.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,13 @@
1
+ import type { NavigatorChromeTheme } from './navigatorChromeTheme';
2
+ import type { NavigatorHudState } from './types';
3
+ /**
4
+ * Нативная панель навигатора (HUD): порт DOM-плашки из веб-навигатора.
5
+ * Получает уже отформатированную view-model (`navigatorHud`) и тему из
6
+ * `navigatorChrome`; вся локализация/форматирование остаются в вебе.
7
+ */
8
+ export declare function NavigatorHud({ state, theme, pickHint, }: {
9
+ state: NavigatorHudState | null;
10
+ theme: NavigatorChromeTheme;
11
+ pickHint: string;
12
+ }): import("react/jsx-runtime").JSX.Element | null;
13
+ //# sourceMappingURL=NavigatorHud.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"NavigatorHud.d.ts","sourceRoot":"","sources":["../../../../src/components/NavigatorHud.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AACnE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC;AAEjD;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,EACzB,KAAK,EACL,KAAK,EACL,QAAQ,GACX,EAAE;IACC,KAAK,EAAE,iBAAiB,GAAG,IAAI,CAAC;IAChC,KAAK,EAAE,oBAAoB,CAAC;IAC5B,QAAQ,EAAE,MAAM,CAAC;CACpB,kDAkJA"}
@@ -0,0 +1,11 @@
1
+ import type { NavigatorChromeTheme } from './navigatorChromeTheme';
2
+ /**
3
+ * FAB «вернуть камеру на положение». При нажатии шлёт команду
4
+ * `recenterNavigatorCamera` в WebView — навигатор делает recenter.
5
+ */
6
+ export declare function NavigatorRecenterButton({ theme, accessibilityLabel, onPress, }: {
7
+ theme: NavigatorChromeTheme;
8
+ accessibilityLabel: string;
9
+ onPress: () => void;
10
+ }): import("react/jsx-runtime").JSX.Element;
11
+ //# sourceMappingURL=NavigatorRecenterButton.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"NavigatorRecenterButton.d.ts","sourceRoot":"","sources":["../../../../src/components/NavigatorRecenterButton.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAEnE;;;GAGG;AACH,wBAAgB,uBAAuB,CAAC,EACpC,KAAK,EACL,kBAAkB,EAClB,OAAO,GACV,EAAE;IACC,KAAK,EAAE,oBAAoB,CAAC;IAC5B,kBAAkB,EAAE,MAAM,CAAC;IAC3B,OAAO,EAAE,MAAM,IAAI,CAAC;CACvB,2CA2BA"}
@@ -0,0 +1,20 @@
1
+ import type { NavigatorChromeTheme } from './navigatorChromeTheme';
2
+ import type { VoiceCatalogEntry, VoiceVolumeLevel } from './navigatorVoiceCatalog';
3
+ import type { NavigatorUiStrings } from './navigatorVoiceStrings';
4
+ /**
5
+ * FAB выбора голоса + меню (список голосов, громкость 1–5, «отключить»).
6
+ * Порт DOM-меню из веб-навигатора. Каталог/манифест и персист — в
7
+ * `useNavigatorVoice`; компонент только презентационный.
8
+ */
9
+ export declare function NavigatorVoiceControl({ theme, strings, catalog, selectedDir, voiceEnabled, volumeLevel, onSelectVoice, onSelectVolume, onDisable, }: {
10
+ theme: NavigatorChromeTheme;
11
+ strings: NavigatorUiStrings;
12
+ catalog: VoiceCatalogEntry[];
13
+ selectedDir: string | null;
14
+ voiceEnabled: boolean;
15
+ volumeLevel: VoiceVolumeLevel;
16
+ onSelectVoice: (dir: string) => void;
17
+ onSelectVolume: (level: VoiceVolumeLevel) => void;
18
+ onDisable: () => void;
19
+ }): import("react/jsx-runtime").JSX.Element | null;
20
+ //# sourceMappingURL=NavigatorVoiceControl.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"NavigatorVoiceControl.d.ts","sourceRoot":"","sources":["../../../../src/components/NavigatorVoiceControl.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AACnE,OAAO,KAAK,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AACnF,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAElE;;;;GAIG;AACH,wBAAgB,qBAAqB,CAAC,EAClC,KAAK,EACL,OAAO,EACP,OAAO,EACP,WAAW,EACX,YAAY,EACZ,WAAW,EACX,aAAa,EACb,cAAc,EACd,SAAS,GACZ,EAAE;IACC,KAAK,EAAE,oBAAoB,CAAC;IAC5B,OAAO,EAAE,kBAAkB,CAAC;IAC5B,OAAO,EAAE,iBAAiB,EAAE,CAAC;IAC7B,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,YAAY,EAAE,OAAO,CAAC;IACtB,WAAW,EAAE,gBAAgB,CAAC;IAC9B,aAAa,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;IACrC,cAAc,EAAE,CAAC,KAAK,EAAE,gBAAgB,KAAK,IAAI,CAAC;IAClD,SAAS,EAAE,MAAM,IAAI,CAAC;CACzB,kDAoKA"}
@@ -0,0 +1,19 @@
1
+ import type { NavigatorChromeParams } from './types';
2
+ /**
3
+ * Цвета HUD/FAB навигатора, выведенные из `navigatorChrome`. Порт
4
+ * HUD-части `resolveNavigatorChrome` из веб-навигатора: раньше эти
5
+ * CSS-переменные применялись к DOM, теперь панель рисует нативная часть.
6
+ */
7
+ export type NavigatorChromeTheme = {
8
+ background: string;
9
+ foreground: string;
10
+ subtle: string;
11
+ muted: string;
12
+ summary: string;
13
+ divider: string;
14
+ iconBackground: string;
15
+ iconForeground: string;
16
+ shadow: string;
17
+ };
18
+ export declare function resolveNavigatorChromeTheme(input?: NavigatorChromeParams | null): NavigatorChromeTheme;
19
+ //# sourceMappingURL=navigatorChromeTheme.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"navigatorChromeTheme.d.ts","sourceRoot":"","sources":["../../../../src/components/navigatorChromeTheme.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,SAAS,CAAC;AAErD;;;;GAIG;AACH,MAAM,MAAM,oBAAoB,GAAG;IAC/B,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,cAAc,EAAE,MAAM,CAAC;IACvB,cAAc,EAAE,MAAM,CAAC;IACvB,MAAM,EAAE,MAAM,CAAC;CAClB,CAAC;AA+DF,wBAAgB,2BAA2B,CACvC,KAAK,CAAC,EAAE,qBAAqB,GAAG,IAAI,GACrC,oBAAoB,CAmCtB"}
@@ -0,0 +1,20 @@
1
+ /**
2
+ * SVG-иконка манёвра навигатора. Порт `getSignIcon` из веб-части
3
+ * (`webProject/src/map/navigator.ts`) на `react-native-svg`.
4
+ */
5
+ export declare function NavigatorManeuverIcon({ sign, color, size, }: {
6
+ sign: number;
7
+ color: string;
8
+ size?: number;
9
+ }): import("react/jsx-runtime").JSX.Element;
10
+ /** Иконка кнопки «вернуть камеру на положение» (порт из веб recenter FAB). */
11
+ export declare function NavigatorRecenterIcon({ color, size, }: {
12
+ color: string;
13
+ size?: number;
14
+ }): import("react/jsx-runtime").JSX.Element;
15
+ /** Иконка кнопки выбора голоса озвучки (порт из веб voice FAB). */
16
+ export declare function NavigatorVoiceIcon({ color, size, }: {
17
+ color: string;
18
+ size?: number;
19
+ }): import("react/jsx-runtime").JSX.Element;
20
+ //# sourceMappingURL=navigatorManeuverIcon.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"navigatorManeuverIcon.d.ts","sourceRoot":"","sources":["../../../../src/components/navigatorManeuverIcon.tsx"],"names":[],"mappings":"AAEA;;;GAGG;AACH,wBAAgB,qBAAqB,CAAC,EAClC,IAAI,EACJ,KAAK,EACL,IAAS,GACZ,EAAE;IACC,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;CACjB,2CAkGA;AAED,8EAA8E;AAC9E,wBAAgB,qBAAqB,CAAC,EAClC,KAAK,EACL,IAAS,GACZ,EAAE;IACC,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;CACjB,2CAoBA;AAED,mEAAmE;AACnE,wBAAgB,kBAAkB,CAAC,EAC/B,KAAK,EACL,IAAS,GACZ,EAAE;IACC,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;CACjB,2CA0BA"}
@@ -0,0 +1,50 @@
1
+ /**
2
+ * Каталог/манифест голосов навигатора и персист настроек. Порт
3
+ * `webProject/src/map/navigationVoiceCatalog.ts` на нативную часть:
4
+ * localStorage → AsyncStorage, плюс маппинг ключей фраз в URL клипов.
5
+ */
6
+ export type VoiceCatalogEntry = {
7
+ dir: string;
8
+ name: string;
9
+ locale: string;
10
+ };
11
+ /** Per-voice manifest from S3: phrase key → variant ids. */
12
+ export type VoiceManifest = Record<string, string[]>;
13
+ export type VoicePref = {
14
+ dir: string;
15
+ } | {
16
+ disabled: true;
17
+ };
18
+ export type VoiceRuntime = {
19
+ catalogUrl: string;
20
+ catalog: VoiceCatalogEntry[];
21
+ selectedDir: string;
22
+ clipBaseUrl: string;
23
+ manifest: VoiceManifest | null;
24
+ enabled: boolean;
25
+ };
26
+ export type VoiceVolumeLevel = 1 | 2 | 3 | 4 | 5;
27
+ export declare function volumeLevelToGain(level: VoiceVolumeLevel): number;
28
+ export declare function readVoiceVolumeLevel(): Promise<VoiceVolumeLevel>;
29
+ export declare function writeVoiceVolumeLevel(level: VoiceVolumeLevel): Promise<void>;
30
+ export declare function readVoicePref(): Promise<VoicePref | null>;
31
+ export declare function writeVoicePref(pref: VoicePref): Promise<void>;
32
+ export declare function resolveVoiceCatalogUrl(url: string): string | null;
33
+ /** Base URL for a voice directory: `.../voices/{dir}`. */
34
+ export declare function voiceDirBaseUrl(catalogUrl: string, dir: string): string;
35
+ export declare function fetchVoiceCatalog(catalogUrl: string): Promise<VoiceCatalogEntry[]>;
36
+ export declare function fetchVoiceManifest(clipBaseUrl: string): Promise<VoiceManifest>;
37
+ /**
38
+ * Loads catalog + user preference + optional per-voice manifest.
39
+ * When pref is `{ disabled: true }`, returns `enabled: false` and `manifest: null`.
40
+ */
41
+ export declare function loadVoiceRuntime(catalogUrl: string): Promise<VoiceRuntime | null>;
42
+ /** Reload manifest after user picks another voice (same catalog URL). */
43
+ export declare function reloadVoiceForDir(catalogUrl: string, catalog: VoiceCatalogEntry[], dir: string): Promise<Pick<VoiceRuntime, 'selectedDir' | 'clipBaseUrl' | 'manifest' | 'enabled'>>;
44
+ /**
45
+ * Преобразует список ключей фраз (из веб-части) в список URL клипов
46
+ * `{clipBaseUrl}/{key}_{variant}.mp3`. Неизвестные / отсутствующие в
47
+ * манифесте ключи пропускаются.
48
+ */
49
+ export declare function keysToClipUrls(manifest: VoiceManifest, clipBaseUrl: string, keys: string[]): string[];
50
+ //# sourceMappingURL=navigatorVoiceCatalog.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"navigatorVoiceCatalog.d.ts","sourceRoot":"","sources":["../../../../src/components/navigatorVoiceCatalog.ts"],"names":[],"mappings":"AAIA;;;;GAIG;AAEH,MAAM,MAAM,iBAAiB,GAAG;IAC5B,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;CAClB,CAAC;AAEF,4DAA4D;AAC5D,MAAM,MAAM,aAAa,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;AAErD,MAAM,MAAM,SAAS,GAAG;IAAE,GAAG,EAAE,MAAM,CAAA;CAAE,GAAG;IAAE,QAAQ,EAAE,IAAI,CAAA;CAAE,CAAC;AAE7D,MAAM,MAAM,YAAY,GAAG;IACvB,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,iBAAiB,EAAE,CAAC;IAC7B,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,aAAa,GAAG,IAAI,CAAC;IAC/B,OAAO,EAAE,OAAO,CAAC;CACpB,CAAC;AAKF,MAAM,MAAM,gBAAgB,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AAIjD,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,gBAAgB,GAAG,MAAM,CAEjE;AAED,wBAAsB,oBAAoB,IAAI,OAAO,CAAC,gBAAgB,CAAC,CAUtE;AAED,wBAAsB,qBAAqB,CAAC,KAAK,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC,CAMlF;AAED,wBAAsB,aAAa,IAAI,OAAO,CAAC,SAAS,GAAG,IAAI,CAAC,CA0B/D;AAED,wBAAsB,cAAc,CAAC,IAAI,EAAE,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC,CAMnE;AAED,wBAAgB,sBAAsB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAUjE;AAED,0DAA0D;AAC1D,wBAAgB,eAAe,CAAC,UAAU,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,CASvE;AAMD,wBAAsB,iBAAiB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,EAAE,CAAC,CA6BxF;AAED,wBAAsB,kBAAkB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC,CAgBpF;AAUD;;;GAGG;AACH,wBAAsB,gBAAgB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC,CA6BvF;AAED,yEAAyE;AACzE,wBAAsB,iBAAiB,CACnC,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,iBAAiB,EAAE,EAC5B,GAAG,EAAE,MAAM,GACZ,OAAO,CAAC,IAAI,CAAC,YAAY,EAAE,aAAa,GAAG,aAAa,GAAG,UAAU,GAAG,SAAS,CAAC,CAAC,CAcrF;AAaD;;;;GAIG;AACH,wBAAgB,cAAc,CAC1B,QAAQ,EAAE,aAAa,EACvB,WAAW,EAAE,MAAM,EACnB,IAAI,EAAE,MAAM,EAAE,GACf,MAAM,EAAE,CAgBV"}
@@ -0,0 +1,10 @@
1
+ /**
2
+ * Фиксированные ключи клипов навигатора (схема проекта). Зеркало
3
+ * `webProject/src/map/navigationVoiceKeys.ts` — веб-часть присылает эти
4
+ * ключи в событии `navigatorVoice`, нативная часть мапит их в аудио.
5
+ * Варианты (`var1`, …) и наличие записей — только из S3 voice manifest.
6
+ */
7
+ export declare const VOICE_PHRASE_KEYS: readonly ["maneuver_sharp_left", "maneuver_turn_left", "maneuver_slight_left", "maneuver_straight", "maneuver_slight_right", "maneuver_turn_right", "maneuver_sharp_right", "maneuver_arrival", "maneuver_waypoint", "maneuver_enter_roundabout", "maneuver_leave_roundabout", "maneuver_keep_left", "maneuver_keep_right", "maneuver_uturn", "maneuver_uturn_left", "maneuver_uturn_right", "maneuver_default", "exit_1", "exit_2", "exit_3", "exit_4", "exit_5", "exit_6", "exit_7", "exit_8", "exit_9", "exit_10", "exit_11", "exit_12", "roundabout_take_exit", "prefix_via", "connector_and", "unit_meter", "unit_meters_2_4", "unit_meters_5_plus", "unit_kilometer", "unit_kilometers_2_4", "unit_kilometers_5_plus", "route_started", "route_recalculated", "arrived_title", "arrival_at_destination", "waypoint_reached", "off_route", "num_1", "num_2", "num_3", "num_4", "num_5", "num_6", "num_7", "num_8", "num_9", "num_10", "num_11", "num_12", "num_13", "num_14", "num_15", "num_16", "num_17", "num_18", "num_19", "num_20", "num_30", "num_40", "num_50", "num_60", "num_70", "num_80", "num_90", "num_100", "num_200", "num_300", "num_400", "num_500", "num_600", "num_700", "num_800", "num_900", "num_km_1", "num_km_2", "num_km_3", "num_km_4", "num_km_5", "num_km_6", "num_km_7", "num_km_8", "num_km_9", "num_km_10", "num_km_11", "num_km_12", "num_km_13", "num_km_14", "num_km_15", "num_km_16", "num_km_17", "num_km_18", "num_km_19", "num_km_20", "num_km_30", "num_km_40", "num_km_50", "num_km_60", "num_km_70", "num_km_80", "num_km_90", "num_km_100", "num_km_200", "num_km_300", "num_km_400", "num_km_500", "num_km_600", "num_km_700", "num_km_800", "num_km_900"];
8
+ export type VoicePhraseKey = (typeof VOICE_PHRASE_KEYS)[number];
9
+ export declare function isKnownPhraseKey(key: string): key is VoicePhraseKey;
10
+ //# sourceMappingURL=navigatorVoiceKeys.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"navigatorVoiceKeys.d.ts","sourceRoot":"","sources":["../../../../src/components/navigatorVoiceKeys.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,eAAO,MAAM,iBAAiB,6mDAqHpB,CAAC;AAEX,MAAM,MAAM,cAAc,GAAG,CAAC,OAAO,iBAAiB,CAAC,CAAC,MAAM,CAAC,CAAC;AAIhE,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,IAAI,cAAc,CAEnE"}
@@ -0,0 +1,15 @@
1
+ export type NavigatorVoicePlayerRef = {
2
+ /** Проиграть очередь URL подряд (прерывает текущую очередь). */
3
+ playUrls: (urls: string[]) => void;
4
+ /** Остановить воспроизведение и очистить очередь. */
5
+ stop: () => void;
6
+ /** Установить громкость (0..1). */
7
+ setVolume: (gain: number) => void;
8
+ };
9
+ type NavigatorVoicePlayerProps = {
10
+ /** Начальная громкость (0..1); далее управляется через ref. */
11
+ initialVolume?: number;
12
+ };
13
+ export declare const NavigatorVoicePlayer: import("react").ForwardRefExoticComponent<NavigatorVoicePlayerProps & import("react").RefAttributes<NavigatorVoicePlayerRef>>;
14
+ export {};
15
+ //# sourceMappingURL=navigatorVoicePlayer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"navigatorVoicePlayer.d.ts","sourceRoot":"","sources":["../../../../src/components/navigatorVoicePlayer.tsx"],"names":[],"mappings":"AAcA,MAAM,MAAM,uBAAuB,GAAG;IAClC,gEAAgE;IAChE,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,IAAI,CAAC;IACnC,qDAAqD;IACrD,IAAI,EAAE,MAAM,IAAI,CAAC;IACjB,mCAAmC;IACnC,SAAS,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;CACrC,CAAC;AAEF,KAAK,yBAAyB,GAAG;IAC7B,+DAA+D;IAC/D,aAAa,CAAC,EAAE,MAAM,CAAC;CAC1B,CAAC;AAEF,eAAO,MAAM,oBAAoB,+HA+F/B,CAAC"}
@@ -0,0 +1,19 @@
1
+ import type { NavigatorLang } from './types';
2
+ /**
3
+ * Подписи нативного UI навигатора (FAB-кнопки, меню голоса, подсказка
4
+ * pick-режима). Текст HUD маршрута приходит готовым из веб-части, поэтому
5
+ * здесь только то, что рисуется нативно. Порт voice/recenter-строк из
6
+ * `webProject/src/map/local.ts`.
7
+ */
8
+ export type NavigatorUiStrings = {
9
+ recenterAria: string;
10
+ voicePickerAria: string;
11
+ voiceDisable: string;
12
+ voiceOff: string;
13
+ voiceVolumeLabel: string;
14
+ voiceVolumeStepAria: (step: number) => string;
15
+ /** Подсказка в HUD, когда активен режim выбора позиции кликом (dev). */
16
+ pickHint: string;
17
+ };
18
+ export declare function navigatorUiStrings(lang: NavigatorLang | undefined): NavigatorUiStrings;
19
+ //# sourceMappingURL=navigatorVoiceStrings.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"navigatorVoiceStrings.d.ts","sourceRoot":"","sources":["../../../../src/components/navigatorVoiceStrings.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAE7C;;;;;GAKG;AACH,MAAM,MAAM,kBAAkB,GAAG;IAC7B,YAAY,EAAE,MAAM,CAAC;IACrB,eAAe,EAAE,MAAM,CAAC;IACxB,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,MAAM,CAAC;IACjB,gBAAgB,EAAE,MAAM,CAAC;IACzB,mBAAmB,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,CAAC;IAC9C,wEAAwE;IACxE,QAAQ,EAAE,MAAM,CAAC;CACpB,CAAC;AAsBF,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,aAAa,GAAG,SAAS,GAAG,kBAAkB,CAEtF"}
@@ -1,7 +1,6 @@
1
- export type MarkerProps = {
2
- ignoreFitBounds?: boolean;
1
+ /** RN Web: `addMarker` (`MapLiteController.MarkerParams`). */
2
+ export type MapLiteMarkerParams = {
3
3
  uniqueId: string;
4
- onPress?: () => void;
5
4
  latitude: number;
6
5
  longitude: number;
7
6
  color?: string;
@@ -10,8 +9,15 @@ export type MarkerProps = {
10
9
  iconHeight?: number;
11
10
  html?: string;
12
11
  };
13
- export type PolygonProps = {
14
- ignoreFitBounds?: boolean;
12
+ /** RN Web: `addPolyline` (`MapLiteController.PolylineParams`). */
13
+ export type MapLitePolylineParams = {
14
+ uniqueId: string;
15
+ coordinates: [number, number][];
16
+ color?: string;
17
+ width?: number;
18
+ };
19
+ /** RN → Web: `addPolygon` (`MapLiteController.PolygonParams`). */
20
+ export type MapLitePolygonParams = {
15
21
  uniqueId: string;
16
22
  coordinates: [number, number][];
17
23
  fillColor?: string;
@@ -20,19 +26,27 @@ export type PolygonProps = {
20
26
  strokeOpacity?: number;
21
27
  strokeWidth?: number;
22
28
  };
23
- export type PolylineProps = {
24
- ignoreFitBounds?: boolean;
29
+ /** RN Web: `removeMarker` / `removePolyline` / `removePolygon`. */
30
+ export type MapLiteRemoveOverlayParams = {
25
31
  uniqueId: string;
26
- color?: string;
27
- width?: number;
28
- coordinates: [number, number][];
29
32
  };
33
+ export type MarkerProps = MapLiteMarkerParams & {
34
+ ignoreFitBounds?: boolean;
35
+ onPress?: () => void;
36
+ };
37
+ export type PolygonProps = MapLitePolygonParams & {
38
+ ignoreFitBounds?: boolean;
39
+ };
40
+ export type PolylineProps = MapLitePolylineParams & {
41
+ ignoreFitBounds?: boolean;
42
+ };
43
+ /** Web → RN: `postToNative` payload (`webProject/src/map/types.ts`). */
30
44
  export type EventParams = {
31
45
  center?: {
32
46
  lng: number;
33
47
  lat: number;
34
- };
35
- zoom?: number;
48
+ } | null;
49
+ zoom?: number | null;
36
50
  };
37
51
  export type NavigatorLang = 'ru' | 'en';
38
52
  /**
@@ -81,8 +95,187 @@ export type NavigatorPositionSetParams = {
81
95
  mode: NavigatorPositionMode;
82
96
  distanceFromRouteMeters: number;
83
97
  };
98
+ /**
99
+ * Web → RN: `navigatorHud` event. View-model панели маршрута (HUD).
100
+ * Все строки уже локализованы/отформатированы в вебе — RN рисует «как есть».
101
+ */
102
+ export type NavigatorHudState = {
103
+ /** Показывать ли панель. */
104
+ visible: boolean;
105
+ /** Режим «кликни по карте, чтобы задать позицию» (dev): показать подсказку. */
106
+ pick?: boolean;
107
+ /** Состояние «Вы приехали». */
108
+ arrived?: boolean;
109
+ /** Код манёвра GraphHopper для иконки. */
110
+ sign?: number;
111
+ /** Крупная строка: дистанция / «Прибытие» / заголовок прибытия. */
112
+ distanceLabel?: string;
113
+ /** Текст манёвра / подзаголовок. */
114
+ maneuverText?: string;
115
+ /** Имя улицы после манёвра. */
116
+ streetName?: string;
117
+ /** Сводка маршрута («До конца: …»). */
118
+ summaryText?: string;
119
+ /** Доп. строка (подъём/спуск). */
120
+ extrasText?: string;
121
+ /** Ограничение скорости (км/ч) или null. */
122
+ speedLimitKmh?: number | null;
123
+ };
124
+ /** Действие озвучки в событии `navigatorVoice`. */
125
+ export type NavigatorVoiceAction = 'play' | 'prefetch' | 'stop';
126
+ /**
127
+ * Web → RN: `navigatorVoice` event. Веб шлёт абстрактные ключи фраз;
128
+ * нативная часть мапит их в URL клипов и воспроизводит.
129
+ */
130
+ export type NavigatorVoicePlayParams = {
131
+ action: NavigatorVoiceAction;
132
+ keys: string[];
133
+ };
84
134
  export type MapLiteWebError = {
85
135
  target: string;
86
136
  message: string;
87
137
  };
138
+ /** Parsed MapLibre style JSON — `InitParams.mapStyle` / `UpdateParams.mapStyle` в WebView. */
139
+ export type MapLiteStyleSpecification = Record<string, unknown>;
140
+ /** RN → Web: `init` (`MapLiteController.InitParams`). */
141
+ export type MapLiteInitParams = {
142
+ mapStyle: MapLiteStyleSpecification;
143
+ center: [number, number];
144
+ zoom: number;
145
+ minZoom?: number;
146
+ maxZoom?: number;
147
+ zoomEnabled?: boolean;
148
+ scrollEnabled?: boolean;
149
+ antialias?: boolean;
150
+ crossSourceCollisions?: boolean;
151
+ fadeDuration?: number;
152
+ pixelRatio?: number;
153
+ simplifyStyle?: boolean;
154
+ aggressiveSimplifyStyle?: boolean;
155
+ maxPitch?: number;
156
+ renderWorldCopies?: boolean;
157
+ turboWhileMoving?: boolean;
158
+ debugMode?: boolean;
159
+ navigator?: boolean;
160
+ graphhopperUrl?: string;
161
+ navigatorLang?: NavigatorLang;
162
+ navigatorProfile?: NavigatorProfile | string;
163
+ navigatorChrome?: NavigatorChromeParams;
164
+ };
165
+ /** RN → Web: `update` (`MapLiteController.UpdateParams`). */
166
+ export type MapLiteUpdateParams = {
167
+ minZoom?: number;
168
+ maxZoom?: number;
169
+ zoomEnabled?: boolean;
170
+ scrollEnabled?: boolean;
171
+ mapStyle?: MapLiteStyleSpecification;
172
+ };
173
+ /** RN → Web: `fitBounds`. */
174
+ export type MapLiteFitBoundsParams = {
175
+ bounds: [[number, number], [number, number]];
176
+ padding?: number;
177
+ duration?: number;
178
+ };
179
+ /** RN → Web: `flyTo`. */
180
+ export type MapLiteFlyToParams = {
181
+ center: [number, number];
182
+ zoom: number;
183
+ duration?: number;
184
+ };
185
+ /** RN → Web: `setNavigatorPoint`. */
186
+ export type MapLiteSetNavigatorPointParams = {
187
+ latitude: number;
188
+ longitude: number;
189
+ };
190
+ /**
191
+ * RN → Web: `setNavigatorPosition`.
192
+ * `accuracy` (м) включает прод-режим off-route на стороне WebView.
193
+ */
194
+ export type MapLiteSetNavigatorPositionParams = {
195
+ latitude: number;
196
+ longitude: number;
197
+ accuracy?: number;
198
+ };
199
+ /** RN → Web: JSON в `WebView.postMessage` (`webProject/src/map/MapLiteController.receive`). */
200
+ export type NativeToWebCommand = {
201
+ function: 'init';
202
+ params: MapLiteInitParams;
203
+ } | {
204
+ function: 'update';
205
+ params: MapLiteUpdateParams;
206
+ } | {
207
+ function: 'addMarker';
208
+ params: MapLiteMarkerParams;
209
+ } | {
210
+ function: 'removeMarker';
211
+ params: MapLiteRemoveOverlayParams;
212
+ } | {
213
+ function: 'addPolyline';
214
+ params: MapLitePolylineParams;
215
+ } | {
216
+ function: 'removePolyline';
217
+ params: MapLiteRemoveOverlayParams;
218
+ } | {
219
+ function: 'addPolygon';
220
+ params: MapLitePolygonParams;
221
+ } | {
222
+ function: 'removePolygon';
223
+ params: MapLiteRemoveOverlayParams;
224
+ } | {
225
+ function: 'fitBounds';
226
+ params: MapLiteFitBoundsParams;
227
+ } | {
228
+ function: 'flyTo';
229
+ params: MapLiteFlyToParams;
230
+ } | {
231
+ function: 'setNavigatorPoint';
232
+ params: MapLiteSetNavigatorPointParams;
233
+ } | {
234
+ function: 'advanceNavigatorInstruction';
235
+ params: Record<string, never>;
236
+ } | {
237
+ function: 'setNavigatorPosition';
238
+ params: MapLiteSetNavigatorPositionParams;
239
+ } | {
240
+ function: 'pickNavigatorPosition';
241
+ params: Record<string, never>;
242
+ } | {
243
+ function: 'recenterNavigatorCamera';
244
+ params: Record<string, never>;
245
+ };
246
+ /** Web → RN: `postToNative` (`webProject/src/map/types.ts`). */
247
+ export type WebToNativeMessage = {
248
+ type: 'scriptReady';
249
+ } | {
250
+ type: 'inited';
251
+ } | {
252
+ type: 'event';
253
+ event: string;
254
+ params: unknown;
255
+ } | {
256
+ type: 'markerClick';
257
+ uniqueId: string;
258
+ } | {
259
+ type: 'error';
260
+ data: MapLiteWebError;
261
+ };
262
+ /** Имена `event` в `{ type: 'event', event, params }` из WebView. */
263
+ export type MapLiteMapEventName = 'movestart' | 'moveend' | 'zoomstart' | 'zoomend' | 'idle' | 'error' | 'navigatorRouteSet' | 'navigatorInstruction' | 'navigatorPositionSet' | 'navigatorHud' | 'navigatorVoice';
264
+ export type MapLiteMapErrorEventParams = {
265
+ message: string;
266
+ };
267
+ /** `params` для `{ type: 'event', event, params }` по имени события. */
268
+ export type MapLiteMapEventParamsMap = {
269
+ movestart: EventParams;
270
+ moveend: EventParams;
271
+ zoomstart: EventParams;
272
+ zoomend: EventParams;
273
+ idle: EventParams;
274
+ error: MapLiteMapErrorEventParams;
275
+ navigatorRouteSet: NavigatorRouteSetParams;
276
+ navigatorInstruction: NavigatorInstructionParams;
277
+ navigatorPositionSet: NavigatorPositionSetParams;
278
+ navigatorHud: NavigatorHudState;
279
+ navigatorVoice: NavigatorVoicePlayParams;
280
+ };
88
281
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/components/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/components/types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,20 @@
1
+ import { type VoiceCatalogEntry, type VoiceManifest, type VoiceRuntime, type VoiceVolumeLevel } from './navigatorVoiceCatalog';
2
+ /**
3
+ * Нативное владение голосом навигатора: загрузка каталога/манифеста,
4
+ * выбор голоса/громкости и персист (AsyncStorage). Веб шлёт только ключи
5
+ * фраз; маппинг в аудио и воспроизведение — на стороне RN.
6
+ */
7
+ export type NavigatorVoiceController = {
8
+ runtime: VoiceRuntime | null;
9
+ catalog: VoiceCatalogEntry[];
10
+ selectedDir: string | null;
11
+ manifest: VoiceManifest | null;
12
+ clipBaseUrl: string | null;
13
+ voiceEnabled: boolean;
14
+ volumeLevel: VoiceVolumeLevel;
15
+ selectVoice: (dir: string) => Promise<void>;
16
+ selectVolume: (level: VoiceVolumeLevel) => void;
17
+ disableVoice: () => Promise<void>;
18
+ };
19
+ export declare function useNavigatorVoice(voiceUrl: string | undefined): NavigatorVoiceController;
20
+ //# sourceMappingURL=useNavigatorVoice.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useNavigatorVoice.d.ts","sourceRoot":"","sources":["../../../../src/components/useNavigatorVoice.ts"],"names":[],"mappings":"AAEA,OAAO,EAMH,KAAK,iBAAiB,EACtB,KAAK,aAAa,EAClB,KAAK,YAAY,EACjB,KAAK,gBAAgB,EACxB,MAAM,yBAAyB,CAAC;AAEjC;;;;GAIG;AACH,MAAM,MAAM,wBAAwB,GAAG;IACnC,OAAO,EAAE,YAAY,GAAG,IAAI,CAAC;IAC7B,OAAO,EAAE,iBAAiB,EAAE,CAAC;IAC7B,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,QAAQ,EAAE,aAAa,GAAG,IAAI,CAAC;IAC/B,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,YAAY,EAAE,OAAO,CAAC;IACtB,WAAW,EAAE,gBAAgB,CAAC;IAC9B,WAAW,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC5C,YAAY,EAAE,CAAC,KAAK,EAAE,gBAAgB,KAAK,IAAI,CAAC;IAChD,YAAY,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CACrC,CAAC;AAEF,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,MAAM,GAAG,SAAS,GAAG,wBAAwB,CA+DxF"}
@@ -1,2 +1,11 @@
1
+ /** Android: `android/app/src/main/assets/map.html`. See `resources/README.md`. */
2
+ export declare const NATIVE_MAP_HTML_ANDROID_URI = "file:///android_asset/map.html";
3
+ /** Имя файла в iOS bundle (Copy Bundle Resources). */
4
+ export declare const NATIVE_MAP_HTML_IOS_FILENAME = "map.html";
5
+ /**
6
+ * URI для `map.html` из нативных ресурсов хост-приложения.
7
+ * Android — assets; iOS — main bundle (через путь к `.app` из `SourceCode.scriptURL`).
8
+ */
9
+ export declare const getNativeMapHtmlUri: () => string;
1
10
  export declare const loadResources: (url: string) => Promise<string>;
2
11
  //# sourceMappingURL=utils.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../../src/components/utils.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,aAAa,GAAU,KAAK,MAAM,oBA0B9C,CAAA"}
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../../src/components/utils.ts"],"names":[],"mappings":"AAKA,kFAAkF;AAClF,eAAO,MAAM,2BAA2B,mCAAmC,CAAC;AAE5E,sDAAsD;AACtD,eAAO,MAAM,4BAA4B,aAAa,CAAC;AAEvD;;;GAGG;AACH,eAAO,MAAM,mBAAmB,QAAO,MAetC,CAAC;AAEF,eAAO,MAAM,aAAa,GAAU,KAAK,MAAM,oBA0B9C,CAAA"}