})\nprop('showAvgVolume', { type: 'boolean', def: true })\nprop('avgVolumeSMA', { type: 'string', def: 20 })\nprop('colorAvgVol', { type: 'Color', def: '#1cccb777'})\nprop('scaleSymbol', { type: 'string|boolean', def: false })\nprop('priceLine', { type: 'boolean', def: true })\nprop('showValueTracker', { type: 'boolean', def: true })\n\n\n\u002F\u002F Draw call\ndraw(ctx) {\n\n let cnv = $lib.layoutCnv($core, true, $props.showVolume)\n if (!cnv.upBodies.length) return\n let w = Math.max(cnv.upBodies[0].w, 1)\n\n drawCvPart(ctx, $lib.candleWick, cnv.dwWicks, 1, 'colorWickDw')\n drawCvPart(ctx, $lib.candleWick, cnv.upWicks, 1, 'colorWickUp')\n drawCvPart(ctx, $lib.candleBody, cnv.dwBodies, w, 'colorBodyDw')\n drawCvPart(ctx, $lib.candleBody, cnv.upBodies, w, 'colorBodyUp')\n drawCvPart(ctx, $lib.volumeBar, cnv.dwVolbars, w, 'colorVolDw')\n drawCvPart(ctx, $lib.volumeBar, cnv.upVolbars, w, 'colorVolUp')\n\n if ($props.showAvgVolume) $lib.avgVolume(ctx, $core, $props, cnv)\n\n}\n\n\u002F\u002F Draw candle part\ndrawCvPart(ctx, f, arr, w, color) {\n let layout = $core.layout\n ctx.lineWidth = w\n ctx.strokeStyle = $props[color]\n ctx.beginPath()\n for (var i = 0, n = arr.length; i \u003C n; i++) {\n f(ctx, arr[i], layout)\n }\n ctx.stroke()\n}\n\n\u002F\u002F Define y-range (by finding max High, min Low)\nyRange() {\n \u002F\u002F Getting updated data faster\n \u002F\u002F (we need 1 more update when using $core.dataSubset)\n let data = $core.hub.ovDataSubset($core.paneId, $core.id)\n let len = data.length\n var h, l, high = -Infinity, low = Infinity\n for(var i = 0; i \u003C len; i++) {\n let point = data[i]\n if (point[2] \u003E high) high = point[2]\n if (point[3] \u003C low) low = point[3]\n }\n return [high, low]\n}\n\n\u002F\u002F Use [Open, Close] for precision detection\npreSampler(x) =\u003E [x[1], x[4]]\n\n\u002F\u002F Price label + Scale symbol + price line\nvalueTracker(x) =\u003E {\n show: $props.showValueTracker,\n symbol: $props.scaleSymbol,\n line: $props.priceLine,\n color: $lib.candleColor($props, $core.data[$core.data.length - 1]),\n value: x[4] \u002F\u002F close\n}\n\n\u002F\u002F Define the OHLCV legend\nlegendHtml(x, prec, f) {\n let color1 = $core.colors.text\n let v = $core.cursor.getValue($core.paneId, $core.id)\n let sym = $props.currencySymbol\n let color2 = v[4] \u003E= v[1] ?\n $props.colorBodyUp : $props.colorBodyDw\n let fc = $lib.formatCash\n return \\`\n \u003Cspan style=\"color: \\${color2}\"\u003E\n \u003Cspan style=\"margin-left: 3px;\"\u003E\u003C\u002Fspan\u003E\n \u003Cspan style=\"color: \\${color1}\"\u003EO\u003C\u002Fspan\u003E\n \u003Cspan class=\"nvjs-ll-value\"\u003E\\${f(x[1])}\u003C\u002Fspan\u003E\n \u003Cspan style=\"color: \\${color1}\"\u003EH\u003C\u002Fspan\u003E\n \u003Cspan class=\"nvjs-ll-value\"\u003E\\${f(x[2])}\u003C\u002Fspan\u003E\n \u003Cspan style=\"color: \\${color1}\"\u003EL\u003C\u002Fspan\u003E\n \u003Cspan class=\"nvjs-ll-value\"\u003E\\${f(x[3])}\u003C\u002Fspan\u003E\n \u003Cspan style=\"color: \\${color1}\"\u003EC\u003C\u002Fspan\u003E\n \u003Cspan class=\"nvjs-ll-value\"\u003E\\${f(x[4])}\u003C\u002Fspan\u003E\n \u003Cspan style=\"color: \\${color1}\"\u003EV\u003C\u002Fspan\u003E\n \u003Cspan class=\"nvjs-ll-value\"\u003E\\${sym+fc(x[5])}\u003C\u002Fspan\u003E\n \u003Cspan\u003E\n \\`\n}\n`, xr = \u002F* @__PURE__ *\u002F Object.freeze(\u002F* @__PURE__ *\u002F Object.defineProperty({\n __proto__: null,\n default: Jr\n}, Symbol.toStringTag, { value: \"Module\" })), Cr = `\n\u002F\u002F NavyJS ~ 0.1-lite\n\n[OVERLAY name=Spline, ctx=Canvas, author=ChartMaster, version=1.0.0]\n\n\u002F\u002F Define new props\nprop('color', { type: 'Color', def: '#31ce31' })\nprop('lineWidth', { type: 'Integer', def: 1 })\nprop('dataIndex', { type: 'Integer', def: 1 })\n\n\ndraw(ctx) {\n ctx.lineWidth = $props.lineWidth\n ctx.lineJoin = \"round\"\n ctx.strokeStyle = $props.color\n ctx.beginPath()\n const layout = $core.layout\n const data = $core.data \u002F\u002F Full dataset\n const view = $core.view \u002F\u002F Visible view\n const idx = $props.dataIndex\n for (var i = view.i1, n = view.i2; i \u003C= n; i++) {\n let p = data[i]\n let x = layout.time2x(p[0])\n let y = layout.value2y(p[idx])\n ctx.lineTo(x, y)\n }\n ctx.stroke()\n}\n\n\u002F\u002F Price label + Scale symbol + price line\n\u002F*valueTracker(x) =\u003E {\n show: true,\n symbol: $core.src.name,\n line: true,\n color: $props.color,\n value: x[$props.dataIndex]\n}*\u002F\n\n\u002F\u002F Legend, defined as pairs [value, color]\nlegend(x) =\u003E [[x[$props.dataIndex], $props.color]]\n`, Or = \u002F* @__PURE__ *\u002F Object.freeze(\u002F* @__PURE__ *\u002F Object.defineProperty({\n __proto__: null,\n default: Cr\n}, Symbol.toStringTag, { value: \"Module\" }));\nvar zn = { exports: {} };\nconst Pr = (t, e = {}) =\u003E {\n const i = e.safe === !0 || e.keepProtected === !0;\n let s = !1;\n const n = (r) =\u003E {\n let o = \"\", u, a;\n for (const l of r.nodes)\n switch (l.type) {\n case \"block\":\n if (e.first && s === !0) {\n o += n(l);\n break;\n }\n if (e.preserveNewlines === !0) {\n u = n(l), a = u.split(`\n`), o += `\n`.repeat(a.length - 1);\n break;\n }\n if (i === !0 && l.protected === !0) {\n o += n(l);\n break;\n }\n s = !0;\n break;\n case \"line\":\n if (e.first && s === !0) {\n o += l.value;\n break;\n }\n i === !0 && l.protected === !0 && (o += l.value), s = !0;\n break;\n case \"open\":\n case \"close\":\n case \"text\":\n case \"newline\":\n default: {\n o += l.value || \"\";\n break;\n }\n }\n return o;\n };\n return n(t);\n};\nvar Nr = Pr;\nclass jn {\n constructor(e) {\n this.type = e.type, e.value && (this.value = e.value), e.match && (this.match = e.match), this.newline = e.newline || \"\";\n }\n get protected() {\n return Boolean(this.match) && this.match[1] === \"!\";\n }\n}\nclass Rr extends jn {\n constructor(e) {\n super(e), this.nodes = e.nodes || [];\n }\n push(e) {\n this.nodes.push(e);\n }\n get protected() {\n return this.nodes.length \u003E 0 && this.nodes[0].protected === !0;\n }\n}\nvar Dr = { Node: jn, Block: Rr }, qn = {};\n(function(t) {\n t.ada = { LINE_REGEX: \u002F^--.*\u002F }, t.apl = { LINE_REGEX: \u002F^⍝.*\u002F }, t.applescript = {\n BLOCK_OPEN_REGEX: \u002F^\\(\\*\u002F,\n BLOCK_CLOSE_REGEX: \u002F^\\*\\)\u002F\n }, t.csharp = {\n LINE_REGEX: \u002F^\\\u002F\\\u002F.*\u002F\n }, t.haskell = {\n BLOCK_OPEN_REGEX: \u002F^\\{-\u002F,\n BLOCK_CLOSE_REGEX: \u002F^-\\}\u002F,\n LINE_REGEX: \u002F^--.*\u002F\n }, t.javascript = {\n BLOCK_OPEN_REGEX: \u002F^\\\u002F\\*\\*?(!?)\u002F,\n BLOCK_CLOSE_REGEX: \u002F^\\*\\\u002F(\\n?)\u002F,\n LINE_REGEX: \u002F^\\\u002F\\\u002F(!?).*\u002F\n }, t.lua = {\n BLOCK_OPEN_REGEX: \u002F^--\\[\\[\u002F,\n BLOCK_CLOSE_REGEX: \u002F^\\]\\]\u002F,\n LINE_REGEX: \u002F^--.*\u002F\n }, t.matlab = {\n BLOCK_OPEN_REGEX: \u002F^%{\u002F,\n BLOCK_CLOSE_REGEX: \u002F^%}\u002F,\n LINE_REGEX: \u002F^%.*\u002F\n }, t.perl = {\n LINE_REGEX: \u002F^#.*\u002F\n }, t.php = {\n ...t.javascript,\n LINE_REGEX: \u002F^(#|\\\u002F\\\u002F).*?(?=\\?\u003E|\\n)\u002F\n }, t.python = {\n BLOCK_OPEN_REGEX: \u002F^\"\"\"\u002F,\n BLOCK_CLOSE_REGEX: \u002F^\"\"\"\u002F,\n LINE_REGEX: \u002F^#.*\u002F\n }, t.ruby = {\n BLOCK_OPEN_REGEX: \u002F^=begin\u002F,\n BLOCK_CLOSE_REGEX: \u002F^=end\u002F,\n LINE_REGEX: \u002F^#.*\u002F\n }, t.shebang = t.hashbang = {\n LINE_REGEX: \u002F^#!.*\u002F\n }, t.c = t.javascript, t.csharp = t.javascript, t.css = t.javascript, t.java = t.javascript, t.js = t.javascript, t.less = t.javascript, t.pascal = t.applescript, t.ocaml = t.applescript, t.sass = t.javascript, t.sql = t.ada, t.swift = t.javascript, t.ts = t.javascript, t.typscript = t.javascript;\n})(qn);\nconst { Node: Xe, Block: rn } = Dr, Br = qn, ui = {\n ESCAPED_CHAR_REGEX: \u002F^\\\\.\u002F,\n QUOTED_STRING_REGEX: \u002F^(['\"`])((?:\\\\\\1|[^\\1])*?)(\\1)\u002F,\n NEWLINE_REGEX: \u002F^\\r*\\n\u002F\n}, Lr = (t, e = {}) =\u003E {\n if (typeof t != \"string\")\n throw new TypeError(\"Expected input to be a string\");\n const i = new rn({ type: \"root\", nodes: [] }), s = [i], n = (e.language || \"javascript\").toLowerCase(), r = Br[n];\n if (typeof r == \"undefined\")\n throw new Error(`Language \"${n}\" is not supported by strip-comments`);\n const { LINE_REGEX: o, BLOCK_OPEN_REGEX: u, BLOCK_CLOSE_REGEX: a } = r;\n let l = i, p = t, m, I;\n const y = [u, a].filter(Boolean);\n let b = !1;\n y.every((E) =\u003E E.source === '^\"\"\"') && (b = !0);\n const d = (E = p[0] || \"\") =\u003E (p = p.slice(E.length), E), g = (E, P = \"text\") =\u003E {\n const L = E.exec(p);\n if (L)\n return d(L[0]), { type: P, value: L[0], match: L };\n }, A = (E) =\u003E {\n if (I && I.type === \"text\" && E.type === \"text\") {\n I.value += E.value;\n return;\n }\n l.push(E), E.nodes && (s.push(E), l = E), I = E;\n }, Y = () =\u003E {\n if (l.type === \"root\")\n throw new SyntaxError(\"Unclosed block comment\");\n s.pop(), l = s[s.length - 1];\n };\n for (; p !== \"\"; ) {\n if (m = g(ui.ESCAPED_CHAR_REGEX, \"text\")) {\n A(new Xe(m));\n continue;\n }\n if (l.type !== \"block\" && (!I || !\u002F\\w$\u002F.test(I.value)) && !(b && p.startsWith('\"\"\"')) && (m = g(ui.QUOTED_STRING_REGEX, \"text\"))) {\n A(new Xe(m));\n continue;\n }\n if (m = g(ui.NEWLINE_REGEX, \"newline\")) {\n A(new Xe(m));\n continue;\n }\n if (u && e.block && !(b && l.type === \"block\") && (m = g(u, \"open\"))) {\n A(new rn({ type: \"block\" })), A(new Xe(m));\n continue;\n }\n if (a && l.type === \"block\" && e.block && (m = g(a, \"close\"))) {\n m.newline = m.match[1] || \"\", A(new Xe(m)), Y();\n continue;\n }\n if (o && l.type !== \"block\" && e.line && (m = g(o, \"line\"))) {\n A(new Xe(m));\n continue;\n }\n if (m = g(\u002F^[a-zABD-Z0-9\\t ]+\u002F, \"text\")) {\n A(new Xe(m));\n continue;\n }\n A(new Xe({ type: \"text\", value: d(p[0]) }));\n }\n return i;\n};\nvar Ur = Lr;\n\u002F*!\n * strip-comments \u003Chttps:\u002F\u002Fgithub.com\u002Fjonschlinkert\u002Fstrip-comments\u003E\n * Copyright (c) 2014-present, Jon Schlinkert.\n * Released under the MIT License.\n *\u002F\nconst Gt = Nr, wt = Ur, Ht = zn.exports = (t, e) =\u003E {\n const i = { ...e, block: !0, line: !0 };\n return Gt(wt(t, i), i);\n};\nHt.block = (t, e) =\u003E {\n const i = { ...e, block: !0 };\n return Gt(wt(t, i), i);\n};\nHt.line = (t, e) =\u003E {\n const i = { ...e, line: !0 };\n return Gt(wt(t, i), i);\n};\nHt.first = (t, e) =\u003E {\n const i = { ...e, block: !0, line: !0, first: !0 };\n return Gt(wt(t, i), i);\n};\nHt.parse = wt;\nfunction Fr(t, e) {\n return zn.exports(t);\n}\nfunction Gr(t, e) {\n let i = Wn(t, e);\n for (var s of i) {\n let n = t.slice(0, s[0] + 1);\n n += t.slice(s[0] + 1, s[1]).replaceAll(\"\u002F*\", \"[!C~1!]\").replaceAll(\"\u002F\u002F\", \"[!C~2!]\"), n += t.slice(s[1]), t = n;\n }\n return t;\n}\nfunction Hr(t, e) {\n return t.replaceAll(\"[!C~1!]\", \"\u002F*\").replaceAll(\"[!C~2!]\", \"\u002F\u002F\");\n}\nfunction Wn(t, e) {\n let i = { \"'\": 0, '\"': 0, \"`\": 0 }, s = [], n = null;\n for (var r = 0; r \u003C t.length; r++)\n for (var o in i)\n if (t[r] === o && t[r - 1] !== \"\\\\\" && (i[o]++, n || (n = [r, void 0])), t[r] === o && t[r - 1] !== \"\\\\\" && r \u003E n[0] && (i[o] = 0, n && Object.values(i).every((u) =\u003E !u) && (n[1] = r, s.push(n), n = null)), i[o] \u003C 0)\n throw `Missing quote ${o} in ${e}`;\n if (n !== null)\n throw `Missing quote in ${e}: ${JSON.stringify(i)}`;\n return s;\n}\nfunction Vr(t, e = btoa) {\n let i = \u002F\\\u002F([^*\\\u002F]?.+)\\\u002F\u002Fg;\n do {\n var s = i.exec(t);\n if (s) {\n let n = s[0].length;\n s[1].slice(-1) === \"*\" && (n--, s[1] = s[1].slice(0, -1));\n let r = t.slice(0, s.index + 1), o = e(s[1]);\n r += o + t.slice(s.index + n - 1), t = r, i.lastIndex = s.index + o.length;\n }\n } while (s);\n return t;\n}\nfunction Xr(t, e, i, s = \"{}\") {\n let n = s[0], r = s[1], o = { \"'\": 0, '\"': 0, \"`\": 0 }, u = 0, a = null;\n for (var l = e; l \u003C t.length; l++) {\n for (var p in o)\n if (t[l] === p && t[l - 1] !== \"\\\\\" && (o[p]++, a || (a = [l, void 0])), t[l] === p && t[l - 1] !== \"\\\\\" && l \u003E a[0] && (o[p] = 0, a && Object.values(o).every((I) =\u003E !I) && (a[1] = l, a = null)), o[p] \u003C 0)\n throw `Missing quote ${p} in ${i}`;\n if (o[\"'\"] + o['\"'] + o[\"`\"] === 0 && (t[l] === n && u++, t[l] === r && u--, u === 0))\n break;\n }\n if (u !== 0)\n throw `Missing bracket in ${i}: ${s}`;\n if (a !== null)\n throw `Missing quote in ${i}: ${JSON.stringify(o)}`;\n return l;\n}\nconst hi = {\n maskStrings: Gr,\n unmaskStrings: Hr,\n findStrings: Wn,\n maskRegex: Vr,\n decomment: Fr,\n findClosingBracket: Xr\n}, Nt = \u002F(function[\\s]+|)([$A-Z_][0-9A-Z_$\\.]*)[\\s]*?\\(([^()]*?)\\)[\\s]*?{\u002Fgmi, Rt = \u002F(function[\\s]+|)([$A-Z_][0-9A-Z_$\\.]*)[\\s]*?\\(([^()]*?)\\)[\\s]*?=\u003E[\\s]*?{\u002Fgmi, fi = \u002F(function[\\s]+|)([$A-Z_][0-9A-Z_$\\.]*)[\\s]*?\\(([^()]*?)\\)[\\s]*?=\u003E\u002Fgmi, on = [\"if\", \"for\", \"while\", \"switch\", \"catch\", \"with\"];\nclass zr {\n constructor(e, i) {\n this.tagProps = this.parseTagProps(e), this.src = i, this.flags = \"\", this.parseBody();\n }\n parseTagProps(e) {\n let i = {}, s = e.split(\",\");\n for (var n of s) {\n let [r, o] = n.split(\"=\");\n i[r.trim()] = o.trim();\n }\n return i;\n }\n parseBody() {\n let e = hi.decomment(this.src);\n e = this.prepFuncions1(e), e = this.prepFuncions2(e), e = this.prepFuncions3(e), this.prefab = this.wrapTheCode(e, this.flags);\n }\n prepFuncions1(e) {\n let i = \"\", s = 0;\n Nt.lastIndex = 0;\n do {\n var n = Nt.exec(e);\n if (n) {\n n[1].trim();\n let r = n[2], o = n[3], u = Nt.lastIndex - 1, a = hi.findClosingBracket(e, u);\n if (on.includes(r))\n i += e.slice(s, a + 1);\n else {\n let l = e.slice(u, a + 1);\n i += e.slice(s, n.index), i += `var ${r} = (${o}) =\u003E ${l}`, this.parseFlags(r, o, l);\n }\n Nt.lastIndex = a, s = a + 1;\n }\n } while (n);\n return i + e.slice(s);\n }\n prepFuncions2(e) {\n let i = \"\", s = 0;\n Rt.lastIndex = 0;\n do {\n var n = Rt.exec(e);\n if (n) {\n n[1].trim();\n let r = n[2], o = n[3], u = Rt.lastIndex - 1, a = hi.findClosingBracket(e, u);\n if (on.includes(r))\n i += e.slice(s, a + 1);\n else {\n let l = e.slice(u, a + 1);\n i += e.slice(s, n.index), i += `var ${r} = (${o}) =\u003E (${l})`, this.parseFlags(r, o, l);\n }\n Rt.lastIndex = a, s = a + 1;\n }\n } while (n);\n return i + e.slice(s);\n }\n prepFuncions3(e) {\n let i = \"\", s = 0;\n fi.lastIndex = 0;\n do {\n var n = fi.exec(e);\n if (n) {\n n[1].trim();\n let r = n[2], o = n[3], u = fi.lastIndex;\n i += e.slice(s, n.index), i += `var ${r} = (${o}) =\u003E `, this.parseFlags(r, o, \"\"), s = u + 1;\n }\n } while (n);\n return i + e.slice(s);\n }\n parseFlags(e, i, s) {\n if (e === \"yRange\") {\n let n = !!i.trim().length;\n this.flags += `yRangePreCalc: ${n},\n`;\n }\n }\n wrapTheCode(e, i) {\n return new Function(\"env\", `\n\n \u002F\u002F Setup the environment\n let { $core, $props, $events } = env\n let prop = (...args) =\u003E env.prop(...args)\n\n \u002F\u002F Add primitives\n let $lib = env.lib\n\n \u002F\u002F Function stubs\n var init = () =\u003E {}\n var destroy = () =\u003E {}\n var meta = () =\u003E null\n var dataFormat = () =\u003E null\n var draw = () =\u003E {}\n var drawSidebar = null\n var drawBotbar = null\n var yRange = null\n var preSampler = null\n var legend = null\n var legendHtml = null\n var valueTracker = null\n\n \u002F\u002F Overlay code\n ${e}\n\n \u002F\u002F Output overlay object\n return {\n gridId: () =\u003E $core.layout.id,\n id: () =\u003E $core.id,\n init, meta, dataFormat,\n draw, drawSidebar, drawBotbar,\n yRange, preSampler,\n legend, legendHtml,\n valueTracker,\n \u002F\u002F Generated flags\n ${i}\n }\n `);\n }\n}\nconst ln = 0.1, jr = \"lite\", qr = \u002F\\\u002F\\*[\\s\\S]*?\\*\\\u002F|([^\\\\:]|^)\\\u002F\\\u002F.*$\u002Fgm, an = \u002F\\[OVERLAY[\\s]+([\\s\\S]*?)]([\\s\\S]*?)(\\[OVERLAY|\\[SCRIPT|\\[EOF)\u002Fgm;\nclass Wr {\n constructor(e, i = \"Unknown Script\") {\n this.version = ln, this.src = e + `\n[EOF]`, this.scriptName = i, this.scriptVers = this.navyVers()[0], this.scriptTag = this.navyVers()[1], this.overlays = [], this.scripts = [], this.scriptVers === 0 && console.warn(`${i}: There is no script version string`), this.scriptVers \u003E this.version && console.warn(`${i}: Script version \u003E parser version`), this.scriptTag !== jr && console.warn(\n `${i}: Script version should have 'lite' tag\nMost likely are using the community version of NavyJS\nwith a script written for the PRO version.\nIf not the case just use 'lite' tag: ${ln}-lite`\n ), this.overlayTags();\n }\n navyVers() {\n let e = (this.src.match(qr) || [])[0];\n if (e) {\n let i = e.split(\"~\");\n if (i.length \u003C 2)\n return [0];\n let s = parseFloat(i[1]), n = i[1].split(\"-\")[1];\n return [s === s ? s : 0, n];\n }\n return [0];\n }\n overlayTags() {\n for (var e; e = an.exec(this.src); )\n this.overlays.push(new zr(\n e[1],\n e[2]\n )), an.lastIndex -= 10;\n }\n}\nconst Zr = \u002F* @__PURE__ *\u002F Object.assign({ \"..\u002Fscripts\u002Farea.navy\": kr, \"..\u002Fscripts\u002Fcandles.navy\": xr, \"..\u002Fscripts\u002Fspline.navy\": Or });\nclass Qr {\n init(e) {\n this.srcLib = Object.values(Zr).map((i) =\u003E i.default), this.srcLib.push(...e), this.prefabs = {}, this.parse();\n }\n parse() {\n this.prefabs = {};\n for (var e of this.srcLib) {\n let s = new Wr(e);\n for (var i of s.overlays)\n this.prefabs[i.tagProps.name] = {\n name: i.tagProps.name,\n author: i.tagProps.author,\n version: i.tagProps.version,\n ctx: i.tagProps.ctx || \"Canvas\",\n make: i.prefab\n };\n }\n }\n}\nlet pi = {};\nfunction Kr(t) {\n return pi[t] || (pi[t] = new Qr(t)), pi[t];\n}\nconst Zn = { instance: Kr };\nclass $r {\n constructor(e, i, s, n) {\n this.ctx = s, this.core = e, this.style = n.src[6] || i, this.draw(n);\n }\n draw(e) {\n const i = e.src[4] \u003E= e.src[1], s = i ? this.style.colorCandleUp : this.style.colorCandleDw, n = i ? this.style.colorWickUp : this.style.colorWickDw;\n let r = Math.max(e.w, 1), o = e.x - 1;\n this.ctx.lineWidth = 1, this.ctx.strokeStyle = n, this.ctx.beginPath(), this.ctx.moveTo(o, Math.floor(e.h)), this.ctx.lineTo(o, Math.floor(e.l)), this.ctx.stroke(), this.ctx.lineWidth = r, this.ctx.strokeStyle = s, this.ctx.beginPath(), this.ctx.moveTo(\n o,\n Math.floor(Math.min(e.o, e.c))\n ), this.ctx.lineTo(\n o,\n Math.floor(Math.max(e.o, e.c)) + (e.o === e.c ? 1 : 0)\n ), this.ctx.stroke();\n }\n}\nfunction eo(t, e) {\n let i = e.x - 1;\n t.moveTo(\n i,\n Math.floor(Math.min(e.o - 1, e.c - 1))\n ), t.lineTo(\n i,\n Math.floor(Math.max(e.o, e.c))\n );\n}\nfunction to(t, e) {\n let i = e.x - 1;\n t.moveTo(i, Math.floor(e.h)), t.lineTo(i, Math.floor(e.l));\n}\nfunction io(t, e, i) {\n let s = i.height, n = Math.max(1, e.x2 - e.x1 - 0.5), r = e.h, o = (e.x2 + e.x1) * 0.5;\n t.lineWidth = n, t.moveTo(o, s - r), t.lineTo(o, s);\n}\nclass no {\n constructor(e, i, s, n) {\n this.ctx = s, this.style = n.src[6] || i, this.layout = e.layout, this.draw(n);\n }\n draw(e) {\n let i = this.layout.height, s = e.x2 - e.x1, n = Math.floor(e.h);\n this.ctx.fillStyle = e.green ? this.style.colorVolUp : this.style.colorVolDw, this.ctx.fillRect(\n Math.floor(e.x1),\n Math.floor(i - n - 0.5),\n Math.floor(s),\n Math.floor(n + 1)\n );\n }\n}\nfunction so(t, e = !0, i = !0) {\n let s = t.props.config, n = t.props.interval, r = t.data, o = t.layout.time2x, u = t.layout, a = t.view, l = 5, p = [], m = [], I = [], y = [], b = [], d = [];\n if (i)\n var g = ro(t.dataSubset, l), A = s.VOLSCALE * u.height \u002F g;\n var Y, E, P, L = void 0;\n let { A: F, B: M, pxStep: R } = u, O = R * s.CANDLEW, J = R \u003E 5 ? 1 : 0;\n for (var H = a.i1, k = a.i2; H \u003C= k; H++) {\n let _ = r[H], T = _[4] \u003E= _[1];\n if (P = o(_[0]) + 1, r[H - 1] && _[0] - r[H - 1][0] \u003E n && (L = null), e) {\n let w = {\n x: P,\n w: O,\n o: Math.floor(_[1] * F + M),\n h: Math.floor(_[2] * F + M),\n l: Math.floor(_[3] * F + M),\n c: Math.floor(_[4] * F + M),\n green: T,\n src: _\n };\n T ? (p.push(w), I.push(w)) : (m.push(w), y.push(w));\n }\n if (i) {\n Y = L || Math.floor(P - R * 0.5), E = Math.floor(P + R * 0.5) - 0.5;\n let w = {\n x1: Y,\n x2: E,\n h: _[5] * A,\n green: T,\n src: _\n };\n T ? b.push(w) : d.push(w);\n }\n L = E + J;\n }\n return {\n upBodies: p,\n upWicks: I,\n dwBodies: m,\n dwWicks: y,\n upVolbars: b,\n dwVolbars: d,\n maxVolume: g\n };\n}\nfunction ro(t, e) {\n let i = 0;\n for (var s = 0; s \u003C t.length; s++) {\n let n = t[s][e];\n n \u003E i && (i = n);\n }\n return i;\n}\nfunction Qn(t, e, i, s, n) {\n let r = 0, o = [], u = 0, a = 1 \u002F n, l = Math.max(i - n, 0);\n for (var p = l; p \u003C= s; p++)\n r += t[p][e], u++, u \u003E n && (r -= t[p - n][e], u--), u === n && o.push([t[p][0], r * a]);\n return o;\n}\nfunction oo(t, e = []) {\n return e[4] \u003E= e[1] ? t.colorBodyUp : t.colorBodyDw;\n}\nfunction lo(t, e, i, s) {\n let n = e.view.i1, r = e.view.i2, o = i.avgVolumeSMA, u = Qn(e.data, 5, n, r, o), a = e.layout, l = s.maxVolume, p = e.props.config.VOLSCALE * a.height \u002F l, m = a.height;\n e.props.config.VOLSCALE * 0.5 * m, t.lineJoin = \"round\", t.lineWidth = 0.75, t.strokeStyle = i.colorAvgVol, t.beginPath();\n for (var I = 0, y = u.length; I \u003C y; I++) {\n let b = a.time2x(u[I][0]), d = m - u[I][1] * p;\n t.lineTo(b, d);\n }\n t.stroke();\n}\nconst ao = N.formatCash;\nclass co {\n constructor(e, i, s, n) {\n let r = Ue.instance(n.id), o = Fe.instance(n.id), u = he.instance(n.id), a = Ei.instance(n.id);\n this.ovSrc = i, this.overlay = null, this.id = e, this.$core = { hub: r, meta: o, scan: a }, this.update(i, s, n), this.$props = i.props, this.$events = u, this.lib = {\n Candle: $r,\n Volbar: no,\n layoutCnv: so,\n formatCash: ao,\n candleBody: eo,\n candleWick: to,\n volumeBar: io,\n fastSma: Qn,\n avgVolume: lo,\n candleColor: oo\n };\n }\n prop(e, i = {}) {\n e in this.$props || (this.$props[e] = i.def);\n }\n update(e, i, s) {\n if (!i)\n return;\n let n = this.$core;\n n.layout = this.buildLayout(\n i,\n s.range\n ), n.dataSubset = e.dataSubset, n.data = e.data, n.view = e.dataView, n.id = e.id, n.paneId = n.layout.id, n.uuid = e.uuid, n.range = s.range, n.colors = s.colors, n.cursor = s.cursor, n.src = e, n.props = s;\n }\n buildLayout(e, i) {\n let s = {};\n this.scaleId = this.getScaleId(e);\n let n = e.scales[this.scaleId];\n return Xn(\n Object.assign(s, e, n),\n i\n );\n }\n getScaleId(e) {\n let i = e.scales;\n for (var s in i)\n if (i[s].scaleSpecs.ovIdxs.includes(this.id))\n return s;\n }\n}\nclass Vt {\n constructor(e, i, s) {\n this.id = 0, this.nvId = s, this.name = i, this.zIndex = 0, this.overlay = null, this.ovSrc = null, this.env = null, this.ctxType = null, this.display = !0, this.opacity = void 0;\n }\n update() {\n var e;\n !this.ovSrc || (this.display = (e = this.ovSrc.settings.display) != null ? e : !0);\n }\n}\nclass uo {\n constructor(e) {\n this.t0 = this.t = N.now(), this.id = setInterval(() =\u003E {\n N.now() - this.t \u003E 100 || (N.now() - this.t0 \u003E 1200 && this.stop(), this.id && e(this), this.t = N.now());\n }, 16);\n }\n stop() {\n clearInterval(this.id), this.id = null;\n }\n}\nvar Kn = { exports: {} };\n\u002F*! Hammer.JS - v2.0.7 - 2016-04-22\n * http:\u002F\u002Fhammerjs.github.io\u002F\n *\n * Copyright (c) 2016 Jorik Tangelder;\n * Licensed under the MIT license *\u002F\n(function(t) {\n (function(e, i, s, n) {\n var r = [\"\", \"webkit\", \"Moz\", \"MS\", \"ms\", \"o\"], o = i.createElement(\"div\"), u = \"function\", a = Math.round, l = Math.abs, p = Date.now;\n function m(c, h, f) {\n return setTimeout(E(c, f), h);\n }\n function I(c, h, f) {\n return Array.isArray(c) ? (y(c, f[h], f), !0) : !1;\n }\n function y(c, h, f) {\n var v;\n if (!!c)\n if (c.forEach)\n c.forEach(h, f);\n else if (c.length !== n)\n for (v = 0; v \u003C c.length; )\n h.call(f, c[v], v, c), v++;\n else\n for (v in c)\n c.hasOwnProperty(v) && h.call(f, c[v], v, c);\n }\n function b(c, h, f) {\n var v = \"DEPRECATED METHOD: \" + h + `\n` + f + ` AT \n`;\n return function() {\n var S = new Error(\"get-stack-trace\"), x = S && S.stack ? S.stack.replace(\u002F^[^\\(]+?[\\n$]\u002Fgm, \"\").replace(\u002F^\\s+at\\s+\u002Fgm, \"\").replace(\u002F^Object.\u003Canonymous\u003E\\s*\\(\u002Fgm, \"{anonymous}()@\") : \"Unknown Stack Trace\", z = e.console && (e.console.warn || e.console.log);\n return z && z.call(e.console, v, x), c.apply(this, arguments);\n };\n }\n var d;\n typeof Object.assign != \"function\" ? d = function(h) {\n if (h === n || h === null)\n throw new TypeError(\"Cannot convert undefined or null to object\");\n for (var f = Object(h), v = 1; v \u003C arguments.length; v++) {\n var S = arguments[v];\n if (S !== n && S !== null)\n for (var x in S)\n S.hasOwnProperty(x) && (f[x] = S[x]);\n }\n return f;\n } : d = Object.assign;\n var g = b(function(h, f, v) {\n for (var S = Object.keys(f), x = 0; x \u003C S.length; )\n (!v || v && h[S[x]] === n) && (h[S[x]] = f[S[x]]), x++;\n return h;\n }, \"extend\", \"Use `assign`.\"), A = b(function(h, f) {\n return g(h, f, !0);\n }, \"merge\", \"Use `assign`.\");\n function Y(c, h, f) {\n var v = h.prototype, S;\n S = c.prototype = Object.create(v), S.constructor = c, S._super = v, f && d(S, f);\n }\n function E(c, h) {\n return function() {\n return c.apply(h, arguments);\n };\n }\n function P(c, h) {\n return typeof c == u ? c.apply(h && h[0] || n, h) : c;\n }\n function L(c, h) {\n return c === n ? h : c;\n }\n function F(c, h, f) {\n y(J(h), function(v) {\n c.addEventListener(v, f, !1);\n });\n }\n function M(c, h, f) {\n y(J(h), function(v) {\n c.removeEventListener(v, f, !1);\n });\n }\n function R(c, h) {\n for (; c; ) {\n if (c == h)\n return !0;\n c = c.parentNode;\n }\n return !1;\n }\n function O(c, h) {\n return c.indexOf(h) \u003E -1;\n }\n function J(c) {\n return c.trim().split(\u002F\\s+\u002Fg);\n }\n function H(c, h, f) {\n if (c.indexOf && !f)\n return c.indexOf(h);\n for (var v = 0; v \u003C c.length; ) {\n if (f && c[v][f] == h || !f && c[v] === h)\n return v;\n v++;\n }\n return -1;\n }\n function k(c) {\n return Array.prototype.slice.call(c, 0);\n }\n function _(c, h, f) {\n for (var v = [], S = [], x = 0; x \u003C c.length; ) {\n var z = h ? c[x][h] : c[x];\n H(S, z) \u003C 0 && v.push(c[x]), S[x] = z, x++;\n }\n return f && (h ? v = v.sort(function(se, ae) {\n return se[h] \u003E ae[h];\n }) : v = v.sort()), v;\n }\n function T(c, h) {\n for (var f, v, S = h[0].toUpperCase() + h.slice(1), x = 0; x \u003C r.length; ) {\n if (f = r[x], v = f ? f + S : h, v in c)\n return v;\n x++;\n }\n return n;\n }\n var w = 1;\n function B() {\n return w++;\n }\n function j(c) {\n var h = c.ownerDocument || c;\n return h.defaultView || h.parentWindow || e;\n }\n var V = \u002Fmobile|tablet|ip(ad|hone|od)|android\u002Fi, Q = \"ontouchstart\" in e, ee = T(e, \"PointerEvent\") !== n, Ee = Q && V.test(navigator.userAgent), re = \"touch\", G = \"pen\", ie = \"mouse\", ye = \"kinect\", Ge = 25, D = 1, fe = 2, K = 4, oe = 8, ot = 1, He = 2, qe = 4, ft = 8, pt = 16, Me = He | qe, We = ft | pt, Yi = Me | We, Mi = [\"x\", \"y\"], Et = [\"clientX\", \"clientY\"];\n function be(c, h) {\n var f = this;\n this.manager = c, this.callback = h, this.element = c.element, this.target = c.options.inputTarget, this.domHandler = function(v) {\n P(c.options.enable, [c]) && f.handler(v);\n }, this.init();\n }\n be.prototype = {\n handler: function() {\n },\n init: function() {\n this.evEl && F(this.element, this.evEl, this.domHandler), this.evTarget && F(this.target, this.evTarget, this.domHandler), this.evWin && F(j(this.element), this.evWin, this.domHandler);\n },\n destroy: function() {\n this.evEl && M(this.element, this.evEl, this.domHandler), this.evTarget && M(this.target, this.evTarget, this.domHandler), this.evWin && M(j(this.element), this.evWin, this.domHandler);\n }\n };\n function os(c) {\n var h, f = c.options.inputClass;\n return f ? h = f : ee ? h = zt : Ee ? h = Mt : Q ? h = jt : h = Yt, new h(c, ls);\n }\n function ls(c, h, f) {\n var v = f.pointers.length, S = f.changedPointers.length, x = h & D && v - S === 0, z = h & (K | oe) && v - S === 0;\n f.isFirst = !!x, f.isFinal = !!z, x && (c.session = {}), f.eventType = h, as(c, f), c.emit(\"hammer.input\", f), c.recognize(f), c.session.prevInput = f;\n }\n function as(c, h) {\n var f = c.session, v = h.pointers, S = v.length;\n f.firstInput || (f.firstInput = ki(h)), S \u003E 1 && !f.firstMultiple ? f.firstMultiple = ki(h) : S === 1 && (f.firstMultiple = !1);\n var x = f.firstInput, z = f.firstMultiple, ne = z ? z.center : x.center, se = h.center = Ji(v);\n h.timeStamp = p(), h.deltaTime = h.timeStamp - x.timeStamp, h.angle = Xt(ne, se), h.distance = St(ne, se), cs(f, h), h.offsetDirection = Ci(h.deltaX, h.deltaY);\n var ae = xi(h.deltaTime, h.deltaX, h.deltaY);\n h.overallVelocityX = ae.x, h.overallVelocityY = ae.y, h.overallVelocity = l(ae.x) \u003E l(ae.y) ? ae.x : ae.y, h.scale = z ? fs(z.pointers, v) : 1, h.rotation = z ? hs(z.pointers, v) : 0, h.maxPointers = f.prevInput ? h.pointers.length \u003E f.prevInput.maxPointers ? h.pointers.length : f.prevInput.maxPointers : h.pointers.length, us(f, h);\n var Je = c.element;\n R(h.srcEvent.target, Je) && (Je = h.srcEvent.target), h.target = Je;\n }\n function cs(c, h) {\n var f = h.center, v = c.offsetDelta || {}, S = c.prevDelta || {}, x = c.prevInput || {};\n (h.eventType === D || x.eventType === K) && (S = c.prevDelta = {\n x: x.deltaX || 0,\n y: x.deltaY || 0\n }, v = c.offsetDelta = {\n x: f.x,\n y: f.y\n }), h.deltaX = S.x + (f.x - v.x), h.deltaY = S.y + (f.y - v.y);\n }\n function us(c, h) {\n var f = c.lastInterval || h, v = h.timeStamp - f.timeStamp, S, x, z, ne;\n if (h.eventType != oe && (v \u003E Ge || f.velocity === n)) {\n var se = h.deltaX - f.deltaX, ae = h.deltaY - f.deltaY, Je = xi(v, se, ae);\n x = Je.x, z = Je.y, S = l(Je.x) \u003E l(Je.y) ? Je.x : Je.y, ne = Ci(se, ae), c.lastInterval = h;\n } else\n S = f.velocity, x = f.velocityX, z = f.velocityY, ne = f.direction;\n h.velocity = S, h.velocityX = x, h.velocityY = z, h.direction = ne;\n }\n function ki(c) {\n for (var h = [], f = 0; f \u003C c.pointers.length; )\n h[f] = {\n clientX: a(c.pointers[f].clientX),\n clientY: a(c.pointers[f].clientY)\n }, f++;\n return {\n timeStamp: p(),\n pointers: h,\n center: Ji(h),\n deltaX: c.deltaX,\n deltaY: c.deltaY\n };\n }\n function Ji(c) {\n var h = c.length;\n if (h === 1)\n return {\n x: a(c[0].clientX),\n y: a(c[0].clientY)\n };\n for (var f = 0, v = 0, S = 0; S \u003C h; )\n f += c[S].clientX, v += c[S].clientY, S++;\n return {\n x: a(f \u002F h),\n y: a(v \u002F h)\n };\n }\n function xi(c, h, f) {\n return {\n x: h \u002F c || 0,\n y: f \u002F c || 0\n };\n }\n function Ci(c, h) {\n return c === h ? ot : l(c) \u003E= l(h) ? c \u003C 0 ? He : qe : h \u003C 0 ? ft : pt;\n }\n function St(c, h, f) {\n f || (f = Mi);\n var v = h[f[0]] - c[f[0]], S = h[f[1]] - c[f[1]];\n return Math.sqrt(v * v + S * S);\n }\n function Xt(c, h, f) {\n f || (f = Mi);\n var v = h[f[0]] - c[f[0]], S = h[f[1]] - c[f[1]];\n return Math.atan2(S, v) * 180 \u002F Math.PI;\n }\n function hs(c, h) {\n return Xt(h[1], h[0], Et) + Xt(c[1], c[0], Et);\n }\n function fs(c, h) {\n return St(h[0], h[1], Et) \u002F St(c[0], c[1], Et);\n }\n var ps = {\n mousedown: D,\n mousemove: fe,\n mouseup: K\n }, ds = \"mousedown\", gs = \"mousemove mouseup\";\n function Yt() {\n this.evEl = ds, this.evWin = gs, this.pressed = !1, be.apply(this, arguments);\n }\n Y(Yt, be, {\n handler: function(h) {\n var f = ps[h.type];\n f & D && h.button === 0 && (this.pressed = !0), f & fe && h.which !== 1 && (f = K), this.pressed && (f & K && (this.pressed = !1), this.callback(this.manager, f, {\n pointers: [h],\n changedPointers: [h],\n pointerType: ie,\n srcEvent: h\n }));\n }\n });\n var ms = {\n pointerdown: D,\n pointermove: fe,\n pointerup: K,\n pointercancel: oe,\n pointerout: oe\n }, vs = {\n 2: re,\n 3: G,\n 4: ie,\n 5: ye\n }, Oi = \"pointerdown\", Pi = \"pointermove pointerup pointercancel\";\n e.MSPointerEvent && !e.PointerEvent && (Oi = \"MSPointerDown\", Pi = \"MSPointerMove MSPointerUp MSPointerCancel\");\n function zt() {\n this.evEl = Oi, this.evWin = Pi, be.apply(this, arguments), this.store = this.manager.session.pointerEvents = [];\n }\n Y(zt, be, {\n handler: function(h) {\n var f = this.store, v = !1, S = h.type.toLowerCase().replace(\"ms\", \"\"), x = ms[S], z = vs[h.pointerType] || h.pointerType, ne = z == re, se = H(f, h.pointerId, \"pointerId\");\n x & D && (h.button === 0 || ne) ? se \u003C 0 && (f.push(h), se = f.length - 1) : x & (K | oe) && (v = !0), !(se \u003C 0) && (f[se] = h, this.callback(this.manager, x, {\n pointers: f,\n changedPointers: [h],\n pointerType: z,\n srcEvent: h\n }), v && f.splice(se, 1));\n }\n });\n var Is = {\n touchstart: D,\n touchmove: fe,\n touchend: K,\n touchcancel: oe\n }, ys = \"touchstart\", bs = \"touchstart touchmove touchend touchcancel\";\n function Ni() {\n this.evTarget = ys, this.evWin = bs, this.started = !1, be.apply(this, arguments);\n }\n Y(Ni, be, {\n handler: function(h) {\n var f = Is[h.type];\n if (f === D && (this.started = !0), !!this.started) {\n var v = As.call(this, h, f);\n f & (K | oe) && v[0].length - v[1].length === 0 && (this.started = !1), this.callback(this.manager, f, {\n pointers: v[0],\n changedPointers: v[1],\n pointerType: re,\n srcEvent: h\n });\n }\n }\n });\n function As(c, h) {\n var f = k(c.touches), v = k(c.changedTouches);\n return h & (K | oe) && (f = _(f.concat(v), \"identifier\", !0)), [f, v];\n }\n var _s = {\n touchstart: D,\n touchmove: fe,\n touchend: K,\n touchcancel: oe\n }, Ts = \"touchstart touchmove touchend touchcancel\";\n function Mt() {\n this.evTarget = Ts, this.targetIds = {}, be.apply(this, arguments);\n }\n Y(Mt, be, {\n handler: function(h) {\n var f = _s[h.type], v = ws.call(this, h, f);\n !v || this.callback(this.manager, f, {\n pointers: v[0],\n changedPointers: v[1],\n pointerType: re,\n srcEvent: h\n });\n }\n });\n function ws(c, h) {\n var f = k(c.touches), v = this.targetIds;\n if (h & (D | fe) && f.length === 1)\n return v[f[0].identifier] = !0, [f, f];\n var S, x, z = k(c.changedTouches), ne = [], se = this.target;\n if (x = f.filter(function(ae) {\n return R(ae.target, se);\n }), h === D)\n for (S = 0; S \u003C x.length; )\n v[x[S].identifier] = !0, S++;\n for (S = 0; S \u003C z.length; )\n v[z[S].identifier] && ne.push(z[S]), h & (K | oe) && delete v[z[S].identifier], S++;\n if (!!ne.length)\n return [\n _(x.concat(ne), \"identifier\", !0),\n ne\n ];\n }\n var Es = 2500, Ri = 25;\n function jt() {\n be.apply(this, arguments);\n var c = E(this.handler, this);\n this.touch = new Mt(this.manager, c), this.mouse = new Yt(this.manager, c), this.primaryTouch = null, this.lastTouches = [];\n }\n Y(jt, be, {\n handler: function(h, f, v) {\n var S = v.pointerType == re, x = v.pointerType == ie;\n if (!(x && v.sourceCapabilities && v.sourceCapabilities.firesTouchEvents)) {\n if (S)\n Ss.call(this, f, v);\n else if (x && Ys.call(this, v))\n return;\n this.callback(h, f, v);\n }\n },\n destroy: function() {\n this.touch.destroy(), this.mouse.destroy();\n }\n });\n function Ss(c, h) {\n c & D ? (this.primaryTouch = h.changedPointers[0].identifier, Di.call(this, h)) : c & (K | oe) && Di.call(this, h);\n }\n function Di(c) {\n var h = c.changedPointers[0];\n if (h.identifier === this.primaryTouch) {\n var f = { x: h.clientX, y: h.clientY };\n this.lastTouches.push(f);\n var v = this.lastTouches, S = function() {\n var x = v.indexOf(f);\n x \u003E -1 && v.splice(x, 1);\n };\n setTimeout(S, Es);\n }\n }\n function Ys(c) {\n for (var h = c.srcEvent.clientX, f = c.srcEvent.clientY, v = 0; v \u003C this.lastTouches.length; v++) {\n var S = this.lastTouches[v], x = Math.abs(h - S.x), z = Math.abs(f - S.y);\n if (x \u003C= Ri && z \u003C= Ri)\n return !0;\n }\n return !1;\n }\n var Bi = T(o.style, \"touchAction\"), Li = Bi !== n, Ui = \"compute\", Fi = \"auto\", qt = \"manipulation\", Ze = \"none\", dt = \"pan-x\", gt = \"pan-y\", kt = ks();\n function Wt(c, h) {\n this.manager = c, this.set(h);\n }\n Wt.prototype = {\n set: function(c) {\n c == Ui && (c = this.compute()), Li && this.manager.element.style && kt[c] && (this.manager.element.style[Bi] = c), this.actions = c.toLowerCase().trim();\n },\n update: function() {\n this.set(this.manager.options.touchAction);\n },\n compute: function() {\n var c = [];\n return y(this.manager.recognizers, function(h) {\n P(h.options.enable, [h]) && (c = c.concat(h.getTouchAction()));\n }), Ms(c.join(\" \"));\n },\n preventDefaults: function(c) {\n var h = c.srcEvent, f = c.offsetDirection;\n if (this.manager.session.prevented) {\n h.preventDefault();\n return;\n }\n var v = this.actions, S = O(v, Ze) && !kt[Ze], x = O(v, gt) && !kt[gt], z = O(v, dt) && !kt[dt];\n if (S) {\n var ne = c.pointers.length === 1, se = c.distance \u003C 2, ae = c.deltaTime \u003C 250;\n if (ne && se && ae)\n return;\n }\n if (!(z && x) && (S || x && f & Me || z && f & We))\n return this.preventSrc(h);\n },\n preventSrc: function(c) {\n this.manager.session.prevented = !0, c.preventDefault();\n }\n };\n function Ms(c) {\n if (O(c, Ze))\n return Ze;\n var h = O(c, dt), f = O(c, gt);\n return h && f ? Ze : h || f ? h ? dt : gt : O(c, qt) ? qt : Fi;\n }\n function ks() {\n if (!Li)\n return !1;\n var c = {}, h = e.CSS && e.CSS.supports;\n return [\"auto\", \"manipulation\", \"pan-y\", \"pan-x\", \"pan-x pan-y\", \"none\"].forEach(function(f) {\n c[f] = h ? e.CSS.supports(\"touch-action\", f) : !0;\n }), c;\n }\n var Jt = 1, Ae = 2, lt = 4, Ve = 8, Pe = Ve, mt = 16, ke = 32;\n function Ne(c) {\n this.options = d({}, this.defaults, c || {}), this.id = B(), this.manager = null, this.options.enable = L(this.options.enable, !0), this.state = Jt, this.simultaneous = {}, this.requireFail = [];\n }\n Ne.prototype = {\n defaults: {},\n set: function(c) {\n return d(this.options, c), this.manager && this.manager.touchAction.update(), this;\n },\n recognizeWith: function(c) {\n if (I(c, \"recognizeWith\", this))\n return this;\n var h = this.simultaneous;\n return c = xt(c, this), h[c.id] || (h[c.id] = c, c.recognizeWith(this)), this;\n },\n dropRecognizeWith: function(c) {\n return I(c, \"dropRecognizeWith\", this) ? this : (c = xt(c, this), delete this.simultaneous[c.id], this);\n },\n requireFailure: function(c) {\n if (I(c, \"requireFailure\", this))\n return this;\n var h = this.requireFail;\n return c = xt(c, this), H(h, c) === -1 && (h.push(c), c.requireFailure(this)), this;\n },\n dropRequireFailure: function(c) {\n if (I(c, \"dropRequireFailure\", this))\n return this;\n c = xt(c, this);\n var h = H(this.requireFail, c);\n return h \u003E -1 && this.requireFail.splice(h, 1), this;\n },\n hasRequireFailures: function() {\n return this.requireFail.length \u003E 0;\n },\n canRecognizeWith: function(c) {\n return !!this.simultaneous[c.id];\n },\n emit: function(c) {\n var h = this, f = this.state;\n function v(S) {\n h.manager.emit(S, c);\n }\n f \u003C Ve && v(h.options.event + Gi(f)), v(h.options.event), c.additionalEvent && v(c.additionalEvent), f \u003E= Ve && v(h.options.event + Gi(f));\n },\n tryEmit: function(c) {\n if (this.canEmit())\n return this.emit(c);\n this.state = ke;\n },\n canEmit: function() {\n for (var c = 0; c \u003C this.requireFail.length; ) {\n if (!(this.requireFail[c].state & (ke | Jt)))\n return !1;\n c++;\n }\n return !0;\n },\n recognize: function(c) {\n var h = d({}, c);\n if (!P(this.options.enable, [this, h])) {\n this.reset(), this.state = ke;\n return;\n }\n this.state & (Pe | mt | ke) && (this.state = Jt), this.state = this.process(h), this.state & (Ae | lt | Ve | mt) && this.tryEmit(h);\n },\n process: function(c) {\n },\n getTouchAction: function() {\n },\n reset: function() {\n }\n };\n function Gi(c) {\n return c & mt ? \"cancel\" : c & Ve ? \"end\" : c & lt ? \"move\" : c & Ae ? \"start\" : \"\";\n }\n function Hi(c) {\n return c == pt ? \"down\" : c == ft ? \"up\" : c == He ? \"left\" : c == qe ? \"right\" : \"\";\n }\n function xt(c, h) {\n var f = h.manager;\n return f ? f.get(c) : c;\n }\n function Se() {\n Ne.apply(this, arguments);\n }\n Y(Se, Ne, {\n defaults: {\n pointers: 1\n },\n attrTest: function(c) {\n var h = this.options.pointers;\n return h === 0 || c.pointers.length === h;\n },\n process: function(c) {\n var h = this.state, f = c.eventType, v = h & (Ae | lt), S = this.attrTest(c);\n return v && (f & oe || !S) ? h | mt : v || S ? f & K ? h | Ve : h & Ae ? h | lt : Ae : ke;\n }\n });\n function Ct() {\n Se.apply(this, arguments), this.pX = null, this.pY = null;\n }\n Y(Ct, Se, {\n defaults: {\n event: \"pan\",\n threshold: 10,\n pointers: 1,\n direction: Yi\n },\n getTouchAction: function() {\n var c = this.options.direction, h = [];\n return c & Me && h.push(gt), c & We && h.push(dt), h;\n },\n directionTest: function(c) {\n var h = this.options, f = !0, v = c.distance, S = c.direction, x = c.deltaX, z = c.deltaY;\n return S & h.direction || (h.direction & Me ? (S = x === 0 ? ot : x \u003C 0 ? He : qe, f = x != this.pX, v = Math.abs(c.deltaX)) : (S = z === 0 ? ot : z \u003C 0 ? ft : pt, f = z != this.pY, v = Math.abs(c.deltaY))), c.direction = S, f && v \u003E h.threshold && S & h.direction;\n },\n attrTest: function(c) {\n return Se.prototype.attrTest.call(this, c) && (this.state & Ae || !(this.state & Ae) && this.directionTest(c));\n },\n emit: function(c) {\n this.pX = c.deltaX, this.pY = c.deltaY;\n var h = Hi(c.direction);\n h && (c.additionalEvent = this.options.event + h), this._super.emit.call(this, c);\n }\n });\n function Zt() {\n Se.apply(this, arguments);\n }\n Y(Zt, Se, {\n defaults: {\n event: \"pinch\",\n threshold: 0,\n pointers: 2\n },\n getTouchAction: function() {\n return [Ze];\n },\n attrTest: function(c) {\n return this._super.attrTest.call(this, c) && (Math.abs(c.scale - 1) \u003E this.options.threshold || this.state & Ae);\n },\n emit: function(c) {\n if (c.scale !== 1) {\n var h = c.scale \u003C 1 ? \"in\" : \"out\";\n c.additionalEvent = this.options.event + h;\n }\n this._super.emit.call(this, c);\n }\n });\n function Qt() {\n Ne.apply(this, arguments), this._timer = null, this._input = null;\n }\n Y(Qt, Ne, {\n defaults: {\n event: \"press\",\n pointers: 1,\n time: 251,\n threshold: 9\n },\n getTouchAction: function() {\n return [Fi];\n },\n process: function(c) {\n var h = this.options, f = c.pointers.length === h.pointers, v = c.distance \u003C h.threshold, S = c.deltaTime \u003E h.time;\n if (this._input = c, !v || !f || c.eventType & (K | oe) && !S)\n this.reset();\n else if (c.eventType & D)\n this.reset(), this._timer = m(function() {\n this.state = Pe, this.tryEmit();\n }, h.time, this);\n else if (c.eventType & K)\n return Pe;\n return ke;\n },\n reset: function() {\n clearTimeout(this._timer);\n },\n emit: function(c) {\n this.state === Pe && (c && c.eventType & K ? this.manager.emit(this.options.event + \"up\", c) : (this._input.timeStamp = p(), this.manager.emit(this.options.event, this._input)));\n }\n });\n function Kt() {\n Se.apply(this, arguments);\n }\n Y(Kt, Se, {\n defaults: {\n event: \"rotate\",\n threshold: 0,\n pointers: 2\n },\n getTouchAction: function() {\n return [Ze];\n },\n attrTest: function(c) {\n return this._super.attrTest.call(this, c) && (Math.abs(c.rotation) \u003E this.options.threshold || this.state & Ae);\n }\n });\n function $t() {\n Se.apply(this, arguments);\n }\n Y($t, Se, {\n defaults: {\n event: \"swipe\",\n threshold: 10,\n velocity: 0.3,\n direction: Me | We,\n pointers: 1\n },\n getTouchAction: function() {\n return Ct.prototype.getTouchAction.call(this);\n },\n attrTest: function(c) {\n var h = this.options.direction, f;\n return h & (Me | We) ? f = c.overallVelocity : h & Me ? f = c.overallVelocityX : h & We && (f = c.overallVelocityY), this._super.attrTest.call(this, c) && h & c.offsetDirection && c.distance \u003E this.options.threshold && c.maxPointers == this.options.pointers && l(f) \u003E this.options.velocity && c.eventType & K;\n },\n emit: function(c) {\n var h = Hi(c.offsetDirection);\n h && this.manager.emit(this.options.event + h, c), this.manager.emit(this.options.event, c);\n }\n });\n function Ot() {\n Ne.apply(this, arguments), this.pTime = !1, this.pCenter = !1, this._timer = null, this._input = null, this.count = 0;\n }\n Y(Ot, Ne, {\n defaults: {\n event: \"tap\",\n pointers: 1,\n taps: 1,\n interval: 300,\n time: 250,\n threshold: 9,\n posThreshold: 10\n },\n getTouchAction: function() {\n return [qt];\n },\n process: function(c) {\n var h = this.options, f = c.pointers.length === h.pointers, v = c.distance \u003C h.threshold, S = c.deltaTime \u003C h.time;\n if (this.reset(), c.eventType & D && this.count === 0)\n return this.failTimeout();\n if (v && S && f) {\n if (c.eventType != K)\n return this.failTimeout();\n var x = this.pTime ? c.timeStamp - this.pTime \u003C h.interval : !0, z = !this.pCenter || St(this.pCenter, c.center) \u003C h.posThreshold;\n this.pTime = c.timeStamp, this.pCenter = c.center, !z || !x ? this.count = 1 : this.count += 1, this._input = c;\n var ne = this.count % h.taps;\n if (ne === 0)\n return this.hasRequireFailures() ? (this._timer = m(function() {\n this.state = Pe, this.tryEmit();\n }, h.interval, this), Ae) : Pe;\n }\n return ke;\n },\n failTimeout: function() {\n return this._timer = m(function() {\n this.state = ke;\n }, this.options.interval, this), ke;\n },\n reset: function() {\n clearTimeout(this._timer);\n },\n emit: function() {\n this.state == Pe && (this._input.tapCount = this.count, this.manager.emit(this.options.event, this._input));\n }\n });\n function Re(c, h) {\n return h = h || {}, h.recognizers = L(h.recognizers, Re.defaults.preset), new ei(c, h);\n }\n Re.VERSION = \"2.0.7\", Re.defaults = {\n domEvents: !1,\n touchAction: Ui,\n enable: !0,\n inputTarget: null,\n inputClass: null,\n preset: [\n [Kt, { enable: !1 }],\n [Zt, { enable: !1 }, [\"rotate\"]],\n [$t, { direction: Me }],\n [Ct, { direction: Me }, [\"swipe\"]],\n [Ot],\n [Ot, { event: \"doubletap\", taps: 2 }, [\"tap\"]],\n [Qt]\n ],\n cssProps: {\n userSelect: \"none\",\n touchSelect: \"none\",\n touchCallout: \"none\",\n contentZooming: \"none\",\n userDrag: \"none\",\n tapHighlightColor: \"rgba(0,0,0,0)\"\n }\n };\n var Js = 1, Vi = 2;\n function ei(c, h) {\n this.options = d({}, Re.defaults, h || {}), this.options.inputTarget = this.options.inputTarget || c, this.handlers = {}, this.session = {}, this.recognizers = [], this.oldCssProps = {}, this.element = c, this.input = os(this), this.touchAction = new Wt(this, this.options.touchAction), Xi(this, !0), y(this.options.recognizers, function(f) {\n var v = this.add(new f[0](f[1]));\n f[2] && v.recognizeWith(f[2]), f[3] && v.requireFailure(f[3]);\n }, this);\n }\n ei.prototype = {\n set: function(c) {\n return d(this.options, c), c.touchAction && this.touchAction.update(), c.inputTarget && (this.input.destroy(), this.input.target = c.inputTarget, this.input.init()), this;\n },\n stop: function(c) {\n this.session.stopped = c ? Vi : Js;\n },\n recognize: function(c) {\n var h = this.session;\n if (!h.stopped) {\n this.touchAction.preventDefaults(c);\n var f, v = this.recognizers, S = h.curRecognizer;\n (!S || S && S.state & Pe) && (S = h.curRecognizer = null);\n for (var x = 0; x \u003C v.length; )\n f = v[x], h.stopped !== Vi && (!S || f == S || f.canRecognizeWith(S)) ? f.recognize(c) : f.reset(), !S && f.state & (Ae | lt | Ve) && (S = h.curRecognizer = f), x++;\n }\n },\n get: function(c) {\n if (c instanceof Ne)\n return c;\n for (var h = this.recognizers, f = 0; f \u003C h.length; f++)\n if (h[f].options.event == c)\n return h[f];\n return null;\n },\n add: function(c) {\n if (I(c, \"add\", this))\n return this;\n var h = this.get(c.options.event);\n return h && this.remove(h), this.recognizers.push(c), c.manager = this, this.touchAction.update(), c;\n },\n remove: function(c) {\n if (I(c, \"remove\", this))\n return this;\n if (c = this.get(c), c) {\n var h = this.recognizers, f = H(h, c);\n f !== -1 && (h.splice(f, 1), this.touchAction.update());\n }\n return this;\n },\n on: function(c, h) {\n if (c !== n && h !== n) {\n var f = this.handlers;\n return y(J(c), function(v) {\n f[v] = f[v] || [], f[v].push(h);\n }), this;\n }\n },\n off: function(c, h) {\n if (c !== n) {\n var f = this.handlers;\n return y(J(c), function(v) {\n h ? f[v] && f[v].splice(H(f[v], h), 1) : delete f[v];\n }), this;\n }\n },\n emit: function(c, h) {\n this.options.domEvents && xs(c, h);\n var f = this.handlers[c] && this.handlers[c].slice();\n if (!(!f || !f.length)) {\n h.type = c, h.preventDefault = function() {\n h.srcEvent.preventDefault();\n };\n for (var v = 0; v \u003C f.length; )\n f[v](h), v++;\n }\n },\n destroy: function() {\n this.element && Xi(this, !1), this.handlers = {}, this.session = {}, this.input.destroy(), this.element = null;\n }\n };\n function Xi(c, h) {\n var f = c.element;\n if (!!f.style) {\n var v;\n y(c.options.cssProps, function(S, x) {\n v = T(f.style, x), h ? (c.oldCssProps[v] = f.style[v], f.style[v] = S) : f.style[v] = c.oldCssProps[v] || \"\";\n }), h || (c.oldCssProps = {});\n }\n }\n function xs(c, h) {\n var f = i.createEvent(\"Event\");\n f.initEvent(c, !0, !0), f.gesture = h, h.target.dispatchEvent(f);\n }\n d(Re, {\n INPUT_START: D,\n INPUT_MOVE: fe,\n INPUT_END: K,\n INPUT_CANCEL: oe,\n STATE_POSSIBLE: Jt,\n STATE_BEGAN: Ae,\n STATE_CHANGED: lt,\n STATE_ENDED: Ve,\n STATE_RECOGNIZED: Pe,\n STATE_CANCELLED: mt,\n STATE_FAILED: ke,\n DIRECTION_NONE: ot,\n DIRECTION_LEFT: He,\n DIRECTION_RIGHT: qe,\n DIRECTION_UP: ft,\n DIRECTION_DOWN: pt,\n DIRECTION_HORIZONTAL: Me,\n DIRECTION_VERTICAL: We,\n DIRECTION_ALL: Yi,\n Manager: ei,\n Input: be,\n TouchAction: Wt,\n TouchInput: Mt,\n MouseInput: Yt,\n PointerEventInput: zt,\n TouchMouseInput: jt,\n SingleTouchInput: Ni,\n Recognizer: Ne,\n AttrRecognizer: Se,\n Tap: Ot,\n Pan: Ct,\n Swipe: $t,\n Pinch: Zt,\n Rotate: Kt,\n Press: Qt,\n on: F,\n off: M,\n each: y,\n merge: A,\n extend: g,\n assign: d,\n inherit: Y,\n bindFn: E,\n prefixed: T\n });\n var Cs = typeof e != \"undefined\" ? e : typeof self != \"undefined\" ? self : {};\n Cs.Hammer = Re, typeof n == \"function\" && n.amd ? n(function() {\n return Re;\n }) : t.exports ? t.exports = Re : e[s] = Re;\n })(window, document, \"Hammer\");\n})(Kn);\nconst De = Kn.exports;\nvar $n = { exports: {} };\n(function(t, e) {\n (function(i, s) {\n var n = function(u) {\n return new n.Instance(u);\n };\n n.SUPPORT = \"wheel\", n.ADD_EVENT = \"addEventListener\", n.REMOVE_EVENT = \"removeEventListener\", n.PREFIX = \"\", n.READY = !1, n.Instance = function(u) {\n return n.READY || (n.normalise.browser(), n.READY = !0), this.element = u, this.handlers = [], this;\n }, n.Instance.prototype = {\n wheel: function(a, l) {\n return n.event.add(this, n.SUPPORT, a, l), n.SUPPORT === \"DOMMouseScroll\" && n.event.add(this, \"MozMousePixelScroll\", a, l), this;\n },\n unwheel: function(a, l) {\n return a === void 0 && (a = this.handlers.slice(-1)[0]) && (a = a.original), n.event.remove(this, n.SUPPORT, a, l), n.SUPPORT === \"DOMMouseScroll\" && n.event.remove(this, \"MozMousePixelScroll\", a, l), this;\n }\n }, n.event = {\n add: function(a, l, p, m) {\n var I = p;\n p = function(y) {\n y || (y = i.event);\n var b = n.normalise.event(y), d = n.normalise.delta(y);\n return I(b, d[0], d[1], d[2]);\n }, a.element[n.ADD_EVENT](n.PREFIX + l, p, m || !1), a.handlers.push({\n original: I,\n normalised: p\n });\n },\n remove: function(a, l, p, m) {\n for (var I = p, y = {}, b, d = 0, g = a.handlers.length; d \u003C g; ++d)\n y[a.handlers[d].original] = a.handlers[d];\n b = y[I], p = b.normalised, a.element[n.REMOVE_EVENT](n.PREFIX + l, p, m || !1);\n for (var A in a.handlers)\n if (a.handlers[A] == b) {\n a.handlers.splice(A, 1);\n break;\n }\n }\n };\n var r, o;\n n.normalise = {\n browser: function() {\n \"onwheel\" in s || s.documentMode \u003E= 9 || (n.SUPPORT = s.onmousewheel !== void 0 ? \"mousewheel\" : \"DOMMouseScroll\"), i.addEventListener || (n.ADD_EVENT = \"attachEvent\", n.REMOVE_EVENT = \"detachEvent\", n.PREFIX = \"on\");\n },\n event: function(a) {\n var l = {\n originalEvent: a,\n target: a.target || a.srcElement,\n type: \"wheel\",\n deltaMode: a.type === \"MozMousePixelScroll\" ? 0 : 1,\n deltaX: 0,\n deltaZ: 0,\n preventDefault: function() {\n a.preventDefault ? a.preventDefault() : a.returnValue = !1;\n },\n stopPropagation: function() {\n a.stopPropagation ? a.stopPropagation() : a.cancelBubble = !1;\n }\n };\n return a.wheelDelta && (l.deltaY = -1 \u002F 40 * a.wheelDelta), a.wheelDeltaX && (l.deltaX = -1 \u002F 40 * a.wheelDeltaX), a.detail && (l.deltaY = a.detail), l;\n },\n delta: function(a) {\n var l = 0, p = 0, m = 0, I = 0, y = 0, b;\n return a.deltaY && (m = a.deltaY * -1, l = m), a.deltaX && (p = a.deltaX, l = p * -1), a.wheelDelta && (l = a.wheelDelta), a.wheelDeltaY && (m = a.wheelDeltaY), a.wheelDeltaX && (p = a.wheelDeltaX * -1), a.detail && (l = a.detail * -1), l === 0 ? [0, 0, 0] : (I = Math.abs(l), (!r || I \u003C r) && (r = I), y = Math.max(Math.abs(m), Math.abs(p)), (!o || y \u003C o) && (o = y), b = l \u003E 0 ? \"floor\" : \"ceil\", l = Math[b](l \u002F r), p = Math[b](p \u002F o), m = Math[b](m \u002F o), [l, p, m]);\n }\n }, typeof i.define == \"function\" && i.define.amd ? i.define(\"hamster\", [], function() {\n return n;\n }) : t.exports = n;\n })(window, window.document);\n})($n);\nconst ho = $n.exports;\nclass fo {\n setup(e) {\n this.MIN_ZOOM = e.props.config.MIN_ZOOM, this.MAX_ZOOM = e.props.config.MAX_ZOOM, N.isMobile && (this.MIN_ZOOM *= 0.5), this.canvas = e.canvas, this.ctx = e.ctx, this.props = e.props, this.layout = e.layout, this.rrId = e.rrUpdId, this.gridId = e.id, this.cursor = {}, this.oldMeta = {}, this.range = this.props.range, this.interval = this.props.interval, this.offsetX = 0, this.offsetY = 0, this.deltas = 0, this.wmode = this.props.config.SCROLL_WHEEL, this.hub = Ue.instance(this.props.id), this.meta = Fe.instance(this.props.id), this.events = he.instance(this.props.id), this.listeners(), this.mouseEvents(\"addEventListener\");\n }\n mouseEvents(e) {\n [\"mousemove\", \"mouseout\", \"mouseup\", \"mousedown\"].forEach((i) =\u003E {\n e === \"addEventListener\" && (this[\"_\" + i] = this[i].bind(this)), this.canvas[e](i, this[\"_\" + i]);\n });\n }\n listeners() {\n this.hm = ho(this.canvas), this.hm.wheel((n, r) =\u003E this.mousezoom(-r * 50, n));\n let e = this.mc = new De.Manager(this.canvas), i = N.isMobile ? 10 : 0;\n e.add(new De.Pan({ threshold: i })), e.add(new De.Tap()), e.add(new De.Pinch({ threshold: 0 })), e.get(\"pinch\").set({ enable: !0 }), N.isMobile && e.add(new De.Press()), e.on(\"panstart\", (n) =\u003E {\n if (this.cursor.scroll_lock)\n return;\n if (this.cursor.mode === \"aim\")\n return this.emitCursorCoord(n);\n let r = this.layout.scaleIndex, o = this.meta.getYtransform(this.gridId, r);\n this.drug = {\n x: n.center.x + this.offsetX,\n y: n.center.y + this.offsetY,\n r: this.range.slice(),\n t: this.range[1] - this.range[0],\n o: o && o.offset || 0,\n y_r: o && o.range ? o.range.slice() : void 0,\n B: this.layout.B,\n t0: N.now()\n }, this.events.emit(\"cursor-locked\", !0), this.events.emit(\"cursor-changed\", {\n gridId: this.gridId,\n x: n.center.x + this.offsetX,\n y: n.center.y + this.offsetY\n });\n }), e.on(\"panmove\", (n) =\u003E {\n N.isMobile && (this.calcOffset(), this.propagate(\"mousemove\", this.touch2mouse(n))), this.drug ? this.mousedrag(\n this.drug.x + n.deltaX,\n this.drug.y + n.deltaY\n ) : this.cursor.mode === \"aim\" && this.emitCursorCoord(n);\n }), e.on(\"panend\", (n) =\u003E {\n N.isMobile && this.drug && this.panFade(n), this.drug = null, this.events.emit(\"cursor-locked\", !1);\n }), e.on(\"tap\", (n) =\u003E {\n !N.isMobile || (this.simMousedown(n), this.fade && this.fade.stop(), this.events.emit(\"cursor-changed\", {}), this.events.emit(\"cursor-changed\", {\n mode: \"explore\"\n }), this.events.emitSpec(this.rrId, \"update-rr\"));\n }), e.on(\"pinchstart\", () =\u003E {\n this.drug = null, this.pinch = {\n t: this.range[1] - this.range[0],\n r: this.range.slice()\n };\n }), e.on(\"pinchend\", () =\u003E {\n this.pinch = null;\n }), e.on(\"pinch\", (n) =\u003E {\n this.pinch && this.pinchZoom(n.scale);\n }), e.on(\"press\", (n) =\u003E {\n !N.isMobile || (this.fade && this.fade.stop(), this.calcOffset(), this.emitCursorCoord(n, { mode: \"aim\" }), setTimeout(() =\u003E this.events.emitSpec(this.rrId, \"update-rr\")), this.simMousedown(n));\n });\n let s = this.canvas.addEventListener;\n s(\"gesturestart\", this.gesturestart), s(\"gesturechange\", this.gesturechange), s(\"gestureend\", this.gestureend);\n }\n gesturestart(e) {\n e.preventDefault();\n }\n gesturechange(e) {\n e.preventDefault();\n }\n gestureend(e) {\n e.preventDefault();\n }\n mousemove(e) {\n N.isMobile || (this.events.emit(\"cursor-changed\", {\n visible: !0,\n gridId: this.gridId,\n x: e.layerX,\n y: e.layerY\n }), this.calcOffset(), this.propagate(\"mousemove\", e));\n }\n mouseout(e) {\n N.isMobile || (this.events.emit(\"cursor-changed\", { visible: !1 }), this.propagate(\"mouseout\", e));\n }\n mouseup(e) {\n this.drug = null, this.events.emit(\"cursor-locked\", !1), this.propagate(\"mouseup\", e);\n }\n mousedown(e) {\n N.isMobile || (this.events.emit(\"cursor-locked\", !0), this.propagate(\"mousedown\", e), !e.defaultPrevented && this.events.emit(\"grid-mousedown\", [this.gridId, e]));\n }\n simMousedown(e) {\n e.srcEvent.defaultPrevented || (this.events.emit(\"grid-mousedown\", [this.gridId, e]), this.propagate(\"mousemove\", this.touch2mouse(e)), this.events.emitSpec(this.rrId, \"update-rr\"), this.propagate(\"mousedown\", this.touch2mouse(e)), setTimeout(() =\u003E {\n this.propagate(\"click\", this.touch2mouse(e));\n }));\n }\n touch2mouse(e) {\n return this.calcOffset(), {\n original: e.srcEvent,\n layerX: e.center.x + this.offsetX,\n layerY: e.center.y + this.offsetY,\n preventDefault: function() {\n this.original.preventDefault();\n }\n };\n }\n click(e) {\n this.propagate(\"click\", e);\n }\n emitCursorCoord(e, i = {}) {\n this.events.emit(\"cursor-changed\", Object.assign({\n gridId: this.gridId,\n x: e.center.x + this.offsetX,\n y: e.center.y + this.offsetY\n }, i));\n }\n panFade(e) {\n let i = N.now() - this.drug.t0, n = 42 * (this.range[1] - this.drug.r[1]) \u002F i, r = Math.abs(n * 0.01);\n i \u003E 500 || (this.fade && this.fade.stop(), this.fade = new uo((o) =\u003E {\n n *= 0.85, Math.abs(n) \u003C r && o.stop(), this.range[0] += n, this.range[1] += n, this.changeRange();\n }));\n }\n calcOffset() {\n let e = this.canvas.getBoundingClientRect();\n this.offsetX = -e.x, this.offsetY = -e.y;\n }\n mousezoom(e, i) {\n if (this.wmode !== \"pass\") {\n if (this.wmode === \"click\" && !this.oldMeta.activated)\n return;\n i.originalEvent.preventDefault(), i.preventDefault();\n }\n i.deltaX = i.deltaX || N.getDeltaX(i), i.deltaY = i.deltaY || N.getDeltaY(i), Math.abs(i.deltaX) \u003E 0 && (this.trackpad = !0, Math.abs(i.deltaX) \u003E= Math.abs(i.deltaY) && (e *= 0.1), this.trackpadScroll(i)), this.trackpad && (e *= 0.032), e = N.smartWheel(e);\n let s = this.hub.mainOv.dataSubset;\n if (e \u003C 0 && s.length \u003C= this.MIN_ZOOM || e \u003E 0 && s.length \u003E this.MAX_ZOOM)\n return;\n let n = this.interval \u002F 1e3, r = e * n * s.length, o = this.props.config.ZOOM_MODE === \"tl\";\n if (i.originalEvent.ctrlKey || o) {\n let a = i.originalEvent.offsetX \u002F (this.canvas.width - 1) * r, l = r - a;\n this.range[0] -= a, this.range[1] += l;\n } else\n this.range[0] -= r;\n if (o) {\n let a = i.originalEvent.offsetY \u002F (this.canvas.height - 1) * 2, l = 2 - a, p = r \u002F (this.range[1] - this.range[0]);\n this.events.emit(\"rezoom-range\", {\n gridId: this.gridId,\n z: p,\n diff1: a,\n diff2: l\n });\n }\n this.changeRange();\n }\n mousedrag(e, i) {\n let s = this.drug.t * (this.drug.x - e) \u002F this.layout.width, n = this.layout.$hi - this.layout.$lo;\n n *= (this.drug.y - i) \u002F this.layout.height;\n let r = this.drug.o + n, o = this.layout.settings.logScale;\n if (o && this.drug.y_r) {\n let p = this.drug.y - i;\n var u = this.drug.y_r.slice();\n u[0] = $.exp((0 - this.drug.B + p) \u002F this.layout.A), u[1] = $.exp(\n (this.layout.height - this.drug.B + p) \u002F this.layout.A\n );\n }\n let a = this.layout.scaleIndex, l = this.meta.getYtransform(this.gridId, a);\n this.drug.y_r && l && !l.auto && this.events.emit(\"sidebar-transform\", {\n gridId: this.gridId,\n scaleId: a,\n range: o ? u || this.drug.y_r : [\n this.drug.y_r[0] - r,\n this.drug.y_r[1] - r\n ]\n }), this.range[0] = this.drug.r[0] + s, this.range[1] = this.drug.r[1] + s, this.changeRange();\n }\n pinchZoom(e) {\n let i = this.hub.mainOv.dataSubset;\n if (e \u003E 1 && i.length \u003C= this.MIN_ZOOM || e \u003C 1 && i.length \u003E this.MAX_ZOOM)\n return;\n let s = this.pinch.t, n = s * 1 \u002F e;\n this.range[0] = this.pinch.r[0] - (n - s) * 0.5, this.range[1] = this.pinch.r[1] + (n - s) * 0.5, this.changeRange();\n }\n trackpadScroll(e) {\n let i = this.range[1] - this.range[0];\n this.range[0] += e.deltaX * i * 0.011, this.range[1] += e.deltaX * i * 0.011, this.changeRange();\n }\n changeRange() {\n let e = this.hub.mainOv.dataSubset;\n if (!this.range.length || e.length \u003C 2)\n return;\n let i = e.length - 1, s = this.range;\n s[0] = N.clamp(\n s[0],\n -1 \u002F 0,\n e[i][0] - this.interval * 5.5\n ), s[1] = N.clamp(\n s[1],\n e[0][0] + this.interval * 5.5,\n 1 \u002F 0\n ), this.events.emit(\"range-changed\", s);\n }\n propagate(e, i) {\n }\n destroy() {\n let e = this.canvas.removeEventListener;\n e(\"gesturestart\", this.gesturestart), e(\"gesturechange\", this.gesturechange), e(\"gestureend\", this.gestureend), this.mc && this.mc.destroy(), this.hm && this.hm.unwheel(), this.mouseEvents(\"removeEventListener\");\n }\n}\nclass po extends Vt {\n constructor(e) {\n super(e, \"__$Crosshair__\"), this.id = e, this.zIndex = 1e6, this.ctxType = \"Canvas\", this.overlay = {\n draw: this.draw.bind(this),\n destroy: this.destroy.bind(this)\n }, this.env = {\n update: this.envEpdate.bind(this)\n };\n }\n draw(e) {\n if (!this.layout)\n return;\n const i = this.props.cursor;\n !i.visible || (e.save(), e.strokeStyle = this.props.colors.cross, e.beginPath(), e.setLineDash([5]), i.gridId === this.layout.id && (e.moveTo(0, i.y), e.lineTo(this.layout.width - 0.5, i.y)), e.moveTo(i.x, 0), e.lineTo(i.x, this.layout.height), e.stroke(), e.restore());\n }\n envEpdate(e, i, s) {\n this.ovSrc = e, this.layout = i, this.props = s;\n }\n onCursor(e) {\n this.props && (this.props.cursor = e);\n }\n destroy() {\n }\n}\nclass go extends Vt {\n constructor(e) {\n super(e, \"__$Grid__\"), this.id = e, this.zIndex = -1e6, this.ctxType = \"Canvas\", this.overlay = {\n draw: this.draw.bind(this),\n destroy: this.destroy.bind(this)\n }, this.env = {\n update: this.envEpdate.bind(this)\n };\n }\n draw(e) {\n let i = this.layout;\n if (!i)\n return;\n e.strokeStyle = this.props.colors.grid, e.beginPath();\n const s = i.height;\n for (var [n, r] of i.xs)\n e.moveTo(n - 0.5, 0), e.lineTo(n - 0.5, s);\n for (var [o, u] of i.ys)\n e.moveTo(0, o - 0.5), e.lineTo(i.width, o - 0.5);\n e.stroke();\n }\n envEpdate(e, i, s) {\n this.ovSrc = e, this.layout = i, this.props = s;\n }\n destroy() {\n }\n}\nfunction mo(t, e, i, s, n) {\n var r = i.ys;\n n.font = t.config.FONT;\n var { x: o, y: u, w: a, h: l } = es(t, e, s, n);\n n.fillStyle = t.colors.text, n.beginPath();\n for (var p of r) {\n if (p[0] \u003E e.height)\n continue;\n var m = s === \"left\" ? a - 0.5 : o - 0.5, I = s === \"left\" ? m - 4.5 : m + 4.5;\n n.moveTo(m, p[0] - 0.5), n.lineTo(I, p[0] - 0.5);\n var y = s === \"left\" ? -10 : 10;\n n.textAlign = s === \"left\" ? \"end\" : \"start\";\n let b = i.prec;\n n.fillText(p[1].toFixed(b), m + y, p[0] + 4);\n }\n n.stroke();\n}\nfunction es(t, e, i, s) {\n var n = i === \"right\" ? 1 : 0, r = e.sbMax[n], o, u, a, l;\n switch (i) {\n case \"left\":\n o = 0, u = 0, a = Math.floor(r), l = e.height, s.clearRect(o, u, a, l), s.strokeStyle = t.colors.scale, s.beginPath(), s.moveTo(o - 0.5 + a, 0), s.lineTo(o - 0.5 + a, l), s.stroke();\n break;\n case \"right\":\n o = 0, u = 0, a = Math.floor(r), l = e.height, s.clearRect(o, u, a, l), s.strokeStyle = t.colors.scale, s.beginPath(), s.moveTo(o + 0.5, 0), s.lineTo(o + 0.5, l), s.stroke();\n break;\n }\n return { x: o, y: u, w: a, h: l };\n}\nfunction vo(t, e, i, s, n) {\n const r = t.config.PANHEIGHT;\n let u = (t.cursor.scales[i.scaleSpecs.id] || 0).toFixed(i.prec);\n n.fillStyle = t.colors.panel;\n var a = s === \"right\" ? 1 : 0;\n let l = e.sbMax[a] - 5, p = a ? 1 : 4, m = t.cursor.y - r * 0.5 - 0.5, I = a ? 7 : l - 3;\n ts(n, p, m, l, r, 3, a), n.fillStyle = t.colors.textHL, n.textAlign = a ? \"left\" : \"right\", n.fillText(u, I, m + 15);\n}\nfunction Io(t, e, i, s, n, r) {\n const o = Math.floor(t.config.PANHEIGHT * 0.8);\n let a = r.value.toFixed(i.prec);\n n.fillStyle = r.color;\n var l = s === \"right\" ? 1 : 0;\n let p = e.sbMax[l] - 5, m = l ? 1 : 4, I = r.y - o * 0.5 - 0.5, y = l ? 7 : p - 3;\n ts(n, m, I, p, o, 3, l), n.fillStyle = t.colors.back, n.textAlign = l ? \"left\" : \"right\", n.fillText(a, y, I + o - 4);\n}\nfunction ts(t, e, i, s, n, r, o) {\n s \u003C 2 * r && (r = s \u002F 2), n \u003C 2 * r && (r = n \u002F 2), t.beginPath(), t.moveTo(e + r, i), t.arcTo(e + s, i, e + s, i + n, r * o), t.arcTo(e + s, i + n, e, i + n, r * o), t.arcTo(e, i + n, e, i, r * (1 - o)), t.arcTo(e, i, e + s, i, r * (1 - o)), t.closePath(), t.fill();\n}\nfunction is(t, e, i) {\n i.strokeStyle = t.colors.scale, i.beginPath(), i.moveTo(0, 0.5), i.lineTo(e.width, 0.5), i.stroke();\n}\nfunction yo(t, e, i, s) {\n var n = i === \"right\" ? 1 : 0, r = e.sbMax[n];\n s.font = t.config.FONT, es(t, e, i, s), e.id && is(t, e, s);\n let o = Math.floor(r * 0.5), u = Math.floor(e.height * 0.5);\n s.fillStyle = t.colors.text, s.textAlign = \"center\", s.fillText(\"Error\", o, u);\n}\nconst yt = {\n body: mo,\n panel: vo,\n upperBorder: is,\n error: yo,\n tracker: Io\n};\nfunction bo(t, e, i) {\n e.strokeStyle = i.color, e.setLineDash([1, 2]), e.beginPath(), e.moveTo(0, i.y), e.lineTo(t.width, i.y), e.stroke(), e.setLineDash([]);\n}\nclass Ao extends Vt {\n constructor(e, i, s) {\n super(e, \"__$Trackers__\"), this.id = e, this.zIndex = 5e5, this.ctxType = \"Canvas\", this.hub = Ue.instance(i.id), this.meta = Fe.instance(i.id), this.gridId = s, this.props = i, this.overlay = {\n draw: this.draw.bind(this),\n destroy: this.destroy.bind(this),\n drawSidebar: this.drawSidebar.bind(this)\n }, this.env = {\n update: this.envEpdate.bind(this)\n };\n }\n draw(e) {\n if (!this.layout)\n return;\n let i = this.meta.valueTrackers[this.gridId] || [];\n this.trackers = [];\n for (var s = 0; s \u003C i.length; s++) {\n let n = i[s];\n if (!n)\n continue;\n let r = this.hub.ovData(this.gridId, s) || [], o = r[r.length - 1] || [], u = n(o);\n u.ovId = s, u.show && (u.y = this.layout.value2y(u.value), u.color = u.color || this.props.colors.scale, u.line && bo(this.layout, e, u), this.trackers.push(u));\n }\n }\n drawSidebar(e, i, s) {\n if (!!this.layout)\n for (var n of this.trackers || [])\n this.getScaleId(n.ovId) === s.scaleSpecs.id && yt.tracker(\n this.props,\n this.layout,\n s,\n i,\n e,\n n\n );\n }\n envEpdate(e, i, s) {\n this.ovSrc = e, this.layout = i, this.props = s, this.scaleId = this.getScaleId();\n }\n getScaleId(e) {\n let i = this.layout.scales;\n for (var s in i)\n if (i[s].scaleSpecs.ovIdxs.includes(e))\n return s;\n }\n destroy() {\n }\n}\nfunction _o(t, e, i) {\n let s = document.getElementById(t), n = window.devicePixelRatio || 1;\n s.style.width = `${e}px`, s.style.height = `${i}px`, n \u003C 1 && (n = 1);\n var r = s.getBoundingClientRect();\n s.width = r.width * n, s.height = r.height * n;\n let o = s.getContext(\"2d\", {});\n o.scale(n, n), o.measureTextOrg || (o.measureTextOrg = o.measureText);\n let u = t.split(\"-\").shift();\n return o.measureText = (a) =\u003E N.measureText(o, a, u), [s, o];\n}\nfunction To(t, e, i, s) {\n let n = window.devicePixelRatio || 1;\n t.style.width = `${i}px`, t.style.height = `${s}px`, n \u003C 1 && (n = 1);\n var r = t.getBoundingClientRect();\n t.width = r.width * n, t.height = r.height * n, e.scale(n, n);\n}\nconst ct = { setup: _o, resize: To };\nfunction wo(t) {\n let e, i;\n return {\n c() {\n e = Z(\"div\"), i = Z(\"canvas\"), C(i, \"id\", t[2]), C(e, \"id\", t[1]), C(e, \"style\", t[0]), C(e, \"class\", \"nvjs-canvas-rendrer svelte-8n0n7w\");\n },\n m(s, n) {\n W(s, e, n), te(e, i);\n },\n p(s, [n]) {\n n & 1 && C(e, \"style\", s[0]);\n },\n i: le,\n o: le,\n d(s) {\n s && q(e);\n }\n };\n}\nfunction Eo(t, e, i) {\n let s, n, r, { id: o } = e, { props: u = {} } = e, { rr: a = {} } = e, { layout: l = {} } = e, p = he.instance(u.id), m = `rr-${o}-${a.id}`, I = `${u.id}-rr-${o}-${a.id}`, y = `${u.id}-canvas-${o}-${a.id}`;\n p.on(`${m}:update-rr`, L), p.on(`${m}:run-rr-task`, F);\n let b, d, g;\n rt(() =\u003E {\n P();\n }), ht(() =\u003E {\n p.off(`${m}`), g && g.destroy();\n });\n function A(O) {\n g = O, g.setup({ id: o, canvas: b, ctx: d, props: u, layout: l, rrUpdId: m });\n }\n function Y() {\n g && (g.destroy(), g = null);\n }\n function E() {\n return g;\n }\n function P() {\n [b, d] = ct.setup(y, l.width, l.height), L();\n }\n function L(O = l) {\n i(3, l = O), !(!d || !l) && (d.clearRect(0, 0, b.width, b.height), a.layers.forEach((J) =\u003E {\n if (!J.display)\n return;\n d.save();\n let H = J.overlay;\n J.opacity && (d.globalAlpha = J.opacity), H.draw(d), d.globalAlpha = 1, d.restore();\n }), o \u003E 0 && M());\n }\n function F(O) {\n O.handler(b, d, g);\n }\n function M() {\n d.strokeStyle = u.colors.scale, d.beginPath(), d.moveTo(0, 0.5), d.lineTo(l.width, 0.5), d.stroke();\n }\n function R() {\n !b || (ct.resize(b, d, l.width, l.height), L());\n }\n return t.$set = (O) =\u003E {\n \"id\" in O && i(4, o = O.id), \"props\" in O && i(5, u = O.props), \"rr\" in O && i(6, a = O.rr), \"layout\" in O && i(3, l = O.layout);\n }, t.$.update = () =\u003E {\n t.$.dirty & 8 && i(0, s = `\n left: ${l.sbMax[0]}px;\n top: ${l.offset || 0}px;\n position: absolute;\n height: ${l.height}px;\n}`), t.$.dirty & 8 && i(11, n = l.width), t.$.dirty & 8 && i(10, r = l.height), t.$.dirty & 3072 && R();\n }, [\n s,\n I,\n y,\n l,\n o,\n u,\n a,\n A,\n Y,\n E,\n r,\n n\n ];\n}\nclass So extends Ie {\n constructor(e) {\n super(), ve(this, e, Eo, wo, ge, {\n id: 4,\n props: 5,\n rr: 6,\n layout: 3,\n attach: 7,\n detach: 8,\n getInput: 9\n });\n }\n get attach() {\n return this.$.ctx[7];\n }\n get detach() {\n return this.$.ctx[8];\n }\n get getInput() {\n return this.$.ctx[9];\n }\n}\nfunction cn(t, e, i) {\n const s = t.slice();\n return s[20] = e[i], s[21] = e, s[22] = i, s;\n}\nfunction un(t) {\n let e, i = t[21], s = t[22], n;\n const r = () =\u003E t[7](e, i, s), o = () =\u003E t[7](null, i, s);\n let u = {\n id: t[1],\n layout: t[0],\n props: t[2],\n rr: t[20]\n };\n return e = new So({ props: u }), r(), {\n c() {\n de(e.$.fragment);\n },\n m(a, l) {\n ce(e, a, l), n = !0;\n },\n p(a, l) {\n (i !== a[21] || s !== a[22]) && (o(), i = a[21], s = a[22], r());\n const p = {};\n l & 2 && (p.id = a[1]), l & 1 && (p.layout = a[0]), l & 4 && (p.props = a[2]), l & 8 && (p.rr = a[20]), e.$set(p);\n },\n i(a) {\n n || (U(e.$.fragment, a), n = !0);\n },\n o(a) {\n X(e.$.fragment, a), n = !1;\n },\n d(a) {\n o(), ue(e, a);\n }\n };\n}\nfunction hn(t) {\n let e, i, s = t[20].ctxType === \"Canvas\" && un(t);\n return {\n c() {\n s && s.c(), e = Oe();\n },\n m(n, r) {\n s && s.m(n, r), W(n, e, r), i = !0;\n },\n p(n, r) {\n n[20].ctxType === \"Canvas\" ? s ? (s.p(n, r), r & 8 && U(s, 1)) : (s = un(n), s.c(), U(s, 1), s.m(e.parentNode, e)) : s && (Te(), X(s, 1, 1, () =\u003E {\n s = null;\n }), we());\n },\n i(n) {\n i || (U(s), i = !0);\n },\n o(n) {\n X(s), i = !1;\n },\n d(n) {\n s && s.d(n), n && q(e);\n }\n };\n}\nfunction Yo(t) {\n let e, i, s = t[3], n = [];\n for (let o = 0; o \u003C s.length; o += 1)\n n[o] = hn(cn(t, s, o));\n const r = (o) =\u003E X(n[o], 1, 1, () =\u003E {\n n[o] = null;\n });\n return {\n c() {\n e = Z(\"div\");\n for (let o = 0; o \u003C n.length; o += 1)\n n[o].c();\n C(e, \"class\", \"nvjs-grid svelte-1ctdodr\"), C(e, \"style\", t[4]);\n },\n m(o, u) {\n W(o, e, u);\n for (let a = 0; a \u003C n.length; a += 1)\n n[a].m(e, null);\n i = !0;\n },\n p(o, [u]) {\n if (u & 15) {\n s = o[3];\n let a;\n for (a = 0; a \u003C s.length; a += 1) {\n const l = cn(o, s, a);\n n[a] ? (n[a].p(l, u), U(n[a], 1)) : (n[a] = hn(l), n[a].c(), U(n[a], 1), n[a].m(e, null));\n }\n for (Te(), a = s.length; a \u003C n.length; a += 1)\n r(a);\n we();\n }\n (!i || u & 16) && C(e, \"style\", o[4]);\n },\n i(o) {\n if (!i) {\n for (let u = 0; u \u003C s.length; u += 1)\n U(n[u]);\n i = !0;\n }\n },\n o(o) {\n n = n.filter(Boolean);\n for (let u = 0; u \u003C n.length; u += 1)\n X(n[u]);\n i = !1;\n },\n d(o) {\n o && q(e), ut(n, o);\n }\n };\n}\nfunction Mo(t, e, i) {\n let s, { id: n } = e, { props: r } = e, { main: o } = e, { layout: u } = e;\n function a() {\n return y;\n }\n let l = Ue.instance(r.id), p = Fe.instance(r.id), m = he.instance(r.id), I = Zn.instance(r.id), y = [], b = [], d = null;\n m.on(`grid-${n}:update-grid`, P), m.on(`grid-${n}:remake-grid`, g), m.on(`grid-${n}:run-grid-task`, L), rt(() =\u003E {\n g();\n });\n function g(M) {\n if (!l.panes()[n])\n return;\n y = Y(), i(3, b = E());\n let R = b[b.length - 1];\n R && setTimeout(() =\u003E {\n R.ref && (A(), R.ref.attach(d = new fo()));\n });\n }\n function A() {\n for (var M of b)\n M.ref.detach();\n }\n function Y() {\n let M = l.panes()[n].overlays || [], R = [];\n for (var O = 0; O \u003C M.length; O++) {\n let J = M[O], H = I.prefabs[J.type];\n if (!H)\n continue;\n let k = new Vt(O, J.name, r.id), _ = J.settings.zIndex;\n k.zIndex = _ != null ? _ : J.main ? 0 : -1;\n let T = new co(O, J, u, r);\n k.overlay = H.make(T), k.env = T, k.ovSrc = J, k.ctxType = H.ctx, T.overlay = k.overlay, p.exctractFrom(k.overlay), R.push(k), k.overlay.init();\n }\n return R.push(new po(O++)), R.push(new go(O++)), R.push(new Ao(O++, r, n)), R.sort((J, H) =\u003E J.zIndex - H.zIndex), p.finish(), R;\n }\n function E() {\n let M = [], R = null;\n for (var O of y) {\n if (O.ctxType !== R) {\n var J = {\n ctxType: O.ctxType,\n layers: [],\n id: M.length,\n ref: null\n };\n M.push(J), R = O.ctxType;\n }\n J.layers.push(O);\n }\n return M;\n }\n function P(M = u) {\n i(0, u = M), d && (d.layout = u);\n for (var R of y)\n R.env.update(R.ovSrc, u, r), R.update();\n for (var O of b)\n m.emitSpec(`rr-${n}-${O.id}`, \"update-rr\", u);\n }\n function L(M) {\n M.handler(y, b, { update: P });\n }\n function F(M, R, O) {\n xe[M ? \"unshift\" : \"push\"](() =\u003E {\n R[O].ref = M, i(3, b);\n });\n }\n return t.$set = (M) =\u003E {\n \"id\" in M && i(1, n = M.id), \"props\" in M && i(2, r = M.props), \"main\" in M && i(5, o = M.main), \"layout\" in M && i(0, u = M.layout);\n }, t.$.update = () =\u003E {\n t.$.dirty & 5 && i(4, s = `\n width: ${u.width}px;\n height: ${u.height}px;\n background: ${r.colors.back};\n margin-left: ${u.sbMax[0]}px;\n`);\n }, [u, n, r, b, s, o, a, F];\n}\nclass ko extends Ie {\n constructor(e) {\n super(), ve(this, e, Mo, Yo, ge, {\n id: 1,\n props: 2,\n main: 5,\n layout: 0,\n getLayers: 6\n });\n }\n get getLayers() {\n return this.$.ctx[6];\n }\n}\nfunction fn(t, { delay: e = 0, duration: i = 400, easing: s = Pn } = {}) {\n const n = +getComputedStyle(t).opacity;\n return {\n delay: e,\n duration: i,\n easing: s,\n css: (r) =\u003E `opacity: ${r * n}`\n };\n}\nfunction Jo(t) {\n Tt(t, \"svelte-16w6gr6\", \".scale-selector.svelte-16w6gr6{position:absolute;bottom:5px;display:grid;justify-content:center;align-content:center}.scale-button.svelte-16w6gr6{border-radius:3px;text-align:center;user-select:none;margin:auto;margin-top:1px}.scale-button.svelte-16w6gr6:hover{filter:brightness(1.2)}\");\n}\nfunction pn(t, e, i) {\n const s = t.slice();\n s[13] = e[i], s[15] = i;\n const n = s[13].scaleSpecs.id;\n return s[1] = n, s;\n}\nfunction dn(t) {\n let e, i = t[1] + \"\", s, n, r, o, u;\n function a() {\n return t[10](t[1]);\n }\n return {\n c() {\n e = Z(\"div\"), s = st(i), n = me(), C(e, \"class\", \"scale-button svelte-16w6gr6\"), C(e, \"style\", r = t[2](t[1]));\n },\n m(l, p) {\n W(l, e, p), te(e, s), te(e, n), o || (u = nt(e, \"click\", Bs(a)), o = !0);\n },\n p(l, p) {\n t = l, p & 1 && i !== (i = t[1] + \"\") && Ft(s, i), p & 5 && r !== (r = t[2](t[1])) && C(e, \"style\", r);\n },\n d(l) {\n l && q(e), o = !1, u();\n }\n };\n}\nfunction xo(t) {\n let e, i, s, n = t[0], r = [];\n for (let o = 0; o \u003C n.length; o += 1)\n r[o] = dn(pn(t, n, o));\n return {\n c() {\n e = Z(\"div\");\n for (let o = 0; o \u003C r.length; o += 1)\n r[o].c();\n C(e, \"class\", \"scale-selector svelte-16w6gr6\"), C(e, \"id\", t[4]), C(e, \"style\", t[3]);\n },\n m(o, u) {\n W(o, e, u);\n for (let a = 0; a \u003C r.length; a += 1)\n r[a].m(e, null);\n s = !0;\n },\n p(o, [u]) {\n if (u & 37) {\n n = o[0];\n let a;\n for (a = 0; a \u003C n.length; a += 1) {\n const l = pn(o, n, a);\n r[a] ? r[a].p(l, u) : (r[a] = dn(l), r[a].c(), r[a].m(e, null));\n }\n for (; a \u003C r.length; a += 1)\n r[a].d(1);\n r.length = n.length;\n }\n (!s || u & 8) && C(e, \"style\", o[3]);\n },\n i(o) {\n s || (_t(() =\u003E {\n i || (i = Zi(e, fn, { duration: 150 }, !0)), i.run(1);\n }), s = !0);\n },\n o(o) {\n i || (i = Zi(e, fn, { duration: 150 }, !1)), i.run(0), s = !1;\n },\n d(o) {\n o && q(e), ut(r, o), o && i && i.end();\n }\n };\n}\nfunction Co(t, e, i) {\n let s, n, r, { id: o } = e, { props: u } = e, { layout: a } = e, { scales: l } = e, { side: p } = e, m = he.instance(u.id), I = p === \"right\" ? 1 : 0, y = `${u.id}-ss-${o}-${p}`;\n function b(g) {\n l[g];\n let A = a.settings.scaleSideIdxs;\n A[I] = g, m.emitSpec(\"hub\", \"set-scale-index\", { paneId: o, index: g, sideIdxs: A });\n }\n const d = (g) =\u003E b(g);\n return t.$set = (g) =\u003E {\n \"id\" in g && i(1, o = g.id), \"props\" in g && i(6, u = g.props), \"layout\" in g && i(7, a = g.layout), \"scales\" in g && i(0, l = g.scales), \"side\" in g && i(8, p = g.side);\n }, t.$.update = () =\u003E {\n t.$.dirty & 129 && i(9, s = function() {\n let A = {}, Y = a.sbMax[I];\n switch (l.length) {\n case 2:\n case 4:\n default:\n A.ssw = 46, A.ssm = (Y - A.ssw) \u002F 2, A.bw = 18, A.bh = 18, A.tmp = \"50% 50%\";\n break;\n case 3:\n A.ssw = 54, A.ssm = (Y - A.ssw) \u002F 3, A.bw = 15, A.bh = 15, A.tmp = \"33% 33% 33%\";\n break;\n }\n return A;\n }()), t.$.dirty & 576 && i(3, n = `\n grid-template-columns: ${s.tmp};\n font: ${u.config.FONT};\n width: ${s.ssw}px;\n margin-left: ${s.ssm}px;\n`), t.$.dirty & 704 && i(2, r = (g) =\u003E {\n let Y = g === a.settings.scaleSideIdxs[I] ? u.colors.text : u.colors.scale;\n return `\n background: ${u.colors.back};\n line-height: ${s.bh}px;\n width: ${s.bw}px;\n height: ${s.bh}px;\n box-shadow: 0 0 0 1px ${u.colors.back};\n border: 1px solid ${Y};\n color: ${Y};\n`;\n });\n }, [\n l,\n o,\n r,\n n,\n y,\n b,\n u,\n a,\n p,\n s,\n d\n ];\n}\nclass Oo extends Ie {\n constructor(e) {\n super(), ve(\n this,\n e,\n Co,\n xo,\n ge,\n {\n id: 1,\n props: 6,\n layout: 7,\n scales: 0,\n side: 8\n },\n Jo\n );\n }\n}\nfunction gn(t) {\n let e, i;\n return e = new Oo({\n props: {\n id: t[1],\n props: t[2],\n layout: t[0],\n scales: t[4],\n side: t[3]\n }\n }), {\n c() {\n de(e.$.fragment);\n },\n m(s, n) {\n ce(e, s, n), i = !0;\n },\n p(s, n) {\n const r = {};\n n[0] & 2 && (r.id = s[1]), n[0] & 4 && (r.props = s[2]), n[0] & 1 && (r.layout = s[0]), n[0] & 16 && (r.scales = s[4]), n[0] & 8 && (r.side = s[3]), e.$set(r);\n },\n i(s) {\n i || (U(e.$.fragment, s), i = !0);\n },\n o(s) {\n X(e.$.fragment, s), i = !1;\n },\n d(s) {\n ue(e, s);\n }\n };\n}\nfunction Po(t) {\n let e, i, s, n, r, o, u = t[4].length \u003E 1 && t[5] && gn(t);\n return {\n c() {\n e = Z(\"div\"), i = Z(\"canvas\"), s = me(), u && u.c(), C(i, \"id\", t[8]), C(e, \"id\", t[7]), C(e, \"style\", t[6]), C(e, \"class\", \"nvjs-sidebar svelte-gpuvhh\");\n },\n m(a, l) {\n W(a, e, l), te(e, i), te(e, s), u && u.m(e, null), n = !0, r || (o = [\n nt(e, \"click\", t[9]),\n nt(e, \"mouseover\", t[10]),\n nt(e, \"mouseleave\", t[11])\n ], r = !0);\n },\n p(a, l) {\n a[4].length \u003E 1 && a[5] ? u ? (u.p(a, l), l[0] & 48 && U(u, 1)) : (u = gn(a), u.c(), U(u, 1), u.m(e, null)) : u && (Te(), X(u, 1, 1, () =\u003E {\n u = null;\n }), we()), (!n || l[0] & 64) && C(e, \"style\", a[6]);\n },\n i(a) {\n n || (U(u), n = !0);\n },\n o(a) {\n X(u), n = !1;\n },\n d(a) {\n a && q(e), u && u.d(), r = !1, ze(o);\n }\n };\n}\nfunction No(t, e, i) {\n let s, n, r, o, { id: u } = e, { props: a = {} } = e, { layout: l = {} } = e, { side: p } = e, { scales: m = [] } = e, I = [];\n function y(G) {\n I = G;\n }\n let b = Fe.instance(a.id), d = he.instance(a.id), g = p === \"right\" ? 1 : 0, A = `sb-${u}-${p}`, Y = `${a.id}-sb-${u}-${p}`, E = `${a.id}-sb-canvas-${u}-${p}`, P = !1;\n d.on(`${A}:update-sb`, _);\n let L, F, M, R = 1, O, J;\n rt(() =\u003E {\n H();\n }), ht(() =\u003E {\n d.off(`${A}`), M && M.destroy();\n });\n function H() {\n [L, F] = ct.setup(E, l.sbMax[g], l.height), _(), n && k();\n }\n function k() {\n M = new De.Manager(L), M.add(new De.Pan({\n direction: De.DIRECTION_VERTICAL,\n threshold: 0\n })), M.add(new De.Tap({\n event: \"doubletap\",\n taps: 2,\n posThreshold: 50\n })), M.on(\"panstart\", (G) =\u003E {\n if (!n)\n return;\n let ie = Q();\n ie ? R = ie.zoom : R = 1, O = [n.$hi, n.$lo], J = {\n y: G.center.y,\n z: R,\n mid: $.log_mid(O, l.height),\n A: n.A,\n B: n.B\n };\n }), M.on(\"panmove\", (G) =\u003E {\n J && (R = B(G), d.emit(\"sidebar-transform\", {\n gridId: u,\n scaleId: n.scaleSpecs.id,\n zoom: R,\n auto: !1,\n range: j(),\n drugging: !0,\n updateLayout: !0\n }), _());\n }), M.on(\"panend\", () =\u003E {\n J = null, n && d.emit(\"sidebar-transform\", {\n gridId: u,\n scaleId: n.scaleSpecs.id,\n drugging: !1,\n updateLayout: !0\n });\n }), M.on(\"doubletap\", () =\u003E {\n d.emit(\"sidebar-transform\", {\n gridId: u,\n scaleId: n.scaleSpecs.id,\n zoom: 1,\n auto: !0,\n updateLayout: !0\n }), R = 1, _();\n });\n }\n function _(G = l) {\n if (!!G) {\n if (i(0, l = G), n = V(), !n)\n return yt.error(a, l, p, F);\n yt.body(a, l, n, p, F), T(), u && yt.upperBorder(a, l, F), a.cursor.y && a.cursor.scales && a.cursor.gridId === l.id && yt.panel(a, l, n, p, F);\n }\n }\n function T() {\n for (var G of I) {\n let ie = G.overlay;\n ie.drawSidebar && ie.drawSidebar(F, p, n);\n }\n }\n function w() {\n !L || (ct.resize(L, F, l.sbMax[g], l.height), _());\n }\n function B(G) {\n let ie = J.y - G.center.y, Ge = 1 + (ie \u003E 0 ? 3 : 1) * ie \u002F l.height;\n return N.clamp(J.z * Ge, 5e-3, 100);\n }\n function j(G = 1, ie = 1) {\n let ye = R \u002F J.z, Ge = (1 \u002F ye - 1) \u002F 2, D = O.slice(), fe = D[0] - D[1];\n if (!n.log)\n D[0] = D[0] + fe * Ge * G, D[1] = D[1] - fe * Ge * ie;\n else {\n let K = l.height \u002F 2, oe = K - K * (1 \u002F ye), ot = K + K * (1 \u002F ye), He = (qe) =\u003E $.exp((qe - J.B) \u002F J.A);\n D.slice(), D[0] = He(oe), D[1] = He(ot);\n }\n return D;\n }\n function V() {\n let G = l.scales, ie = l.settings.scaleTemplate[g], ye = G[l.settings.scaleSideIdxs[g]];\n return ye && ie.includes(ye.scaleSpecs.id) ? ye : null;\n }\n function Q() {\n if (!b.yTransforms[u])\n return;\n let G = n.scaleSpecs.id;\n return b.yTransforms[u][G];\n }\n function ee(G) {\n !n || d.emitSpec(\"hub\", \"set-scale-index\", {\n paneId: u,\n index: n.scaleSpecs.id,\n sideIdxs: l.settings.scaleSideIdxs\n });\n }\n function Ee() {\n i(5, P = !0);\n }\n function re() {\n i(5, P = !1);\n }\n return t.$set = (G) =\u003E {\n \"id\" in G && i(1, u = G.id), \"props\" in G && i(2, a = G.props), \"layout\" in G && i(0, l = G.layout), \"side\" in G && i(3, p = G.side), \"scales\" in G && i(4, m = G.scales);\n }, t.$.update = () =\u003E {\n t.$.dirty[0] & 5 && i(6, s = `\n left: ${g * (l.width + l.sbMax[0])}px;\n top: ${l.offset || 0}px;\n position: absolute;\n background: ${a.colors.back};\n height: ${l.height}px;\n`), t.$.dirty[0] & 1 && (n = V()), t.$.dirty[0] & 1 && i(14, r = l.width), t.$.dirty[0] & 1 && i(13, o = l.height), t.$.dirty[0] & 24576 && w();\n }, [\n l,\n u,\n a,\n p,\n m,\n P,\n s,\n Y,\n E,\n ee,\n Ee,\n re,\n y,\n o,\n r\n ];\n}\nclass ns extends Ie {\n constructor(e) {\n super(), ve(\n this,\n e,\n No,\n Po,\n ge,\n {\n id: 1,\n props: 2,\n layout: 0,\n side: 3,\n scales: 4,\n setLayers: 12\n },\n null,\n [-1, -1]\n );\n }\n get setLayers() {\n return this.$.ctx[12];\n }\n}\nfunction mn(t) {\n let e;\n return {\n c() {\n e = Z(\"div\"), C(e, \"id\", t[3]), C(e, \"style\", t[1]), C(e, \"class\", \"nvjs-sidebar-stub svelte-yr5ja6\");\n },\n m(i, s) {\n W(i, e, s);\n },\n p(i, s) {\n s & 2 && C(e, \"style\", i[1]);\n },\n d(i) {\n i && q(e);\n }\n };\n}\nfunction Ro(t) {\n let e, i = t[0].sbMax[t[2]] && mn(t);\n return {\n c() {\n i && i.c(), e = Oe();\n },\n m(s, n) {\n i && i.m(s, n), W(s, e, n);\n },\n p(s, [n]) {\n s[0].sbMax[s[2]] ? i ? i.p(s, n) : (i = mn(s), i.c(), i.m(e.parentNode, e)) : i && (i.d(1), i = null);\n },\n i: le,\n o: le,\n d(s) {\n i && i.d(s), s && q(e);\n }\n };\n}\nfunction Do(t, e, i) {\n let s, { id: n } = e, { props: r = {} } = e, { layout: o = {} } = e, { side: u } = e, a = u === \"right\" ? 1 : 0, l = `${r.id}-stub-${n}-${u}`;\n return t.$set = (p) =\u003E {\n \"id\" in p && i(4, n = p.id), \"props\" in p && i(5, r = p.props), \"layout\" in p && i(0, o = p.layout), \"side\" in p && i(6, u = p.side);\n }, t.$.update = () =\u003E {\n t.$.dirty & 113 && i(1, s = `\n left: ${a * (o.width + o.sbMax[0])}px;\n top: ${o.offset || 0}px;\n width: ${o.sbMax[a] - 1}px;\n height: ${o.height - (n ? 1 : 0)}px;\n position: absolute;\n border: 1px solid;\n border-${u}: none;\n border-bottom: none;\n \u002F* TODO: remove to-boder, it's in the pane now *\u002F\n border-top: ${n ? \"auto\" : \"none\"};\n border-color: ${r.colors.scale};\n background: ${r.colors.back}\n`);\n }, [o, s, a, l, n, r, u];\n}\nclass ss extends Ie {\n constructor(e) {\n super(), ve(this, e, Do, Ro, ge, { id: 4, props: 5, layout: 0, side: 6 });\n }\n}\nconst Bo = \"data:image\u002Fpng;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAMAAACdt4HsAAAAAXNSR0IB2cksfwAAAAlwSFlzAAALEwAACxMBAJqcGAAAAlJQTFRFAAAA7pIo7pIo7pIo7pIo7pIo7pIo7pIo7pIo7pIo7pIo7pIo7pIo7pIo7pIo7pIo7pIo7pIo7pIo7pIo7pIo7pIo7pIo7pIo7pIo7pIo7pIo7pIo7pIo7pIo7pIo7pIo7pIo7pIo7pIo7pIo7pIo7pIo7pIo7pIo7pIo7pIo7pIo7pIo7pIo7pIo7pIo7pIo7pIo7pIo7pIo7pIo7pIo7pIo7pIo7pIo7pIo7pIo7pIo7pIo7pIo7pIo7pIo7pIo7pIo7pIo7pIo7pIo7pIo7pIo7pIo7pIo7pIo7pIo7pIo7pIo7pIo7pIo7pIo7pIo7pIo7pIo7pIo7pIo7pIo7pIo7pIo7pIo7pIo7pIo7pIo7pIo7pIo7pIo7pIo7pIo7pIo7pIo7pIo7pIo7pIo7pIo7pIo7pIo7pIo7pIo7pIo7pIo7pIo7pIo7pIo7pIo7pIo7pIo7pIo7pIo7pIo7pIo7pIo7pIo7pIo7pIo7pIo7pIo7pIo7pIo7pIo7pIo7pIo7pIo7pIo7pIo7pIo7pIo7pIo7pIo7pIo7pIo7pIo7pIo7pIo7pIo7pIo7pIo7pIo7pIo7pIo7pIo7pIo7pIo7pIo7pIo7pIo7pIo7pIo7pIo7pIo7pIo7pIo7pIo7pIo7pIo7pIo7pIo7pIo7pIo7pIo7pIo7pIo7pIo7pIo7pIo7pIo7pIo7pIo7pIo7pIo7pIo7pIo7pIo7pIo7pIo7pIo7pIo7pIo7pIo7pIo7pIo7pIo7pIo7pIo7pIo7pIo7pIo7pIo7pIo7pIo7pIoTJ5QQQAAAMZ0Uk5TAAiA1fv+35cTG9b\u002F6jUH0+4caZ0M7Lyi\u002FSZztQGHmAMaz\u002FczEuU2ePqsfZ4EHfUtD+LoPCdihoRgKH+ldaMFVoltCnDkbg0i1\u002FLe60JVzfGOFQKhmwuSX7IGd8ov4e9T84zE7fmTirgJSNkjMWE0EPRZPulDGakpmWfmQFB5w2TdKr3cP03LW3xXwERH1HZS9lrwEbP4Xfw9ZtqITIXCsY8ukaCBNzDIqItUHiuCxxa2a0Y5MpXnLGO\u002FciVvyachGH6wxh8ghaUgOQAAA1FJREFUeJxjYBgFo2AUjATAyMTMwsrGzkGufk4ubjDg4SVPPx8\u002FNxQICJJlgBA3HAiTo19EFKRVTJwVSEpIkmGAFEi\u002FtAyDLIiWkydZv4IiUJ+SMgODiiqQoapGsgHqGkB9miCWFsgJ2jok6tcFRYGePohpYAhkGhnjUy1jYmpmbmGJ7E8rFqAuawjbBuQEWzsk9YL2TA6OynARJ2cXkBI2Vze4EncPoICnCYQj4gXkePvAJe18\u002FSSAIv4BgRB+UDArJLZZQkJhVgSAhMJgOsJBshGRUJ5OlB40eUSLgAV8JWDphSUMGlQxsUBeXCDMAB1QgHjGQw13TIAnsESwSBKIKZoMIlNcweEgkwpyQBrC0\u002FYgfnoGWC4zDqTSXxWsCywLclBWdg7YHKXcIKBIHihMRPMRBsj7AQUKCkHMomJweJWUloFosCyIYcXAUA5SxF3gG8QgU8EKdx4UVIJExIDBzgsO76pqGYYaFANqgbRlHYjlWR8k6Q2kGxqRDQhsAjkvk8EHlCa4m1uA7mzFMIAhpg3ETG5nB1EdqKm\u002FE5QuurqbQVKGPSB\u002FYjFARq0XxI4DB4oJin4GjnRQGBuB5I1qwGZjMYAhqMgbFkF96NmvPwUqM2EiJK6xGcAQFD8Jooo5G00\u002Fw+QpEJmpNtAEhdUABvlpkFTiHIRuAEOrEkhCg4mRAZ8BQKdOAKXRUgz9DE62QInpHTIMBAxgsJjKzRqOqZ+BYYYet0QaImhwGsAwcxZ7PgMWEGnjNRspT+M2gEgw8AbModSA6lEDBp0Bc0k3oAduACgD85PcDmLUhhswD8SaX45ZAuADggtA5XQymN0+HWTCrNqFTsTqjpQUigaXO4vAXJnFkMKqwG\u002FJ0kCC7pCZvEyqDlrwLYda6bQCVjumxNatXLVwdT7W1oS8m+Ca1rVNDUqwgnfdepgUnzMPNwKk8DQrbghZsrFz02blLfr6Ocp5m1bN7Nga0ZZlpISkzDPAAMn01Qu2sXJjAawpKRLYxLmTrbejOVB3x85i7GoxTU1evmu3DAMG0NGt3rN4rwB+zf6K+\u002Fp69vPhDGO7A2u6TQ9WHEriqkpA1jfBKOvwFOEllT36nIw4NSNAkEjgEUl9ZSSw0PLoejfSG5t0AQDCD8LOo5GzAgAAAABJRU5ErkJggg==\", Lo = \"data:image\u002Fpng;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAMAAACdt4HsAAAAAXNSR0IB2cksfwAAAAlwSFlzAAALEwAACxMBAJqcGAAAAlJQTFRFAAAA7pIo7pIo7pIo7pIo7pIo7pIo7pIo7pIo7pIo7pIo7pIo7pIo7pIo7pIo7pIo7pIo7pIo7pIo7pIo7pIo7pIo7pIo7pIo7pIo7pIo7pIo7pIo7pIo7pIo7pIo7pIo7pIo7pIo7pIo7pIo7pIo7pIo7pIo7pIo7pIo7pIo7pIo7pIo7pIo7pIo7pIo7pIo7pIo7pIo7pIo7pIo7pIo7pIo7pIo7pIo7pIo7pIo7pIo7pIo7pIo7pIo7pIo7pIo7pIo7pIo7pIo7pIo7pIo7pIo7pIo7pIo7pIo7pIo7pIo7pIo7pIo7pIo7pIo7pIo7pIo7pIo7pIo7pIo7pIo7pIo7pIo7pIo7pIo7pIo7pIo7pIo7pIo7pIo7pIo7pIo7pIo7pIo7pIo7pIo7pIo7pIo7pIo7pIo7pIo7pIo7pIo7pIo7pIo7pIo7pIo7pIo7pIo7pIo7pIo7pIo7pIo7pIo7pIo7pIo7pIo7pIo7pIo7pIo7pIo7pIo7pIo7pIo7pIo7pIo7pIo7pIo7pIo7pIo7pIo7pIo7pIo7pIo7pIo7pIo7pIo7pIo7pIo7pIo7pIo7pIo7pIo7pIo7pIo7pIo7pIo7pIo7pIo7pIo7pIo7pIo7pIo7pIo7pIo7pIo7pIo7pIo7pIo7pIo7pIo7pIo7pIo7pIo7pIo7pIo7pIo7pIo7pIo7pIo7pIo7pIo7pIo7pIo7pIo7pIo7pIo7pIo7pIo7pIo7pIo7pIo7pIo7pIo7pIo7pIo7pIo7pIo7pIo7pIo7pIo7pIo7pIo7pIoTJ5QQQAAAMZ0Uk5TAAiA1fv+35cTG9b\u002F6jUH0+4caZ0M7Lyi\u002FSZztQGHmAMaz\u002FczEuU2ePqsfZ4EHfUtD+LoPCdihoRgKH+ldaMFVoltCnDkbg0i1\u002FLe60JVzfGOFQKhmwuSX7IGd8ov4e9T84zE7fmTirgJSNkjMWE0EPRZPulDGakpmWfmQFB5w2TdKr3cP03LW3xXwERH1HZS9lrwEbP4Xfw9ZtqITIXCsY8ukaCBNzDIqItUHiuCxxa2a0Y5MpXnLGO\u002FciVvyachGH6wxh8ghaUgOQAAA1JJREFUeJxjYBgFo2AUDAHAyMTMwsrGzkGufk4ubjDg4SVPPx8\u002FNxQICJJlgBA3HAiTo19EFKRVTJwVSEpIkmGAFEi\u002FtAyDLIiWkydZv4IiUJ+SMgODiiqQoapGsgHqGkB9miCWFsgJ2jok6tcFRYGePohpYAhkGhnjUy1jYmpmbmGJ7E8rFqAuawjbBuQEWzsk9YL2TA6OynARJ2cXkBI2Vze4EncPoICnCYQj4gXkePvAJe18\u002FSSAIv4BgRB+UDArJLZZQkJhVgSAhMJgOsJBshGRUJ5OlB40eUSLgAV8JWDphSUMGlQxsUBeXCDMAB1QgHjGQw13TIAnsESwSBKIKZoMIlNcweEgkwpyQBrC0\u002FYgfnoGWC4zDqTSXxWsCywLclBWdg7YHKXcIKBIHihMRPMRBsj7AQUKCkHMomJweJWUloFosCyIYcXAUA5SxF3gG8QgU8EKdx4UVIJExIDBzgsO76pqGYYaFANqgbRlHYjlWR8k6Q2kGxqRDQhsAjkvk8EHlCa4m1uA7mzFMIAhpg3ETG5nB1EdqKm\u002FE5QuurqbQVKGPSB\u002FYjFARq0XxI4DB4oJin4GjnRQGBuB5I1qwGZjMYAhqMgbFkF96NmvPwUqM2EiJK6xGcAQFD8Jooo5G00\u002Fw+QpEJmpNtAEhdUABvlpkFTiHIRuAEOrEkhCg4mRAZ8BQKdOAKXRUgz9DE62QInpHTIMBAxgsJjKzRqOqZ+BYYYet0QaImhwGsAwcxZ7PgMWEGnjNRspT+M2gEgw8AbModSA6lEDBp0Bc0k3oAduACgD85PcDmLUhhswD8SaX45ZAuADggtA5XQymN0+HWTCrNqFTsTqjpQUigaXO4vAXJnFkMKqwG\u002FJ0kCC7pCZvEyqDlrwLYda6bQCVjumxNatXLVwdT7W1oS8m+Ca1rVNDUqwgnfdepgUnzMPNwKk8DQrbghZsrFz02blLfr6Ocp5m1bN7Nga0ZZlpISkzDPAAMn01Qu2sXJjAawpKRLYxLmTrbejOVB3x85i7GoxTU1evmu3DAMG0NGt3rN4rwB+zf6K+\u002Fp69vPhDGO7A2u6TQ9WHEriqkpA1jfBKOvwFOEllT36nIw4NSNAkEjgEUl9ZSSw0PLoejfSG5tDAwAAOwrCzjMUsXkAAAAASUVORK5CYII=\", Uo = \"data:image\u002Fpng;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAYAAACqaXHeAAAAAXNSR0IB2cksfwAAAAlwSFlzAAALEwAACxMBAJqcGAAABVxJREFUeJztmlmoVlUUx\u002F30XjVLnFC0bJTsWlmZQwRlYlE+FIR2jQzRBpSISooGobKi0aLoRlSEUolU0EMDRQ9JUdFgiA9NFA0oDTfLVTaZZdb\u002F39oXD\u002Ftb55x9vnvOPUp7wQ\u002Fu\u002Fc4e1lpnT2et3a9flChRokSJEiVKlChRokSJEiVKxSJdHYPBTeBD8BfYBb4ED4FRdetXqcDAA8BH4J8UtoDpdetZicCwQeD9DON7EDC+bn1LFxh1SYDxPayqW99SBQbtB34wDH0FPOHWgeTvf4OJdetdmsCYqwzjXwQN9\u002FwO4\u002FnDYEDduvdaYMT+YKNn3HYwNVFmJPjaK8P\u002FZ9SpeykCI64Df3rGPWOUu8EYBatBWx16lyJQ\u002FkBj5f8NTDbKDgObvbLd4KS+VroBjgAXgtvBrWAx6Cg6J1F+hTvsJI1am1H+amMUrAHtBfUfD+aLHrjuApdxyuW2gwJDwDLwlaEIT2uXg6GBihwGPvba+JnOzajD3eILr873YHZgn+2gE2xwO0mynW3gXjA6rXJ\u002F8LixJSXh23wU7JujSMN15rfVFWDEIqPf58HAnHpt4Fo3xbLOGOvpaKuBTsNraU7oylqc8OxYsMmr92Oq95sN8dcNjpx5GXUabpj\u002FEqA\u002Fucdq5E2jIA8vW43fd7jp0LQmOGUeMN7+yjzjE23MN+q\u002FDPZJ6W+Oc7CvJ4e9v73+Z5fVqT90PgETwJQU53AvvwD099qZJs1rCB05vIADBojO42Qbv4LzjLIzwXeGflyzTgXjwNP+c6tTv4EViWeTDIV6lOrscYJ7G48Yb695yOU7YanRDo\u002FO7Yky0w1nk2\u002FALNl90jy7FQcs955zG3zDKMf5ebHoIjpRdNVOPv8cHNmCA0aDdcaom+Oez5bmcwP5DJySHJn4+6xeO8CV4eL2nlGW68T5okEN\u002F9n10uKZHvXOleZzxGvgNGeo3xcdcoY0T8vSHMAhPgN8YJTnImStI6n7foADRokufv4C3G303+2GurUwl+MAV45DfaYx1C2uafXtJ\u002Fqb64zO6ud3sEBStuZSHZBwwjzwU4ZSjPlN6I3xrq8R4IWMfv4QPUKnHpRKd4Arz61qoaQfPpb5c7FVcQZsN\u002FrgVybP+4MD6pfrgES9uW4IJuvyuDmuRXutPviNssbrY6foAtsIqF+dA1zdxW4osh737kUFbQzp42TZvcjyyL4ydH2p3AGu\u002FhLwqehWGHzqK9D+QDfX+bV4pxT7RK7eAXuyRAdEB3Sc+X93wKzogOiA6IDogOiA6IBiDritBl0rEdEoUa4D\u002FM9axub3+js7oneSVoc44HVjFDwnGhEu5bu+r0U0R3ifNEeXt1qFGdTcaTiBX3jLwTFgSA12FBLRr0ZGp3klZ71hD7nfqsiA52MpFQhzAMwN3AxOEA1b1z4ynN4Mmx0nehOFofusUN07qS9SNPLylOTnCBmk3OQ6uxuc40bIQWC4VHCpQTQEN9QN66NEv\u002FBuEc0dMPdghcx83gZj8jridTbG87YENOg7hXUYr+eVmJdEM8kcMZeKxvhPByeK5uqPB5MdU9xv01wZOpQBFoa8HhTNDjMfwTB7d6CxSZi8YbZ6WBGP821yAflWslPmrbLLOW1HwIhrFSZs1oKjezP0eM3lIvCqaBKyKmXLciqN5jy\u002FEhwuAUHTUEe0OWfwVHWF6IL5rujNzroMZvqb0+1J0SQMDzyHgkGlGJ3jEF5HGSu6IDFXxztFN4pmh58VTanzXjAztaEXF5Iw1M75znn\u002FlmhyZJXomrLUGcv1g\u002FePM\u002FMCfSqiWSPe9eE2ebDonkxFpxaEuwoz0oeAMaI7wN5\u002FcXJPk38Bz1zMtWby+i0AAAAASUVORK5CYII=\", mi = {\n \"open-eye\": \"data:image\u002Fpng;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAMAAACdt4HsAAAAAXNSR0IB2cksfwAAAAlwSFlzAAALEwAACxMBAJqcGAAAAelQTFRFAAAAmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYMxdw0QAAAKN0Uk5TAB1Pq7bV\u002Fv\u002F5xZFHCw6h6NOCOQMRbNGwTgdo7PPOlIAlJDOSoNr7w0FL1+ubRRgCIVqz\u002FCIKkPbpexsBPOFcJ\u002FWDCBm5mULqye\u002FBYocVtyxQDDIFjCpyslXi8j70d17PH5cEU+54V4anWUmeUmuatBS4c6ac58cgW\u002F1Gsc0PE+Znn+S1Ott9LfAaEmlRFi+kxiNUNEhtK7p6nUzWcWEu2aKt90TEJrgAAALFSURBVHic7VZrWxJBFF5pdbxkRWkKSolGRYmhZBkYoWSIRaFkXjIx7GIWXSktzS6opVlJZvf7L+3MLpszuzvL9jz1bd8vMO8579mZMzPnDMcZMGDgPyPPtI7PL0CosIgvLln\u002Fl+JS04aNiMIm8+YtuuVl5VuRCioqLbrkFmuV4F9t27a9xg6ordvh2ClQu3br0Dv3YNe99a4GgtznbmzCtIffn0PefOAg+LUc8iosvtZ6PI3Dfk39ERv4BNra1a3Bo3gWHc1s\u002FbEQOHS62Q7OMDh0NbDMxwPw+ROaU4ychAiOU+pGK9jCUTnb3RMkh7HTkIlAr5r+TCFC+cokt3dW97mIsa8f5jlQq9T3DIJeLfJZhIbOxQhiGCLEu+VuvZCe0IjazDh8As4nCGIUCF6+F7B\u002FFyKqem4Yb95FkrkExGXaaQwyc0Vdz43jAAHqaF0F5hpJmIBIMvRiAHSdpCw3IGTZ2vgmJOBWTC6UcFsIEKY4Lxy5O2vDFEJ3R1h67p54mycocvI+QqPS4AFcICtT78+Wg3GankJo+mH2vyugEWCmhRkgLgXAS3hEL+HxkxnhN+F8KhUkegl+cgmcF5KYppI4i+bmn9nt\u002FWMFkv45pV+AJFYQ4yh4lFMeVfKK2EFaLWnYxkWSwQdpkiReyPTKg7REfZCLw1F+SRJddIBcR5l7BTsRIi\u002FDxACpf01eJnw0lxWFTXGdI00eSa7nOmcLSoYgYkmbsAdDdEF5gwvKilKvWtIyb1eTK3pLWraoypNDI5LGRfUdy1yJy3pao\u002Fk4Hbis17AdxMZiZjTR4HuckpRGY4HWVoxbW+jDgtLU+tGTu7UBPn0WmmuKaq4+d2Of0FzTGabwDyzz4j0YXP7yFXd3+7dV83exvU8v5ZZjLKo\u002FMKZ0PjAwSk0\u002FFE+c2URuHYW86E8ePzZ+FfF1JZqZN2DAwL\u002FAb6ixeYt2jKORAAAAAElFTkSuQmCC\",\n \"closed-eye\": \"data:image\u002Fpng;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAMAAACdt4HsAAAAAXNSR0IB2cksfwAAAAlwSFlzAAALEwAACxMBAJqcGAAAAblQTFRFAAAAmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYZNB\u002F+AAAAJN0Uk5TAB1Pq7bV\u002Fv\u002F5xZFHCw6h6NOCOQMRbNGwTgdo7PPOlIAlJDOSoNr7w0FL1+ubRRgCIVqz\u002FCIKkPbpexsBPOFcJ\u002FWDCBm5mULqye\u002FBYocVtyxQBYwqclXiMvLkrF7PDB\u002F9U+5XhqdZnlJrtBS4ppznW0axzQ\u002FmtRoSURYvScYjMFQ0K7p6nUzWsn1xYS5t2aI6BK33FoqWFQAAAl5JREFUeJxjYBgFo2AU0BgwMjGzsLKxs3NwsnBx85ComZeJj58dBQgICgkTrV1EVIwdCxCXkCRKu6SUNFi9jKycvIIiECgpq6iqgYXUNYjQr6kFUqqto6uHJKhvYGgEEjZmMSGg3dTMHKjOwtIKQ8baRgfkDFs7vPrtZYFqHBydsMs6u4Bc4WqKW7+bO1CBhwFuBZqeQAVeerikvR2A1vvgdaKvH9AEVX\u002FsklJAOc8AvPoZGAKDgCHhEIxNKoSDnZ2VUCADAzMU6M4wJUyJ8AigfgyTmSOjrNHFooEmxMSiiwYDg8c9DsPYeHZ2DAMYEoB+ZUGPC2D8JfpiugurAQxJQBOSUYVSgCGTiqkShwEMaUAT0pEFmIACGVgU4jJAMhNooQiCnwUMgOxAEgxgsAImuRwEN5edPQ8zAPEZwJAPlEmAcQqAGUgKqzLcBjAUsrMXFUPZug7kGRADMwDkhRISvWCH7AUGK2AglpIUiGXAQBRH4gcAo1GUBAMkS4HRWI4sAkpI+cQbAEpIFahCMcCkXEmsAViSMkMVMCbcMTMDVgOqgfprMAo27NkZmwHYszO0QKlFE3Suc0YTsa4HFSgNmPopL9KghSp64KAC31JQodqIS1oCVKyX4ikXNVVBxboCbgWQikUQRyXq3ASqWHLxVCzAqo0LVLW5N5dhStm0GBOu2oCgtQ1cueaiVK7WBobt4Mq1FD2asADJDkj1HlHT2QWq3RW7ewR7IdV7UQVh7SBQjr2BUUhkAwMEeJn6MJo4\u002FROI1g4BjAETWUCNjUmcLMrceEN+FIyCUUANAAAY0GNbcYUV2AAAAABJRU5ErkJggg==\",\n king: Bo,\n king2: Lo,\n king3: Uo\n};\nfunction Fo(t) {\n Tt(t, \"svelte-1cdflqk\", \".nvjs-eye.svelte-1cdflqk{width:20px;height:20px;float:right;margin-right:2px;margin-left:7px}.nvjs-eye.svelte-1cdflqk:hover{filter:brightness(1.25)}\");\n}\nfunction Go(t) {\n let e, i, s;\n return {\n c() {\n e = Z(\"div\"), C(e, \"class\", \"nvjs-eye svelte-1cdflqk\"), C(e, \"style\", t[0]);\n },\n m(n, r) {\n W(n, e, r), i || (s = nt(e, \"click\", t[1]), i = !0);\n },\n p(n, [r]) {\n r & 1 && C(e, \"style\", n[0]);\n },\n i: le,\n o: le,\n d(n) {\n n && q(e), i = !1, s();\n }\n };\n}\nfunction Ho(t, e, i) {\n let s, n, r, { gridId: o } = e, { ov: u } = e, { props: a } = e, { height: l } = e, p = he.instance(a.id);\n function m() {\n i(7, s = u.settings.display !== !1);\n }\n function I() {\n p.emitSpec(\"hub\", \"display-overlay\", {\n paneId: o,\n ovId: u.id,\n flag: u.settings.display === void 0 ? !1 : !u.settings.display\n });\n }\n return t.$set = (y) =\u003E {\n \"gridId\" in y && i(2, o = y.gridId), \"ov\" in y && i(3, u = y.ov), \"props\" in y && i(4, a = y.props), \"height\" in y && i(5, l = y.height);\n }, t.$.update = () =\u003E {\n t.$.dirty & 8 && i(7, s = u.settings.display !== !1), t.$.dirty & 128 && i(8, n = s ? \"open\" : \"closed\"), t.$.dirty & 288 && i(0, r = `\n background-image: url(${mi[n + \"-eye\"]});\n background-size: contain;\n background-repeat: no-repeat;\n margin-top: ${(l - 20) * 0.5 - 3}px;\n \u002F* FIX 'overflow: hidden' changes baseline *\u002F\n margin-bottom: -2px;\n`);\n }, [r, I, o, u, a, l, m, s, n];\n}\nclass Vo extends Ie {\n constructor(e) {\n super(), ve(\n this,\n e,\n Ho,\n Go,\n ge,\n {\n gridId: 2,\n ov: 3,\n props: 4,\n height: 5,\n update: 6\n },\n Fo\n );\n }\n get update() {\n return this.$.ctx[6];\n }\n}\nconst Xo = [\n \"data:image\u002Fpng;base64,iVBORw0KGgoAAAANSUhEUgAAAVQAAAC0CAMAAAD8fySxAAAAAXNSR0IB2cksfwAAAAlwSFlzAAALEwAACxMBAJqcGAAAAvpQTFRFAAAA\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F+\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002Fv\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F+\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F7\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F+\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F7\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F+\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F+\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F+\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F\u002F7\u002F\u002F\u002F\u002F+\u002F\u002F\u002F\u002FpoUcigAAAP50Uk5TAD1AGUAtKyYkC\u002F+5\u002F5qTrNlmOjU5b2nMT+EDZMFjRT\u002F\u002F7MT\u002FaI+NGhUIM+YFusm38+0srmrkTcVMH\u002F7Ql2yZa1RwbYwU+dcBYEODjlyKG+7dArTj3sbl6+KbWHE4MtLnB0ZHQnOGHbgKsCV0e9qi8A78nJ\u002F7doIudWL0EksM8ngcIO\u002F3F+p6ktbHi2Gdqzdyy\u002FxVTsB9oX\u002F9IanTyCemlYE2fBAPUUhSHii2pYTgz9TfRJ6qI4BJVoh39hO1U9gFW\u002FlfSloqMMrcXaCykTQYeV69iaeUlpCYszs8r+jpBIUphyKxV6TRzTGovNvOo60b+sIwL1lQu7\u002FVQRaEK34VtNnHAAAOsUlEQVR4nO2debxVVRWATxIqVwiNUAEzyKEgUEJTccoJUBwCsnBIRVNBFIGcQRMjE8kpzACnUFMTFedUUiMnHFIUCi0snzln2qCVTb9f77x3731nWHuvb+97zn39sb8\u002FFPTstdfaZ9+z1jl77bWjKBAIBAKBQCAQCAQCgUAgEAgEAoFAIBAIBAKBQCDQCB9Zy0aXAqV9tP1fXZPXr23tvYN1\u002FIxbV1JAoKsuyoVuFSvrOUrrbhcX0yPZ4GP69W309LNufSh+Az\u002FxJj6udNfLSdongAG9kw02hFZv5GXcxlB6n75e4o30U\u002FrbxEnaJ4EFmyYbfMp0Vf\u002F0Xwd4GfdpoxKbpf62uZd0M1s4jYHGlpq0Vj6TbPBZYHIbAz1sGwS0ifncYA\u002FhNoZkOuiftWgrF2lb6xYMTbf4PDR8mIdt20DZ23rItvIFtcvtHKT10S3YPt1iE2j4Du6mDd+RiS58oirOP2anQqWlnX8U7Zz4X8Kvvs4u7rbtmmje8YjOxydfdBdth7jr3bC0XpqoVot2TzfZAygQs6ezaXuNYJILn6iq848ZOYpK2xtIyzi+fZjlHoHqaCh5D2fJGvtWctFLnv2otP1zTdt+0alf3AHpJl2g6c6B6sAvWaQlTC5+okbrEYPGjIXSxumyhmbbDCUaeASq0nNFemj31kW58mVkUT8o7UBd1FeybbZHGjgHqqO+mmlv+D2OL36imt11SoeDWM+DwdgcnG10MGgU4xioHkJktj6XDnUTS\u002FgatIhFHYcBSTkjDtVaVH+zjoHq4cyw8T5vagrkXT3miAlE2n5A0pHZRkdBFdwC1a\u002FXmvVP\u002FFPgaCepjH2hRazzY4CgA7KNjoUauAWqlvflpLcqY6JGE6FFlQGTgLTjdDk554\u002Fdv1OgOhmadbyLUApz\u002FjEnAGlTKmrQm3P+UbQVU8ApUD2RySxlopJ39SpTp6nSBk\u002FXxXwj3+wkpoBLoNrlZCbzFAeZmNj5q+9TVU5VpZ0GpAgRzOlQAYdZtSeTWMpEjc6w9pn+njNjpiaNhIZH5Zudmb9KvNE8UD3rm0CTVs52GiwK+VBfZ39N2qlAyKx8s3Ng\u002F2dis05hAr\u002FVzWWsMOBDfQezv61I66nLEJx\u002FFMFPdPizZ99zmcDvOI0V5iDWe5XzFGlzdBHnS+02Yt3PpVZ9N9PQ4DVKmqjdtH7TjLBP1bHA+V8gNazHP7Yv\u002F5XKhdQsbbG\u002FaiwJEj24SB+FFLtapa0NJFwsNTyb9X4JtKru+Oz3qKSJqjj\u002FPN+bZZM2D0gQnH8UXcp6Hw+t+j4Td5nraEHs4Zxwo39gkzYfWHKs1HBdNgowUB3EhJU1UZPOn70CLFhokXa53l50\u002For774iW10ZGXYgsqcx3Hy4GWKXPcLlF2hWpK8UH2pVyy51Y5yhQHb4AyRpa1kR1ePOvc5VRmrfzj6KrWd8oUP0hk7XIZ8AI17D+UxxnlHYVaG34Kntt7kJxnpNA9Tr2JjH0R35DppMNkjXaLD3NJO16IOEGuemNrH8SqBJv2cpozyHTmcsUSDPRJO2EjmuMXu\u002FHctObWNcgUB2cXuw3RarlTdRoMbMlgykL+Ga9qcH5S49j6b6AQHVbY98pgbf4DpnOrfowZIjDG1MW8BK9uTEr8zbWvRqojro9viw\u002FPzP\u002FpcSJ6uP8Y+6QxQEPcadJlbtYz2qguhuTc4z\u002FoGnYUvRs7wLyfLsbGGNcZruHDYYaqF6CxJQ4UVGKHrdtO9DwJyZV7mUda4GqcQNBmvsaGjY7c5kKecQs4PsrUj5tGoPzj6JhrGMtUAX5ca0s\u002FWlDw2bnAWaJwIOCNLAobHL+7G2sogaqk1k6uros1Ajuzr+GlAUcf763f8C0bcl4KHGZ+XmuBKp3IuVLnag\u002FQyrILMuL+7ne6iSzMmwfyblWg\u002FZKLvab7y9elfFBcv40ByCfBWxeEu3YQ2TJsbmF9WsNVO\u002FLXy885EudqNHDzA6ZM7LSHgGNHjEr8yjr9jGLPXCxf8sChs5MPj\u002FfgVwW8PGg0XCzMo+zbi23JToaSSh3osL4w0R2kxxwEmbnz3KwhV4T9M2mo8tsUcTQmbmd2WEgmwV8pd5kuU2bJ1CvlmjoSSRgRLkTFc4NI5nFZpBk+pRNnadRp3eZBbCd\u002Fb8oYujMPIOUiJFDggETktJmATmn29QRXLeAebLfgNqPeLaYwTPRkPOPWZGUdqT10vaYyuZloudQn+ZA9Xlr1zW0xKVGWZnoC9ToyDM1mbC+O2hwjk0d+MMxBars40HZE7VB5x+zKCGtB7DIqg58xJsC1VXV\u002F2+fHr8savBMgM15CjMSCevmuhp1lBd39iXC8Ajpghb7S5+ojTr\u002FmJUd4kTnn542VucvLJiJ\u002FtEQqJ4n6peV8Kvihk9mEBi0DLlvFLPrCevPgubKpgWWpi8HqtctJW1Ln6jQ2yqsrkkjm\u002FaVtZBqBqIwP5MTXg5U88kYEi8UOoAStbhQ+QRqp54FbCovkRwiW25bRHfJioHqYJSOfrKYcVgoLyIbTNQmT+3m72y9ug2786dru2KgugFq2kNqWixjUoOT\u002FbOAOKWnz2qXBkr2qBv29LJDMVKgir5iNGGiFuH8Y6ouHRSXsuYLx6QLZJlusRCokiQuoc5A8QxCiui0ZwHLZdDSqDsWV8dXqUsPQqCKFvubMFHRzvy9F4GLVsXSyHq7WgOBPRnzgeqvUTtDZmyhkI9C10yaCq6Ks4BJaUnF+UfRb4AQKVAF++GbM1HR58tJie2IZi+2JkJFUDXnT91\u002FLj+eLfZbFnKLY4yuR58omvAS0Pc083e3BGC3\u002FhGgs3zuAKprs6AZE5U4\u002F8Wt1+0CrtsaDceJulLg1lQqv800YrXn1NCjCEhZnjjp4HekckUv8sO9X1eKVVLOBKovgybdF9xdyihmIM7\u002F4fhCsi1gyQvgIlAAiVVSbkm1GYgW+8HPpABeAZq0paGPMj18XRcLfq8rJQdm2Y7S6Zi9Sd\u002FNmajRq0CV9tWS14jWOrrzN75CZEZ1w2STXO05kdfLGMI8YJX91uqlbxC1Vd4kWsUvu+or1cpkC5Qt1KSJSpz\u002FA9VrdyB6q6CnGqqknApUUe25qwsfP5G3gCr1V5flRPEUwvMWlYABHxDTgeodpEGTJmrN+Vs\u002FUD9cu5i9PiqgYuGoknIyUEXFX98ufPhkSE2+Z+pX\u002F4GoroBmC6uk3BGoosX+HVsKHz4Z4vw7ciV5gpAR4vxpJeWW+vWvk8st6VfF8o6uy4GJy1nymI0\u002FMr1QKcV6oIpqzzVtohLnPy5xPdl0buddphiqpFwPVFGZUlwiqFGqacs1P5Vz1nGsmAoHV2WvcGWFSZU04henrHo1zc5aWtHD2qZN1GgZGIbnkg0Wsm1OZi5liqmVlGNqgWqm8FJ\u002F8c\u002FvFTx0ZsiXnUGpFhcQay2syxRDlZSrgSpa7G\u002FeREULEOmNEn\u002F6MzHXCHP+sJJyNVBF1bTXFDtwNqbo2ozJNJEzwChLqGbI\u002FbcHqigdvaXAUbNDnP+LmTYzZxsvBYlD+DMRqqTcEl9JNm1XXi1y2OyQPUu53dssJ98AdP6wknJbdZu\u002FkCsfL3LY7JDvZU9mG02bQawwsDFVzVxJOeHc4wP5BpFuny502OwQ539YrtVlxAwD0PmLlZTzxL+i98iFfy1y1BTWAH3yZ6VMGkDsEKHOvzUgJuLehrXnxun9FQdw\u002Fk8IzS4mBotg588qKV8Jv7w28YmKqvFLTyOUWVEn+YJzM1fuTVXwZpWXUO25\u002FosLGzHA+1XdbLwiNdxct0TGoaD2u+L4JP\u002FSvTVQJZlzTZ2o0QeSqhnE8+fGgswKceX6b1w5VEn5fLLYv3VR44UgRSDeEluyjcp5JnPl6OHRNczpBxcVNFwMUq5EPiht1EhHk9sZQU8IjPjpPDHWJ9iQgkYLAl6a3zE0fdDB5A4cDrONxsKDFOpkH2K1qdvciUqcv\u002FGd2SuzwsH5F5W7Ufl74wPlAjmKx1hgkO2qz+B0SEHDiwztNHei1p2\u002FQP2ntMzYenn+YhUH59\u002FY23AHzzc6So6MBjqZQzyfzIp1XNRrf2ynfBC\u002FfXWaPFEbcP5tTBTMtFvt4vyjqMV9BPP8o9FBcqVeVc88FFMszbs6W\u002FiGk3qwlKKdtRobImeI87eu7LCqfAkck+4+hGItWcfi+UxlQmbayzYBV+W+uinrKde6KQhP6bDxz0YGyIfaOXy29PJHrRLEbx4WrndTEH0ssdL0iYrO4XvfKsE1s8J8MIiIlg+vrzPu08Dw+AHWIRYoR6Tvygazipvz9\u002FGEGZo\u002FUVMldQ2sr4j4l1NmhZvzL8D9b+o7NN4QlbfRhOBTwWNWuaqYu+1uwX8nTFTy41LPwJjpslzt6Pw9YrY04oF35UK2RX2gSvm3g5E3uqoIKynnaXNhML24UIjzNx6OVGcaKQRQxdH553M93OoRGc9nKBFwCK\u002Fm\u002FGNWWCXUYuD4YTjd0fnjSsoynTFRo3hBRLn1DwExE3BmxeHOKjZUM8daTrQkiPNHyce9qVP22MXEKimLdMpEJTuP0EltqBBAjMeRrw1shgEb4IsnPk1H21R+CJLUD5opHbOi4J+12SkTFX2t6IokjQVVWGJuclfSv7Yj3K9RMOC72gLhsBkJdoaEu\u002FNP7zB0qtXQORM1mqNrNpLKQpkVV3go6e3+nVYYC4M4\u002F55UGMrQ8drCXK+k7PbW\u002F6FPX43zH6DaqVhashCAyfz\u002F+qi52Gks6zh+DS8KcpTea1gaKWHg4fxpJeUsnTRRxUMfs3NsGBcHdoi0+Kh5RkoEfff3un8FYHL+iYGlzj9GLwTg4\u002FytlZTNI9xZE5Us\u002F85xkacevXibl5pep+TO8+qqcYjzd9ofr37yztWQZLBKyik6baI+BpS7x0midtzxfD9Fh+QlaW8B3L8WzDwwqPc6SVxo3M\u002FUPgi7+Sm6GiiaxpSmXD7zgXbqGdppnrJLsx10aIFVUk6iLwGVBTib3MX5xxxgfUz7OX+PhM13HNUOBAKBQCAQCAQCgUAgEAgEAoFAIBAIBAKBQOD\u002Fkv8BDVonljy6Jq4AAAAASUVORK5CYII=\"\n];\nfunction zo(t) {\n Tt(t, \"svelte-5spisq\", \".nvjs-legend-line.svelte-5spisq{pointer-events:all;position:relative;user-select:none;border-radius:3px;padding:2px 5px;margin-bottom:2px;width:fit-content}.nvjs-logo.svelte-5spisq{width:35px;height:20px;float:left;margin-left:-5px;margin-right:2px;opacity:0.85}.nvjs-ll-data.svelte-5spisq{font-variant-numeric:tabular-nums}.nvjs-ll-value{margin-left:3px}.nvjs-ll-x{margin-left:3px}.nvjs-eye.svelte-5spisq{width:20px;height:20px;float:right;margin-right:2px;margin-left:7px}.nvjs-eye.svelte-5spisq:hover{filter:brightness(1.25)}.king-icon.svelte-5spisq{padding-left:8px;padding-right:8px;margin-right:4px;filter:grayscale()}\");\n}\nfunction vn(t, e, i) {\n const s = t.slice();\n return s[41] = e[i], s[43] = i, s;\n}\nfunction In(t, e, i) {\n const s = t.slice();\n return s[41] = e[i], s[43] = i, s;\n}\nfunction yn(t) {\n let e;\n return {\n c() {\n e = Z(\"div\"), C(e, \"class\", \"nvjs-logo svelte-5spisq\"), C(e, \"style\", t[16]);\n },\n m(i, s) {\n W(i, e, s);\n },\n p(i, s) {\n s[0] & 65536 && C(e, \"style\", i[16]);\n },\n d(i) {\n i && q(e);\n }\n };\n}\nfunction bn(t) {\n let e;\n return {\n c() {\n e = Z(\"span\"), C(e, \"class\", \"king-icon svelte-5spisq\"), C(e, \"style\", t[14]);\n },\n m(i, s) {\n W(i, e, s);\n },\n p(i, s) {\n s[0] & 16384 && C(e, \"style\", i[14]);\n },\n d(i) {\n i && q(e);\n }\n };\n}\nfunction An(t) {\n let e;\n function i(r, o) {\n if (!r[12] && !r[11])\n return Wo;\n if (r[11] && r[8].length)\n return qo;\n if (r[8].length)\n return jo;\n }\n let s = i(t), n = s && s(t);\n return {\n c() {\n e = Z(\"span\"), n && n.c(), C(e, \"class\", \"nvjs-ll-data svelte-5spisq\"), C(e, \"style\", t[17]);\n },\n m(r, o) {\n W(r, e, o), n && n.m(e, null);\n },\n p(r, o) {\n s === (s = i(r)) && n ? n.p(r, o) : (n && n.d(1), n = s && s(r), n && (n.c(), n.m(e, null))), o[0] & 131072 && C(e, \"style\", r[17]);\n },\n d(r) {\n r && q(e), n && n.d();\n }\n };\n}\nfunction jo(t) {\n let e, i = t[12](t[8], t[10]), s = [];\n for (let n = 0; n \u003C i.length; n += 1)\n s[n] = _n(vn(t, i, n));\n return {\n c() {\n for (let n = 0; n \u003C s.length; n += 1)\n s[n].c();\n e = Oe();\n },\n m(n, r) {\n for (let o = 0; o \u003C s.length; o += 1)\n s[o].m(n, r);\n W(n, e, r);\n },\n p(n, r) {\n if (r[0] & 2102528) {\n i = n[12](n[8], n[10]);\n let o;\n for (o = 0; o \u003C i.length; o += 1) {\n const u = vn(n, i, o);\n s[o] ? s[o].p(u, r) : (s[o] = _n(u), s[o].c(), s[o].m(e.parentNode, e));\n }\n for (; o \u003C s.length; o += 1)\n s[o].d(1);\n s.length = i.length;\n }\n },\n d(n) {\n ut(s, n), n && q(e);\n }\n };\n}\nfunction qo(t) {\n let e, i = t[11](t[8], t[10], t[21]) + \"\", s;\n return {\n c() {\n e = new Fs(!1), s = Oe(), e.a = s;\n },\n m(n, r) {\n e.m(i, n, r), W(n, s, r);\n },\n p(n, r) {\n r[0] & 3328 && i !== (i = n[11](n[8], n[10], n[21]) + \"\") && e.p(i);\n },\n d(n) {\n n && q(s), n && e.d();\n }\n };\n}\nfunction Wo(t) {\n let e, i = t[8], s = [];\n for (let n = 0; n \u003C i.length; n += 1)\n s[n] = Tn(In(t, i, n));\n return {\n c() {\n for (let n = 0; n \u003C s.length; n += 1)\n s[n].c();\n e = Oe();\n },\n m(n, r) {\n for (let o = 0; o \u003C s.length; o += 1)\n s[o].m(n, r);\n W(n, e, r);\n },\n p(n, r) {\n if (r[0] & 2097408) {\n i = n[8];\n let o;\n for (o = 0; o \u003C i.length; o += 1) {\n const u = In(n, i, o);\n s[o] ? s[o].p(u, r) : (s[o] = Tn(u), s[o].c(), s[o].m(e.parentNode, e));\n }\n for (; o \u003C s.length; o += 1)\n s[o].d(1);\n s.length = i.length;\n }\n },\n d(n) {\n ut(s, n), n && q(e);\n }\n };\n}\nfunction _n(t) {\n let e, i = t[21](t[41][0]) + \"\", s, n, r;\n return {\n c() {\n e = Z(\"span\"), s = st(i), n = me(), C(e, \"class\", \"nvjs-ll-value\"), C(e, \"style\", r = `color: ${t[41][1]}`);\n },\n m(o, u) {\n W(o, e, u), te(e, s), te(e, n);\n },\n p(o, u) {\n u[0] & 5376 && i !== (i = o[21](o[41][0]) + \"\") && Ft(s, i), u[0] & 5376 && r !== (r = `color: ${o[41][1]}`) && C(e, \"style\", r);\n },\n d(o) {\n o && q(e);\n }\n };\n}\nfunction Zo(t) {\n let e;\n function i(r, o) {\n return r[41] != null ? Ko : Qo;\n }\n let s = i(t), n = s(t);\n return {\n c() {\n n.c(), e = Oe();\n },\n m(r, o) {\n n.m(r, o), W(r, e, o);\n },\n p(r, o) {\n s === (s = i(r)) && n ? n.p(r, o) : (n.d(1), n = s(r), n && (n.c(), n.m(e.parentNode, e)));\n },\n d(r) {\n n.d(r), r && q(e);\n }\n };\n}\nfunction Qo(t) {\n let e;\n return {\n c() {\n e = Z(\"span\"), e.textContent = \"x\", C(e, \"class\", \"nvjs-ll-x\");\n },\n m(i, s) {\n W(i, e, s);\n },\n p: le,\n d(i) {\n i && q(e);\n }\n };\n}\nfunction Ko(t) {\n let e, i = t[21](t[41]) + \"\", s, n;\n return {\n c() {\n e = Z(\"span\"), s = st(i), n = me(), C(e, \"class\", \"nvjs-ll-value\");\n },\n m(r, o) {\n W(r, e, o), te(e, s), te(e, n);\n },\n p(r, o) {\n o[0] & 256 && i !== (i = r[21](r[41]) + \"\") && Ft(s, i);\n },\n d(r) {\n r && q(e);\n }\n };\n}\nfunction Tn(t) {\n let e, i = t[43] \u003E 0 && Zo(t);\n return {\n c() {\n i && i.c(), e = Oe();\n },\n m(s, n) {\n i && i.m(s, n), W(s, e, n);\n },\n p(s, n) {\n s[43] \u003E 0 && i.p(s, n);\n },\n d(s) {\n i && i.d(s), s && q(e);\n }\n };\n}\nfunction wn(t) {\n let e;\n return {\n c() {\n e = Z(\"div\"), C(e, \"class\", \"nvjs-eye svelte-5spisq\"), C(e, \"style\", t[15]);\n },\n m(i, s) {\n W(i, e, s);\n },\n p(i, s) {\n s[0] & 32768 && C(e, \"style\", i[15]);\n },\n d(i) {\n i && q(e);\n }\n };\n}\nfunction En(t) {\n let e, i, s = {\n gridId: t[0],\n ov: t[1],\n props: t[2],\n height: t[6].height\n };\n return e = new Vo({ props: s }), t[31](e), {\n c() {\n de(e.$.fragment);\n },\n m(n, r) {\n ce(e, n, r), i = !0;\n },\n p(n, r) {\n const o = {};\n r[0] & 1 && (o.gridId = n[0]), r[0] & 2 && (o.ov = n[1]), r[0] & 4 && (o.props = n[2]), r[0] & 64 && (o.height = n[6].height), e.$set(o);\n },\n i(n) {\n i || (U(e.$.fragment, n), i = !0);\n },\n o(n) {\n X(e.$.fragment, n), i = !1;\n },\n d(n) {\n t[31](null), ue(e, n);\n }\n };\n}\nfunction $o(t) {\n let e, i, s, n, r, o, u, a, l, p, m, I = t[1].main && t[2].showLogo && yn(t), y = t[1].main && bn(t), b = t[7] && !t[3] && An(t), d = !t[7] && !t[3] && wn(t), g = t[3] && En(t);\n return {\n c() {\n e = Z(\"div\"), I && I.c(), i = me(), s = Z(\"span\"), n = st(t[18]), r = me(), y && y.c(), o = me(), b && b.c(), u = me(), d && d.c(), a = me(), g && g.c(), C(s, \"class\", \"nvjs-ll-name svelte-5spisq\"), C(e, \"class\", \"nvjs-legend-line svelte-5spisq\"), C(e, \"style\", t[13]);\n },\n m(A, Y) {\n W(A, e, Y), I && I.m(e, null), te(e, i), te(e, s), te(s, n), te(s, r), y && y.m(s, null), t[30](s), te(e, o), b && b.m(e, null), te(e, u), d && d.m(e, null), te(e, a), g && g.m(e, null), t[32](e), l = !0, p || (m = [\n nt(e, \"mousemove\", t[19]),\n nt(e, \"mouseleave\", t[20])\n ], p = !0);\n },\n p(A, Y) {\n A[1].main && A[2].showLogo ? I ? I.p(A, Y) : (I = yn(A), I.c(), I.m(e, i)) : I && (I.d(1), I = null), (!l || Y[0] & 262144) && Ft(n, A[18]), A[1].main ? y ? y.p(A, Y) : (y = bn(A), y.c(), y.m(s, null)) : y && (y.d(1), y = null), A[7] && !A[3] ? b ? b.p(A, Y) : (b = An(A), b.c(), b.m(e, u)) : b && (b.d(1), b = null), !A[7] && !A[3] ? d ? d.p(A, Y) : (d = wn(A), d.c(), d.m(e, a)) : d && (d.d(1), d = null), A[3] ? g ? (g.p(A, Y), Y[0] & 8 && U(g, 1)) : (g = En(A), g.c(), U(g, 1), g.m(e, null)) : g && (Te(), X(g, 1, 1, () =\u003E {\n g = null;\n }), we()), (!l || Y[0] & 8192) && C(e, \"style\", A[13]);\n },\n i(A) {\n l || (U(g), l = !0);\n },\n o(A) {\n X(g), l = !1;\n },\n d(A) {\n A && q(e), I && I.d(), y && y.d(), t[30](null), b && b.d(), d && d.d(), g && g.d(), t[32](null), p = !1, ze(m);\n }\n };\n}\nfunction el(t, e, i) {\n let s, n, r, o, u, a, l, p, m, I, y, b, d, g, A, Y, E, P, L, F, M, { gridId: R } = e, { ov: O } = e, { props: J } = e, { layout: H } = e, k = Fe.instance(J.id), _ = he.instance(J.id), T = !1, w, B, j;\n rt(() =\u003E {\n _.on(`${s}:update-ll`, V);\n }), ht(() =\u003E {\n _.off(s);\n });\n function V() {\n i(7, F = O.settings.display !== !1), j && j.update();\n }\n function Q(D) {\n D.clientX \u003C y.x + y.width + 35 && !T && setTimeout(() =\u003E {\n G(), i(3, T = !0);\n });\n }\n function ee(D) {\n setTimeout(() =\u003E {\n G(), i(3, T = !1);\n });\n }\n function Ee(D, fe = L) {\n return D == null ? \"x\" : typeof D != \"number\" ? D : D.toFixed(fe);\n }\n function re(D) {\n return Object.values(D).find((fe) =\u003E fe.scaleSpecs.ovIdxs.includes(O.id)) || D[H.scaleIndex];\n }\n function G() {\n i(6, I = w.getBoundingClientRect());\n }\n function ie(D) {\n xe[D ? \"unshift\" : \"push\"](() =\u003E {\n B = D, i(5, B);\n });\n }\n function ye(D) {\n xe[D ? \"unshift\" : \"push\"](() =\u003E {\n j = D, i(9, j);\n });\n }\n function Ge(D) {\n xe[D ? \"unshift\" : \"push\"](() =\u003E {\n w = D, i(4, w);\n });\n }\n return t.$set = (D) =\u003E {\n \"gridId\" in D && i(0, R = D.gridId), \"ov\" in D && i(1, O = D.ov), \"props\" in D && i(2, J = D.props), \"layout\" in D && i(22, H = D.layout);\n }, t.$.update = () =\u003E {\n var D;\n t.$.dirty[0] & 3 && (s = `ll-${R}-${O.id}`), t.$.dirty[0] & 2 && i(18, n = (D = O.name) != null ? D : `${O.type || \"Overlay\"}-${O.id}`), t.$.dirty[0] & 4 && i(29, r = parseInt(J.config.FONT.split(\"px\").shift())), t.$.dirty[0] & 541065222 && i(28, o = `\n font: ${J.config.FONT};\n font-size: ${r + (O.main ? 5 : 3)}px;\n font-weight: 300;\n color: ${J.colors.textLG};\n background: ${J.colors.llBack};\n border: 1px solid transparent;\n margin-right: 30px;\n max-width: ${H.width - 20}px;\n overflow-x: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n`), t.$.dirty[0] & 4 && i(27, u = `\n background: ${J.colors.back};\n border: 1px solid ${J.colors.grid};\n`), t.$.dirty[0] & 536870918 && i(17, a = `\n font-size: ${r + (O.main ? 3 : 2)}px;\n color: ${J.colors.llValue}\n`), t.$.dirty[0] & 2 && i(7, F = O.settings.display !== !1), t.$.dirty[0] & 128 && i(23, M = F ? \"open\" : \"closed\"), t.$.dirty[0] & 16 && i(6, I = w ? w.getBoundingClientRect() : {}), t.$.dirty[0] & 8388672 && i(15, p = `\n background-image: url(${mi[M + \"-eye\"]});\n background-size: contain;\n background-repeat: no-repeat;\n margin-top: ${(I.height - 20) * 0.5 - 3}px;\n margin-bottom: -2px;\n`), t.$.dirty[0] & 64 && `${I.width}${I.height}`, t.$.dirty[0] & 4 && i(25, Y = J.cursor.values || []), t.$.dirty[0] & 33554435 && i(8, E = (Y[R] || [])[O.id] || []), t.$.dirty[0] & 392 && i(14, m = `\n background-image: url(${mi.king3});\n background-size: contain;\n background-repeat: no-repeat;\n margin-left: ${T || !F || !E.length ? 7 : 3}px;\n`), t.$.dirty[0] & 32 && (y = B ? B.getBoundingClientRect() : {}), t.$.dirty[0] & 402653192 && i(13, b = o + (T ? u : \"\")), t.$.dirty[0] & 3 && i(26, d = k.getLegendFns(R, O.id) || {}), t.$.dirty[0] & 67108864 && i(12, g = d.legend), t.$.dirty[0] & 67108864 && i(11, A = d.legendHtml), t.$.dirty[0] & 4194304 && i(24, P = re(H.scales)), t.$.dirty[0] & 16777216 && i(10, L = P.prec);\n }, i(16, l = `\n background-image: url(${Xo[0]});\n background-size: contain;\n background-repeat: no-repeat;\n`), [\n R,\n O,\n J,\n T,\n w,\n B,\n I,\n F,\n E,\n j,\n L,\n A,\n g,\n b,\n m,\n p,\n l,\n a,\n n,\n Q,\n ee,\n Ee,\n H,\n M,\n P,\n Y,\n d,\n u,\n o,\n r,\n ie,\n ye,\n Ge\n ];\n}\nclass tl extends Ie {\n constructor(e) {\n super(), ve(this, e, el, $o, ge, { gridId: 0, ov: 1, props: 2, layout: 22 }, zo, [-1, -1]);\n }\n}\nfunction il(t) {\n Tt(t, \"svelte-16ib1si\", \".nvjs-legend.svelte-16ib1si{pointer-events:none}\");\n}\nfunction Sn(t, e, i) {\n const s = t.slice();\n return s[9] = e[i], s[11] = i, s;\n}\nfunction Yn(t) {\n let e, i, s = t[5].panes()[t[0]].overlays, n = [];\n for (let o = 0; o \u003C s.length; o += 1)\n n[o] = Mn(Sn(t, s, o));\n const r = (o) =\u003E X(n[o], 1, 1, () =\u003E {\n n[o] = null;\n });\n return {\n c() {\n e = Z(\"div\");\n for (let o = 0; o \u003C n.length; o += 1)\n n[o].c();\n C(e, \"class\", \"nvjs-legend svelte-16ib1si\"), C(e, \"style\", t[4]);\n },\n m(o, u) {\n W(o, e, u);\n for (let a = 0; a \u003C n.length; a += 1)\n n[a].m(e, null);\n i = !0;\n },\n p(o, u) {\n if (u & 39) {\n s = o[5].panes()[o[0]].overlays;\n let a;\n for (a = 0; a \u003C s.length; a += 1) {\n const l = Sn(o, s, a);\n n[a] ? (n[a].p(l, u), U(n[a], 1)) : (n[a] = Mn(l), n[a].c(), U(n[a], 1), n[a].m(e, null));\n }\n for (Te(), a = s.length; a \u003C n.length; a += 1)\n r(a);\n we();\n }\n (!i || u & 16) && C(e, \"style\", o[4]);\n },\n i(o) {\n if (!i) {\n for (let u = 0; u \u003C s.length; u += 1)\n U(n[u]);\n i = !0;\n }\n },\n o(o) {\n n = n.filter(Boolean);\n for (let u = 0; u \u003C n.length; u += 1)\n X(n[u]);\n i = !1;\n },\n d(o) {\n o && q(e), ut(n, o);\n }\n };\n}\nfunction Mn(t) {\n let e, i;\n return e = new tl({\n props: {\n gridId: t[0],\n props: t[1],\n layout: t[2],\n ov: t[9]\n }\n }), {\n c() {\n de(e.$.fragment);\n },\n m(s, n) {\n ce(e, s, n), i = !0;\n },\n p(s, n) {\n const r = {};\n n & 1 && (r.gridId = s[0]), n & 2 && (r.props = s[1]), n & 4 && (r.layout = s[2]), n & 1 && (r.ov = s[9]), e.$set(r);\n },\n i(s) {\n i || (U(e.$.fragment, s), i = !0);\n },\n o(s) {\n X(e.$.fragment, s), i = !1;\n },\n d(s) {\n ue(e, s);\n }\n };\n}\nfunction kn(t) {\n let e = t[5].panes()[t[0]], i, s, n = e && Yn(t);\n return {\n c() {\n n && n.c(), i = Oe();\n },\n m(r, o) {\n n && n.m(r, o), W(r, i, o), s = !0;\n },\n p(r, o) {\n o & 1 && (e = r[5].panes()[r[0]]), e ? n ? (n.p(r, o), o & 1 && U(n, 1)) : (n = Yn(r), n.c(), U(n, 1), n.m(i.parentNode, i)) : n && (Te(), X(n, 1, 1, () =\u003E {\n n = null;\n }), we());\n },\n i(r) {\n s || (U(n), s = !0);\n },\n o(r) {\n X(n), s = !1;\n },\n d(r) {\n n && n.d(r), r && q(i);\n }\n };\n}\nfunction nl(t) {\n let e = t[3], i, s, n = kn(t);\n return {\n c() {\n n.c(), i = Oe();\n },\n m(r, o) {\n n.m(r, o), W(r, i, o), s = !0;\n },\n p(r, [o]) {\n o & 8 && ge(e, e = r[3]) ? (Te(), X(n, 1, 1, le), we(), n = kn(r), n.c(), U(n, 1), n.m(i.parentNode, i)) : n.p(r, o);\n },\n i(r) {\n s || (U(n), s = !0);\n },\n o(r) {\n X(n), s = !1;\n },\n d(r) {\n r && q(i), n.d(r);\n }\n };\n}\nfunction sl(t, e, i) {\n let s, { id: n } = e, { props: r } = e, { main: o } = e, { layout: u } = e, a = Ue.instance(r.id), l = he.instance(r.id), p = 0;\n l.on(`legend-${n}:update-legend`, m), ht(() =\u003E {\n l.off(`legend-${n}`);\n });\n function m() {\n i(3, p++, p);\n }\n return t.$set = (I) =\u003E {\n \"id\" in I && i(0, n = I.id), \"props\" in I && i(1, r = I.props), \"main\" in I && i(6, o = I.main), \"layout\" in I && i(2, u = I.layout);\n }, t.$.update = () =\u003E {\n t.$.dirty & 4 && i(4, s = `\n left: ${u.sbMax[0] + 5}px;\n top: ${(u.offset || 0) + 5}px;\n position: absolute;\n`);\n }, [n, r, u, p, s, a, o];\n}\nclass rl extends Ie {\n constructor(e) {\n super(), ve(this, e, sl, nl, ge, { id: 0, props: 1, main: 6, layout: 2 }, il);\n }\n}\nfunction Jn(t) {\n let e, i, s, n, r, o, u, a, l, p, m, I = {\n id: t[1],\n props: t[2],\n layout: t[0],\n main: t[3]\n };\n i = new ko({ props: I }), t[10](i), n = new rl({\n props: {\n id: t[1],\n props: t[2],\n layout: t[0],\n main: t[3]\n }\n });\n const y = [ll, ol], b = [];\n function d(E, P) {\n return E[9].length ? 0 : 1;\n }\n o = d(t), u = b[o] = y[o](t);\n const g = [cl, al], A = [];\n function Y(E, P) {\n return E[8].length ? 0 : 1;\n }\n return l = Y(t), p = A[l] = g[l](t), {\n c() {\n e = Z(\"div\"), de(i.$.fragment), s = me(), de(n.$.fragment), r = me(), u.c(), a = me(), p.c(), C(e, \"class\", \"nvjs-pane svelte-9o7s1l\"), C(e, \"style\", t[7]);\n },\n m(E, P) {\n W(E, e, P), ce(i, e, null), te(e, s), ce(n, e, null), te(e, r), b[o].m(e, null), te(e, a), A[l].m(e, null), m = !0;\n },\n p(E, P) {\n const L = {};\n P & 2 && (L.id = E[1]), P & 4 && (L.props = E[2]), P & 1 && (L.layout = E[0]), P & 8 && (L.main = E[3]), i.$set(L);\n const F = {};\n P & 2 && (F.id = E[1]), P & 4 && (F.props = E[2]), P & 1 && (F.layout = E[0]), P & 8 && (F.main = E[3]), n.$set(F);\n let M = o;\n o = d(E), o === M ? b[o].p(E, P) : (Te(), X(b[M], 1, 1, () =\u003E {\n b[M] = null;\n }), we(), u = b[o], u ? u.p(E, P) : (u = b[o] = y[o](E), u.c()), U(u, 1), u.m(e, a));\n let R = l;\n l = Y(E), l === R ? A[l].p(E, P) : (Te(), X(A[R], 1, 1, () =\u003E {\n A[R] = null;\n }), we(), p = A[l], p ? p.p(E, P) : (p = A[l] = g[l](E), p.c()), U(p, 1), p.m(e, null)), (!m || P & 128) && C(e, \"style\", E[7]);\n },\n i(E) {\n m || (U(i.$.fragment, E), U(n.$.fragment, E), U(u), U(p), m = !0);\n },\n o(E) {\n X(i.$.fragment, E), X(n.$.fragment, E), X(u), X(p), m = !1;\n },\n d(E) {\n E && q(e), t[10](null), ue(i), ue(n), b[o].d(), A[l].d();\n }\n };\n}\nfunction ol(t) {\n let e, i;\n return e = new ss({\n props: {\n id: t[1],\n props: t[2],\n layout: t[0],\n side: \"left\"\n }\n }), {\n c() {\n de(e.$.fragment);\n },\n m(s, n) {\n ce(e, s, n), i = !0;\n },\n p(s, n) {\n const r = {};\n n & 2 && (r.id = s[1]), n & 4 && (r.props = s[2]), n & 1 && (r.layout = s[0]), e.$set(r);\n },\n i(s) {\n i || (U(e.$.fragment, s), i = !0);\n },\n o(s) {\n X(e.$.fragment, s), i = !1;\n },\n d(s) {\n ue(e, s);\n }\n };\n}\nfunction ll(t) {\n let e, i, s = {\n id: t[1],\n props: t[2],\n layout: t[0],\n side: \"left\",\n scales: t[9]\n };\n return e = new ns({ props: s }), t[11](e), {\n c() {\n de(e.$.fragment);\n },\n m(n, r) {\n ce(e, n, r), i = !0;\n },\n p(n, r) {\n const o = {};\n r & 2 && (o.id = n[1]), r & 4 && (o.props = n[2]), r & 1 && (o.layout = n[0]), r & 512 && (o.scales = n[9]), e.$set(o);\n },\n i(n) {\n i || (U(e.$.fragment, n), i = !0);\n },\n o(n) {\n X(e.$.fragment, n), i = !1;\n },\n d(n) {\n t[11](null), ue(e, n);\n }\n };\n}\nfunction al(t) {\n let e, i;\n return e = new ss({\n props: {\n id: t[1],\n props: t[2],\n layout: t[0],\n side: \"right\"\n }\n }), {\n c() {\n de(e.$.fragment);\n },\n m(s, n) {\n ce(e, s, n), i = !0;\n },\n p(s, n) {\n const r = {};\n n & 2 && (r.id = s[1]), n & 4 && (r.props = s[2]), n & 1 && (r.layout = s[0]), e.$set(r);\n },\n i(s) {\n i || (U(e.$.fragment, s), i = !0);\n },\n o(s) {\n X(e.$.fragment, s), i = !1;\n },\n d(s) {\n ue(e, s);\n }\n };\n}\nfunction cl(t) {\n let e, i, s = {\n id: t[1],\n props: t[2],\n layout: t[0],\n side: \"right\",\n scales: t[8]\n };\n return e = new ns({ props: s }), t[12](e), {\n c() {\n de(e.$.fragment);\n },\n m(n, r) {\n ce(e, n, r), i = !0;\n },\n p(n, r) {\n const o = {};\n r & 2 && (o.id = n[1]), r & 4 && (o.props = n[2]), r & 1 && (o.layout = n[0]), r & 256 && (o.scales = n[8]), e.$set(o);\n },\n i(n) {\n i || (U(e.$.fragment, n), i = !0);\n },\n o(n) {\n X(e.$.fragment, n), i = !1;\n },\n d(n) {\n t[12](null), ue(e, n);\n }\n };\n}\nfunction ul(t) {\n let e, i, s = t[0] && Jn(t);\n return {\n c() {\n s && s.c(), e = Oe();\n },\n m(n, r) {\n s && s.m(n, r), W(n, e, r), i = !0;\n },\n p(n, [r]) {\n n[0] ? s ? (s.p(n, r), r & 1 && U(s, 1)) : (s = Jn(n), s.c(), U(s, 1), s.m(e.parentNode, e)) : s && (Te(), X(s, 1, 1, () =\u003E {\n s = null;\n }), we());\n },\n i(n) {\n i || (U(s), i = !0);\n },\n o(n) {\n X(s), i = !1;\n },\n d(n) {\n s && s.d(n), n && q(e);\n }\n };\n}\nfunction hl(t, e, i) {\n let s, n, r, { id: o } = e, { props: u } = e, { main: a } = e, { layout: l } = e, p = he.instance(u.id), m, I, y;\n p.on(`pane-${o}:update-pane`, b), rt(() =\u003E {\n });\n function b(Y) {\n if (!Y.grids)\n return;\n i(0, l = Y.grids[o]), p.emitSpec(`grid-${o}`, \"update-grid\", l);\n let E = y && y.getLayers ? y.getLayers() : [];\n m && m.setLayers(E), I && I.setLayers(E), p.emitSpec(`sb-${o}-left`, \"update-sb\", l), p.emitSpec(`sb-${o}-right`, \"update-sb\", l);\n }\n function d(Y) {\n xe[Y ? \"unshift\" : \"push\"](() =\u003E {\n y = Y, i(6, y);\n });\n }\n function g(Y) {\n xe[Y ? \"unshift\" : \"push\"](() =\u003E {\n m = Y, i(4, m);\n });\n }\n function A(Y) {\n xe[Y ? \"unshift\" : \"push\"](() =\u003E {\n I = Y, i(5, I);\n });\n }\n return t.$set = (Y) =\u003E {\n \"id\" in Y && i(1, o = Y.id), \"props\" in Y && i(2, u = Y.props), \"main\" in Y && i(3, a = Y.main), \"layout\" in Y && i(0, l = Y.layout);\n }, t.$.update = () =\u003E {\n t.$.dirty & 1 && i(9, s = N.getScalesBySide(0, l)), t.$.dirty & 1 && i(8, n = N.getScalesBySide(1, l)), t.$.dirty & 7 && i(7, r = `\n width: ${u.width}px;\n height: ${(l || {}).height}px;\n \u002F* didn't work, coz canvas draws through the border\n border-top: ${o ? \"1px solid\" : \"none\"};\n border-color: ${u.colors.scale};\n box-sizing: border-box;*\u002F\n`);\n }, [\n l,\n o,\n u,\n a,\n m,\n I,\n y,\n r,\n n,\n s,\n d,\n g,\n A\n ];\n}\nclass fl extends Ie {\n constructor(e) {\n super(), ve(this, e, hl, ul, ge, { id: 1, props: 2, main: 3, layout: 0 });\n }\n}\nconst {\n MINUTE15: pl,\n MINUTE: Ul,\n HOUR: Si,\n DAY: vi,\n WEEK: dl,\n MONTH: gl,\n YEAR: Ii,\n MONTHMAP: rs\n} = Le;\nfunction ml(t, e, i) {\n const s = e.botbar.width, n = e.botbar.height, r = e.main.sbMax[0];\n e.main.sbMax[1], i.font = t.config.FONT, i.clearRect(0, 0, s, n), i.strokeStyle = t.colors.scale, i.beginPath(), i.moveTo(0, 0.5), i.lineTo(Math.floor(s + 1), 0.5), i.stroke(), i.fillStyle = t.colors.text, i.beginPath();\n for (var o of e.botbar.xs) {\n let u = Il(t, o), a = o[0] + r;\n i.moveTo(a - 0.5, 0), i.lineTo(a - 0.5, 4.5), bl(t, o[1][0]) || (i.globalAlpha = 0.85), i.textAlign = \"center\", i.fillText(u, a, 18), i.globalAlpha = 1;\n }\n i.stroke();\n}\nfunction vl(t, e, i) {\n let s = yl(t);\n i.fillStyle = t.colors.panel;\n let n = i.measureText(s + \" \"), r = Math.floor(n.width + 10), o = t.cursor.x + e.main.sbMax[0], u = Math.floor(o - r * 0.5), a = 1, l = t.config.PANHEIGHT;\n Al(i, u, a, r, l + 0.5, 3), i.fillStyle = t.colors.textHL, i.textAlign = \"center\", i.fillText(s, o, a + 16);\n}\nfunction Il(t, e) {\n let i = e[1][0], n = t.interval \u003C vi ? 1 : 0, r = i + n * t.timezone * Si, o = new Date(r);\n if (e[2] === Ii || N.yearStart(i) === i)\n return o.getUTCFullYear();\n if (e[2] === gl || N.monthStart(i) === i)\n return rs[o.getUTCMonth()];\n if (N.dayStart(r) === r)\n return o.getUTCDate();\n let u = N.addZero(o.getUTCHours()), a = N.addZero(o.getUTCMinutes());\n return u + \":\" + a;\n}\nfunction yl(t) {\n let e = t.cursor.t, i = t.interval, s = i \u003C vi ? 1 : 0, n = new Date(e + s * t.timezone * Si);\n if (i === Ii)\n return n.getUTCFullYear();\n if (i \u003C Ii)\n var r = \"`\" + `${n.getUTCFullYear()}`.slice(-2), o = rs[n.getUTCMonth()], u = \"01\";\n i \u003C= dl && (u = n.getUTCDate());\n let a = `${u} ${o} ${r}`, l = \"\";\n if (i \u003C vi) {\n let p = N.addZero(n.getUTCHours()), m = N.addZero(n.getUTCMinutes());\n l = p + \":\" + m;\n }\n return `${a} ${l}`;\n}\nfunction bl(t, e) {\n let i = t.interval;\n return e === 0 || N.monthStart(e) === e || N.dayStart(e) === e || i \u003C= pl && e % Si === 0;\n}\nfunction Al(t, e, i, s, n, r) {\n s \u003C 2 * r && (r = s \u002F 2), n \u003C 2 * r && (r = n \u002F 2), t.beginPath(), t.moveTo(e + r, i), t.arcTo(e + s, i, e + s, i + n, 0), t.arcTo(e + s, i + n, e, i + n, r), t.arcTo(e, i + n, e, i, r), t.arcTo(e, i, e + s, i, 0), t.closePath(), t.fill();\n}\nconst xn = {\n body: ml,\n panel: vl\n};\nfunction _l(t) {\n let e, i;\n return {\n c() {\n e = Z(\"div\"), i = Z(\"canvas\"), C(i, \"id\", t[2]), C(e, \"class\", \"nvjs-botbar svelte-8gplax\"), C(e, \"id\", t[1]), C(e, \"style\", t[0]);\n },\n m(s, n) {\n W(s, e, n), te(e, i);\n },\n p(s, [n]) {\n n & 1 && C(e, \"style\", s[0]);\n },\n i: le,\n o: le,\n d(s) {\n s && q(e);\n }\n };\n}\nfunction Tl(t, e, i) {\n let s, n, { props: r = {} } = e, { layout: o = {} } = e, u = \"botbar\", a = `${r.id}-botbar`, l = `${r.id}-botbar-canvas`, p = he.instance(r.id);\n p.on(`${u}:update-bb`, b);\n let m, I;\n rt(() =\u003E {\n y();\n }), ht(() =\u003E {\n p.off(`${u}`);\n });\n function y() {\n let g = o.botbar;\n [m, I] = ct.setup(l, g.width, g.height), b();\n }\n function b(g = o) {\n i(3, o = g), o.botbar && (xn.body(r, o, I), r.cursor.x && r.cursor.t !== void 0 && xn.panel(r, o, I));\n }\n function d() {\n let g = o.botbar;\n !m || !g || (ct.resize(m, I, g.width, g.height), b());\n }\n return t.$set = (g) =\u003E {\n \"props\" in g && i(4, r = g.props), \"layout\" in g && i(3, o = g.layout);\n }, t.$.update = () =\u003E {\n t.$.dirty & 24 && i(0, s = `\n background: ${r.colors.back};\n width: ${(o.botbar || {}).width}px;\n height: ${(o.botbar || {}).height}px;\n`), t.$.dirty & 8 && i(5, n = (o.botbar || {}).width), t.$.dirty & 32 && d();\n }, [s, a, l, o, r, n];\n}\nclass wl extends Ie {\n constructor(e) {\n super(), ve(this, e, Tl, _l, ge, { props: 4, layout: 3 });\n }\n}\nfunction El(t) {\n let e, i;\n return {\n c() {\n e = Z(\"div\"), i = st(\"No data \\xAF\\\\_( \\xB0\\uFE4F\\xB0)_\u002F\\xAF\"), C(e, \"class\", \"nvjs-no-data-stub svelte-172ri4o\"), C(e, \"style\", t[0]);\n },\n m(s, n) {\n W(s, e, n), te(e, i);\n },\n p(s, [n]) {\n n & 1 && C(e, \"style\", s[0]);\n },\n i: le,\n o: le,\n d(s) {\n s && q(e);\n }\n };\n}\nfunction Sl(t, e, i) {\n let s, { props: n } = e;\n return t.$set = (r) =\u003E {\n \"props\" in r && i(1, n = r.props);\n }, t.$.update = () =\u003E {\n t.$.dirty & 2 && i(0, s = `\n display: flex;\n width: ${n.width}px;\n height: ${n.height}px;\n background: ${n.colors.back};\n color: ${n.colors.scale};\n font: ${n.config.FONT};\n font-size: 18px;\n font-style: italic;\n user-select: none;\n align-items:center;\n justify-content:center;\n`);\n }, [s, n];\n}\nclass Yl extends Ie {\n constructor(e) {\n super(), ve(this, e, Sl, El, ge, { props: 1 });\n }\n}\nfunction Cn(t, e, i) {\n const s = t.slice();\n return s[23] = e[i], s[25] = i, s;\n}\nfunction Ml(t) {\n let e, i;\n return e = new Yl({ props: { props: t[0] } }), {\n c() {\n de(e.$.fragment);\n },\n m(s, n) {\n ce(e, s, n), i = !0;\n },\n p(s, n) {\n const r = {};\n n & 1 && (r.props = s[0]), e.$set(r);\n },\n i(s) {\n i || (U(e.$.fragment, s), i = !0);\n },\n o(s) {\n X(e.$.fragment, s), i = !1;\n },\n d(s) {\n ue(e, s);\n }\n };\n}\nfunction kl(t) {\n let e, i, s, n = t[3].panes(), r = [];\n for (let u = 0; u \u003C n.length; u += 1)\n r[u] = On(Cn(t, n, u));\n const o = (u) =\u003E X(r[u], 1, 1, () =\u003E {\n r[u] = null;\n });\n return i = new wl({\n props: {\n props: t[2],\n layout: t[1]\n }\n }), {\n c() {\n for (let u = 0; u \u003C r.length; u += 1)\n r[u].c();\n e = me(), de(i.$.fragment);\n },\n m(u, a) {\n for (let l = 0; l \u003C r.length; l += 1)\n r[l].m(u, a);\n W(u, e, a), ce(i, u, a), s = !0;\n },\n p(u, a) {\n if (a & 14) {\n n = u[3].panes();\n let p;\n for (p = 0; p \u003C n.length; p += 1) {\n const m = Cn(u, n, p);\n r[p] ? (r[p].p(m, a), U(r[p], 1)) : (r[p] = On(m), r[p].c(), U(r[p], 1), r[p].m(e.parentNode, e));\n }\n for (Te(), p = n.length; p \u003C r.length; p += 1)\n o(p);\n we();\n }\n const l = {};\n a & 4 && (l.props = u[2]), a & 2 && (l.layout = u[1]), i.$set(l);\n },\n i(u) {\n if (!s) {\n for (let a = 0; a \u003C n.length; a += 1)\n U(r[a]);\n U(i.$.fragment, u), s = !0;\n }\n },\n o(u) {\n r = r.filter(Boolean);\n for (let a = 0; a \u003C r.length; a += 1)\n X(r[a]);\n X(i.$.fragment, u), s = !1;\n },\n d(u) {\n ut(r, u), u && q(e), ue(i, u);\n }\n };\n}\nfunction On(t) {\n let e, i;\n return e = new fl({\n props: {\n id: t[25],\n layout: t[1].grids[t[25]],\n props: t[2],\n main: t[23] === t[3].chart\n }\n }), {\n c() {\n de(e.$.fragment);\n },\n m(s, n) {\n ce(e, s, n), i = !0;\n },\n p(s, n) {\n const r = {};\n n & 2 && (r.layout = s[1].grids[s[25]]), n & 4 && (r.props = s[2]), e.$set(r);\n },\n i(s) {\n i || (U(e.$.fragment, s), i = !0);\n },\n o(s) {\n X(e.$.fragment, s), i = !1;\n },\n d(s) {\n ue(e, s);\n }\n };\n}\nfunction Jl(t) {\n let e, i, s, n;\n const r = [kl, Ml], o = [];\n function u(a, l) {\n return a[1] && a[1].main ? 0 : 1;\n }\n return i = u(t), s = o[i] = r[i](t), {\n c() {\n e = Z(\"div\"), s.c(), C(e, \"class\", \"nvjs-chart svelte-pr5wst\");\n },\n m(a, l) {\n W(a, e, l), o[i].m(e, null), n = !0;\n },\n p(a, [l]) {\n let p = i;\n i = u(a), i === p ? o[i].p(a, l) : (Te(), X(o[p], 1, 1, () =\u003E {\n o[p] = null;\n }), we(), s = o[i], s ? s.p(a, l) : (s = o[i] = r[i](a), s.c()), U(s, 1), s.m(e, null));\n },\n i(a) {\n n || (U(s), n = !0);\n },\n o(a) {\n X(s), n = !1;\n },\n d(a) {\n a && q(e), o[i].d();\n }\n };\n}\nfunction xl(t, e, i) {\n let s, { props: n = {} } = e;\n function r() {\n return E;\n }\n function o() {\n return d;\n }\n function u() {\n return g;\n }\n function a(J) {\n var k;\n let H = !((k = J.preventDefault) == null || k);\n delete J.preventDefault, Object.assign(d, J), F(d, H);\n }\n function l(J) {\n var k;\n let H = !((k = J.preventDefault) == null || k);\n delete J.preventDefault, Object.assign(g, J), P(g, H);\n }\n let p = Ue.instance(n.id), m = Fe.instance(n.id), I = he.instance(n.id), y = Ei.instance(n.id);\n y.init(n);\n let b = y.detectInterval(), d = y.defaultRange(), g = new fr(), A = {}, Y = new Yr(n), E = null;\n I.on(\"chart:cursor-changed\", P), I.on(\"chart:cursor-locked\", L), I.on(\"chart:range-changed\", F), I.on(\"chart:update-layout\", R), I.on(\"chart:full-update\", O), rt(() =\u003E {\n p.calcSubset(d), p.detectMain(), m.init(n), y.updatePanesHash(), i(1, E = new sn(s, p));\n }), ht(() =\u003E {\n I.off(\"chart\");\n });\n function P(J, H = !0) {\n H && I.emit(\"$cursor-update\", J), J.mode && i(11, g.mode = J.mode, g), g.mode !== \"explore\" && (g.xSync(p, E, s, J), J.visible === !1 && setTimeout(() =\u003E R())), R();\n }\n function L(J) {\n g.scrollLock && J || i(11, g.locked = J, g);\n }\n function F(J, H = !0) {\n if (H && I.emit(\"$range-update\", J), i(10, d = J), p.updateRange(d), g.locked)\n return;\n g.xValues(p, E, s), g.yValues(E), R();\n let k = n.config.QUANTIZE_AFTER;\n k && N.afterAll(A, M, k);\n }\n function M() {\n g.xSync(p, E, s, g), R();\n }\n function R(J = !0) {\n if (J && I.emit(\"$chart-update\"), y.panesChanged())\n return O();\n i(11, g = g), i(1, E = new sn(s, p)), I.emit(\"update-pane\", E), I.emitSpec(\"botbar\", \"update-bb\", E);\n }\n function O(J = {}) {\n i(9, b = y.detectInterval()), (!d.length || J.resetRange) && i(10, d = y.defaultRange()), p.calcSubset(d), p.init(p.data), p.detectMain(), m.store(), m.init(n), y.updatePanesHash(), R(), I.emit(\"remake-grid\");\n }\n return t.$set = (J) =\u003E {\n \"props\" in J && i(0, n = J.props);\n }, t.$.update = () =\u003E {\n t.$.dirty & 3585 && i(2, s = Object.assign({ interval: b, range: d, ctx: Y, cursor: g }, n));\n }, [\n n,\n E,\n s,\n p,\n r,\n o,\n u,\n a,\n l,\n b,\n d,\n g\n ];\n}\nclass Cl extends Ie {\n constructor(e) {\n super(), ve(this, e, xl, Jl, ge, {\n props: 0,\n getLayout: 4,\n getRange: 5,\n getCursor: 6,\n setRange: 7,\n setCursor: 8\n });\n }\n get getLayout() {\n return this.$.ctx[4];\n }\n get getRange() {\n return this.$.ctx[5];\n }\n get getCursor() {\n return this.$.ctx[6];\n }\n get setRange() {\n return this.$.ctx[7];\n }\n get setCursor() {\n return this.$.ctx[8];\n }\n}\nfunction Ol(t) {\n Tt(t, \"svelte-z09kpl\", \".svelte-z09kpl::after,.svelte-z09kpl::before{box-sizing:content-box}.night-vision.svelte-z09kpl{position:relative}\");\n}\nfunction Pl(t) {\n let e, i, s, n = { props: t[1] };\n return i = new Cl({ props: n }), t[19](i), {\n c() {\n e = Z(\"div\"), de(i.$.fragment), C(e, \"class\", \"night-vision svelte-z09kpl\"), C(e, \"id\", t[0]), C(e, \"style\", t[3]);\n },\n m(r, o) {\n W(r, e, o), ce(i, e, null), s = !0;\n },\n p(r, [o]) {\n const u = {};\n o & 2 && (u.props = r[1]), i.$set(u), (!s || o & 1) && C(e, \"id\", r[0]), (!s || o & 8) && C(e, \"style\", r[3]);\n },\n i(r) {\n s || (U(i.$.fragment, r), s = !0);\n },\n o(r) {\n X(i.$.fragment, r), s = !1;\n },\n d(r) {\n r && q(e), t[19](null), ue(i);\n }\n };\n}\nfunction Nl(t, e, i) {\n let s, n, r, o, u, a;\n function l() {\n return a;\n }\n let { showLogo: p = !1 } = e, { id: m = \"nvjs\" } = e, { width: I = 750 } = e, { height: y = 420 } = e, { colors: b = {} } = e, { toolbar: d = !1 } = e, { scripts: g = [] } = e, { config: A = {} } = e, { indexBased: Y = !1 } = e, { timezone: E = 0 } = e, { data: P = {} } = e, { autoResize: L = !1 } = e;\n function F(M) {\n xe[M ? \"unshift\" : \"push\"](() =\u003E {\n a = M, i(2, a);\n });\n }\n return t.$set = (M) =\u003E {\n \"showLogo\" in M && i(5, p = M.showLogo), \"id\" in M && i(0, m = M.id), \"width\" in M && i(6, I = M.width), \"height\" in M && i(7, y = M.height), \"colors\" in M && i(8, b = M.colors), \"toolbar\" in M && i(9, d = M.toolbar), \"scripts\" in M && i(10, g = M.scripts), \"config\" in M && i(11, A = M.config), \"indexBased\" in M && i(12, Y = M.indexBased), \"timezone\" in M && i(13, E = M.timezone), \"data\" in M && i(14, P = M.data), \"autoResize\" in M && i(15, L = M.autoResize);\n }, t.$.update = () =\u003E {\n t.$.dirty & 2048 && i(16, s = Object.assign(Le.ChartConfig, A)), t.$.dirty & 2560 && i(18, n = d ? A.TOOLBAR : 0), t.$.dirty & 256 && i(17, r = Object.assign(Le.COLORS, b)), t.$.dirty & 472289 && i(1, o = {\n showLogo: p,\n id: m,\n width: I - n,\n height: y,\n colors: r,\n scripts: g,\n config: s,\n indexBased: Y,\n timezone: E\n }), t.$.dirty & 2 && i(3, u = `\n width: ${o.width}px;\n height: ${o.height}px;\n`);\n }, [\n m,\n o,\n a,\n u,\n l,\n p,\n I,\n y,\n b,\n d,\n g,\n A,\n Y,\n E,\n P,\n L,\n s,\n r,\n n,\n F\n ];\n}\nclass Rl extends Ie {\n constructor(e) {\n super(), ve(\n this,\n e,\n Nl,\n Pl,\n ge,\n {\n getChart: 4,\n showLogo: 5,\n id: 0,\n width: 6,\n height: 7,\n colors: 8,\n toolbar: 9,\n scripts: 10,\n config: 11,\n indexBased: 12,\n timezone: 13,\n data: 14,\n autoResize: 15\n },\n Ol\n );\n }\n get getChart() {\n return this.$.ctx[4];\n }\n get showLogo() {\n return this.$.ctx[5];\n }\n set showLogo(e) {\n this.$set({ showLogo: e }), pe();\n }\n get id() {\n return this.$.ctx[0];\n }\n set id(e) {\n this.$set({ id: e }), pe();\n }\n get width() {\n return this.$.ctx[6];\n }\n set width(e) {\n this.$set({ width: e }), pe();\n }\n get height() {\n return this.$.ctx[7];\n }\n set height(e) {\n this.$set({ height: e }), pe();\n }\n get colors() {\n return this.$.ctx[8];\n }\n set colors(e) {\n this.$set({ colors: e }), pe();\n }\n get toolbar() {\n return this.$.ctx[9];\n }\n set toolbar(e) {\n this.$set({ toolbar: e }), pe();\n }\n get scripts() {\n return this.$.ctx[10];\n }\n set scripts(e) {\n this.$set({ scripts: e }), pe();\n }\n get config() {\n return this.$.ctx[11];\n }\n set config(e) {\n this.$set({ config: e }), pe();\n }\n get indexBased() {\n return this.$.ctx[12];\n }\n set indexBased(e) {\n this.$set({ indexBased: e }), pe();\n }\n get timezone() {\n return this.$.ctx[13];\n }\n set timezone(e) {\n this.$set({ timezone: e }), pe();\n }\n get data() {\n return this.$.ctx[14];\n }\n set data(e) {\n this.$set({ data: e }), pe();\n }\n get autoResize() {\n return this.$.ctx[15];\n }\n set autoResize(e) {\n this.$set({ autoResize: e }), pe();\n }\n}\nfunction Dl(t) {\n new ResizeObserver((i) =\u003E {\n let s = t.root.getBoundingClientRect();\n t.width = s.width, t.height = s.height;\n }).observe(t.root);\n}\nclass Fl {\n constructor(e, i = {}) {\n this._data = i.data || {}, this._scripts = i.scripts || [];\n let s = i.id || \"nvjs\";\n this.hub = Ue.instance(s), this.meta = Fe.instance(s), this.scan = Ei.instance(s), this.events = he.instance(s), this.scriptHub = Zn.instance(s), this.hub.init(this._data), this.scriptHub.init(this._scripts), this.root = document.getElementById(e), this.comp = new Rl({\n target: this.root,\n props: i\n }), i.autoResize && Dl(this);\n }\n get id() {\n return this.comp.id;\n }\n set id(e) {\n this.comp.$set({ id: e });\n }\n get width() {\n return this.comp.width;\n }\n set width(e) {\n this.comp.$set({ width: e }), setTimeout(() =\u003E this.update());\n }\n get height() {\n return this.comp.height;\n }\n set height(e) {\n this.comp.$set({ height: e }), setTimeout(() =\u003E this.update());\n }\n get colors() {\n return this.comp.colors;\n }\n set colors(e) {\n this.comp.$set({ colors: e });\n }\n get showLogo() {\n return this.comp.showLogo;\n }\n set showLogo(e) {\n this.comp.$set({ id: e });\n }\n get scripts() {\n return this._scripts;\n }\n set scripts(e) {\n this._scripts = e, this.scriptHub.init(this._scripts), this.update(\"full\");\n }\n get data() {\n return this._data;\n }\n set data(e) {\n this._data = e, this.update(\"full\");\n }\n get config() {\n return this.comp.config;\n }\n set config(e) {\n this.comp.$set({ config: e });\n }\n get indexBased() {\n return this.comp.indexBased;\n }\n set indexBased(e) {\n this.comp.$set({ indexBased: e });\n }\n get timezone() {\n return this.comp.timezone;\n }\n set timezone(e) {\n this.comp.$set({ timezone: e }), setTimeout(() =\u003E this.update());\n }\n get layout() {\n let e = this.comp.getChart();\n return e ? e.getLayout() : null;\n }\n get range() {\n let e = this.comp.getChart();\n return e ? e.getRange() : null;\n }\n set range(e) {\n let i = this.comp.getChart();\n !i || i.setRange(e);\n }\n get cursor() {\n let e = this.comp.getChart();\n return e ? e.getCursor() : null;\n }\n set cursor(e) {\n let i = this.comp.getChart();\n !i || i.setCursor(e);\n }\n update(s = \"layout\", i = {}) {\n var [s, n] = s.split(\"-\");\n const r = this.events;\n switch (s) {\n case \"layout\":\n r.emitSpec(\"chart\", \"update-layout\", i);\n break;\n case \"range\":\n this.hub.updateRange(this.range), r.emitSpec(\"chart\", \"update-layout\", i);\n break;\n case \"full\":\n this.hub.init(this._data), r.emitSpec(\"chart\", \"full-update\", i);\n break;\n case \"grid\":\n if (n === void 0)\n r.emit(\"remake-grid\");\n else {\n let o = `grid-${n}`;\n r.emitSpec(o, \"remake-grid\", i);\n }\n break;\n case \"legend\":\n if (n === void 0)\n r.emit(\"update-legend\");\n else {\n let o = `legend-${n}`;\n r.emitSpec(o, \"update-legend\", i);\n }\n break;\n }\n }\n fullReset() {\n this.update(\"full\", { resetRange: !0 });\n }\n}\nexport {\n Ue as DataHub,\n Ei as DataScan,\n he as Events,\n Fe as MetaHub,\n Fl as NightVision,\n Zn as Scripts\n};\n","id":"76703355-8235-49d6-9dd4-172735d35ab1","is_binary":false,"title":"night-vision.js","sha":null,"inserted_at":"2022-11-07T17:26:31","updated_at":"2022-11-07T17:26:31","upload_id":null,"shortid":"ByyCka8Si","source_id":"14733ec2-2673-49d5-afa8-e3332e461481","directory_shortid":null},{"code":"{\n \"name\": \"playing-around-9\",\n \"private\": true,\n \"version\": \"0.0.0\",\n \"type\": \"module\",\n \"scripts\": {\n \"dev\": \"vite\",\n \"build\": \"vite build\",\n \"preview\": \"vite preview\"\n },\n \"devDependencies\": {\n \"vite\": \"3.2.1\"\n },\n \"dependencies\": {\n \"night-vision\": \"0.3.2\"\n },\n \"keywords\": [],\n \"description\": \"\"\n}","id":"599c72fa-24cd-49f1-b901-c4319600b30d","is_binary":false,"title":"package.json","sha":null,"inserted_at":"2022-11-02T10:57:36","updated_at":"2022-12-22T20:36:19","upload_id":null,"shortid":"ZGQK6","source_id":"14733ec2-2673-49d5-afa8-e3332e461481","directory_shortid":null}],"v2":false,"forked_template_sandbox":{"alias":"lucid-lalande-vanilla","id":"vanilla","title":"JavaScript","template":"parcel","inserted_at":"2018-02-28T16:00:16","updated_at":"2024-02-23T11:19:53","git":null,"privacy":0,"custom_template":{"id":"e7f29750-e9d2-4eab-94a3-25cd50e21c9e","title":"JavaScript","color":"#dfb07a","v2":false,"url":null,"published":false,"icon_url":"JavaScriptIcon","official":false}},"preview_secret":null,"tags":[],"external_resources":[],"privacy":0,"fork_count":14,"template":"parcel","owned":false,"collection":false,"free_plan_editing_restricted":false,"forked_from_sandbox":{"alias":"playing-around-7-xyquxe","id":"xyquxe","title":"playing-around-7","template":"parcel","inserted_at":"2022-11-01T14:04:11","updated_at":"2022-12-22T20:23:16","git":null,"privacy":0,"custom_template":null},"git":null,"updated_at":"2022-12-22T20:36:27","screenshot_url":"https:\u002F\u002Fscreenshots.codesandbox.io\u002Fcs4gyu\u002F27.png","inserted_at":"2022-11-02T10:57:36","npm_registries":[],"entry":"src\u002Findex.js","original_git":null,"room_id":null,"description":null,"draft":false};