Host-customized fork of https://github.com/tecnovert/basicswap/
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.

1100 lines
60 KiB

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