@metamask-previews/advanced-chart-core 0.0.0-preview-e58fe0640 → 0.0.0-preview-238cb7063
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/core/bootstrap.cjs +185 -0
- package/dist/core/bootstrap.cjs.map +1 -0
- package/dist/core/bootstrap.d.cts +10 -0
- package/dist/core/bootstrap.d.cts.map +1 -0
- package/dist/core/bootstrap.d.mts +10 -0
- package/dist/core/bootstrap.d.mts.map +1 -0
- package/dist/core/bootstrap.mjs +181 -0
- package/dist/core/bootstrap.mjs.map +1 -0
- package/dist/core/bridge.cjs +115 -0
- package/dist/core/bridge.cjs.map +1 -0
- package/dist/core/bridge.d.cts +37 -0
- package/dist/core/bridge.d.cts.map +1 -0
- package/dist/core/bridge.d.mts +37 -0
- package/dist/core/bridge.d.mts.map +1 -0
- package/dist/core/bridge.mjs +108 -0
- package/dist/core/bridge.mjs.map +1 -0
- package/dist/core/dataLifecycle.cjs +52 -0
- package/dist/core/dataLifecycle.cjs.map +1 -0
- package/dist/core/dataLifecycle.d.cts +8 -0
- package/dist/core/dataLifecycle.d.cts.map +1 -0
- package/dist/core/dataLifecycle.d.mts +8 -0
- package/dist/core/dataLifecycle.d.mts.map +1 -0
- package/dist/core/dataLifecycle.mjs +46 -0
- package/dist/core/dataLifecycle.mjs.map +1 -0
- package/dist/core/loadLibrary.cjs +63 -0
- package/dist/core/loadLibrary.cjs.map +1 -0
- package/dist/core/loadLibrary.d.cts +16 -0
- package/dist/core/loadLibrary.d.cts.map +1 -0
- package/dist/core/loadLibrary.d.mts +16 -0
- package/dist/core/loadLibrary.d.mts.map +1 -0
- package/dist/core/loadLibrary.mjs +58 -0
- package/dist/core/loadLibrary.mjs.map +1 -0
- package/dist/core/resolution.cjs +58 -0
- package/dist/core/resolution.cjs.map +1 -0
- package/dist/core/resolution.d.cts +15 -0
- package/dist/core/resolution.d.cts.map +1 -0
- package/dist/core/resolution.d.mts +15 -0
- package/dist/core/resolution.d.mts.map +1 -0
- package/dist/core/resolution.mjs +54 -0
- package/dist/core/resolution.mjs.map +1 -0
- package/dist/core/state.cjs +343 -0
- package/dist/core/state.cjs.map +1 -0
- package/dist/core/state.d.cts +67 -0
- package/dist/core/state.d.cts.map +1 -0
- package/dist/core/state.d.mts +67 -0
- package/dist/core/state.d.mts.map +1 -0
- package/dist/core/state.mjs +283 -0
- package/dist/core/state.mjs.map +1 -0
- package/dist/core/timeUtils.cjs +72 -0
- package/dist/core/timeUtils.cjs.map +1 -0
- package/dist/core/timeUtils.d.cts +32 -0
- package/dist/core/timeUtils.d.cts.map +1 -0
- package/dist/core/timeUtils.d.mts +32 -0
- package/dist/core/timeUtils.d.mts.map +1 -0
- package/dist/core/timeUtils.mjs +66 -0
- package/dist/core/timeUtils.mjs.map +1 -0
- package/dist/core/timezone.cjs +135 -0
- package/dist/core/timezone.cjs.map +1 -0
- package/dist/core/timezone.d.cts +16 -0
- package/dist/core/timezone.d.cts.map +1 -0
- package/dist/core/timezone.d.mts +16 -0
- package/dist/core/timezone.d.mts.map +1 -0
- package/dist/core/timezone.mjs +131 -0
- package/dist/core/timezone.mjs.map +1 -0
- package/dist/core/types.cjs +20 -0
- package/dist/core/types.cjs.map +1 -0
- package/dist/core/types.d.cts +323 -0
- package/dist/core/types.d.cts.map +1 -0
- package/dist/core/types.d.mts +323 -0
- package/dist/core/types.d.mts.map +1 -0
- package/dist/core/types.mjs +17 -0
- package/dist/core/types.mjs.map +1 -0
- package/dist/features/indicators/index.cjs +183 -0
- package/dist/features/indicators/index.cjs.map +1 -0
- package/dist/features/indicators/index.d.cts +6 -0
- package/dist/features/indicators/index.d.cts.map +1 -0
- package/dist/features/indicators/index.d.mts +6 -0
- package/dist/features/indicators/index.d.mts.map +1 -0
- package/dist/features/indicators/index.mjs +177 -0
- package/dist/features/indicators/index.mjs.map +1 -0
- package/dist/features/indicators/legend.cjs +575 -0
- package/dist/features/indicators/legend.cjs.map +1 -0
- package/dist/features/indicators/legend.d.cts +40 -0
- package/dist/features/indicators/legend.d.cts.map +1 -0
- package/dist/features/indicators/legend.d.mts +40 -0
- package/dist/features/indicators/legend.d.mts.map +1 -0
- package/dist/features/indicators/legend.mjs +564 -0
- package/dist/features/indicators/legend.mjs.map +1 -0
- package/dist/features/indicators/resize.cjs +34 -0
- package/dist/features/indicators/resize.cjs.map +1 -0
- package/dist/features/indicators/resize.d.cts +2 -0
- package/dist/features/indicators/resize.d.cts.map +1 -0
- package/dist/features/indicators/resize.d.mts +2 -0
- package/dist/features/indicators/resize.d.mts.map +1 -0
- package/dist/features/indicators/resize.mjs +30 -0
- package/dist/features/indicators/resize.mjs.map +1 -0
- package/dist/features/indicators/studies.cjs +147 -0
- package/dist/features/indicators/studies.cjs.map +1 -0
- package/dist/features/indicators/studies.d.cts +36 -0
- package/dist/features/indicators/studies.d.cts.map +1 -0
- package/dist/features/indicators/studies.d.mts +36 -0
- package/dist/features/indicators/studies.d.mts.map +1 -0
- package/dist/features/indicators/studies.mjs +140 -0
- package/dist/features/indicators/studies.mjs.map +1 -0
- package/dist/features/indicators/subPane.cjs +78 -0
- package/dist/features/indicators/subPane.cjs.map +1 -0
- package/dist/features/indicators/subPane.d.cts +6 -0
- package/dist/features/indicators/subPane.d.cts.map +1 -0
- package/dist/features/indicators/subPane.d.mts +6 -0
- package/dist/features/indicators/subPane.d.mts.map +1 -0
- package/dist/features/indicators/subPane.mjs +72 -0
- package/dist/features/indicators/subPane.mjs.map +1 -0
- package/dist/features/volume/index.cjs +145 -0
- package/dist/features/volume/index.cjs.map +1 -0
- package/dist/features/volume/index.d.cts +4 -0
- package/dist/features/volume/index.d.cts.map +1 -0
- package/dist/features/volume/index.d.mts +4 -0
- package/dist/features/volume/index.d.mts.map +1 -0
- package/dist/features/volume/index.mjs +140 -0
- package/dist/features/volume/index.mjs.map +1 -0
- package/dist/index.cjs +20 -0
- package/dist/index.cjs.map +1 -0
- package/dist/index.d.cts +2 -0
- package/dist/index.d.cts.map +1 -0
- package/dist/index.d.mts +2 -0
- package/dist/index.d.mts.map +1 -0
- package/dist/index.mjs +18 -0
- package/dist/index.mjs.map +1 -0
- package/dist/interaction/crosshair.cjs +147 -0
- package/dist/interaction/crosshair.cjs.map +1 -0
- package/dist/interaction/crosshair.d.cts +21 -0
- package/dist/interaction/crosshair.d.cts.map +1 -0
- package/dist/interaction/crosshair.d.mts +21 -0
- package/dist/interaction/crosshair.d.mts.map +1 -0
- package/dist/interaction/crosshair.mjs +141 -0
- package/dist/interaction/crosshair.mjs.map +1 -0
- package/dist/interaction/visibleRange.cjs +102 -0
- package/dist/interaction/visibleRange.cjs.map +1 -0
- package/dist/interaction/visibleRange.d.cts +11 -0
- package/dist/interaction/visibleRange.d.cts.map +1 -0
- package/dist/interaction/visibleRange.d.mts +11 -0
- package/dist/interaction/visibleRange.d.mts.map +1 -0
- package/dist/interaction/visibleRange.mjs +97 -0
- package/dist/interaction/visibleRange.mjs.map +1 -0
- package/dist/messages/contract.cjs +27 -0
- package/dist/messages/contract.cjs.map +1 -0
- package/dist/messages/contract.d.cts +262 -0
- package/dist/messages/contract.d.cts.map +1 -0
- package/dist/messages/contract.d.mts +262 -0
- package/dist/messages/contract.d.mts.map +1 -0
- package/dist/messages/contract.mjs +26 -0
- package/dist/messages/contract.mjs.map +1 -0
- package/dist/messages/handler.cjs +54 -0
- package/dist/messages/handler.cjs.map +1 -0
- package/dist/messages/handler.d.cts +25 -0
- package/dist/messages/handler.d.cts.map +1 -0
- package/dist/messages/handler.d.mts +25 -0
- package/dist/messages/handler.d.mts.map +1 -0
- package/dist/messages/handler.mjs +48 -0
- package/dist/messages/handler.mjs.map +1 -0
- package/dist/overlays/focusTime/index.cjs +161 -0
- package/dist/overlays/focusTime/index.cjs.map +1 -0
- package/dist/overlays/focusTime/index.d.cts +6 -0
- package/dist/overlays/focusTime/index.d.cts.map +1 -0
- package/dist/overlays/focusTime/index.d.mts +6 -0
- package/dist/overlays/focusTime/index.d.mts.map +1 -0
- package/dist/overlays/focusTime/index.mjs +155 -0
- package/dist/overlays/focusTime/index.mjs.map +1 -0
- package/dist/overlays/positionLines/index.cjs +188 -0
- package/dist/overlays/positionLines/index.cjs.map +1 -0
- package/dist/overlays/positionLines/index.d.cts +4 -0
- package/dist/overlays/positionLines/index.d.cts.map +1 -0
- package/dist/overlays/positionLines/index.d.mts +4 -0
- package/dist/overlays/positionLines/index.d.mts.map +1 -0
- package/dist/overlays/positionLines/index.mjs +183 -0
- package/dist/overlays/positionLines/index.mjs.map +1 -0
- package/dist/overlays/positionLines/state.cjs +35 -0
- package/dist/overlays/positionLines/state.cjs.map +1 -0
- package/dist/overlays/positionLines/state.d.cts +8 -0
- package/dist/overlays/positionLines/state.d.cts.map +1 -0
- package/dist/overlays/positionLines/state.d.mts +8 -0
- package/dist/overlays/positionLines/state.d.mts.map +1 -0
- package/dist/overlays/positionLines/state.mjs +26 -0
- package/dist/overlays/positionLines/state.mjs.map +1 -0
- package/dist/overlays/socialLeaderboard/index.cjs +229 -0
- package/dist/overlays/socialLeaderboard/index.cjs.map +1 -0
- package/dist/overlays/socialLeaderboard/index.d.cts +48 -0
- package/dist/overlays/socialLeaderboard/index.d.cts.map +1 -0
- package/dist/overlays/socialLeaderboard/index.d.mts +48 -0
- package/dist/overlays/socialLeaderboard/index.d.mts.map +1 -0
- package/dist/overlays/socialLeaderboard/index.mjs +222 -0
- package/dist/overlays/socialLeaderboard/index.mjs.map +1 -0
- package/dist/overlays/tradeMarkers/animation.cjs +123 -0
- package/dist/overlays/tradeMarkers/animation.cjs.map +1 -0
- package/dist/overlays/tradeMarkers/animation.d.cts +5 -0
- package/dist/overlays/tradeMarkers/animation.d.cts.map +1 -0
- package/dist/overlays/tradeMarkers/animation.d.mts +5 -0
- package/dist/overlays/tradeMarkers/animation.d.mts.map +1 -0
- package/dist/overlays/tradeMarkers/animation.mjs +118 -0
- package/dist/overlays/tradeMarkers/animation.mjs.map +1 -0
- package/dist/overlays/tradeMarkers/index.cjs +334 -0
- package/dist/overlays/tradeMarkers/index.cjs.map +1 -0
- package/dist/overlays/tradeMarkers/index.d.cts +35 -0
- package/dist/overlays/tradeMarkers/index.d.cts.map +1 -0
- package/dist/overlays/tradeMarkers/index.d.mts +35 -0
- package/dist/overlays/tradeMarkers/index.d.mts.map +1 -0
- package/dist/overlays/tradeMarkers/index.mjs +324 -0
- package/dist/overlays/tradeMarkers/index.mjs.map +1 -0
- package/dist/overlays/tradeMarkers/markerHitTest.cjs +337 -0
- package/dist/overlays/tradeMarkers/markerHitTest.cjs.map +1 -0
- package/dist/overlays/tradeMarkers/markerHitTest.d.cts +15 -0
- package/dist/overlays/tradeMarkers/markerHitTest.d.cts.map +1 -0
- package/dist/overlays/tradeMarkers/markerHitTest.d.mts +15 -0
- package/dist/overlays/tradeMarkers/markerHitTest.d.mts.map +1 -0
- package/dist/overlays/tradeMarkers/markerHitTest.mjs +331 -0
- package/dist/overlays/tradeMarkers/markerHitTest.mjs.map +1 -0
- package/dist/overlays/tradeMarkers/state.cjs +75 -0
- package/dist/overlays/tradeMarkers/state.cjs.map +1 -0
- package/dist/overlays/tradeMarkers/state.d.cts +20 -0
- package/dist/overlays/tradeMarkers/state.d.cts.map +1 -0
- package/dist/overlays/tradeMarkers/state.d.mts +20 -0
- package/dist/overlays/tradeMarkers/state.d.mts.map +1 -0
- package/dist/overlays/tradeMarkers/state.mjs +60 -0
- package/dist/overlays/tradeMarkers/state.mjs.map +1 -0
- package/dist/pagination/priceApi.cjs +102 -0
- package/dist/pagination/priceApi.cjs.map +1 -0
- package/dist/pagination/priceApi.d.cts +43 -0
- package/dist/pagination/priceApi.d.cts.map +1 -0
- package/dist/pagination/priceApi.d.mts +43 -0
- package/dist/pagination/priceApi.d.mts.map +1 -0
- package/dist/pagination/priceApi.mjs +97 -0
- package/dist/pagination/priceApi.mjs.map +1 -0
- package/dist/pagination/rnBacked.cjs +108 -0
- package/dist/pagination/rnBacked.cjs.map +1 -0
- package/dist/pagination/rnBacked.d.cts +15 -0
- package/dist/pagination/rnBacked.d.cts.map +1 -0
- package/dist/pagination/rnBacked.d.mts +15 -0
- package/dist/pagination/rnBacked.d.mts.map +1 -0
- package/dist/pagination/rnBacked.mjs +100 -0
- package/dist/pagination/rnBacked.mjs.map +1 -0
- package/dist/widget/chartType.cjs +39 -0
- package/dist/widget/chartType.cjs.map +1 -0
- package/dist/widget/chartType.d.cts +4 -0
- package/dist/widget/chartType.d.cts.map +1 -0
- package/dist/widget/chartType.d.mts +4 -0
- package/dist/widget/chartType.d.mts.map +1 -0
- package/dist/widget/chartType.mjs +34 -0
- package/dist/widget/chartType.mjs.map +1 -0
- package/dist/widget/datafeed.cjs +228 -0
- package/dist/widget/datafeed.cjs.map +1 -0
- package/dist/widget/datafeed.d.cts +22 -0
- package/dist/widget/datafeed.d.cts.map +1 -0
- package/dist/widget/datafeed.d.mts +22 -0
- package/dist/widget/datafeed.d.mts.map +1 -0
- package/dist/widget/datafeed.mjs +223 -0
- package/dist/widget/datafeed.mjs.map +1 -0
- package/dist/widget/externalLinkBridge.cjs +134 -0
- package/dist/widget/externalLinkBridge.cjs.map +1 -0
- package/dist/widget/externalLinkBridge.d.cts +14 -0
- package/dist/widget/externalLinkBridge.d.cts.map +1 -0
- package/dist/widget/externalLinkBridge.d.mts +14 -0
- package/dist/widget/externalLinkBridge.d.mts.map +1 -0
- package/dist/widget/externalLinkBridge.mjs +127 -0
- package/dist/widget/externalLinkBridge.mjs.map +1 -0
- package/dist/widget/initChart.cjs +242 -0
- package/dist/widget/initChart.cjs.map +1 -0
- package/dist/widget/initChart.d.cts +53 -0
- package/dist/widget/initChart.d.cts.map +1 -0
- package/dist/widget/initChart.d.mts +53 -0
- package/dist/widget/initChart.d.mts.map +1 -0
- package/dist/widget/initChart.mjs +235 -0
- package/dist/widget/initChart.mjs.map +1 -0
- package/dist/widget/ohlcvIngestion.cjs +240 -0
- package/dist/widget/ohlcvIngestion.cjs.map +1 -0
- package/dist/widget/ohlcvIngestion.d.cts +16 -0
- package/dist/widget/ohlcvIngestion.d.cts.map +1 -0
- package/dist/widget/ohlcvIngestion.d.mts +16 -0
- package/dist/widget/ohlcvIngestion.d.mts.map +1 -0
- package/dist/widget/ohlcvIngestion.mjs +233 -0
- package/dist/widget/ohlcvIngestion.mjs.map +1 -0
- package/dist/widget/priceFormatter.cjs +142 -0
- package/dist/widget/priceFormatter.cjs.map +1 -0
- package/dist/widget/priceFormatter.d.cts +38 -0
- package/dist/widget/priceFormatter.d.cts.map +1 -0
- package/dist/widget/priceFormatter.d.mts +38 -0
- package/dist/widget/priceFormatter.d.mts.map +1 -0
- package/dist/widget/priceFormatter.mjs +134 -0
- package/dist/widget/priceFormatter.mjs.map +1 -0
- package/dist/widget/scaleLayout.cjs +89 -0
- package/dist/widget/scaleLayout.cjs.map +1 -0
- package/dist/widget/scaleLayout.d.cts +9 -0
- package/dist/widget/scaleLayout.d.cts.map +1 -0
- package/dist/widget/scaleLayout.d.mts +9 -0
- package/dist/widget/scaleLayout.d.mts.map +1 -0
- package/dist/widget/scaleLayout.mjs +85 -0
- package/dist/widget/scaleLayout.mjs.map +1 -0
- package/dist/widget/theme.cjs +286 -0
- package/dist/widget/theme.cjs.map +1 -0
- package/dist/widget/theme.d.cts +99 -0
- package/dist/widget/theme.d.cts.map +1 -0
- package/dist/widget/theme.d.mts +99 -0
- package/dist/widget/theme.d.mts.map +1 -0
- package/dist/widget/theme.mjs +270 -0
- package/dist/widget/theme.mjs.map +1 -0
- package/dist/widget/tvDomHelpers.cjs +65 -0
- package/dist/widget/tvDomHelpers.cjs.map +1 -0
- package/dist/widget/tvDomHelpers.d.cts +19 -0
- package/dist/widget/tvDomHelpers.d.cts.map +1 -0
- package/dist/widget/tvDomHelpers.d.mts +19 -0
- package/dist/widget/tvDomHelpers.d.mts.map +1 -0
- package/dist/widget/tvDomHelpers.mjs +60 -0
- package/dist/widget/tvDomHelpers.mjs.map +1 -0
- package/dist/widget/visualOverrides.cjs +63 -0
- package/dist/widget/visualOverrides.cjs.map +1 -0
- package/dist/widget/visualOverrides.d.cts +27 -0
- package/dist/widget/visualOverrides.d.cts.map +1 -0
- package/dist/widget/visualOverrides.d.mts +27 -0
- package/dist/widget/visualOverrides.d.mts.map +1 -0
- package/dist/widget/visualOverrides.mjs +58 -0
- package/dist/widget/visualOverrides.mjs.map +1 -0
- package/package.json +3 -1
|
@@ -0,0 +1,135 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// User-timezone resolution for TradingView's `timezone` widget option.
|
|
3
|
+
//
|
|
4
|
+
// Ported from chartLogic.js (~line 5299-5417). TradingView only accepts a
|
|
5
|
+
// fixed set of IANA timezone IDs. `Intl.DateTimeFormat().resolvedOptions()`
|
|
6
|
+
// on device returns the canonical zone; we map a small set of legacy
|
|
7
|
+
// aliases and fall back to Etc/UTC when the zone isn't in TV's list.
|
|
8
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
+
exports.resolveUserTimezone = exports.CANONICAL_TO_TV = exports.TV_SUPPORTED_TIMEZONES = void 0;
|
|
10
|
+
/** IANA identifiers TradingView's Advanced Charts library accepts. */
|
|
11
|
+
exports.TV_SUPPORTED_TIMEZONES = [
|
|
12
|
+
'Etc/UTC',
|
|
13
|
+
'Africa/Cairo',
|
|
14
|
+
'Africa/Casablanca',
|
|
15
|
+
'Africa/Johannesburg',
|
|
16
|
+
'Africa/Lagos',
|
|
17
|
+
'Africa/Nairobi',
|
|
18
|
+
'Africa/Tunis',
|
|
19
|
+
'America/Anchorage',
|
|
20
|
+
'America/Argentina/Buenos_Aires',
|
|
21
|
+
'America/Bogota',
|
|
22
|
+
'America/Caracas',
|
|
23
|
+
'America/Chicago',
|
|
24
|
+
'America/El_Salvador',
|
|
25
|
+
'America/Halifax',
|
|
26
|
+
'America/Juneau',
|
|
27
|
+
'America/Lima',
|
|
28
|
+
'America/Los_Angeles',
|
|
29
|
+
'America/Mexico_City',
|
|
30
|
+
'America/New_York',
|
|
31
|
+
'America/Phoenix',
|
|
32
|
+
'America/Santiago',
|
|
33
|
+
'America/Sao_Paulo',
|
|
34
|
+
'America/Toronto',
|
|
35
|
+
'America/Vancouver',
|
|
36
|
+
'Asia/Astana',
|
|
37
|
+
'Asia/Ashkhabad',
|
|
38
|
+
'Asia/Bahrain',
|
|
39
|
+
'Asia/Bangkok',
|
|
40
|
+
'Asia/Chongqing',
|
|
41
|
+
'Asia/Colombo',
|
|
42
|
+
'Asia/Dhaka',
|
|
43
|
+
'Asia/Dubai',
|
|
44
|
+
'Asia/Ho_Chi_Minh',
|
|
45
|
+
'Asia/Hong_Kong',
|
|
46
|
+
'Asia/Jakarta',
|
|
47
|
+
'Asia/Jerusalem',
|
|
48
|
+
'Asia/Karachi',
|
|
49
|
+
'Asia/Kabul',
|
|
50
|
+
'Asia/Kathmandu',
|
|
51
|
+
'Asia/Kolkata',
|
|
52
|
+
'Asia/Kuala_Lumpur',
|
|
53
|
+
'Asia/Kuwait',
|
|
54
|
+
'Asia/Manila',
|
|
55
|
+
'Asia/Muscat',
|
|
56
|
+
'Asia/Nicosia',
|
|
57
|
+
'Asia/Qatar',
|
|
58
|
+
'Asia/Riyadh',
|
|
59
|
+
'Asia/Seoul',
|
|
60
|
+
'Asia/Shanghai',
|
|
61
|
+
'Asia/Singapore',
|
|
62
|
+
'Asia/Taipei',
|
|
63
|
+
'Asia/Tehran',
|
|
64
|
+
'Asia/Tel_Aviv',
|
|
65
|
+
'Asia/Tokyo',
|
|
66
|
+
'Asia/Yangon',
|
|
67
|
+
'Atlantic/Azores',
|
|
68
|
+
'Atlantic/Reykjavik',
|
|
69
|
+
'Australia/Adelaide',
|
|
70
|
+
'Australia/Brisbane',
|
|
71
|
+
'Australia/Perth',
|
|
72
|
+
'Australia/Sydney',
|
|
73
|
+
'Europe/Amsterdam',
|
|
74
|
+
'Europe/Athens',
|
|
75
|
+
'Europe/Belgrade',
|
|
76
|
+
'Europe/Berlin',
|
|
77
|
+
'Europe/Bratislava',
|
|
78
|
+
'Europe/Brussels',
|
|
79
|
+
'Europe/Bucharest',
|
|
80
|
+
'Europe/Budapest',
|
|
81
|
+
'Europe/Copenhagen',
|
|
82
|
+
'Europe/Dublin',
|
|
83
|
+
'Europe/Helsinki',
|
|
84
|
+
'Europe/Istanbul',
|
|
85
|
+
'Europe/Lisbon',
|
|
86
|
+
'Europe/London',
|
|
87
|
+
'Europe/Luxembourg',
|
|
88
|
+
'Europe/Madrid',
|
|
89
|
+
'Europe/Malta',
|
|
90
|
+
'Europe/Moscow',
|
|
91
|
+
'Europe/Oslo',
|
|
92
|
+
'Europe/Paris',
|
|
93
|
+
'Europe/Riga',
|
|
94
|
+
'Europe/Rome',
|
|
95
|
+
'Europe/Stockholm',
|
|
96
|
+
'Europe/Tallinn',
|
|
97
|
+
'Europe/Vienna',
|
|
98
|
+
'Europe/Vilnius',
|
|
99
|
+
'Europe/Warsaw',
|
|
100
|
+
'Europe/Zurich',
|
|
101
|
+
'Pacific/Auckland',
|
|
102
|
+
'Pacific/Chatham',
|
|
103
|
+
'Pacific/Fakaofo',
|
|
104
|
+
'Pacific/Honolulu',
|
|
105
|
+
'Pacific/Norfolk',
|
|
106
|
+
'US/Mountain',
|
|
107
|
+
];
|
|
108
|
+
/**
|
|
109
|
+
* Intl canonical names → TradingView legacy aliases. Intl returns
|
|
110
|
+
* `America/Denver` but TradingView expects `US/Mountain`. Add here as
|
|
111
|
+
* new devices report unmapped canonicals.
|
|
112
|
+
*/
|
|
113
|
+
exports.CANONICAL_TO_TV = {
|
|
114
|
+
'America/Denver': 'US/Mountain',
|
|
115
|
+
'Asia/Ashgabat': 'Asia/Ashkhabad',
|
|
116
|
+
'Asia/Almaty': 'Asia/Astana',
|
|
117
|
+
};
|
|
118
|
+
/**
|
|
119
|
+
* Resolves the device timezone to a TV-supported IANA identifier. Falls back
|
|
120
|
+
* to `Etc/UTC` when Intl fails or the resolved zone isn't in TV's list.
|
|
121
|
+
*
|
|
122
|
+
* @returns A TradingView-supported IANA timezone identifier.
|
|
123
|
+
*/
|
|
124
|
+
function resolveUserTimezone() {
|
|
125
|
+
try {
|
|
126
|
+
const tz = Intl.DateTimeFormat().resolvedOptions().timeZone || 'Etc/UTC';
|
|
127
|
+
const mapped = exports.CANONICAL_TO_TV[tz] ?? tz;
|
|
128
|
+
return exports.TV_SUPPORTED_TIMEZONES.includes(mapped) ? mapped : 'Etc/UTC';
|
|
129
|
+
}
|
|
130
|
+
catch {
|
|
131
|
+
return 'Etc/UTC';
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
exports.resolveUserTimezone = resolveUserTimezone;
|
|
135
|
+
//# sourceMappingURL=timezone.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"timezone.cjs","sourceRoot":"","sources":["../../src/core/timezone.ts"],"names":[],"mappings":";AAAA,uEAAuE;AACvE,EAAE;AACF,0EAA0E;AAC1E,4EAA4E;AAC5E,qEAAqE;AACrE,qEAAqE;;;AAErE,sEAAsE;AACzD,QAAA,sBAAsB,GAAsB;IACvD,SAAS;IACT,cAAc;IACd,mBAAmB;IACnB,qBAAqB;IACrB,cAAc;IACd,gBAAgB;IAChB,cAAc;IACd,mBAAmB;IACnB,gCAAgC;IAChC,gBAAgB;IAChB,iBAAiB;IACjB,iBAAiB;IACjB,qBAAqB;IACrB,iBAAiB;IACjB,gBAAgB;IAChB,cAAc;IACd,qBAAqB;IACrB,qBAAqB;IACrB,kBAAkB;IAClB,iBAAiB;IACjB,kBAAkB;IAClB,mBAAmB;IACnB,iBAAiB;IACjB,mBAAmB;IACnB,aAAa;IACb,gBAAgB;IAChB,cAAc;IACd,cAAc;IACd,gBAAgB;IAChB,cAAc;IACd,YAAY;IACZ,YAAY;IACZ,kBAAkB;IAClB,gBAAgB;IAChB,cAAc;IACd,gBAAgB;IAChB,cAAc;IACd,YAAY;IACZ,gBAAgB;IAChB,cAAc;IACd,mBAAmB;IACnB,aAAa;IACb,aAAa;IACb,aAAa;IACb,cAAc;IACd,YAAY;IACZ,aAAa;IACb,YAAY;IACZ,eAAe;IACf,gBAAgB;IAChB,aAAa;IACb,aAAa;IACb,eAAe;IACf,YAAY;IACZ,aAAa;IACb,iBAAiB;IACjB,oBAAoB;IACpB,oBAAoB;IACpB,oBAAoB;IACpB,iBAAiB;IACjB,kBAAkB;IAClB,kBAAkB;IAClB,eAAe;IACf,iBAAiB;IACjB,eAAe;IACf,mBAAmB;IACnB,iBAAiB;IACjB,kBAAkB;IAClB,iBAAiB;IACjB,mBAAmB;IACnB,eAAe;IACf,iBAAiB;IACjB,iBAAiB;IACjB,eAAe;IACf,eAAe;IACf,mBAAmB;IACnB,eAAe;IACf,cAAc;IACd,eAAe;IACf,aAAa;IACb,cAAc;IACd,aAAa;IACb,aAAa;IACb,kBAAkB;IAClB,gBAAgB;IAChB,eAAe;IACf,gBAAgB;IAChB,eAAe;IACf,eAAe;IACf,kBAAkB;IAClB,iBAAiB;IACjB,iBAAiB;IACjB,kBAAkB;IAClB,iBAAiB;IACjB,aAAa;CACd,CAAC;AAEF;;;;GAIG;AACU,QAAA,eAAe,GAAqC;IAC/D,gBAAgB,EAAE,aAAa;IAC/B,eAAe,EAAE,gBAAgB;IACjC,aAAa,EAAE,aAAa;CAC7B,CAAC;AAEF;;;;;GAKG;AACH,SAAgB,mBAAmB;IACjC,IAAI,CAAC;QACH,MAAM,EAAE,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC,eAAe,EAAE,CAAC,QAAQ,IAAI,SAAS,CAAC;QACzE,MAAM,MAAM,GAAG,uBAAe,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC;QACzC,OAAO,8BAAsB,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC;IACtE,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,SAAS,CAAC;IACnB,CAAC;AACH,CAAC;AARD,kDAQC","sourcesContent":["// User-timezone resolution for TradingView's `timezone` widget option.\n//\n// Ported from chartLogic.js (~line 5299-5417). TradingView only accepts a\n// fixed set of IANA timezone IDs. `Intl.DateTimeFormat().resolvedOptions()`\n// on device returns the canonical zone; we map a small set of legacy\n// aliases and fall back to Etc/UTC when the zone isn't in TV's list.\n\n/** IANA identifiers TradingView's Advanced Charts library accepts. */\nexport const TV_SUPPORTED_TIMEZONES: readonly string[] = [\n 'Etc/UTC',\n 'Africa/Cairo',\n 'Africa/Casablanca',\n 'Africa/Johannesburg',\n 'Africa/Lagos',\n 'Africa/Nairobi',\n 'Africa/Tunis',\n 'America/Anchorage',\n 'America/Argentina/Buenos_Aires',\n 'America/Bogota',\n 'America/Caracas',\n 'America/Chicago',\n 'America/El_Salvador',\n 'America/Halifax',\n 'America/Juneau',\n 'America/Lima',\n 'America/Los_Angeles',\n 'America/Mexico_City',\n 'America/New_York',\n 'America/Phoenix',\n 'America/Santiago',\n 'America/Sao_Paulo',\n 'America/Toronto',\n 'America/Vancouver',\n 'Asia/Astana',\n 'Asia/Ashkhabad',\n 'Asia/Bahrain',\n 'Asia/Bangkok',\n 'Asia/Chongqing',\n 'Asia/Colombo',\n 'Asia/Dhaka',\n 'Asia/Dubai',\n 'Asia/Ho_Chi_Minh',\n 'Asia/Hong_Kong',\n 'Asia/Jakarta',\n 'Asia/Jerusalem',\n 'Asia/Karachi',\n 'Asia/Kabul',\n 'Asia/Kathmandu',\n 'Asia/Kolkata',\n 'Asia/Kuala_Lumpur',\n 'Asia/Kuwait',\n 'Asia/Manila',\n 'Asia/Muscat',\n 'Asia/Nicosia',\n 'Asia/Qatar',\n 'Asia/Riyadh',\n 'Asia/Seoul',\n 'Asia/Shanghai',\n 'Asia/Singapore',\n 'Asia/Taipei',\n 'Asia/Tehran',\n 'Asia/Tel_Aviv',\n 'Asia/Tokyo',\n 'Asia/Yangon',\n 'Atlantic/Azores',\n 'Atlantic/Reykjavik',\n 'Australia/Adelaide',\n 'Australia/Brisbane',\n 'Australia/Perth',\n 'Australia/Sydney',\n 'Europe/Amsterdam',\n 'Europe/Athens',\n 'Europe/Belgrade',\n 'Europe/Berlin',\n 'Europe/Bratislava',\n 'Europe/Brussels',\n 'Europe/Bucharest',\n 'Europe/Budapest',\n 'Europe/Copenhagen',\n 'Europe/Dublin',\n 'Europe/Helsinki',\n 'Europe/Istanbul',\n 'Europe/Lisbon',\n 'Europe/London',\n 'Europe/Luxembourg',\n 'Europe/Madrid',\n 'Europe/Malta',\n 'Europe/Moscow',\n 'Europe/Oslo',\n 'Europe/Paris',\n 'Europe/Riga',\n 'Europe/Rome',\n 'Europe/Stockholm',\n 'Europe/Tallinn',\n 'Europe/Vienna',\n 'Europe/Vilnius',\n 'Europe/Warsaw',\n 'Europe/Zurich',\n 'Pacific/Auckland',\n 'Pacific/Chatham',\n 'Pacific/Fakaofo',\n 'Pacific/Honolulu',\n 'Pacific/Norfolk',\n 'US/Mountain',\n];\n\n/**\n * Intl canonical names → TradingView legacy aliases. Intl returns\n * `America/Denver` but TradingView expects `US/Mountain`. Add here as\n * new devices report unmapped canonicals.\n */\nexport const CANONICAL_TO_TV: Readonly<Record<string, string>> = {\n 'America/Denver': 'US/Mountain',\n 'Asia/Ashgabat': 'Asia/Ashkhabad',\n 'Asia/Almaty': 'Asia/Astana',\n};\n\n/**\n * Resolves the device timezone to a TV-supported IANA identifier. Falls back\n * to `Etc/UTC` when Intl fails or the resolved zone isn't in TV's list.\n *\n * @returns A TradingView-supported IANA timezone identifier.\n */\nexport function resolveUserTimezone(): string {\n try {\n const tz = Intl.DateTimeFormat().resolvedOptions().timeZone || 'Etc/UTC';\n const mapped = CANONICAL_TO_TV[tz] ?? tz;\n return TV_SUPPORTED_TIMEZONES.includes(mapped) ? mapped : 'Etc/UTC';\n } catch {\n return 'Etc/UTC';\n }\n}\n"]}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/** IANA identifiers TradingView's Advanced Charts library accepts. */
|
|
2
|
+
export declare const TV_SUPPORTED_TIMEZONES: readonly string[];
|
|
3
|
+
/**
|
|
4
|
+
* Intl canonical names → TradingView legacy aliases. Intl returns
|
|
5
|
+
* `America/Denver` but TradingView expects `US/Mountain`. Add here as
|
|
6
|
+
* new devices report unmapped canonicals.
|
|
7
|
+
*/
|
|
8
|
+
export declare const CANONICAL_TO_TV: Readonly<Record<string, string>>;
|
|
9
|
+
/**
|
|
10
|
+
* Resolves the device timezone to a TV-supported IANA identifier. Falls back
|
|
11
|
+
* to `Etc/UTC` when Intl fails or the resolved zone isn't in TV's list.
|
|
12
|
+
*
|
|
13
|
+
* @returns A TradingView-supported IANA timezone identifier.
|
|
14
|
+
*/
|
|
15
|
+
export declare function resolveUserTimezone(): string;
|
|
16
|
+
//# sourceMappingURL=timezone.d.cts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"timezone.d.cts","sourceRoot":"","sources":["../../src/core/timezone.ts"],"names":[],"mappings":"AAOA,sEAAsE;AACtE,eAAO,MAAM,sBAAsB,EAAE,SAAS,MAAM,EAgGnD,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,eAAe,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAI5D,CAAC;AAEF;;;;;GAKG;AACH,wBAAgB,mBAAmB,IAAI,MAAM,CAQ5C"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/** IANA identifiers TradingView's Advanced Charts library accepts. */
|
|
2
|
+
export declare const TV_SUPPORTED_TIMEZONES: readonly string[];
|
|
3
|
+
/**
|
|
4
|
+
* Intl canonical names → TradingView legacy aliases. Intl returns
|
|
5
|
+
* `America/Denver` but TradingView expects `US/Mountain`. Add here as
|
|
6
|
+
* new devices report unmapped canonicals.
|
|
7
|
+
*/
|
|
8
|
+
export declare const CANONICAL_TO_TV: Readonly<Record<string, string>>;
|
|
9
|
+
/**
|
|
10
|
+
* Resolves the device timezone to a TV-supported IANA identifier. Falls back
|
|
11
|
+
* to `Etc/UTC` when Intl fails or the resolved zone isn't in TV's list.
|
|
12
|
+
*
|
|
13
|
+
* @returns A TradingView-supported IANA timezone identifier.
|
|
14
|
+
*/
|
|
15
|
+
export declare function resolveUserTimezone(): string;
|
|
16
|
+
//# sourceMappingURL=timezone.d.mts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"timezone.d.mts","sourceRoot":"","sources":["../../src/core/timezone.ts"],"names":[],"mappings":"AAOA,sEAAsE;AACtE,eAAO,MAAM,sBAAsB,EAAE,SAAS,MAAM,EAgGnD,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,eAAe,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAI5D,CAAC;AAEF;;;;;GAKG;AACH,wBAAgB,mBAAmB,IAAI,MAAM,CAQ5C"}
|
|
@@ -0,0 +1,131 @@
|
|
|
1
|
+
// User-timezone resolution for TradingView's `timezone` widget option.
|
|
2
|
+
//
|
|
3
|
+
// Ported from chartLogic.js (~line 5299-5417). TradingView only accepts a
|
|
4
|
+
// fixed set of IANA timezone IDs. `Intl.DateTimeFormat().resolvedOptions()`
|
|
5
|
+
// on device returns the canonical zone; we map a small set of legacy
|
|
6
|
+
// aliases and fall back to Etc/UTC when the zone isn't in TV's list.
|
|
7
|
+
/** IANA identifiers TradingView's Advanced Charts library accepts. */
|
|
8
|
+
export const TV_SUPPORTED_TIMEZONES = [
|
|
9
|
+
'Etc/UTC',
|
|
10
|
+
'Africa/Cairo',
|
|
11
|
+
'Africa/Casablanca',
|
|
12
|
+
'Africa/Johannesburg',
|
|
13
|
+
'Africa/Lagos',
|
|
14
|
+
'Africa/Nairobi',
|
|
15
|
+
'Africa/Tunis',
|
|
16
|
+
'America/Anchorage',
|
|
17
|
+
'America/Argentina/Buenos_Aires',
|
|
18
|
+
'America/Bogota',
|
|
19
|
+
'America/Caracas',
|
|
20
|
+
'America/Chicago',
|
|
21
|
+
'America/El_Salvador',
|
|
22
|
+
'America/Halifax',
|
|
23
|
+
'America/Juneau',
|
|
24
|
+
'America/Lima',
|
|
25
|
+
'America/Los_Angeles',
|
|
26
|
+
'America/Mexico_City',
|
|
27
|
+
'America/New_York',
|
|
28
|
+
'America/Phoenix',
|
|
29
|
+
'America/Santiago',
|
|
30
|
+
'America/Sao_Paulo',
|
|
31
|
+
'America/Toronto',
|
|
32
|
+
'America/Vancouver',
|
|
33
|
+
'Asia/Astana',
|
|
34
|
+
'Asia/Ashkhabad',
|
|
35
|
+
'Asia/Bahrain',
|
|
36
|
+
'Asia/Bangkok',
|
|
37
|
+
'Asia/Chongqing',
|
|
38
|
+
'Asia/Colombo',
|
|
39
|
+
'Asia/Dhaka',
|
|
40
|
+
'Asia/Dubai',
|
|
41
|
+
'Asia/Ho_Chi_Minh',
|
|
42
|
+
'Asia/Hong_Kong',
|
|
43
|
+
'Asia/Jakarta',
|
|
44
|
+
'Asia/Jerusalem',
|
|
45
|
+
'Asia/Karachi',
|
|
46
|
+
'Asia/Kabul',
|
|
47
|
+
'Asia/Kathmandu',
|
|
48
|
+
'Asia/Kolkata',
|
|
49
|
+
'Asia/Kuala_Lumpur',
|
|
50
|
+
'Asia/Kuwait',
|
|
51
|
+
'Asia/Manila',
|
|
52
|
+
'Asia/Muscat',
|
|
53
|
+
'Asia/Nicosia',
|
|
54
|
+
'Asia/Qatar',
|
|
55
|
+
'Asia/Riyadh',
|
|
56
|
+
'Asia/Seoul',
|
|
57
|
+
'Asia/Shanghai',
|
|
58
|
+
'Asia/Singapore',
|
|
59
|
+
'Asia/Taipei',
|
|
60
|
+
'Asia/Tehran',
|
|
61
|
+
'Asia/Tel_Aviv',
|
|
62
|
+
'Asia/Tokyo',
|
|
63
|
+
'Asia/Yangon',
|
|
64
|
+
'Atlantic/Azores',
|
|
65
|
+
'Atlantic/Reykjavik',
|
|
66
|
+
'Australia/Adelaide',
|
|
67
|
+
'Australia/Brisbane',
|
|
68
|
+
'Australia/Perth',
|
|
69
|
+
'Australia/Sydney',
|
|
70
|
+
'Europe/Amsterdam',
|
|
71
|
+
'Europe/Athens',
|
|
72
|
+
'Europe/Belgrade',
|
|
73
|
+
'Europe/Berlin',
|
|
74
|
+
'Europe/Bratislava',
|
|
75
|
+
'Europe/Brussels',
|
|
76
|
+
'Europe/Bucharest',
|
|
77
|
+
'Europe/Budapest',
|
|
78
|
+
'Europe/Copenhagen',
|
|
79
|
+
'Europe/Dublin',
|
|
80
|
+
'Europe/Helsinki',
|
|
81
|
+
'Europe/Istanbul',
|
|
82
|
+
'Europe/Lisbon',
|
|
83
|
+
'Europe/London',
|
|
84
|
+
'Europe/Luxembourg',
|
|
85
|
+
'Europe/Madrid',
|
|
86
|
+
'Europe/Malta',
|
|
87
|
+
'Europe/Moscow',
|
|
88
|
+
'Europe/Oslo',
|
|
89
|
+
'Europe/Paris',
|
|
90
|
+
'Europe/Riga',
|
|
91
|
+
'Europe/Rome',
|
|
92
|
+
'Europe/Stockholm',
|
|
93
|
+
'Europe/Tallinn',
|
|
94
|
+
'Europe/Vienna',
|
|
95
|
+
'Europe/Vilnius',
|
|
96
|
+
'Europe/Warsaw',
|
|
97
|
+
'Europe/Zurich',
|
|
98
|
+
'Pacific/Auckland',
|
|
99
|
+
'Pacific/Chatham',
|
|
100
|
+
'Pacific/Fakaofo',
|
|
101
|
+
'Pacific/Honolulu',
|
|
102
|
+
'Pacific/Norfolk',
|
|
103
|
+
'US/Mountain',
|
|
104
|
+
];
|
|
105
|
+
/**
|
|
106
|
+
* Intl canonical names → TradingView legacy aliases. Intl returns
|
|
107
|
+
* `America/Denver` but TradingView expects `US/Mountain`. Add here as
|
|
108
|
+
* new devices report unmapped canonicals.
|
|
109
|
+
*/
|
|
110
|
+
export const CANONICAL_TO_TV = {
|
|
111
|
+
'America/Denver': 'US/Mountain',
|
|
112
|
+
'Asia/Ashgabat': 'Asia/Ashkhabad',
|
|
113
|
+
'Asia/Almaty': 'Asia/Astana',
|
|
114
|
+
};
|
|
115
|
+
/**
|
|
116
|
+
* Resolves the device timezone to a TV-supported IANA identifier. Falls back
|
|
117
|
+
* to `Etc/UTC` when Intl fails or the resolved zone isn't in TV's list.
|
|
118
|
+
*
|
|
119
|
+
* @returns A TradingView-supported IANA timezone identifier.
|
|
120
|
+
*/
|
|
121
|
+
export function resolveUserTimezone() {
|
|
122
|
+
try {
|
|
123
|
+
const tz = Intl.DateTimeFormat().resolvedOptions().timeZone || 'Etc/UTC';
|
|
124
|
+
const mapped = CANONICAL_TO_TV[tz] ?? tz;
|
|
125
|
+
return TV_SUPPORTED_TIMEZONES.includes(mapped) ? mapped : 'Etc/UTC';
|
|
126
|
+
}
|
|
127
|
+
catch {
|
|
128
|
+
return 'Etc/UTC';
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
//# sourceMappingURL=timezone.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"timezone.mjs","sourceRoot":"","sources":["../../src/core/timezone.ts"],"names":[],"mappings":"AAAA,uEAAuE;AACvE,EAAE;AACF,0EAA0E;AAC1E,4EAA4E;AAC5E,qEAAqE;AACrE,qEAAqE;AAErE,sEAAsE;AACtE,MAAM,CAAC,MAAM,sBAAsB,GAAsB;IACvD,SAAS;IACT,cAAc;IACd,mBAAmB;IACnB,qBAAqB;IACrB,cAAc;IACd,gBAAgB;IAChB,cAAc;IACd,mBAAmB;IACnB,gCAAgC;IAChC,gBAAgB;IAChB,iBAAiB;IACjB,iBAAiB;IACjB,qBAAqB;IACrB,iBAAiB;IACjB,gBAAgB;IAChB,cAAc;IACd,qBAAqB;IACrB,qBAAqB;IACrB,kBAAkB;IAClB,iBAAiB;IACjB,kBAAkB;IAClB,mBAAmB;IACnB,iBAAiB;IACjB,mBAAmB;IACnB,aAAa;IACb,gBAAgB;IAChB,cAAc;IACd,cAAc;IACd,gBAAgB;IAChB,cAAc;IACd,YAAY;IACZ,YAAY;IACZ,kBAAkB;IAClB,gBAAgB;IAChB,cAAc;IACd,gBAAgB;IAChB,cAAc;IACd,YAAY;IACZ,gBAAgB;IAChB,cAAc;IACd,mBAAmB;IACnB,aAAa;IACb,aAAa;IACb,aAAa;IACb,cAAc;IACd,YAAY;IACZ,aAAa;IACb,YAAY;IACZ,eAAe;IACf,gBAAgB;IAChB,aAAa;IACb,aAAa;IACb,eAAe;IACf,YAAY;IACZ,aAAa;IACb,iBAAiB;IACjB,oBAAoB;IACpB,oBAAoB;IACpB,oBAAoB;IACpB,iBAAiB;IACjB,kBAAkB;IAClB,kBAAkB;IAClB,eAAe;IACf,iBAAiB;IACjB,eAAe;IACf,mBAAmB;IACnB,iBAAiB;IACjB,kBAAkB;IAClB,iBAAiB;IACjB,mBAAmB;IACnB,eAAe;IACf,iBAAiB;IACjB,iBAAiB;IACjB,eAAe;IACf,eAAe;IACf,mBAAmB;IACnB,eAAe;IACf,cAAc;IACd,eAAe;IACf,aAAa;IACb,cAAc;IACd,aAAa;IACb,aAAa;IACb,kBAAkB;IAClB,gBAAgB;IAChB,eAAe;IACf,gBAAgB;IAChB,eAAe;IACf,eAAe;IACf,kBAAkB;IAClB,iBAAiB;IACjB,iBAAiB;IACjB,kBAAkB;IAClB,iBAAiB;IACjB,aAAa;CACd,CAAC;AAEF;;;;GAIG;AACH,MAAM,CAAC,MAAM,eAAe,GAAqC;IAC/D,gBAAgB,EAAE,aAAa;IAC/B,eAAe,EAAE,gBAAgB;IACjC,aAAa,EAAE,aAAa;CAC7B,CAAC;AAEF;;;;;GAKG;AACH,MAAM,UAAU,mBAAmB;IACjC,IAAI,CAAC;QACH,MAAM,EAAE,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC,eAAe,EAAE,CAAC,QAAQ,IAAI,SAAS,CAAC;QACzE,MAAM,MAAM,GAAG,eAAe,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC;QACzC,OAAO,sBAAsB,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC;IACtE,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,SAAS,CAAC;IACnB,CAAC;AACH,CAAC","sourcesContent":["// User-timezone resolution for TradingView's `timezone` widget option.\n//\n// Ported from chartLogic.js (~line 5299-5417). TradingView only accepts a\n// fixed set of IANA timezone IDs. `Intl.DateTimeFormat().resolvedOptions()`\n// on device returns the canonical zone; we map a small set of legacy\n// aliases and fall back to Etc/UTC when the zone isn't in TV's list.\n\n/** IANA identifiers TradingView's Advanced Charts library accepts. */\nexport const TV_SUPPORTED_TIMEZONES: readonly string[] = [\n 'Etc/UTC',\n 'Africa/Cairo',\n 'Africa/Casablanca',\n 'Africa/Johannesburg',\n 'Africa/Lagos',\n 'Africa/Nairobi',\n 'Africa/Tunis',\n 'America/Anchorage',\n 'America/Argentina/Buenos_Aires',\n 'America/Bogota',\n 'America/Caracas',\n 'America/Chicago',\n 'America/El_Salvador',\n 'America/Halifax',\n 'America/Juneau',\n 'America/Lima',\n 'America/Los_Angeles',\n 'America/Mexico_City',\n 'America/New_York',\n 'America/Phoenix',\n 'America/Santiago',\n 'America/Sao_Paulo',\n 'America/Toronto',\n 'America/Vancouver',\n 'Asia/Astana',\n 'Asia/Ashkhabad',\n 'Asia/Bahrain',\n 'Asia/Bangkok',\n 'Asia/Chongqing',\n 'Asia/Colombo',\n 'Asia/Dhaka',\n 'Asia/Dubai',\n 'Asia/Ho_Chi_Minh',\n 'Asia/Hong_Kong',\n 'Asia/Jakarta',\n 'Asia/Jerusalem',\n 'Asia/Karachi',\n 'Asia/Kabul',\n 'Asia/Kathmandu',\n 'Asia/Kolkata',\n 'Asia/Kuala_Lumpur',\n 'Asia/Kuwait',\n 'Asia/Manila',\n 'Asia/Muscat',\n 'Asia/Nicosia',\n 'Asia/Qatar',\n 'Asia/Riyadh',\n 'Asia/Seoul',\n 'Asia/Shanghai',\n 'Asia/Singapore',\n 'Asia/Taipei',\n 'Asia/Tehran',\n 'Asia/Tel_Aviv',\n 'Asia/Tokyo',\n 'Asia/Yangon',\n 'Atlantic/Azores',\n 'Atlantic/Reykjavik',\n 'Australia/Adelaide',\n 'Australia/Brisbane',\n 'Australia/Perth',\n 'Australia/Sydney',\n 'Europe/Amsterdam',\n 'Europe/Athens',\n 'Europe/Belgrade',\n 'Europe/Berlin',\n 'Europe/Bratislava',\n 'Europe/Brussels',\n 'Europe/Bucharest',\n 'Europe/Budapest',\n 'Europe/Copenhagen',\n 'Europe/Dublin',\n 'Europe/Helsinki',\n 'Europe/Istanbul',\n 'Europe/Lisbon',\n 'Europe/London',\n 'Europe/Luxembourg',\n 'Europe/Madrid',\n 'Europe/Malta',\n 'Europe/Moscow',\n 'Europe/Oslo',\n 'Europe/Paris',\n 'Europe/Riga',\n 'Europe/Rome',\n 'Europe/Stockholm',\n 'Europe/Tallinn',\n 'Europe/Vienna',\n 'Europe/Vilnius',\n 'Europe/Warsaw',\n 'Europe/Zurich',\n 'Pacific/Auckland',\n 'Pacific/Chatham',\n 'Pacific/Fakaofo',\n 'Pacific/Honolulu',\n 'Pacific/Norfolk',\n 'US/Mountain',\n];\n\n/**\n * Intl canonical names → TradingView legacy aliases. Intl returns\n * `America/Denver` but TradingView expects `US/Mountain`. Add here as\n * new devices report unmapped canonicals.\n */\nexport const CANONICAL_TO_TV: Readonly<Record<string, string>> = {\n 'America/Denver': 'US/Mountain',\n 'Asia/Ashgabat': 'Asia/Ashkhabad',\n 'Asia/Almaty': 'Asia/Astana',\n};\n\n/**\n * Resolves the device timezone to a TV-supported IANA identifier. Falls back\n * to `Etc/UTC` when Intl fails or the resolved zone isn't in TV's list.\n *\n * @returns A TradingView-supported IANA timezone identifier.\n */\nexport function resolveUserTimezone(): string {\n try {\n const tz = Intl.DateTimeFormat().resolvedOptions().timeZone || 'Etc/UTC';\n const mapped = CANONICAL_TO_TV[tz] ?? tz;\n return TV_SUPPORTED_TIMEZONES.includes(mapped) ? mapped : 'Etc/UTC';\n } catch {\n return 'Etc/UTC';\n }\n}\n"]}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// Property names mirror external contracts (TradingView `LibrarySymbolInfo`,
|
|
3
|
+
// injected `window` globals, RN indicator-color maps), so they intentionally
|
|
4
|
+
// use non-camelCase keys — matching the core convention for external API type
|
|
5
|
+
// files (see `transaction-controller/src/types.ts`).
|
|
6
|
+
/* eslint-disable @typescript-eslint/naming-convention */
|
|
7
|
+
// Shared types for the AdvancedChart WebView modules.
|
|
8
|
+
//
|
|
9
|
+
// These types are local to the WebView bundle. Cross-bridge payload shapes that
|
|
10
|
+
// must match the RN side live in messages/contract.ts and mirror the unions in
|
|
11
|
+
// app/components/UI/Charts/AdvancedChart/AdvancedChart.types.ts.
|
|
12
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
13
|
+
exports.ChartType = void 0;
|
|
14
|
+
/** Chart type integers used by TradingView's setChartType / currentChartType. */
|
|
15
|
+
var ChartType;
|
|
16
|
+
(function (ChartType) {
|
|
17
|
+
ChartType[ChartType["Candles"] = 1] = "Candles";
|
|
18
|
+
ChartType[ChartType["Line"] = 2] = "Line";
|
|
19
|
+
})(ChartType || (exports.ChartType = ChartType = {}));
|
|
20
|
+
//# sourceMappingURL=types.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.cjs","sourceRoot":"","sources":["../../src/core/types.ts"],"names":[],"mappings":";AAAA,6EAA6E;AAC7E,6EAA6E;AAC7E,8EAA8E;AAC9E,qDAAqD;AACrD,yDAAyD;AACzD,sDAAsD;AACtD,EAAE;AACF,gFAAgF;AAChF,+EAA+E;AAC/E,iEAAiE;;;AAwTjE,iFAAiF;AACjF,IAAkB,SAGjB;AAHD,WAAkB,SAAS;IACzB,+CAAW,CAAA;IACX,yCAAQ,CAAA;AACV,CAAC,EAHiB,SAAS,yBAAT,SAAS,QAG1B","sourcesContent":["// Property names mirror external contracts (TradingView `LibrarySymbolInfo`,\n// injected `window` globals, RN indicator-color maps), so they intentionally\n// use non-camelCase keys — matching the core convention for external API type\n// files (see `transaction-controller/src/types.ts`).\n/* eslint-disable @typescript-eslint/naming-convention */\n// Shared types for the AdvancedChart WebView modules.\n//\n// These types are local to the WebView bundle. Cross-bridge payload shapes that\n// must match the RN side live in messages/contract.ts and mirror the unions in\n// app/components/UI/Charts/AdvancedChart/AdvancedChart.types.ts.\n\n/**\n * CONFIG.theme shape as injected by AdvancedChartTemplate.createConfigScript.\n * Every key may be reassigned by SET_THEME_COLORS at runtime.\n */\nexport type ChartTheme = {\n backgroundColor: string;\n borderColor: string;\n textColor: string;\n textDefaultColor: string;\n sectionBackgroundColor: string;\n crosshairBackgroundColor: string;\n crosshairTextColor: string;\n legendTextColor: string;\n textAlternativeColor: string;\n successColor: string;\n lineColor: string;\n errorColor: string;\n primaryColor: string;\n currentPriceColor: string;\n volumeSuccessColor?: string;\n volumeErrorColor?: string;\n gridLineColor?: string;\n};\n\n/**\n * Indicator color palette for MA / MACD / RSI / BOL.\n * Sourced from app/components/UI/Charts/AdvancedChart/indicatorColors.ts on the\n * RN side and injected as CONFIG.indicatorColors.\n */\nexport type IndicatorColors = {\n MA?: Record<string, string>;\n MACD?: Record<string, string>;\n RSI?: Record<string, string>;\n BOL?: Record<string, string>;\n};\n\nexport type ChartFeaturesConfig = {\n enableDrawingTools?: boolean;\n disabledFeatures?: string[];\n hidePaneSeparator?: boolean;\n showBuiltInLegend?: boolean;\n};\n\n/**\n * Indicator names this chart understands. Phase 3 supports the built-in\n * curated set used by Token Details — MACD, RSI, BOL, MA200, plus the\n * five MA-visibility variants (MA5/10/20/50/200). Other names fall through\n * to TradingView's generic createStudy.\n */\nexport type IndicatorName =\n | 'MACD'\n | 'RSI'\n | 'BOL'\n | 'MA200'\n | 'MA5'\n | 'MA10'\n | 'MA20'\n | 'MA50';\n\nexport type LegendPlotCfg = {\n tvTitle: string;\n label: string;\n color: string | null;\n};\n\nexport type LegendIndicatorCfg = {\n plots: LegendPlotCfg[];\n isMA?: boolean;\n useIndex?: boolean;\n combineInOnePill?: boolean;\n title?: string;\n /** When true, legend pills render in the study's own sub-pane overlay. */\n subPaneLegend?: boolean;\n};\n\n/**\n * Optional consumer-supplied legend overlay config inlined as\n * window.CONFIG.legendOverlay. When `enabled` is true the WebView builds a\n * DOM legend overlay above the chart container.\n */\nexport type LegendOverlayConfig = {\n enabled?: boolean;\n /** Per-indicator legend configuration supplied by RN. */\n config?: Record<string, LegendIndicatorCfg>;\n};\n\n/**\n * Visual overrides applied via TradingView's `applyOverrides`. Set by the\n * consumer's `visualOverrides` prop on the RN side. Empty/undefined keys\n * fall through to TradingView defaults.\n */\nexport type VisualOverridesConfigInline = {\n gridLineColor?: string;\n hidePaneSeparator?: boolean;\n currentPriceLineColor?: string;\n volumeUpColor?: string;\n volumeDownColor?: string;\n};\n\n/**\n * Shape of window.CONFIG as inlined by AdvancedChartTemplate before this IIFE\n * runs. Phase 1 reads `libraryUrl`, `theme`, `features`, `indicatorColors`.\n * Phase 2 adds `visualOverrides`. Future phases add more keys as they port\n * from the legacy chartLogic.js.\n */\nexport type ChartConfig = {\n libraryUrl: string;\n theme: ChartTheme;\n features?: ChartFeaturesConfig;\n indicatorColors?: IndicatorColors;\n useSubscriptPriceFormat?: boolean;\n priceDecimals?: number | null;\n visualOverrides?: VisualOverridesConfigInline;\n legendOverlay?: LegendOverlayConfig;\n /** Optional sub-pane height ratio in (0, 1] for RSI/MACD sub-panes. */\n subPaneHeightRatio?: number;\n};\n\n/**\n * Minimal TradingView types we touch in Phase 1. Full types ship with the\n * charting library at runtime; we stub the bits we call.\n */\nexport type TVResolution = string; // NOSONAR — intentional semantic alias for TradingView resolution strings\n\nexport type TVTimeRange = {\n type: 'time-range';\n from: number;\n to: number;\n};\n\nexport type TVWidgetEvent = 'mouse_down' | 'mouse_up' | 'panes_height_changed';\n\nexport type TVChartingLibraryWidget = {\n onChartReady(callback: () => void): void;\n activeChart(): TVActiveChart;\n applyOverrides(overrides: Record<string, unknown>): void;\n subscribe(event: TVWidgetEvent, handler: () => void): void;\n resize(): void;\n remove(): void;\n resetCache?(): void;\n};\n\nexport type TVSubscription<TArgs extends unknown[] = []> = {\n subscribe(scope: unknown, callback: (...args: TArgs) => void): void;\n unsubscribe(scope: unknown, callback: (...args: TArgs) => void): void;\n};\n\nexport type TVTimeScale = {\n setRightOffset(offset: number): void;\n barSpacingChanged(): TVSubscription;\n width?(): number;\n};\n\nexport type TVCrosshairParams = {\n price?: number;\n time?: number;\n offsetX?: number;\n offsetY?: number;\n};\n\nexport type TVMainSeries = {\n /** Re-attaches the main series to the right price scale. */\n detachToRight(): void;\n /** Directly update style properties for a specific chart type (2=line, 10=baseline, etc.). */\n setChartStyleProperties(\n chartStyle: number,\n properties: Record<string, unknown>,\n ): void;\n};\n\n/** Entity id returned by TradingView's `createShape`. */\nexport type TVShapeId = string; // NOSONAR — intentional semantic alias for TradingView shape entity IDs\n\n/**\n * Runtime handle to a drawing shape (icon, horizontal_line, etc.).\n * Only the members we call are typed.\n */\nexport type TVShape = {\n setProperties(properties: Record<string, unknown>): void;\n};\n\nexport type TVShapePoint = {\n time?: number;\n price?: number;\n};\n\nexport type TVShapeCreateOptions = {\n shape: string;\n text?: string;\n icon?: number;\n lock?: boolean;\n overrides?: Record<string, unknown>;\n disableSelection?: boolean;\n disableSave?: boolean;\n disableUndo?: boolean;\n showInObjectsTree?: boolean;\n zOrder?: 'top' | 'bottom';\n};\n\nexport type TVPriceScale = {\n getVisiblePriceRange(): { from: number; to: number } | null;\n width?(): number;\n isInverted?(): boolean;\n getMode?(): number;\n setAutoScale?(enabled: boolean): void;\n};\n\nexport type TVPane = {\n getMainSourcePriceScale(): TVPriceScale | null;\n getRightPriceScales?(): TVPriceScale[];\n getHeight(): number;\n};\n\nexport type StudyId = string; // NOSONAR — intentional semantic alias for TradingView study entity IDs\n\nexport type TVStudy = {\n onDataLoaded(): TVSubscription;\n applyOverrides?(overrides: Record<string, unknown>): void;\n paneIndex?(): number;\n};\n\nexport type TVExportSchemaField = {\n type: string;\n sourceId?: StudyId;\n plotTitle?: string;\n};\n\nexport type TVExportData = {\n schema: TVExportSchemaField[];\n data: number[][];\n displayedData?: string[][];\n};\n\nexport type TVExportDataOptions = {\n includeSeries?: boolean;\n includedStudies?: StudyId[];\n};\n\nexport type TVActiveChart = {\n setChartType(type: ChartType): void;\n setResolution(resolution: TVResolution, callback: () => void): void;\n resetData(): void;\n setVisibleRange(\n range: { from: number; to: number },\n options?: { percentRightMargin?: number },\n ): void;\n getTimeScale(): TVTimeScale;\n getSeries(): TVMainSeries;\n onDataLoaded(): TVSubscription;\n onVisibleRangeChanged(): TVSubscription;\n crossHairMoved(): TVSubscription<[TVCrosshairParams]>;\n selection(): {\n onChanged(): TVSubscription;\n clear(): void;\n };\n createStudy(\n name: string,\n forceOverlay: boolean,\n lock: boolean,\n inputs: Record<string, unknown>,\n overrides: Record<string, unknown>,\n options?: { priceScale?: string },\n ): Promise<StudyId>;\n createShape(\n point: TVShapePoint,\n options: TVShapeCreateOptions,\n ): Promise<TVShapeId>;\n removeEntity(id: StudyId | TVShapeId): void;\n getStudyById(id: StudyId): TVStudy | null;\n getShapeById?(id: TVShapeId): TVShape | null;\n getAllPanesHeight(): number[];\n setAllPanesHeight(heights: number[]): void;\n exportData(options: TVExportDataOptions): Promise<TVExportData>;\n getVisibleRange?(): { from: number; to: number } | null;\n getVisibleBarsRange?(): { from: number; to: number } | null;\n getPanes?(): TVPane[];\n dataReady?(callback: () => void): void;\n};\n\nexport type TVWidgetConstructor = new (\n options: Record<string, unknown>,\n) => TVChartingLibraryWidget;\n\n/** OHLCV bar in milliseconds (matches the SetOHLCVDataPayload in RN). */\nexport type OHLCVBar = {\n time: number;\n open: number;\n high: number;\n low: number;\n close: number;\n volume?: number;\n};\n\n/** TradingView-shaped bar payload returned from datafeed.getBars / subscribeBars. */\nexport type TVBar = {\n time: number;\n open: number;\n high: number;\n low: number;\n close: number;\n volume?: number;\n};\n\nexport type OHLCVPaginationConfig = {\n nextCursor: string | null;\n hasMore: boolean;\n assetId: string | null;\n vsCurrency: string | null;\n};\n\n/** Chart type integers used by TradingView's setChartType / currentChartType. */\nexport const enum ChartType {\n Candles = 1,\n Line = 2,\n}\n\n/** Subset of TV's `LibrarySymbolInfo` we actually return from resolveSymbol. */\nexport type SymbolInfo = {\n name: string;\n ticker: string;\n description: string;\n type: string;\n session: string;\n timezone: string;\n exchange: string;\n minmov: number;\n pricescale: number;\n variable_tick_size: string;\n has_intraday: boolean;\n has_daily: boolean;\n has_weekly_and_monthly: boolean;\n supported_resolutions: string[];\n volume_precision: number;\n data_status: 'streaming' | 'endofday' | 'pulsed' | 'delayed_streaming';\n};\n\nexport type PeriodParams = {\n from: number;\n to: number;\n countBack: number;\n firstDataRequest: boolean;\n};\n\nexport type GetBarsCallback = (\n bars: TVBar[],\n meta?: { noData?: boolean; nextTime?: number },\n) => void;\n\nexport type GetBarsErrorCallback = (reason: string) => void;\n\nexport type RealtimeTickCallback = (tick: TVBar) => void;\n\nexport type TVDatafeed = {\n onReady(callback: (config: Record<string, unknown>) => void): void;\n searchSymbols(\n userInput: string,\n exchange: string,\n symbolType: string,\n onResult: (result: unknown[]) => void,\n ): void;\n resolveSymbol(\n symbolName: string,\n onResolve: (info: SymbolInfo) => void,\n onError: (reason: string) => void,\n ): void;\n getBars(\n symbolInfo: SymbolInfo,\n resolution: TVResolution,\n periodParams: PeriodParams,\n onResult: GetBarsCallback,\n onError: GetBarsErrorCallback,\n ): void;\n subscribeBars(\n symbolInfo: SymbolInfo,\n resolution: TVResolution,\n onTick: RealtimeTickCallback,\n listenerGuid: string,\n ): void;\n unsubscribeBars(listenerGuid: string): void;\n};\n\ndeclare global {\n // Global augmentation of the built-in `Window` interface requires `interface`\n // (declaration merging does not work with a `type` alias).\n // eslint-disable-next-line @typescript-eslint/consistent-type-definitions\n interface Window {\n CONFIG?: ChartConfig;\n TradingView?: { widget: TVWidgetConstructor };\n ReactNativeWebView?: { postMessage(message: string): void };\n }\n}\n"]}
|