|
|
"use strict"; |
|
|
!(function () { |
|
|
if (!window.TradingView || !window.TradingView.host || window.TradingView.reoloadTvjs) { |
|
|
var e, |
|
|
t, |
|
|
o, |
|
|
i, |
|
|
n, |
|
|
r, |
|
|
s, |
|
|
a = { "color-gull-gray": "#9db2bd", "color-brand": "#2962FF", "color-brand-hover": "#1E53E5", "color-brand-active": "#1848CC" }, |
|
|
d = "-apple-system, BlinkMacSystemFont, 'Trebuchet MS', Roboto, Ubuntu, sans-serif", |
|
|
l = { |
|
|
host: null == window.location.host.match(/tradingview\.com|pyrrosinvestment\.com/i) ? "https://s.tradingview.com" : "https://www.tradingview.com", |
|
|
ideasHost: "https://www.tradingview.com", |
|
|
chatHost: "https://www.tradingview.com", |
|
|
widgetHost: "https://www.tradingview-widget.com", |
|
|
getHost: function (e) { |
|
|
return e.useWidgetHost ? l.widgetHost : l.host; |
|
|
}, |
|
|
embedStylesForCopyright: function () { |
|
|
var e = document.createElement("style"); |
|
|
return ( |
|
|
(e.innerHTML = |
|
|
".tradingview-widget-copyright {font-size: 13px !important; line-height: 32px !important; text-align: center !important; vertical-align: middle !important; font-family: " + |
|
|
d + |
|
|
" !important; color: " + |
|
|
a["color-gull-gray"] + |
|
|
" !important;} .tradingview-widget-copyright .blue-text {color: " + |
|
|
a["color-brand"] + |
|
|
" !important;} .tradingview-widget-copyright a {text-decoration: none !important; color: " + |
|
|
a["color-gull-gray"] + |
|
|
" !important;} .tradingview-widget-copyright a:visited {color: " + |
|
|
a["color-gull-gray"] + |
|
|
" !important;} .tradingview-widget-copyright a:hover .blue-text {color: " + |
|
|
a["color-brand-hover"] + |
|
|
" !important;} .tradingview-widget-copyright a:active .blue-text {color: " + |
|
|
a["color-brand-active"] + |
|
|
" !important;} .tradingview-widget-copyright a:visited .blue-text {color: " + |
|
|
a["color-brand"] + |
|
|
" !important;}"), |
|
|
e |
|
|
); |
|
|
}, |
|
|
embedStylesForFullHeight: function (e, t, o) { |
|
|
var i = t ? "calc(" + e + " - 32px)" : e, |
|
|
n = document.querySelector("#" + o); |
|
|
(n.parentElement.style.height = i), (n.style.height = "100%"); |
|
|
}, |
|
|
gId: function () { |
|
|
return "tradingview_" + ((1048576 * (1 + Math.random())) | 0).toString(16).substring(1); |
|
|
}, |
|
|
isPersentHeight: function (e) { |
|
|
return "%" === e; |
|
|
}, |
|
|
getSuffix: function (e) { |
|
|
var t = e.toString().match(/(%|px|em|ex)/); |
|
|
return t ? t[0] : "px"; |
|
|
}, |
|
|
hasCopyright: function (e) { |
|
|
var t = document.getElementById(e), |
|
|
o = t && t.parentElement; |
|
|
return !!o && !!o.querySelector(".tradingview-widget-copyright"); |
|
|
}, |
|
|
calculateWidgetHeight: function (e, t) { |
|
|
var o = parseInt(e), |
|
|
i = this.getSuffix(e), |
|
|
n = this.isPersentHeight(i), |
|
|
r = t && this.hasCopyright(t); |
|
|
return n && t && (this.embedStylesForFullHeight(o + i, r, t), r) ? 100 + i : r ? "calc(" + o + i + " - 32px)" : o + i; |
|
|
}, |
|
|
onready: function (e) { |
|
|
window.addEventListener ? window.addEventListener("DOMContentLoaded", e, !1) : window.attachEvent("onload", e); |
|
|
}, |
|
|
css: function (e) { |
|
|
var t, |
|
|
o = document.getElementsByTagName("head")[0], |
|
|
i = document.createElement("style"); |
|
|
(i.type = "text/css"), i.styleSheet ? (i.styleSheet.cssText = e) : ((t = document.createTextNode(e)), i.appendChild(t)), o.appendChild(i); |
|
|
}, |
|
|
bindEvent: function (e, t, o) { |
|
|
e.addEventListener ? e.addEventListener(t, o, !1) : e.attachEvent && e.attachEvent("on" + t, o); |
|
|
}, |
|
|
unbindEvent: function (e, t, o) { |
|
|
e.removeEventListener ? e.removeEventListener(t, o, !1) : e.detachEvent && e.detachEvent("on" + t, o); |
|
|
}, |
|
|
cloneSimpleObject: function (e) { |
|
|
if (null == e || "object" != typeof e) return e; |
|
|
var t = e.constructor(); |
|
|
for (var o in e) e.hasOwnProperty(o) && (t[o] = e[o]); |
|
|
return t; |
|
|
}, |
|
|
isArray: function (e) { |
|
|
return "[object Array]" === Object.prototype.toString.call(e); |
|
|
}, |
|
|
isMobileDevice: |
|
|
((e = { Android: /Android/i.test(navigator.userAgent), BlackBerry: /BlackBerry/i.test(navigator.userAgent), iOS: /iPhone|iPad|iPod/i.test(navigator.userAgent), Opera: /Opera Mini/i.test(navigator.userAgent) }), |
|
|
(e.any = e.Android || e.BlackBerry || e.iOS || e.Opera), |
|
|
e), |
|
|
generateUtmForUrlParams: function (e) { |
|
|
return ( |
|
|
"utm_source=" + |
|
|
encodeURI(window.location.hostname) + |
|
|
"&utm_medium=" + |
|
|
(l.hasCopyright(e.container) ? "widget_new" : "widget") + |
|
|
(e.type ? "&utm_campaign=" + e.type : "") + |
|
|
(e.type && "chart" === e.type ? "&utm_term=" + encodeURIComponent(e.symbol) : "") |
|
|
); |
|
|
}, |
|
|
WidgetAbstract: function () {}, |
|
|
MiniWidget: function (e) { |
|
|
(this.id = l.gId()), |
|
|
(this.options = { |
|
|
whitelabel: e.whitelabel || "", |
|
|
width: l.WidgetAbstract.prototype.fixSize(e.width) || 300, |
|
|
height: l.WidgetAbstract.prototype.fixSize(e.height) || 400, |
|
|
symbols: e.symbols, |
|
|
tabs: e.tabs || "", |
|
|
symbols_description: e.symbols_description || "", |
|
|
customer: e.customer || "", |
|
|
container: e.container_id || "", |
|
|
greyText: e.greyText || "", |
|
|
large_chart_url: e.large_chart_url || "", |
|
|
large_chart_target: e.large_chart_target || "", |
|
|
gridLineColor: e.gridLineColor || "", |
|
|
fontColor: e.fontColor || "", |
|
|
widgetFontColor: e.widgetFontColor || "", |
|
|
underLineColor: e.underLineColor || "", |
|
|
underLineBottomColor: e.underLineBottomColor || "", |
|
|
trendLineColor: e.trendLineColor || "", |
|
|
timeAxisBackgroundColor: e.timeAxisBackgroundColor || "", |
|
|
activeTickerBackgroundColor: e.activeTickerBackgroundColor || "", |
|
|
noGraph: e.noGraph || !1, |
|
|
locale: e.locale, |
|
|
styleTickerActiveBg: e.styleTickerActiveBg || "", |
|
|
styleTabActiveBorderColor: e.styleTabActiveBorderColor || "", |
|
|
styleTickerBodyFontSize: e.styleTickerBodyFontSize || "", |
|
|
styleTickerBodyFontWeight: e.styleTickerBodyFontWeight || "", |
|
|
styleTickerHeadFontSize: e.styleTickerHeadFontSize || "", |
|
|
styleTickerHeadFontWeight: e.styleTickerHeadFontWeight || "", |
|
|
styleTickerChangeDownColor: e.styleTickerChangeDownColor || "", |
|
|
styleTickerChangeUpColor: e.styleTickerChangeUpColor || "", |
|
|
styleTickerLastDownBg: e.styleTickerLastDownBg || "", |
|
|
styleTickerLastUpBg: e.styleTickerLastUpBg || "", |
|
|
styleTickerSymbolColor: e.styleTickerSymbolColor || "", |
|
|
styleTickerSymbolHoverTextDecoration: e.styleTickerSymbolHoverTextDecoration || "", |
|
|
styleTickerActiveSymbolTextDecoration: e.styleTickerActiveSymbolTextDecoration || "", |
|
|
styleTabsActiveBorderColor: e.styleTabsActiveBorderColor || "", |
|
|
styleTabsNoBorder: e.styleTabsNoBorder || "", |
|
|
styleWidgetNoBorder: e.styleWidgetNoBorder || "", |
|
|
useWidgetHost: Boolean(e.useWidgetHost), |
|
|
}), |
|
|
this.createWidget(); |
|
|
}, |
|
|
MediumWidget: function (e) { |
|
|
this.id = l.gId(); |
|
|
const t = l.calculateWidgetHeight(e.height || 400, e.container_id); |
|
|
let o; |
|
|
switch (e.chartType) { |
|
|
case "candlesticks": { |
|
|
const { chartType: t, upColor: i, downColor: n, borderUpColor: r, borderDownColor: s, wickUpColor: a, wickDownColor: d } = e; |
|
|
o = { chartType: t, upColor: i, downColor: n, borderUpColor: r, borderDownColor: s, wickUpColor: a, wickDownColor: d }; |
|
|
break; |
|
|
} |
|
|
case "bars": { |
|
|
const { chartType: t, upColor: i, downColor: n } = e; |
|
|
o = { chartType: t, upColor: i, downColor: n }; |
|
|
break; |
|
|
} |
|
|
case "line": { |
|
|
const { chartType: t, color: i, colorGrowing: n, colorFalling: r, lineWidth: s } = e; |
|
|
o = { chartType: t, color: i, colorGrowing: n, colorFalling: r, lineWidth: s }; |
|
|
break; |
|
|
} |
|
|
case "area": |
|
|
default: { |
|
|
const { |
|
|
chartType: t = "area", |
|
|
lineColor: i = e.trendLineColor || "", |
|
|
lineColorGrowing: n, |
|
|
lineColorFalling: r, |
|
|
topColor: s = e.underLineColor || "", |
|
|
bottomColor: a = e.underLineBottomColor || "", |
|
|
lineWidth: d, |
|
|
} = e; |
|
|
o = { chartType: t, lineColor: i, lineColorGrowing: n, lineColorFalling: r, topColor: s, bottomColor: a, lineWidth: d }; |
|
|
break; |
|
|
} |
|
|
} |
|
|
(this.options = { |
|
|
container: e.container_id || "", |
|
|
width: l.WidgetAbstract.prototype.fixSize(e.width) || "", |
|
|
height: l.WidgetAbstract.prototype.fixSize(t) || "", |
|
|
symbols: e.symbols, |
|
|
greyText: e.greyText || "", |
|
|
symbols_description: e.symbols_description || "", |
|
|
large_chart_url: e.large_chart_url || "", |
|
|
customer: e.customer || "", |
|
|
backgroundColor: e.backgroundColor || "", |
|
|
gridLineColor: e.gridLineColor || "", |
|
|
fontColor: e.fontColor || "", |
|
|
widgetFontColor: e.widgetFontColor || "", |
|
|
timeAxisBackgroundColor: e.timeAxisBackgroundColor || "", |
|
|
chartOnly: !!e.chartOnly, |
|
|
locale: e.locale, |
|
|
whitelabel: !!e.whitelabel || "", |
|
|
colorTheme: e.colorTheme, |
|
|
isTransparent: e.isTransparent, |
|
|
useWidgetHost: Boolean(e.useWidgetHost), |
|
|
showFloatingTooltip: e.showFloatingTooltip, |
|
|
valuesTracking: e.valuesTracking, |
|
|
showVolume: e.showVolume, |
|
|
volumeUpColor: e.volumeUpColor, |
|
|
volumeDownColor: e.volumeDownColor, |
|
|
hideDateRanges: e.hideDateRanges, |
|
|
scalePosition: e.scalePosition, |
|
|
scaleMode: e.scaleMode, |
|
|
fontFamily: e.fontFamily, |
|
|
noTimeScale: e.noTimeScale, |
|
|
...o, |
|
|
}), |
|
|
this.createWidget(); |
|
|
}, |
|
|
widget: function (e) { |
|
|
this.id = e.id || l.gId(); |
|
|
var t = l.getUrlParams(), |
|
|
o = e.tvwidgetsymbol || t.tvwidgetsymbol || t.symbol || e.symbol || "NASDAQ:AAPL", |
|
|
i = e.logo || ""; |
|
|
i.src && (i = i.src), i && i.replace(".png", ""); |
|
|
var n = l.calculateWidgetHeight(e.height || 500, e.container_id); |
|
|
(this.options = { |
|
|
whitelabel: e.whitelabel || "", |
|
|
width: e.width || 800, |
|
|
height: n, |
|
|
symbol: o, |
|
|
interval: e.interval || "1", |
|
|
range: e.range || "", |
|
|
timezone: e.timezone || "", |
|
|
autosize: e.autosize, |
|
|
hide_top_toolbar: e.hide_top_toolbar, |
|
|
hide_side_toolbar: e.hide_side_toolbar, |
|
|
hide_legend: e.hide_legend, |
|
|
allow_symbol_change: e.allow_symbol_change, |
|
|
save_image: void 0 === e.save_image || e.save_image, |
|
|
container: e.container_id || "", |
|
|
toolbar_bg: e.toolbar_bg || "f4f7f9", |
|
|
watchlist: e.watchlist || [], |
|
|
editablewatchlist: !!e.editablewatchlist, |
|
|
studies: e.studies || [], |
|
|
theme: e.theme || "", |
|
|
style: e.style || "", |
|
|
extended_hours: void 0 === e.extended_hours ? void 0 : +e.extended_hours, |
|
|
details: !!e.details, |
|
|
calendar: !!e.calendar, |
|
|
hotlist: !!e.hotlist, |
|
|
hideideas: !!e.hideideas, |
|
|
hideideasbutton: !!e.hideideasbutton, |
|
|
widgetbar_width: +e.widgetbar_width || void 0, |
|
|
withdateranges: e.withdateranges || "", |
|
|
customer: e.customer || i || "", |
|
|
venue: e.venue, |
|
|
symbology: e.symbology, |
|
|
logo: i, |
|
|
show_popup_button: !!e.show_popup_button, |
|
|
popup_height: e.popup_height || "", |
|
|
popup_width: e.popup_width || "", |
|
|
studies_overrides: e.studies_overrides, |
|
|
overrides: e.overrides, |
|
|
enabled_features: e.enabled_features, |
|
|
disabled_features: e.disabled_features, |
|
|
publish_source: e.publish_source || "", |
|
|
enable_publishing: e.enable_publishing, |
|
|
whotrades: e.whotrades || void 0, |
|
|
locale: e.locale, |
|
|
referral_id: e.referral_id, |
|
|
no_referral_id: e.no_referral_id, |
|
|
fundamental: e.fundamental, |
|
|
percentage: e.percentage, |
|
|
hidevolume: e.hidevolume, |
|
|
padding: e.padding, |
|
|
greyText: e.greyText || "", |
|
|
horztouchdrag: e.horztouchdrag, |
|
|
verttouchdrag: e.verttouchdrag, |
|
|
useWidgetHost: Boolean(e.useWidgetHost), |
|
|
}), |
|
|
e.cme && (this.options.customer = "cme"), |
|
|
isFinite(e.widgetbar_width) && e.widgetbar_width > 0 && (this.options.widgetbar_width = e.widgetbar_width), |
|
|
(this._ready_handlers = []), |
|
|
this.create(); |
|
|
}, |
|
|
chart: function (e) { |
|
|
(this.id = l.gId()), |
|
|
(this.options = { |
|
|
width: e.width || 640, |
|
|
height: e.height || 500, |
|
|
container: e.container_id || "", |
|
|
realtime: e.realtime, |
|
|
chart: e.chart, |
|
|
locale: e.locale, |
|
|
type: "chart", |
|
|
autosize: e.autosize, |
|
|
mobileStatic: e.mobileStatic, |
|
|
}), |
|
|
(this._ready_handlers = []), |
|
|
this.create(); |
|
|
}, |
|
|
stream: function (e) { |
|
|
(this.id = l.gId()), (this.options = { width: e.width || 640, height: e.height || 500, container: e.container_id || "", stream: e.stream, locale: e.locale, autosize: e.autosize }), this.create(); |
|
|
}, |
|
|
EventsWidget: function (e) { |
|
|
(this.id = l.gId()), |
|
|
(this.options = { container: e.container_id || "", width: e.width || 486, height: e.height || 670, currency: e.currencyFilter || "", importance: e.importanceFilter || "", type: "economic-calendar" }), |
|
|
this.createWidget(e); |
|
|
}, |
|
|
IdeasStreamWidget: function (e) { |
|
|
(this.id = l.gId()), |
|
|
(this.options = { |
|
|
container: e.container_id || "", |
|
|
width: e.width || 486, |
|
|
height: e.height || 670, |
|
|
symbol: e.symbol || "", |
|
|
username: e.username || "", |
|
|
mode: e.mode || "", |
|
|
publishSource: e.publishSource || "", |
|
|
sort: e.sort || "trending", |
|
|
stream: e.stream, |
|
|
waitSymbol: e.waitSymbol, |
|
|
hideDescription: e.hideDescription, |
|
|
startingCount: e.startingCount, |
|
|
bgColor: e.bgColor || "", |
|
|
headerColor: e.headerColor || "", |
|
|
borderColor: e.borderColor || "", |
|
|
locale: e.locale, |
|
|
type: "ideas-stream", |
|
|
useWidgetHost: Boolean(e.useWidgetHost), |
|
|
}), |
|
|
(this._ready_handlers = []), |
|
|
this.createWidget(); |
|
|
}, |
|
|
IdeaWidget: function (e) { |
|
|
(this.id = l.gId()), |
|
|
(this.options = { container: e.container_id || "", width: e.width || 486, height: e.height || 670, idea: e.idea || "", chartUrl: e.chartUrl || "", whotrades: e.whotrades || void 0, locale: e.locale, type: "idea" }), |
|
|
this.createWidget(e); |
|
|
}, |
|
|
ChatWidgetEmbed: function (e) { |
|
|
(this.id = l.gId()), |
|
|
(this.options = { container: e.container_id || "", width: e.width || 400, height: e.height || 500, room: e.room || "", whotrades: e.whotrades || void 0, locale: e.locale, type: "chat-embed" }), |
|
|
this.createWidget(e); |
|
|
}, |
|
|
}; |
|
|
(l.WidgetAbstract.prototype = { |
|
|
fixSize: function (e) { |
|
|
return /^[0-9]+(\.|,[0-9])*$/.test(e) ? e + "px" : e; |
|
|
}, |
|
|
width: function () { |
|
|
return this.options.autosize ? "100%" : l.WidgetAbstract.prototype.fixSize(this.options.width); |
|
|
}, |
|
|
height: function () { |
|
|
return this.options.autosize ? "100%" : l.WidgetAbstract.prototype.fixSize(this.options.height); |
|
|
}, |
|
|
addWrapperFrame: function (e, t, o) { |
|
|
var i = l.WidgetAbstract.prototype.height.call(this), |
|
|
n = l.WidgetAbstract.prototype.width.call(this); |
|
|
o = o || "transparent"; |
|
|
return ( |
|
|
'<div id="' + |
|
|
this.id + |
|
|
'-wrapper" style="position: relative;box-sizing: content-box;width: ' + |
|
|
n + |
|
|
";height: " + |
|
|
i + |
|
|
";margin: 0 auto !important;padding: 0 !important;font-family: " + |
|
|
d + |
|
|
';"><div style="width: ' + |
|
|
n + |
|
|
";height: " + |
|
|
i + |
|
|
";background: " + |
|
|
o + |
|
|
';padding: 0 !important;">' + |
|
|
e + |
|
|
"</div>" + |
|
|
(t || "") + |
|
|
"</div>" |
|
|
); |
|
|
}, |
|
|
addFooterLogo: function (e, t) { |
|
|
var o = (t || {}).greyText || "powered by", |
|
|
i = (t || {}).linkText || "tradingview.com", |
|
|
n = (t || {}).href || "https://www.tradingview.com/"; |
|
|
return l.WidgetAbstract.prototype.addWrapperFrame.call( |
|
|
this, |
|
|
e, |
|
|
'<div style="position:absolute;display: block;box-sizing: content-box;height: 24px;width: ' + |
|
|
l.WidgetAbstract.prototype.width.call(this) + |
|
|
";bottom: 0;left: 0;margin: 0;padding: 0;font-family: " + |
|
|
d + |
|
|
';"><div style="display: block;margin: 0 1px 1px 1px;line-height: 7px;box-sizing: content-box;height: 11px;padding: 6px 10px;text-align: right;background: #fff;"><a href="' + |
|
|
n + |
|
|
"?" + |
|
|
l.generateUtmForUrlParams(this.options) + |
|
|
'" target="_blank" style="color: #0099d4;text-decoration: none;font-size: 11px;"><span style="color: #b4b4b4;font-size: 11px;">' + |
|
|
o + |
|
|
"</span> " + |
|
|
i + |
|
|
"</a></div></div>", |
|
|
"#fff" |
|
|
); |
|
|
}, |
|
|
}), |
|
|
(l.ChatWidgetEmbed.prototype = { |
|
|
createWidget: function () { |
|
|
var e = this.widgetCode(); |
|
|
(e = l.WidgetAbstract.prototype.addFooterLogo.call(this, e)), h(e, this.options.container); |
|
|
}, |
|
|
widgetCode: function () { |
|
|
var e = this.options.room ? "#" + encodeURIComponent(this.options.room) : "", |
|
|
t = "&" + l.createUrlParams({ whotrades: this.options.whotrades, locale: this.options.locale }), |
|
|
o = l.generateUtmForUrlParams(this.options, { type: "UserInfoWidget" }); |
|
|
return ( |
|
|
'<iframe src="' + |
|
|
(l.chatHost + "/chatwidgetembed/?" + o + t + e) + |
|
|
'"' + |
|
|
(this.options.width ? ' width="' + this.options.width + '"' : "") + |
|
|
(this.options.height ? ' height="' + this.options.height + '"' : "") + |
|
|
' frameborder="0" allowTransparency="true" scrolling="no"></iframe>' |
|
|
); |
|
|
}, |
|
|
}), |
|
|
(l.IdeaWidget.prototype = { |
|
|
createWidget: function () { |
|
|
var e = this.widgetCode(); |
|
|
h(e, this.options.container); |
|
|
var t = this, |
|
|
o = document.getElementById(this.id); |
|
|
(this.postMessage = l.postMessageWrapper(o.contentWindow, this.id)), |
|
|
this.postMessage.on( |
|
|
"resize", |
|
|
function (e) { |
|
|
e.id === t.id && (o.style.height = e.height + "px"); |
|
|
}, |
|
|
!0 |
|
|
); |
|
|
}, |
|
|
widgetCode: function () { |
|
|
var e = l.createUrlParams({ |
|
|
id: this.id, |
|
|
width: this.options.width, |
|
|
height: this.options.height, |
|
|
idea: this.options.idea, |
|
|
chart_url: this.options.chartUrl, |
|
|
whotrades: this.options.whotrades, |
|
|
locale: this.options.locale, |
|
|
}); |
|
|
this.options.type = "idea"; |
|
|
var t = "&" + l.generateUtmForUrlParams(this.options), |
|
|
o = l.ideasHost + "/idea-popup/?" + e + t; |
|
|
return ( |
|
|
'<iframe id="' + |
|
|
this.id + |
|
|
'" src="' + |
|
|
o + |
|
|
'" width="' + |
|
|
this.options.width + |
|
|
'"' + |
|
|
(this.options.height ? ' height="' + this.options.height + '"' : "") + |
|
|
' frameborder="0" allowTransparency="true" scrolling="no"></iframe>' |
|
|
); |
|
|
}, |
|
|
getSymbol: function (e) { |
|
|
this.postMessage.on("symbolInfo", e); |
|
|
}, |
|
|
}), |
|
|
(l.EventsWidget.prototype = { |
|
|
createWidget: function () { |
|
|
var e = this.widgetCode(); |
|
|
h(e, this.options.container); |
|
|
}, |
|
|
widgetCode: function () { |
|
|
var e = l.createUrlParams({ currency: this.options.currency, importance: this.options.importance }); |
|
|
this.options.type = "events"; |
|
|
var t = "&" + l.generateUtmForUrlParams(this.options); |
|
|
return ( |
|
|
'<iframe src="' + |
|
|
(l.getHost(this.options) + "/eventswidgetembed/?" + e + t) + |
|
|
'" width="' + |
|
|
this.options.width + |
|
|
'"' + |
|
|
(this.options.height ? ' height="' + this.options.height + '"' : "") + |
|
|
' frameborder="0" scrolling="no"></iframe>' |
|
|
); |
|
|
}, |
|
|
}), |
|
|
(l.IdeasStreamWidget.prototype = { |
|
|
createWidget: function () { |
|
|
var e = this.widgetCode(); |
|
|
h(e, this.options.container); |
|
|
var t = this, |
|
|
o = document.getElementById(this.id); |
|
|
(this.postMessage = l.postMessageWrapper(o.contentWindow, this.id)), |
|
|
l.bindEvent(o, "load", function () { |
|
|
t._ready = !0; |
|
|
for (var e = t._ready_handlers.length; e--; ) t._ready_handlers[e].call(t); |
|
|
}), |
|
|
t.postMessage.on( |
|
|
"resize", |
|
|
function (e) { |
|
|
if (e.id === t.id) { |
|
|
var i = Math.max(e.height, 450); |
|
|
o.style.height = i + "px"; |
|
|
} |
|
|
}, |
|
|
!0 |
|
|
); |
|
|
}, |
|
|
widgetCode: function () { |
|
|
var e = this.options, |
|
|
t = l.createUrlParams({ |
|
|
id: this.id, |
|
|
width: e.width, |
|
|
height: e.height, |
|
|
symbol: e.symbol, |
|
|
username: e.username, |
|
|
mode: e.mode, |
|
|
publish_source: e.publishSource, |
|
|
sort: e.sort, |
|
|
stream: e.stream, |
|
|
wait_symbol: e.waitSymbol, |
|
|
hide_desc: e.hideDescription, |
|
|
s_count: e.startingCount, |
|
|
bg_color: e.bgColor, |
|
|
h_color: e.headerColor, |
|
|
borderColor: e.borderColor, |
|
|
locale: e.locale, |
|
|
useWidgetHost: Boolean(e.useWidgetHost), |
|
|
}), |
|
|
o = l.generateUtmForUrlParams(this.options) + "&", |
|
|
i = l.getHost(e) + "/ideaswidgetembed/?" + o + t; |
|
|
return '<iframe id="' + this.id + '" src="' + i + '" width="' + e.width + '"' + (e.height ? ' height="' + e.height + '"' : "") + ' frameborder="0" allowTransparency="true" scrolling="no"></iframe>'; |
|
|
}, |
|
|
setSymbol: function (e) { |
|
|
var t = document.getElementById(this.id); |
|
|
this.postMessage.post(t.contentWindow, "setSymbol", e); |
|
|
}, |
|
|
ready: function (e) { |
|
|
this._ready ? e.call(this) : this._ready_handlers.push(e); |
|
|
}, |
|
|
}), |
|
|
(l.MiniWidget.prototype = { |
|
|
createWidget: function () { |
|
|
var e = this.widgetCode(), |
|
|
t = this.options; |
|
|
if (!t.noLogoOverlay && !t.whitelabel) { |
|
|
var o = this.options.greyText || "Quotes by"; |
|
|
e = l.WidgetAbstract.prototype.addFooterLogo.call(this, e, { greyText: o, linkText: "TradingView" }); |
|
|
} |
|
|
h(e, t.container); |
|
|
}, |
|
|
widgetCode: function () { |
|
|
var e = "", |
|
|
t = "", |
|
|
o = "", |
|
|
i = "/miniwidgetembed/", |
|
|
n = this.options.width ? "&width=" + encodeURIComponent(this.options.width) : "", |
|
|
r = this.options.height ? "&height=" + encodeURIComponent(this.options.height) : "", |
|
|
s = this.options.noGraph ? "&noGraph=" + encodeURIComponent(this.options.noGraph) : "", |
|
|
a = this.options.locale ? "&locale=" + encodeURIComponent(this.options.locale) : "", |
|
|
d = this.options.whitelabel ? "&whitelabel=1" : ""; |
|
|
this.options.type = "market-overview"; |
|
|
for ( |
|
|
var h = "&" + l.generateUtmForUrlParams(this.options), |
|
|
c = [ |
|
|
"large_chart_url", |
|
|
"large_chart_target", |
|
|
"backgroundColor", |
|
|
"gridLineColor", |
|
|
"fontColor", |
|
|
"underLineColor", |
|
|
"underLineBottomColor", |
|
|
"trendLineColor", |
|
|
"activeTickerBackgroundColor", |
|
|
"timeAxisBackgroundColor", |
|
|
"locale", |
|
|
"styleTickerActiveBg", |
|
|
"styleTabActiveBorderColor", |
|
|
"styleTickerBodyFontSize", |
|
|
"styleTickerBodyFontWeight", |
|
|
"styleTickerHeadFontSize", |
|
|
"styleTickerHeadFontWeight", |
|
|
"styleTickerChangeDownColor", |
|
|
"styleTickerChangeUpColor", |
|
|
"styleTickerLastDownBg", |
|
|
"styleTickerLastUpBg", |
|
|
"styleTickerSymbolColor", |
|
|
"styleTickerSymbolHoverTextDecoration", |
|
|
"styleTickerActiveSymbolTextDecoration", |
|
|
"styleTabsActiveBorderColor", |
|
|
"styleTabsNoBorder", |
|
|
"styleWidgetNoBorder", |
|
|
], |
|
|
p = "", |
|
|
g = c.length - 1; |
|
|
g >= 0; |
|
|
g-- |
|
|
) { |
|
|
var m = c[g], |
|
|
u = this.options[m]; |
|
|
p += u ? "&" + m + "=" + encodeURIComponent(u) : ""; |
|
|
} |
|
|
var y = function (e) { |
|
|
for (var t = [], i = 0; i < e.length; i++) { |
|
|
var n = e[i]; |
|
|
if (l.isArray(n)) { |
|
|
var r = encodeURIComponent(n[0]), |
|
|
s = encodeURIComponent(n[1]); |
|
|
t.push(r), (o += "&" + r + "=" + s); |
|
|
} else "string" == typeof n && t.push(encodeURIComponent(n)); |
|
|
} |
|
|
return t.join(","); |
|
|
}; |
|
|
if (this.options.tabs) { |
|
|
g = 0; |
|
|
for (var w = this.options.tabs.length; g < w; g++) { |
|
|
var b = this.options.tabs[g]; |
|
|
this.options.symbols[b] && (e += (e ? "&" : "") + encodeURIComponent(b) + "=" + y(this.options.symbols[b])); |
|
|
} |
|
|
t = "&tabs=" + encodeURIComponent(this.options.tabs.join(",")); |
|
|
} else this.options.symbols && (e = "symbols=" + y(this.options.symbols)); |
|
|
if (this.options.symbols_description) for (var f in this.options.symbols_description) o += "&" + encodeURIComponent(f) + "=" + encodeURIComponent(this.options.symbols_description[f]); |
|
|
this.options.customer && (i = "/" + this.options.customer + i); |
|
|
var v = l.getHost(this.options) + i + "?" + e + t + o + p + n + r + s + a + d + h; |
|
|
return ( |
|
|
'<iframe id="' + |
|
|
this.id + |
|
|
'" src="' + |
|
|
v + |
|
|
'" width="' + |
|
|
this.options.width + |
|
|
'"' + |
|
|
(this.options.height ? ' height="' + this.options.height + '"' : "") + |
|
|
' frameborder="0" allowTransparency="true" scrolling="no" style="margin: 0 !important; padding: 0 !important;"></iframe>' |
|
|
); |
|
|
}, |
|
|
remove: function () { |
|
|
var e = document.getElementById("tradingview_widget"); |
|
|
e.parentNode.removeChild(e); |
|
|
}, |
|
|
}), |
|
|
(l.MediumWidget.prototype = { |
|
|
createWidget: function () { |
|
|
var e = this.widgetCode(); |
|
|
h(e, this.options.container); |
|
|
}, |
|
|
widgetCode: function () { |
|
|
var e = "", |
|
|
t = |
|
|
"symbols=" + |
|
|
(function (t) { |
|
|
for (var o = [], i = 0; i < t.length; i++) { |
|
|
var n = t[i]; |
|
|
if (l.isArray(n)) { |
|
|
var r = encodeURIComponent(n[0]), |
|
|
s = encodeURIComponent(n[1]); |
|
|
o.push(r), 2 === n.length && (e += "&" + r + "=" + s); |
|
|
} else "string" == typeof n && o.push(encodeURIComponent(n)); |
|
|
} |
|
|
return o.join(","); |
|
|
})(this.options.symbols), |
|
|
o = "&width=" + encodeURIComponent(this.options.width), |
|
|
i = "&height=" + encodeURIComponent(this.options.height), |
|
|
n = "&colorTheme=" + encodeURIComponent(this.options.colorTheme); |
|
|
this.options.type = "symbol-overview"; |
|
|
var r = "&" + l.generateUtmForUrlParams(this.options); |
|
|
for ( |
|
|
var s = [ |
|
|
"backgroundColor", |
|
|
"gridLineColor", |
|
|
"fontColor", |
|
|
"widgetFontColor", |
|
|
"underLineColor", |
|
|
"underLineBottomColor", |
|
|
"trendLineColor", |
|
|
"activeTickerBackgroundColor", |
|
|
"timeAxisBackgroundColor", |
|
|
"locale", |
|
|
"scalePosition", |
|
|
"scaleMode", |
|
|
"chartType", |
|
|
"color", |
|
|
"colorGrowing", |
|
|
"colorFalling", |
|
|
"lineColor", |
|
|
"lineColorGrowing", |
|
|
"lineColorFalling", |
|
|
"topColor", |
|
|
"bottomColor", |
|
|
"upColor", |
|
|
"downColor", |
|
|
"borderUpColor", |
|
|
"borderDownColor", |
|
|
"wickUpColor", |
|
|
"wickDownColor", |
|
|
"fontFamily", |
|
|
"noTimeScale", |
|
|
"valuesTracking", |
|
|
"lineWidth", |
|
|
"volumeUpColor", |
|
|
"volumeDownColor", |
|
|
], |
|
|
a = "", |
|
|
d = s.length - 1; |
|
|
d >= 0; |
|
|
d-- |
|
|
) { |
|
|
var h = s[d], |
|
|
c = this.options[h]; |
|
|
a += c ? "&" + h + "=" + encodeURIComponent(c) : ""; |
|
|
} |
|
|
var p = this.options.chartOnly ? "&chartOnly=1" : "", |
|
|
g = this.options.whitelabel ? "&whitelabel=1" : "", |
|
|
m = this.options.isTransparent ? "&isTransparent=1" : "", |
|
|
u = this.options.showFloatingTooltip ? "&showFloatingTooltip=1" : "", |
|
|
y = this.options.showVolume ? "&showVolume=1" : "", |
|
|
w = this.options.hideDateRanges ? "&hideDateRanges=1" : "", |
|
|
b = "/mediumwidgetembed/"; |
|
|
this.options.customer && (b = "/" + this.options.customer + b); |
|
|
var f = l.getHost(this.options) + b + "?" + t + e + a + p + g + o + i + n + m + r + u + y + w; |
|
|
return ( |
|
|
'<iframe id="' + |
|
|
this.id + |
|
|
'" src="' + |
|
|
f + |
|
|
'" style="margin: 0 !important; padding: 0 !important; ' + |
|
|
(this.options.width ? "width: " + this.options.width + "; " : "") + |
|
|
(this.options.height ? "height: " + this.options.height + ";" : "") + |
|
|
'" frameborder="0" allowTransparency="true" scrolling="no"></iframe>' |
|
|
); |
|
|
}, |
|
|
remove: function () { |
|
|
var e = document.getElementById("tradingview_widget"); |
|
|
e.parentNode.removeChild(e); |
|
|
}, |
|
|
}), |
|
|
(l.widget.prototype = { |
|
|
create: function () { |
|
|
this.options.type = this.options.fundamental ? "fundamental" : "chart"; |
|
|
var e = this.render(), |
|
|
t = this; |
|
|
this.options.noLogoOverlay || (e = l.WidgetAbstract.prototype.addWrapperFrame.call(this, e)), h(e, this.options.container); |
|
|
var o = document.getElementById("tradingview-copyright"); |
|
|
o && o.parentElement && o.parentElement.removeChild(o), |
|
|
(this.iframe = document.getElementById(this.id)), |
|
|
(this.postMessage = l.postMessageWrapper(this.iframe.contentWindow, this.id)), |
|
|
l.bindEvent(this.iframe, "load", function () { |
|
|
t.postMessage.get("widgetReady", {}, function () { |
|
|
var e; |
|
|
for (t._ready = !0, e = t._ready_handlers.length; e--; ) t._ready_handlers[e].call(t); |
|
|
}); |
|
|
}), |
|
|
t.postMessage.on("logoCreated", function (e) { |
|
|
if (e.left && e.bottom && e.width && e.height && e.href) { |
|
|
t._logoOverlay && (t._logoOverlay.parentNode.removeChild(t._logoOverlay), delete t._logoOverlay); |
|
|
var o = document.createElement("a"); |
|
|
e.text && ((o.textContent = e.text), (o.style.color = "transparent")), |
|
|
(o.style.position = "absolute"), |
|
|
(o.style.display = "inline-block"), |
|
|
(o.style.left = e.left), |
|
|
(o.style.bottom = e.bottom), |
|
|
(o.style.width = e.width), |
|
|
(o.style.height = e.height), |
|
|
(o.style.backgroundColor = "transparent"), |
|
|
(o.style.pointerEvents = "none"), |
|
|
(o.href = e.href), |
|
|
o.setAttribute("target", "_blank"), |
|
|
(t._logoOverlay = o), |
|
|
document.getElementById(t.id + "-wrapper").appendChild(o); |
|
|
} |
|
|
}), |
|
|
t.postMessage.on("setLogoOverlayVisibility", function (e) { |
|
|
t._logoOverlay && e && "boolean" == typeof e.visible && (t._logoOverlay.style.display = e.visible ? "inline-block" : "none"); |
|
|
}), |
|
|
t.postMessage.on("openChartInPopup", function (e) { |
|
|
for (var o = l.cloneSimpleObject(t.options), i = ["symbol", "interval"], n = i.length - 1; n >= 0; n--) { |
|
|
var r = i[n], |
|
|
s = e[r]; |
|
|
s && (o[r] = s); |
|
|
} |
|
|
o.show_popup_button = !1; |
|
|
var a = t.options.popup_width || 900, |
|
|
d = t.options.popup_height || 600, |
|
|
h = (screen.width - a) / 2, |
|
|
c = (screen.height - d) / 2, |
|
|
p = window.open(t.generateUrl(o), "_blank", "resizable=yes, top=" + c + ", left=" + h + ", width=" + a + ", height=" + d); |
|
|
p && (p.opener = null); |
|
|
}); |
|
|
}, |
|
|
ready: function (e) { |
|
|
this._ready ? e.call(this) : this._ready_handlers.push(e); |
|
|
}, |
|
|
render: function () { |
|
|
var e = this.generateUrl(); |
|
|
return '<iframe id="' + this.id + '" src="' + e + '" style="width: 100%; height: 100%; margin: 0 !important; padding: 0 !important;" frameborder="0" allowTransparency="true" scrolling="no" allowfullscreen></iframe>'; |
|
|
}, |
|
|
generateUrl: function (e) { |
|
|
var t; |
|
|
function o(t, o) { |
|
|
return (o = o || t), void 0 === e[t] ? "" : "&" + encodeURIComponent(o) + "=" + (e[t] ? "1" : "0"); |
|
|
} |
|
|
function i(t, o, i) { |
|
|
return (i = i || t), e[t] ? "&" + i + "=" + o : ""; |
|
|
} |
|
|
function n(t, o, i) { |
|
|
return (i = i || {}), "&" + t + "=" + (e[t] ? encodeURIComponent(JSON.stringify(o)) : encodeURIComponent(JSON.stringify(i))); |
|
|
} |
|
|
return ( |
|
|
(t = "cme" === (e = e || this.options).customer ? "/cmewidgetembed/" : e.customer ? "/" + e.customer + "/widgetembed/" : "/widgetembed/"), |
|
|
(e.enable_publishing ? l.ideasHost : l.getHost(e)) + |
|
|
t + |
|
|
"?frameElementId=" + |
|
|
this.id + |
|
|
"&symbol=" + |
|
|
encodeURIComponent(e.symbol) + |
|
|
"&interval=" + |
|
|
encodeURIComponent(e.interval) + |
|
|
(e.range ? "&range=" + encodeURIComponent(e.range) : "") + |
|
|
(e.whitelabel ? "&whitelabel=1" : "") + |
|
|
(e.hide_top_toolbar ? "&hidetoptoolbar=1" : "") + |
|
|
(e.hide_legend ? "&hidelegend=1" : "") + |
|
|
o("hide_side_toolbar", "hidesidetoolbar") + |
|
|
o("allow_symbol_change", "symboledit") + |
|
|
o("save_image", "saveimage") + |
|
|
"&toolbarbg=" + |
|
|
e.toolbar_bg.replace("#", "") + |
|
|
(e.watchlist && e.watchlist.length && e.watchlist.join ? "&watchlist=" + encodeURIComponent(e.watchlist.join("")) : "") + |
|
|
i("editablewatchlist", "1") + |
|
|
i("details", "1") + |
|
|
i("calendar", "1") + |
|
|
i("hotlist", "1") + |
|
|
(e.studies && l.isArray(e.studies) ? ("string" == typeof e.studies[0] ? i("studies", encodeURIComponent(e.studies.join(""))) : n("studies", e.studies)) : "") + |
|
|
o("horztouchdrag") + |
|
|
o("verttouchdrag") + |
|
|
i("widgetbar_width", e.widgetbar_width, "widgetbarwidth") + |
|
|
i("hideideas", "1") + |
|
|
i("theme", encodeURIComponent(e.theme)) + |
|
|
i("style", encodeURIComponent(e.style)) + |
|
|
(void 0 === e.extended_hours ? "" : "&extended_hours=" + e.extended_hours) + |
|
|
i("timezone", encodeURIComponent(e.timezone)) + |
|
|
i("hideideasbutton", "1") + |
|
|
i("withdateranges", "1") + |
|
|
i("hidevolume", "1") + |
|
|
(void 0 === e.padding ? "" : "&padding=" + e.padding) + |
|
|
i("show_popup_button", "1", "showpopupbutton") + |
|
|
n("studies_overrides", e.studies_overrides, {}) + |
|
|
n("overrides", e.overrides, {}) + |
|
|
n("enabled_features", e.enabled_features, []) + |
|
|
n("disabled_features", e.disabled_features, []) + |
|
|
(e.show_popup_button ? "&showpopupbutton=1" : "") + |
|
|
(e.publish_source ? "&publishsource=" + encodeURIComponent(e.publish_source) : "") + |
|
|
(e.enable_publishing ? "&enablepublishing=" + encodeURIComponent(e.enable_publishing) : "") + |
|
|
(e.venue ? "&venue=" + encodeURIComponent(e.venue) : "") + |
|
|
(e.symbology ? "&symbology=" + encodeURIComponent(e.symbology) : "") + |
|
|
(e.whotrades ? "&whotrades=" + encodeURIComponent(e.whotrades) : "") + |
|
|
(e.locale ? "&locale=" + e.locale : "") + |
|
|
(e.referral_id ? "&referral_id=" + e.referral_id : "") + |
|
|
(e.no_referral_id ? "&no_referral_id=1" : "") + |
|
|
(e.fundamental ? "&fundamental=" + encodeURIComponent(e.fundamental) : "") + |
|
|
(e.percentage ? "&percentage=" + encodeURIComponent(e.percentage) : "") + |
|
|
"&utm_source=" + |
|
|
encodeURI(window.location.hostname) + |
|
|
"&utm_medium=" + |
|
|
(l.hasCopyright(e.container) ? "widget_new" : "widget") + |
|
|
(e.type ? "&utm_campaign=" + e.type : "") + |
|
|
(e.type && "chart" === e.type ? "&utm_term=" + encodeURIComponent(e.symbol) : "") |
|
|
); |
|
|
}, |
|
|
image: function (e) { |
|
|
this.postMessage.get("imageURL", {}, function (t) { |
|
|
var o = l.host + "/x/" + t + "/"; |
|
|
e(o); |
|
|
}); |
|
|
}, |
|
|
subscribeToQuote: function (e) { |
|
|
var t = document.getElementById(this.id); |
|
|
this.postMessage.post(t.contentWindow, "quoteSubscribe"), this.postMessage.on("quoteUpdate", e); |
|
|
}, |
|
|
getSymbolInfo: function (e) { |
|
|
this.postMessage.get("symbolInfo", {}, e); |
|
|
}, |
|
|
remove: function () { |
|
|
var e = document.getElementById(this.id); |
|
|
e.parentNode.removeChild(e); |
|
|
}, |
|
|
reload: function () { |
|
|
var e = document.getElementById(this.id), |
|
|
t = e.parentNode; |
|
|
t.removeChild(e), (t.innerHTML = this.render()); |
|
|
}, |
|
|
}), |
|
|
(l.chart.prototype = { |
|
|
create: function () { |
|
|
this.isMobile = l.isMobileDevice.any; |
|
|
var e, |
|
|
t = this.render(), |
|
|
o = this; |
|
|
l.chartCssAttached || (l.css(this.renderCss()), (l.chartCssAttached = !0)), |
|
|
h(t, this.options.container), |
|
|
(e = document.getElementById(this.id)), |
|
|
l.bindEvent(e, "load", function () { |
|
|
var e; |
|
|
for (o._ready = !0, e = o._ready_handlers.length; e--; ) o._ready_handlers[e].call(o); |
|
|
}), |
|
|
l.onready(function () { |
|
|
var t = !1; |
|
|
if ((document.querySelector && document.querySelector('a[href$="/v/' + o.options.chart + '/"]') && (t = !0), !t)) |
|
|
for (var i = document.getElementsByTagName("a"), n = new RegExp("/v/" + o.options.chart + "/$"), r = new RegExp("/chart/([0-9a-zA-Z:+*-/()]+)/" + o.options.chart), s = 0; s < i.length; s++) |
|
|
if (n.test(i[s].href) || r.test(i[s].href)) { |
|
|
t = !0; |
|
|
break; |
|
|
} |
|
|
t && ((e.src += "#nolinks"), (e.name = "nolinks")); |
|
|
}), |
|
|
(this.postMessage = l.postMessageWrapper(e.contentWindow, this.id)), |
|
|
this.postMessage.on( |
|
|
"toggleFullscreen", |
|
|
function (t) { |
|
|
e.contentWindow === this.source && o.toggleFullscreen(t.value); |
|
|
}, |
|
|
!0 |
|
|
); |
|
|
}, |
|
|
ready: l.widget.prototype.ready, |
|
|
renderCss: function () { |
|
|
return ".tradingview-widget {position: relative;}"; |
|
|
}, |
|
|
render: function () { |
|
|
var e = this.options.mobileStatic && this.isMobile ? l.host + "/embed-static/" : l.host + "/embed/", |
|
|
t = "?method=script" + (this.options.locale ? "&locale=" + encodeURIComponent(this.options.locale) : ""); |
|
|
return ( |
|
|
(this.options.type = "chart"), |
|
|
'<div class="tradingview-widget" ' + |
|
|
(this.options.autosize ? ' style="width: 100%; height: 100%; margin: 0 !important; padding: 0 !important;"' : ' style="width:' + this.options.width + "px; height:" + this.options.height + 'px;"') + |
|
|
'><iframe id="' + |
|
|
this.id + |
|
|
'" src="' + |
|
|
e + |
|
|
this.options.chart + |
|
|
"/" + |
|
|
t + |
|
|
"&" + |
|
|
l.generateUtmForUrlParams(this.options) + |
|
|
'"' + |
|
|
(this.options.autosize ? ' style="width: 100%; height: 100%; margin: 0 !important; padding: 0 !important;"' : ' width="' + this.options.width + '" height="' + this.options.height + '"') + |
|
|
' frameborder="0" allowTransparency="true" scrolling="no"></iframe></div>' |
|
|
); |
|
|
}, |
|
|
toggleFullscreen: function (e) { |
|
|
var t = document.getElementById(this.id); |
|
|
e |
|
|
? ((t.style.position = "fixed"), |
|
|
(t.style.width = "100vw"), |
|
|
(t.style.maxWidth = "100%"), |
|
|
(t.style.height = "100vh"), |
|
|
(t.style.maxHeight = "100%"), |
|
|
(t.style.left = "0px"), |
|
|
(t.style.top = "0px"), |
|
|
(t.style.zIndex = "1000000"), |
|
|
(t.style.backgroundColor = "#fff")) |
|
|
: ((t.style.position = "static"), |
|
|
this.options.autosize ? ((t.style.width = "100%"), (t.style.height = "100%")) : ((t.style.width = this.options.width + "px"), (t.style.height = this.options.height + "px")), |
|
|
(t.style.maxWidth = "none"), |
|
|
(t.style.maxHeight = "none"), |
|
|
(t.style.zIndex = "auto"), |
|
|
(t.style.backgroundColor = "transparent")); |
|
|
}, |
|
|
getSymbolInfo: function (e) { |
|
|
this.postMessage.get("symbolInfo", {}, e); |
|
|
}, |
|
|
}), |
|
|
(l.stream.prototype = { |
|
|
create: function () { |
|
|
this.isMobile = l.isMobileDevice.any; |
|
|
var e = this.render(); |
|
|
h(e, this.options.container); |
|
|
}, |
|
|
render: function () { |
|
|
var e = "?" + (this.options.locale ? "&locale=" + encodeURIComponent(this.options.locale) : ""); |
|
|
return ( |
|
|
(this.options.type = "chart"), |
|
|
'<div class="tradingview-widget" ' + |
|
|
(this.options.autosize ? ' style="width: 100%; height: 100%; margin: 0 !important; padding: 0 !important;"' : ' style="width:' + this.options.width + "px; height:" + this.options.height + 'px;"') + |
|
|
'><iframe id="' + |
|
|
this.id + |
|
|
'" src="' + |
|
|
l.host + |
|
|
this.options.stream + |
|
|
"/embed/" + |
|
|
e + |
|
|
"&" + |
|
|
l.generateUtmForUrlParams(this.options) + |
|
|
'"' + |
|
|
(this.options.autosize ? ' style="width: 100%; height: 100%; margin: 0 !important; padding: 0 !important;"' : ' width="' + this.options.width + '" height="' + this.options.height + '"') + |
|
|
' frameborder="0" allowTransparency="true" scrolling="no"></iframe></div>' |
|
|
); |
|
|
}, |
|
|
}), |
|
|
(l.postMessageWrapper = |
|
|
((o = {}), |
|
|
(i = {}), |
|
|
(n = {}), |
|
|
(r = 0), |
|
|
(s = 0), |
|
|
window.addEventListener && |
|
|
window.addEventListener("message", function (e) { |
|
|
var n; |
|
|
try { |
|
|
n = JSON.parse(e.data); |
|
|
} catch (e) { |
|
|
return; |
|
|
} |
|
|
if (n && n.provider && "TradingView" === n.provider) |
|
|
if (((n.source = e.source), "get" === n.type)) { |
|
|
if (!i[n.name]) return; |
|
|
i[n.name].forEach(function (e) { |
|
|
"function" == typeof e && |
|
|
e.call(n, n.data, function (e) { |
|
|
var o = { id: n.id, type: "on", name: n.name, client_id: n.client_id, data: e, provider: "TradingView" }; |
|
|
t.postMessage(JSON.stringify(o), "*"); |
|
|
}); |
|
|
}); |
|
|
} else if ("on" === n.type) o[n.client_id] && o[n.client_id][n.id] && (o[n.client_id][n.id].call(n, n.data), delete o[n.client_id][n.id]); |
|
|
else if ("post" === n.type) { |
|
|
if (!i[n.name]) return; |
|
|
i[n.name].forEach(function (e) { |
|
|
"function" == typeof e && e.call(n, n.data, function () {}); |
|
|
}); |
|
|
} |
|
|
}), |
|
|
function (e, a) { |
|
|
return ( |
|
|
(o[a] = {}), |
|
|
(n[a] = e), |
|
|
(t = e), |
|
|
{ |
|
|
on: function (e, t, o) { |
|
|
(i[e] && o) || (i[e] = []), i[e].push(t); |
|
|
}, |
|
|
off: function (e, t) { |
|
|
if (!i[e]) return !1; |
|
|
var o = i[e].indexOf(t); |
|
|
o > -1 && i[e].splice(o, 1); |
|
|
}, |
|
|
get: function (e, t, i) { |
|
|
var s = { id: r++, type: "get", name: e, client_id: a, data: t, provider: "TradingView" }; |
|
|
(o[a][s.id] = i), n[a].postMessage(JSON.stringify(s), "*"); |
|
|
}, |
|
|
post: function (e, t, o) { |
|
|
var i = { id: s++, type: "post", name: t, data: o, provider: "TradingView" }; |
|
|
e && "function" == typeof e.postMessage && e.postMessage(JSON.stringify(i), "*"); |
|
|
}, |
|
|
} |
|
|
); |
|
|
})), |
|
|
(l.getUrlParams = function () { |
|
|
for ( |
|
|
var e = /\+/g, |
|
|
t = /([^&=]+)=?([^&]*)/g, |
|
|
o = window.location.search.substring(1), |
|
|
i = t.exec(o), |
|
|
n = function (t) { |
|
|
return decodeURIComponent(t.replace(e, " ")); |
|
|
}, |
|
|
r = {}; |
|
|
i; |
|
|
|
|
|
) |
|
|
(r[n(i[1])] = n(i[2])), (i = t.exec(o)); |
|
|
return r; |
|
|
}), |
|
|
(l.createUrlParams = function (e) { |
|
|
var t = []; |
|
|
for (var o in e) e.hasOwnProperty(o) && null != e[o] && t.push(encodeURIComponent(o) + "=" + encodeURIComponent(e[o])); |
|
|
return t.join("&"); |
|
|
}); |
|
|
var h = function (e, t) { |
|
|
var o = document.getElementById(t); |
|
|
if (o) { |
|
|
o.innerHTML = e; |
|
|
var i = o.parentElement && o.parentElement.querySelector(".tradingview-widget-copyright"); |
|
|
i && (i.style.width = o.querySelector("iframe").style.width); |
|
|
} else document.write(e); |
|
|
document.body.appendChild(l.embedStylesForCopyright()); |
|
|
}, |
|
|
c = function (e, t) { |
|
|
for (var o in t) "object" == typeof t[o] && e.hasOwnProperty(o) ? c(e[o], t[o]) : (e[o] = t[o]); |
|
|
return e; |
|
|
}; |
|
|
window.TradingView ? c(window.TradingView, l) : (window.TradingView = l); |
|
|
} |
|
|
})();
|
|
|
|