webpackJsonp([5, 30], { 1e3: function(e, o) { e.exports = ''; }, 1001: function(e, o) { e.exports = ''; }, 1002: function(e, o) { e.exports = ''; }, 1003: function(e, o) { e.exports = ''; }, 1004: function(e, o) { e.exports = ''; }, 1005: function(e, o) { e.exports = ''; }, 1006: function(e, o) { e.exports = ''; }, 1007: function(e, o) { e.exports = ''; }, 1008: function(e, o) { e.exports = ''; }, 1009: function(e, o, t) { 'use strict'; var n, i, l, s, a; t.d(o, 'a', function() { return a; }), (n = t(8)), (i = t.n(n)), (l = t(49)), t.n(l), (function(e) { function o(o) { return e.favorites.indexOf(o); } function t() { (e.favorites = []), Object(l.getJSON)('chart.favoriteDrawings', []).forEach(function(o) { e.favorites.push(o.tool || o); }), e.favoritesSynced.fire(); } function n() { Object(l.setJSON)('chart.favoriteDrawings', e.favorites); } (e.favorites = []), (e.favoritesSynced = new i.a()), (e.favoriteIndex = o), (e.saveFavorites = n), t(), l.onSync.subscribe(null, t); })(s || (s = {})), (function(e) { function o() { return s.favorites.slice(); } function t() { return s.favorites.length; } function n(e) { return e < 0 || e >= t() ? '' : s.favorites[e]; } function l(o) { return !r(o) && (s.favorites.push(o), s.saveFavorites(), e.favoriteAdded.fire(o), !0); } function a(o) { var t = s.favoriteIndex(o); return ( -1 !== t && (s.favorites.splice(t, 1), s.saveFavorites(), e.favoriteRemoved.fire(o), !0) ); } function r(e) { return -1 !== s.favoriteIndex(e); } function c(o, n) { if (n < 0 || n >= t()) return !1; var i = s.favoriteIndex(o); return ( -1 !== i && n !== i && (s.favorites.splice(i, 1), s.favorites.splice(n, 0, o), s.saveFavorites(), e.favoriteMoved.fire(o, i, n), !0) ); } (e.favoriteAdded = new i.a()), (e.favoriteRemoved = new i.a()), (e.favoriteMoved = new i.a()), (e.favoritesSynced = s.favoritesSynced), (e.favorites = o), (e.favoritesCount = t), (e.favorite = n), (e.addFavorite = l), (e.removeFavorite = a), (e.isFavorite = r), (e.moveFavorite = c); })(a || (a = {})); }, 1092: function(e, o) { e.exports = { wrap: 'wrap-1h7U5nKd-', scrollWrap: 'scrollWrap-3gtPS0Fe-', noScrollBar: 'noScrollBar-ieMwbfur-', content: 'content-YhoA_L2m-', icon: 'icon-2xObs8DI-', scrollBot: 'scrollBot-2HHpZNuf-', scrollTop: 'scrollTop-1eXi8ltS-', isVisible: 'isVisible-3zZOL3TO-', iconWrap: 'iconWrap-2Q69rfEO-', fadeBot: 'fadeBot-3JstnoWq-', fadeTop: 'fadeTop-3oJzNyTq-', }; }, 1093: function(e, o) { e.exports = { button: 'button-263WXsg--', bg: 'bg-1kRv1Pf2-', isBgFull: 'isBgFull-CmoDGRQP-', icon: 'icon-1Y-3MM9F-', hovered: 'hovered--MYZioUu-', isActive: 'isActive-2mI1-NUL-', isGrayed: 'isGrayed-1kWObWVr-', isTransparent: 'isTransparent-sRmateFl-', isHidden: 'isHidden-2VzaskeU-', }; }, 1094: function(e, o) { e.exports = { dropdown: 'dropdown-3_ASLzSj-', buttonWrap: 'buttonWrap-3fZWypJl-', control: 'control-1TyEfSIx-', arrow: 'arrow-1cFKS5Ok-', arrowIcon: 'arrowIcon-2wA7q8om-', isOpened: 'isOpened-22vLOY9o-', isGrayed: 'isGrayed-xr-mULNo-', }; }, 1095: function(e, o) { e.exports = { wrap: 'wrap-2I6DAtXG-', buttonIcon: 'buttonIcon-2rBwJ1QM-', item: 'item-31XunD5q-', hovered: 'hovered-2A1Cpat5-', button: 'button-21ihqWJ8-', }; }, 1096: function(e, o) { e.exports = { item: 'item-62xp8vsV-', enter: 'enter-21AyqfcZ-', enterActive: 'enterActive-kua-y7K8-', leave: 'leave-4EzZ54xf-', }; }, 1097: function(e, o) { e.exports = { container: 'container-3_8ayT2Q-', mirror: 'mirror-crJbq8d0-', background: 'background-Q1Fcmxly-', arrow: 'arrow-WcYWFXUn-', }; }, 1098: function(e, o) { e.exports = { drawingToolbar: 'drawingToolbar-U3_QXRof-', isHidden: 'isHidden-2d-PYkzV-', inner: 'inner-1xuW-gY4-', toggleButton: 'toggleButton-13QgefpG-', collapsed: 'collapsed-2trH0gCi-', group: 'group-2JyOhh7Z-', separator: 'separator-1BAqp1-l-', }; }, 701: function(e, o, t) { 'use strict'; function n(e) { var o, t = e.activeClass, n = e.children, i = e.className, l = e.icon, s = e.isActive, a = e.isBgFull, c = e.isGrayed, d = e.isHidden, p = e.isTransparent, v = e.onClick, z = e.title, u = e.buttonHotKey; return r.createElement( 'div', { className: h( A.button, i, s ? t : '', ((o = {}), (o['apply-common-tooltip common-tooltip-vertical'] = !!z), (o[A.isActive] = s), (o[A.isBgFull] = a), (o[A.isGrayed] = c), (o[A.isHidden] = d), (o[A.isTransparent] = p), o), ), onClick: v, title: z, 'data-tooltip-hotkey': u, }, r.createElement( 'div', { className: A.bg }, l && ('string' == typeof l ? r.createElement(T.a, { className: A.icon, icon: l }) : r.createElement('span', { className: A.icon }, l)), n, ), ); } function i(e) { var o = e.action, t = e.isActive, i = e.isBgFull, l = e.isHidden, s = e.isTransparent, a = e.toolName; return r.createElement(n, { icon: g.a[a].icon, isActive: t, isBgFull: i, isHidden: l, isTransparent: s, onClick: o, title: g.a[a].localizedName, }); } function l(e) { return r.createElement( 'svg', { xmlns: ie, width: '9', height: '27', viewBox: '0 0 9 27', className: h(ne.container, 'right' === e.direction ? ne.mirror : null), }, r.createElement( 'g', { fill: 'none', fillRule: 'evenodd' }, r.createElement('path', { className: ne.background, d: 'M4.5.5a4 4 0 0 1 4 4v18a4 4 0 1 1-8 0v-18a4 4 0 0 1 4-4z', }), r.createElement('path', { className: ne.arrow, d: 'M5.5 10l-2 3.5 2 3.5' }), ), ); } var s, a, r, c, h, d, p, v, z, u, g, m, w, f, M, T, L, x, b, y, C, _, B, N, A, k, S, E, D, I, P, F, R, O, W, V, H, j, G, U, K, Z, q, J, Q, Y, X, $, ee, oe, te, ne, ie, le, se, ae, re, ce; Object.defineProperty(o, '__esModule', { value: !0 }), (s = t(1)), t(11), (a = t(127)), (r = t(20)), (c = t(59)), (h = t(102)), (d = t(49)), (p = t(5)), (v = t(32)), (z = t(31)), (u = t(71)), (g = t(853)), (m = (function() { function e(e) { this._drawingsAccess = e || { tools: [], type: 'black' }; } return ( (e.prototype.isToolEnabled = function(e) { var o = this._findTool(e); return !(!o || !o.grayed) || ('black' === this._drawingsAccess.type ? !o : !!o); }), (e.prototype.isToolGrayed = function(e) { var o = this._findTool(e); return !(!o || !o.grayed); }), (e.prototype._findTool = function(e) { return this._drawingsAccess.tools.find(function(o) { return o.name === e; }); }), e ); })()), (w = [ [{ name: 'cursor' }, { name: 'dot' }, { name: 'arrow' }, { name: 'eraser' }], [ { name: 'LineToolTrendLine' }, { name: 'LineToolInfoLine' }, { name: 'LineToolTrendAngle' }, { name: 'LineToolHorzLine', shortcut: { keys: 'Alt+H', immediately: !0 } }, { name: 'LineToolHorzRay' }, { name: 'LineToolVertLine', shortcut: { keys: 'Alt+V', immediately: !0 } }, { name: 'LineToolCrossLine', shortcut: { keys: 'Alt+C', immediately: !0 } }, { name: 'LineToolArrow' }, { name: 'LineToolRay' }, { name: 'LineToolExtended' }, { name: 'LineToolParallelChannel' }, { name: 'LineToolDisjointAngle' }, { name: 'LineToolFlatBottom' }, null, ].filter(Boolean), [ { name: 'LineToolPitchfork' }, { name: 'LineToolSchiffPitchfork2' }, { name: 'LineToolSchiffPitchfork' }, { name: 'LineToolInsidePitchfork' }, { name: 'LineToolPitchfan' }, { name: 'LineToolGannSquare' }, { name: 'LineToolGannComplex' }, { name: 'LineToolGannFixed' }, { name: 'LineToolGannFan' }, { name: 'LineToolFibRetracement' }, { name: 'LineToolTrendBasedFibExtension' }, { name: 'LineToolFibSpeedResistanceFan' }, { name: 'LineToolFibTimeZone' }, { name: 'LineToolTrendBasedFibTime' }, { name: 'LineToolFibCircles' }, { name: 'LineToolFibSpiral' }, { name: 'LineToolFibSpeedResistanceArcs', }, { name: 'LineToolFibWedge' }, { name: 'LineToolFibChannel' }, ], [ { name: 'LineToolBrush' }, { name: 'LineToolRectangle' }, { name: 'LineToolRotatedRectangle' }, { name: 'LineToolEllipse' }, { name: 'LineToolTriangle' }, { name: 'LineToolPolyline' }, { name: 'LineToolBezierQuadro' }, { name: 'LineToolBezierCubic' }, { name: 'LineToolArc' }, ], [ { name: 'LineToolText' }, { name: 'LineToolTextAbsolute' }, { name: 'LineToolNote' }, { name: 'LineToolNoteAbsolute' }, { name: 'LineToolCallout' }, { name: 'LineToolBalloon' }, { name: 'LineToolPriceLabel' }, { name: 'LineToolArrowMarkLeft' }, { name: 'LineToolArrowMarkRight' }, { name: 'LineToolArrowMarkUp' }, { name: 'LineToolArrowMarkDown' }, { name: 'LineToolFlagMark' }, ], [ { name: 'LineTool5PointsPattern' }, { name: 'LineToolCypherPattern' }, { name: 'LineToolABCD' }, { name: 'LineToolTrianglePattern' }, { name: 'LineToolThreeDrivers' }, { name: 'LineToolHeadAndShoulders' }, { name: 'LineToolElliottImpulse' }, { name: 'LineToolElliottTriangle' }, { name: 'LineToolElliottTripleCombo' }, { name: 'LineToolElliottCorrection' }, { name: 'LineToolElliottDoubleCombo' }, { name: 'LineToolCircleLines' }, { name: 'LineToolTimeCycles' }, { name: 'LineToolSineLine' }, ], [ { name: 'LineToolRiskRewardLong' }, { name: 'LineToolRiskRewardShort' }, { name: 'LineToolPrediction' }, { name: 'LineToolDateRange' }, { name: 'LineToolPriceRange' }, { name: 'LineToolDateAndPriceRange' }, { name: 'LineToolBarsPattern' }, { name: 'LineToolGhostFeed' }, { name: 'LineToolProjection' }, ], ]), (f = t(206)), (M = t(313)), (T = t(300)), (L = t(194)), (x = t(1092)), (b = t(184)), (y = t(990)), (C = (function(e) { function o(o) { var t = e.call(this, o) || this; return ( (t._scroll = null), (t._handleScrollTop = function() { t.animateTo(Math.max(0, t.currentPosition() - (t.state.heightWrap - 50))); }), (t._handleScrollBot = function() { t.animateTo( Math.min( (t.state.heightContent || 0) - (t.state.heightWrap || 0), t.currentPosition() + (t.state.heightWrap - 50), ), ); }), (t._handleResizeWrap = function(e) { var o = e.height; t.setState({ heightWrap: o }); }), (t._handleResizeContent = function(e) { var o = e.height; t.setState({ heightContent: o }); }), (t._handleScroll = function() { var e = t.props.onScroll; e && e(t.currentPosition(), t.isAtTop(), t.isAtBot()), t._checkButtonsVisibility(); }), (t._checkButtonsVisibility = function() { var e, o, n, i, l; (t.props.isVisibleButtons || t.props.isVisibleFade) && ((e = t.state), (o = e.isVisibleTopButton), (n = e.isVisibleBotButton), (i = t.isAtTop()), (l = t.isAtBot()), i || o ? i && o && t.setState({ isVisibleTopButton: !1 }) : t.setState({ isVisibleTopButton: !0 }), l || n ? l && n && t.setState({ isVisibleBotButton: !1 }) : t.setState({ isVisibleBotButton: !0 })); }), (t.state = { heightContent: 0, heightWrap: 0, isVisibleBotButton: !1, isVisibleTopButton: !1, }), t ); } return ( s.c(o, e), (o.prototype.componentDidMount = function() { this._checkButtonsVisibility(); }), (o.prototype.componentDidUpdate = function(e, o) { (o.heightWrap === this.state.heightWrap && o.heightContent === this.state.heightContent) || this._handleScroll(); }), (o.prototype.currentPosition = function() { return this._scroll ? this._scroll.scrollTop : 0; }), (o.prototype.isAtTop = function() { return this.currentPosition() <= 1; }), (o.prototype.isAtBot = function() { return this.currentPosition() + this.state.heightWrap >= this.state.heightContent - 1; }), (o.prototype.animateTo = function(e, o) { if ((void 0 === o && (o = b.dur), this._scroll)) { var t = c.findDOMNode(this._scroll); Object(L.doAnimate)({ onStep: function(e, o) { t.scrollTop = o; }, from: t.scrollTop, to: Math.round(e), easing: b.easingFunc.easeInOutCubic, duration: o, }); } }), (o.prototype.render = function() { var e, o, t, n, i, l = this, s = this.props, a = s.children, c = s.isVisibleScrollbar, d = s.isVisibleFade, p = s.isVisibleButtons, v = this.state, z = v.heightContent, u = v.heightWrap, g = v.isVisibleBotButton, m = v.isVisibleTopButton; return r.createElement( M, { whitelist: ['height'], onMeasure: this._handleResizeWrap }, r.createElement( 'div', { className: x.wrap }, r.createElement( 'div', { className: h(x.scrollWrap, ((e = {}), (e[x.noScrollBar] = !c), e)), onScroll: this._handleScroll, ref: function(e) { return (l._scroll = e); }, }, r.createElement( M, { onMeasure: this._handleResizeContent, whitelist: ['height'] }, r.createElement('div', { className: x.content }, a), ), ), d && r.createElement('div', { className: h(x.fadeTop, ((o = {}), (o[x.isVisible] = m && z > u), o)), }), d && r.createElement('div', { className: h(x.fadeBot, ((t = {}), (t[x.isVisible] = g && z > u), t)), }), p && r.createElement( 'div', { className: h(x.scrollTop, ((n = {}), (n[x.isVisible] = m && z > u), n)), onClick: this._handleScrollTop, }, r.createElement( 'div', { className: x.iconWrap }, r.createElement(T.a, { icon: y, className: x.icon }), ), ), p && r.createElement( 'div', { className: h(x.scrollBot, ((i = {}), (i[x.isVisible] = g && z > u), i)), onClick: this._handleScrollBot, }, r.createElement( 'div', { className: x.iconWrap }, r.createElement(T.a, { icon: y, className: x.icon }), ), ), ), ); }), (o.defaultProps = { isVisibleScrollbar: !0 }), o ); })(r.PureComponent)), (_ = t(852)), (B = t(324)), (N = t(844)), (A = t(1093)), (k = t(133)), (S = t(335)), (E = t(872)), (D = t(1094)), (I = t(1008)), (P = (function(e) { function o(o) { var t = e.call(this, o) || this; return ( (t._toggleDropdown = function(e) { t.setState({ isOpened: void 0 !== e ? e : !t.state.isOpened }); }), (t._handleClose = function() { t._toggleDropdown(!1); }), (t._getDropdownPosition = function() { if (!t._control) return { x: 0, y: 0 }; var e = t._control.getBoundingClientRect(); return { x: e.left + e.width + 1, y: e.top - 6 }; }), (t._handleClickArrow = function() { t._toggleDropdown(); }), (t._handleTouchStart = function() { t.props.onClickButton(), t._toggleDropdown(); }), (t._handlePressStart = function() { if (Modernizr.touch) t._longPressDelay || t.props.onClickButton(); else { if (t._doubleClickDelay) return ( clearTimeout(t._doubleClickDelay), delete t._doubleClickDelay, void t._toggleDropdown(!0) ); t._doubleClickDelay = setTimeout(function() { delete t._doubleClickDelay, t._longPressDelay || t.props.onClickButton(); }, 175); } t._longPressDelay = setTimeout(function() { delete t._longPressDelay, t._toggleDropdown(!0); }, 300); }), (t._handlePressEnd = function() { t._longPressDelay && (clearTimeout(t._longPressDelay), delete t._longPressDelay, t.state.isOpened ? t._toggleDropdown(!1) : t.state.isOpened || !t.props.isActive || Modernizr.touch || t._toggleDropdown(!0)); }), (t.state = { isOpened: !1 }), t ); } return ( s.c(o, e), (o.prototype.render = function() { var e, o = this, t = this.props, i = t.buttonActiveClass, l = t.buttonClass, s = t.buttonIcon, a = t.buttonTitle, c = t.buttonHotKey, d = t.children, p = t.isActive, v = t.isGrayed, z = t.onClickWhenGrayed, u = this.state.isOpened; return r.createElement( 'div', { className: h( D.dropdown, ((e = {}), (e['apply-common-tooltip common-tooltip-vertical'] = !!a), (e[D.isGrayed] = v), (e[D.isActive] = p), (e[D.isOpened] = u), e), ), onClick: v ? z : void 0, title: a, 'data-tooltip-hotkey': c, 'data-tooltip-delay': 1500, }, r.createElement( 'div', { ref: function(e) { return (o._control = e); }, className: D.control, }, r.createElement( 'div', { className: D.buttonWrap, onMouseDown: v || Modernizr.touch ? void 0 : this._handlePressStart, onMouseUp: v || Modernizr.touch ? void 0 : this._handlePressEnd, onClick: !v && Modernizr.touch ? this._handleTouchStart : void 0, }, r.createElement(n, { activeClass: i, className: l, icon: s, isActive: p, isGrayed: v, isTransparent: !0, }), ), !v && !Modernizr.touch && r.createElement( 'div', { className: D.arrow, onClick: this._handleClickArrow }, r.createElement(T.a, { className: D.arrowIcon, icon: I }), ), ), !v && r.createElement( E.a, { doNotCloseOn: this, isOpened: u, onClose: this._handleClose, position: this._getDropdownPosition, }, d, ), ); }), o ); })(r.PureComponent)), (F = t(849)), (R = t(1095)), (O = { icon: window.t('Icon') }), (W = 10), (V = (function(e) { function o(o) { var t = e.call(this, o) || this; return ( (t._renderItem = function(e) { return r.createElement( 'div', { className: R.item, key: e, onClick: function() { t._handleSelect(e), Object(N.b)(); }, }, String.fromCharCode(e), ); }), (t._onChangeDrawingState = function() { t.setState({ isActive: t._isActive() }); }), (t._handleSelect = function(e) { var o, n; Object(k.saveDefaults)( 'linetoolicon', s.a({}, Object(k.defaults)('linetoolicon'), { icon: e }), ), v.tool.setValue('LineToolIcon'), (o = t.state.recents), (n = o.indexOf(e)), -1 !== n && o.splice(n, 1), (o = [e].concat(o.slice(0, W - 1))), Object(d.setJSON)('linetoolicon.recenticons', o), t.setState({ current: e, recents: o }); }), (t.state = { current: Object(k.defaults)('linetoolicon').icon, recents: Object(d.getJSON)('linetoolicon.recenticons') || [], }), t ); } return ( s.c(o, e), (o.prototype.componentDidMount = function() { v.tool.subscribe(this._onChangeDrawingState), d.onSync.subscribe(this, this._onSyncSettings); }), (o.prototype.componentWillUnmount = function() { v.tool.unsubscribe(this._onChangeDrawingState), d.onSync.unsubscribe(this, this._onSyncSettings); }), (o.prototype.render = function() { var e = this, o = this.props, t = o.isGrayed, n = o.toolName, i = this.state, l = i.current, s = i.isActive, a = i.recents; return r.createElement( P, { buttonClass: R.button, buttonIcon: r.createElement( 'div', { className: R.buttonIcon }, String.fromCharCode(l || S.availableIcons[0]), ), buttonTitle: O.icon, isActive: s, isGrayed: t, onClickButton: function() { return e._handleSelect(l || S.availableIcons[0]); }, onClickWhenGrayed: function() { return Object(z.emit)('onGrayedObjectClicked', { type: 'drawing', name: g.a[n].localizedName, }); }, }, a && [ r.createElement( 'div', { key: 'recent', className: R.wrap }, a.map(this._renderItem), ), r.createElement(F.a, { key: 'separator' }), ], r.createElement( 'div', { key: 'all', className: R.wrap }, S.availableIcons.map(this._renderItem), ), ); }), (o.prototype._isActive = function() { return v.tool.value() === this.props.toolName; }), (o.prototype._onSyncSettings = function() { this.setState({ recents: Object(d.getJSON)('linetoolicon.recenticons') }); }), o ); })(r.Component)), (H = t(3)), (j = (function(e) { function o(o) { var t = e.call(this, o) || this; return ( (t._handleClick = function() { t.props.saveDefaultOnChange && Object(H.saveDefaultProperties)(!0), t.props.property.setValue(!t.props.property.value()), t.props.saveDefaultOnChange && Object(H.saveDefaultProperties)(!1); }), (t.state = { isActive: t.props.property.value(), }), t ); } return ( s.c(o, e), (o.prototype.componentDidMount = function() { this.props.property.subscribe(this, this._onChange); }), (o.prototype.componentWillUnmount = function() { this.props.property.unsubscribe(this, this._onChange); }), (o.prototype.render = function() { var e = this.props.toolName, o = this.state.isActive, t = g.a[e]; return r.createElement(n, { icon: o && t.iconActive ? t.iconActive : t.icon, isActive: o, onClick: this._handleClick, title: t.localizedName, }); }), (o.prototype._onChange = function(e) { this.setState({ isActive: e.value() }); }), o ); })(r.PureComponent)), (G = (function(e) { function o(o) { var t = e.call(this, o) || this; return ( (t._handleClick = function() { v.tool.setValue(t.props.toolName); }), (t._onChange = function() { t.setState({ isActive: v.tool.value() === t.props.toolName }); }), (t.state = { isActive: v.tool.value() === t.props.toolName }), t ); } return ( s.c(o, e), (o.prototype.componentDidMount = function() { v.tool.subscribe(this._onChange); }), (o.prototype.componentWillUnmount = function() { v.tool.unsubscribe(this._onChange); }), (o.prototype.render = function() { var e = this.props.toolName, o = this.state.isActive, t = g.a[e]; return r.createElement(n, { icon: g.a[e].icon, isActive: o, isTransparent: !0, onClick: this._handleClick, title: t.localizedName, buttonHotKey: t.hotKey, }); }), o ); })(r.PureComponent)), (U = t(302)), (K = t(1096)), (Z = (function(e) { function o() { return (null !== e && e.apply(this, arguments)) || this; } return ( s.c(o, e), (o.prototype.render = function() { var e = this.props.enterAnimationClass, o = void 0 === e ? K.enter : e, t = this.props.enterActiveAnimationClass, n = void 0 === t ? K.enterActive : t, i = this.props.enterLeaveAnimationClass, l = void 0 === i ? K.leave : i, s = this.props.itemClassName, a = void 0 === s ? K.item : s; return r.createElement( U.CSSTransitionGroup, { transitionName: { enter: o, enterActive: n, leave: l }, transitionEnter: !0, transitionEnterTimeout: b.dur / 2, transitionLeave: !0, transitionLeaveTimeout: 0.75 * b.dur, }, this.props.isVisible && r.createElement('div', { key: 'button', className: a }, this.props.children), ); }), o ); })(r.PureComponent)), (q = (function(e) { function o(o) { var t = e.call(this, o) || this; return ( (t._boundUndoModel = null), (t._handleClick = function() { var e = t._activeChartWidget().model(); e && e.zoomFromViewport(); }), (t._syncUnzoomButton = function() { var e = t._activeChartWidget(), o = e.model(), n = !1; o ? (t._boundUndoModel !== o && (t._boundUndoModel && t._boundUndoModel .zoomStack() .onChange() .unsubscribe(null, t._syncUnzoomButton), o .zoomStack() .onChange() .subscribe(null, t._syncUnzoomButton), (t._boundUndoModel = o)), (n = !o.zoomStack().isEmpty())) : e.withModel(null, t._syncUnzoomButton), t.setState({ isVisible: n }); }), (t.state = { isVisible: !1 }), t ); } return ( s.c(o, e), (o.prototype.componentDidMount = function() { this.props.chartWidgetCollection.activeChartWidget.subscribe(this._syncUnzoomButton, { callWithLast: !0, }); }), (o.prototype.componentWillUnmount = function() { this.props.chartWidgetCollection.activeChartWidget.unsubscribe(this._syncUnzoomButton); }), (o.prototype.render = function() { return r.createElement( Z, { isVisible: this.state.isVisible }, r.createElement(i, { action: this._handleClick, isTransparent: !0, toolName: 'zoom-out', }), ); }), (o.prototype._activeChartWidget = function() { return this.props.chartWidgetCollection.activeChartWidget.value(); }), o ); })(r.PureComponent)), (J = t(1009)), (Q = t(878)), (Y = t(846)), (X = t(189)), ($ = (function(e) { function o() { return (null !== e && e.apply(this, arguments)) || this; } return ( s.c(o, e), (o.prototype.componentDidMount = function() { X.bind(this.props.keys, this.props.handler); }), (o.prototype.componentDidUpdate = function(e) { (this.props.keys === e.keys && this.props.handler === e.handler) || (X.unbind(e.keys), X.bind(this.props.keys, this.props.handler)); }), (o.prototype.componentWillUnmount = function() { X.unbind(this.props.keys); }), (o.prototype.render = function() { return null; }), o ); })(r.PureComponent)), (ee = (function(e) { function o(o) { var t, n = e.call(this, o) || this; return ( (n._onChangeDrawingState = function() { var e = n._getActiveToolIndex(); n.setState({ current: -1 !== e ? e : n.state.current, isActive: -1 !== e }); }), (n._handleClickButton = function() { var e = n._getCurrentToolName(); n._selectTool(e); }), (n._handleClickItem = function(e) { n._selectTool(e); }), (n._handleGrayedClick = function(e) { Object(z.emit)('onGrayedObjectClicked', { type: 'drawing', name: g.a[e].localizedName, }); }), (n._handleShortcut = function(e) { var o = n.props.lineTools.find(function(o) { return o.name === e; }), t = o && o.shortcut; t && t.immediately ? n._drawLinetoolImmediately(e) : n._selectTool(e); }), (n._drawLinetoolImmediately = function(e) { var o = n.props.chartWidgetCollection.activeChartWidget.value(); o.activePaneWidget && o.activePaneWidget.drawRightThere(e); }), (n._handleClickFavorite = function(e) { n.state.favState && n.state.favState[e] ? J.a.removeFavorite(e) : J.a.addFavorite(e); }), (n._onAddFavorite = function(e) { var o; n.setState({ favState: s.a({}, n.state.favState, ((o = {}), (o[e] = !0), o)) }); }), (n._onRemoveFavorite = function(e) { var o; n.setState({ favState: s.a({}, n.state.favState, ((o = {}), (o[e] = !1), o)) }); }), (n._onSyncFavorites = function() { n.setState({ favState: n._composeFavState() }); }), (t = n._getActiveToolIndex()), (n.state = { current: -1 === t ? n._firstNonGrayedTool() : t, favState: n._composeFavState(), isActive: -1 !== t, }), n ); } return ( s.c(o, e), (o.prototype.componentDidMount = function() { v.tool.subscribe(this._onChangeDrawingState), J.a.favoriteAdded.subscribe(null, this._onAddFavorite), J.a.favoriteRemoved.subscribe(null, this._onRemoveFavorite), J.a.favoritesSynced.subscribe(null, this._onSyncFavorites); }), (o.prototype.componentWillUnmount = function() { v.tool.unsubscribe(this._onChangeDrawingState), J.a.favoriteAdded.unsubscribe(null, this._onAddFavorite), J.a.favoriteRemoved.unsubscribe(null, this._onRemoveFavorite), J.a.favoritesSynced.unsubscribe(null, this._onSyncFavorites); }), (o.prototype.componentDidUpdate = function(e, o) { e.lineTools !== this.props.lineTools && this.setState({ favState: this._composeFavState() }); }), (o.prototype.render = function() { var e = this, o = this.props, t = o.favoriting, n = o.grayedTools, i = o.lineTools, l = this.state, s = l.current, a = l.favState, c = l.isActive, h = this._getCurrentToolName(), d = g.a[h], p = this._showHint(); return r.createElement( 'span', null, r.createElement( P, { buttonIcon: d.icon, buttonTitle: d.localizedName, buttonHotKey: d.hotKey, isActive: c, onClickButton: this._handleClickButton, }, i.map(function(o, i) { var l = o.name, h = g.a[l], d = n[l]; return r.createElement(Y.a, { key: l, dontClosePopup: d, forceShowHint: p, hint: o.shortcut && o.shortcut.keys, icon: h.icon, isActive: c && s === i, appearAsDisabled: d, label: h.localizedName, onClick: d ? e._handleGrayedClick : e._handleClickItem, onClickArg: l, showToolboxOnHover: !a[l], toolbox: t && !d ? r.createElement(Q.a, { isFilled: a[l], onClick: e._handleClickFavorite, onClickArg: l, }) : void 0, }); }), ), i.map(function(o, t) { var n = o.name, i = o.shortcut; return ( i && r.createElement($, { handler: function(o) { o.preventDefault(), e._handleShortcut(n); }, key: n, keys: i.keys, }) ); }), ); }), (o.prototype._getCurrentToolName = function() { var e = this.state.current; return this.props.lineTools[e || 0].name; }), (o.prototype._firstNonGrayedTool = function() { var e = this.props, o = e.grayedTools; return e.lineTools.findIndex(function(e) { return !o[e.name]; }); }), (o.prototype._getActiveToolIndex = function() { return this.props.lineTools.findIndex(function(e) { return e.name === v.tool.value(); }); }), (o.prototype._showHint = function() { return this.props.lineTools.some(function(e) { return 'shortcut' in e; }); }), (o.prototype._selectTool = function(e) { v.tool.setValue(e); }), (o.prototype._composeFavState = function() { var e = {}; return ( this.props.lineTools.forEach(function(o) { e[o.name] = J.a.isFavorite(o.name); }), e ); }), o ); })(r.PureComponent)), (oe = { all: window.t('Remove Drawing Tools & Indicators'), drawings: window.t('Remove Drawing Tools'), studies: window.t('Remove Indicators'), }), (te = (function(e) { function o() { var o = (null !== e && e.apply(this, arguments)) || this; return ( (o._handleRemoveDrawings = function() { o.props.chartWidgetCollection.activeChartWidget.value().removeAllDrawingTools(); }), (o._handleRemoveStudies = function() { o.props.chartWidgetCollection.activeChartWidget.value().removeAllStudies(); }), (o._handleRemoveAll = function() { o.props.chartWidgetCollection.activeChartWidget .value() .removeAllStudiesDrawingTools(); }), o ); } return ( s.c(o, e), (o.prototype.render = function() { return r.createElement( P, { buttonIcon: g.a[this.props.toolName].icon, buttonTitle: oe.drawings, onClickButton: this._handleRemoveDrawings, }, r.createElement(Y.a, { label: oe.drawings, onClick: this._handleRemoveDrawings }), r.createElement(Y.a, { label: oe.studies, onClick: this._handleRemoveStudies }), r.createElement(Y.a, { label: oe.all, onClick: this._handleRemoveAll }), ); }), o ); })(r.PureComponent)), (ne = t(1097)), (ie = 'http://www.w3.org/2000/svg'), (le = t(334)), (se = t(1098)), t.d(o, 'DrawingToolbar', function() { return ce; }), (ae = { hide: window.t('Hide Drawings Toolbar'), show: window.t('Show Drawings Toolbar') }), (re = Object(u.onWidget)()), (ce = (function(e) { function o(o) { var t = e.call(this, o) || this; return ( (t._grayedTools = {}), (t._handleChangeVisibility = function(e) { t.setState({ isVisible: e }); }), (t._toggleVisibility = function() { f.isDrawingToolbarVisible.setValue(!f.isDrawingToolbarVisible.value()); }), (t._handleEsc = function() { v.resetToCursor(!0), Object(N.b)(); }), v.init(), (t._toolsFilter = new m(t.props.drawingsAccess)), (t._filteredLineTools = w .map(function(e) { return e.filter(function(e) { return t._toolsFilter.isToolEnabled(g.a[e.name].localizedName); }); }) .filter(function(e) { return 0 !== e.length; })), t._filteredLineTools.forEach(function(e) { return e.forEach(function(e) { t._grayedTools[e.name] = t._toolsFilter.isToolGrayed(g.a[e.name].localizedName); }); }), (t.state = { isVisible: f.isDrawingToolbarVisible.value() }), (t._features = { favoriting: !re && p.enabled('items_favoriting'), multicharts: p.enabled('support_multicharts'), tools: !re || p.enabled('charting_library_base'), }), t._negotiateResizer(), t ); } return ( s.c(o, e), (o.prototype.componentDidMount = function() { f.isDrawingToolbarVisible.subscribe(this._handleChangeVisibility), c.findDOMNode(this).addEventListener('contextmenu', function(e) { return e.preventDefault(); }); }), (o.prototype.componentWillUnmount = function() { f.isDrawingToolbarVisible.unsubscribe(this._handleChangeVisibility); }), (o.prototype.componentDidUpdate = function(e, o) { var t = this.state.isVisible; t !== o.isVisible && (z.emit('toggle_sidebar', !t), d.setValue('ChartDrawingToolbarWidget.visible', t), this._negotiateResizer()); }), (o.prototype.render = function() { var e, o = this, t = this.props, n = t.bgColor, s = t.chartWidgetCollection, a = t.readOnly, c = this.state.isVisible, d = { backgroundColor: n && '#' + n }; return r.createElement( 'div', { className: h(se.drawingToolbar, ((e = {}), (e[se.isHidden] = !c), e)), style: d }, r.createElement( C, { onScroll: N.b, isVisibleFade: Modernizr.touch, isVisibleButtons: !Modernizr.touch, isVisibleScrollbar: !1, }, r.createElement( 'div', { className: se.inner }, !1, !a && r.createElement( 'div', { className: se.group, style: d }, this._filteredLineTools.map(function(e, t) { return r.createElement(ee, { chartWidgetCollection: s, favoriting: o._features.favoriting, grayedTools: o._grayedTools, key: t, lineTools: e, }); }), this._toolsFilter.isToolEnabled('Font Icons') && r.createElement(V, { isGrayed: this._grayedTools['Font Icons'], toolName: 'LineToolIcon', }), ), !a && r.createElement( 'div', { className: se.group, style: d }, r.createElement(G, { toolName: 'measure' }), r.createElement(G, { toolName: 'zoom' }), r.createElement(q, { chartWidgetCollection: s }), ), !a && r.createElement( 'div', { className: se.group, style: d }, r.createElement(j, { property: v.properties().magnet, saveDefaultOnChange: !0, toolName: 'magnet', }), this._features.tools && r.createElement(j, { property: v.properties().stayInDrawingMode, saveDefaultOnChange: !0, toolName: 'drawginmode', }), this._features.tools && r.createElement(j, { property: v.lockDrawings(), toolName: 'lockAllDrawings', }), this._features.tools && r.createElement(j, { property: v.hideAllDrawings(), toolName: 'hideAllDrawings', }), !1, ), !a && this._features.tools && r.createElement( 'div', { className: se.group, style: d }, r.createElement(i, { action: function() { return o._activeChartWidget().showObjectsTreeDialog(); }, toolName: 'showObjectsTree', }), r.createElement(te, { chartWidgetCollection: s, toolName: 'removeAllDrawingTools', }), ), ), ), r.createElement( 'div', { className: h( se.toggleButton, 'apply-common-tooltip common-tooltip-vertical', !c && se.collapsed, ), onClick: this._toggleVisibility, title: c ? ae.hide : ae.show, }, r.createElement(l, { direction: c ? 'left' : 'right' }), ), r.createElement(_.a, { keyCode: B.a.Escape, handler: this._handleEsc }), ); }), (o.prototype._activeChartWidget = function() { return this.props.chartWidgetCollection.activeChartWidget.value(); }), (o.prototype._negotiateResizer = function() { this.props.resizerBridge.negotiateWidth(this.state.isVisible ? le.b : le.a); }), o ); })(r.PureComponent)); }, 844: function(e, o, t) { 'use strict'; function n() { v.fire(); } var i, l, s, a, r, c, h, d, p, v; t.d(o, 'a', function() { return p; }), (o.b = n), (i = t(1)), (l = t(20)), t.n(l), (s = t(102)), t.n(s), (a = t(7)), t.n(a), (r = t(50)), (c = t(871)), t.n(c), (h = t(8)), (d = t.n(h)), (p = (function(e) { function o(o) { var t = e.call(this, o) || this; return ( (t._containerRef = null), (t._scrollWrapRef = null), (t._handleContainerRef = function(e) { return (t._containerRef = e); }), (t._handleScrollWrapRef = function(e) { return (t._scrollWrapRef = e); }), (t._handleMeasure = function() { var e, o, n, i, l, s, c, h, d, p, v, z, u, g, m, w, f; t.state.isMeasureValid || ((e = t.props.position), (o = Object(a.ensureNotNull)(t._containerRef)), (n = o.getBoundingClientRect()), (i = document.documentElement.clientHeight), (l = document.documentElement.clientWidth), (s = i - 10), (c = n.height > s), c && ((h = Object(a.ensureNotNull)(t._scrollWrapRef)), (h.style.overflowY = 'scroll'), (n = o.getBoundingClientRect())), (d = n.width), (p = n.height), (v = 'function' == typeof e ? e(d, p) : e), (z = 5), (u = l - d - 5), (g = Object(r.clamp)(v.x, z, Math.max(z, u))), (m = 5), (w = i - p - 5), (f = Object(r.clamp)(v.y, m, Math.max(m, w))), t.setState({ appearingMenuHeight: c ? s : void 0, appearingMenuWidth: v.overrideWidth, appearingPosition: { x: g, y: f }, isMeasureValid: !0, })); }), (t._handleGlobalClose = function() { t.props.onClose(); }), (t.state = {}), t ); } return ( i.c(o, e), (o.prototype.componentWillReceiveProps = function(e) { this.props.isOpened && !e.isOpened && this.setState({ isMeasureValid: void 0 }); }), (o.prototype.componentDidMount = function() { this._handleMeasure(), v.subscribe(this, this._handleGlobalClose); }), (o.prototype.componentDidUpdate = function() { this._handleMeasure(); }), (o.prototype.componentWillUnmount = function() { v.unsubscribe(this, this._handleGlobalClose); }), (o.prototype.render = function() { var e, o = this.props, t = o.children, n = o.minWidth, i = o.theme, a = void 0 === i ? c : i, r = o.className, h = this.state, d = h.appearingMenuHeight, p = h.appearingMenuWidth, v = h.appearingPosition, z = h.isMeasureValid; return l.createElement( 'div', { className: s(r, a.menuWrap, ((e = {}), (e[a.isMeasuring] = !z), e)), style: { height: d, left: v && v.x, minWidth: n, position: 'fixed', top: v && v.y, width: p, }, ref: this._handleContainerRef, }, l.createElement( 'div', { className: a.scrollWrap, style: { overflowY: void 0 !== d ? 'scroll' : 'auto' }, ref: this._handleScrollWrapRef, }, l.createElement('div', { className: a.menuBox }, t), ), ); }), o ); })(l.PureComponent)), (v = new d.a()); }, 846: function(e, o, t) { 'use strict'; function n(e) { return s.createElement(e.href ? 'a' : 'div', e); } function i(e) { e.stopPropagation(); } var l, s, a, r, c, h; t.d(o, 'a', function() { return h; }), (l = t(1)), (s = t(20)), t.n(s), (a = t(102)), t.n(a), (r = t(844)), (c = t(879)), t.n(c), (h = (function(e) { function o() { var o = (null !== e && e.apply(this, arguments)) || this; return ( (o._handleClick = function(e) { var t = o.props, n = t.dontClosePopup, i = t.isDisabled, l = t.onClick, s = t.onClickArg; i || (l && l(s, e), n || Object(r.b)()); }), o ); } return ( l.c(o, e), (o.prototype.render = function() { var e, o, t = this.props, l = t.className, r = t.forceShowHint, h = t.hint, d = t.icon, p = t.isActive, v = t.isDisabled, z = t.isHovered, u = t.appearAsDisabled, g = t.label, m = t.link, w = t.showToolboxOnHover, f = t.target, M = t.toolbox, T = t.theme, L = void 0 === T ? c : T; return s.createElement( n, { className: a( l, L.item, d && L.withIcon, ((e = {}), (e[L.isActive] = p), (e[L.isDisabled] = v || u), (e[L.hovered] = z), e), ), href: m, target: f, onClick: this._handleClick, }, void 0 !== d && s.createElement('div', { className: L.icon, dangerouslySetInnerHTML: { __html: d }, }), s.createElement( 'div', { className: L.labelRow }, s.createElement('div', { className: L.label }, g), ), (void 0 !== h || r) && s.createElement('div', { className: L.hint }, h), void 0 !== M && s.createElement( 'div', { onClick: i, className: a(L.toolbox, ((o = {}), (o[L.showOnHover] = w), o)) }, M, ), ); }), o ); })(s.PureComponent)); }, 849: function(e, o, t) { 'use strict'; function n(e) { return i.createElement('div', { className: l.separator }); } var i, l; (o.a = n), (i = t(20)), t.n(i), (l = t(881)), t.n(l); }, 852: function(e, o, t) { 'use strict'; var n, i, l; t.d(o, 'a', function() { return l; }), (n = t(1)), (i = t(20)), t.n(i), (l = (function(e) { function o() { var o = (null !== e && e.apply(this, arguments)) || this; return ( (o._handleKeyDown = function(e) { e.keyCode === o.props.keyCode && o.props.handler(e); }), o ); } return ( n.c(o, e), (o.prototype.componentDidMount = function() { document.addEventListener('keydown', this._handleKeyDown, !1); }), (o.prototype.componentWillUnmount = function() { document.removeEventListener('keydown', this._handleKeyDown, !1); }), (o.prototype.render = function() { return null; }), o ); })(i.PureComponent)); }, 853: function(e, o, t) { 'use strict'; var n, i, l, s, a = (t(11), t(306)), r = t(875), c = { SyncDrawing: t(991), arrow: t(992), cursor: t(993), dot: t(994), drawginmode: t(995), drawginmodeActive: t(996), eraser: t(997), group: t(998), hideAllDrawings: t(885), hideAllDrawingsActive: t(999), lockAllDrawings: t(1e3), lockAllDrawingsActive: t(1001), magnet: t(1002), measure: t(1003), removeAllDrawingTools: t(1004), showObjectsTree: t(1005), zoom: t(1006), 'zoom-out': t(1007), }; t.d(o, 'a', function() { return s; }), (n = { keys: ['Shift'], text: window.t('{0} — drawing a straight line at angles of 45') }), (i = { keys: ['Shift'], text: window.t('{0} — circle') }), (l = { keys: ['Shift'], text: window.t('{0} — square') }), (s = { LineTool5PointsPattern: { icon: r.lineToolsIcons.LineTool5PointsPattern, localizedName: window.t('XABCD Pattern'), }, LineToolABCD: { icon: r.lineToolsIcons.LineToolABCD, localizedName: window.t('ABCD Pattern'), }, LineToolArc: { icon: r.lineToolsIcons.LineToolArc, localizedName: window.t('Arc') }, LineToolArrow: { icon: r.lineToolsIcons.LineToolArrow, localizedName: window.t('Arrow') }, LineToolArrowMarkDown: { icon: r.lineToolsIcons.LineToolArrowMarkDown, localizedName: window.t('Arrow Mark Down'), }, LineToolArrowMarkLeft: { icon: r.lineToolsIcons.LineToolArrowMarkLeft, localizedName: window.t('Arrow Mark Left'), }, LineToolArrowMarkRight: { icon: r.lineToolsIcons.LineToolArrowMarkRight, localizedName: window.t('Arrow Mark Right'), }, LineToolArrowMarkUp: { icon: r.lineToolsIcons.LineToolArrowMarkUp, localizedName: window.t('Arrow Mark Up'), }, LineToolBalloon: { icon: r.lineToolsIcons.LineToolBalloon, localizedName: window.t('Balloon'), }, LineToolBarsPattern: { icon: r.lineToolsIcons.LineToolBarsPattern, localizedName: window.t('Bars Pattern'), }, LineToolBezierCubic: { icon: r.lineToolsIcons.LineToolBezierCubic, localizedName: window.t('Double Curve'), }, LineToolBezierQuadro: { icon: r.lineToolsIcons.LineToolBezierQuadro, localizedName: window.t('Curve'), }, LineToolBrush: { icon: r.lineToolsIcons.LineToolBrush, localizedName: window.t('Brush') }, LineToolCallout: { icon: r.lineToolsIcons.LineToolCallout, localizedName: window.t('Callout'), }, LineToolCircleLines: { icon: r.lineToolsIcons.LineToolCircleLines, localizedName: window.t('Cyclic Lines'), }, LineToolCypherPattern: { icon: r.lineToolsIcons.LineToolCypherPattern, localizedName: window.t('Cypher Pattern'), }, LineToolDateAndPriceRange: { icon: r.lineToolsIcons.LineToolDateAndPriceRange, localizedName: window.t('Date and Price Range'), }, LineToolDateRange: { icon: r.lineToolsIcons.LineToolDateRange, localizedName: window.t('Date Range'), }, LineToolDisjointAngle: { icon: r.lineToolsIcons.LineToolDisjointAngle, localizedName: window.t('Disjoint Angle'), hotKey: Object(a.b)(n), }, LineToolElliottCorrection: { icon: r.lineToolsIcons.LineToolElliottCorrection, localizedName: window.t('Elliott Correction Wave (ABC)'), }, LineToolElliottDoubleCombo: { icon: r.lineToolsIcons.LineToolElliottDoubleCombo, localizedName: window.t('Elliott Double Combo Wave (WXY)'), }, LineToolElliottImpulse: { icon: r.lineToolsIcons.LineToolElliottImpulse, localizedName: window.t('Elliott Impulse Wave (12345)'), }, LineToolElliottTriangle: { icon: r.lineToolsIcons.LineToolElliottTriangle, localizedName: window.t('Elliott Triangle Wave (ABCDE)'), }, LineToolElliottTripleCombo: { icon: r.lineToolsIcons.LineToolElliottTripleCombo, localizedName: window.t('Elliott Triple Combo Wave (WXYXZ)'), }, LineToolEllipse: { icon: r.lineToolsIcons.LineToolEllipse, localizedName: window.t('Ellipse'), hotKey: Object(a.b)(i), }, LineToolExtended: { icon: r.lineToolsIcons.LineToolExtended, localizedName: window.t('Extended'), }, LineToolFibChannel: { icon: r.lineToolsIcons.LineToolFibChannel, localizedName: window.t('Fib Channel'), }, LineToolFibCircles: { icon: r.lineToolsIcons.LineToolFibCircles, localizedName: window.t('Fib Circles'), hotKey: Object(a.b)(i), }, LineToolFibRetracement: { icon: r.lineToolsIcons.LineToolFibRetracement, localizedName: window.t('Fib Retracement'), }, LineToolFibSpeedResistanceArcs: { icon: r.lineToolsIcons.LineToolFibSpeedResistanceArcs, localizedName: window.t('Fib Speed Resistance Arcs'), }, LineToolFibSpeedResistanceFan: { icon: r.lineToolsIcons.LineToolFibSpeedResistanceFan, localizedName: window.t('Fib Speed Resistance Fan'), hotKey: Object(a.b)(l), }, LineToolFibSpiral: { icon: r.lineToolsIcons.LineToolFibSpiral, localizedName: window.t('Fib Spiral'), }, LineToolFibTimeZone: { icon: r.lineToolsIcons.LineToolFibTimeZone, localizedName: window.t('Fib Time Zone'), }, LineToolFibWedge: { icon: r.lineToolsIcons.LineToolFibWedge, localizedName: window.t('Fib Wedge'), }, LineToolFlagMark: { icon: r.lineToolsIcons.LineToolFlagMark, localizedName: window.t('Flag Mark'), }, LineToolFlatBottom: { icon: r.lineToolsIcons.LineToolFlatBottom, localizedName: window.t('Flat Top/Bottom'), hotKey: Object(a.b)(n), }, LineToolGannComplex: { icon: r.lineToolsIcons.LineToolGannComplex, localizedName: window.t('Gann Square'), }, LineToolGannFixed: { icon: r.lineToolsIcons.LineToolGannFixed, localizedName: window.t('Gann Square Fixed'), }, LineToolGannFan: { icon: r.lineToolsIcons.LineToolGannFan, localizedName: window.t('Gann Fan'), }, LineToolGannSquare: { icon: r.lineToolsIcons.LineToolGannSquare, localizedName: window.t('Gann Box'), hotKey: Object(a.b)({ keys: ['Shift'], text: window.t('{0} — fixed increments') }), }, LineToolGhostFeed: { icon: r.lineToolsIcons.LineToolGhostFeed, localizedName: window.t('Ghost Feed'), }, LineToolHeadAndShoulders: { icon: r.lineToolsIcons.LineToolHeadAndShoulders, localizedName: window.t('Head and Shoulders'), }, LineToolHorzLine: { icon: r.lineToolsIcons.LineToolHorzLine, localizedName: window.t('Horizontal Line'), hotKey: Object(a.b)({ keys: ['Alt', 'H'], text: '{0} + {1}' }), }, LineToolHorzRay: { icon: r.lineToolsIcons.LineToolHorzRay, localizedName: window.t('Horizontal Ray'), }, LineToolIcon: { icon: r.lineToolsIcons.LineToolIcon, localizedName: window.t('Font Icons'), }, LineToolInsidePitchfork: { icon: r.lineToolsIcons.LineToolInsidePitchfork, localizedName: window.t('Inside Pitchfork'), }, LineToolNote: { icon: r.lineToolsIcons.LineToolNote, localizedName: window.t('Note') }, LineToolNoteAbsolute: { icon: r.lineToolsIcons.LineToolNoteAbsolute, localizedName: window.t('Anchored Note'), }, LineToolParallelChannel: { icon: r.lineToolsIcons.LineToolParallelChannel, localizedName: window.t('Parallel Channel'), hotKey: Object(a.b)(n), }, LineToolPitchfan: { icon: r.lineToolsIcons.LineToolPitchfan, localizedName: window.t('Pitchfan'), }, LineToolPitchfork: { icon: r.lineToolsIcons.LineToolPitchfork, localizedName: window.t('Pitchfork'), }, LineToolPolyline: { icon: r.lineToolsIcons.LineToolPolyline, localizedName: window.t('Polyline'), }, LineToolPrediction: { icon: r.lineToolsIcons.LineToolPrediction, localizedName: window.t('Forecast'), }, LineToolPriceLabel: { icon: r.lineToolsIcons.LineToolPriceLabel, localizedName: window.t('Price Label'), }, LineToolPriceRange: { icon: r.lineToolsIcons.LineToolPriceRange, localizedName: window.t('Price Range'), }, LineToolProjection: { icon: r.lineToolsIcons.LineToolProjection, localizedName: window.t('Projection'), }, LineToolRay: { icon: r.lineToolsIcons.LineToolRay, localizedName: window.t('Ray') }, LineToolRectangle: { icon: r.lineToolsIcons.LineToolRectangle, localizedName: window.t('Rectangle'), hotKey: Object(a.b)({ keys: ['Shift'], text: window.t('{0} — square') }), }, LineToolRegressionTrend: { icon: r.lineToolsIcons.LineToolRegressionTrend, localizedName: window.t('Regression Trend'), }, LineToolRiskRewardLong: { icon: r.lineToolsIcons.LineToolRiskRewardLong, localizedName: window.t('Long Position'), }, LineToolRiskRewardShort: { icon: r.lineToolsIcons.LineToolRiskRewardShort, localizedName: window.t('Short Position'), }, LineToolRotatedRectangle: { icon: r.lineToolsIcons.LineToolRotatedRectangle, localizedName: window.t('Rotated Rectangle'), hotKey: Object(a.b)(n), }, LineToolSchiffPitchfork: { icon: r.lineToolsIcons.LineToolSchiffPitchfork, localizedName: window.t('Modified Schiff Pitchfork'), }, LineToolSchiffPitchfork2: { icon: r.lineToolsIcons.LineToolSchiffPitchfork2, localizedName: window.t('Schiff Pitchfork'), }, LineToolSineLine: { icon: r.lineToolsIcons.LineToolSineLine, localizedName: window.t('Sine Line'), }, LineToolText: { icon: r.lineToolsIcons.LineToolText, localizedName: window.t('Text', { context: 'tool' }), }, LineToolTextAbsolute: { icon: r.lineToolsIcons.LineToolTextAbsolute, localizedName: window.t('Anchored Text'), }, LineToolThreeDrivers: { icon: r.lineToolsIcons.LineToolThreeDrivers, localizedName: window.t('Three Drives Pattern'), }, LineToolTimeCycles: { icon: r.lineToolsIcons.LineToolTimeCycles, localizedName: window.t('Time Cycles'), }, LineToolTrendAngle: { icon: r.lineToolsIcons.LineToolTrendAngle, localizedName: window.t('Trend Angle'), hotKey: Object(a.b)(n), }, LineToolTrendBasedFibExtension: { icon: r.lineToolsIcons.LineToolTrendBasedFibExtension, localizedName: window.t('Trend-Based Fib Extension'), }, LineToolTrendBasedFibTime: { icon: r.lineToolsIcons.LineToolTrendBasedFibTime, localizedName: window.t('Trend-Based Fib Time'), }, LineToolTrendLine: { icon: r.lineToolsIcons.LineToolTrendLine, localizedName: window.t('Trend Line'), hotKey: Object(a.b)(n), }, LineToolInfoLine: { icon: r.lineToolsIcons.LineToolInfoLine, localizedName: window.t('Info Line'), }, LineToolTriangle: { icon: r.lineToolsIcons.LineToolTriangle, localizedName: window.t('Triangle'), }, LineToolTrianglePattern: { icon: r.lineToolsIcons.LineToolTrianglePattern, localizedName: window.t('Triangle Pattern'), }, LineToolVertLine: { icon: r.lineToolsIcons.LineToolVertLine, localizedName: window.t('Vertical Line'), hotKey: Object(a.b)({ keys: ['Alt', 'V'], text: '{0} + {1}' }), }, LineToolCrossLine: { icon: r.lineToolsIcons.LineToolCrossLine, localizedName: $.t('Cross Line'), }, SyncDrawing: { icon: c.SyncDrawing, iconActive: c.SyncDrawingActive, localizedName: window.t('Sync drawings to all charts'), }, arrow: { icon: c.arrow, localizedName: window.t('Arrow') }, cursor: { icon: c.cursor, localizedName: window.t('Cross') }, dot: { icon: c.dot, localizedName: window.t('Dot') }, drawginmode: { icon: c.drawginmode, iconActive: c.drawginmodeActive, localizedName: window.t('Stay in Drawing Mode'), }, eraser: { icon: c.eraser, localizedName: window.t('Eraser') }, group: { icon: c.group, localizedName: window.t('Show Hidden Tools') }, hideAllDrawings: { icon: c.hideAllDrawings, iconActive: c.hideAllDrawingsActive, localizedName: window.t('Hide All Drawing Tools'), }, lockAllDrawings: { icon: c.lockAllDrawings, iconActive: c.lockAllDrawingsActive, localizedName: window.t('Lock All Drawing Tools'), }, magnet: { icon: c.magnet, localizedName: window.t( 'Magnet Mode snaps drawings placed near price bars to the closest OHLC value', ), }, measure: { icon: c.measure, localizedName: window.t('Measure'), hotKey: Object(a.b)({ keys: ['Shift'], text: window.t('{0} + Click on the chart') }), }, removeAllDrawingTools: { icon: c.removeAllDrawingTools, localizedName: window.t('Remove All Drawing Tools'), }, showObjectsTree: { icon: c.showObjectsTree, localizedName: window.t('Show Objects Tree') }, zoom: { icon: c.zoom, localizedName: window.t('Zoom In') }, 'zoom-out': { icon: c['zoom-out'], localizedName: window.t('Zoom Out') }, }); }, 869: function(e, o) { e.exports = ''; }, 870: function(e, o) { e.exports = ''; }, 871: function(e, o) { e.exports = { menuWrap: 'menuWrap-1gEtmoET-', isMeasuring: 'isMeasuring-FZ0EJCM2-', scrollWrap: 'scrollWrap-1B5MfTJt-', menuBox: 'menuBox-20sJGjtG-', isHidden: 'isHidden-2vLQpR1t-', }; }, 872: function(e, o, t) { 'use strict'; function n(e) { var o = p(e), t = document.getElementById(o); return ( t || ((t = document.createElement('div')), (t.id = o), document.body.appendChild(t)), (d[e] = (d[e] || 0) + 1), t ); } function i(e) { var o = p(e), t = document.getElementById(o); d[e] && (d[e] -= 1), t && 0 === d[e] && document.body.removeChild(t); } var l, s = t(1), a = (t(127), t(20)), r = t(59), c = t(304), h = 0, d = {}, p = function(e) { return '__outside-render-' + e; }, v = (function(e) { function o(o) { return e.call(this, o) || this; } return ( s.c(o, e), (o.prototype.componentDidMount = function() { this._rememberLayer(), this._renderLayer(); }), (o.prototype.componentDidUpdate = function(e) { this.props.layerId !== e.layerId && (i(this._layerId), this._rememberLayer()), this._renderLayer(); }), (o.prototype.componentWillUnmount = function() { r.unmountComponentAtNode(this._layer), i(this._layerId); }), (o.prototype.render = function() { return null; }), (o.prototype._rememberLayer = function() { var e = this.props.layerId, o = void 0 === e ? h++ + '' : e; (this._layerId = o), (this._layer = n(o)); }), (o.prototype._renderLayer = function() { r.render(a.createElement('div', null, this.props.children), this._layer); }), o ); })(a.Component), z = t(844); t.d(o, 'a', function() { return l; }), (l = (function(e) { function o() { var o = (null !== e && e.apply(this, arguments)) || this; return ( (o._handleClose = function() { o.props.onClose(); }), (o._handleClickOutside = function(e) { var t = o.props, n = t.closeOnClickOutside, i = t.onClickOutside, l = t.doNotCloseOn; i && i(e), !n || (void 0 !== l && r.findDOMNode(l).contains(e.target)) || o._handleClose(); }), o ); } return ( s.c(o, e), (o.prototype.componentWillReceiveProps = function(e) { this.props.isOpened && !e.isOpened && this.setState({ isMeasureValid: void 0 }); }), (o.prototype.render = function() { var e = this.props, o = e.children, t = e.isOpened, n = (e.closeOnClickOutside, e.doNotCloseOn, e.onClickOutside, e.onClose, s.e(e, [ 'children', 'isOpened', 'closeOnClickOutside', 'doNotCloseOn', 'onClickOutside', 'onClose', ])); return t ? a.createElement( v, null, a.createElement( c.a, { handler: this._handleClickOutside, mouseDown: !0, touchStart: !0, ctor: 'div', }, a.createElement( z.a, s.a({}, n, { isOpened: t, onClose: this._handleClose }), o, ), ), ) : null; }), (o.defaultProps = { closeOnClickOutside: !0 }), o ); })(a.PureComponent)); }, 875: function(e, o, t) { 'use strict'; Object.defineProperty(o, '__esModule', { value: !0 }), t.d(o, 'lineToolsIcons', function() { return n; }); var n = { LineTool5PointsPattern: t(886), LineToolABCD: t(887), LineToolArc: t(888), LineToolArrow: t(889), LineToolArrowMarkDown: t(890), LineToolArrowMarkLeft: t(891), LineToolArrowMarkRight: t(892), LineToolArrowMarkUp: t(893), LineToolBalloon: t(894), LineToolBarsPattern: t(895), LineToolBezierCubic: t(896), LineToolBezierQuadro: t(897), LineToolBrush: t(898), LineToolCallout: t(899), LineToolCircleLines: t(900), LineToolCypherPattern: t(901), LineToolDateAndPriceRange: t(902), LineToolDateRange: t(903), LineToolDisjointAngle: t(904), LineToolElliottCorrection: t(905), LineToolElliottDoubleCombo: t(906), LineToolElliottImpulse: t(907), LineToolElliottTriangle: t(908), LineToolElliottTripleCombo: t(909), LineToolEllipse: t(910), LineToolExtended: t(911), LineToolFibChannel: t(912), LineToolFibCircles: t(913), LineToolFibRetracement: t(914), LineToolFibSpeedResistanceArcs: t(915), LineToolFibSpeedResistanceFan: t(916), LineToolFibSpiral: t(917), LineToolFibTimeZone: t(918), LineToolFibWedge: t(919), LineToolFlagMark: t(920), LineToolFlatBottom: t(921), LineToolGannComplex: t(922), LineToolGannFixed: t(923), LineToolGannFan: t(924), LineToolGannSquare: t(925), LineToolGhostFeed: t(926), LineToolHeadAndShoulders: t(927), LineToolHorzLine: t(928), LineToolHorzRay: t(929), LineToolIcon: 'icon', LineToolInsidePitchfork: t(930), LineToolNote: t(931), LineToolNoteAbsolute: t(932), LineToolParallelChannel: t(933), LineToolPitchfan: t(934), LineToolPitchfork: t(935), LineToolPolyline: t(936), LineToolPrediction: t(937), LineToolPriceLabel: t(938), LineToolPriceRange: t(939), LineToolProjection: t(940), LineToolRay: t(941), LineToolRectangle: t(942), LineToolRegressionTrend: t(943), LineToolRiskRewardLong: t(944), LineToolRiskRewardShort: t(945), LineToolRotatedRectangle: t(946), LineToolSchiffPitchfork: t(947), LineToolSchiffPitchfork2: t(948), LineToolSineLine: t(949), LineToolText: t(950), LineToolTextAbsolute: t(951), LineToolThreeDrivers: t(952), LineToolTimeCycles: t(953), LineToolTrendAngle: t(954), LineToolTrendBasedFibExtension: t(955), LineToolTrendBasedFibTime: t(956), LineToolTrendLine: t(957), LineToolInfoLine: t(958), LineToolTriangle: t(959), LineToolTrianglePattern: t(960), LineToolVertLine: t(961), LineToolCrossLine: t(962), }; }, 878: function(e, o, t) { 'use strict'; var n, i, l, s, a, r, c, h; t.d(o, 'a', function() { return h; }), (n = t(1)), t(11), (i = t(20)), t.n(i), (l = t(102)), t.n(l), (s = t(987)), t.n(s), (a = t(869)), t.n(a), (r = t(870)), t.n(r), (c = { add: window.t('Add to favorites'), remove: window.t('Remove from favorites') }), (h = (function(e) { function o() { var o = (null !== e && e.apply(this, arguments)) || this; return ( (o._handleClick = function(e) { var t = o.props, n = t.onClick, i = t.onClickArg; n && n(i, e); }), o ); } return ( n.c(o, e), (o.prototype.render = function() { var e, o = this.props.isFilled; return i.createElement('span', { className: l(s.star, 'apply-common-tooltip', ((e = {}), (e[s.checked] = o), e)), dangerouslySetInnerHTML: { __html: o ? a : r }, onClick: this._handleClick, title: o ? c.remove : c.add, }); }), o ); })(i.PureComponent)); }, 879: function(e, o) { e.exports = { item: 'item-2xPVYue0-', hovered: 'hovered-1uf45E05-', isDisabled: 'isDisabled-1wLqKupj-', isActive: 'isActive-2j-GhQs_-', icon: 'icon-2Qm7YIcz-', hint: 'hint-1IhIvLPB-', toolbox: 'toolbox-3ulPxfe--', withIcon: 'withIcon-1xBjf-oB-', labelRow: 'labelRow-3Q0rdE8--', label: 'label-3Xqxy756-', showOnHover: 'showOnHover-1q6ySzZc-', }; }, 881: function(e, o) { e.exports = { separator: 'separator-25lkUpN--' }; }, 885: function(e, o) { e.exports = ''; }, 886: function(e, o) { e.exports = ''; }, 887: function(e, o) { e.exports = ''; }, 888: function(e, o) { e.exports = ''; }, 889: function(e, o) { e.exports = ''; }, 890: function(e, o) { e.exports = ''; }, 891: function(e, o) { e.exports = ''; }, 892: function(e, o) { e.exports = ''; }, 893: function(e, o) { e.exports = ''; }, 894: function(e, o) { e.exports = ''; }, 895: function(e, o) { e.exports = ''; }, 896: function(e, o) { e.exports = ''; }, 897: function(e, o) { e.exports = ''; }, 898: function(e, o) { e.exports = ''; }, 899: function(e, o) { e.exports = ''; }, 900: function(e, o) { e.exports = ''; }, 901: function(e, o) { e.exports = ''; }, 902: function(e, o) { e.exports = ''; }, 903: function(e, o) { e.exports = ''; }, 904: function(e, o) { e.exports = ''; }, 905: function(e, o) { e.exports = ''; }, 906: function(e, o) { e.exports = ''; }, 907: function(e, o) { e.exports = ''; }, 908: function(e, o) { e.exports = ''; }, 909: function(e, o) { e.exports = ''; }, 910: function(e, o) { e.exports = ''; }, 911: function(e, o) { e.exports = ''; }, 912: function(e, o) { e.exports = ''; }, 913: function(e, o) { e.exports = ''; }, 914: function(e, o) { e.exports = ''; }, 915: function(e, o) { e.exports = ''; }, 916: function(e, o) { e.exports = ''; }, 917: function(e, o) { e.exports = ''; }, 918: function(e, o) { e.exports = ''; }, 919: function(e, o) { e.exports = ''; }, 920: function(e, o) { e.exports = ''; }, 921: function(e, o) { e.exports = ''; }, 922: function(e, o) { e.exports = ''; }, 923: function(e, o) { e.exports = ''; }, 924: function(e, o) { e.exports = ''; }, 925: function(e, o) { e.exports = ''; }, 926: function(e, o) { e.exports = ''; }, 927: function(e, o) { e.exports = ''; }, 928: function(e, o) { e.exports = ''; }, 929: function(e, o) { e.exports = ''; }, 930: function(e, o) { e.exports = ''; }, 931: function(e, o) { e.exports = ''; }, 932: function(e, o) { e.exports = ''; }, 933: function(e, o) { e.exports = ''; }, 934: function(e, o) { e.exports = ''; }, 935: function(e, o) { e.exports = ''; }, 936: function(e, o) { e.exports = ''; }, 937: function(e, o) { e.exports = ''; }, 938: function(e, o) { e.exports = ''; }, 939: function(e, o) { e.exports = ''; }, 940: function(e, o) { e.exports = ''; }, 941: function(e, o) { e.exports = ''; }, 942: function(e, o) { e.exports = ''; }, 943: function(e, o) { e.exports = ''; }, 944: function(e, o) { e.exports = ''; }, 945: function(e, o) { e.exports = ''; }, 946: function(e, o) { e.exports = ''; }, 947: function(e, o) { e.exports = ''; }, 948: function(e, o) { e.exports = ''; }, 949: function(e, o) { e.exports = ''; }, 950: function(e, o) { e.exports = ''; }, 951: function(e, o) { e.exports = ''; }, 952: function(e, o) { e.exports = ''; }, 953: function(e, o) { e.exports = ''; }, 954: function(e, o) { e.exports = ''; }, 955: function(e, o) { e.exports = ''; }, 956: function(e, o) { e.exports = ''; }, 957: function(e, o) { e.exports = ''; }, 958: function(e, o) { e.exports = ''; }, 959: function(e, o) { e.exports = ''; }, 960: function(e, o) { e.exports = ''; }, 961: function(e, o) { e.exports = ''; }, 962: function(e, o) { e.exports = ''; }, 987: function(e, o) { e.exports = { star: 'star-uhAI7sV4-', checked: 'checked-2bhy04CF-' }; }, 990: function(e, o) { e.exports = ''; }, 991: function(e, o) { e.exports = ''; }, 992: function(e, o) { e.exports = ''; }, 993: function(e, o) { e.exports = ''; }, 994: function(e, o) { e.exports = ''; }, 995: function(e, o) { e.exports = ''; }, 996: function(e, o) { e.exports = ''; }, 997: function(e, o) { e.exports = ''; }, 998: function(e, o) { e.exports = ''; }, 999: function(e, o) { e.exports = ''; }, });