You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

467 lines
15 KiB

! function(e, t) {
"object" == typeof exports && "undefined" != typeof module ? t(exports) : "function" == typeof define && define
.amd ? define(["exports"], t) : t((e = "undefined" != typeof globalThis ? globalThis : e || self)
.TradingView = {})
}(this, (function(e) {
"use strict";
function t(e, i) {
const n = {
...e
};
for (const o in i) "object" != typeof e[o] || null === e[o] || Array.isArray(e[o]) ? void 0 !== i[o] &&
(n[o] = i[o]) : n[o] = t(e[o], i[o]);
return n
}
const i = {
mobile: {
// disabled_features: ["left_toolbar", "header_widget", "timeframes_toolbar",
// "edit_buttons_in_legend", "context_menus", "control_bar", "border_around_the_chart"
// ],
enabled_features: []
}
},
n = {
width: 800,
height: 500,
interval: "1D",
timezone: "Etc/UTC",
container: "",
library_path: "",
locale: "en",
widgetbar: {
details: !1,
watchlist: !1,
watchlist_settings: {
default_symbols: []
}
},
overrides: {
"mainSeriesProperties.showCountdown": !1
},
studies_overrides: {},
trading_customization: {
position: {},
order: {}
},
brokerConfig: {
configFlags: {}
},
fullscreen: !1,
autosize: !1,
disabled_features: [],
enabled_features: [],
debug: !1,
logo: {},
time_frames: [{
text: "5y",
resolution: "1W"
}, {
text: "1y",
resolution: "1W"
}, {
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: []
}
};
let o = !1;
function s() {
return "CL v21.066 (internal id 132c7060 @ 2022-04-01T09:59:44.647Z)"
}
const r = class {
constructor(e) {
if (this._id = `tradingview_${(1048576*(1+Math.random())|0).toString(16).substring(1)}`,
this._ready = !1, this._readyHandlers = [], this._onWindowResize = this._autoResizeChart
.bind(this), !e.datafeed) throw new Error("Datafeed is not defined");
if (this._options = t(n, e), e.preset) {
const t = i[e.preset];
t ? (void 0 !== this._options.disabled_features ? this._options.disabled_features = this
._options.disabled_features.concat(t.disabled_features) : this._options
.disabled_features = t.disabled_features, void 0 !== this._options
.enabled_features ? this._options.enabled_features = this._options
.enabled_features.concat(t.enabled_features) : this._options.enabled_features =
t.enabled_features) : console.warn("Unknown preset: `" + e.preset + "`")
}
"Dark" === this._options.theme && void 0 === this._options.loading_screen && (this._options
.loading_screen = {
backgroundColor: "#131722"
}), this._options.debug && (o || (o = !0, console.log(
"Using CL v21.066 (internal id 132c7060 @ 2022-04-01T09:59:44.647Z)"))), this
._create()
}
onChartReady(e) {
this._ready ? e.call(this) : this._readyHandlers.push(e)
}
headerReady() {
return this._innerWindowLoaded.then((() => this._innerWindow().headerReady()))
}
onGrayedObjectClicked(e) {
this._doWhenInnerApiLoaded((t => {
t.onGrayedObjectClicked(e)
}))
}
onShortcut(e, t) {
this._doWhenInnerWindowLoaded((i => {
i.createShortcutAction(e, t)
}))
}
subscribe(e, t) {
this._doWhenInnerApiLoaded((i => {
i.subscribe(e, t)
}))
}
unsubscribe(e, t) {
this._doWhenInnerApiLoaded((i => {
i.unsubscribe(e, t)
}))
}
chart(e) {
return this._innerAPI().chart(e)
}
getLanguage() {
return this._options.locale
}
setSymbol(e, t, i) {
this._innerAPI().changeSymbol(e, t, i)
}
remove() {
window.removeEventListener("resize", this._onWindowResize), this._readyHandlers.splice(0,
this._readyHandlers.length), delete window[this._id], this._iFrame.parentNode &&
this._iFrame.parentNode.removeChild(this._iFrame)
}
closePopupsAndDialogs() {
this._doWhenInnerApiLoaded((e => {
e.closePopupsAndDialogs()
}))
}
selectLineTool(e) {
this._innerAPI().selectLineTool(e)
}
selectedLineTool() {
return this._innerAPI().selectedLineTool()
}
save(e) {
this._innerAPI().saveChart(e)
}
load(e, t) {
this._innerAPI().loadChart({
json: e,
extendedData: t
})
}
getSavedCharts(e) {
this._innerAPI().getSavedCharts(e)
}
loadChartFromServer(e) {
this._innerAPI().loadChartFromServer(e)
}
saveChartToServer(e, t, i) {
this._innerAPI().saveChartToServer(e, t, i)
}
removeChartFromServer(e, t) {
this._innerAPI().removeChartFromServer(e, t)
}
onContextMenu(e) {
this._doWhenInnerApiLoaded((t => {
t.onContextMenu(e)
}))
}
createButton(e) {
return this._innerWindow().createButton(e)
}
createDropdown(e) {
return this._innerWindow().createDropdown(e)
}
showNoticeDialog(e) {
this._doWhenInnerApiLoaded((t => {
t.showNoticeDialog(e)
}))
}
showConfirmDialog(e) {
this._doWhenInnerApiLoaded((t => {
t.showConfirmDialog(e)
}))
}
showLoadChartDialog() {
this._innerAPI().showLoadChartDialog()
}
showSaveAsChartDialog() {
this._innerAPI().showSaveAsChartDialog()
}
symbolInterval() {
return this._innerAPI().getSymbolInterval()
}
mainSeriesPriceFormatter() {
return this._innerAPI().mainSeriesPriceFormatter()
}
getIntervals() {
return this._innerAPI().getIntervals()
}
getStudiesList() {
return this._innerAPI().getStudiesList()
}
getStudyInputs(e) {
return this._innerAPI().getStudyInputs(e)
}
addCustomCSSFile(e) {
this._innerWindow().addCustomCSSFile(e)
}
applyOverrides(e) {
this._options = t(this._options, {
overrides: e
}), this._doWhenInnerWindowLoaded((t => {
t.applyOverrides(e)
}))
}
applyStudiesOverrides(e) {
this._doWhenInnerWindowLoaded((t => {
t.applyStudiesOverrides(e)
}))
}
watchList() {
return this._innerAPI().watchlist()
}
news() {
return this._innerAPI().news()
}
activeChart() {
return this._innerAPI().activeChart()
}
chartsCount() {
return this._innerAPI().chartsCount()
}
layout() {
return this._innerAPI().layout()
}
setLayout(e) {
this._innerAPI().setLayout(e)
}
layoutName() {
return this._innerAPI().layoutName()
}
changeTheme(e, t) {
return this._innerWindow().changeTheme(e, t)
}
getTheme() {
return this._innerWindow().getTheme()
}
takeScreenshot() {
this._doWhenInnerApiLoaded((e => {
e.takeScreenshot()
}))
}
lockAllDrawingTools() {
return this._innerAPI().lockAllDrawingTools()
}
hideAllDrawingTools() {
return this._innerAPI().hideAllDrawingTools()
}
drawOnAllCharts(e) {
this._innerAPI().drawOnAllCharts(e)
}
magnetEnabled() {
return this._innerAPI().magnetEnabled()
}
magnetMode() {
return this._innerAPI().magnetMode()
}
undoRedoState() {
return this._innerAPI().undoRedoState()
}
setIntervalLinkingEnabled(e) {
this._innerAPI().setIntervalLinkingEnabled(e)
}
setTimeFrame(e) {
this._innerAPI().setTimeFrame(e)
}
symbolSync() {
return this._innerAPI().symbolSync()
}
intervalSync() {
return this._innerAPI().intervalSync()
}
crosshairSync() {
return this._innerAPI().crosshairSync()
}
timeSync() {
return this._innerAPI().timeSync()
}
getAllFeatures() {
return this._innerWindow().getAllFeatures()
}
clearUndoHistory() {
return this._innerAPI().clearUndoHistory()
}
undo() {
return this._innerAPI().undo()
}
redo() {
return this._innerAPI().redo()
}
startFullscreen() {
this._innerAPI().startFullscreen()
}
exitFullscreen() {
this._innerAPI().exitFullscreen()
}
takeClientScreenshot(e) {
return this._innerAPI().takeClientScreenshot(e)
}
navigationButtonsVisibility() {
return this._innerWindow().getNavigationButtonsVisibility()
}
paneButtonsVisibility() {
return this._innerWindow().getPaneButtonsVisibility()
}
dateFormat() {
return this._innerWindow().getDateFormat()
}
_innerAPI() {
return this._innerWindow().tradingViewApi
}
_innerWindow() {
return this._iFrame.contentWindow
}
_doWhenInnerWindowLoaded(e) {
this._ready ? e(this._innerWindow()) : this._innerWindowLoaded.then((() => {
e(this._innerWindow())
}))
}
_doWhenInnerApiLoaded(e) {
this._doWhenInnerWindowLoaded((t => {
t.doWhenApiIsReady((() => e(this._innerAPI())))
}))
}
_autoResizeChart() {
this._options.fullscreen && (this._iFrame.style.height = window.innerHeight + "px")
}
_create() {
const e = this._render();
this._options.container_id && console.warn(
"`container_id` is now deprecated. Please use `container` instead to either still pass a string or an `HTMLElement`."
);
const t = this._options.container_id || this._options.container,
i = "string" == typeof t ? document.getElementById(t) : t;
if (null === i) throw new Error(`There is no such element - #${this._options.container}`);
i.innerHTML = e, this._iFrame = i.querySelector(`#${this._id}`);
const n = this._iFrame;
(this._options.autosize || this._options.fullscreen) && (n.style.width = "100%", this
._options.fullscreen || (n.style.height = "100%")), window.addEventListener("resize",
this._onWindowResize), this._onWindowResize(), this._innerWindowLoaded =
new Promise((e => {
const t = () => {
n.removeEventListener("load", t, !1), e()
};
n.addEventListener("load", t, !1)
})), this._innerWindowLoaded.then((() => {
this._innerWindow().widgetReady((() => {
this._ready = !0;
for (const e of this._readyHandlers) try {
e.call(this)
} catch (e) {
console.error(e)
}
this._innerWindow().initializationFinished()
}))
}))
}
_render() {
const e = window;
if (e[this._id] = {
datafeed: this._options.datafeed,
customFormatters: this._options.custom_formatters || this._options.customFormatters,
brokerFactory: this._options.broker_factory || this._options.brokerFactory,
overrides: this._options.overrides,
studiesOverrides: this._options.studies_overrides,
tradingCustomization: this._options.trading_customization,
disabledFeatures: this._options.disabled_features,
enabledFeatures: this._options.enabled_features,
brokerConfig: this._options.broker_config || 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,
getCustomIndicators: this._options.custom_indicators_getter,
additionalSymbolInfoFields: this._options.additional_symbol_info_fields,
headerWidgetButtonsMode: this._options.header_widget_buttons_mode,
symbolSearchComplete: this._options.symbol_search_complete
}, this._options.saved_data) e[this._id].chartContent = {
json: this._options.saved_data
}, this._options.saved_data_meta_info && (e[this._id].chartContentExtendedData = this
._options.saved_data_meta_info);
else if (!this._options.load_last_chart && !this._options.symbol) throw new Error(
"Symbol is not defined: either 'symbol' or 'load_last_chart' option must be set"
);
const t = (this._options.library_path || "") +
`${encodeURIComponent(this._options.locale)}-tv-chart.132c7060.html#symbol=` +
encodeURIComponent(this._options.symbol || "") + "&interval=" + encodeURIComponent(this
._options.interval) + (this._options.timeframe ? "&timeframe=" + encodeURIComponent(
this._options.timeframe) : "") + (this._options.toolbar_bg ? "&toolbarbg=" +
encodeURIComponent(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.custom_css_url ?
"&customCSS=" + encodeURIComponent(this._options.custom_css_url) : "") + (this
._options.auto_save_delay ? "&autoSaveDelay=" + encodeURIComponent(String(this
._options.auto_save_delay)) : "") + "&debug=" + encodeURIComponent(String(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)) : "") + (this._options.compare_symbols ?
"&compareSymbols=" + encodeURIComponent(JSON.stringify(this._options
.compare_symbols)) : "") + (this._options.theme ? "&theme=" +
encodeURIComponent(String(this._options.theme)) : "") + (this._options
.header_widget_buttons_mode ? "&header_widget_buttons_mode=" + encodeURIComponent(
String(this._options.header_widget_buttons_mode)) : "") + (this._options
.time_scale ? "&time_scale=" + encodeURIComponent(JSON.stringify(this._options
.time_scale)) : "");
return '<iframe id="' + this._id + '" name="' + this._id + '" src="' + t + '"' + (this
._options.autosize || this._options.fullscreen ? "" : ' width="' + this._options
.width + '" height="' + this._options.height + '"') +
' title="Financial Chart" frameborder="0" allowTransparency="true" scrolling="no" allowfullscreen style="display:block;"></iframe>'
}
};
window.TradingView = window.TradingView || {}, window.TradingView.version = s, e.version = s, e.widget = r,
Object.defineProperty(e, "__esModule", {
value: !0
})
}));