"use strict";
(self.webpackChunktradingview = self.webpackChunktradingview || []).push([
    [9238], {
        718083: (t, e, n) => {
            n.d(e, {
                useDisclosure: () => c
            });
            var l = n(50959),
                i = n(650151),
                o = n(607423),
                a = n(405964),
                r = n(763341),
                s = n(481058);

            function c(t) {
                const {
                    id: e,
                    listboxId: n,
                    disabled: c,
                    buttonTabIndex: u = 0,
                    onFocus: d,
                    onBlur: b,
                    onClick: f
                } = t, [h, v] = (0, l.useState)(!1), [g, p] = (0, a.useFocus)(), m = g || h, S = (null != n ? n : void 0 !== e) ? (0, s.createDomId)(e, "listbox") : void 0, C = (0, l.useRef)(null), _ = (0, l.useCallback)((t => {
                    var e;
                    return null === (e = C.current) || void 0 === e ? void 0 : e.focus(t)
                }), [C]), k = (0, l.useRef)(null), I = (0, l.useCallback)((() => (0, i.ensureNotNull)(k.current).focus()), [k]), H = (0, l.useCallback)((() => v(!0)), [v]), E = (0, l.useCallback)(((t = !1, e = !1) => {
                    v(!1);
                    const {
                        activeElement: n
                    } = document;
                    n && (0, o.isTextEditingField)(n) || e || _({
                        preventScroll: t
                    })
                }), [v, _]), T = (0, l.useCallback)((() => {
                    h ? E() : H()
                }), [h, E, H]), y = c ? [] : [d, p.onFocus], z = c ? [] : [b, p.onBlur], w = c ? [] : [f, T], M = (0, r.createSafeMulticastEventHandler)(...y), R = (0, r.createSafeMulticastEventHandler)(...z), A = (0, r.createSafeMulticastEventHandler)(...w);
                return {
                    listboxId: S,
                    isOpened: h,
                    isFocused: m,
                    buttonTabIndex: c ? -1 : u,
                    listboxTabIndex: -1,
                    open: H,
                    close: E,
                    toggle: T,
                    onOpen: I,
                    buttonFocusBindings: {
                        onFocus: M,
                        onBlur: R
                    },
                    onButtonClick: A,
                    buttonRef: C,
                    listboxRef: k,
                    buttonAria: {
                        "aria-controls": h ? S : void 0,
                        "aria-expanded": h,
                        "aria-disabled": c
                    }
                }
            }
        },
        499408: (t, e, n) => {
            n.d(e, {
                useKeepActiveItemIntoView: () => a
            });
            var l = n(50959),
                i = n(650151),
                o = n(896320);

            function a(t = {}) {
                const {
                    activeItem: e,
                    getKey: n,
                    ...a
                } = t, r = (0, l.useRef)(null), s = (0, l.useRef)(new Map), c = (0, o.useScrollIntoViewHelper)(r.current), u = (0, l.useCallback)((() => {
                    null !== c.current && null !== r.current && c.current.getContainer() !== r.current && c.current.setContainer(r.current)
                }), [c, r]), d = (0, l.useCallback)((t => {
                    r.current = t
                }), [r]), b = (0, l.useCallback)(((t, e) => {
                    const l = n ? n(t) : t;
                    e ? s.current.set(l, e) : s.current.delete(l)
                }), [s, n]), f = (0, l.useCallback)(((t, e) => {
                    if (!t) return;
                    const l = n ? n(t) : t,
                        o = s.current.get(l);
                    o && (u(), (0, i.ensureNotNull)(c.current).scrollTo(o, e))
                }), [s, c, n]);
                return (0, l.useEffect)((() => f(e, a)), [f, e]), [d, b, f]
            }
        },
        846503: (t, e, n) => {
            n.d(e, {
                useMobileTouchState: () => o
            });
            var l = n(50959),
                i = n(167175);

            function o() {
                const [t, e] = (0, l.useState)(!1);
                return (0, l.useEffect)((() => {
                    e(i.mobiletouch)
                }), []), t
            }
        },
        896320: (t, e, n) => {
            n.d(e, {
                useScrollIntoViewHelper: () => d
            });
            var l = n(50959),
                i = n(650151),
                o = n(745269);
            const a = {
                    duration: 200,
                    additionalScroll: 0
                },
                r = {
                    vertical: {
                        scrollSize: "scrollHeight",
                        clientSize: "clientHeight",
                        start: "top",
                        end: "bottom",
                        size: "height"
                    },
                    horizontal: {
                        scrollSize: "scrollWidth",
                        clientSize: "clientWidth",
                        start: "left",
                        end: "right",
                        size: "width"
                    }
                };

            function s(t, e) {
                const n = r[t];
                return e[n.scrollSize] > e[n.clientSize]
            }

            function c(t, e, n, l, i, a) {
                const s = function(t, e, n, l = 0) {
                    const i = r[t];
                    return {
                        start: -1 * l,
                        middle: -1 * (Math.floor(n[i.size] / 2) - Math.floor(e[i.size] / 2)),
                        end: -1 * (n[i.size] - e[i.size]) + l
                    }
                }(t, l, i, a.additionalScroll);
                let c = 0;
                if (a.snapToMiddle || function(t, e, n) {
                        const l = r[t];
                        return e[l.start] < n[l.start] - n[l.size] / 2 || e[l.end] > n[l.end] + n[l.size] / 2
                    }(t, l, i)) c = s.middle;
                else {
                    const e = function(t, e, n, l = 0) {
                            const i = r[t],
                                o = e[i.start] + Math.floor(e[i.size] / 2),
                                a = n[i.start] + Math.floor(n[i.size] / 2);
                            return {
                                start: e[i.start] - n[i.start] - l,
                                middle: o - a,
                                end: e[i.end] - n[i.end] + l
                            }
                        }(t, l, i, a.additionalScroll),
                        n = function(t) {
                            const {
                                start: e,
                                middle: n,
                                end: l
                            } = t, i = new Map([
                                [Math.abs(e), {
                                    key: "start",
                                    value: Math.sign(e)
                                }],
                                [Math.abs(n), {
                                    key: "middle",
                                    value: Math.sign(n)
                                }],
                                [Math.abs(l), {
                                    key: "end",
                                    value: Math.sign(l)
                                }]
                            ]), o = Math.min(...i.keys());
                            return i.get(o)
                        }(e);
                    c = void 0 !== n ? s[n.key] : 0
                }
                return a.align && (c = s[a.align]),
                    function(t) {
                        const {
                            additionalScroll: e = 0,
                            duration: n = o.dur,
                            func: l = o.easingFunc.easeInOutCubic,
                            onScrollEnd: i,
                            target: a,
                            wrap: r,
                            direction: s = "vertical"
                        } = t;
                        let {
                            targetRect: c,
                            wrapRect: u
                        } = t;
                        c = null != c ? c : a.getBoundingClientRect(), u = null != u ? u : r.getBoundingClientRect();
                        const d = ("vertical" === s ? c.top - u.top : c.left - u.left) + e,
                            b = "vertical" === s ? "scrollTop" : "scrollLeft",
                            f = r ? r[b] : 0;
                        let h, v = 0;
                        return v = window.requestAnimationFrame((function t(e) {
                                let o;
                                if (h ? o = e - h : (o = 0, h = e), o >= n) return r[b] = f + d, void(i && i());
                                const a = f + d * l(o / n);
                                r[b] = Math.floor(a), v = window.requestAnimationFrame(t)
                            })),
                            function() {
                                window.cancelAnimationFrame(v), i && i()
                            }
                    }({ ...a,
                        target: e,
                        targetRect: l,
                        wrap: n,
                        wrapRect: i,
                        additionalScroll: c,
                        direction: t
                    })
            }
            class u {
                constructor(t = null) {
                    this._container = null, this._lastScrolledElement = null, this._stopVerticalScroll = null, this._stopHorizontalScroll = null, this._container = t
                }
                scrollTo(t, e = a) {
                    if (null !== this._container && null !== t && ! function(t, e, n = 0) {
                            const l = t.getBoundingClientRect(),
                                i = e.getBoundingClientRect();
                            return l.top - i.top >= 0 && i.bottom - l.bottom >= 0 && l.left - i.left >= n && i.right - l.right >= n
                        }(t, this._container, e.visibilityDetectionOffsetInline)) {
                        const n = t.getBoundingClientRect(),
                            l = this._container.getBoundingClientRect();
                        this.stopScroll(), s("vertical", this._container) && (this._stopVerticalScroll = c("vertical", t, this._container, n, l, this._modifyOptions("vertical", e))), s("horizontal", this._container) && (this._stopHorizontalScroll = c("horizontal", t, this._container, n, l, this._modifyOptions("horizontal", e)))
                    }
                    this._lastScrolledElement = t
                }
                scrollToLastElement(t) {
                    this.scrollTo(this._lastScrolledElement, t)
                }
                stopScroll() {
                    null !== this._stopVerticalScroll && this._stopVerticalScroll(), null !== this._stopHorizontalScroll && this._stopHorizontalScroll()
                }
                getContainer() {
                    return this._container
                }
                setContainer(t) {
                    var e;
                    this._container = t, (null === (e = this._container) || void 0 === e ? void 0 : e.contains(this._lastScrolledElement)) || (this._lastScrolledElement = null)
                }
                destroy() {
                    this.stopScroll(), this._container = null, this._lastScrolledElement = null
                }
                _handleScrollEnd(t) {
                    "vertical" === t ? this._stopVerticalScroll = null : this._stopHorizontalScroll = null
                }
                _modifyOptions(t, e) {
                    return Object.assign({}, e, {
                        onScrollEnd: () => {
                            this._handleScrollEnd(t), void 0 !== e.onScrollEnd && e.onScrollEnd()
                        }
                    })
                }
            }

            function d(t) {
                const e = (0, l.useRef)(null);
                return (0, l.useEffect)((() => (e.current = new u(t), () => (0, i.ensureNotNull)(e.current).destroy())), []), e
            }
        },
        321447: (t, e, n) => {
            n.d(e, {
                useTabs: () => h
            });
            var l = n(50959),
                i = n(561781),
                o = n(763341),
                a = n(405964),
                r = n(499408),
                s = n(650151),
                c = n(283657),
                u = n(507017);

            function d() {
                return !1
            }

            function b(t) {
                const {
                    activationType: e = "manual"
                } = t, n = (0,
                    l.useMemo)((() => e), []);
                return (0, s.assert)(e === n, "Activation type must be invariant."), "automatic" === e ? function(t) {
                    const {
                        isRtl: e,
                        items: n,
                        preventDefaultIfHandled: i = !0,
                        isHighlighted: o,
                        onHighlight: a,
                        onActivate: r,
                        isCollapsed: s = d,
                        orientation: b
                    } = t, f = (0, l.useCallback)((t => {
                        a(t), s(t) || r(t)
                    }), [a, r, s]);
                    return (0, c.useKeyboardEventHandler)([(0, u.useItemsKeyboardNavigation)(b, e, n, o, f, !0)], i)
                }(t) : function(t) {
                    const {
                        isRtl: e,
                        items: n,
                        preventDefaultIfHandled: i = !0,
                        isHighlighted: o,
                        onHighlight: a,
                        onActivate: r,
                        orientation: s
                    } = t, d = n.find(o), b = (0, l.useCallback)((() => {
                        void 0 !== d && r(d)
                    }), [d, r]), f = (0, l.useCallback)((t => a(t)), [a]), h = (0, u.useItemsKeyboardNavigation)(s, e, n, o, f, !0), v = (0, c.useKeyboardActionHandler)([13, 32], b);
                    return (0, c.useKeyboardEventHandler)([h, v], i)
                }(t)
            }
            var f = n(846503);

            function h(t) {
                var e, n, s;
                const {
                    id: c,
                    items: u,
                    orientation: d,
                    activationType: h = "manual",
                    disabled: v,
                    tablistLabelId: g,
                    tablistLabel: p,
                    focusOnHighlight: m = !0,
                    preventDefaultIfKeyboardActionHandled: S = !0,
                    scrollIntoViewOptions: C,
                    isActive: _,
                    onActivate: k,
                    isCollapsed: I,
                    isRtl: H,
                    isDisclosureOpened: E
                } = t, T = (0, f.useMobileTouchState)(), y = E ? null : d || "horizontal", z = (0, l.useRef)(null !== (n = null === (e = t.itemsRefs) || void 0 === e ? void 0 : e.current) && void 0 !== n ? n : new Map), [w, M] = (0, l.useState)(), [R, A] = (0, a.useFocus)(), B = u.find(_), F = (0, l.useCallback)((t => !v && !t.disabled && t === w), [v, w]), O = (0, l.useCallback)((t => {
                    const e = z.current.get(t);
                    m && void 0 !== e && e !== document.activeElement && e.focus()
                }), [m]), x = (0, l.useRef)(), D = (0, l.useCallback)(((t, e) => {
                    v || t.disabled || (M(t), "number" == typeof e ? (clearTimeout(x.current), x.current = setTimeout((() => O(t)), e)) : O(t))
                }), [v, M, O]), K = (0, l.useCallback)((t => {
                    v || t.disabled || (k(t), F(t) || D(t))
                }), [v, k, F, D]), N = b({
                    isRtl: H,
                    items: (0, l.useMemo)((() => u.filter((t => !v && !t.disabled))), [u, v]),
                    activationType: h,
                    preventDefaultIfHandled: S,
                    onActivate: K,
                    isHighlighted: F,
                    onHighlight: D,
                    isCollapsed: I,
                    orientation: y
                }), V = (0, l.useCallback)((t => {
                    let e = null;
                    for (const [n, l] of z.current.entries())
                        if (t.target === l) {
                            e = n;
                            break
                        }
                    e && !F(e) && ("automatic" === h && I && !I(e) ? K(e) : D(e))
                }), [h, F, D, K, I]);
                (0, l.useEffect)((() => {
                    T || void 0 !== B && M(B)
                }), [B, T]), (0, l.useEffect)((() => {
                    R || M(void 0)
                }), [R]), (0, l.useEffect)((() => () => clearTimeout(x.current)), []);
                const L = null !== (s = null == C ? void 0 : C.additionalScroll) && void 0 !== s ? s : 0,
                    [W, q] = (0, r.useKeepActiveItemIntoView)({ ...C,
                        visibilityDetectionOffsetInline: L + 24,
                        snapToMiddle: !0,
                        activeItem: null != w ? w : B,
                        getKey: (0, l.useCallback)((t => t.id), [])
                    }),
                    j = (0, l.useCallback)(((t, e) => {
                        q(t, e), null !== e ? z.current.set(t, e) : z.current.delete(t)
                    }), [q]),
                    G = u.map((t => {
                        var e, n;
                        const l = F(t),
                            o = _(t),
                            a = null !== (n = null !== (e = t.disabled) && void 0 !== e ? e : v) && void 0 !== n && n,
                            r = !a && (R ? l : o);
                        return { ...(0, i.getTabAttributes)(t.id, r, o, t.tabpanelId, a),
                            highlighted: l,
                            active: o,
                            handleItemRef: j
                        }
                    }));
                return {
                    tabsBindings: G,
                    tablistBinding: { ...(0, i.getTabListAttributes)((0, i.getTablistId)(c), d, v, g, p),
                        onBlur: A.onBlur,
                        onFocus: (0, o.createSafeMulticastEventHandler)(A.onFocus, V),
                        onKeyDown: N
                    },
                    scrollWrapBinding: {
                        ref: W
                    },
                    onActivate: K,
                    onHighlight: D,
                    isHighlighted: F
                }
            }
        },
        561781: (t, e, n) => {
            n.d(e, {
                TabNames: () => r.TabNames,
                getTabAttributes: () => a,
                getTabListAttributes: () => o,
                getTablistId: () => i
            });
            var l = n(481058);

            function i(t) {
                return (0, l.createDomId)(t, "tablist")
            }

            function o(t, e = "horizontal", n, l, i) {
                return {
                    id: t,
                    role: "tablist",
                    "aria-orientation": e,
                    "aria-label": i,
                    "aria-labelledby": l,
                    "aria-disabled": n
                }
            }

            function a(t, e, n, l, i) {
                return {
                    id: t,
                    role: "tab",
                    tabIndex: e ? 0 : -1,
                    disabled: i,
                    "aria-selected": n,
                    "aria-controls": l,
                    "aria-disabled": i
                }
            }
            var r = n(304400)
        }
    }
]);