jhzh
2025-04-03 db12897dc68c68d40c557aa59ad78022e2b30ac2
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
! function(t, e) {
    "object" == typeof exports && "undefined" != typeof module ? e(exports) : "function" == typeof define && define
        .amd ? define(["exports"], e) : e(t.TradingView = t.TradingView || {})
}(this, function(t) {
    "use strict";
 
    function e(t, o) {
        var i = n({}, t);
        for (var s in o) "object" != typeof t[s] || null === t[s] || Array.isArray(t[s]) ? void 0 !== o[s] && (i[
            s] = o[s]) : i[s] = e(t[s], o[s]);
        return i
    }
 
    function o() {
        return "1.12 (internal id 82ee311d @ 2018-03-01 03:55:41.951080)"
    }
 
    function i(t) {
        window.addEventListener("DOMContentLoaded", t, !1)
    }
    var n = Object.assign || function(t) {
            for (var e, o = arguments, i = 1, n = arguments.length; i < n; i++) {
                e = o[i];
                for (var s in e) Object.prototype.hasOwnProperty.call(e, s) && (t[s] = e[s])
            }
            return t
        },
        s = {
            mobile: {
                disabled_features: ["left_toolbar", "header_widget", "timeframes_toolbar", "edit_buttons_in_legend",
                    "context_menus", "control_bar", "border_around_the_chart"
                ],
                enabled_features: []
            }
        },
        r = {
            width: 800,
            height: 500,
            symbol: "AA",
            interval: "D",
            timezone: "UTC",
            container_id: "",
            library_path: "",
            locale: "en",
            widgetbar: {
                details: !1,
                watchlist: !1,
                watchlist_settings: {
                    default_symbols: []
                }
            },
            overrides: {
                "mainSeriesProperties.showCountdown": !1
            },
            studies_overrides: {},
            brokerConfig: {
                configFlags: {}
            },
            fullscreen: !1,
            autosize: !1,
            disabled_features: [],
            enabled_features: [],
            debug: !1,
            logo: {},
            time_frames: [{
                text: "5y",
                resolution: "W"
            }, {
                text: "1y",
                resolution: "W"
            }, {
                text: "6m",
                resolution: "120"
            }, {
                text: "3m",
                resolution: "60"
            }, {
                text: "1m",
                resolution: "30"
            }, {
                text: "5d",
                resolution: "5"
            }, {
                text: "1d",
                resolution: "1"
            }],
            client_id: "0",
            user_id: "0",
            charts_storage_api_version: "1.0",
            favorites: {
                intervals: [],
                chartTypes: []
            }
        },
        a = function() {
            function t(t) {
                if (this._id = "tradingview_" + (1048576 * (1 + Math.random()) | 0).toString(16).substring(1), this
                    ._ready = !1, this._readyHandlers = [], this._onWindowResize = this._autoResizeChart.bind(this),
                    !t.datafeed) throw new Error("Datafeed is not defined");
                if (this._options = e(r, t), t.preset) {
                    var o = s[t.preset];
                    o ? (void 0 !== this._options.disabled_features ? this._options.disabled_features = this
                            ._options.disabled_features.concat(o.disabled_features) : this._options
                            .disabled_features = o.disabled_features, void 0 !== this._options.enabled_features ?
                            this._options.enabled_features = this._options.enabled_features.concat(o
                                .enabled_features) : this._options.enabled_features = o.enabled_features) : console
                        .warn("Unknown preset: `" + t.preset + "`")
                }
                this._create()
            }
            return t.prototype.onChartReady = function(t) {
                this._ready ? t.call(this) : this._readyHandlers.push(t)
            }, t.prototype.onGrayedObjectClicked = function(t) {
                this._innerAPI().onGrayedObjectClicked(t)
            }, t.prototype.onShortcut = function(t, e) {
                this._innerWindow().createShortcutAction(t, e)
            }, t.prototype.subscribe = function(t, e) {
                this._innerAPI().subscribe(t, e)
            }, t.prototype.unsubscribe = function(t, e) {
                this._innerAPI().unsubscribe(t, e)
            }, t.prototype.chart = function(t) {
                return this._innerAPI().chart(t)
            }, t.prototype.setLanguage = function(t) {
                this.remove(), this._options.locale = t, this._create()
            }, t.prototype.setSymbol = function(t, e, o) {
                this._innerAPI().changeSymbol(t, e + "", o)
            }, t.prototype.remove = function() {
                window.removeEventListener("resize", this._onWindowResize), this._readyHandlers.splice(0, this
                    ._readyHandlers.length), delete window[this._id];
                var t = this._getIFrameElement();
                t.contentWindow.destroyChart(), t.parentNode && t.parentNode.removeChild(t)
            }, t.prototype.closePopupsAndDialogs = function() {
                this._innerAPI().closePopupsAndDialogs()
            }, t.prototype.selectLineTool = function(t) {
                this._innerAPI().selectLineTool(t)
            }, t.prototype.selectedLineTool = function() {
                return this._innerAPI().selectedLineTool()
            }, t.prototype.save = function(t) {
                this._innerAPI().saveChart(t)
            }, t.prototype.load = function(t, e) {
                this._innerAPI().loadChart({
                    json: t,
                    extendedData: e
                })
            }, t.prototype.getSavedCharts = function(t) {
                this._innerAPI().getSavedCharts(t)
            }, t.prototype.loadChartFromServer = function(t) {
                this._innerAPI().loadChartFromServer(t)
            }, t.prototype.saveChartToServer = function(t, e, o, i) {
                this._innerAPI().saveChartToServer(t, e, o, i)
            }, t.prototype.removeChartFromServer = function(t, e) {
                this._innerAPI().removeChartFromServer(t, e)
            }, t.prototype.onContextMenu = function(t) {
                this._innerAPI().onContextMenu(t)
            }, t.prototype.createButton = function(t) {
                return this._innerWindow().createButton(t)
            }, t.prototype.showNoticeDialog = function(t) {
                this._innerAPI().showNoticeDialog(t)
            }, t.prototype.showConfirmDialog = function(t) {
                this._innerAPI().showConfirmDialog(t)
            }, t.prototype.showLoadChartDialog = function() {
                this._innerAPI().showLoadChartDialog()
            }, t.prototype.showSaveAsChartDialog = function() {
                this._innerAPI().showSaveAsChartDialog()
            }, t.prototype.symbolInterval = function() {
                return this._innerAPI().getSymbolInterval()
            }, t.prototype.mainSeriesPriceFormatter = function() {
                return this._innerAPI().mainSeriesPriceFormatter()
            }, t.prototype.getIntervals = function() {
                return this._innerAPI().getIntervals()
            }, t.prototype.getStudiesList = function() {
                return this._innerAPI().getStudiesList()
            }, t.prototype.addCustomCSSFile = function(t) {
                this._innerWindow().addCustomCSSFile(t)
            }, t.prototype.applyOverrides = function(t) {
                this._options = e(this._options, {
                    overrides: t
                }), this._innerWindow().applyOverrides(t)
            }, t.prototype.applyStudiesOverrides = function(t) {
                this._innerWindow().applyStudiesOverrides(t)
            }, t.prototype.watchList = function() {
                return this._innerAPI().watchlist()
            }, t.prototype.activeChart = function() {
                return this._innerAPI().activeChart()
            }, t.prototype.chartsCount = function() {
                return this._innerAPI().chartsCount()
            }, t.prototype.layout = function() {
                return this._innerAPI().layout()
            }, t.prototype.setLayout = function(t) {
                this._innerAPI().setLayout(t)
            }, t.prototype._getIFrameElement = function() {
                var t = document.getElementById(this._id);
                if (null === t) throw new Error("There is no such iframe");
                return t
            }, t.prototype._innerAPI = function() {
                return this._getIFrameElement().contentWindow.tradingViewApi
            }, t.prototype._innerWindow = function() {
                return this._getIFrameElement().contentWindow
            }, t.prototype._autoResizeChart = function() {
                this._options.fullscreen && (this._getIFrameElement().style.height = window.innerHeight + "px")
            }, t.prototype._create = function() {
                var t = this,
                    e = this._render(),
                    o = document.getElementById(this._options.container_id);
                if (null === o) throw new Error("There is no such element - #" + this._options.container_id);
                o.innerHTML = e;
                var i = this._getIFrameElement();
                (this._options.autosize || this._options.fullscreen) && (i.style.width = "100%", this._options
                    .fullscreen || (i.style.height = "100%")), window.addEventListener("resize", this
                    ._onWindowResize), this._onWindowResize();
                var n = function() {
                    i.removeEventListener("load", n, !1), i.contentWindow.widgetReady(function() {
                        t._ready = !0;
                        for (var e = 0, o = t._readyHandlers; e < o.length; e++) {
                            o[e].call(t)
                        }
                        i.contentWindow.initializationFinished()
                    })
                };
                i.addEventListener("load", n, !1)
            }, t.prototype._render = function() {
                var t = window;
                t[this._id] = {
                    datafeed: this._options.datafeed,
                    customFormatters: this._options.customFormatters,
                    brokerFactory: this._options.brokerFactory,
                    overrides: this._options.overrides,
                    studiesOverrides: this._options.studies_overrides,
                    disabledFeatures: this._options.disabled_features,
                    enabledFeatures: this._options.enabled_features,
                    brokerConfig: this._options.brokerConfig,
                    restConfig: this._options.restConfig,
                    favorites: this._options.favorites,
                    logo: this._options.logo,
                    numeric_formatting: this._options.numeric_formatting,
                    rss_news_feed: this._options.rss_news_feed,
                    newsProvider: this._options.news_provider,
                    loadLastChart: this._options.load_last_chart,
                    saveLoadAdapter: this._options.save_load_adapter,
                    loading_screen: this._options.loading_screen,
                    settingsAdapter: this._options.settings_adapter
                }, this._options.saved_data && (t[this._id].chartContent = {
                    json: this._options.saved_data
                });
                var e = (this._options.library_path || "") +
                    "static/tv-chart.82ee311dc10bb182c736.html#localserver=1&symbol=" + encodeURIComponent(this
                        ._options.symbol) + "&interval=" + encodeURIComponent(this._options.interval) + (this
                        ._options.timeframe ? "&timeframe=" + encodeURIComponent(this._options.timeframe) : ""
                        ) + (this._options.toolbar_bg ? "&toolbarbg=" + this._options.toolbar_bg.replace("#",
                        "") : "") + (this._options.studies_access ? "&studiesAccess=" + encodeURIComponent(JSON
                        .stringify(this._options.studies_access)) : "") + "&widgetbar=" + encodeURIComponent(
                        JSON.stringify(this._options.widgetbar)) + (this._options.drawings_access ?
                        "&drawingsAccess=" + encodeURIComponent(JSON.stringify(this._options.drawings_access)) :
                        "") + "&timeFrames=" + encodeURIComponent(JSON.stringify(this._options.time_frames)) +
                    "&locale=" + encodeURIComponent(this._options.locale) + "&uid=" + encodeURIComponent(this
                        ._id) + "&clientId=" + encodeURIComponent(String(this._options.client_id)) +
                    "&userId=" + encodeURIComponent(String(this._options.user_id)) + (this._options
                        .charts_storage_url ? "&chartsStorageUrl=" + encodeURIComponent(this._options
                            .charts_storage_url) : "") + (this._options.charts_storage_api_version ?
                        "&chartsStorageVer=" + encodeURIComponent(this._options.charts_storage_api_version) : ""
                        ) + (this._options.indicators_file_name ? "&indicatorsFile=" + encodeURIComponent(this
                        ._options.indicators_file_name) : "") + (this._options.custom_css_url ? "&customCSS=" +
                        encodeURIComponent(this._options.custom_css_url) : "") + (this._options
                        .auto_save_delay ? "&autoSaveDelay=" + encodeURIComponent(String(this._options
                            .auto_save_delay)) : "") + "&debug=" + this._options.debug + (this._options
                        .snapshot_url ? "&snapshotUrl=" + encodeURIComponent(this._options.snapshot_url) : "") +
                    (this._options.timezone ? "&timezone=" + encodeURIComponent(this._options.timezone) : "") +
                    (this._options.study_count_limit ? "&studyCountLimit=" + encodeURIComponent(String(this
                        ._options.study_count_limit)) : "") + (this._options.symbol_search_request_delay ?
                        "&ssreqdelay=" + encodeURIComponent(String(this._options.symbol_search_request_delay)) :
                        "");
                return '<iframe id="' + this._id + '" name="' + this._id + '"  src="' + e + '"' + (this._options
                        .autosize || this._options.fullscreen ? "" : ' width="' + this._options.width +
                        '" height="' + this._options.height + '"') +
                    ' frameborder="0" allowTransparency="true" scrolling="no" allowfullscreen style="display:block;"></iframe>'
            }, t
        }(),
        d = a;
    window.TradingView = window.TradingView || {}, window.TradingView.version = o, t.version = o, t.onready = i, t
        .widget = d, Object.defineProperty(t, "__esModule", {
            value: !0
        })
});