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.
2591 lines
75 KiB
2591 lines
75 KiB
(window.webpackJsonp = window.webpackJsonp || []).push([
|
|
[25], {
|
|
"+5L9": function(e, t) {
|
|
e.exports =
|
|
'<svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" fill="none"><path stroke="currentColor" d="M8 5l3.5 3.5L8 12"/></svg>'
|
|
},
|
|
"1pWb": function(e, t, n) {
|
|
"use strict";
|
|
|
|
function r(e) {
|
|
return !1
|
|
}
|
|
n.d(t, "b", (function() {
|
|
return r
|
|
})), n.d(t, "a", (function() {
|
|
return "###"
|
|
}))
|
|
},
|
|
"2gjO": function(e, t, n) {
|
|
e.exports = {
|
|
wrap: "wrap-1LtT-c03",
|
|
item: "item-1LtT-c03",
|
|
small: "small-1LtT-c03",
|
|
text: "text-1LtT-c03",
|
|
exchange: "exchange-1LtT-c03"
|
|
}
|
|
},
|
|
"6rj1": function(e, t) {
|
|
e.exports =
|
|
'<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 120 121" width="120" height="121" fill="none"><path fill="#F0F3FA" fill-rule="evenodd" clip-rule="evenodd" d="M26.01 81.72c10.54 13.42 34.92 11.87 54.46-3.47 19.55-15.34 26.85-38.66 16.31-52.08-10.54-13.42-34.92-11.87-54.46 3.47-9.2 7.22-15.68 16.2-18.87 25.09-.68 1.89-2.57 3.06-4.53 3.48a9.7 9.7 0 0 0-3.96 1.86C10.5 63.57 9.91 70.26 13.64 75a11.24 11.24 0 0 0 7.82 4.31 6.2 6.2 0 0 1 4.55 2.4z"/><path fill="url(#as2qxyr1y)" fill-rule="evenodd" clip-rule="evenodd" d="M38.3 46.18c1.8 3.43 12.08 10.65 25.62 16.89 6.36 2.93 12.38 5.3 17.37 6.92a172.7 172.7 0 0 0-18-12.68C48.7 48.2 38.32 44.9 38.32 44.9c-.18.3-.19.72-.01 1.27z"/><path stroke="#1E222D" stroke-width="1.5" d="M96.25 82.01c-.19.3-.54.55-1.17.7a7.8 7.8 0 0 1-2.56.08c-2.14-.22-5-1-8.4-2.28-6.78-2.57-15.53-7.12-24.64-13.05-9.12-5.94-16.82-12.1-21.92-17.26-2.55-2.58-4.41-4.89-5.48-6.76a7.8 7.8 0 0 1-.96-2.37c-.12-.64-.03-1.06.16-1.35.2-.29.54-.54 1.17-.7a7.79 7.79 0 0 1 2.56-.08c2.14.22 5 1 8.4 2.28 6.78 2.57 15.53 7.13 24.64 13.06 9.12 5.93 16.82 12.1 21.92 17.25 2.55 2.59 4.42 4.89 5.48 6.76.54.94.85 1.73.96 2.37.12.64.03 1.06-.16 1.35z"/><path stroke="#1E222D" stroke-linecap="round" stroke-width="1.5" d="M38.96 45.25c1.99.57 4.47 1.55 7.3 2.86l12.2 6.52c2.16 1.3 4.4 2.68 6.66 4.16 10.56 6.87 19.12 13.85 22.97 18.44"/><path stroke="#1E222D" stroke-width="1.5" d="M93.79 76.21c6.77-14.14 1.41-32-13.05-41.42-14.46-9.41-32.96-7.09-43.15 4.83M84.96 31.87a6.08 6.08 0 0 1-2.58 2.29c-.9.39-1.69.35-2.23 0s-.9-1.05-.9-2.04a6.08 6.08 0 0 1 1.05-3.28 6.08 6.08 0 0 1 2.58-2.3c.9-.39 1.69-.35 2.23 0 .54.36.9 1.05.9 2.04.01.99-.32 2.17-1.05 3.29z"/><path stroke="#1E222D" stroke-linecap="round" stroke-width="1.5" d="M52.7 34.25c1.25-.31 4.56-1.32 8.92-1.3M90.14 94.7c-3.64-.05-15.75-.08-30.14-.08s-26.5.03-30.14.08M34.7 69.95l5.77 5.33M42.05 66.68l.84 3.27"/><defs><linearGradient gradientUnits="userSpaceOnUse" x1="59.73" x2="59.73" y1="44.91" y2="69.99" id="as2qxyr1y"><stop stop-color="#2962FF"/><stop offset="1" stop-color="#2962FF"/></linearGradient></defs></svg>'
|
|
},
|
|
"8q1k": function(e, t) {
|
|
e.exports =
|
|
'<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 13 13" width="13" height="13"><path fill="none" stroke="currentColor" stroke-linecap="square" d="M3 10l7-7M3 3l7 7"/></svg>'
|
|
},
|
|
"952j": function(e, t, n) {
|
|
"use strict";
|
|
n.d(t, "a", (function() {
|
|
return c
|
|
})), n.d(t, "b", (function() {
|
|
return l
|
|
}));
|
|
var r = n("Kxc7"),
|
|
a = n("1pWb");
|
|
const o = r.enabled("charting_library_base") ?
|
|
/(?:[^-+\/*^\s]'|[a-zA-Z0-9_\u0370-\u1FFF_\u2E80-\uFFFF^])(?:[^-+\/*^\s]'|[a-zA-Z0-9_\u0020\u0370-\u1FFF_\u2E80-\uFFFF_!:.&])*|'.+?'/ :
|
|
/(?:[^-+\/*^\s]'|[a-zA-Z0-9_\u0370-\u1FFF_\u2E80-\uFFFF])(?:[^-+\/*^\s]'|[a-zA-Z0-9_\u0020\u0370-\u1FFF_\u2E80-\uFFFF_!|:.&])*|'.+?'/,
|
|
c = /[+\-/*]/,
|
|
s = {
|
|
number: /\d+(?:\.\d*|(?![a-zA-Z0-9_!:.&]))|\.\d+/,
|
|
incompleteNumber: /\./,
|
|
symbol: o,
|
|
incompleteSymbol: /'[^']*/,
|
|
separatorPrefix: a.a,
|
|
openBrace: "(",
|
|
closeBrace: ")",
|
|
plus: "+",
|
|
minus: "-",
|
|
multiply: "*",
|
|
divide: "/",
|
|
power: "^",
|
|
whitespace: /[\0-\x20\s]+/,
|
|
unparsed: null
|
|
},
|
|
i = new RegExp(Object.values(s).map(e => {
|
|
return null === e ? "" :
|
|
`(${"string"==typeof e?(t=e,t.replace(/[\^$()[\]{}*+?|\\]/g,"\\$&")):e.source})`;
|
|
var t
|
|
}).filter(e => "" !== e).concat(".").join("|"), "g");
|
|
|
|
function l(e) {
|
|
if (!e) return [];
|
|
const t = [],
|
|
n = Object.keys(s);
|
|
let r;
|
|
for (; r = i.exec(e);) {
|
|
let e = !1;
|
|
for (let a = n.length; a--;)
|
|
if (r[a + 1]) {
|
|
n[a] && t.push({
|
|
value: r[a + 1],
|
|
type: n[a],
|
|
precedence: 0,
|
|
offset: r.index
|
|
}), e = !0;
|
|
break
|
|
} e || t.push({
|
|
value: r[0],
|
|
type: "unparsed",
|
|
precedence: 0,
|
|
offset: r.index
|
|
})
|
|
}
|
|
return t
|
|
}
|
|
},
|
|
CJov: function(e, t, n) {
|
|
"use strict";
|
|
n.d(t, "a", (function() {
|
|
return a
|
|
}));
|
|
var r = n("q1tI");
|
|
const a = n.n(r).a.createContext(null)
|
|
},
|
|
EBrf: function(e, t, n) {
|
|
"use strict";
|
|
n.r(t), n.d(t, "splitThousands", (function() {
|
|
return a
|
|
}));
|
|
var r = n("ivNn");
|
|
|
|
function a(e, t = " ") {
|
|
let n = e + ""; - 1 !== n.indexOf("e") && (n = function(e) {
|
|
return Object(r.fixComputationError)(e).toFixed(10).replace(/\.?0+$/, "")
|
|
}(Number(e)));
|
|
const a = n.split(".");
|
|
return a[0].replace(/\B(?=(\d{3})+(?!\d))/g, t) + (a[1] ? "." + a[1] : "")
|
|
}
|
|
},
|
|
FadI: function(e, t, n) {
|
|
"use strict";
|
|
|
|
function r(e) {
|
|
if (!c(e)) throw e
|
|
}
|
|
|
|
function a(e) {
|
|
return (null == e ? void 0 : e.aborted) ? Promise.reject(o()) : new Promise((t, n) => {
|
|
null == e || e.addEventListener("abort", () => n(o()), {
|
|
once: !0
|
|
})
|
|
})
|
|
}
|
|
|
|
function o() {
|
|
return new DOMException("Aborted", "AbortError")
|
|
}
|
|
|
|
function c(e) {
|
|
return e instanceof Error && "AbortError" === e.name
|
|
}
|
|
|
|
function s(e, t) {
|
|
return Promise.race([a(e), t])
|
|
}
|
|
async function i(e, t) {
|
|
let n;
|
|
try {
|
|
await s(e, new Promise(e => {
|
|
n = setTimeout(e, t)
|
|
}))
|
|
} finally {
|
|
clearTimeout(n)
|
|
}
|
|
}
|
|
n.d(t, "c", (function() {
|
|
return r
|
|
})), n.d(t, "b", (function() {
|
|
return s
|
|
})), n.d(t, "a", (function() {
|
|
return i
|
|
}))
|
|
},
|
|
G4pG: function(e, t, n) {
|
|
e.exports = {
|
|
flagWrap: "flagWrap-1Xy6iEIs",
|
|
icon: "icon-1Xy6iEIs",
|
|
caret: "caret-1Xy6iEIs",
|
|
title: "title-1Xy6iEIs"
|
|
}
|
|
},
|
|
GWR5: function(e, t, n) {
|
|
e.exports = {
|
|
wrap: "wrap-2TpXRNRX",
|
|
libAllExchange: "libAllExchange-2TpXRNRX",
|
|
container: "container-2TpXRNRX",
|
|
iconWrap: "iconWrap-2TpXRNRX",
|
|
icon: "icon-2TpXRNRX",
|
|
title: "title-2TpXRNRX",
|
|
highlighted: "highlighted-2TpXRNRX",
|
|
description: "description-2TpXRNRX",
|
|
mobile: "mobile-2TpXRNRX",
|
|
allExchange: "allExchange-2TpXRNRX",
|
|
desktop: "desktop-2TpXRNRX",
|
|
allExchangesIcon: "allExchangesIcon-2TpXRNRX",
|
|
selected: "selected-2TpXRNRX",
|
|
titleWithoutDesc: "titleWithoutDesc-2TpXRNRX",
|
|
textBlock: "textBlock-2TpXRNRX",
|
|
bordered: "bordered-2TpXRNRX"
|
|
}
|
|
},
|
|
Gtzb: function(e, t, n) {
|
|
"use strict";
|
|
n.d(t, "a", (function() {
|
|
return r
|
|
})), n.d(t, "b", (function() {
|
|
return a
|
|
}));
|
|
class r {
|
|
constructor() {
|
|
this._storage = new Map
|
|
}
|
|
setAsOpened(e, t) {
|
|
this._storage.set(e, t)
|
|
}
|
|
setAsClosed(e) {
|
|
this._storage.delete(e)
|
|
}
|
|
isOpened(e) {
|
|
return this._storage.has(e)
|
|
}
|
|
getDialogPayload(e) {
|
|
return this._storage.get(e)
|
|
}
|
|
}
|
|
const a = new r
|
|
},
|
|
Iruf: function(e, t, n) {
|
|
e.exports = {
|
|
container: "container-oVVv2l_M",
|
|
contentList: "contentList-oVVv2l_M",
|
|
contentListDesktop: "contentListDesktop-oVVv2l_M",
|
|
exchangeItemsContainer: "exchangeItemsContainer-oVVv2l_M",
|
|
exchangeItemsContainerDesktop: "exchangeItemsContainerDesktop-oVVv2l_M",
|
|
groupTitleDesktop: "groupTitleDesktop-oVVv2l_M",
|
|
emptyText: "emptyText-oVVv2l_M",
|
|
noResultsDesktop: "noResultsDesktop-oVVv2l_M"
|
|
}
|
|
},
|
|
"ML8+": function(e, t, n) {
|
|
"use strict";
|
|
n.d(t, "a", (function() {
|
|
return i
|
|
}));
|
|
var r = n("q1tI"),
|
|
a = n("TSYQ"),
|
|
o = n("Iivm"),
|
|
c = n("cvzQ"),
|
|
s = n("R4+T");
|
|
|
|
function i(e) {
|
|
const {
|
|
dropped: t,
|
|
className: n
|
|
} = e;
|
|
return r.createElement(o.a, {
|
|
className: a(n, c.icon, {
|
|
[c.dropped]: t
|
|
}),
|
|
icon: s
|
|
})
|
|
}
|
|
},
|
|
OWoh: function(e, t) {
|
|
e.exports =
|
|
'<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 13 13" width="13" height="13"><path fill="none" stroke="currentColor" stroke-linecap="square" d="M3 7l3.5-3.5L10 7"/></svg>'
|
|
},
|
|
OoQL: function(e, t, n) {
|
|
"use strict";
|
|
n.d(t, "a", (function() {
|
|
return o
|
|
}));
|
|
var r = n("q1tI"),
|
|
a = n("Eyy1");
|
|
|
|
function o(e) {
|
|
return Object(a.ensureNotNull)(Object(r.useContext)(e))
|
|
}
|
|
},
|
|
Pdm7: function(e, t, n) {
|
|
e.exports = {
|
|
actions: "actions-3cho5KDh",
|
|
actionButton: "actionButton-3cho5KDh"
|
|
}
|
|
},
|
|
"R4+T": function(e, t) {
|
|
e.exports =
|
|
'<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 8" width="16" height="8"><path fill="currentColor" d="M0 1.475l7.396 6.04.596.485.593-.49L16 1.39 14.807 0 7.393 6.122 8.58 6.12 1.186.08z"/></svg>'
|
|
},
|
|
SAe1: function(e, t, n) {
|
|
"use strict";
|
|
n.d(t, "a", (function() {
|
|
return c
|
|
}));
|
|
var r = n("q1tI"),
|
|
a = n("rzV7"),
|
|
o = n.n(a);
|
|
class c extends r.Component {
|
|
constructor(e) {
|
|
super(e), this._handleMediaChange = () => {
|
|
const e = i(this.state.queries, (e, t) => t.matches);
|
|
let t = !1;
|
|
for (const n in e)
|
|
if (e.hasOwnProperty(n) && this.state.matches[n] !== e[n]) {
|
|
t = !0;
|
|
break
|
|
} t && this.setState({
|
|
matches: e
|
|
})
|
|
};
|
|
const {
|
|
rules: t
|
|
} = this.props;
|
|
this.state = s(t)
|
|
}
|
|
shouldComponentUpdate(e, t) {
|
|
return !o()(e, this.props) || (!o()(t.rules, this.state.rules) || !o()(t
|
|
.matches, this.state.matches))
|
|
}
|
|
componentDidMount() {
|
|
this._migrate(null, this.state.queries)
|
|
}
|
|
componentDidUpdate(e, t) {
|
|
o()(e.rules, this.props.rules) || this._migrate(t.queries, this.state.queries)
|
|
}
|
|
componentWillUnmount() {
|
|
this._migrate(this.state.queries, null)
|
|
}
|
|
render() {
|
|
return this.props.children(this.state.matches)
|
|
}
|
|
static getDerivedStateFromProps(e, t) {
|
|
if (o()(e.rules, t.rules)) return null;
|
|
const {
|
|
rules: n
|
|
} = e;
|
|
return s(n)
|
|
}
|
|
_migrate(e, t) {
|
|
null !== e && i(e, (e, t) => {
|
|
t.removeListener(this._handleMediaChange)
|
|
}), null !== t && i(t, (e, t) => {
|
|
t.addListener(this._handleMediaChange)
|
|
})
|
|
}
|
|
}
|
|
|
|
function s(e) {
|
|
const t = i(e, (e, t) => window.matchMedia(t));
|
|
return {
|
|
queries: t,
|
|
matches: i(t, (e, t) => t.matches),
|
|
rules: {
|
|
...e
|
|
}
|
|
}
|
|
}
|
|
|
|
function i(e, t) {
|
|
const n = {};
|
|
for (const r in e) e.hasOwnProperty(r) && (n[r] = t(r, e[r]));
|
|
return n
|
|
}
|
|
},
|
|
TgrR: function(e, t, n) {
|
|
"use strict";
|
|
|
|
function r(e) {
|
|
if (e.fullName) return e.fullName;
|
|
let t;
|
|
return t = e.prefix || e.exchange ? (e.prefix || e.exchange) + ":" + e.name : e.name, t
|
|
.replace(/<\/?[^>]+(>|$)/g, "")
|
|
}
|
|
|
|
function a(e) {
|
|
return "" === e.value
|
|
}
|
|
|
|
function o() {
|
|
const e = s();
|
|
return e.find(a) || e[0] || null
|
|
}
|
|
|
|
function c() {
|
|
return s()
|
|
}
|
|
|
|
function s() {
|
|
return window.ChartApiInstance.supportedExchangesList().map(e => ({
|
|
...e,
|
|
country: "",
|
|
providerId: "",
|
|
flag: ""
|
|
}))
|
|
}
|
|
|
|
function i() {
|
|
return window.ChartApiInstance.supportedSymbolsTypes()
|
|
}
|
|
|
|
function l() {
|
|
return ""
|
|
}
|
|
|
|
function u() {
|
|
return !1
|
|
}
|
|
n.d(t, "f", (function() {
|
|
return r
|
|
})), n.d(t, "g", (function() {
|
|
return a
|
|
})), n.d(t, "e", (function() {
|
|
return o
|
|
})), n.d(t, "c", (function() {
|
|
return c
|
|
})), n.d(t, "d", (function() {
|
|
return i
|
|
})), n.d(t, "b", (function() {
|
|
return l
|
|
})), n.d(t, "a", (function() {
|
|
return u
|
|
}))
|
|
},
|
|
U0JK: function(e, t) {
|
|
e.exports =
|
|
'<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 28 28" width="28" height="28" fill="none"><path stroke="currentcolor" stroke-width="1.2" d="M17 21l-7.5-7.5L17 6"/></svg>'
|
|
},
|
|
UEVQ: function(e, t, n) {
|
|
e.exports = {
|
|
bubbles: "bubbles-1cEBkyVM",
|
|
multiLine: "multiLine-1cEBkyVM",
|
|
bubble: "bubble-1cEBkyVM"
|
|
}
|
|
},
|
|
UN6M: function(e, t, n) {
|
|
e.exports = {
|
|
childrenWrapper: "childrenWrapper-th__KurO",
|
|
container: "container-th__KurO"
|
|
}
|
|
},
|
|
VogD: function(e, t, n) {
|
|
"use strict";
|
|
n.d(t, "a", (function() {
|
|
return a
|
|
}));
|
|
var r = n("q1tI");
|
|
const a = n.n(r).a.createContext(null)
|
|
},
|
|
XDHQ: function(e, t) {
|
|
e.exports =
|
|
'<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 13 13" width="13" height="13"><path fill="none" stroke="currentColor" stroke-linecap="square" d="M2.5 6.5h8"/></svg>'
|
|
},
|
|
Y8Rb: function(e, t) {
|
|
e.exports =
|
|
'<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 13 13" width="13" height="13"><path fill="none" stroke="currentColor" stroke-linecap="square" d="M2.5 6.5h8m-4-4v8"/></svg>'
|
|
},
|
|
ZrzP: function(e, t) {
|
|
e.exports =
|
|
'<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 13 13" width="13" height="13"><path fill="none" stroke="currentColor" stroke-linecap="square" d="M2.5 6.5h9"/><circle fill="currentColor" cx="7" cy="3" r="1"/><circle fill="currentColor" cx="7" cy="10" r="1"/></svg>'
|
|
},
|
|
anmh: function(e, t) {
|
|
e.exports =
|
|
'<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 13 13" width="13" height="13"><g fill="none" fill-rule="evenodd" stroke="currentColor"><path stroke-linecap="square" stroke-linejoin="round" d="M3.5 10V2.5L1 5"/><path stroke-linecap="square" d="M1.5 10.5h4"/><path d="M8 12l3-11"/></g></svg>'
|
|
},
|
|
bQ7Y: function(e, t, n) {
|
|
e.exports = {
|
|
button: "button-2Vpz_LXc",
|
|
hover: "hover-2Vpz_LXc",
|
|
isInteractive: "isInteractive-2Vpz_LXc",
|
|
isGrouped: "isGrouped-2Vpz_LXc",
|
|
isActive: "isActive-2Vpz_LXc",
|
|
isOpened: "isOpened-2Vpz_LXc",
|
|
isDisabled: "isDisabled-2Vpz_LXc",
|
|
text: "text-2Vpz_LXc",
|
|
icon: "icon-2Vpz_LXc"
|
|
}
|
|
},
|
|
cvzQ: function(e, t, n) {
|
|
e.exports = {
|
|
icon: "icon-19OjtB6A",
|
|
dropped: "dropped-19OjtB6A"
|
|
}
|
|
},
|
|
eIOu: function(e, t, n) {
|
|
e.exports = {
|
|
"tablet-small-breakpoint": "screen and (max-width: 428px)",
|
|
itemRow: "itemRow-ZzQNZGNo",
|
|
multiLine: "multiLine-ZzQNZGNo",
|
|
cell: "cell-ZzQNZGNo",
|
|
itemInfoCell: "itemInfoCell-ZzQNZGNo",
|
|
description: "description-ZzQNZGNo",
|
|
symbolDescription: "symbolDescription-ZzQNZGNo",
|
|
flag: "flag-ZzQNZGNo",
|
|
exchangeDescription: "exchangeDescription-ZzQNZGNo",
|
|
marketType: "marketType-ZzQNZGNo",
|
|
exchangeName: "exchangeName-ZzQNZGNo",
|
|
expandHandleWrap: "expandHandleWrap-ZzQNZGNo",
|
|
expandHandle: "expandHandle-ZzQNZGNo",
|
|
hover: "hover-ZzQNZGNo",
|
|
selected: "selected-ZzQNZGNo",
|
|
active: "active-ZzQNZGNo",
|
|
highlighted: "highlighted-ZzQNZGNo",
|
|
light: "light-ZzQNZGNo",
|
|
"highlight-animation-theme-light": "highlight-animation-theme-light-ZzQNZGNo",
|
|
dark: "dark-ZzQNZGNo",
|
|
"highlight-animation-theme-dark": "highlight-animation-theme-dark-ZzQNZGNo",
|
|
offset: "offset-ZzQNZGNo",
|
|
exchangeCell: "exchangeCell-ZzQNZGNo",
|
|
expanded: "expanded-ZzQNZGNo",
|
|
symbolTitle: "symbolTitle-ZzQNZGNo",
|
|
invalid: "invalid-ZzQNZGNo",
|
|
noDescription: "noDescription-ZzQNZGNo",
|
|
highlightedText: "highlightedText-ZzQNZGNo",
|
|
icon: "icon-ZzQNZGNo",
|
|
dataMode: "dataMode-ZzQNZGNo",
|
|
actionsCell: "actionsCell-ZzQNZGNo",
|
|
action: "action-ZzQNZGNo",
|
|
targetAction: "targetAction-ZzQNZGNo",
|
|
removeAction: "removeAction-ZzQNZGNo",
|
|
addAction: "addAction-ZzQNZGNo"
|
|
}
|
|
},
|
|
gla1: function(e, t, n) {
|
|
"use strict";
|
|
n.d(t, "a", (function() {
|
|
return a
|
|
}));
|
|
var r = n("q1tI");
|
|
const a = () => {
|
|
const [, e] = Object(r.useReducer)((e, t) => e + 1, 0);
|
|
return e
|
|
}
|
|
},
|
|
"h9B/": function(e, t, n) {
|
|
e.exports = {
|
|
wrap: "wrap-2WiKHt6t",
|
|
watchlist: "watchlist-2WiKHt6t",
|
|
noFeed: "noFeed-2WiKHt6t",
|
|
scrollContainer: "scrollContainer-2WiKHt6t",
|
|
listContainer: "listContainer-2WiKHt6t",
|
|
multiLineItemsContainer: "multiLineItemsContainer-2WiKHt6t"
|
|
}
|
|
},
|
|
hYF9: function(e, t, n) {
|
|
e.exports = {
|
|
button: "button-P2GOgq9R",
|
|
desktop: "desktop-P2GOgq9R"
|
|
}
|
|
},
|
|
jPOK: function(e, t, n) {
|
|
"use strict";
|
|
n.d(t, "a", (function() {
|
|
return c
|
|
}));
|
|
var r = n("q1tI"),
|
|
a = n("TSYQ"),
|
|
o = n("Owlf");
|
|
n("SzKR");
|
|
|
|
function c(e) {
|
|
const t = a("tv-spinner", "tv-spinner--shown", "tv-spinner--size_" + (e.size || o.a));
|
|
return r.createElement("div", {
|
|
className: t,
|
|
style: e.style,
|
|
role: "progressbar"
|
|
}, r.createElement("div", {
|
|
className: "tv-spinner__spinner-layer"
|
|
}, r.createElement("div", {
|
|
className: "tv-spinner__background tv-spinner__width_element"
|
|
}), r.createElement("div", {
|
|
className: "tv-spinner__circle-clipper tv-spinner__width_element tv-spinner__circle-clipper--left"
|
|
}), r.createElement("div", {
|
|
className: "tv-spinner__circle-clipper tv-spinner__width_element tv-spinner__circle-clipper--right"
|
|
})))
|
|
}
|
|
},
|
|
ki38: function(e, t, n) {
|
|
"use strict";
|
|
n.d(t, "a", (function() {
|
|
return a
|
|
}));
|
|
var r = n("q1tI");
|
|
const a = n.n(r).a.createContext(null)
|
|
},
|
|
mHCH: function(e, t, n) {
|
|
e.exports = {
|
|
bubble: "bubble-3MTPKAgt",
|
|
animated: "animated-3MTPKAgt",
|
|
content: "content-3MTPKAgt",
|
|
"appearance-default": "appearance-default-3MTPKAgt",
|
|
active: "active-3MTPKAgt",
|
|
red: "red-3MTPKAgt",
|
|
blue: "blue-3MTPKAgt",
|
|
green: "green-3MTPKAgt",
|
|
orange: "orange-3MTPKAgt",
|
|
purple: "purple-3MTPKAgt",
|
|
cyan: "cyan-3MTPKAgt",
|
|
pink: "pink-3MTPKAgt",
|
|
"appearance-text": "appearance-text-3MTPKAgt",
|
|
"size-m": "size-m-3MTPKAgt",
|
|
"size-l": "size-l-3MTPKAgt"
|
|
}
|
|
},
|
|
mdyz: function(e, t, n) {
|
|
e.exports = {
|
|
search: "search-Hsmn_0WX",
|
|
upperCase: "upperCase-Hsmn_0WX",
|
|
symbolType: "symbolType-Hsmn_0WX",
|
|
spinnerWrap: "spinnerWrap-Hsmn_0WX",
|
|
emptyText: "emptyText-Hsmn_0WX",
|
|
noResultsDesktop: "noResultsDesktop-Hsmn_0WX",
|
|
brokerCheckboxWrap: "brokerCheckboxWrap-Hsmn_0WX"
|
|
}
|
|
},
|
|
ozXl: function(e, t, n) {
|
|
e.exports = {
|
|
dialog: "dialog-1LLxyYSM",
|
|
tabletDialog: "tabletDialog-1LLxyYSM",
|
|
desktopDialog: "desktopDialog-1LLxyYSM"
|
|
}
|
|
},
|
|
p04v: function(e, t, n) {
|
|
"use strict";
|
|
n.d(t, "a", (function() {
|
|
return u
|
|
}));
|
|
var r = n("q1tI"),
|
|
a = n.n(r),
|
|
o = n("i8i4"),
|
|
c = n("+EG+"),
|
|
s = n("CJov"),
|
|
i = n("Gtzb"),
|
|
l = n("uTDg");
|
|
|
|
function u(e) {
|
|
const {
|
|
initialMode: t = "symbolSearch",
|
|
autofocus: n = !0,
|
|
defaultValue: r,
|
|
showSpreadActions: u,
|
|
selectSearchOnInit: d,
|
|
onSearchComplete: p,
|
|
onSearchFeedReady: m,
|
|
dialogTitle: f,
|
|
placeholder: h,
|
|
fullscreen: b,
|
|
initialScreen: v,
|
|
wrapper: g,
|
|
dialog: y,
|
|
contentItem: E,
|
|
onClose: x,
|
|
footer: O,
|
|
symbolTypes: k,
|
|
searchInput: N,
|
|
emptyState: w,
|
|
dialogWidth: S = "auto",
|
|
manager: C
|
|
} = e;
|
|
if (i.b.isOpened("SymbolSearch") || i.b.isOpened("ChangeIntervalDialog")) return;
|
|
const T = document.createElement("div"),
|
|
j = a.a.createElement(c.b.Provider, {
|
|
value: null != C ? C : null
|
|
}, a.a.createElement(s.a.Provider, {
|
|
value: null
|
|
}, a.a.createElement(l.a, {
|
|
onClose: I,
|
|
initialMode: t,
|
|
defaultValue: r,
|
|
showSpreadActions: u,
|
|
onSearchFeedReady: m,
|
|
selectSearchOnInit: d,
|
|
onSearchComplete: p,
|
|
dialogTitle: f,
|
|
placeholder: h,
|
|
fullscreen: b,
|
|
initialScreen: v,
|
|
wrapper: g,
|
|
dialog: y,
|
|
contentItem: E,
|
|
footer: O,
|
|
symbolTypes: k,
|
|
searchInput: N,
|
|
emptyState: w,
|
|
autofocus: n,
|
|
dialogWidth: S
|
|
})));
|
|
|
|
function I() {
|
|
o.unmountComponentAtNode(T), i.b.setAsClosed("SymbolSearch"), x && x()
|
|
}
|
|
return o.render(j, T), i.b.setAsOpened("SymbolSearch"), {
|
|
close: I
|
|
}
|
|
}
|
|
},
|
|
poJS: function(e, t) {
|
|
e.exports =
|
|
'<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 120 121" width="120" height="121" fill="none"><g clip-path="url(#afzoeckcd)"><path fill="#2A2E39" fill-rule="evenodd" clip-rule="evenodd" d="M26.01 81.72c10.54 13.42 34.92 11.87 54.46-3.47 19.55-15.34 26.85-38.66 16.31-52.08-10.54-13.42-34.92-11.87-54.46 3.47-9.2 7.22-15.68 16.2-18.87 25.09-.68 1.89-2.57 3.06-4.53 3.48a9.7 9.7 0 0 0-3.96 1.86C10.5 63.57 9.91 70.26 13.64 75a11.24 11.24 0 0 0 7.82 4.31 6.2 6.2 0 0 1 4.55 2.4z"/><path fill="#1848CC" fill-rule="evenodd" clip-rule="evenodd" d="M38.3 46.18c1.8 3.43 12.08 10.65 25.62 16.89 6.36 2.93 12.38 5.3 17.37 6.92a172.71 172.71 0 0 0-18-12.68C48.7 48.2 38.32 44.9 38.32 44.9c-.18.3-.19.72-.01 1.27z"/><path stroke="#B2B5BE" stroke-width="1.5" d="M96.25 82.01c-.19.3-.54.55-1.17.7a7.8 7.8 0 0 1-2.56.08c-2.14-.22-5-1-8.4-2.28-6.78-2.57-15.53-7.12-24.64-13.05-9.12-5.94-16.82-12.1-21.92-17.26-2.55-2.58-4.41-4.89-5.48-6.76a7.8 7.8 0 0 1-.96-2.37c-.12-.64-.03-1.06.16-1.35.2-.29.54-.54 1.17-.7a7.79 7.79 0 0 1 2.56-.08c2.14.22 5 1 8.4 2.28 6.78 2.57 15.53 7.13 24.64 13.06 9.12 5.93 16.82 12.1 21.92 17.25 2.55 2.59 4.42 4.89 5.48 6.76.54.94.85 1.73.96 2.37.12.64.03 1.06-.16 1.35z"/><path stroke="#B2B5BE" stroke-linecap="round" stroke-width="1.5" d="M38.96 45.25c1.99.57 4.47 1.55 7.3 2.86l12.2 6.52c2.16 1.3 4.4 2.68 6.66 4.16 10.56 6.87 19.12 13.85 22.97 18.44"/><path stroke="#B2B5BE" stroke-width="1.5" d="M93.79 76.21c6.77-14.14 1.41-32-13.05-41.42-14.46-9.41-32.96-7.09-43.15 4.83M84.96 31.87a6.08 6.08 0 0 1-2.58 2.29c-.9.39-1.69.35-2.23 0s-.9-1.05-.9-2.04a6.08 6.08 0 0 1 1.05-3.28 6.08 6.08 0 0 1 2.58-2.3c.9-.39 1.69-.35 2.23 0 .54.36.9 1.05.9 2.04.01.99-.32 2.17-1.05 3.29z"/><path stroke="#B2B5BE" stroke-linecap="round" stroke-width="1.5" d="M52.7 34.25c1.25-.31 4.56-1.32 8.92-1.3M90.14 94.7c-3.64-.05-15.75-.08-30.14-.08s-26.5.03-30.14.08M34.7 69.95l5.77 5.33M42.05 66.68l.84 3.27"/></g><defs><clipPath id="afzoeckcd"><path fill="#fff" d="M10 10.62h100v100H10v-100z"/></clipPath></defs></svg>'
|
|
},
|
|
qC62: function(e, t, n) {
|
|
"use strict";
|
|
n.d(t, "b", (function() {
|
|
return c
|
|
})), n.d(t, "a", (function() {
|
|
return r
|
|
}));
|
|
var r, a = n("Eyy1"),
|
|
o = n("Kxc7");
|
|
n("TgrR");
|
|
|
|
function c(e) {
|
|
return e
|
|
}! function(e) {
|
|
function t(e) {
|
|
return e.pro_name
|
|
}
|
|
|
|
function n(e) {
|
|
{
|
|
const t = o.enabled("pay_attention_to_ticker_not_symbol") ? e.ticker : e.full_name;
|
|
return Object(a.ensureDefined)(t)
|
|
}
|
|
}
|
|
e.fromQuotesResponse = function(e) {
|
|
const {
|
|
values: n,
|
|
symbolname: r,
|
|
status: a
|
|
} = e;
|
|
return "error" === a && r ? r : t(n)
|
|
}, e.fromQuotes = t, e.fromSymbolSearchResult = function(e, t) {
|
|
{
|
|
const {
|
|
ticker: n,
|
|
full_name: r
|
|
} = null != t ? t : e;
|
|
return o.enabled("pay_attention_to_ticker_not_symbol") ? Object(a.ensureDefined)
|
|
(null != n ? n : r) : Object(a.ensureDefined)(r)
|
|
}
|
|
}, e.fromSymbolInfo = n, e.fromSymbolMessage = function(e, t) {
|
|
return "symbol_resolved" === t.method ? n(t.params[1]) : e
|
|
}
|
|
}(r || (r = {}))
|
|
},
|
|
"rC+j": function(e, t, n) {
|
|
"use strict";
|
|
n.d(t, "h", (function() {
|
|
return c
|
|
})), n.d(t, "a", (function() {
|
|
return s
|
|
})), n.d(t, "g", (function() {
|
|
return i
|
|
})), n.d(t, "e", (function() {
|
|
return u
|
|
})), n.d(t, "f", (function() {
|
|
return p
|
|
})), n.d(t, "c", (function() {
|
|
return m
|
|
})), n.d(t, "d", (function() {
|
|
return h
|
|
})), n.d(t, "b", (function() {
|
|
return b
|
|
}));
|
|
var r = n("Kxc7"),
|
|
a = n("952j"),
|
|
o = n("TgrR");
|
|
|
|
function c(e) {
|
|
const t = {
|
|
braceBalance: 0,
|
|
currentState: "var",
|
|
warnings: [],
|
|
errors: []
|
|
};
|
|
if (r.enabled("charting_library_base") && !r.enabled("show_spread_operators")) return t;
|
|
let n = "init";
|
|
const a = [];
|
|
for (let r = 0; r < e.length; r++) {
|
|
const o = e[r];
|
|
if ("whitespace" !== o.type) {
|
|
if ("incompleteSymbol" === o.type || "incompleteNumber" === o.type) {
|
|
const n = r !== e.length - 1,
|
|
a = {
|
|
status: n ? "error" : "incomplete",
|
|
reason: "incomplete_token",
|
|
offset: o.offset,
|
|
token: o
|
|
};
|
|
if (n ? t.errors.push(a) : t.warnings.push(a), n) continue
|
|
}
|
|
switch (o.type) {
|
|
case "symbol":
|
|
case "number":
|
|
if ("var" === n) {
|
|
t.errors.push({
|
|
status: "error",
|
|
reason: "unexpected_token",
|
|
offset: o.offset,
|
|
token: o
|
|
});
|
|
continue
|
|
}
|
|
n = "var";
|
|
break;
|
|
case "plus":
|
|
case "minus":
|
|
case "multiply":
|
|
case "divide":
|
|
case "power":
|
|
if ("var" !== n) {
|
|
t.errors.push({
|
|
status: "error",
|
|
reason: "unexpected_token",
|
|
offset: o.offset,
|
|
token: o
|
|
});
|
|
continue
|
|
}
|
|
n = "operator";
|
|
break;
|
|
case "openBrace":
|
|
if ("var" === n) {
|
|
t.errors.push({
|
|
status: "error",
|
|
reason: "unexpected_token",
|
|
offset: o.offset,
|
|
token: o
|
|
});
|
|
continue
|
|
}
|
|
a.push(o), n = "init";
|
|
break;
|
|
case "closeBrace":
|
|
if ("var" !== n) {
|
|
t.errors.push({
|
|
status: "error",
|
|
reason: "unexpected_token",
|
|
offset: o.offset,
|
|
token: o
|
|
});
|
|
continue
|
|
}
|
|
a.pop() || t.errors.push({
|
|
status: "error",
|
|
reason: "unbalanced_brace",
|
|
offset: o.offset,
|
|
token: o
|
|
}), n = "var";
|
|
break;
|
|
case "unparsed":
|
|
t.errors.push({
|
|
status: "error",
|
|
reason: "unparsed_entity",
|
|
offset: o.offset,
|
|
token: o
|
|
})
|
|
}
|
|
}
|
|
}
|
|
for (t.braceBalance = a.length, "var" !== n && t.warnings.push({
|
|
status: "incomplete",
|
|
token: e[e.length - 1]
|
|
}); a.length;) {
|
|
const e = a.pop();
|
|
e && t.warnings.push({
|
|
status: "incomplete",
|
|
reason: "unbalanced_brace",
|
|
offset: e.offset,
|
|
token: e
|
|
})
|
|
}
|
|
return t.currentState = n, t
|
|
}
|
|
|
|
function s(e) {
|
|
const t = function(e) {
|
|
let t, n = 0,
|
|
r = 0;
|
|
for (let a = 0; a < e.length; a++) {
|
|
const o = e[a];
|
|
if ("whitespace" !== o.type) switch (n) {
|
|
case 0:
|
|
if ("number" !== o.type || 1 != +o.value) return [];
|
|
n = 1;
|
|
break;
|
|
case 1:
|
|
if (1 !== n || "divide" !== o.type) return [];
|
|
n = 2, t = a + 1;
|
|
break;
|
|
case 2:
|
|
if ("openBrace" === o.type) n = 3, r = 1;
|
|
else if (l(o.type)) return [];
|
|
break;
|
|
case 3:
|
|
"openBrace" === o.type ? r++ : "closeBrace" === o.type && (r--, r <=
|
|
0 && (n = 2))
|
|
}
|
|
}
|
|
return e.slice(t)
|
|
}(e);
|
|
return t.length ? d(t) : d(Object(a.b)("1/(" + i(e) + ")"))
|
|
}
|
|
|
|
function i(e) {
|
|
return e.reduce((e, t) => "symbol" === t.type && a.a.test(t.value) ? e + `'${t.value}'` :
|
|
e + t.value, "")
|
|
}
|
|
|
|
function l(e) {
|
|
return "plus" === e || "minus" === e || "multiply" === e || "divide" === e || "power" === e
|
|
}
|
|
|
|
function u(e) {
|
|
return e.length > 1 && e.some(e => l(e.type))
|
|
}
|
|
|
|
function d(e) {
|
|
e = function(e) {
|
|
const t = [];
|
|
for (const n of e) "whitespace" !== n.type && t.push(n);
|
|
return t
|
|
}(e);
|
|
const t = [],
|
|
n = [];
|
|
let r;
|
|
for (let a = 0; a < e.length; a++) {
|
|
const o = e[a];
|
|
switch (o.type) {
|
|
case "plus":
|
|
case "minus":
|
|
case "multiply":
|
|
case "divide":
|
|
case "power":
|
|
n.length && n[n.length - 1].minPrecedence > o.precedence && (n[n.length - 1]
|
|
.minPrecedence = o.precedence);
|
|
break;
|
|
case "openBrace":
|
|
r = {
|
|
minPrecedence: 1 / 0,
|
|
openBraceIndex: a
|
|
}, n.push(r);
|
|
break;
|
|
case "closeBrace": {
|
|
if (r = n.pop(), !r) break;
|
|
const o = e[r.openBraceIndex - 1],
|
|
c = e[a + 1],
|
|
s = o && ("plus" === o.type || "multiply" === o.type);
|
|
(!l(null == c ? void 0 : c.type) || (null == c ? void 0 : c.precedence) <= r
|
|
.minPrecedence) && (!l(null == o ? void 0 : o.type) || (null == o ? void 0 :
|
|
o.precedence) < (null == r ? void 0 : r.minPrecedence) || (null == o ?
|
|
void 0 : o.precedence) === (null == r ? void 0 : r.minPrecedence) && s) && (
|
|
t.unshift(r.openBraceIndex), t.push(a), n.length && n[n.length - 1]
|
|
.minPrecedence > r.minPrecedence && (n[n.length - 1].minPrecedence = r
|
|
.minPrecedence))
|
|
}
|
|
}
|
|
}
|
|
for (let n = t.length; n--;) e.splice(t[n], 1);
|
|
return e
|
|
}
|
|
|
|
function p(e) {
|
|
return d(Object(a.b)(e)).reduce((e, t) => {
|
|
if ("symbol" !== t.type) return e + t.value;
|
|
const [, n] = f(t);
|
|
return n ? e + n : e
|
|
}, "")
|
|
}
|
|
|
|
function m(e) {
|
|
const t = function(e) {
|
|
const t = Object(a.b)(e),
|
|
n = [];
|
|
return t.forEach(e => {
|
|
if ("symbol" !== e.type) return;
|
|
const [t] = f(e);
|
|
t && n.push(t)
|
|
}), n
|
|
}(e);
|
|
if (1 === t.length) return t[0]
|
|
}
|
|
|
|
function f(e) {
|
|
const t = /^'?(?:([A-Z0-9_]+):)?(.*?)'?$/i.exec(e.value);
|
|
return null === t ? [void 0, void 0] : [t[1], t[2]]
|
|
}
|
|
|
|
function h(e, t, n) {
|
|
const r = e.value,
|
|
[c, s] = b(e, n),
|
|
i = Object(o.f)(t),
|
|
l = a.a.test(i) ? `'${i}'` : i;
|
|
return [r.substr(0, s) + l + r.substr(s + c.length), s + l.length]
|
|
}
|
|
|
|
function b(e, t) {
|
|
const {
|
|
value: n,
|
|
selectionStart: r
|
|
} = e, o = Object(a.b)(t ? n.toUpperCase() : n), c = function(e, t) {
|
|
for (let n = 0; n < e.length; n++) {
|
|
const r = e[n],
|
|
a = "symbol" === r.type || "incompleteSymbol" === r.type || "number" === r
|
|
.type;
|
|
if (r.offset <= t && t <= r.offset + r.value.length && a) return r
|
|
}
|
|
return null
|
|
}(o, r || 0);
|
|
return [(null == c ? void 0 : c.value) || "", c ? c.offset : n.length, o]
|
|
}
|
|
},
|
|
rzV7: function(e, t, n) {
|
|
"use strict";
|
|
var r = Object.prototype.hasOwnProperty;
|
|
|
|
function a(e, t) {
|
|
return e === t ? 0 !== e || 0 !== t || 1 / e == 1 / t : e != e && t != t
|
|
}
|
|
e.exports = function(e, t) {
|
|
if (a(e, t)) return !0;
|
|
if ("object" != typeof e || null === e || "object" != typeof t || null === t) return !1;
|
|
var n = Object.keys(e),
|
|
o = Object.keys(t);
|
|
if (n.length !== o.length) return !1;
|
|
for (var c = 0; c < n.length; c++)
|
|
if (!r.call(t, n[c]) || !a(e[n[c]], t[n[c]])) return !1;
|
|
return !0
|
|
}
|
|
},
|
|
tU7i: function(e, t, n) {
|
|
"use strict";
|
|
n.d(t, "a", (function() {
|
|
return s
|
|
})), n.d(t, "b", (function() {
|
|
return i
|
|
}));
|
|
var r = n("q1tI"),
|
|
a = n("TSYQ"),
|
|
o = n("Iivm"),
|
|
c = n("bQ7Y");
|
|
const s = c,
|
|
i = r.forwardRef((e, t) => {
|
|
const {
|
|
icon: n,
|
|
isActive: s,
|
|
isOpened: i,
|
|
isDisabled: l,
|
|
isGrouped: u,
|
|
isHovered: d,
|
|
onClick: p,
|
|
text: m,
|
|
textBeforeIcon: f,
|
|
title: h,
|
|
theme: b = c,
|
|
className: v,
|
|
forceInteractive: g,
|
|
"data-name": y,
|
|
...E
|
|
} = e, x = a(v, b.button, h && "apply-common-tooltip", {
|
|
[b.isActive]: s,
|
|
[b.isOpened]: i,
|
|
[b.isInteractive]: (g || Boolean(p)) && !l,
|
|
[b.isDisabled]: l,
|
|
[b.isGrouped]: u,
|
|
[b.hover]: d
|
|
}), O = n && ("string" == typeof n ? r.createElement(o.a, {
|
|
className: b.icon,
|
|
icon: n
|
|
}) : r.cloneElement(n, {
|
|
className: a(b.icon, n.props.className)
|
|
}));
|
|
return r.createElement("div", {
|
|
...E,
|
|
ref: t,
|
|
"data-role": "button",
|
|
className: x,
|
|
onClick: l ? void 0 : p,
|
|
title: h,
|
|
"data-name": y
|
|
}, f && m && r.createElement("div", {
|
|
className: a("js-button-text", b.text)
|
|
}, m), O, !f && m && r.createElement("div", {
|
|
className: a("js-button-text", b.text)
|
|
}, m))
|
|
})
|
|
},
|
|
uTDg: function(e, t, n) {
|
|
"use strict";
|
|
var r = n("q1tI"),
|
|
a = n.n(r),
|
|
o = n("TSYQ"),
|
|
c = n.n(o),
|
|
s = n("YFKU"),
|
|
i = (n("+GxX"), n("952j")),
|
|
l = n("rC+j"),
|
|
u = n("SAe1"),
|
|
d = n("Kxc7"),
|
|
p = n("uhCe"),
|
|
m = n("g89m"),
|
|
f = n("Eyy1"),
|
|
h = n("Iivm"),
|
|
b = n("VogD"),
|
|
v = n("QHWU"),
|
|
g = n("TgrR"),
|
|
y = n("UN6M");
|
|
|
|
function E(e) {
|
|
const {
|
|
children: t,
|
|
className: n
|
|
} = e;
|
|
return a.a.createElement("div", {
|
|
className: c()(y.container, n)
|
|
}, a.a.createElement("div", {
|
|
className: y.childrenWrapper
|
|
}, t))
|
|
}
|
|
var x = n("1LIl"),
|
|
O = n("H9Gg"),
|
|
k = n("wy57"),
|
|
N = n("GWR5");
|
|
|
|
function w(e) {
|
|
const {
|
|
country: t,
|
|
providerId: n,
|
|
flag: o,
|
|
title: s,
|
|
description: i,
|
|
isActive: l,
|
|
isAllExchanges: u,
|
|
isMobile: d,
|
|
onClick: p,
|
|
queryString: m
|
|
} = e, f = Object(r.useMemo)(() => Object(O.a)(m), [m]), b = i && !u, v = c()(N.container,
|
|
d ? N.mobile : N.desktop, l && N.selected, u && N.allExchange, u && N
|
|
.libAllExchange, !u && d && N.bordered);
|
|
return a.a.createElement("div", {
|
|
className: c()(!d && N.wrap, u && N.libAllExchange),
|
|
onClick: p
|
|
}, a.a.createElement("div", {
|
|
className: v
|
|
}, a.a.createElement("div", {
|
|
className: N.iconWrap
|
|
}, !!u && a.a.createElement(h.a, {
|
|
className: c()(N.icon, N.allExchangesIcon),
|
|
icon: k
|
|
})), a.a.createElement("div", {
|
|
className: N.textBlock
|
|
}, a.a.createElement("div", {
|
|
className: c()(N.title, !b && !d && N.titleWithoutDesc)
|
|
}, a.a.createElement(x.a, {
|
|
className: c()(l && N.highlighted),
|
|
queryString: m,
|
|
text: s,
|
|
rules: f
|
|
})), b && a.a.createElement("div", {
|
|
className: N.description
|
|
}, a.a.createElement(x.a, {
|
|
className: N.highlighted,
|
|
queryString: m,
|
|
rules: f,
|
|
text: i
|
|
})))))
|
|
}
|
|
var S = n("vqb8"),
|
|
C = n("OoQL"),
|
|
T = n("oiZD"),
|
|
j = n("zM7N"),
|
|
I = n("ki38"),
|
|
R = n("poJS"),
|
|
M = n("6rj1"),
|
|
_ = n("Iruf");
|
|
const L = {
|
|
emptyTextClassName: _.emptyText
|
|
};
|
|
|
|
function D(e) {
|
|
const {
|
|
exchanges: t
|
|
} = e, {
|
|
selectedExchange: n,
|
|
setSelectedExchange: o,
|
|
setMode: i,
|
|
isMobile: l,
|
|
emptyState: u,
|
|
autofocus: d
|
|
} = Object(C.a)(b.a), p = Object(S.a)({
|
|
watchedValue: T.watchedTheme
|
|
}) === j.a.Dark ? R : M, [m, y] = Object(r.useState)(""), x = Object(r.useCallback)(e =>
|
|
e.name.toLowerCase().includes(m.toLowerCase()) || e.desc.toLowerCase().includes(m
|
|
.toLowerCase()), [m]), O = Object(r.useMemo)(() => [
|
|
[...t]
|
|
], [t]), k = Object(r.useMemo)(() => {
|
|
const e = O.filter(e => e.some(x));
|
|
return e
|
|
}, [O, x]), N = Object(f.ensureNotNull)(n).value, D = Object(r.useRef)(null), A =
|
|
Object(r.useRef)(null);
|
|
Object(r.useLayoutEffect)(() => {
|
|
var e;
|
|
d && (null === (e = null == D ? void 0 : D.current) || void 0 === e || e
|
|
.focus())
|
|
}, []);
|
|
const z = u ? a.a.createElement(u, null) : a.a.createElement(E, {
|
|
className: _.noResultsDesktop
|
|
}, a.a.createElement(h.a, {
|
|
icon: p
|
|
}), a.a.createElement("div", {
|
|
className: _.emptyText
|
|
}, Object(s.t)("No exchanges match your criteria")));
|
|
return a.a.createElement(I.a.Provider, {
|
|
value: L
|
|
}, a.a.createElement(v.a, {
|
|
placeholder: Object(s.t)("Search"),
|
|
onChange: function(e) {
|
|
y(e.target.value), A && A.current && (A.current.scrollTop = 0)
|
|
},
|
|
reference: D
|
|
}), k.length ? a.a.createElement("div", {
|
|
ref: A,
|
|
className: c()(_.contentList, !l && _.contentListDesktop),
|
|
onTouchStart: function() {
|
|
var e;
|
|
null === (e = D.current) || void 0 === e || e.blur()
|
|
}
|
|
}, k.map(e => {
|
|
const {
|
|
name: t,
|
|
group: n
|
|
} = e[0];
|
|
return a.a.createElement(a.a.Fragment, {
|
|
key: t
|
|
}, !1, a.a.createElement("div", {
|
|
className: c()(_.exchangeItemsContainer, !l && _
|
|
.exchangeItemsContainerDesktop)
|
|
}, e.filter(x).map(e => {
|
|
const t = Object(g.g)(e);
|
|
return a.a.createElement(w, {
|
|
key: e.desc,
|
|
country: e.country,
|
|
flag: e.flag,
|
|
providerId: e.providerId,
|
|
title: t ? Object(s.t)("All sources") :
|
|
e.name,
|
|
description: e.desc,
|
|
isActive: e.value === N,
|
|
isAllExchanges: t,
|
|
isMobile: l,
|
|
queryString: m,
|
|
onClick: P.bind(null, e)
|
|
})
|
|
})))
|
|
})) : z);
|
|
|
|
function P(e) {
|
|
o(e), i("symbolSearch")
|
|
}
|
|
}
|
|
var A, z, P, B, Z, V, F, G, W, X, K, Q = n("i8i4"),
|
|
q = n("FadI");
|
|
n("Wt0y"), n("wVAQ"), n("ivNn"), n("nc0P");
|
|
! function(e) {
|
|
e[e.CONNECTED = 1] = "CONNECTED", e[e.CONNECTING = 2] = "CONNECTING", e[e.DISCONNECTED =
|
|
3] = "DISCONNECTED", e[e.ERROR = 4] = "ERROR"
|
|
}(A || (A = {})),
|
|
function(e) {
|
|
e[e.LIMIT = 1] = "LIMIT", e[e.MARKET = 2] = "MARKET", e[e.STOP = 3] = "STOP", e[e
|
|
.STOPLIMIT = 4] = "STOPLIMIT"
|
|
}(z || (z = {})),
|
|
function(e) {
|
|
e[e.BUY = 1] = "BUY", e[e.SELL = -1] = "SELL"
|
|
}(P || (P = {})),
|
|
function(e) {
|
|
e[e.CANCELED = 1] = "CANCELED", e[e.FILLED = 2] = "FILLED", e[e.INACTIVE = 3] = "INACTIVE",
|
|
e[e.PLACING = 4] = "PLACING", e[e.REJECTED = 5] = "REJECTED", e[e.WORKING = 6] =
|
|
"WORKING"
|
|
}(B || (B = {})),
|
|
function(e) {
|
|
e[e.ALL = 0] = "ALL", e[e.CANCELED = 1] = "CANCELED", e[e.FILLED = 2] = "FILLED", e[e
|
|
.INACTIVE = 3] = "INACTIVE", e[e.REJECTED = 5] = "REJECTED", e[e.WORKING = 6] =
|
|
"WORKING"
|
|
}(Z || (Z = {})),
|
|
function(e) {
|
|
e[e.ORDER = 1] = "ORDER", e[e.POSITION = 2] = "POSITION"
|
|
}(V || (V = {})),
|
|
function(e) {
|
|
e[e.LIMITPRICE = 1] = "LIMITPRICE", e[e.STOPPRICE = 2] = "STOPPRICE", e[e.TAKEPROFIT = 3] =
|
|
"TAKEPROFIT", e[e.STOPLOSS = 4] = "STOPLOSS"
|
|
}(F || (F = {})),
|
|
function(e) {
|
|
e[e.ERROR = 0] = "ERROR", e[e.SUCCESS = 1] = "SUCCESS"
|
|
}(G || (G = {})),
|
|
function(e) {
|
|
e.Information = "information", e.Warning = "warning", e.Error = "error"
|
|
}(W || (W = {})),
|
|
function(e) {
|
|
e.Demo = "demo", e.Live = "live"
|
|
}(X || (X = {})),
|
|
function(e) {
|
|
e[e.LogOut = 0] = "LogOut", e[e.FailedRestoring = 1] = "FailedRestoring", e[e.Offline = 2] =
|
|
"Offline", e[e.APIError = 3] = "APIError", e[e.TwoFactorRequired = 4] =
|
|
"TwoFactorRequired"
|
|
}(K || (K = {}));
|
|
n("EBrf"), n("ogJP");
|
|
var H = n("txPx");
|
|
n("25b6");
|
|
Error;
|
|
Object(H.getLogger)("Trading.Utils");
|
|
Object(s.t)("Failed to login");
|
|
|
|
function U(e) {
|
|
return e.hasOwnProperty("exchange")
|
|
}
|
|
async function Y(e) {
|
|
return new Promise(t => {
|
|
window.ChartApiInstance.searchSymbols(e.text || "", e.exchange || "", e
|
|
.type || "", "", !1, !0, "", !0, "", e => {
|
|
t(e)
|
|
})
|
|
})
|
|
}
|
|
var $ = n("K5cv"),
|
|
J = n("JWMC"),
|
|
ee = n("/3z9"),
|
|
te = n("tU7i"),
|
|
ne = n("ZrzP"),
|
|
re = n("XDHQ"),
|
|
ae = n("Y8Rb"),
|
|
oe = n("8q1k"),
|
|
ce = n("OWoh"),
|
|
se = n("anmh"),
|
|
ie = n("Pdm7");
|
|
|
|
function le(e) {
|
|
var t;
|
|
const {
|
|
state: n,
|
|
update: o
|
|
} = e, {
|
|
searchRef: c,
|
|
forceUpdate: s,
|
|
upperCaseEnabled: u
|
|
} = Object(f.ensureNotNull)(Object(r.useContext)(b.a)), p = Object(i.b)(null === (t = c
|
|
.current) || void 0 === t ? void 0 : t.value), m = Object(l.h)(p);
|
|
let h = [{
|
|
icon: ne,
|
|
insert: "/",
|
|
type: "binaryOp",
|
|
name: "division"
|
|
}, {
|
|
icon: re,
|
|
insert: "-",
|
|
type: "binaryOp",
|
|
name: "subtraction"
|
|
}, {
|
|
icon: ae,
|
|
insert: "+",
|
|
type: "binaryOp",
|
|
name: "addition"
|
|
}, {
|
|
icon: oe,
|
|
insert: "*",
|
|
type: "binaryOp",
|
|
name: "multiplication"
|
|
}];
|
|
return d.enabled("hide_exponentiation_spread_operator") || (h = h.concat([{
|
|
icon: ce,
|
|
insert: "^",
|
|
type: "binaryOp",
|
|
name: "exponentiation"
|
|
}])),
|
|
d.enabled("hide_reciprocal_spread_operator") || (h = h.concat([{
|
|
icon: se,
|
|
type: "complete",
|
|
name: "1/x",
|
|
callback: () => {
|
|
!c.current || m.errors.length || m.warnings.length || (c.current
|
|
.value = Object(l.g)(Object(l.a)(p)), s())
|
|
}
|
|
}])), a.a.createElement("div", {
|
|
className: ie.actions
|
|
}, h.map(e => a.a.createElement(te.b, {
|
|
className: ie.actionButton,
|
|
icon: e.icon,
|
|
key: e.name,
|
|
isDisabled: ue(e, m),
|
|
onClick: () => function(e) {
|
|
var t;
|
|
if (!ue(e, m)) {
|
|
if (e.insert && c.current) {
|
|
const t = c.current.value + e.insert;
|
|
c.current.value = t, c.current.setSelectionRange(t
|
|
.length, t.length);
|
|
const [r, , a] = Object(l.b)(c.current, u);
|
|
n.current && (n.current.selectedIndexValue = -1, n
|
|
.current.searchSpreadsValue = Object(l.e)(a), n
|
|
.current.searchTokenValue = r), s(), o()
|
|
}
|
|
e.callback && e.callback(), null === (t = c.current) ||
|
|
void 0 === t || t.focus(), Object(J.trackEvent)("GUI",
|
|
"SS", e.name)
|
|
}
|
|
}(e)
|
|
})))
|
|
}
|
|
|
|
function ue(e, t) {
|
|
let n = !1;
|
|
if (!t.errors.length) switch (e.type) {
|
|
case "binaryOp":
|
|
n = "var" === t.currentState;
|
|
break;
|
|
case "openBrace":
|
|
n = "var" !== t.currentState;
|
|
break;
|
|
case "closeBrace":
|
|
n = "var" === t.currentState && t.braceBalance > 0;
|
|
break;
|
|
case "complete":
|
|
n = !t.errors.length && !t.warnings.length
|
|
}
|
|
return !n
|
|
}
|
|
var de = n("ijHL"),
|
|
pe = n("mHCH");
|
|
|
|
function me(e) {
|
|
const {
|
|
isActive: t,
|
|
isAnimated: n,
|
|
activeColor: r,
|
|
size: a = "m",
|
|
appearance: o = "default",
|
|
className: s
|
|
} = e;
|
|
return c()(pe.bubble, t && pe.active, r && pe[r], a && pe["size-" + a], o && pe[
|
|
"appearance-" + o], n && pe.animated, s)
|
|
}
|
|
|
|
function fe(e) {
|
|
const {
|
|
id: t,
|
|
title: n,
|
|
tabIndex: r,
|
|
role: o,
|
|
contentClassName: s,
|
|
children: i,
|
|
onClick: l,
|
|
onMouseDown: u,
|
|
...d
|
|
} = e;
|
|
return a.a.createElement("span", {
|
|
...Object(de.a)(d),
|
|
...Object(de.b)(d),
|
|
id: t,
|
|
title: n,
|
|
tabIndex: r,
|
|
role: o,
|
|
className: me(e),
|
|
onClick: l,
|
|
onMouseDown: u
|
|
}, a.a.createElement("span", {
|
|
className: c()(pe.content, s)
|
|
}, i))
|
|
}
|
|
var he = n("UEVQ");
|
|
|
|
function be(e) {
|
|
const {
|
|
className: t,
|
|
itemClassName: n,
|
|
itemContentClassName: r,
|
|
items: c,
|
|
getItemTitle: s,
|
|
getItemKey: i,
|
|
checkItemIsActive: l,
|
|
getItemColor: u,
|
|
onBubbleClick: d,
|
|
multiline: p,
|
|
children: m
|
|
} = e;
|
|
return a.a.createElement("div", {
|
|
className: o(t, he.bubbles, p && he.multiLine)
|
|
}, c.map((e, t) => a.a.createElement(fe, {
|
|
key: i ? i(e) : t,
|
|
className: o(he.bubble, n),
|
|
contentClassName: r,
|
|
onClick: function() {
|
|
d(e)
|
|
},
|
|
onMouseDown: function(e) {
|
|
e.preventDefault()
|
|
},
|
|
isActive: !!l && l(e),
|
|
activeColor: u ? u(e) : void 0
|
|
}, s(e))), m)
|
|
}
|
|
var ve = n("jPOK"),
|
|
ge = n("iR1w"),
|
|
ye = n("cvc5"),
|
|
Ee = n.n(ye),
|
|
xe = n("ML8+"),
|
|
Oe = n("G4pG");
|
|
|
|
function ke(e) {
|
|
const {
|
|
mode: t,
|
|
setMode: n,
|
|
searchRef: o,
|
|
cachedInputValue: i,
|
|
selectedExchange: l,
|
|
upperCaseEnabled: u
|
|
} = Object(f.ensureNotNull)(Object(r.useContext)(b.a)), d = Object(f.ensureNotNull)(l), p =
|
|
"symbolSearch" === t, m = Object(g.g)(d), {
|
|
country: v,
|
|
providerId: y,
|
|
flag: E
|
|
} = d;
|
|
return p ? a.a.createElement("div", {
|
|
className: c()(Oe.flagWrap, "apply-common-tooltip"),
|
|
title: Object(s.t)("Select source"),
|
|
onClick: function() {
|
|
o.current && (i.current = u ? o.current.value.toUpperCase() : o.current
|
|
.value);
|
|
n("exchange")
|
|
}
|
|
}, !!m && a.a.createElement(h.a, {
|
|
className: Oe.icon,
|
|
icon: k
|
|
}), a.a.createElement("div", {
|
|
className: Oe.title
|
|
}, m ? Object(s.t)("All sources") : d.name), a.a.createElement(xe.a, {
|
|
className: Oe.caret,
|
|
dropped: !1
|
|
})) : null
|
|
}
|
|
var Ne = n("2gjO");
|
|
const we = Object(g.c)();
|
|
|
|
function Se(e) {
|
|
const {
|
|
isSmallWidth: t,
|
|
selectedExchange: n
|
|
} = Object(f.ensureNotNull)(Object(r.useContext)(b.a)), o = n && we.length > 1 && !Object(g
|
|
.a)();
|
|
return a.a.createElement("div", {
|
|
className: c()(Ne.wrap, t && Ne.small)
|
|
}, a.a.createElement("div", {
|
|
className: Ne.item
|
|
}, a.a.createElement("div", {
|
|
className: Ne.text
|
|
}, t ? Object(s.t)("Symbol & description") : Object(s.t)("Symbol"))), a.a
|
|
.createElement("div", {
|
|
className: Ne.item
|
|
}, !t && a.a.createElement("div", {
|
|
className: Ne.text
|
|
}, Object(s.t)("Description")), o && a.a.createElement("div", {
|
|
className: Ne.exchange
|
|
}, a.a.createElement(ke, null))))
|
|
}
|
|
var Ce = n("Ialn"),
|
|
Te = n("h9B/");
|
|
|
|
function je(e) {
|
|
const {
|
|
onTouchMove: t,
|
|
listRef: n,
|
|
className: o,
|
|
listWrapRef: s,
|
|
virtualListKey: i,
|
|
items: l,
|
|
getItemSize: u,
|
|
hideFeed: d
|
|
} = e, {
|
|
mode: p,
|
|
isSmallWidth: m,
|
|
handleListWidth: h
|
|
} = Object(C.a)(b.a), [v, g] = Object(r.useState)(null), y = Object(r.useCallback)(e => {
|
|
const {
|
|
index: t,
|
|
style: n
|
|
} = e;
|
|
return a.a.createElement("div", {
|
|
style: n
|
|
}, l[t])
|
|
}, [l]), E = Object(r.useCallback)(e => Object(f.ensure)(l[e].key), [l]), x =
|
|
"watchlist" === p && null !== v;
|
|
return a.a.createElement(Ee.a, {
|
|
onMeasure: function(e) {
|
|
g(e.height), h(e.width)
|
|
}
|
|
}, a.a.createElement("div", {
|
|
ref: s,
|
|
className: c()(Te.wrap, x && Te.watchlist, d && Te.noFeed, o),
|
|
onTouchMove: t
|
|
}, a.a.createElement("div", {
|
|
className: c()(Te.scrollContainer, d && Te.noFeed)
|
|
}, x ? a.a.createElement(ge.b, {
|
|
key: i,
|
|
ref: n,
|
|
className: Te.listContainer,
|
|
width: "100%",
|
|
height: Object(f.ensureNotNull)(v),
|
|
itemCount: l.length,
|
|
itemSize: u,
|
|
children: y,
|
|
itemKey: E,
|
|
overscanCount: 20,
|
|
direction: Object(Ce.isRtl)() ? "rtl" : "ltr"
|
|
}) : a.a.createElement("div", {
|
|
className: c()(Te.listContainer, m && Te.multiLineItemsContainer)
|
|
}, a.a.createElement(Se, null), l))))
|
|
}
|
|
var Ie = n("zjoO"),
|
|
Re = n("mdyz");
|
|
|
|
function Me(e) {
|
|
const {
|
|
token: t,
|
|
state: n,
|
|
otherSymbolsCount: o,
|
|
onChangeSymbolTypeFilter: c,
|
|
onResetFilters: s,
|
|
onListTouchMove: i,
|
|
brokerTitle: l,
|
|
isBrokerChecked: u,
|
|
onBrokerCheckboxChange: d,
|
|
listRef: p,
|
|
listWrapRef: m
|
|
} = e, {
|
|
mode: f,
|
|
isMobile: h,
|
|
selectedExchange: v,
|
|
selectedSymbolType: g,
|
|
symbolTypes: y,
|
|
feedItems: E,
|
|
contentItem: x,
|
|
emptyState: O = _e
|
|
} = Object(C.a)(b.a), k = l && a.a.createElement(BrokerCheckbox, {
|
|
brokerTitle: l,
|
|
checked: u,
|
|
onCheckboxChange: d
|
|
}), N = "symbolSearch" === f && "good" === n, w = null != x ? x : Ie.a, S = Object(r
|
|
.useMemo)(() => E.map(e => a.a.createElement(w, {
|
|
...e,
|
|
searchToken: t
|
|
})), [E]);
|
|
return a.a.createElement(a.a.Fragment, null, "symbolSearch" === f && a.a.createElement(a.a
|
|
.Fragment, null, y.length > 0 && a.a.createElement(be, {
|
|
itemClassName: Re.symbolType,
|
|
items: y,
|
|
getItemTitle: e => e.name,
|
|
getItemKey: e => e.value,
|
|
checkItemIsActive: e => e.value === g,
|
|
onBubbleClick: c,
|
|
multiline: !h
|
|
}, k), !1), a.a.createElement(je, {
|
|
listRef: p,
|
|
listWrapRef: m,
|
|
onTouchMove: i,
|
|
items: S,
|
|
getItemSize: () => De,
|
|
hideFeed: !N
|
|
}), "loading" === n && a.a.createElement("div", {
|
|
className: Re.spinnerWrap
|
|
}, a.a.createElement(ve.a, null)), "symbolSearch" === f && a.a.createElement(a.a
|
|
.Fragment, null, !1, "empty" === n && a.a.createElement(O, null)))
|
|
}
|
|
|
|
function _e(e) {
|
|
const t = Object(S.a)({
|
|
watchedValue: T.watchedTheme
|
|
}) === j.a.Dark ? R : M;
|
|
return a.a.createElement(E, {
|
|
className: Re.noResultsDesktop
|
|
}, a.a.createElement(h.a, {
|
|
icon: t
|
|
}), a.a.createElement("div", {
|
|
className: Re.emptyText
|
|
}, Object(s.t)("No symbols match your criteria")))
|
|
}
|
|
const Le = Object(g.e)(),
|
|
De = 52;
|
|
|
|
function Ae(e) {
|
|
const {
|
|
mode: t,
|
|
setMode: n,
|
|
setSelectedIndex: o,
|
|
isMobile: i,
|
|
selectedExchange: u,
|
|
setSelectedExchange: p,
|
|
selectedSymbolType: m,
|
|
setSelectedSymbolType: f,
|
|
setRenderSymbolSearchList: h,
|
|
searchRef: y,
|
|
cachedInputValue: E,
|
|
setSearchSpreads: x,
|
|
showSpreadActions: O,
|
|
selectedItem: k,
|
|
onSearchFeedReady: N,
|
|
forceUpdate: w,
|
|
placeholder: S,
|
|
initialScreen: T,
|
|
footer: j,
|
|
searchInput: R,
|
|
upperCaseEnabled: M,
|
|
externalInput: _,
|
|
handleKeyDown: L
|
|
} = Object(C.a)(b.a), D = Object(r.useRef)(t);
|
|
D.current = t;
|
|
const A = Object(r.useRef)(new AbortController),
|
|
[z, P] = Object(r.useState)(0),
|
|
[B, Z] = Object(r.useState)("noop"),
|
|
V = Object(r.useRef)(0),
|
|
[F, G] = Object(r.useState)(E.current),
|
|
W = Object(r.useRef)(null),
|
|
X = Object(r.useRef)(null),
|
|
K = Object(r.useRef)({
|
|
selectedIndexValue: -1,
|
|
searchTokenValue: "",
|
|
searchSpreadsValue: !0
|
|
}),
|
|
H = Object(r.useRef)(null),
|
|
te = Object(r.useRef)(null),
|
|
{
|
|
broker: ne = null,
|
|
brokerId: re,
|
|
brokerTitle: ae,
|
|
isBrokerChecked: oe = !1,
|
|
setIsBrokerChecked: ce = (() => {}),
|
|
unhideSymbolSearchGroups: se = ""
|
|
} = {
|
|
brokerId: void 0,
|
|
brokerTitle: void 0
|
|
};
|
|
Object(r.useEffect)(() => {
|
|
(null == y ? void 0 : y.current) && G(y.current.value)
|
|
}, []), Object(r.useEffect)(() => {
|
|
const e = y.current;
|
|
if (e) return e.addEventListener("input", be), e.addEventListener("focus", Ee),
|
|
e.addEventListener("select", he), e.addEventListener("click", he), e
|
|
.addEventListener("keyup", xe), _ && L && e.addEventListener("keydown",
|
|
L), () => {
|
|
e && (e.removeEventListener("input", be), e.removeEventListener(
|
|
"focus", Ee), e.removeEventListener("select", he), e
|
|
.removeEventListener("click", he), e.removeEventListener(
|
|
"keyup", xe), _ && L && e.removeEventListener("keydown",
|
|
L))
|
|
}
|
|
}, [L]), Object(r.useEffect)(() => {
|
|
Boolean(T) && "" === F.trim() || (ge(F, m, null == u ? void 0 : u.value), W
|
|
.current && (W.current.scrollTop = 0))
|
|
}, [F, m, u, oe, T]), Object(r.useEffect)(() => {
|
|
if (!k || !y.current) return;
|
|
if (!d.enabled("show_spread_operators")) return y.current.value = k.symbol,
|
|
void w();
|
|
const e = U(k) ? k.exchange : k.parent.exchange,
|
|
t = {
|
|
name: k.symbol,
|
|
exchange: e,
|
|
prefix: k.prefix,
|
|
fullName: k.full_name
|
|
},
|
|
[n, r] = Object(l.d)(y.current, t, M);
|
|
y.current.value = n, y.current.setSelectionRange(r, r), w()
|
|
}, [k]);
|
|
const ie = Object(r.useCallback)(e => N ? N(e) : e, [N]),
|
|
ue = null != T ? T : "div",
|
|
de = Boolean(T) && "symbolSearch" !== t,
|
|
pe = null != R ? R : v.a,
|
|
me = Object(r.useMemo)(() => ({
|
|
listRef: X,
|
|
resetRecommends: ye,
|
|
updateRecommends: ge,
|
|
searchToken: F,
|
|
emptyTextClassName: Re.emptyText,
|
|
isBrokerChecked: oe,
|
|
symbolSearchState: B,
|
|
currentMode: D
|
|
}), [X, F, oe, B, D]);
|
|
return a.a.createElement(I.a.Provider, {
|
|
value: me
|
|
}, !(_ && "symbolSearch" === t) && a.a.createElement(pe, {
|
|
reference: y,
|
|
className: c()(Re.search, M && Re.upperCase),
|
|
placeholder: S || Object(s.t)("Search")
|
|
}, O && a.a.createElement(le, {
|
|
state: K,
|
|
update: ve
|
|
})), de ? a.a.createElement(ue, null) : a.a.createElement(Me, {
|
|
token: F,
|
|
state: B,
|
|
otherSymbolsCount: z,
|
|
onListTouchMove: function() {
|
|
var e;
|
|
null === (e = y.current) || void 0 === e || e.blur()
|
|
},
|
|
onChangeSymbolTypeFilter: function(e) {
|
|
const {
|
|
value: t
|
|
} = e;
|
|
f(t), o(-1)
|
|
},
|
|
onResetFilters: function() {
|
|
var e;
|
|
f(Object(g.b)()), Le && p(Le);
|
|
ce(!1), i || null === (e = y.current) || void 0 === e || e.focus()
|
|
},
|
|
brokerTitle: ae,
|
|
isBrokerChecked: oe,
|
|
onBrokerCheckboxChange: function(e) {
|
|
ce("on" !== e)
|
|
},
|
|
listRef: X,
|
|
listWrapRef: W
|
|
}), j);
|
|
|
|
function fe() {
|
|
if (!y.current) return;
|
|
const [e, t, n] = Object(l.b)(y.current, M);
|
|
V.current = t,
|
|
K.current = {
|
|
selectedIndexValue: -1,
|
|
searchSpreadsValue: Object(l.e)(n),
|
|
searchTokenValue: e
|
|
}, H.current || (H.current = setTimeout(ve, 0))
|
|
}
|
|
|
|
function he() {
|
|
if (!y.current) return;
|
|
const [, e] = Object(l.b)(y.current, M);
|
|
e !== V.current && fe()
|
|
}
|
|
|
|
function be() {
|
|
d.enabled("show_spread_operators") ? fe() : y.current && (K.current = {
|
|
selectedIndexValue: -1,
|
|
searchSpreadsValue: !1,
|
|
searchTokenValue: y.current.value
|
|
}, H.current || (H.current = setTimeout(ve, 0)))
|
|
}
|
|
|
|
function ve() {
|
|
const {
|
|
selectedIndexValue: e,
|
|
searchTokenValue: t,
|
|
searchSpreadsValue: n
|
|
} = K.current;
|
|
H.current = null, Object(Q.unstable_batchedUpdates)(() => {
|
|
x(n), o(e), G(M ? t.toUpperCase() : t)
|
|
})
|
|
}
|
|
async function ge(e, t, n) {
|
|
try {
|
|
"noop" === B ? Z("loading") : (Oe(), te.current = setTimeout(() => {
|
|
Z("loading")
|
|
}, 500)), ke();
|
|
const r = await async function(e, t, n, r) {
|
|
var a, o, c;
|
|
const s = d.enabled("show_spread_operators") ? Object(l.f)(t) :
|
|
null === (a = y.current) || void 0 === a ? void 0 : a.value;
|
|
let i;
|
|
if (oe && ne) {
|
|
const t = await Object(q.b)(e, ne.accountMetainfo());
|
|
i = t.prefix
|
|
}
|
|
const p = d.enabled("show_spread_operators") ? null !== (c =
|
|
null !== (o = Object(l.c)(t)) && void 0 !== o ? o : i) &&
|
|
void 0 !== c ? c : r : null == u ? void 0 : u.value,
|
|
m = {
|
|
serverHighlight: !1,
|
|
text: s,
|
|
exchange: p,
|
|
type: n,
|
|
lang: window.language || "",
|
|
brokerId: re,
|
|
onlyTradable: Boolean(re) && oe,
|
|
unhideSymbolSearchGroups: se,
|
|
signal: e
|
|
},
|
|
f = Object($.getSearchRequestDelay)();
|
|
void 0 !== f && await Object(q.a)(e, f);
|
|
return Y(m)
|
|
}(A.current.signal, e, t, n), a = ie(function(e, t = window
|
|
.ChartApiInstance.symbolsGrouping()) {
|
|
var n;
|
|
const r = {},
|
|
a = [];
|
|
for (let o = 0; o < e.length; ++o) {
|
|
const c = e[o];
|
|
if (c.prefix || Array.isArray(c.contracts)) return e;
|
|
const s = t[c.type];
|
|
if (void 0 === s) {
|
|
a.push(c);
|
|
continue
|
|
}
|
|
const i = s.exec(c.symbol);
|
|
if (i) {
|
|
const e = i[1];
|
|
let t;
|
|
r.hasOwnProperty(e) ? t = r[e] : (t = a.length, r[e] =
|
|
t, a.push({
|
|
type: c.type,
|
|
symbol: e,
|
|
exchange: c.exchange,
|
|
description: c.description,
|
|
full_name: c.exchange + ":" + e,
|
|
contracts: []
|
|
})), null === (n = a[t].contracts) || void 0 ===
|
|
n || n.push(c)
|
|
} else a.push(c)
|
|
}
|
|
return a
|
|
}(r));
|
|
if (!a.length) return Oe(), void Z("empty");
|
|
Oe(), h(a), Z("good")
|
|
} catch (e) {
|
|
Object(q.c)(e)
|
|
}
|
|
}
|
|
|
|
function ye() {
|
|
ke(), Z("empty"), G(""), x(!1), Oe()
|
|
}
|
|
|
|
function Ee() {
|
|
"watchlist" === D.current && (n("symbolSearch"), Object(J.trackEvent)("Watchlist",
|
|
"Mobile SS", "Go to SS page"))
|
|
}
|
|
|
|
function xe(e) {
|
|
switch (Object(ee.hashFromEvent)(e)) {
|
|
case 37:
|
|
case 39:
|
|
he()
|
|
}
|
|
}
|
|
|
|
function Oe() {
|
|
te.current && clearTimeout(te.current)
|
|
}
|
|
|
|
function ke() {
|
|
A.current.abort(), A.current = new AbortController
|
|
}
|
|
}
|
|
var ze = n("U0JK"),
|
|
Pe = n("hYF9");
|
|
|
|
function Be(e) {
|
|
const {
|
|
theme: t = Pe
|
|
} = e, {
|
|
setMode: n,
|
|
isMobile: r
|
|
} = Object(C.a)(b.a);
|
|
return a.a.createElement(h.a, {
|
|
className: c()(e.className, t.button, !r && t.desktop),
|
|
icon: ze,
|
|
onClick: function() {
|
|
n("symbolSearch")
|
|
}
|
|
})
|
|
}
|
|
var Ze = n("w3Pp"),
|
|
Ve = n("qC62"),
|
|
Fe = n("Vdly");
|
|
|
|
function Ge(e) {
|
|
const [t, n] = Object(r.useState)(() => {
|
|
const t = Fe.getValue("symboledit.exchangefilter", "");
|
|
return e.exchanges.find(e => e.value === t) || e.defaultExchange
|
|
});
|
|
return [t, Object(r.useCallback)(e => {
|
|
var t;
|
|
n(e), t = e, Fe.setValue("symboledit.exchangefilter", t.value)
|
|
}, [])]
|
|
}
|
|
|
|
function We(e) {
|
|
const [t, n] = Object(r.useState)(() => {
|
|
if (1 === e.types.length) return e.types[0].value;
|
|
const t = Fe.getValue("symboledit.filter", Object(g.b)());
|
|
return e.types.find(e => e.value === t) ? t : Object(g.b)()
|
|
});
|
|
return [t, Object(r.useCallback)(e => {
|
|
var t;
|
|
n(e), t = e, Fe.setValue("symboledit.filter", t)
|
|
}, [])]
|
|
}
|
|
var Xe = n("gla1"),
|
|
Ke = n("ozXl");
|
|
n.d(t, "a", (function() {
|
|
return Ue
|
|
}));
|
|
const Qe = Object(g.c)(),
|
|
qe = Object(g.e)(),
|
|
He = d.enabled("uppercase_instrument_names");
|
|
|
|
function Ue(e) {
|
|
var t;
|
|
const {
|
|
onClose: n,
|
|
initialMode: o,
|
|
defaultValue: c = "",
|
|
showSpreadActions: m,
|
|
selectSearchOnInit: f = !0,
|
|
onSearchComplete: h,
|
|
onSearchFeedReady: v,
|
|
dialogTitle: y = Object(s.t)("Symbol Search"),
|
|
placeholder: E,
|
|
fullscreen: x,
|
|
initialScreen: O,
|
|
wrapper: k,
|
|
dialog: N,
|
|
contentItem: w,
|
|
footer: S,
|
|
symbolTypes: C = Object(g.d)(),
|
|
searchInput: T,
|
|
emptyState: j,
|
|
autofocus: I,
|
|
dialogWidth: R,
|
|
onKeyDown: M,
|
|
exchangeScreen: _
|
|
} = e, L = void 0 !== e.input, [A, z] = Object(r.useState)(o), P = Object(r.useRef)(c), [B,
|
|
Z
|
|
] = Ge({
|
|
exchanges: Qe,
|
|
defaultExchange: qe
|
|
}), [V, F] = We({
|
|
types: C
|
|
}), [G, W] = Object(r.useState)([]), [X, K] = Object(r.useState)(!1), [Q, q] = Object(r
|
|
.useState)(-1), H = Object(r.useRef)(null !== (t = e.input) && void 0 !== t ? t :
|
|
null), [$, J] = Object(r.useState)(!1), te = Object(Xe.a)(), [ne, re] = Object(r
|
|
.useState)(new Set), {
|
|
broker: ae = null,
|
|
brokerId: oe,
|
|
unhideSymbolSearchGroups: ce = "",
|
|
displayBrokerSymbol: se = !1
|
|
} = {
|
|
brokerId: void 0
|
|
};
|
|
Object(r.useLayoutEffect)(() => {
|
|
var e;
|
|
!(null == H ? void 0 : H.current) || !L && Boolean(null === (e = H.current) ||
|
|
void 0 === e ? void 0 : e.value) || (L || "compare" === A || (H.current
|
|
.value = P.current), !I || L && "symbolSearch" !== A || H.current
|
|
.focus())
|
|
}, [A]), Object(r.useEffect)(() => {
|
|
(null == H ? void 0 : H.current) && f && I && H.current.select()
|
|
}, []);
|
|
const ie = Object(r.useMemo)(() => G.reduce((e, t) => {
|
|
const n = Je(t),
|
|
r = ne.has(n);
|
|
return e.push(t), r && t.contracts && e.push(...t.contracts.map(e => ({
|
|
...e,
|
|
parent: t
|
|
}))), e
|
|
}, []), [G, ne]),
|
|
le = Object(r.useRef)(null);
|
|
Object(r.useEffect)(() => {
|
|
var e; - 1 !== Q && (null === (e = le.current) || void 0 === e || e
|
|
.scrollIntoView({
|
|
block: "nearest"
|
|
}))
|
|
}, [Q, le]);
|
|
const ue = Object(r.useMemo)(() => ie.map((e, t) => {
|
|
var n, r, a, o;
|
|
if (U(e)) {
|
|
const a = Je(e),
|
|
o = e.contracts ? ne.has(a) : void 0,
|
|
c = t === Q;
|
|
return {
|
|
key: t,
|
|
id: a,
|
|
title: $e(e, se),
|
|
description: e.description,
|
|
isOffset: !1,
|
|
onClick: ve.bind(null, e),
|
|
providerId: e.provider_id,
|
|
country: null === (n = e.country) || void 0 === n ? void 0 : n
|
|
.toLocaleLowerCase(),
|
|
type: e.type,
|
|
exchangeName: e.exchange,
|
|
marketType: Object(Ze.marketType)(e.type, e.typespecs),
|
|
isEod: null === (r = e.params) || void 0 === r ? void 0 : r
|
|
.includes("eod"),
|
|
isExpanded: o,
|
|
onExpandClick: e.contracts ? ge.bind(null, a) : void 0,
|
|
fullSymbolName: Ve.a.fromSymbolSearchResult(e),
|
|
itemRef: c ? le : void 0,
|
|
isSelected: t === Q,
|
|
item: e
|
|
}
|
|
} {
|
|
const {
|
|
parent: n
|
|
} = e, r = Je(n), c = t === Q;
|
|
return {
|
|
key: t,
|
|
id: r + e.symbol,
|
|
dangerousTitleHTML: $e(e, se),
|
|
dangerousDescriptionHTML: `${n.description} (${e.description})`,
|
|
isOffset: !0,
|
|
isEod: null === (a = e.params) || void 0 === a ? void 0 : a
|
|
.includes("eod"),
|
|
onClick: ye.bind(null, e.parent, e),
|
|
providerId: n.provider_id,
|
|
country: null === (o = n.country) || void 0 === o ? void 0 : o
|
|
.toLowerCase(),
|
|
type: n.type,
|
|
exchangeName: n.exchange,
|
|
marketType: Object(Ze.marketType)(n.type, e.typespecs),
|
|
fullSymbolName: Ve.a.fromSymbolSearchResult(e.parent, e),
|
|
itemRef: c ? le : void 0,
|
|
isSelected: c,
|
|
item: e
|
|
}
|
|
}
|
|
}), [G, ne, A, Q, M]),
|
|
de = null != N ? N : tt,
|
|
pe = de !== tt && !L,
|
|
me = (e, t) => ({
|
|
mode: A,
|
|
setMode: z,
|
|
selectedExchange: B,
|
|
setSelectedExchange: Z,
|
|
selectedSymbolType: V,
|
|
setSelectedSymbolType: F,
|
|
selectedIndex: Q,
|
|
setSelectedIndex: q,
|
|
onClose: n,
|
|
setRenderSymbolSearchList: W,
|
|
searchRef: H,
|
|
cachedInputValue: P,
|
|
searchSpreads: X,
|
|
setSearchSpreads: K,
|
|
handleListWidth: Ee,
|
|
isSmallWidth: $,
|
|
feedItems: ue,
|
|
isMobile: e,
|
|
showSpreadActions: m,
|
|
selectSearchOnInit: f,
|
|
isTablet: t,
|
|
selectedItem: ie[Q],
|
|
onSearchFeedReady: v,
|
|
forceUpdate: te,
|
|
placeholder: E,
|
|
initialScreen: O,
|
|
toggleExpand: ge,
|
|
openedItems: ne,
|
|
onSubmit: ke,
|
|
onSearchComplete: h,
|
|
footer: S,
|
|
symbolTypes: C,
|
|
contentItem: w,
|
|
searchInput: T,
|
|
emptyState: j,
|
|
autofocus: I,
|
|
upperCaseEnabled: He,
|
|
externalInput: L,
|
|
handleKeyDown: pe ? void 0 : Oe
|
|
}),
|
|
fe = null != _ ? _ : D,
|
|
he = "exchange" === A ? {
|
|
title: Object(s.t)("Sources"),
|
|
dataName: "exchanges-search",
|
|
render: () => a.a.createElement(fe, {
|
|
exchanges: Qe
|
|
}),
|
|
additionalHeaderElement: a.a.createElement(Be, null),
|
|
additionalElementPos: "before"
|
|
} : {
|
|
title: y,
|
|
dataName: "symbol-search-items-dialog",
|
|
render: () => a.a.createElement(Ae, null),
|
|
additionalElementPos: "after"
|
|
},
|
|
be = null != k ? k : "div";
|
|
return a.a.createElement(be, null, a.a.createElement(u.a, {
|
|
rules: p.a
|
|
}, ({
|
|
TabletSmall: e,
|
|
TabletNormal: t
|
|
}) => a.a.createElement(b.a.Provider, {
|
|
value: me(e, t)
|
|
}, a.a.createElement(de, {
|
|
...he,
|
|
fullScreen: x,
|
|
onClose: n,
|
|
onClickOutside: n,
|
|
onKeyDown: pe ? void 0 : Oe,
|
|
isOpened: !0
|
|
}))));
|
|
|
|
function ve(e) {
|
|
e.contracts ? ge(Je(e)) : ye(e)
|
|
}
|
|
|
|
function ge(e) {
|
|
const t = new Set(ne);
|
|
t.has(e) ? t.delete(e) : t.add(e), re(t)
|
|
}
|
|
|
|
function ye(e, t) {
|
|
const r = t || e,
|
|
{
|
|
exchange: a
|
|
} = e;
|
|
if (d.enabled("show_spread_operators")) {
|
|
const e = {
|
|
name: r.symbol,
|
|
exchange: a,
|
|
prefix: r.prefix,
|
|
fullName: r.full_name
|
|
};
|
|
if (X) return xe(e), void te();
|
|
if (H.current && H.current.value.includes(",")) return void xe(e)
|
|
}
|
|
const o = [{
|
|
resolved: !0,
|
|
symbol: Ve.a.fromSymbolSearchResult(e, t),
|
|
result: r
|
|
}];
|
|
h(o), n()
|
|
}
|
|
|
|
function Ee(e) {
|
|
J("fixed" === R || e <= 640)
|
|
}
|
|
|
|
function xe(e) {
|
|
if (!H.current) return;
|
|
const [t, n] = Object(l.d)(H.current, e, He);
|
|
H.current.value = t, H.current.setSelectionRange(n, n), H.current.focus()
|
|
}
|
|
|
|
function Oe(e) {
|
|
switch (Object(ee.hashFromEvent)(e)) {
|
|
case 38:
|
|
if (e.preventDefault(), 0 === Q) return;
|
|
if (-1 === Q) return void q(0);
|
|
q(Q - 1);
|
|
break;
|
|
case 40:
|
|
if (e.preventDefault(), Q === ue.length - 1) return;
|
|
q(Q + 1);
|
|
break;
|
|
case 37: {
|
|
if (-1 === Q) return;
|
|
const t = ue[Q],
|
|
{
|
|
id: n,
|
|
isOffset: r,
|
|
onExpandClick: a
|
|
} = t;
|
|
!r && n && ne.has(n) && Boolean(a) && (e.preventDefault(), ge(n));
|
|
break
|
|
}
|
|
case 39: {
|
|
if (-1 === Q) return;
|
|
const t = ue[Q],
|
|
{
|
|
id: n,
|
|
isOffset: r,
|
|
onExpandClick: a
|
|
} = t;
|
|
!r && n && !ne.has(n) && Boolean(a) && (e.preventDefault(), ge(n));
|
|
break
|
|
}
|
|
case 13:
|
|
ke(!0);
|
|
break;
|
|
case 27:
|
|
e.preventDefault(), n()
|
|
}
|
|
null == M || M(e)
|
|
}
|
|
|
|
function ke(e) {
|
|
if (!H.current) return;
|
|
const t = H.current.value;
|
|
if (d.enabled("show_spread_operators") && X && t) {
|
|
if (t.includes(",")) {
|
|
const r = et(t);
|
|
if (r.some(e => !Ne(e))) return;
|
|
return h(r.map(Ye)), void(e && n())
|
|
}
|
|
if (!Ne(t)) return;
|
|
return h([{
|
|
symbol: He ? t.toUpperCase() : t,
|
|
resolved: !1
|
|
}]), void(e && n())
|
|
}
|
|
if (t.includes(",")) return h(et(t).map(Ye)), void(e && n());
|
|
if (-1 !== Q) {
|
|
ue[Q].onClick()
|
|
} else {
|
|
const r = He ? t.toUpperCase() : t;
|
|
if (r && "" !== r.trim()) {
|
|
const e = et(r);
|
|
if (void 0 !== oe && -1 === r.indexOf(":"))(function(e) {
|
|
let t = !1;
|
|
return Promise.all(e.map(e => -1 !== e.indexOf(":") || t ? Promise
|
|
.resolve({
|
|
symbol: e,
|
|
resolved: !1
|
|
}) : (t = !0, async function(e) {
|
|
var t;
|
|
null === (t = await (null == ae ? void 0 :
|
|
ae.accountMetainfo())) || void 0 ===
|
|
t || t.prefix;
|
|
const n = await Y({
|
|
strictMatch: !0,
|
|
serverHighlight: !1,
|
|
text: e,
|
|
lang: window.language || "",
|
|
brokerId: oe,
|
|
onlyTradable: !0,
|
|
unhideSymbolSearchGroups: ce,
|
|
exchange: void 0
|
|
});
|
|
if (0 !== n.length) {
|
|
const e = n[0],
|
|
{
|
|
contracts: t
|
|
} = e,
|
|
r = t && t.length > 0 ? t[0] :
|
|
void 0,
|
|
a = e.prefix || e.exchange,
|
|
o = r ? r.symbol : e.symbol;
|
|
if (a && o) return {
|
|
symbol: Ve.a
|
|
.fromSymbolSearchResult(e,
|
|
r),
|
|
resolved: !0,
|
|
result: e
|
|
}
|
|
}
|
|
return {
|
|
symbol: e,
|
|
resolved: !1
|
|
}
|
|
}(e))))
|
|
})(e).then(e => h(e));
|
|
else {
|
|
const t = e.map(Ye);
|
|
h(t)
|
|
}
|
|
}
|
|
e && n()
|
|
}
|
|
}
|
|
|
|
function Ne(e) {
|
|
const t = Object(i.b)(e),
|
|
n = Object(l.h)(t);
|
|
if (n.errors.length || n.warnings.length) return !1;
|
|
const r = ue[Q];
|
|
return !r || void 0 === r.isExpanded || (r.onClick(), !1)
|
|
}
|
|
}
|
|
|
|
function Ye(e) {
|
|
return {
|
|
symbol: He ? e.toUpperCase() : e,
|
|
resolved: !1
|
|
}
|
|
}
|
|
|
|
function $e(e, t) {
|
|
const {
|
|
broker_symbol: n,
|
|
symbol: r
|
|
} = e;
|
|
return `${r}${t&&n?` (${n})`:""}`
|
|
}
|
|
|
|
function Je(e) {
|
|
return e.symbol + e.exchange + e.description
|
|
}
|
|
|
|
function et(e) {
|
|
return e.split(",").map(e => e.trim()).filter(e => "" !== e)
|
|
}
|
|
|
|
function tt(e) {
|
|
const {
|
|
isMobile: t,
|
|
isTablet: n
|
|
} = Object(C.a)(b.a);
|
|
return a.a.createElement(m.a, {
|
|
...e,
|
|
className: c()(Ke.dialog, !t && (n ? Ke.tabletDialog : Ke.desktopDialog)),
|
|
backdrop: !0,
|
|
draggable: !1
|
|
})
|
|
}
|
|
},
|
|
vqb8: function(e, t, n) {
|
|
"use strict";
|
|
n.d(t, "a", (function() {
|
|
return a
|
|
}));
|
|
var r = n("q1tI");
|
|
const a = e => {
|
|
const t = "watchedValue" in e ? e.watchedValue : void 0,
|
|
n = "defaultValue" in e ? e.defaultValue : e.watchedValue.value(),
|
|
[a, o] = Object(r.useState)(t ? t.value() : n);
|
|
return Object(r.useEffect)(() => {
|
|
if (t) {
|
|
o(t.value());
|
|
const e = e => o(e);
|
|
return t.subscribe(e), () => t.unsubscribe(e)
|
|
}
|
|
return () => {}
|
|
}, [t]), a
|
|
}
|
|
},
|
|
w3Pp: function(e, t, n) {
|
|
"use strict";
|
|
n.r(t), n.d(t, "marketType", (function() {
|
|
return i
|
|
}));
|
|
var r = n("YFKU");
|
|
n("HbRj");
|
|
const a = new Map,
|
|
o = {
|
|
context: "market_type"
|
|
},
|
|
c = {
|
|
cfd: Object(r.t)("cfd", o),
|
|
bitcoin: Object(r.t)("crypto", o),
|
|
crypto: Object(r.t)("crypto", o),
|
|
dr: Object(r.t)("dr", o),
|
|
forex: Object(r.t)("forex", o),
|
|
futures: Object(r.t)("futures", o),
|
|
index: Object(r.t)("index", o),
|
|
stock: Object(r.t)("stock", o)
|
|
},
|
|
s = new Set(["cfd", "spreadbet", "defi"]);
|
|
|
|
function i(e, t = []) {
|
|
const n = t.filter(e => s.has(e)),
|
|
i = `${e}_${n.sort().join("_")}`,
|
|
l = a.get(i);
|
|
if (void 0 !== l) return l;
|
|
const u = Boolean(t.length) ? Object(r.t)(e, o) + " " + n.join(" ") : c[e] || e;
|
|
return a.set(i, u), u
|
|
}
|
|
},
|
|
wy57: function(e, t) {
|
|
e.exports =
|
|
'<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" width="18" height="18" fill="none"><path stroke="currentColor" d="M2.5 14.5c1.68-1.26 3.7-2 6.5-2s4.91.74 6.5 2m-13-11c1.68 1.26 3.7 2 6.5 2s4.91-.74 6.5-2"/><circle stroke="currentColor" cx="9" cy="9" r="8.5"/><path stroke="currentColor" d="M13.5 9c0 2.42-.55 4.58-1.4 6.12-.87 1.56-1.98 2.38-3.1 2.38s-2.23-.82-3.1-2.38c-.85-1.54-1.4-3.7-1.4-6.12s.55-4.58 1.4-6.12C6.77 1.32 7.88.5 9 .5s2.23.82 3.1 2.38c.85 1.54 1.4 3.7 1.4 6.12z"/></svg>'
|
|
},
|
|
zjoO: function(e, t, n) {
|
|
"use strict";
|
|
n.d(t, "a", (function() {
|
|
return g
|
|
}));
|
|
var r = n("q1tI"),
|
|
a = n.n(r),
|
|
o = n("TSYQ"),
|
|
c = n.n(o),
|
|
s = n("Eyy1"),
|
|
i = n("Iivm"),
|
|
l = n("1LIl"),
|
|
u = n("H9Gg"),
|
|
d = n("VogD"),
|
|
p = n("FZIs"),
|
|
m = n("vqb8"),
|
|
f = n("oiZD"),
|
|
h = n("8+VR"),
|
|
b = n("+5L9"),
|
|
v = n("eIOu");
|
|
|
|
function g(e) {
|
|
const {
|
|
dangerousTitleHTML: t,
|
|
title: n,
|
|
dangerousDescriptionHTML: o,
|
|
description: g,
|
|
searchToken: y,
|
|
exchangeName: E,
|
|
marketType: x,
|
|
onClick: O,
|
|
isSelected: k,
|
|
isEod: N = !1,
|
|
isActive: w = !1,
|
|
isOffset: S = !1,
|
|
invalid: C = !1,
|
|
isHighlighted: T = !1,
|
|
hideExchange: j = !1,
|
|
onExpandClick: I,
|
|
isExpanded: R,
|
|
hoverComponent: M,
|
|
country: _,
|
|
providerId: L,
|
|
type: D,
|
|
flag: A,
|
|
itemRef: z,
|
|
onMouseOut: P,
|
|
onMouseOver: B,
|
|
className: Z,
|
|
actions: V,
|
|
reference: F
|
|
} = e, {
|
|
isSmallWidth: G,
|
|
isMobile: W
|
|
} = Object(s.ensureNotNull)(Object(r.useContext)(d.a)), X = Boolean(M), K = !C && !j && (
|
|
W || !X), Q = Object(m.a)({
|
|
watchedValue: f.watchedTheme
|
|
}) === p.a.Dark ? v.dark : v.light, q = M;
|
|
return a.a.createElement("div", {
|
|
className: c()(v.itemRow, G && v.multiLine, T && v.highlighted, T && Q, k && v
|
|
.selected, w && v.active, C && v.invalid, !W && h.mobiletouch && X && v
|
|
.hover, Z),
|
|
onClick: function(e, t) {
|
|
if (!e || t.defaultPrevented) return;
|
|
t.preventDefault(), e(t)
|
|
}.bind(null, O),
|
|
"data-role": e["data-role"] || "list-item",
|
|
"data-active": w,
|
|
"data-name": "symbol-search-dialog-content-item",
|
|
onMouseOut: P,
|
|
onMouseOver: B,
|
|
ref: F
|
|
}, a.a.createElement("div", {
|
|
ref: z,
|
|
className: c()(v.itemInfoCell, v.cell, S && v.offset)
|
|
}, a.a.createElement("div", {
|
|
className: v.expandHandleWrap,
|
|
onClick: function(e) {
|
|
if (!I || e.defaultPrevented) return;
|
|
e.preventDefault(), I(e)
|
|
}
|
|
}, I && a.a.createElement(i.a, {
|
|
className: c()(v.expandHandle, R && v.expanded),
|
|
icon: b
|
|
})), a.a.createElement("div", {
|
|
className: v.description
|
|
}, n && a.a.createElement("div", {
|
|
className: c()(v.symbolTitle, w && v.active, C && v.invalid, !
|
|
Boolean(o) && v.noDescription),
|
|
"data-name": "list-item-title"
|
|
}, "string" == typeof n && y ? a.a.createElement(l.a, {
|
|
className: v.highlightedText,
|
|
text: n,
|
|
queryString: y,
|
|
rules: Object(u.a)(y)
|
|
}) : n, N && a.a.createElement("span", {
|
|
className: v.dataMode
|
|
}, "E")), !n && t && a.a.createElement("div", {
|
|
className: c()(v.symbolTitle, w && v.active, C && v.invalid),
|
|
"data-name": "list-item-title"
|
|
}, a.a.createElement("span", {
|
|
dangerouslySetInnerHTML: {
|
|
__html: t
|
|
}
|
|
}), N && a.a.createElement("span", {
|
|
className: v.dataMode
|
|
}, "E")), G && H())), !G && H(), q ? a.a.createElement(q, {
|
|
...e,
|
|
className: v.cell,
|
|
onMouseOver: void 0,
|
|
onMouseOut: void 0
|
|
}) : null, K && a.a.createElement("div", {
|
|
className: c()(v.exchangeCell, v.cell)
|
|
}, a.a.createElement("div", {
|
|
className: c()(v.exchangeDescription)
|
|
}, a.a.createElement("div", {
|
|
className: c()(v.marketType, w && v.active)
|
|
}, x), a.a.createElement("div", {
|
|
className: c()(v.exchangeName, w && v.active)
|
|
}, E)), !1), a.a.createElement("div", {
|
|
className: c()(v.cell, Boolean(V) && v.actionsCell)
|
|
}, V));
|
|
|
|
function H() {
|
|
if (C) return null;
|
|
const e = c()(v.symbolDescription, !G && v.cell, w && v.active, !h.mobiletouch &&
|
|
"apply-overflow-tooltip apply-overflow-tooltip--allow-text");
|
|
return g ? a.a.createElement("div", {
|
|
className: e
|
|
}, y ? a.a.createElement(l.a, {
|
|
className: v.highlightedText,
|
|
text: g,
|
|
queryString: y,
|
|
rules: Object(u.a)(y)
|
|
}) : g) : o ? a.a.createElement("div", {
|
|
className: e,
|
|
dangerouslySetInnerHTML: {
|
|
__html: o
|
|
}
|
|
}) : null
|
|
}
|
|
}
|
|
}
|
|
}
|
|
]);
|
|
|