(window.webpackJsonp = window.webpackJsonp || []).push([ ['symbolsearch'], { HBUj: function (t, e, i) {}, m5UM: function (t, e, i) { 'use strict'; (function (e) { i('jgM0'), i('HBUj'); var n = i('PT1i').linking, s = i('qdOW'), o = i('6et/'), r = i('w3Pp').marketType, a = i('c2JX').Spinner, l = i('glKZ'), c = i('dTSQ').regExpEscape, p = i('ePL1'), u = i('wmOI'), h = i('+GxX').isFeatureEnabled, d = i('GAqT').TVOldDialogs, f = i('jAh7').getRootOverlapManager, g = i('0waE').guid, _ = i('LxhU').Interval, m = i('h24c'), y = m.canShowSpreadActions, v = m.skipAccept, b = m.syncSymbolSearch, S = m.setLinkingResolution, E = m.globalKeypressMatches, w = h('futures-descriptions'); function I() { if ('undefined' == typeof tradingService) return null; var t = tradingService(); return t && t.connectStatus() === CONNECTSTATUSES.CONNECTED ? t.activeBroker() : null; } function x() { var t = I(); if (t && t.metainfo().configFlags.supportSymbolSearch) return t.metainfo().symbolSearchId || t.metainfo().id.toLowerCase(); } function T(t) { return ( k[ { 'EURONEXT AMSTERDAM': 'EURONEXTAMS', 'EURONEXT BRUSSELS': 'EURONEXTBRU', 'EURONEXT LISBON': 'EURONEXTLIS', 'EURONEXT PARIS': 'EURONEXTPAR', }[t.exchange] || t.prefix || t.exchange ] || t.exchange || '' ); } function C(t, e) { return ( e in t || (t[e] = 'bitcoin' === e || 'crypto' === e ? window.t('crypto') : window.t(e)), t[e] ); } var k = {}, R = /^(\w{3,4}) (\d{4})$/, L = (function () { var t = [ { name: 'input', immediate: !0 }, { name: 'sync', immediate: !0 }, { name: 'keypress' }, { name: 'keydown' }, { name: 'keyup' }, { name: 'mousedown' }, { name: 'mouseup' }, { name: 'cut' }, { name: 'paste' }, ]; var i = [/^e\-m/i]; function m(i) { if (!(this instanceof m)) throw new TypeError('SymbolSearch is a constructor'); if ( (!(i = i || {}).dontUseInputParser && e.enabled('symbol_search_parser_mixin'), (this._inputElement = $(i.input).get(0)), !this._inputElement) ) throw new TypeError( 'options.input must be a DOM element, jQuery object or selector', ); if ( ((this.$list = $(i.list).eq(0)), 0 === this.$list.size() && delete this.$list, void 0 !== i.callback) ) { if ('function' != typeof i.callback) throw new TypeError('options.callback must be function'); this._callback = i.callback; } if (void 0 !== i.onValueChanged) { if ('function' != typeof i.onValueChanged) throw new TypeError( 'options.onValueChanged must be function', ); this._onValueChanged = i.onValueChanged; } if (void 0 !== i.onEmptyApply) { if ('function' != typeof i.onEmptyApply) throw new TypeError('options.onEmptyApply must be function'); this._onEmptyApply = i.onEmptyApply; } if ( (i.ignoreInterval && (this._ignoreInterval = !0), m.resetStoredInterval(), i.hidePro && (this._hidePro = !0), i.allowMultipleSymbols && (this._allowMultipleSymbols = !0), void 0 !== i.onParse) ) { if ('function' != typeof i.onParse) throw new TypeError('options.onParse must be function'); this._onParse = i.onParse; } (this._state = {}), (this._resolveViaSymbolSearchId = null), (this.acceptEmpty = !!i.acceptEmpty), $(this._inputElement).data('symbol-search-instance', this); for ( var n = (this._boundListener = this._eventListener.bind(this)), s = (this.boundTimeoutListener = function (t) { setTimeout(function () { n(t); }, 0); }), o = 0; o < t.length; o++ ) t[o].immediate ? $(this._inputElement).on(t[o].name, n) : $(this._inputElement).on(t[o].name, s); (this._boundOnKeyDown = this._onKeyDown.bind(this)), (this._boundOnKeyPress = this._onKeyPress.bind(this)), $(this._inputElement) .on('keydown', this._boundOnKeyDown) .on('keypress', this._boundOnKeyPress), this._eventListener(), i.autoFocus && m.registerAutoFocus(this); } function L(t, e) { var i = ChartApiInstance.supportedSymbolsTypes(); x() && (i = i.filter(function (t) { return 'quandl' !== t.value && 'economic' !== t.value; })); var n = TVSettings.getValue('symboledit.filter'); return ( !i.some(function (t) { return t.value === n; }) && i.length > 0 && (n = i[0].value), 0 !== i.length && (i.forEach(function (i) { var s = i.value, o = $('') .attr('href', '#' + s) .text($.t(i.name)); s === n && o.addClass('active'), o.on('click', function (i) { i.preventDefault(), e.find('.type-filter').removeClass('active'), $(this).addClass('active'), t.typeFilter(s), TVSettings.setValue('symboledit.filter', s); }), o.appendTo(e); }), t.typeFilter(n), !0) ); } function A(t, e) { var i = ChartApiInstance.supportedExchangesList(); i.reduce(function (t, e) { return (t[e.value] = e.name), t; }, k); var n, s = ((n = TVSettings.getValue('symboledit.exchangefilter')), /_MINI$/.test(n) ? '' : n); if ('bovespa' !== TradingView.widgetCustomer) { if (0 === i.length) return !1; var o = $( '
', ).appendTo(e); return V(t, i, s, o), t.setExchangeFilter(s), !0; } } (m.registerAutoFocus = function (t) { if ( (t instanceof jQuery && (t = t.data('symbol-search-instance')), !(t instanceof m)) ) throw new TypeError( 'arg must be an SymbolSearch instance of jQuery input with bound SymbolSearch object', ); o.registerListener( 'symbolEdit', function (t) { if (E(t)) { t.preventDefault(), this.resetState(), (this._skipAutoFocus = !0), this._inputElement.focus(); var e = String.fromCharCode(t.charCode); 'function' == typeof this._setInputValue ? this._setInputValue(e) : (this._inputElement.value = e), this._eventListener(); } }.bind(t), ); }), (m.prototype.searchRequestDelay = 0), (m.setSearchRequestDelay = function (t) { m.prototype.searchRequestDelay = t; }), (m.prototype.resetState = function () { this._state = {}; }), (m.prototype.typeFilter = function (t) { if (!(arguments.length > 0)) return this._state.typeFilter; t !== this._state.typeFilter && (null == t ? delete this._state.typeFilter : (this._state.typeFilter = t + ''), delete this._state.keepListFor, this._onSelectionChanged(), this.selectExchangeFilter()); }), (m.prototype.setExchangeFilter = function (t) { t !== this._state.exchangeFilter && (null == t ? delete this._state.exchangeFilter : (this._state.exchangeFilter = t + ''), delete this._state.keepListFor, this._onSelectionChanged()); }), (m.prototype.setTradableFilter = function (t) { t !== this._state.tradableFilter && ((this._state.tradableFilter = t), this._onSelectionChanged()); }), (m.prototype.getExchangeFilter = function () { return this._state.exchangeFilter; }), (m.prototype.destroy = function () { $(this._inputElement).off(), $(this._inputElement).removeData('symbol-search-instance'); }), (m.prototype._moveSelection = function (t, e) { if (this.$list) { var i, n = this.$list.find('table.symbol-edit-popup'), s = n.find('tr:not(.hidden)'), o = n .find('tr.symbol-edit-popup-active') .removeClass('symbol-edit-popup-active'), r = 0 !== o.length ? s.index(o) : -1; if ( r !== (i = 1 === t ? o.get(0) === s.get(-1) ? 0 : r + t : Math.max(-1, r + t)) ) { var a = s.get(i); if (a) { var l = this._getItemByElement(a); if (P.isRoot(l)) { var c = a.getAttribute('data-root'); a.classList.add('symbol-edit-popup-active'), this._scrollHighlightIntoView(), c ? ((this._state.highlightedItem = null), (this._selectedGroupRoot = c)) : ((this._state.highlightedItem = l), this._replaceCurrentSymbol(e)); } else delete this._selectedGroupRoot, this._highlightItem(l, !0, e); } } } }), (m.prototype._groupToggleCollapsed = function (t, e) { this._groupListHandler && this._groupListHandler.toggleCollapsed(t, e); }), (m.prototype._onKeyDown = function (t) { (t.keyCode !== u.DOWN_ARROW && t.keyCode !== u.UP_ARROW) || (this._moveSelection(t.keyCode === u.DOWN_ARROW ? 1 : -1, !0), t.preventDefault(), t.stopPropagation()), t.keyCode === u.ENTER && t.stopPropagation(), !this._selectedGroupRoot || (t.keyCode !== u.LEFT_ARROW && t.keyCode !== u.RIGHT_ARROW) || (this._groupToggleCollapsed( this._selectedGroupRoot, t.keyCode === u.LEFT_ARROW, ), t.preventDefault()); }), (m.prototype._onKeyPress = function (t) { if (t.keyCode === u.DOWN_ARROW || t.keyCode === u.UP_ARROW) { if (t.charCode) return; if (this._boundOnKeyDown) return ( $(this._inputElement).off( 'keydown', this._boundOnKeyDown, ), delete this._boundOnKeyDown, void t.preventDefault() ); this._moveSelection(t.keyCode === u.DOWN_ARROW ? 1 : -1), t.preventDefault(); } t.keyCode === u.ENTER && (this._selectedGroupRoot ? (this._groupToggleCollapsed(this._selectedGroupRoot, !1), t.preventDefault()) : this.acceptTypeIn()); }), (m.prototype._eventListener = function (t, i) { var n = this._inputElement, s = this._getInputValue(); e.enabled('uppercase_instrument_names') && (s = s.toUpperCase()); var o = !1, r = !1; this._state.value !== s && (this._state.hasOwnProperty('value') && this._onValueChanged && this._onValueChanged(s), (this._state.value = s), (o = !0), this._inputParserMixin && this._inputParserMixin.parse()), this._fixIntervalCase(); var a = this._limitInputSelectionValue('selectionStart'); this._state.selectionStart !== a && ((this._state.selectionStart = a), (r = !0)); var l = this._limitInputSelectionValue('selectionEnd'); if ( (this._state.selectionEnd !== l && ((this._state.selectionEnd = l), (r = !0)), this._state.selectionDirection !== n.selectionDirection && ((this._state.selectionDirection = n.selectionDirection), (r = !0)), o || (r && this._inputParserMixin)) ) { this._onSelectionChanged(void 0, i); var c = !1; this._getInputValue() !== this._state.value && (this._setInputValue(this._state.value), (c = !0)), (c || this._state.selectionStart !== this._limitInputSelectionValue('selectionStart') || this._state.selectionEnd !== this._limitInputSelectionValue('selectionEnd')) && n.setSelectionRange && n.setSelectionRange( this._state.selectionStart, this._state.selectionEnd, this._state.selectionDirection, ); } }), (m.prototype._fixIntervalCase = function () { if (this._selectionInsideInterval()) { var t = m.detachInterval(this._inputElement.value); /[a-z]/.test(t.detached) && (this._inputElement.value = t.rest + t.detached.toUpperCase()); } }), (m.prototype._selectionInsideInterval = function (t) { if (this._ignoreInterval) return !1; var e = m.detachInterval(this._inputElement.value); return ( !!e && ('string' == typeof t ? this._inputElement[t] > e.rest.length : this._inputElement.selectionStart > e.rest.length && this._inputElement.selectionEnd > e.rest.length) ); }), (m.prototype._limitInputSelectionValue = function (t) { return this._selectionInsideInterval(t) ? m.detachInterval(this._inputElement.value).rest.length : t in this._inputElement ? this._inputElement[t] : this._inputElement.value.length; }), (m.prototype._getInputValue = function () { if (this._ignoreInterval) return this._inputElement.value; var t = m.detachStoreInterval(this._inputElement.value); return ( $(this._inputElement).toggleClass( 'interval-error', m.intervalError(), ), t ); }), (m.prototype._setInputValue = function (t) { this._ignoreInterval ? (this._inputElement.value = t) : (this._inputElement.value = m.recallAttachInterval(t)); }), (m.prototype._onSelectionChanged = function (t, e) { var n = this; function s(t, e, i, s, o) { (n._state.contextTicker = t), (n._state.contextExchange = e), (n._state.contextType = i), (n._state.contextTradable = o), (n._state.keepListFor && n._state.keepListFor === s) || (n._getSuggestList(), delete n._state.keepListFor); } if ( !i.some(function (t) { return t.test(n._state.value); }) && (this._isSpreadInInput() || (this._inputParserMixin && !0 !== e)) ) this._inputParserMixin.onSelectionChanged(s); else if (this.$list) { this._state._selectedTicker = null; var o = this._state.value; this._isSpreadInInput() && this._state.contextToken && (o = this._state.contextToken.value), s( o, this.getExchangeFilter(), this._state.typeFilter, o, this._state.tradableFilter, ); } }), (m.prototype._clearSelectionState = function () { delete this._state.contextTicker, delete this._state.contextExchange, delete this._state.contextType, delete this._state.contextToken, delete this._state.keepListFor; }), (m.prototype._clearSearchTimeout = function () { this._searchTimeout && (clearTimeout(this._searchTimeout), (this._searchTimeout = null)); }), (m.prototype._doGetSuggestList = function () { this._clearSearchTimeout(); var t = x(), e = this._state.contextTicker || '', i = this._state.contextExchange || this.getExchangeFilter() || '', n = this._state.typeFilter || '', s = t && this._state.tradableFilter, o = this._getUnhideSymbolSearchGroups(), r = window.language || ''; this._showLoading(); var a = this; ChartApiInstance.searchSymbols( e, i, n, r, !1, !1, t, s, o, function (t) { e !== (a._state.contextTicker || '') || i !== (a._state.contextExchange || a.getExchangeFilter() || '') || n !== (a._state.typeFilter || '') || (n === p.types.QUANDL && (t = a._processQuandlResponse(t)), a._renderSuggestList(t), a._onResponse(t)); }, ); }), (m.prototype._getSuggestList = function () { this._clearSearchTimeout(), (this._searchTimeout = setTimeout( this._doGetSuggestList.bind(this), m.prototype.searchRequestDelay, )); }), (m.prototype._showLoading = function () { if (this.$list && !this._spinner) { this._clearSuggestList(); var t = $('
').appendTo( this.$list, ); this._spinner = new a('medium').spin(t.get(0)); } }), (m.prototype._groupContracts = function (t) { for ( var e = ChartApiInstance.futuresRegex(), i = {}, n = [], s = 0; s < t.length; ++s ) { var o = t[s]; if (o.prefix || Array.isArray(o.contracts)) return t; if ('futures' === o.type) { var r = e.exec(o.symbol); if (r) { var a, l = r[1]; l in i ? (a = i[l]) : ((a = n.length), (i[l] = a), n.push({ type: o.type, symbol: l, exchange: o.exchange, description: o.description, full_name: o.exchange + ':' + l, contracts: [], })), n[a].contracts.push(o); } else n.push(o); } else n.push(o); } return n; }), (m.prototype._renderSuggestList = function (t) { if (this.$list) { (t = this._groupContracts(t)), (w = h('futures-descriptions')); var i = this, n = this._state; this._clearSuggestList(); var s = c(n.contextTicker).trim(), o = new RegExp( s.replace(' ', '|'), 'i' + (s.length > 1 ? 'g' : ''), ); if ( (delete n.highlightedItem, this._hidePro && (t = t.filter(function (t) { return !t.params || -1 === t.params.indexOf('pro'); })), 0 !== t.length) ) { var r = document.createElement('table'); r.setAttribute('class', 'symbol-edit-popup'); var a = new m.GroupListHandler(r, o, {}), l = null; this._renderedResponse = []; TVSettings.getBool('fxcm_cfd', !1); for (var p = 0; p < t.length; p++) { var u = t[p]; a.append(u), l || u.ticker !== n.contextTicker || u.exchange !== n.contextExchange || (l = u), this._renderedResponse.push(u); } e.enabled('expand_symbolsearch_items') || a.collapse(), (this._groupListHandler = a), l && this._highlightItem(u), $(r) .on('click', 'tr', function (t) { if (!t.isDefaultPrevented()) { t.preventDefault(); var e = i._getItemByElement(this); e && e.full_name && (i._isSpreadInInput() ? i._highlightItem(e, !0, !1) : i.accept(e.full_name, e.ticker)); } }) .appendTo(this.$list); } else this.$list.html( '
' + $.t('No symbols matched your criteria') + '
', ); } }), (m.prototype._isEmptySuggestList = function () { return !Boolean( this._renderedResponse && this._renderedResponse.length, ); }), (m.prototype._isSpreadInInput = function () { return ( this._inputParserMixin && this._state.parsed && this._state.parsed.length > 1 ); }), (m.prototype._getItemByElement = function (t) { return this._renderedResponse && this._groupListHandler ? this._groupListHandler.getItemByTicker( t.getAttribute('data-item-ticker'), ) : null; }), (m.prototype._getElementByItem = function (t) { if (!this._renderedResponse || !this.$list) return null; var e = P.itemTicker(t); return this.$list .get(0) .querySelector('tr[data-item-ticker="' + e + '"]'); }), (m.prototype._highlightItem = function (t, e, i) { var n = this._state; if (n.highlightedItem) { var s = this._getElementByItem(n.highlightedItem); s && $(s).removeClass('symbol-edit-popup-active'); } n.highlightedItem = t; var o = this._getElementByItem(n.highlightedItem); o && ($(o).addClass('symbol-edit-popup-active'), this._scrollHighlightIntoView()), e && this._replaceCurrentSymbol(i); }), (m.prototype._scrollHighlightIntoView = function () { var t = this.$list.find('tr.symbol-edit-popup-active'); t.length && (t.offset().top < this.$list.offset().top ? this.$list.scrollTop( this.$list.scrollTop() - (this.$list.offset().top - t.offset().top), ) : t.offset().top + t.outerHeight() > this.$list.offset().top + this.$list.outerHeight() && this.$list.scrollTop( this.$list.scrollTop() + (t.offset().top + t.outerHeight() - (this.$list.offset().top + this.$list.outerHeight())), )); }), (m.prototype._clearSuggestList = function () { (this._renderedResponse = null), this._spinner && (this._spinner.stop(), delete this._spinner), this.$list && this.$list.empty(); }), (m.prototype._showErrorNotice = function () { this.$list && (this._clearSuggestList(), this.$list.text('Invalid expression')); }), (m.prototype._replaceCurrentSymbol = function (t) { var e = this._state; if (e.highlightedItem) { var i = e.highlightedItem, n = '', s = 0; if ( this._isSpreadInInput() || (this._inputParserMixin && !0 !== t) ) { var o = this._inputParserMixin.replaceCurrentSymbol(i); if (!o.ok) return; (n = o.newValue), (s = o.newCaretPos), (e.keepListFor = o.keepListFor); } else (this._state._selectedTicker = i.ticker || i.symbol), (e.keepListFor = this._state._selectedTicker), (s = (n = !0 === t && i.full_name && this._inputParserMixin ? i.full_name : i.symbol).length); this._setInputValue(n), this._inputElement.setSelectionRange ? this._inputElement.setSelectionRange(s, s) : this._inputElement.select(), this._eventListener(void 0, t); } }), (m.prototype.splitAndAcceptUserInput = function () { for ( var t = this._getInputValue().split(','), e = 0; e < t.length; e++ ) this.acceptSymbolIn(t[e]); }), (m.prototype.acceptSymbolIn = function (t) { var e, i; this._inputParserMixin ? (e = this._inputParserMixin.parseSymbol(t)) : ((e = t), (i = this._state._selectedTicker || t)), this.accept(e, i); }), (m.prototype.acceptTypeIn = function () { this._allowMultipleSymbols ? this.splitAndAcceptUserInput() : this.acceptSymbolIn(this._getInputValue()); }), (m.prototype.accept = function (t, e) { var i = this; !(function () { if ((e = e || t) || ('' === e && i.acceptEmpty)) { delete i._state.keepListFor; var n = i._ignoreInterval ? void 0 : m.getInterval(!0); (i._inputElement.value = t), i._eventListener(), i._callback && i._callback(e, n), $(i._inputElement).trigger('accept-symbol', [e]); } })(); }), (m.prototype.bindListWrapper = function (t) { if (0 === (t = $(t).eq(0)).size()) throw new TypeError( 'element must be a DOM element, jQuery object or selector', ); (this.$list = t), this._clearSelectionState(), this._eventListener(); }), (m.prototype.removeListWrapper = function () { delete this.$list, this._clearSuggestList(), this._clearSelectionState(), this._eventListener(); }), (m.prototype.selectExchangeFilter = function () { this.$filterContainer.find('.exchange-filter').hide(), this._state.typeFilter === p.types.QUANDL ? this.$filterContainer.find('#quandl-filter').show() : this._state.typeFilter !== p.types.ECONOMIC && this.$filterContainer.find('#exchange-filter').show(); }), (m.prototype._onResponse = function (t) { t.length > 0 && this._state.typeFilter === p.types.QUANDL && this._showNotification(); }), (m.prototype._showNotification = function () { if ( TVSettings.getBool('symboledit.show_quandl_notification', !0) ) { var t = $.t( 'Quandl is a huge financial database that we have connected to TradingView. Most of its data is EOD and is not updated in real-time, however the information may be extremely useful for fundamental analysis.', ) + '
' + $.t('Read our blog for more info!') + '', e = $('
').prependTo( this.$list, ); e.html(t), e.find('a').click(function (t) { t.preventDefault(); var e = $(this).attr('href'); window.open(e, '_blank'); }), $('') .appendTo(e) .click(function () { TVSettings.setValue( 'symboledit.show_quandl_notification', !1, ), e.remove(); }); } }), (m.prototype._processQuandlResponse = function (t) { return t.datasets .filter(function (t) { return !t.premium; }) .map(function (t) { return { description: t.name, exchange: t.database_code, full_name: 'QUANDL:' + t.database_code + '/' + t.dataset_code, params: ['eod'], symbol: t.dataset_code, type: 'quandl', }; }); }), (m.prototype._getUnhideSymbolSearchGroups = function () { var t = '', e = I(); if (e) { var i = e.metainfo().configFlags .supportUnhideSymbolSearchGroups; e.connectionStatus() === CONNECTSTATUSES.CONNECTED && i && (t = e.unhideSymbolSearchGroups().join(',')), tradingService().trackEvent( 'Symbol Search Tradable checkbox', x() && this._state.tradableFilter ? 'on' : 'off', ); } return t; }), (m.prototype.forceFocus = function () { this._inputElement.focus(); }), (m.createSuggestListRow = function (t, e, i, n) { n || (n = {}); var s = document.createElement('tr'), o = 'symbol-edit-popup'; n.addClass && (o += ' ' + n.addClass), s.setAttribute('class', o); var a = document.createElement('td'); a.setAttribute( 'class', 'symbol-edit-popup-td name apply-overflow-tooltip apply-overflow-tooltip--allow-text', ); var l = t.symbol.replace(e, '$&'), c = n.nameContent || l; t.broker_symbol && (c = c + ' (' + t.broker_symbol.replace(e, '$&') + ')'), (a.innerHTML = c); var p = document.createElement('td'); p.setAttribute( 'class', 'symbol-edit-popup-td desc apply-overflow-tooltip', ); var u = t.description.toUpperCase(); if (w && t.contractDescription) { var h = R.exec(t.contractDescription); u += h ? ' (' + C(i, h[1]) + ' ' + h[2] + ')' : ' (' + C(i, t.contractDescription) + ')'; } p.innerHTML = e.test(t.symbol) ? u : u.replace(e, '$&'); var d = document.createElement('td'); d.setAttribute( 'class', 'symbol-edit-popup-td type apply-overflow-tooltip', ); var f = ''; if (n.typeContent) f = n.typeContent; else { t.params && ~t.params.indexOf('eod') && (f = 'eod '); var g = t.typespecs && t.typespecs.includes('cfd'), _ = r(t.type, g); t.exchange ? (f += _ + ' - ' + T(t)) : (f += _); } d.innerHTML = f; var y = document.createElement('td'); y.setAttribute( 'class', 'symbol-edit-popup-td flag apply-overflow-tooltip', ), (y.innerHTML = m.getItemFlag(t)); var v = y.getElementsByTagName('svg')[0]; return ( v && v.setAttribute('class', 'flag'), s.appendChild(a), s.appendChild(p), s.appendChild(d), s.appendChild(y), s ); }), (m.getItemFlag = function (t) { return ''; }); var F, O, V = function (t, i, n, o) { !(i = s.displayedExchangesFilter(i)).some(function (t) { return t.value === n; }) && i.length > 0 && (n = i[0].value); var r = $('
', ownerDocument: t.ownerDocument, }); d.positionDialog(e); var i, n, s, o = e .find('._tv-dialog-content') .addClass('symbol-search-dialog'), r = o.find('.results'), a = o.find('input').get(0); if ( (t.initialValue && (a.value = t.initialValue), 'selectionStart' in a && (a.selectionStart = a.selectionEnd = a.value.length), a.focus(), y()) ) t.ignoreInterval || ((n = m.getInputValueGetter(a)), (s = m.getInputValueSetter(a))), (i = SymbolSearchInputParserMixin.addSpreadActions( o.find('.spread-actions'), a, n, s, )); var l = new m({ input: a, list: o.find('.results').get(0), callback: function (e, i) { t.callback && t.callback(e, i), d.destroy('Symbol Search'); }, onParse: i, ignoreInterval: t.ignoreInterval, }), c = o.find('.filter'); l.$filterContainer = c; var p = L(l, c), u = D(l); return ( p || u || c.attr('style', 'display: none'), d.resizeContent(e.height(), r), d.applyHandlers(e), d.positionDialog(e), e.on('destroy', function () { TVSettings.setValue( 'symboledit.dialog_last_entry', a.value, ); }), e ); } }), (m.bindToInput = function (t, i) { (i = i || {}), (t = $(t).eq(0)); var s, o = g(), r = t.prop('ownerDocument'), a = i.overlapManager || f(r), c = i.callback, p = null, h = null, d = !1, _ = null; function E() { _ && (a.removeWindow(o), C.removeListWrapper(), _.off(), _.remove(), (_ = null), l.hide(), 'function' == typeof i.onPopupClose && i.onPopupClose()); } function w(t) { t.preventDefault(); } var I, x, T = i.spreadActions && $(i.spreadActions).eq(0); T && T.size() && y() && (i.ignoreInterval || ((I = m.getInputValueGetter(t.get(0))), (x = m.getInputValueSetter(t.get(0)))), (s = SymbolSearchInputParserMixin.addSpreadActions( T, t.get(0), I, x, ))); var C = new m({ input: t, onValueChanged: function () { if (!_) { var t = a.ensureWindow(o, { position: 'relative' }), n = (function (t, e, i) { var n = $( '
', ).appendTo(e), s = $('
').appendTo(n); (t.$filterContainer = s), L(t, s), D(t); var o = $('
').appendTo( n, ), r = $(t._inputElement), a = r.offset(); if ('relative' === i) var l = n.offset(), c = Math.min( 0, $(window).width() - l.left - n.outerWidth(), ), p = 1; else (c = Math.max( 0, Math.min( a.left, $(window).width() - n.outerWidth(), ), )), (p = a.top + r.outerHeight() + 1); n.css('left', c), n.css('top', p); var u = s.outerHeight(), h = $(window).scrollTop(), d = r.height(), f = (TradingView.isMobile.any() ? parseInt(window.screen.height, 10) : parseInt($(window).height(), 10)) - (a.top - h) - d / 2; return ( o.css('maxHeight', f - d - u + 'px'), { popup: n, listWrapper: o } ); })(C, t, i.position); (_ = n.popup), C.bindListWrapper(n.listWrapper), _.on('focus', w), _.on('click', w), _.on('mousedown', w), _.on('focus', '*', w), _.on('click', '*', w), _.on('mousedown', '*', w), 'function' == typeof i.onPopupOpen && i.onPopupOpen(n.popup); } if (e.enabled('charting_library_base')) { var s = this._state; if (s.keepListFor) if (s.highlightedItem) { var r = s.highlightedItem, l = this._getInputValue(); e.enabled('uppercase_instrument_names') && (l = l.toUpperCase()), r.symbol !== l && delete this._state.keepListFor; } else delete this._state.keepListFor; } }, callback: function (e, n) { E(), ('function' == typeof h && h(e, n)) || ('function' == typeof c && c(e, n), 'function' == typeof p && p(e, n)), i.clearAfterAccept && t.val(''), i.keepFocus ? t.get(0).focus() : t.get(0).blur(), C.resetState(); }, hidePro: i.hidePro, autoFocus: i.autoFocus, onEmptyApply: i.onEmptyApply, onParse: s, acceptEmpty: i.acceptEmpty, dontUseInputParser: i.dontUseInputParser, allowMultipleSymbols: i.allowMultipleSymbols, ignoreInterval: i.ignoreInterval, }), k = !1, R = !0; function A(e) { b(t, e), C.resetState(); } if ( (TradingView.isMobile.iOS() && $('body').css('cursor', 'pointer'), t.on('focus', function (e, i) { (k = !0), (d = !0), C._skipAutoFocus ? delete C._skipAutoFocus : setTimeout(function () { k && t.get(0).select(); }, 0); }), t.on('blur', function (e) { var i, n, s, o = this; if ( _ && ((i = document.activeElement), (n = _.is(i)), (s = _.has(i).length > 0), (-1 !== navigator.userAgent.indexOf('Trident') || -1 !== navigator.userAgent.indexOf('MSIE')) && (n || s)) ) return ( e.preventDefault(), e.stopImmediatePropagation(), void setTimeout(function () { t.focus(); }, 0) ); if ( (TradingView.isMobile.iOS() && R && ((R = !1), (k = !0)), TradingView.isMobile.iOS() && k && null === e.relatedTarget) ) { var r = function (t) { $(t.target).closest(_).length || ($(o).is($(t.target)) ? $(document).off('touchend', 'body', r) : ((k = !1), setTimeout(function () { E(), $(document).off('touchend', 'body', r); }, 0))); }; $(document).on('touchend', 'body', r); } else k = !1; setTimeout(function () { k || E(); }, 0); }), i.syncWithChartWidget) ) { A(!0), n.seriesShortSymbol.subscribe(function () { A(!0); }), (p = function (t, e) { (d = !(t || e)), t && n.symbol.setValue(t), e && S(e); }), (h = v), i.syncOnBlur && t.on('blur', function () { d && (A(!0), (d = !1)); }); var F = function () { t.get(0).blur(), A(!1); }; t.on('keypress', function (t) { t.keyCode === u.ESC && F(); }), t.on('keydown', function (t) { t.keyCode === u.ESC && F(); }); } return C; }), (P.isRoot = function (t) { return !(!t || !Array.isArray(t.contracts)); }), (P.itemTicker = function (t) { var e = P.isRoot(t); return (t.ticker || t.full_name) + (e ? '___root' : ''); }), (P.prototype.addRoot = function (t, e) { this._currentTbody = null; var i = document.createElement('tbody'); this._container.appendChild(i); var n = this; e.addEventListener('click', function (i) { i.preventDefault(), e.classList.contains('collapsed') ? n.expand(t) : n.collapse(t); }), e.setAttribute('data-root', t), i.appendChild(e), (this._roots[t] = { titleRow: e, tbody: i }); }), (P.prototype.append = function (t) { var e = null, i = null; if (P.isRoot(t)) { var n = t.symbol, s = (t.exchange || 'unknown') + '_' + n; (e = m.createSuggestListRow( t, this._tickerRegExp, this._translationCache, { nameContent: '
' + n.replace(this._tickerRegExp, '$&') + '
', typeContent: C(this._translationCache, t.type) + (t.exchange && ' - ' + T(t)), addClass: 'group-title', }, )), this._roots[s] || this.addRoot(s, e); for (var o, r, a = 0; a < t.contracts.length; ++a) (o = t.contracts[a]), (r = m.createSuggestListRow( o, this._tickerRegExp, this._translationCache, )), (i = o.ticker || o.full_name), (this._itemsByTicker[i] = o), r.setAttribute('data-item-ticker', i), this._roots[s].tbody.appendChild(r); } else this._currentTbody || ((this._currentTbody = document.createElement('tbody')), this._container.appendChild(this._currentTbody)), (e = m.createSuggestListRow( t, this._tickerRegExp, this._translationCache, )), this._currentTbody.appendChild(e); (i = P.itemTicker(t)), (this._itemsByTicker[i] = t), e.setAttribute('data-item-ticker', i); }), (P.prototype.toggleCollapsed = function (t, e) { if (t) { var i = this._roots[t]; i && ($(i.titleRow).toggleClass('collapsed', !!e), $(i.tbody) .find('tr:not(.group-title)') .toggleClass('hidden', !!e)); } else for (var t in this._roots) this.toggleCollapsed(t, e); }), (P.prototype.collapse = function (t) { this.toggleCollapsed(t, !0); }), (P.prototype.expand = function (t) { this.toggleCollapsed(t, !1); }), (P.prototype.getItemByTicker = function (t) { return this._itemsByTicker[t] || null; }), (m.GroupListHandler = P), (m.detachInterval = function (t) { var e = /,[^,]*$/i.exec(t) || []; if (e[0]) return { rest: t.substr(0, t.length - e[0].length), detached: e[0], }; }), (F = ''), (O = null), (m.resetStoredInterval = function () { (F = ''), (O = null); }), (m.detachStoreInterval = function (t) { var e = m.detachInterval(t); return e ? ((F = e.detached), (O = _.normalize(F)), e.rest) : (m.resetStoredInterval(), t); }), (m.recallAttachInterval = function (t) { return t + F; }), (m.getInterval = function (t) { var e = O; return !0 === t && m.resetStoredInterval(), e; }), (m.getInputValueGetter = function (t) { return function () { return m.detachStoreInterval(t.value); }; }), (m.getInputValueSetter = function (t) { return function (e) { t.value = m.recallAttachInterval(e); }; }), (m.intervalError = function () { return !(!F || /^,\s*$/.test(F) || O); }), m ); })(); t.exports = L; }.call(this, i('Kxc7'))); }, qdOW: function (t, e, i) { 'use strict'; var n = i('Kxc7'); (t.exports.displayedExchangesFilter = function (t) { return ( n.enabled('symbol_search_limited_exchanges') && (t = t.filter(function (t) { return !('bitcoin' === t.flag || t.hideInSymbolSearch); })), t ); }), (t.exports.sortExchangesListByFlagIfNeeded = function (t) { return t; }); }, w3Pp: function (t, e, i) { 'use strict'; i.r(e), i.d(e, 'marketType', function () { return r; }); i('YFKU'), i('HbRj'); var n = new Map(), s = { context: 'market_type' }, o = { cfd: window.t('cfd', s), bitcoin: window.t('crypto', s), crypto: window.t('crypto', s), dr: window.t('dr', s), forex: window.t('forex', s), futures: window.t('futures', s), index: window.t('index', s), stock: window.t('stock', s), }; function r(t, e) { var i = t + '_' + e, r = n.get(i); if (void 0 !== r) return r; var a = e ? window.t('{market_type} cfd', s).format({ market_type: t }) : o[t]; return n.set(i, a), a; } }, }, ]);