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
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
|
|
})
|
|
}));
|
|
|