@dshtrading/client-ui-strategies 0.6.3 → 0.7.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/client.js +81 -60
- package/lib/client.js.map +1 -1
- package/package.json +7 -7
package/lib/client.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.js","names":["createDevicePixelRatioObservable","en","t","i","n","s","HORIZONS","rowsFromParamsJson","useState","useMemo","css","DEFAULT_STORED","useState","useRef","useMemo","css","useState","useMemo","css","useState","useRef","useMemo","createChart","ColorType","AreaSeries","css","css"],"sources":["../../../node_modules/.pnpm/fancy-canvas@2.1.0/node_modules/fancy-canvas/size.mjs","../../../node_modules/.pnpm/fancy-canvas@2.1.0/node_modules/fancy-canvas/device-pixel-ratio.mjs","../../../node_modules/.pnpm/fancy-canvas@2.1.0/node_modules/fancy-canvas/canvas-element-bitmap-size.mjs","../../../node_modules/.pnpm/fancy-canvas@2.1.0/node_modules/fancy-canvas/canvas-rendering-target.mjs","../../../node_modules/.pnpm/lightweight-charts@5.2.1/node_modules/lightweight-charts/dist/lightweight-charts.production.mjs","../../strategies/lib/engine.js","../../strategies/lib/price-format.js","../../indicators/lib/validate.js","../../strategies/lib/validate.js","../../strategies/lib/paradigms/donchian-breakout.js","../../strategies/lib/paradigms/rsi-reversion.js","../../strategies/lib/paradigms/ema-crossover.js","../../strategies/lib/paradigms/bollinger-reversion.js","../../strategies/lib/paradigms/sma-baseline.js","../../strategies/lib/paradigms/momentum-12m.js","../../strategies/lib/paradigms/index.js","../../strategies/lib/screeners/ma-bull-align.js","../../strategies/lib/screeners/volume-breakout.js","../../strategies/lib/screeners/rsi-oversold.js","../../strategies/lib/screeners/near-high.js","../../strategies/lib/screeners/above-ma.js","../../strategies/lib/screeners/index.js","../../strategies/lib/management.js","../src/client/shell-faces.ts","../src/client/icons.tsx","../src/client/strategy-locale.ts","../src/client/ScreenerEditor.tsx","../src/client/ScreenerPane.tsx","../src/client/StrategyEditor.tsx","../src/client/StrategyView.tsx","../src/client/toolview-parse.ts","../src/client/toolview.tsx","../src/client/locales.ts","../src/client/index.ts"],"sourcesContent":["export function size(_a) {\n var width = _a.width, height = _a.height;\n if (width < 0) {\n throw new Error('Negative width is not allowed for Size');\n }\n if (height < 0) {\n throw new Error('Negative height is not allowed for Size');\n }\n return {\n width: width,\n height: height,\n };\n}\nexport function equalSizes(first, second) {\n return (first.width === second.width) &&\n (first.height === second.height);\n}\n","var Observable = /** @class */ (function () {\n function Observable(win) {\n var _this = this;\n this._resolutionListener = function () { return _this._onResolutionChanged(); };\n this._resolutionMediaQueryList = null;\n this._observers = [];\n this._window = win;\n this._installResolutionListener();\n }\n Observable.prototype.dispose = function () {\n this._uninstallResolutionListener();\n this._window = null;\n };\n Object.defineProperty(Observable.prototype, \"value\", {\n get: function () {\n return this._window.devicePixelRatio;\n },\n enumerable: false,\n configurable: true\n });\n Observable.prototype.subscribe = function (next) {\n var _this = this;\n var observer = { next: next };\n this._observers.push(observer);\n return {\n unsubscribe: function () {\n _this._observers = _this._observers.filter(function (o) { return o !== observer; });\n },\n };\n };\n Observable.prototype._installResolutionListener = function () {\n if (this._resolutionMediaQueryList !== null) {\n throw new Error('Resolution listener is already installed');\n }\n var dppx = this._window.devicePixelRatio;\n this._resolutionMediaQueryList = this._window.matchMedia(\"all and (resolution: \".concat(dppx, \"dppx)\"));\n // IE and some versions of Edge do not support addEventListener/removeEventListener, and we are going to use the deprecated addListener/removeListener\n this._resolutionMediaQueryList.addListener(this._resolutionListener);\n };\n Observable.prototype._uninstallResolutionListener = function () {\n if (this._resolutionMediaQueryList !== null) {\n // IE and some versions of Edge do not support addEventListener/removeEventListener, and we are going to use the deprecated addListener/removeListener\n this._resolutionMediaQueryList.removeListener(this._resolutionListener);\n this._resolutionMediaQueryList = null;\n }\n };\n Observable.prototype._reinstallResolutionListener = function () {\n this._uninstallResolutionListener();\n this._installResolutionListener();\n };\n Observable.prototype._onResolutionChanged = function () {\n var _this = this;\n this._observers.forEach(function (observer) { return observer.next(_this._window.devicePixelRatio); });\n this._reinstallResolutionListener();\n };\n return Observable;\n}());\nexport function createObservable(win) {\n return new Observable(win);\n}\n","import { equalSizes, size } from \"./size.mjs\";\nimport { createObservable as createDevicePixelRatioObservable } from \"./device-pixel-ratio.mjs\";\nvar DevicePixelContentBoxBinding = /** @class */ (function () {\n function DevicePixelContentBoxBinding(canvasElement, transformBitmapSize, options) {\n var _a;\n this._canvasElement = null;\n this._bitmapSizeChangedListeners = [];\n this._suggestedBitmapSize = null;\n this._suggestedBitmapSizeChangedListeners = [];\n // devicePixelRatio approach\n this._devicePixelRatioObservable = null;\n // ResizeObserver approach\n this._canvasElementResizeObserver = null;\n this._canvasElement = canvasElement;\n this._canvasElementClientSize = size({\n width: this._canvasElement.clientWidth,\n height: this._canvasElement.clientHeight,\n });\n this._transformBitmapSize = transformBitmapSize !== null && transformBitmapSize !== void 0 ? transformBitmapSize : (function (size) { return size; });\n this._allowResizeObserver = (_a = options === null || options === void 0 ? void 0 : options.allowResizeObserver) !== null && _a !== void 0 ? _a : true;\n this._chooseAndInitObserver();\n // we MAY leave the constuctor without any bitmap size observation mechanics initialized\n }\n DevicePixelContentBoxBinding.prototype.dispose = function () {\n var _a, _b;\n if (this._canvasElement === null) {\n throw new Error('Object is disposed');\n }\n (_a = this._canvasElementResizeObserver) === null || _a === void 0 ? void 0 : _a.disconnect();\n this._canvasElementResizeObserver = null;\n (_b = this._devicePixelRatioObservable) === null || _b === void 0 ? void 0 : _b.dispose();\n this._devicePixelRatioObservable = null;\n this._suggestedBitmapSizeChangedListeners.length = 0;\n this._bitmapSizeChangedListeners.length = 0;\n this._canvasElement = null;\n };\n Object.defineProperty(DevicePixelContentBoxBinding.prototype, \"canvasElement\", {\n get: function () {\n if (this._canvasElement === null) {\n throw new Error('Object is disposed');\n }\n return this._canvasElement;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(DevicePixelContentBoxBinding.prototype, \"canvasElementClientSize\", {\n get: function () {\n return this._canvasElementClientSize;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(DevicePixelContentBoxBinding.prototype, \"bitmapSize\", {\n get: function () {\n return size({\n width: this.canvasElement.width,\n height: this.canvasElement.height,\n });\n },\n enumerable: false,\n configurable: true\n });\n /**\n * Use this function to change canvas element client size until binding is disposed\n * @param clientSize New client size for bound HTMLCanvasElement\n */\n DevicePixelContentBoxBinding.prototype.resizeCanvasElement = function (clientSize) {\n this._canvasElementClientSize = size(clientSize);\n this.canvasElement.style.width = \"\".concat(this._canvasElementClientSize.width, \"px\");\n this.canvasElement.style.height = \"\".concat(this._canvasElementClientSize.height, \"px\");\n this._invalidateBitmapSize();\n };\n DevicePixelContentBoxBinding.prototype.subscribeBitmapSizeChanged = function (listener) {\n this._bitmapSizeChangedListeners.push(listener);\n };\n DevicePixelContentBoxBinding.prototype.unsubscribeBitmapSizeChanged = function (listener) {\n this._bitmapSizeChangedListeners = this._bitmapSizeChangedListeners.filter(function (l) { return l !== listener; });\n };\n Object.defineProperty(DevicePixelContentBoxBinding.prototype, \"suggestedBitmapSize\", {\n get: function () {\n return this._suggestedBitmapSize;\n },\n enumerable: false,\n configurable: true\n });\n DevicePixelContentBoxBinding.prototype.subscribeSuggestedBitmapSizeChanged = function (listener) {\n this._suggestedBitmapSizeChangedListeners.push(listener);\n };\n DevicePixelContentBoxBinding.prototype.unsubscribeSuggestedBitmapSizeChanged = function (listener) {\n this._suggestedBitmapSizeChangedListeners = this._suggestedBitmapSizeChangedListeners.filter(function (l) { return l !== listener; });\n };\n DevicePixelContentBoxBinding.prototype.applySuggestedBitmapSize = function () {\n if (this._suggestedBitmapSize === null) {\n // nothing to apply\n return;\n }\n var oldSuggestedSize = this._suggestedBitmapSize;\n this._suggestedBitmapSize = null;\n this._resizeBitmap(oldSuggestedSize);\n this._emitSuggestedBitmapSizeChanged(oldSuggestedSize, this._suggestedBitmapSize);\n };\n DevicePixelContentBoxBinding.prototype._resizeBitmap = function (newSize) {\n var oldSize = this.bitmapSize;\n if (equalSizes(oldSize, newSize)) {\n return;\n }\n this.canvasElement.width = newSize.width;\n this.canvasElement.height = newSize.height;\n this._emitBitmapSizeChanged(oldSize, newSize);\n };\n DevicePixelContentBoxBinding.prototype._emitBitmapSizeChanged = function (oldSize, newSize) {\n var _this = this;\n this._bitmapSizeChangedListeners.forEach(function (listener) { return listener.call(_this, oldSize, newSize); });\n };\n DevicePixelContentBoxBinding.prototype._suggestNewBitmapSize = function (newSize) {\n var oldSuggestedSize = this._suggestedBitmapSize;\n var finalNewSize = size(this._transformBitmapSize(newSize, this._canvasElementClientSize));\n var newSuggestedSize = equalSizes(this.bitmapSize, finalNewSize) ? null : finalNewSize;\n if (oldSuggestedSize === null && newSuggestedSize === null) {\n return;\n }\n if (oldSuggestedSize !== null && newSuggestedSize !== null\n && equalSizes(oldSuggestedSize, newSuggestedSize)) {\n return;\n }\n this._suggestedBitmapSize = newSuggestedSize;\n this._emitSuggestedBitmapSizeChanged(oldSuggestedSize, newSuggestedSize);\n };\n DevicePixelContentBoxBinding.prototype._emitSuggestedBitmapSizeChanged = function (oldSize, newSize) {\n var _this = this;\n this._suggestedBitmapSizeChangedListeners.forEach(function (listener) { return listener.call(_this, oldSize, newSize); });\n };\n DevicePixelContentBoxBinding.prototype._chooseAndInitObserver = function () {\n var _this = this;\n if (!this._allowResizeObserver) {\n this._initDevicePixelRatioObservable();\n return;\n }\n isDevicePixelContentBoxSupported()\n .then(function (isSupported) {\n return isSupported ?\n _this._initResizeObserver() :\n _this._initDevicePixelRatioObservable();\n });\n };\n // devicePixelRatio approach\n DevicePixelContentBoxBinding.prototype._initDevicePixelRatioObservable = function () {\n var _this = this;\n if (this._canvasElement === null) {\n // it looks like we are already dead\n return;\n }\n var win = canvasElementWindow(this._canvasElement);\n if (win === null) {\n throw new Error('No window is associated with the canvas');\n }\n this._devicePixelRatioObservable = createDevicePixelRatioObservable(win);\n this._devicePixelRatioObservable.subscribe(function () { return _this._invalidateBitmapSize(); });\n this._invalidateBitmapSize();\n };\n DevicePixelContentBoxBinding.prototype._invalidateBitmapSize = function () {\n var _a, _b;\n if (this._canvasElement === null) {\n // it looks like we are already dead\n return;\n }\n var win = canvasElementWindow(this._canvasElement);\n if (win === null) {\n return;\n }\n var ratio = (_b = (_a = this._devicePixelRatioObservable) === null || _a === void 0 ? void 0 : _a.value) !== null && _b !== void 0 ? _b : win.devicePixelRatio;\n var canvasRects = this._canvasElement.getClientRects();\n var newSize = \n // eslint-disable-next-line no-negated-condition\n canvasRects[0] !== undefined ?\n predictedBitmapSize(canvasRects[0], ratio) :\n size({\n width: this._canvasElementClientSize.width * ratio,\n height: this._canvasElementClientSize.height * ratio,\n });\n this._suggestNewBitmapSize(newSize);\n };\n // ResizeObserver approach\n DevicePixelContentBoxBinding.prototype._initResizeObserver = function () {\n var _this = this;\n if (this._canvasElement === null) {\n // it looks like we are already dead\n return;\n }\n this._canvasElementResizeObserver = new ResizeObserver(function (entries) {\n var entry = entries.find(function (entry) { return entry.target === _this._canvasElement; });\n if (!entry || !entry.devicePixelContentBoxSize || !entry.devicePixelContentBoxSize[0]) {\n return;\n }\n var entrySize = entry.devicePixelContentBoxSize[0];\n var newSize = size({\n width: entrySize.inlineSize,\n height: entrySize.blockSize,\n });\n _this._suggestNewBitmapSize(newSize);\n });\n this._canvasElementResizeObserver.observe(this._canvasElement, { box: 'device-pixel-content-box' });\n };\n return DevicePixelContentBoxBinding;\n}());\nexport function bindTo(canvasElement, target) {\n if (target.type === 'device-pixel-content-box') {\n return new DevicePixelContentBoxBinding(canvasElement, target.transform, target.options);\n }\n throw new Error('Unsupported binding target');\n}\nfunction canvasElementWindow(canvasElement) {\n // According to DOM Level 2 Core specification, ownerDocument should never be null for HTMLCanvasElement\n // see https://www.w3.org/TR/2000/REC-DOM-Level-2-Core-20001113/core.html#node-ownerDoc\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n return canvasElement.ownerDocument.defaultView;\n}\nfunction isDevicePixelContentBoxSupported() {\n return new Promise(function (resolve) {\n var ro = new ResizeObserver(function (entries) {\n resolve(entries.every(function (entry) { return 'devicePixelContentBoxSize' in entry; }));\n ro.disconnect();\n });\n ro.observe(document.body, { box: 'device-pixel-content-box' });\n })\n .catch(function () { return false; });\n}\nfunction predictedBitmapSize(canvasRect, ratio) {\n return size({\n width: Math.round(canvasRect.left * ratio + canvasRect.width * ratio) -\n Math.round(canvasRect.left * ratio),\n height: Math.round(canvasRect.top * ratio + canvasRect.height * ratio) -\n Math.round(canvasRect.top * ratio),\n });\n}\n","/**\n * @experimental\n */\nvar CanvasRenderingTarget2D = /** @class */ (function () {\n function CanvasRenderingTarget2D(context, mediaSize, bitmapSize) {\n if (mediaSize.width === 0 || mediaSize.height === 0) {\n throw new TypeError('Rendering target could only be created on a media with positive width and height');\n }\n this._mediaSize = mediaSize;\n // !Number.isInteger(bitmapSize.width) || !Number.isInteger(bitmapSize.height)\n if (bitmapSize.width === 0 || bitmapSize.height === 0) {\n throw new TypeError('Rendering target could only be created using a bitmap with positive integer width and height');\n }\n this._bitmapSize = bitmapSize;\n this._context = context;\n }\n CanvasRenderingTarget2D.prototype.useMediaCoordinateSpace = function (f) {\n try {\n this._context.save();\n // do not use resetTransform to support old versions of Edge\n this._context.setTransform(1, 0, 0, 1, 0, 0);\n this._context.scale(this._horizontalPixelRatio, this._verticalPixelRatio);\n return f({\n context: this._context,\n mediaSize: this._mediaSize,\n });\n }\n finally {\n this._context.restore();\n }\n };\n CanvasRenderingTarget2D.prototype.useBitmapCoordinateSpace = function (f) {\n try {\n this._context.save();\n // do not use resetTransform to support old versions of Edge\n this._context.setTransform(1, 0, 0, 1, 0, 0);\n return f({\n context: this._context,\n mediaSize: this._mediaSize,\n bitmapSize: this._bitmapSize,\n horizontalPixelRatio: this._horizontalPixelRatio,\n verticalPixelRatio: this._verticalPixelRatio,\n });\n }\n finally {\n this._context.restore();\n }\n };\n Object.defineProperty(CanvasRenderingTarget2D.prototype, \"_horizontalPixelRatio\", {\n get: function () {\n return this._bitmapSize.width / this._mediaSize.width;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(CanvasRenderingTarget2D.prototype, \"_verticalPixelRatio\", {\n get: function () {\n return this._bitmapSize.height / this._mediaSize.height;\n },\n enumerable: false,\n configurable: true\n });\n return CanvasRenderingTarget2D;\n}());\nexport { CanvasRenderingTarget2D };\n/**\n * @experimental\n */\nexport function createCanvasRenderingTarget2D(binding, contextOptions) {\n var mediaSize = binding.canvasElementClientSize;\n var bitmapSize = binding.bitmapSize;\n var context = binding.canvasElement.getContext('2d', contextOptions);\n if (context === null) {\n throw new Error('Could not get 2d drawing context from bound canvas element. Has the canvas already been set to a different context mode?');\n }\n return new CanvasRenderingTarget2D(context, mediaSize, bitmapSize);\n}\n/**\n * @experimental\n */\nexport function tryCreateCanvasRenderingTarget2D(binding, contextOptions) {\n var mediaSize = binding.canvasElementClientSize;\n if (mediaSize.width === 0 || mediaSize.height === 0) {\n return null;\n }\n var bitmapSize = binding.bitmapSize;\n if (bitmapSize.width === 0 || bitmapSize.height === 0) {\n return null;\n }\n var context = binding.canvasElement.getContext('2d', contextOptions);\n if (context === null) {\n return null;\n }\n return new CanvasRenderingTarget2D(context, mediaSize, bitmapSize);\n}\n","/*!\n * @license\n * TradingView Lightweight Charts™ v5.2.1\n * Copyright (c) 2026 TradingView, Inc.\n * Licensed under Apache License 2.0 https://www.apache.org/licenses/LICENSE-2.0\n */\nimport{size as t,bindCanvasElementBitmapSizeTo as i,equalSizes as n,tryCreateCanvasRenderingTarget2D as s}from\"fancy-canvas\";const e={title:\"\",visible:!0,hitTestTolerance:3,lastValueVisible:!0,priceLineVisible:!0,priceLineSource:0,priceLineWidth:1,priceLineColor:\"\",priceLineStyle:2,baseLineVisible:!0,baseLineWidth:1,baseLineColor:\"#B2B5BE\",baseLineStyle:0,priceFormat:{type:\"price\",precision:2,minMove:.01}};var r,h;function a(t,i){const n=function(t,i){switch(t){case 0:default:return[];case 1:return[i,i];case 2:return[2*i,2*i];case 3:return[6*i,6*i];case 4:return[i,4*i]}}(i,t.lineWidth);return t.setLineDash(n),n}function l(t,i,n,s){t.beginPath();const e=t.lineWidth%2?.5:0;t.moveTo(n,i+e),t.lineTo(s,i+e),t.stroke()}function o(t,i){if(!t)throw new Error(\"Assertion failed\"+(i?\": \"+i:\"\"))}function _(t){if(void 0===t)throw new Error(\"Value is undefined\");return t}function u(t){if(null===t)throw new Error(\"Value is null\");return t}function c(t){return u(_(t))}!function(t){t[t.Simple=0]=\"Simple\",t[t.WithSteps=1]=\"WithSteps\",t[t.Curved=2]=\"Curved\"}(r||(r={})),function(t){t[t.Solid=0]=\"Solid\",t[t.Dotted=1]=\"Dotted\",t[t.Dashed=2]=\"Dashed\",t[t.LargeDashed=3]=\"LargeDashed\",t[t.SparseDotted=4]=\"SparseDotted\"}(h||(h={}));class d{constructor(){this.t=[]}i(t,i,n){const s={h:t,l:i,o:!0===n};this.t.push(s)}_(t){const i=this.t.findIndex((i=>t===i.h));i>-1&&this.t.splice(i,1)}u(t){this.t=this.t.filter((i=>i.l!==t))}p(t,i,n){const s=[...this.t];this.t=this.t.filter((t=>!t.o)),s.forEach((s=>s.h(t,i,n)))}v(){return this.t.length>0}m(){this.t=[]}}function f(t,...i){for(const n of i)for(const i in n)void 0!==n[i]&&Object.prototype.hasOwnProperty.call(n,i)&&![\"__proto__\",\"constructor\",\"prototype\"].includes(i)&&(\"object\"!=typeof n[i]||void 0===t[i]||Array.isArray(n[i])?t[i]=n[i]:f(t[i],n[i]));return t}function p(t){return\"number\"==typeof t&&isFinite(t)}function v(t){return\"number\"==typeof t&&t%1==0}function m(t){return\"string\"==typeof t}function w(t){return\"boolean\"==typeof t}function M(t){const i=t;if(!i||\"object\"!=typeof i)return i;let n,s,e;for(s in n=Array.isArray(i)?[]:{},i)i.hasOwnProperty(s)&&(e=i[s],n[s]=e&&\"object\"==typeof e?M(e):e);return n}function g(t){return null!==t}function b(t){return null===t?void 0:t}const S=\"-apple-system, BlinkMacSystemFont, 'Trebuchet MS', Roboto, Ubuntu, sans-serif\";function x(t,i,n){return void 0===i&&(i=S),`${n=void 0!==n?`${n} `:\"\"}${t}px ${i}`}class C{constructor(t){this.M={S:1,C:5,P:NaN,k:\"\",T:\"\",R:\"\",D:\"\",I:0,V:0,B:0,A:0,L:0},this.O=t}N(){const t=this.M,i=this.F(),n=this.W();return t.P===i&&t.T===n||(t.P=i,t.T=n,t.k=x(i,n),t.A=2.5/12*i,t.I=t.A,t.V=i/12*t.C,t.B=i/12*t.C,t.L=0),t.R=this.H(),t.D=this.U(),this.M}H(){return this.O.N().layout.textColor}U(){return this.O.$()}F(){return this.O.N().layout.fontSize}W(){return this.O.N().layout.fontFamily}}function y(t){return t<0?0:t>255?255:Math.round(t)||0}function P(t){return.199*t[0]+.687*t[1]+.114*t[2]}class k{constructor(t,i){this.j=new Map,this.q=t,i&&(this.j=i)}Y(t,i){if(\"transparent\"===t)return t;const n=this.K(t),s=n[3];return`rgba(${n[0]}, ${n[1]}, ${n[2]}, ${i*s})`}G(t){const i=this.K(t);return{Z:`rgb(${i[0]}, ${i[1]}, ${i[2]})`,X:P(i)>160?\"black\":\"white\"}}J(t){return P(this.K(t))}tt(t,i,n){const[s,e,r,h]=this.K(t),[a,l,o,_]=this.K(i),u=[y(s+n*(a-s)),y(e+n*(l-e)),y(r+n*(o-r)),(c=h+n*(_-h),c<=0||c>1?Math.min(Math.max(c,0),1):Math.round(1e4*c)/1e4)];var c;return`rgba(${u[0]}, ${u[1]}, ${u[2]}, ${u[3]})`}K(t){const i=this.j.get(t);if(i)return i;const n=function(t){const i=document.createElement(\"div\");i.style.display=\"none\",document.body.appendChild(i),i.style.color=t;const n=window.getComputedStyle(i).color;return document.body.removeChild(i),n}(t),s=n.match(/^rgba?\\s*\\((\\d+),\\s*(\\d+),\\s*(\\d+)(?:,\\s*(\\d*\\.?\\d+))?\\)$/);if(!s){if(this.q.length)for(const i of this.q){const n=i(t);if(n)return this.j.set(t,n),n}throw new Error(`Failed to parse color: ${t}`)}const e=[parseInt(s[1],10),parseInt(s[2],10),parseInt(s[3],10),s[4]?parseFloat(s[4]):1];return this.j.set(t,e),e}}class T{constructor(){this.it=[]}nt(t){this.it=t}st(t,i,n){this.it.forEach((s=>{s.st(t,i,n)}))}}class R{st(t,i,n){t.useBitmapCoordinateSpace((t=>this.et(t,i,n)))}}class D extends R{constructor(){super(...arguments),this.rt=null}ht(t){this.rt=t}et({context:t,horizontalPixelRatio:i,verticalPixelRatio:n}){if(null===this.rt||null===this.rt.lt)return;const s=this.rt.lt,e=this.rt,r=Math.max(1,Math.floor(i))%2/2,h=h=>{t.beginPath();for(let a=s.to-1;a>=s.from;--a){const s=e.ot[a],l=Math.round(s._t*i)+r,o=s.ut*n,_=h*n+r;t.moveTo(l,o),t.arc(l,o,_,0,2*Math.PI)}t.fill()};e.ct>0&&(t.fillStyle=e.dt,h(e.ft+e.ct)),t.fillStyle=e.vt,h(e.ft)}}function I(){return{ot:[{_t:0,ut:0,wt:0,Mt:0}],vt:\"\",dt:\"\",ft:0,ct:0,lt:null}}const V={from:0,to:1};class B{constructor(t,i,n){this.gt=new T,this.bt=[],this.St=[],this.xt=!0,this.O=t,this.Ct=i,this.yt=n,this.gt.nt(this.bt)}Pt(t){this.kt(),this.xt=!0}Tt(){return this.xt&&(this.Rt(),this.xt=!1),this.gt}kt(){const t=this.yt.Dt();t.length!==this.bt.length&&(this.St=t.map(I),this.bt=this.St.map((t=>{const i=new D;return i.ht(t),i})),this.gt.nt(this.bt))}Rt(){const t=2===this.Ct.N().mode||!this.Ct.It(),i=this.yt.Vt(),n=this.Ct.Bt(),s=this.O.Et();this.kt(),i.forEach(((i,e)=>{const r=this.St[e],h=i.At(n),a=i.Lt();!t&&null!==h&&i.It()&&null!==a?(r.vt=h.zt,r.ft=h.ft,r.ct=h.Ot,r.ot[0].Mt=h.Mt,r.ot[0].ut=i.Ft().Nt(h.Mt,a.Wt),r.dt=h.Ht??this.O.Ut(r.ot[0].ut/i.Ft().$t()),r.ot[0].wt=n,r.ot[0]._t=s.jt(n),r.lt=V):r.lt=null}))}}class E extends R{constructor(t){super(),this.qt=t}et({context:t,bitmapSize:i,horizontalPixelRatio:n,verticalPixelRatio:s}){if(null===this.qt)return;const e=this.qt.Yt.It,r=this.qt.Kt.It;if(!e&&!r)return;const h=Math.round(this.qt._t*n),o=Math.round(this.qt.ut*s);t.lineCap=\"butt\",e&&h>=0&&(t.lineWidth=Math.floor(this.qt.Yt.ct*n),t.strokeStyle=this.qt.Yt.R,t.fillStyle=this.qt.Yt.R,a(t,this.qt.Yt.Gt),function(t,i,n,s){t.beginPath();const e=t.lineWidth%2?.5:0;t.moveTo(i+e,n),t.lineTo(i+e,s),t.stroke()}(t,h,0,i.height)),r&&o>=0&&(t.lineWidth=Math.floor(this.qt.Kt.ct*s),t.strokeStyle=this.qt.Kt.R,t.fillStyle=this.qt.Kt.R,a(t,this.qt.Kt.Gt),l(t,o,0,i.width))}}class A{constructor(t,i){this.xt=!0,this.Zt={Yt:{ct:1,Gt:0,R:\"\",It:!1},Kt:{ct:1,Gt:0,R:\"\",It:!1},_t:0,ut:0},this.Xt=new E(this.Zt),this.Jt=t,this.yt=i}Pt(){this.xt=!0}Tt(t){return this.xt&&(this.Rt(),this.xt=!1),this.Xt}Rt(){const t=this.Jt.It(),i=this.yt.Qt().N().crosshair,n=this.Zt;if(2===i.mode)return n.Kt.It=!1,void(n.Yt.It=!1);n.Kt.It=t&&this.Jt.ti(this.yt),n.Yt.It=t&&this.Jt.ii(),n.Kt.ct=i.horzLine.width,n.Kt.Gt=i.horzLine.style,n.Kt.R=i.horzLine.color,n.Yt.ct=i.vertLine.width,n.Yt.Gt=i.vertLine.style,n.Yt.R=i.vertLine.color,n._t=this.Jt.ni(),n.ut=this.Jt.si()}}function L(t,i,n,s,e,r){t.fillRect(i+r,n,s-2*r,r),t.fillRect(i+r,n+e-r,s-2*r,r),t.fillRect(i,n,r,e),t.fillRect(i+s-r,n,r,e)}function z(t,i,n,s,e,r){t.save(),t.globalCompositeOperation=\"copy\",t.fillStyle=r,t.fillRect(i,n,s,e),t.restore()}function O(t,i,n,s,e,r){t.beginPath(),t.roundRect?t.roundRect(i,n,s,e,r):(t.lineTo(i+s-r[1],n),0!==r[1]&&t.arcTo(i+s,n,i+s,n+r[1],r[1]),t.lineTo(i+s,n+e-r[2]),0!==r[2]&&t.arcTo(i+s,n+e,i+s-r[2],n+e,r[2]),t.lineTo(i+r[3],n+e),0!==r[3]&&t.arcTo(i,n+e,i,n+e-r[3],r[3]),t.lineTo(i,n+r[0]),0!==r[0]&&t.arcTo(i,n,i+r[0],n,r[0]))}function N(t,i,n,s,e,r,h=0,a=[0,0,0,0],l=\"\"){if(t.save(),!h||!l||l===r)return O(t,i,n,s,e,a),t.fillStyle=r,t.fill(),void t.restore();const o=h/2;var _;O(t,i+o,n+o,s-h,e-h,(_=-o,a.map((t=>0===t?t:t+_)))),\"transparent\"!==r&&(t.fillStyle=r,t.fill()),\"transparent\"!==l&&(t.lineWidth=h,t.strokeStyle=l,t.closePath(),t.stroke()),t.restore()}function F(t,i,n,s,e,r,h){t.save(),t.globalCompositeOperation=\"copy\";const a=t.createLinearGradient(0,0,0,e);a.addColorStop(0,r),a.addColorStop(1,h),t.fillStyle=a,t.fillRect(i,n,s,e),t.restore()}class W{constructor(t,i){this.ht(t,i)}ht(t,i){this.qt=t,this.ei=i}$t(t,i){return this.qt.It?t.P+t.A+t.I:0}st(t,i,n,s){if(!this.qt.It||0===this.qt.ri.length)return;const e=this.qt.R,r=this.ei.Z,h=t.useBitmapCoordinateSpace((t=>{const h=t.context;h.font=i.k;const a=this.hi(t,i,n,s),l=a.ai;return a.li?N(h,l.oi,l._i,l.ui,l.ci,r,l.di,[l.ft,0,0,l.ft],r):N(h,l.fi,l._i,l.ui,l.ci,r,l.di,[0,l.ft,l.ft,0],r),this.qt.pi&&(h.fillStyle=e,h.fillRect(l.fi,l.mi,l.wi-l.fi,l.Mi)),this.qt.gi&&(h.fillStyle=i.D,h.fillRect(a.li?l.bi-l.di:0,l._i,l.di,l.Si-l._i)),a}));t.useMediaCoordinateSpace((({context:t})=>{const n=h.xi;t.font=i.k,t.textAlign=h.li?\"right\":\"left\",t.textBaseline=\"middle\",t.fillStyle=e,t.fillText(this.qt.ri,n.Ci,(n._i+n.Si)/2+n.yi)}))}hi(t,i,n,s){const{context:e,bitmapSize:r,mediaSize:h,horizontalPixelRatio:a,verticalPixelRatio:l}=t,o=this.qt.pi||!this.qt.Pi?i.C:0,_=this.qt.ki?i.S:0,u=i.A+this.ei.Ti,c=i.I+this.ei.Ri,d=i.V,f=i.B,p=this.qt.ri,v=i.P,m=n.Di(e,p),w=Math.ceil(n.Ii(e,p)),M=v+u+c,g=i.S+d+f+w+o,b=Math.max(1,Math.floor(l));let S=Math.round(M*l);S%2!=b%2&&(S+=1);const x=_>0?Math.max(1,Math.floor(_*a)):0,C=Math.round(g*a),y=Math.round(o*a),P=this.ei.Vi??this.ei.Bi??this.ei.Ei,k=Math.round(P*l)-Math.floor(.5*l),T=Math.floor(k+b/2-S/2),R=T+S,D=\"right\"===s,I=D?h.width-_:_,V=D?r.width-x:x;let B,E,A;return D?(B=V-C,E=V-y,A=I-o-d-_):(B=V+C,E=V+y,A=I+o+d),{li:D,ai:{_i:T,mi:k,Si:R,ui:C,ci:S,ft:2*a,di:x,oi:B,fi:V,wi:E,Mi:b,bi:r.width},xi:{_i:T/l,Si:R/l,Ci:A,yi:m}}}}class H{constructor(t){this.Ai={Ei:0,Z:\"#000\",Ri:0,Ti:0},this.Li={ri:\"\",It:!1,pi:!0,Pi:!1,Ht:\"\",R:\"#FFF\",gi:!1,ki:!1},this.zi={ri:\"\",It:!1,pi:!1,Pi:!0,Ht:\"\",R:\"#FFF\",gi:!0,ki:!0},this.xt=!0,this.Oi=new(t||W)(this.Li,this.Ai),this.Ni=new(t||W)(this.zi,this.Ai)}ri(){return this.Fi(),this.Li.ri}Ei(){return this.Fi(),this.Ai.Ei}Pt(){this.xt=!0}$t(t,i=!1){return Math.max(this.Oi.$t(t,i),this.Ni.$t(t,i))}Wi(){return this.Ai.Vi??null}Hi(){return this.Ai.Vi??this.Ai.Bi??this.Ei()}Ui(t){this.Ai.Bi=t??void 0}$i(){return this.Fi(),this.Li.It||this.zi.It}ji(){return this.Fi(),this.Li.It}Tt(t){return this.Fi(),this.Li.pi=this.Li.pi&&t.N().ticksVisible,this.zi.pi=this.zi.pi&&t.N().ticksVisible,this.Oi.ht(this.Li,this.Ai),this.Ni.ht(this.zi,this.Ai),this.Oi}qi(){return this.Fi(),this.Oi.ht(this.Li,this.Ai),this.Ni.ht(this.zi,this.Ai),this.Ni}Fi(){this.xt&&(this.Li.pi=!0,this.zi.pi=!1,this.Yi(this.Li,this.zi,this.Ai))}}class U extends H{constructor(t,i,n){super(),this.Jt=t,this.Ki=i,this.Gi=n}Yi(t,i,n){if(t.It=!1,2===this.Jt.N().mode)return;const s=this.Jt.N().horzLine;if(!s.labelVisible)return;const e=this.Ki.Lt();if(!this.Jt.It()||this.Ki.Zi()||null===e)return;const r=this.Ki.Xi().G(s.labelBackgroundColor);n.Z=r.Z,t.R=r.X;const h=2/12*this.Ki.P();n.Ti=h,n.Ri=h;const a=this.Gi(this.Ki);n.Ei=a.Ei,t.ri=this.Ki.Ji(a.Mt,e),t.It=!0}}const $=/[1-9]/g;class j{constructor(){this.qt=null}ht(t){this.qt=t}st(t,i){if(null===this.qt||!1===this.qt.It||0===this.qt.ri.length)return;const n=t.useMediaCoordinateSpace((({context:t})=>(t.font=i.k,Math.round(i.Qi.Ii(t,u(this.qt).ri,$)))));if(n<=0)return;const s=i.tn,e=n+2*s,r=e/2,h=this.qt.nn;let a=this.qt.Ei,l=Math.floor(a-r)+.5;l<0?(a+=Math.abs(0-l),l=Math.floor(a-r)+.5):l+e>h&&(a-=Math.abs(h-(l+e)),l=Math.floor(a-r)+.5);const o=l+e,_=Math.ceil(0+i.S+i.C+i.A+i.P+i.I);t.useBitmapCoordinateSpace((({context:t,horizontalPixelRatio:n,verticalPixelRatio:s})=>{const e=u(this.qt);t.fillStyle=e.Z;const r=Math.round(l*n),h=Math.round(0*s),a=Math.round(o*n),c=Math.round(_*s),d=Math.round(2*n);if(t.beginPath(),t.moveTo(r,h),t.lineTo(r,c-d),t.arcTo(r,c,r+d,c,d),t.lineTo(a-d,c),t.arcTo(a,c,a,c-d,d),t.lineTo(a,h),t.fill(),e.pi){const r=Math.round(e.Ei*n),a=h,l=Math.round((a+i.C)*s);t.fillStyle=e.R;const o=Math.max(1,Math.floor(n)),_=Math.floor(.5*n);t.fillRect(r-_,a,o,l-a)}})),t.useMediaCoordinateSpace((({context:t})=>{const n=u(this.qt),e=0+i.S+i.C+i.A+i.P/2;t.font=i.k,t.textAlign=\"left\",t.textBaseline=\"middle\",t.fillStyle=n.R;const r=i.Qi.Di(t,\"Apr0\");t.translate(l+s,e+r),t.fillText(n.ri,0,0)}))}}class q{constructor(t,i,n){this.xt=!0,this.Xt=new j,this.Zt={It:!1,Z:\"#4c525e\",R:\"white\",ri:\"\",nn:0,Ei:NaN,pi:!0},this.Ct=t,this.sn=i,this.Gi=n}Pt(){this.xt=!0}Tt(){return this.xt&&(this.Rt(),this.xt=!1),this.Xt.ht(this.Zt),this.Xt}Rt(){const t=this.Zt;if(t.It=!1,2===this.Ct.N().mode)return;const i=this.Ct.N().vertLine;if(!i.labelVisible)return;const n=this.sn.Et();if(n.Zi())return;t.nn=n.nn();const s=this.Gi();if(null===s)return;t.Ei=s.Ei;const e=n.en(this.Ct.Bt());t.ri=n.rn(u(e)),t.It=!0;const r=this.sn.Xi().G(i.labelBackgroundColor);t.Z=r.Z,t.R=r.X,t.pi=n.N().ticksVisible}}class Y{constructor(){this.hn=null,this.an=0}ln(){return this.an}_n(t){this.an=t}Ft(){return this.hn}un(t){this.hn=t}cn(t){return[]}dn(){return[]}It(){return!0}}var K;!function(t){t[t.Normal=0]=\"Normal\",t[t.Magnet=1]=\"Magnet\",t[t.Hidden=2]=\"Hidden\",t[t.MagnetOHLC=3]=\"MagnetOHLC\"}(K||(K={}));class G extends Y{constructor(t,i){super(),this.yt=null,this.fn=NaN,this.pn=0,this.vn=!1,this.mn=new Map,this.wn=!1,this.Mn=new WeakMap,this.gn=new WeakMap,this.bn=NaN,this.Sn=NaN,this.xn=NaN,this.Cn=NaN,this.sn=t,this.yn=i;this.Pn=((t,i)=>n=>{const s=i(),e=t();if(n===u(this.yt).kn())return{Mt:e,Ei:s};{const t=u(n.Lt());return{Mt:n.Tn(s,t),Ei:s}}})((()=>this.fn),(()=>this.Sn));const n=((t,i)=>()=>{const n=this.sn.Et().Rn(t()),s=i();return n&&Number.isFinite(s)?{wt:n,Ei:s}:null})((()=>this.pn),(()=>this.ni()));this.Dn=new q(this,t,n)}N(){return this.yn}In(t,i){this.xn=t,this.Cn=i}Vn(){this.xn=NaN,this.Cn=NaN}Bn(){return this.xn}En(){return this.Cn}An(t,i,n){this.wn||(this.wn=!0),this.vn=!0,this.Ln(t,i,n)}Bt(){return this.pn}ni(){return this.bn}si(){return this.Sn}It(){return this.vn}zn(){this.vn=!1,this.On(),this.fn=NaN,this.bn=NaN,this.Sn=NaN,this.yt=null,this.Vn(),this.Nn()}Fn(t){if(!this.yn.doNotSnapToHiddenSeriesIndices)return t;const i=this.sn,n=i.Et();let s=null,e=null;for(const n of i.Wn()){const i=n.Un().Hn(t,-1);if(i){if(i.$n===t)return t;(null===s||i.$n>s)&&(s=i.$n)}const r=n.Un().Hn(t,1);if(r){if(r.$n===t)return t;(null===e||r.$n<e)&&(e=r.$n)}}const r=[s,e].filter(g);if(0===r.length)return t;const h=n.jt(t),a=r.map((t=>Math.abs(h-n.jt(t))));return r[a.indexOf(Math.min(...a))]}jn(t){let i=this.Mn.get(t);i||(i=new A(this,t),this.Mn.set(t,i));let n=this.gn.get(t);return n||(n=new B(this.sn,this,t),this.gn.set(t,n)),[i,n]}ti(t){return t===this.yt&&this.yn.horzLine.visible}ii(){return this.yn.vertLine.visible}qn(t,i){this.vn&&this.yt===t||this.mn.clear();const n=[];return this.yt===t&&n.push(this.Yn(this.mn,i,this.Pn)),n}dn(){return this.vn?[this.Dn]:[]}Kn(){return this.yt}Nn(){this.sn.Gn().forEach((t=>{this.Mn.get(t)?.Pt(),this.gn.get(t)?.Pt()})),this.mn.forEach((t=>t.Pt())),this.Dn.Pt()}Zn(t){return t&&!t.kn().Zi()?t.kn():null}Ln(t,i,n){this.Xn(t,i,n)&&this.Nn()}Xn(t,i,n){const s=this.bn,e=this.Sn,r=this.fn,h=this.pn,a=this.yt,l=this.Zn(n);this.pn=t,this.bn=isNaN(t)?NaN:this.sn.Et().jt(t),this.yt=n;const o=null!==l?l.Lt():null;return null!==l&&null!==o?(this.fn=i,this.Sn=l.Nt(i,o)):(this.fn=NaN,this.Sn=NaN),s!==this.bn||e!==this.Sn||h!==this.pn||r!==this.fn||a!==this.yt}On(){const t=this.sn.Jn().map((t=>t.Un().Qn())).filter(g),i=0===t.length?null:Math.max(...t);this.pn=null!==i?i:NaN}Yn(t,i,n){let s=t.get(i);return void 0===s&&(s=new U(this,i,n),t.set(i,s)),s}}function Z(t){return\"left\"===t||\"right\"===t}class X{constructor(t){this.ts=new Map,this.ns=[],this.ss=t}es(t,i){const n=function(t,i){return void 0===t?i:{rs:Math.max(t.rs,i.rs),hs:t.hs||i.hs}}(this.ts.get(t),i);this.ts.set(t,n)}ls(){return this.ss}_s(t){const i=this.ts.get(t);return void 0===i?{rs:this.ss}:{rs:Math.max(this.ss,i.rs),hs:i.hs}}us(){this.cs(),this.ns=[{ds:0}]}fs(t){this.cs(),this.ns=[{ds:1,Wt:t}]}ps(t){this.vs(),this.ns.push({ds:5,Wt:t})}cs(){this.vs(),this.ns.push({ds:6})}ws(){this.cs(),this.ns=[{ds:4}]}Ms(t){this.cs(),this.ns.push({ds:2,Wt:t})}gs(t){this.cs(),this.ns.push({ds:3,Wt:t})}bs(){return this.ns}Ss(t){for(const i of t.ns)this.xs(i);this.ss=Math.max(this.ss,t.ss),t.ts.forEach(((t,i)=>{this.es(i,t)}))}static Cs(){return new X(2)}static ys(){return new X(3)}xs(t){switch(t.ds){case 0:this.us();break;case 1:this.fs(t.Wt);break;case 2:this.Ms(t.Wt);break;case 3:this.gs(t.Wt);break;case 4:this.ws();break;case 5:this.ps(t.Wt);break;case 6:this.vs()}}vs(){const t=this.ns.findIndex((t=>5===t.ds));-1!==t&&this.ns.splice(t,1)}}class J{formatTickmarks(t){return t.map((t=>this.format(t)))}}const Q=\".\";function tt(t,i){if(!p(t))return\"n/a\";if(!v(i))throw new TypeError(\"invalid length\");if(i<0||i>16)throw new TypeError(\"invalid length\");if(0===i)return t.toString();return(\"0000000000000000\"+t.toString()).slice(-i)}class it extends J{constructor(t,i){if(super(),i||(i=1),p(t)&&v(t)||(t=100),t<0)throw new TypeError(\"invalid base\");this.Ki=t,this.Ps=i,this.ks()}format(t){const i=t<0?\"−\":\"\";return t=Math.abs(t),i+this.Ts(t)}ks(){if(this.Rs=0,this.Ki>0&&this.Ps>0){let t=this.Ki;for(;t>1;)t/=10,this.Rs++}}Ts(t){const i=this.Ki/this.Ps;let n=Math.floor(t),s=\"\";const e=void 0!==this.Rs?this.Rs:NaN;if(i>1){let r=+(Math.round(t*i)-n*i).toFixed(this.Rs);r>=i&&(r-=i,n+=1),s=Q+tt(+r.toFixed(this.Rs)*this.Ps,e)}else n=Math.round(n*i)/i,e>0&&(s=Q+tt(0,e));return n.toFixed(0)+s}}class nt extends it{constructor(t=100){super(t)}format(t){return`${super.format(t)}%`}}class st extends J{constructor(t){super(),this.Ds=t}format(t){let i=\"\";return t<0&&(i=\"-\",t=-t),t<995?i+this.Is(t):t<999995?i+this.Is(t/1e3)+\"K\":t<999999995?(t=1e3*Math.round(t/1e3),i+this.Is(t/1e6)+\"M\"):(t=1e6*Math.round(t/1e6),i+this.Is(t/1e9)+\"B\")}Is(t){let i;const n=Math.pow(10,this.Ds);return i=(t=Math.round(t*n)/n)>=1e-15&&t<1?t.toFixed(this.Ds).replace(/\\.?0+$/,\"\"):String(t),i.replace(/(\\.[1-9]*)0+$/,((t,i)=>i))}}const et=/[2-9]/g;class rt{constructor(t=50){this.Vs=0,this.Bs=1,this.Es=1,this.As={},this.Ls=new Map,this.zs=t}Os(){this.Vs=0,this.Ls.clear(),this.Bs=1,this.Es=1,this.As={}}Ii(t,i,n){return this.Ns(t,i,n).width}Di(t,i,n){const s=this.Ns(t,i,n);return((s.actualBoundingBoxAscent||0)-(s.actualBoundingBoxDescent||0))/2}Ns(t,i,n){const s=n||et,e=String(i).replace(s,\"0\");if(this.Ls.has(e))return _(this.Ls.get(e)).Fs;if(this.Vs===this.zs){const t=this.As[this.Es];delete this.As[this.Es],this.Ls.delete(t),this.Es++,this.Vs--}t.save(),t.textBaseline=\"middle\";const r=t.measureText(e);return t.restore(),0===r.width&&i.length||(this.Ls.set(e,{Fs:r,Ws:this.Bs}),this.As[this.Bs]=e,this.Vs++,this.Bs++),r}}class ht{constructor(t){this.Hs=null,this.M=null,this.Us=\"right\",this.$s=t}js(t,i,n){this.Hs=t,this.M=i,this.Us=n}st(t){null!==this.M&&null!==this.Hs&&this.Hs.st(t,this.M,this.$s,this.Us)}}class at{constructor(t,i,n){this.qs=t,this.$s=new rt(50),this.Ys=i,this.O=n,this.F=-1,this.Xt=new ht(this.$s)}Tt(){const t=this.O.Ks(this.Ys);if(null===t)return null;const i=t.Gs(this.Ys)?t.Zs():this.Ys.Ft();if(null===i)return null;const n=t.Xs(i);if(\"overlay\"===n)return null;const s=this.O.Js();return s.P!==this.F&&(this.F=s.P,this.$s.Os()),this.Xt.js(this.qs.qi(),s,n),this.Xt}}class lt extends R{constructor(){super(...arguments),this.qt=null}ht(t){this.qt=t}Qs(t,i){if(!this.qt?.It)return null;const{ut:n,ct:s,te:e}=this.qt;return i>=n-s-7&&i<=n+s+7?{ie:this.qt,ne:Math.abs(i-n),se:2,ee:\"price-line\",te:e}:null}et({context:t,bitmapSize:i,horizontalPixelRatio:n,verticalPixelRatio:s}){if(null===this.qt)return;if(!1===this.qt.It)return;const e=Math.round(this.qt.ut*s);e<0||e>i.height||(t.lineCap=\"butt\",t.strokeStyle=this.qt.R,t.lineWidth=Math.floor(this.qt.ct*n),a(t,this.qt.Gt),l(t,e,0,i.width))}}class ot{constructor(t){this.re={ut:0,R:\"rgba(0, 0, 0, 0)\",ct:1,Gt:0,It:!1},this.he=new lt,this.xt=!0,this.ae=t,this.le=t.Qt(),this.he.ht(this.re)}Pt(){this.xt=!0}Tt(){return this.ae.It()?(this.xt&&(this.oe(),this.xt=!1),this.he):null}}class _t extends ot{constructor(t){super(t)}oe(){this.re.It=!1;const t=this.ae.Ft(),i=t._e()._e;if(2!==i&&3!==i)return;const n=this.ae.N();if(!n.baseLineVisible||!this.ae.It())return;const s=this.ae.Lt();null!==s&&(this.re.It=!0,this.re.ut=t.Nt(s.Wt,s.Wt),this.re.R=n.baseLineColor,this.re.ct=n.baseLineWidth,this.re.Gt=n.baseLineStyle)}}class ut extends R{constructor(){super(...arguments),this.qt=null}ht(t){this.qt=t}ue(){return this.qt}et({context:t,horizontalPixelRatio:i,verticalPixelRatio:n}){const s=this.qt;if(null===s)return;const e=Math.max(1,Math.floor(i)),r=e%2/2,h=Math.round(s.ce.x*i)+r,a=s.ce.y*n;t.fillStyle=s.de,t.beginPath();const l=Math.max(2,1.5*s.fe)*i;t.arc(h,a,l,0,2*Math.PI,!1),t.fill(),t.fillStyle=s.pe,t.beginPath(),t.arc(h,a,s.ft*i,0,2*Math.PI,!1),t.fill(),t.lineWidth=e,t.strokeStyle=s.ve,t.beginPath(),t.arc(h,a,s.ft*i+e/2,0,2*Math.PI,!1),t.stroke()}}const ct=[{me:0,we:.25,Me:4,ge:10,be:.25,Se:0,xe:.4,Ce:.8},{me:.25,we:.525,Me:10,ge:14,be:0,Se:0,xe:.8,Ce:0},{me:.525,we:1,Me:14,ge:14,be:0,Se:0,xe:0,Ce:0}];class dt{constructor(t){this.Xt=new ut,this.xt=!0,this.ye=!0,this.Pe=performance.now(),this.ke=this.Pe-1,this.Te=t}Re(){this.ke=this.Pe-1,this.Pt()}De(){if(this.Pt(),2===this.Te.N().lastPriceAnimation){const t=performance.now(),i=this.ke-t;if(i>0)return void(i<650&&(this.ke+=2600));this.Pe=t,this.ke=t+2600}}Pt(){this.xt=!0}Ie(){this.ye=!0}It(){return 0!==this.Te.N().lastPriceAnimation}Ve(){switch(this.Te.N().lastPriceAnimation){case 0:return!1;case 1:return!0;case 2:return performance.now()<=this.ke}}Tt(){return this.xt?(this.Rt(),this.xt=!1,this.ye=!1):this.ye&&(this.Be(),this.ye=!1),this.Xt}Rt(){this.Xt.ht(null);const t=this.Te.Qt().Et(),i=t.Ee(),n=this.Te.Lt();if(null===i||null===n)return;const s=this.Te.Ae(!0);if(s.Le||!i.ze(s.$n))return;const e={x:t.jt(s.$n),y:this.Te.Ft().Nt(s.Mt,n.Wt)},r=s.R,h=this.Te.N().lineWidth,a=this.Oe(this.Ne(),r);this.Xt.ht({de:r,fe:h,pe:a.pe,ve:a.ve,ft:a.ft,ce:e})}Be(){const t=this.Xt.ue();if(null!==t){const i=this.Oe(this.Ne(),t.de);t.pe=i.pe,t.ve=i.ve,t.ft=i.ft}}Ne(){return this.Ve()?performance.now()-this.Pe:2599}Fe(t,i,n,s){const e=n+(s-n)*i;return this.Te.Qt().Xi().Y(t,e)}Oe(t,i){const n=t%2600/2600;let s;for(const t of ct)if(n>=t.me&&n<=t.we){s=t;break}o(void 0!==s,\"Last price animation internal logic error\");const e=(n-s.me)/(s.we-s.me);return{pe:this.Fe(i,e,s.be,s.Se),ve:this.Fe(i,e,s.xe,s.Ce),ft:(r=e,h=s.Me,a=s.ge,h+(a-h)*r)};var r,h,a}}class ft extends ot{constructor(t){super(t)}oe(){const t=this.re;t.It=!1;const i=this.ae.N();if(!i.priceLineVisible||!this.ae.It())return;const n=this.ae.Ae(0===i.priceLineSource);n.Le||(t.It=!0,t.ut=n.Ei,t.R=this.ae.We(n.R),t.ct=i.priceLineWidth,t.Gt=i.priceLineStyle)}}class pt extends H{constructor(t){super(),this.Jt=t}Yi(t,i,n){t.It=!1,i.It=!1;const s=this.Jt;if(!s.It())return;const e=s.N(),r=e.lastValueVisible,h=\"\"!==s.He(),a=0===e.seriesLastValueMode,l=s.Ae(!1);if(l.Le)return;r&&(t.ri=this.Ue(l,r,a),t.It=0!==t.ri.length),(h||a)&&(i.ri=this.$e(l,r,h,a),i.It=i.ri.length>0);const o=s.We(l.R),_=this.Jt.Qt().Xi().G(o);n.Z=_.Z,n.Ei=l.Ei,i.Ht=s.Qt().Ut(l.Ei/s.Ft().$t()),t.Ht=o,t.R=_.X,i.R=_.X}$e(t,i,n,s){let e=\"\";const r=this.Jt.He();return n&&0!==r.length&&(e+=`${r} `),i&&s&&(e+=this.Jt.Ft().je()?t.qe:t.Ye),e.trim()}Ue(t,i,n){return i?n?this.Jt.Ft().je()?t.Ye:t.qe:t.ri:\"\"}}function vt(t,i,n,s){const e=Number.isFinite(i),r=Number.isFinite(n);return e&&r?t(i,n):e||r?e?i:n:s}class mt{constructor(t,i){this.Ke=t,this.Ge=i}Ze(t){return null!==t&&(this.Ke===t.Ke&&this.Ge===t.Ge)}Xe(){return new mt(this.Ke,this.Ge)}Je(){return this.Ke}Qe(){return this.Ge}tr(){return this.Ge-this.Ke}Zi(){return this.Ge===this.Ke||Number.isNaN(this.Ge)||Number.isNaN(this.Ke)}Ss(t){return null===t?this:new mt(vt(Math.min,this.Je(),t.Je(),-1/0),vt(Math.max,this.Qe(),t.Qe(),1/0))}ir(t){if(!p(t))return;if(0===this.Ge-this.Ke)return;const i=.5*(this.Ge+this.Ke);let n=this.Ge-i,s=this.Ke-i;n*=t,s*=t,this.Ge=i+n,this.Ke=i+s}nr(t){p(t)&&(this.Ge+=t,this.Ke+=t)}sr(){return{minValue:this.Ke,maxValue:this.Ge}}static er(t){return null===t?null:new mt(t.minValue,t.maxValue)}}class wt{constructor(t,i){this.rr=t,this.hr=i||null}ar(){return this.rr}lr(){return this.hr}sr(){return{priceRange:null===this.rr?null:this.rr.sr(),margins:this.hr||void 0}}static er(t){return null===t?null:new wt(mt.er(t.priceRange),t.margins)}}const Mt=[2,4,8,16,32,64,128,256,512],gt=\"Custom series with conflation reducer must have a priceValueBuilder method\";class bt extends ot{constructor(t,i){super(t),this._r=i}oe(){const t=this.re;t.It=!1;const i=this._r.N();if(!this.ae.It()||!i.lineVisible)return;const n=this._r.ur();null!==n&&(t.It=!0,t.ut=n,t.R=i.color,t.ct=i.lineWidth,t.Gt=i.lineStyle,t.te=this._r.N().id)}}class St extends H{constructor(t,i){super(),this.Te=t,this._r=i}Yi(t,i,n){t.It=!1,i.It=!1;const s=this._r.N(),e=s.axisLabelVisible,r=\"\"!==s.title,h=this.Te;if(!e||!h.It())return;const a=this._r.ur();if(null===a)return;r&&(i.ri=s.title,i.It=!0),i.Ht=h.Qt().Ut(a/h.Ft().$t()),t.ri=this.cr(s.price),t.It=!0;const l=this.Te.Qt().Xi().G(s.axisLabelColor||s.color);n.Z=l.Z;const o=s.axisLabelTextColor||l.X;t.R=o,i.R=o,n.Ei=a}cr(t){const i=this.Te.Lt();return null===i?\"\":this.Te.Ft().Ji(t,i.Wt)}}class xt{constructor(t,i){this.Te=t,this.yn=i,this.dr=new bt(t,this),this.qs=new St(t,this),this.pr=new at(this.qs,t,t.Qt())}vr(t){f(this.yn,t),this.Pt(),this.Te.Qt().mr()}N(){return this.yn}wr(){return this.dr}Mr(){return this.pr}gr(){return this.qs}Pt(){this.dr.Pt(),this.qs.Pt()}ur(){const t=this.Te,i=t.Ft();if(t.Qt().Et().Zi()||i.Zi())return null;const n=t.Lt();return null===n?null:i.Nt(this.yn.price,n.Wt)}}class Ct{constructor(){this.br=new WeakMap}Sr(t,i,n){const s=1/i*n;if(t>=s)return 1;const e=s/t,r=Math.pow(2,Math.floor(Math.log2(e)));return Math.min(r,512)}Cr(t,i,n,s=!1,e){if(0===t.length||i<=1)return t;const r=this.yr(i);if(r<=1)return t;const h=this.Pr(t);let a=h.kr.get(r);return void 0!==a||(a=this.Tr(t,r,n,s,e,h.kr),h.kr.set(r,a)),a}Rr(t,i,n,s,e=!1,r){if(n<1||0===t.length)return t;const h=this.Pr(t),a=h.kr.get(n);if(!a)return this.Cr(t,n,s,e,r);const l=this.Dr(t,i,n,a,e,s,r);return h.kr.set(n,l),l}yr(t){if(t<=2)return 2;for(const i of Mt)if(t<=i)return i;return 512}Ir(t){if(0===t.length)return 0;const i=t[0],n=t[t.length-1];return 31*t.length+17*i.$n+13*n.$n}Tr(t,i,n,s=!1,e,r=new Map){if(2===i)return this.Vr(t,2,n,s,e);const h=i/2;let a=r.get(h);return a||(a=this.Tr(t,h,n,s,e,r),r.set(h,a)),this.Br(a,n,s,e)}Vr(t,i,n,s=!1,e){const r=this.Er(t,i,n,s,e);return this.Ar(r,s)}Br(t,i,n=!1,s){const e=this.Er(t,2,i,n,s);return this.Ar(e,n)}Er(t,i,n,s=!1,e){const r=[];for(let h=0;h<t.length;h+=i){if(t.length-h>=i){const i=this.Lr(t[h],t[h+1],n,s,e);i.zr=!1,r.push(i)}else if(0===r.length)r.push(this.Or(t[h],!0));else{const i=r[r.length-1];r[r.length-1]=this.Nr(i,t[h],n,s,e)}}return r}Fr(t,i){return(t??1)+(i??1)}Lr(t,i,n,s=!1,e){if(!s||!n||!e){const n=t.Wt[1]>i.Wt[1]?t.Wt[1]:i.Wt[1],s=t.Wt[2]<i.Wt[2]?t.Wt[2]:i.Wt[2];return{Wr:t.$n,Hr:i.$n,Ur:t.wt,$r:i.wt,jr:t.Wt[0],qr:n,Yr:s,Kr:i.Wt[3],Gr:this.Fr(t.Gr,i.Gr),Zr:void 0,zr:!1}}const r=n(this.Xr(t,e),this.Xr(i,e)),h=e(r),a=h.length?h[h.length-1]:0;return{Wr:t.$n,Hr:i.$n,Ur:t.wt,$r:i.wt,jr:t.Wt[0],qr:Math.max(t.Wt[1],a),Yr:Math.min(t.Wt[2],a),Kr:a,Gr:this.Fr(t.Gr,i.Gr),Zr:r,zr:!1}}Nr(t,i,n,s=!1,e){if(!s||!n||!e)return{Wr:t.Wr,Hr:i.$n,Ur:t.Ur,$r:i.wt,jr:t.jr,qr:t.qr>i.Wt[1]?t.qr:i.Wt[1],Yr:t.Yr<i.Wt[2]?t.Yr:i.Wt[2],Kr:i.Wt[3],Gr:t.Gr+(i.Gr??1),Zr:t.Zr,zr:!1};const r=t.Zr,h=this.Xr(i,e),a=r?{data:r,index:t.Wr,originalTime:t.Ur,time:t.Ur,priceValues:e(r)}:null,l=a?n(a,h):h.data,o=a?e(l):h.priceValues,_=o.length?o[o.length-1]:0;return{Wr:t.Wr,Hr:i.$n,Ur:t.Ur,$r:i.wt,jr:t.jr,qr:Math.max(t.qr,_),Yr:Math.min(t.Yr,_),Kr:_,Gr:t.Gr+(i.Gr??1),Zr:l,zr:!1}}Jr(t,i,n,s,e,r,h=!1,a){const l=i===s?e:t[i];if(n-i==1)return this.Or(l,!0);const o=i+1===s?e:t[i+1];let _=this.Lr(l,o,r,h,a);for(let l=i+2;l<n;l++){const i=l===s?e:t[l];_=this.Nr(_,i,r,h,a)}return _}Xr(t,i){const n=t.ue??{};return{data:t.ue,index:t.$n,originalTime:t.Qr,time:t.wt,priceValues:i(n)}}th(t,i=!1){const n=!0===i,s=!!t.Zr;return{...{$n:t.Wr,wt:t.Ur,Qr:t.Ur,Wt:[n?t.Kr:t.jr,t.qr,t.Yr,t.Kr],Gr:t.Gr},ue:n?s?t.Zr:{wt:t.Ur}:void 0}}Ar(t,i=!1){return t.map((t=>this.th(t,i)))}Dr(t,i,n,s,e=!1,r,h){if(0===s.length)return s;const a=t.length-1,l=Math.floor(a/n)*n;if(Math.min(l+n,t.length)-l<n&&t.length>n){const s=t.slice();return s[s.length-1]=i,this.Cr(s,n,r,e,h)}if(Math.floor((a-1)/n)===Math.floor(a/n)||1===s.length){const o=Math.min(l+n,t.length),_=o-l;if(_<=0)return s;const u=1===_?this.Or(l===a?i:t[l],!0):this.Jr(t,l,o,a,i,r,e,h);return s[s.length-1]=this.th(u,e),s}{const s=t.slice();return s[s.length-1]=i,this.Cr(s,n,r,e,h)}}Or(t,i=!1){return{Wr:t.$n,Hr:t.$n,Ur:t.wt,$r:t.wt,jr:t.Wt[0],qr:t.Wt[1],Yr:t.Wt[2],Kr:t.Wt[3],Gr:t.Gr??1,Zr:t.ue,zr:i}}Pr(t){const i=this.ih(t),n=this.Ir(t);return i.nh!==n&&(i.kr.clear(),i.nh=n),i}ih(t){let i=this.br.get(t);return void 0===i&&(i={nh:this.Ir(t),kr:new Map},this.br.set(t,i)),i}}class yt extends Y{constructor(t){super(),this.sn=t}Qt(){return this.sn}}const Pt={Bar:(t,i,n,s)=>{const e=i.upColor,r=i.downColor,h=u(t(n,s)),a=c(h.Wt[0])<=c(h.Wt[3]);return{sh:h.R??(a?e:r)}},Candlestick:(t,i,n,s)=>{const e=i.upColor,r=i.downColor,h=i.borderUpColor,a=i.borderDownColor,l=i.wickUpColor,o=i.wickDownColor,_=u(t(n,s)),d=c(_.Wt[0])<=c(_.Wt[3]);return{sh:_.R??(d?e:r),eh:_.Ht??(d?h:a),rh:_.hh??(d?l:o)}},Custom:(t,i,n,s)=>({sh:u(t(n,s)).R??i.color}),Area:(t,i,n,s)=>{const e=u(t(n,s));return{sh:e.vt??i.lineColor,vt:e.vt??i.lineColor,ah:e.ah??i.topColor,oh:e.oh??i.bottomColor}},Baseline:(t,i,n,s)=>{const e=u(t(n,s));return{sh:e.Wt[3]>=i.baseValue.price?i.topLineColor:i.bottomLineColor,_h:e._h??i.topLineColor,uh:e.uh??i.bottomLineColor,dh:e.dh??i.topFillColor1,fh:e.fh??i.topFillColor2,ph:e.ph??i.bottomFillColor1,mh:e.mh??i.bottomFillColor2}},Line:(t,i,n,s)=>{const e=u(t(n,s));return{sh:e.R??i.color,vt:e.R??i.color}},Histogram:(t,i,n,s)=>({sh:u(t(n,s)).R??i.color})};class kt{constructor(t){this.wh=(t,i)=>void 0!==i?i.Wt:this.Te.Un().Mh(t),this.Te=t,this.gh=Pt[t.bh()]}Sh(t,i){return this.gh(this.wh,this.Te.N(),t,i)}}function Tt(t,i,n,s,e=0,r=i.length){let h=r-e;for(;0<h;){const r=h>>1,a=e+r;s(i[a],n)===t?(e=a+1,h-=r+1):h=r}return e}const Rt=Tt.bind(null,!0),Dt=Tt.bind(null,!1);var It;!function(t){t[t.NearestLeft=-1]=\"NearestLeft\",t[t.None=0]=\"None\",t[t.NearestRight=1]=\"NearestRight\"}(It||(It={}));const Vt=30;class Bt{constructor(){this.xh=[],this.Ch=new Map,this.yh=new Map,this.Ph=[]}kh(){return this.Th()>0?this.xh[this.xh.length-1]:null}Rh(){return this.Th()>0?this.Dh(0):null}Qn(){return this.Th()>0?this.Dh(this.xh.length-1):null}Th(){return this.xh.length}Zi(){return 0===this.Th()}ze(t){return null!==this.Ih(t,0)}Mh(t){return this.Hn(t)}Hn(t,i=0){const n=this.Ih(t,i);return null===n?null:{...this.Vh(n),$n:this.Dh(n)}}Bh(){return this.xh}Eh(t,i,n){if(this.Zi())return null;let s=null;for(const e of n){s=Et(s,this.Ah(t,i,e))}return s}ht(t){this.yh.clear(),this.Ch.clear(),this.xh=t,this.Ph=t.map((t=>t.$n))}Lh(){return this.Ph}Dh(t){return this.xh[t].$n}Vh(t){return this.xh[t]}Ih(t,i){const n=this.zh(t);if(null===n&&0!==i)switch(i){case-1:return this.Oh(t);case 1:return this.Nh(t);default:throw new TypeError(\"Unknown search mode\")}return n}Oh(t){let i=this.Fh(t);return i>0&&(i-=1),i!==this.xh.length&&this.Dh(i)<t?i:null}Nh(t){const i=this.Wh(t);return i!==this.xh.length&&t<this.Dh(i)?i:null}zh(t){const i=this.Fh(t);return i===this.xh.length||t<this.xh[i].$n?null:i}Fh(t){return Rt(this.xh,t,((t,i)=>t.$n<i))}Wh(t){return Dt(this.xh,t,((t,i)=>t.$n>i))}Hh(t,i,n){let s=null;for(let e=t;e<i;e++){const t=this.xh[e].Wt[n];Number.isNaN(t)||(null===s?s={Uh:t,$h:t}:(t<s.Uh&&(s.Uh=t),t>s.$h&&(s.$h=t)))}return s}Ah(t,i,n){if(this.Zi())return null;let s=null;const e=u(this.Rh()),r=u(this.Qn()),h=Math.max(t,e),a=Math.min(i,r),l=Math.ceil(h/Vt)*Vt,o=Math.max(l,Math.floor(a/Vt)*Vt);{const t=this.Fh(h),e=this.Wh(Math.min(a,l,i));s=Et(s,this.Hh(t,e,n))}let _=this.Ch.get(n);void 0===_&&(_=new Map,this.Ch.set(n,_));for(let t=Math.max(l+1,h);t<o;t+=Vt){const i=Math.floor(t/Vt);let e=_.get(i);if(void 0===e){const t=this.Fh(i*Vt),s=this.Wh((i+1)*Vt-1);e=this.Hh(t,s,n),_.set(i,e)}s=Et(s,e)}{const t=this.Fh(o),i=this.Wh(a);s=Et(s,this.Hh(t,i,n))}return s}}function Et(t,i){if(null===t)return i;if(null===i)return t;return{Uh:Math.min(t.Uh,i.Uh),$h:Math.max(t.$h,i.$h)}}function At(){return new Bt}const Lt={setLineStyle:a};class zt{constructor(t){this.jh=t}st(t,i,n){this.jh.draw(t,Lt)}qh(t,i,n){this.jh.drawBackground?.(t,Lt)}}class Ot{constructor(t){this.Ls=null,this.Yh=t}Tt(){const t=this.Yh.renderer();if(null===t)return null;if(this.Ls?.Kh===t)return this.Ls.Gh;const i=new zt(t);return this.Ls={Kh:t,Gh:i},i}Zh(){return this.Yh.zOrder?.()??\"normal\"}}class Nt{constructor(t){this.Xh=null,this.Jh=t}Qh(){return this.Jh}Nn(){this.Jh.updateAllViews?.()}jn(){const t=this.Jh.paneViews?.()??[];if(this.Xh?.Kh===t)return this.Xh.Gh;const i=t.map((t=>new Ot(t)));return this.Xh={Kh:t,Gh:i},i}Qs(t,i){return this.Jh.hitTest?.(t,i)??null}}let Ft=class extends Nt{cn(){return[]}};class Wt{constructor(t){this.jh=t}st(t,i,n){this.jh.draw(t,Lt)}qh(t,i,n){this.jh.drawBackground?.(t,Lt)}}class Ht{constructor(t){this.Ls=null,this.Yh=t}Tt(){const t=this.Yh.renderer();if(null===t)return null;if(this.Ls?.Kh===t)return this.Ls.Gh;const i=new Wt(t);return this.Ls={Kh:t,Gh:i},i}Zh(){return this.Yh.zOrder?.()??\"normal\"}}function Ut(t){return{ri:t.text(),Ei:t.coordinate(),Vi:t.fixedCoordinate?.(),R:t.textColor(),Z:t.backColor(),It:t.visible?.()??!0,pi:t.tickVisible?.()??!0}}class $t{constructor(t,i){this.Xt=new j,this.ta=t,this.ia=i}Tt(){return this.Xt.ht({nn:this.ia.nn(),...Ut(this.ta)}),this.Xt}}class jt extends H{constructor(t,i){super(),this.ta=t,this.Ki=i}Yi(t,i,n){const s=Ut(this.ta);n.Z=s.Z,t.R=s.R;const e=2/12*this.Ki.P();n.Ti=e,n.Ri=e,n.Ei=s.Ei,n.Vi=s.Vi,t.ri=s.ri,t.It=s.It,t.pi=s.pi}}class qt extends Nt{constructor(t,i){super(t),this.na=null,this.sa=null,this.ea=null,this.ra=null,this.Te=i}dn(){const t=this.Jh.timeAxisViews?.()??[];if(this.na?.Kh===t)return this.na.Gh;const i=this.Te.Qt().Et(),n=t.map((t=>new $t(t,i)));return this.na={Kh:t,Gh:n},n}qn(){const t=this.Jh.priceAxisViews?.()??[];if(this.sa?.Kh===t)return this.sa.Gh;const i=this.Te.Ft(),n=t.map((t=>new jt(t,i)));return this.sa={Kh:t,Gh:n},n}ha(){const t=this.Jh.priceAxisPaneViews?.()??[];if(this.ea?.Kh===t)return this.ea.Gh;const i=t.map((t=>new Ht(t)));return this.ea={Kh:t,Gh:i},i}aa(){const t=this.Jh.timeAxisPaneViews?.()??[];if(this.ra?.Kh===t)return this.ra.Gh;const i=t.map((t=>new Ht(t)));return this.ra={Kh:t,Gh:i},i}la(t,i){return this.Jh.autoscaleInfo?.(t,i)??null}}function Yt(t,i,n,s){t.forEach((t=>{i(t).forEach((t=>{t.Zh()===n&&s.push(t)}))}))}function Kt(t){return t.jn()}function Gt(t){return t.ha()}function Zt(t){return t.aa()}const Xt=[\"Area\",\"Line\",\"Baseline\"];class Jt extends yt{constructor(t,i,n,s,e){super(t),this.qt=At(),this.dr=new ft(this),this.oa=[],this._a=new _t(this),this.ua=null,this.ca=null,this.da=null,this.fa=[],this.pa=new Ct,this.va=new Map,this.ma=null,this.yn=n,this.wa=i;const r=new pt(this);if(this.mn=[r],this.pr=new at(r,this,t),Xt.includes(this.wa)&&(this.ua=new dt(this)),this.Ma(),this.Yh=s(this,this.Qt(),e),\"Custom\"===this.wa){const t=this.Yh;t.ga&&this.ba(t.ga)}}m(){null!==this.da&&clearTimeout(this.da)}We(t){return this.yn.priceLineColor||t}Ae(t){const i={Le:!0},n=this.Ft();if(this.Qt().Et().Zi()||n.Zi()||this.qt.Zi())return i;const s=this.Qt().Et().Ee(),e=this.Lt();if(null===s||null===e)return i;let r,h;if(t){const t=this.qt.kh();if(null===t)return i;r=t,h=t.$n}else{const t=this.qt.Hn(s.bi(),-1);if(null===t)return i;if(r=this.qt.Mh(t.$n),null===r)return i;h=t.$n}const a=r.Wt[3],l=this.Sa().Sh(h,{Wt:r}),o=n.Nt(a,e.Wt);return{Le:!1,Mt:a,ri:n.Ji(a,e.Wt),qe:n.xa(a),Ye:n.Ca(a,e.Wt),R:l.sh,Ei:o,$n:h}}Sa(){return null!==this.ca||(this.ca=new kt(this)),this.ca}N(){return this.yn}vr(t){const i=this.Qt(),{priceScaleId:n,visible:s,priceFormat:e}=t;void 0!==n&&n!==this.yn.priceScaleId&&i.ya(this,n),void 0!==s&&s!==this.yn.visible&&i.Pa();const r=void 0!==t.conflationThresholdFactor;f(this.yn,t),Object.prototype.hasOwnProperty.call(t,\"autoscaleInfoProvider\")&&void 0===t.autoscaleInfoProvider&&(this.yn.autoscaleInfoProvider=void 0),r&&(this.va.clear(),this.Qt().mr()),void 0!==e&&(this.Ma(),i.ka()),i.Ta(this),i.Ra(),this.Yh.Pt(\"options\")}ht(t,i){this.qt.ht(t),this.va.clear();const n=this.Qt().Et().N();n.enableConflation&&n.precomputeConflationOnInit&&this.Da(n.precomputeConflationPriority),this.Ia(),null!==this.ua&&(i&&i.Va?this.ua.De():0===t.length&&this.ua.Re());const s=this.Qt().Ks(this);this.Qt().Ba(s),this.Qt().Ta(this),this.Qt().Ra(),this.Qt().mr()}Ia(){this.Yh.Pt(\"data\")}Ea(t){const i=new xt(this,t);return this.oa.push(i),this.Qt().Ta(this),i}Aa(t){const i=this.oa.indexOf(t);-1!==i&&this.oa.splice(i,1),this.Qt().Ta(this)}La(){return this.oa}bh(){return this.wa}Lt(){const t=this.za();return null===t?null:{Wt:t.Wt[3],Oa:t.wt}}za(){const t=this.Qt().Et().Ee();if(null===t)return null;const i=t.Na();return this.qt.Hn(i,1)}Un(){return this.qt}ba(t){this.ma=t,this.va.clear()}Fa(){return!!this.Qt().Et().N().enableConflation&&this.Wa()>1}Rr(t){if(!this.Fa())return;const i=this.Wa();if(!this.va.has(i))return;const n=\"Custom\"===this.wa,s=n&&this.ma||void 0,e=n&&this.Yh.Ha?t=>{const i=t,n=this.Yh.Ha(i);return Array.isArray(n)?n:[\"number\"==typeof n?n:0]}:void 0,r=this.pa.Rr(this.qt.Bh(),t,i,s,n,e),h=At();h.ht(r),this.va.set(i,h)}Ua(){const t=this.Qt().Et().N().enableConflation;if(\"Custom\"===this.wa&&null===this.ma)return this.qt;if(!t)return this.qt;const i=this.Wa(),n=this.va.get(i);if(n)return n;this.$a(i);return this.va.get(i)??this.qt}ja(t){const i=this.qt.Mh(t);return null===i?null:\"Bar\"===this.wa||\"Candlestick\"===this.wa||\"Custom\"===this.wa?{jr:i.Wt[0],qr:i.Wt[1],Yr:i.Wt[2],Kr:i.Wt[3]}:i.Wt[3]}qa(t){const i=[];Yt(this.fa,Kt,\"top\",i);const n=this.ua;return null!==n&&n.It()?(null===this.da&&n.Ve()&&(this.da=setTimeout((()=>{this.da=null,this.Qt().Ya()}),0)),n.Ie(),i.unshift(n),i):i}jn(){const t=[];this.Ka()||t.push(this._a),t.push(this.Yh,this.dr);const i=this.oa.map((t=>t.wr()));return t.push(...i),Yt(this.fa,Kt,\"normal\",t),t}Ga(){const t=this.Yh.Ga?.()??null;if(null===t)return null;const i=[];this.Ka()||i.push(this._a),i.push(...t.Za),Yt(this.fa,Kt,\"normal\",i);const n=[];n.push(...t.qa,this.dr);const s=this.oa.map((t=>t.wr()));return n.push(...s),{Za:i,qa:n}}Xa(){return this.Ja(Kt,\"bottom\")}Qa(t){return this.Ja(Gt,t)}tl(t){return this.Ja(Zt,t)}il(t,i){return this.fa.map((n=>n.Qs(t,i))).filter((t=>null!==t))}cn(){return[this.pr,...this.oa.map((t=>t.Mr()))]}qn(t,i){if(i!==this.hn&&!this.Ka())return[];const n=[...this.mn];for(const t of this.oa)n.push(t.gr());return this.fa.forEach((t=>{n.push(...t.qn())})),n}dn(){const t=[];return this.fa.forEach((i=>{t.push(...i.dn())})),t}la(t,i){if(void 0!==this.yn.autoscaleInfoProvider){const n=this.yn.autoscaleInfoProvider((()=>{const n=this.nl(t,i);return null===n?null:n.sr()}));return wt.er(n)}return this.nl(t,i)}Kh(){const t=this.yn.priceFormat;return t.base??1/t.minMove}sl(){return this.el}Nn(){this.Yh.Pt();for(const t of this.mn)t.Pt();for(const t of this.oa)t.Pt();this.dr.Pt(),this._a.Pt(),this.ua?.Pt(),this.fa.forEach((t=>t.Nn()))}Ft(){return u(super.Ft())}At(t){if(!((\"Line\"===this.wa||\"Area\"===this.wa||\"Baseline\"===this.wa)&&this.yn.crosshairMarkerVisible))return null;const i=this.qt.Mh(t);if(null===i)return null;return{Mt:i.Wt[3],ft:this.rl(),Ht:this.hl(),Ot:this.al(),zt:this.ll(t)}}He(){return this.yn.title}It(){return this.yn.visible}ol(t){this.fa.push(new qt(t,this))}_l(t){this.fa=this.fa.filter((i=>i.Qh()!==t))}ul(){if(\"Custom\"===this.wa)return t=>this.Yh.Ha(t)}cl(){if(\"Custom\"===this.wa)return t=>this.Yh.dl(t)}fl(){return this.qt.Lh()}Ka(){return!Z(this.Ft().pl())}nl(t,i){if(!v(t)||!v(i)||this.qt.Zi())return null;const n=\"Line\"===this.wa||\"Area\"===this.wa||\"Baseline\"===this.wa||\"Histogram\"===this.wa?[3]:[2,1],s=this.qt.Eh(t,i,n);let e=null!==s?new mt(s.Uh,s.$h):null,r=null;if(\"Histogram\"===this.bh()){const t=this.yn.base,i=new mt(t,t);e=null!==e?e.Ss(i):i}return this.fa.forEach((n=>{const s=n.la(t,i);if(s?.priceRange){const t=new mt(s.priceRange.minValue,s.priceRange.maxValue);e=null!==e?e.Ss(t):t}s?.margins&&(r=s.margins)})),new wt(e,r)}rl(){switch(this.wa){case\"Line\":case\"Area\":case\"Baseline\":return this.yn.crosshairMarkerRadius}return 0}hl(){switch(this.wa){case\"Line\":case\"Area\":case\"Baseline\":{const t=this.yn.crosshairMarkerBorderColor;if(0!==t.length)return t}}return null}al(){switch(this.wa){case\"Line\":case\"Area\":case\"Baseline\":return this.yn.crosshairMarkerBorderWidth}return 0}ll(t){switch(this.wa){case\"Line\":case\"Area\":case\"Baseline\":{const t=this.yn.crosshairMarkerBackgroundColor;if(0!==t.length)return t}}return this.Sa().Sh(t).sh}Ma(){switch(this.yn.priceFormat.type){case\"custom\":{const t=this.yn.priceFormat.formatter;this.el={format:t,formatTickmarks:this.yn.priceFormat.tickmarksFormatter??(i=>i.map(t))};break}case\"volume\":this.el=new st(this.yn.priceFormat.precision);break;case\"percent\":this.el=new nt(this.yn.priceFormat.precision);break;default:{const t=Math.pow(10,this.yn.priceFormat.precision);this.el=new it(t,this.yn.priceFormat.minMove*t)}}null!==this.hn&&this.hn.vl()}Ja(t,i){const n=[];return Yt(this.fa,t,i,n),n}Wa(){const{ml:t,wl:i,Ml:n}=this.gl();return this.pa.Sr(t,i,n)}gl(){const t=this.Qt().Et(),i=t.ml(),n=window.devicePixelRatio||1,s=t.N().conflationThresholdFactor;return{ml:i,wl:n,Ml:this.yn.conflationThresholdFactor??s??1}}bl(t){const i=this.qt.Bh();let n;if(\"Custom\"===this.wa&&null!==this.ma){const s=this.ul();if(!s)throw new Error(gt);n=this.pa.Cr(i,t,this.ma,!0,(t=>s(t)))}else n=this.pa.Cr(i,t);const s=At();return s.ht(n),s}$a(t){const i=this.bl(t);this.va.set(t,i)}Da(t){if(\"Custom\"===this.wa&&(null===this.ma||!this.ul()))return;this.va.clear();const i=this.Qt().Et().Sl();for(const n of i){const i=()=>{this.xl(n)},s=\"object\"==typeof window&&window||\"object\"==typeof self&&self;s?.yl?.Cl?s.yl.Cl((()=>{i()}),{se:t}):Promise.resolve().then((()=>i()))}}xl(t){if(this.va.has(t))return;if(0===this.qt.Bh().length)return;const i=this.bl(t);this.va.set(t,i)}}const Qt=[3],ti=[0,1,2,3];class ii{constructor(t){this.yn=t}Pl(t,i,n){let s=t;if(0===this.yn.mode)return s;const e=n.kn(),r=e.Lt();if(null===r)return s;const h=e.Nt(t,r),a=n.kl().filter((t=>t instanceof Jt)).reduce(((t,s)=>{if(n.Gs(s)||!s.It())return t;const e=s.Ft(),r=s.Un();if(e.Zi()||!r.ze(i))return t;const h=r.Mh(i);if(null===h)return t;const a=c(s.Lt()),l=3===this.yn.mode?ti:Qt;return t.concat(l.map((t=>e.Nt(h.Wt[t],a.Wt))))}),[]);if(0===a.length)return s;a.sort(((t,i)=>Math.abs(t-h)-Math.abs(i-h)));const l=a[0];return s=e.Tn(l,r),s}}function ni(t,i,n){return Math.min(Math.max(t,i),n)}function si(t,i,n){return i-t<=n}function ei(t){const i=Math.ceil(t);return i%2==0?i-1:i}class ri extends R{constructor(){super(...arguments),this.qt=null}ht(t){this.qt=t}et({context:t,bitmapSize:i,horizontalPixelRatio:n,verticalPixelRatio:s}){if(null===this.qt)return;const e=Math.max(1,Math.floor(n));t.lineWidth=e,function(t,i){t.save(),t.lineWidth%2&&t.translate(.5,.5),i(),t.restore()}(t,(()=>{const r=u(this.qt);if(r.Tl){t.strokeStyle=r.Rl,a(t,r.Dl),t.beginPath();for(const s of r.Il){const r=Math.round(s.Vl*n);t.moveTo(r,-e),t.lineTo(r,i.height+e)}t.stroke()}if(r.Bl){t.strokeStyle=r.El,a(t,r.Al),t.beginPath();for(const n of r.Ll){const r=Math.round(n.Vl*s);t.moveTo(-e,r),t.lineTo(i.width+e,r)}t.stroke()}}))}}class hi{constructor(t){this.Xt=new ri,this.xt=!0,this.yt=t}Pt(){this.xt=!0}Tt(){if(this.xt){const t=this.yt.Qt().N().grid,i={Bl:t.horzLines.visible,Tl:t.vertLines.visible,El:t.horzLines.color,Rl:t.vertLines.color,Al:t.horzLines.style,Dl:t.vertLines.style,Ll:this.yt.kn().zl(),Il:(this.yt.Qt().Et().zl()||[]).map((t=>({Vl:t.coord})))};this.Xt.ht(i),this.xt=!1}return this.Xt}}class ai{constructor(t){this.Yh=new hi(t)}wr(){return this.Yh}}const li={Ol:4,Nl:1e-4};function oi(t,i){const n=100*(t-i)/i;return i<0?-n:n}function _i(t,i){const n=oi(t.Je(),i),s=oi(t.Qe(),i);return new mt(n,s)}function ui(t,i){const n=100*(t-i)/i+100;return i<0?-n:n}function ci(t,i){const n=ui(t.Je(),i),s=ui(t.Qe(),i);return new mt(n,s)}function di(t,i){const n=Math.abs(t);if(n<1e-15)return 0;const s=Math.log10(n+i.Nl)+i.Ol;return t<0?-s:s}function fi(t,i){const n=Math.abs(t);if(n<1e-15)return 0;const s=Math.pow(10,n-i.Ol)-i.Nl;return t<0?-s:s}function pi(t,i){if(null===t)return null;const n=di(t.Je(),i),s=di(t.Qe(),i);return new mt(n,s)}function vi(t,i){if(null===t)return null;const n=fi(t.Je(),i),s=fi(t.Qe(),i);return new mt(n,s)}function mi(t){if(null===t)return li;const i=Math.abs(t.Qe()-t.Je());if(i>=1||i<1e-15)return li;const n=Math.ceil(Math.abs(Math.log10(i))),s=li.Ol+n;return{Ol:s,Nl:1/Math.pow(10,s)}}class wi{constructor(t,i){if(this.Fl=t,this.Wl=i,function(t){if(t<0)return!1;if(t>1e18)return!0;for(let i=t;i>1;i/=10)if(i%10!=0)return!1;return!0}(this.Fl))this.Hl=[2,2.5,2];else{this.Hl=[];for(let t=this.Fl;1!==t;){if(t%2==0)this.Hl.push(2),t/=2;else{if(t%5!=0)throw new Error(\"unexpected base\");this.Hl.push(2,2.5),t/=5}if(this.Hl.length>100)throw new Error(\"something wrong with base\")}}}Ul(t,i,n){const s=0===this.Fl?0:1/this.Fl;let e=Math.pow(10,Math.max(0,Math.ceil(Math.log10(t-i)))),r=0,h=this.Wl[0];for(;;){const t=si(e,s,1e-14)&&e>s+1e-14,i=si(e,n*h,1e-14),a=si(e,1,1e-14);if(!(t&&i&&a))break;e/=h,h=this.Wl[++r%this.Wl.length]}if(e<=s+1e-14&&(e=s),e=Math.max(1,e),this.Hl.length>0&&(a=e,l=1,o=1e-14,Math.abs(a-l)<o))for(r=0,h=this.Hl[0];si(e,n*h,1e-14)&&e>s+1e-14;)e/=h,h=this.Hl[++r%this.Hl.length];var a,l,o;return e}}class Mi{constructor(t,i,n,s){this.$l=[],this.Ki=t,this.Fl=i,this.jl=n,this.ql=s}Ul(t,i){if(t<i)throw new Error(\"high < low\");const n=this.Ki.$t(),s=(t-i)*this.Yl()/n,e=new wi(this.Fl,[2,2.5,2]),r=new wi(this.Fl,[2,2,2.5]),h=new wi(this.Fl,[2.5,2,2]),a=[];return a.push(e.Ul(t,i,s),r.Ul(t,i,s),h.Ul(t,i,s)),function(t){if(t.length<1)throw Error(\"array is empty\");let i=t[0];for(let n=1;n<t.length;++n)t[n]<i&&(i=t[n]);return i}(a)}Kl(){const t=this.Ki,i=t.Lt();if(null===i)return void(this.$l=[]);const n=t.$t(),s=this.jl(n-1,i),e=this.jl(0,i),r=this.Ki.N().entireTextOnly?this.Gl()/2:0,h=r,a=n-1-r,l=Math.max(s,e),o=Math.min(s,e);if(l===o)return void(this.$l=[]);const _=this.Ul(l,o);if(this.Zl(i,_,l,o,h,a),t.Xl()&&this.Jl(_,o,l)){const t=this.Ki.Ql();this.io(i,_,h,a,t,2*t)}const u=this.$l.map((t=>t.no)),c=this.Ki.so(u);for(let t=0;t<this.$l.length;t++)this.$l[t].eo=c[t]}zl(){return this.$l}Gl(){return this.Ki.P()}Yl(){return Math.ceil(this.Gl()*this.Ki.N().tickMarkDensity)}Zl(t,i,n,s,e,r){const h=this.$l,a=this.Ki;let l=n%i;l+=l<0?i:0;const o=n>=s?1:-1;let _=null,u=0;for(let c=n-l;c>s;c-=i){const n=this.ql(c,t,!0);null!==_&&Math.abs(n-_)<this.Yl()||(n<e||n>r||(u<h.length?(h[u].Vl=n,h[u].eo=a.ro(c),h[u].no=c):h.push({Vl:n,eo:a.ro(c),no:c}),u++,_=n,a.ho()&&(i=this.Ul(c*o,s))))}h.length=u}io(t,i,n,s,e,r){const h=this.$l,a=this.ao(t,n,e,r),l=this.ao(t,s,-r,-e),o=this.ql(0,t,!0)-this.ql(i,t,!0);h.length>0&&h[0].Vl-a.Vl<o/2&&h.shift(),h.length>0&&l.Vl-h[h.length-1].Vl<o/2&&h.pop(),h.unshift(a),h.push(l)}ao(t,i,n,s){const e=(n+s)/2,r=this.jl(i+n,t),h=this.jl(i+s,t),a=Math.min(r,h),l=Math.max(r,h),o=Math.max(.1,this.Ul(l,a)),_=this.jl(i+e,t),u=_-_%o,c=this.ql(u,t,!0);return{eo:this.Ki.ro(u),Vl:c,no:u}}Jl(t,i,n){let s=c(this.Ki.ar());return this.Ki.ho()&&(s=vi(s,this.Ki.lo())),s.Je()-i<t&&n-s.Qe()<t}}function gi(t){return t.slice().sort(((t,i)=>u(t.ln())-u(i.ln())))}var bi;!function(t){t[t.Normal=0]=\"Normal\",t[t.Logarithmic=1]=\"Logarithmic\",t[t.Percentage=2]=\"Percentage\",t[t.IndexedTo100=3]=\"IndexedTo100\"}(bi||(bi={}));const Si=new nt,xi=new it(100,1);class Ci{constructor(t,i,n,s,e){this.oo=0,this._o=null,this.rr=null,this.uo=null,this.co={do:!1,fo:null},this.po=!1,this.vo=0,this.mo=0,this.wo=new d,this.Mo=new d,this.bo=[],this.So=null,this.xo=null,this.Co=null,this.yo=null,this.Po=null,this.el=xi,this.ko=mi(null),this.To=t,this.yn=i,this.Ro=n,this.Do=s,this.Io=e,this.Vo=new Mi(this,100,this.Bo.bind(this),this.Eo.bind(this))}pl(){return this.To}N(){return this.yn}vr(t){if(f(this.yn,t),this.vl(),void 0!==t.mode&&this.Ao({_e:t.mode}),void 0!==t.scaleMargins){const i=_(t.scaleMargins.top),n=_(t.scaleMargins.bottom);if(i<0||i>1)throw new Error(`Invalid top margin - expect value between 0 and 1, given=${i}`);if(n<0||n>1)throw new Error(`Invalid bottom margin - expect value between 0 and 1, given=${n}`);if(i+n>1)throw new Error(`Invalid margins - sum of margins must be less than 1, given=${i+n}`);this.Lo(),this.Co=null}}zo(){return this.yn.autoScale}Oo(){return this.po}ho(){return 1===this.yn.mode}je(){return 2===this.yn.mode}No(){return 3===this.yn.mode}lo(){return this.ko}_e(){return{hs:this.yn.autoScale,Fo:this.yn.invertScale,_e:this.yn.mode}}Ao(t){const i=this._e();let n=null;void 0!==t.hs&&(this.yn.autoScale=t.hs),void 0!==t._e&&(this.yn.mode=t._e,2!==t._e&&3!==t._e||(this.yn.autoScale=!0),this.co.do=!1),1===i._e&&t._e!==i._e&&(!function(t,i){if(null===t)return!1;const n=fi(t.Je(),i),s=fi(t.Qe(),i);return isFinite(n)&&isFinite(s)}(this.rr,this.ko)?this.yn.autoScale=!0:(n=vi(this.rr,this.ko),null!==n&&this.Wo(n))),1===t._e&&t._e!==i._e&&(n=pi(this.rr,this.ko),null!==n&&this.Wo(n));const s=i._e!==this.yn.mode;s&&(2===i._e||this.je())&&this.vl(),s&&(3===i._e||this.No())&&this.vl(),void 0!==t.Fo&&i.Fo!==t.Fo&&(this.yn.invertScale=t.Fo,this.Ho()),this.Mo.p(i,this._e())}Uo(){return this.Mo}P(){return this.Ro.fontSize}$t(){return this.oo}$o(t){this.oo!==t&&(this.oo=t,this.Lo(),this.Co=null)}jo(){if(this._o)return this._o;const t=this.$t()-this.qo()-this.Yo();return this._o=t,t}ar(){return this.Ko(),this.rr}Wo(t,i){const n=this.rr;(i||null===n&&null!==t||null!==n&&!n.Ze(t))&&(this.Co=null,this.rr=t)}Go(t){this.Wo(t),this.Zo(null!==t)}Zi(){return this.Ko(),0===this.oo||!this.rr||this.rr.Zi()}Xo(t){return this.Fo()?t:this.$t()-1-t}Nt(t,i){return this.je()?t=oi(t,i):this.No()&&(t=ui(t,i)),this.Eo(t,i)}Jo(t,i,n){this.Ko();const s=this.Yo(),e=u(this.ar()),r=e.Je(),h=e.Qe(),a=this.jo()-1,l=this.Fo(),o=a/(h-r),_=void 0===n?0:n.from,c=void 0===n?t.length:n.to,d=this.Qo();for(let n=_;n<c;n++){const e=t[n],h=e.Mt;if(isNaN(h))continue;let a=h;null!==d&&(a=d(e.Mt,i));const _=s+o*(a-r),u=l?_:this.oo-1-_;e.ut=u}}t_(t,i,n){this.Ko();const s=this.Yo(),e=u(this.ar()),r=e.Je(),h=e.Qe(),a=this.jo()-1,l=this.Fo(),o=a/(h-r),_=void 0===n?0:n.from,c=void 0===n?t.length:n.to,d=this.Qo();for(let n=_;n<c;n++){const e=t[n];let h=e.jr,a=e.qr,_=e.Yr,u=e.Kr;null!==d&&(h=d(e.jr,i),a=d(e.qr,i),_=d(e.Yr,i),u=d(e.Kr,i));let c=s+o*(h-r),f=l?c:this.oo-1-c;e.i_=f,c=s+o*(a-r),f=l?c:this.oo-1-c,e.n_=f,c=s+o*(_-r),f=l?c:this.oo-1-c,e.s_=f,c=s+o*(u-r),f=l?c:this.oo-1-c,e.e_=f}}Tn(t,i){const n=this.Bo(t,i);return this.r_(n,i)}r_(t,i){let n=t;return this.je()?n=function(t,i){return i<0&&(t=-t),t/100*i+i}(n,i):this.No()&&(n=function(t,i){return t-=100,i<0&&(t=-t),t/100*i+i}(n,i)),n}kl(){return this.bo}Dt(){return this.xo||(this.xo=gi(this.bo)),this.xo}h_(t){-1===this.bo.indexOf(t)&&(this.bo.push(t),this.vl(),this.a_())}l_(t){const i=this.bo.indexOf(t);if(-1===i)throw new Error(\"source is not attached to scale\");this.bo.splice(i,1),0===this.bo.length&&(this.Ao({hs:!0}),this.Wo(null)),this.vl(),this.a_()}Lt(){let t=null;for(const i of this.bo){const n=i.Lt();null!==n&&((null===t||n.Oa<t.Oa)&&(t=n))}return null===t?null:t.Wt}Fo(){return this.yn.invertScale}zl(){const t=null===this.Lt();if(null!==this.Co&&(t||this.Co.o_===t))return this.Co.zl;this.Vo.Kl();const i=this.Vo.zl();return this.Co={zl:i,o_:t},this.wo.p(),i}__(){return this.wo}u_(t){this.je()||this.No()||null===this.yo&&null===this.uo&&(this.Zi()||(this.yo=this.oo-t,this.uo=u(this.ar()).Xe()))}c_(t){if(this.je()||this.No())return;if(null===this.yo)return;this.Ao({hs:!1}),(t=this.oo-t)<0&&(t=0);let i=(this.yo+.2*(this.oo-1))/(t+.2*(this.oo-1));const n=u(this.uo).Xe();i=Math.max(i,.1),n.ir(i),this.Wo(n)}d_(){this.je()||this.No()||(this.yo=null,this.uo=null)}f_(t){this.zo()||null===this.Po&&null===this.uo&&(this.Zi()||(this.Po=t,this.uo=u(this.ar()).Xe()))}p_(t){if(this.zo())return;if(null===this.Po)return;const i=u(this.ar()).tr()/(this.jo()-1);let n=t-this.Po;this.Fo()&&(n*=-1);const s=n*i,e=u(this.uo).Xe();e.nr(s),this.Wo(e,!0),this.Co=null}v_(){this.zo()||null!==this.Po&&(this.Po=null,this.uo=null)}sl(){return this.el||this.vl(),this.el}Ji(t,i){switch(this.yn.mode){case 2:return this.m_(oi(t,i));case 3:return this.sl().format(ui(t,i));default:return this.cr(t)}}ro(t){switch(this.yn.mode){case 2:return this.m_(t);case 3:return this.sl().format(t);default:return this.cr(t)}}so(t){switch(this.yn.mode){case 2:return this.w_(t);case 3:return this.sl().formatTickmarks(t);default:return this.M_(t)}}xa(t){return this.cr(t,u(this.So).sl())}Ca(t,i){return t=oi(t,i),this.m_(t,Si)}g_(){return this.bo}b_(t){this.co={fo:t,do:!1}}Nn(){this.bo.forEach((t=>t.Nn()))}Xl(){return this.yn.ensureEdgeTickMarksVisible&&this.zo()}Ql(){return this.P()/2}vl(){this.Co=null;let t=1/0;this.So=null;for(const i of this.bo)i.ln()<t&&(t=i.ln(),this.So=i);let i=100;null!==this.So&&(i=Math.round(this.So.Kh())),this.el=xi,this.je()?(this.el=Si,i=100):this.No()?(this.el=new it(100,1),i=100):null!==this.So&&(this.el=this.So.sl()),this.Vo=new Mi(this,i,this.Bo.bind(this),this.Eo.bind(this)),this.Vo.Kl()}a_(){this.xo=null}S_(){return null===this.So||this.je()||this.No()?1:1/this.So.Kh()}Xi(){return this.Io}Zo(t){this.po=t}qo(){return this.Fo()?this.yn.scaleMargins.bottom*this.$t()+this.mo:this.yn.scaleMargins.top*this.$t()+this.vo}Yo(){return this.Fo()?this.yn.scaleMargins.top*this.$t()+this.vo:this.yn.scaleMargins.bottom*this.$t()+this.mo}Ko(){this.co.do||(this.co.do=!0,this.x_())}Lo(){this._o=null}Eo(t,i){if(this.Ko(),this.Zi())return 0;t=this.ho()&&t?di(t,this.ko):t;const n=u(this.ar()),s=this.Yo()+(this.jo()-1)*(t-n.Je())/n.tr();return this.Xo(s)}Bo(t,i){if(this.Ko(),this.Zi())return 0;const n=this.Xo(t),s=u(this.ar()),e=s.Je()+s.tr()*((n-this.Yo())/(this.jo()-1));return this.ho()?fi(e,this.ko):e}Ho(){this.Co=null,this.Vo.Kl()}x_(){if(this.Oo()&&!this.zo())return;const t=this.co.fo;if(null===t)return;let i=null;const n=this.g_();let s=0,e=0;for(const r of n){if(!r.It())continue;const n=r.Lt();if(null===n)continue;const h=r.la(t.Na(),t.bi());let a=h&&h.ar();if(null!==a){switch(this.yn.mode){case 1:a=pi(a,this.ko);break;case 2:a=_i(a,n.Wt);break;case 3:a=ci(a,n.Wt)}if(i=null===i?a:i.Ss(u(a)),null!==h){const t=h.lr();null!==t&&(s=Math.max(s,t.above),e=Math.max(e,t.below))}}}if(this.Xl()&&(s=Math.max(s,this.Ql()),e=Math.max(e,this.Ql())),s===this.vo&&e===this.mo||(this.vo=s,this.mo=e,this.Co=null,this.Lo()),null!==i){if(i.Je()===i.Qe()){const t=5*this.S_();this.ho()&&(i=vi(i,this.ko)),i=new mt(i.Je()-t,i.Qe()+t),this.ho()&&(i=pi(i,this.ko))}if(this.ho()){const t=vi(i,this.ko),n=mi(t);if(r=n,h=this.ko,r.Ol!==h.Ol||r.Nl!==h.Nl){const s=null!==this.uo?vi(this.uo,this.ko):null;this.ko=n,i=pi(t,n),null!==s&&(this.uo=pi(s,n))}}this.Wo(i)}else null===this.rr&&(this.Wo(new mt(-.5,.5)),this.ko=mi(null));var r,h}Qo(){return this.je()?oi:this.No()?ui:this.ho()?t=>di(t,this.ko):null}C_(t,i,n){return void 0===i?(void 0===n&&(n=this.sl()),n.format(t)):i(t)}y_(t,i,n){return void 0===i?(void 0===n&&(n=this.sl()),n.formatTickmarks(t)):i(t)}cr(t,i){return this.C_(t,this.Do.priceFormatter,i)}M_(t,i){const n=this.Do.priceFormatter;return this.y_(t,this.Do.tickmarksPriceFormatter??(n?t=>t.map(n):void 0),i)}m_(t,i){return this.C_(t,this.Do.percentageFormatter,i)}w_(t,i){const n=this.Do.percentageFormatter;return this.y_(t,this.Do.tickmarksPercentageFormatter??(n?t=>t.map(n):void 0),i)}}function yi(t){return t instanceof Jt}class Pi{constructor(t,i){this.bo=[],this.P_=new Map,this.oo=0,this.k_=0,this.T_=1,this.xo=null,this.R_=null,this.D_=!1,this.I_=new d,this.fa=[],this.ia=t,this.sn=i,this.V_=new ai(this);const n=i.N();this.B_=this.E_(\"left\",n.leftPriceScale),this.A_=this.E_(\"right\",n.rightPriceScale),this.B_.Uo().i(this.L_.bind(this,this.B_),this),this.A_.Uo().i(this.L_.bind(this,this.A_),this),this.z_(n)}z_(t){if(t.leftPriceScale&&this.B_.vr(t.leftPriceScale),t.rightPriceScale&&this.A_.vr(t.rightPriceScale),t.localization&&(this.B_.vl(),this.A_.vl()),t.overlayPriceScales){const i=Array.from(this.P_.values());for(const n of i){const i=u(n[0].Ft());i.vr(t.overlayPriceScales),t.localization&&i.vl()}}}O_(t){switch(t){case\"left\":return this.B_;case\"right\":return this.A_}return this.P_.has(t)?_(this.P_.get(t))[0].Ft():null}m(){this.Qt().N_().u(this),this.B_.Uo().u(this),this.A_.Uo().u(this),this.bo.forEach((t=>{t.m&&t.m()})),this.fa=this.fa.filter((t=>{const i=t.Qh();return i.detached&&i.detached(),!1})),this.I_.p()}F_(){return this.T_}W_(t){this.T_=t}Qt(){return this.sn}nn(){return this.k_}$t(){return this.oo}H_(t){this.k_=t,this.U_()}$o(t){this.oo=t,this.B_.$o(t),this.A_.$o(t),this.bo.forEach((i=>{if(this.Gs(i)){const n=i.Ft();null!==n&&n.$o(t)}})),this.U_()}j_(t){this.D_=t}q_(){return this.D_}Y_(){return this.bo.filter(yi)}kl(){return this.bo}Gs(t){const i=t.Ft();return null===i||this.B_!==i&&this.A_!==i}h_(t,i,n){this.K_(t,i,n?t.ln():this.bo.length)}l_(t,i){const n=this.bo.indexOf(t);o(-1!==n,\"removeDataSource: invalid data source\"),this.bo.splice(n,1),i||this.bo.forEach(((t,i)=>t._n(i)));const s=u(t.Ft()).pl();if(this.P_.has(s)){const i=_(this.P_.get(s)),n=i.indexOf(t);-1!==n&&(i.splice(n,1),0===i.length&&this.P_.delete(s))}const e=t.Ft();e&&e.kl().indexOf(t)>=0&&(e.l_(t),this.G_(e)),this.Z_()}Xs(t){return t===this.B_?\"left\":t===this.A_?\"right\":\"overlay\"}X_(){return this.B_}J_(){return this.A_}Q_(t,i){t.u_(i)}tu(t,i){t.c_(i),this.U_()}iu(t){t.d_()}nu(t,i){t.f_(i)}su(t,i){t.p_(i),this.U_()}eu(t){t.v_()}U_(){this.bo.forEach((t=>{t.Nn()}))}kn(){const[t,i]=this.ru();let n=null;return t.N().visible&&0!==t.kl().length?n=t:i.N().visible&&0!==i.kl().length?n=i:0!==this.bo.length&&(n=this.bo[0].Ft()),null===n&&(n=this.Zs()??t),n}Zs(){const[t,i]=this.ru();return t.N().visible?t:i.N().visible?i:null}G_(t){null!==t&&t.zo()&&this.hu(t)}au(t){const i=this.ia.Ee();t.Ao({hs:!0}),null!==i&&t.b_(i),this.U_()}lu(){this.hu(this.B_),this.hu(this.A_)}ou(){this.G_(this.B_),this.G_(this.A_),this.bo.forEach((t=>{this.Gs(t)&&this.G_(t.Ft())})),this.U_(),this.sn.mr()}Dt(){return null===this.xo&&(this.xo=gi(this.bo)),this.xo}_u(){const t=this.Dt(),i=this.sn.cu()?.uu,n=this.sn.N().hoveredSeriesOnTop,s=this.R_;if(null!==s&&s.Kh===t&&s.du===i&&s.fu===n)return s.pu;const e=function(t,i,n){if(!n)return t;const s=t.indexOf(i);if(-1===s||s===t.length-1)return t;const e=[];for(let i=0;i<t.length;i++)i!==s&&e.push(t[i]);return e.push(t[s]),e}(t,i,n);return this.R_={Kh:t,du:i,fu:n,pu:e},e}vu(t,i){i=ni(i,0,this.bo.length-1);const n=this.bo.indexOf(t);o(-1!==n,\"setSeriesOrder: invalid data source\"),this.bo.splice(n,1),this.bo.splice(i,0,t),this.bo.forEach(((t,i)=>t._n(i))),this.Z_();for(const t of[this.B_,this.A_])t.a_(),t.vl();this.sn.mr()}Vt(){return this.Dt().filter(yi)}mu(){return this.I_}wu(){return this.V_}ol(t){this.fa.push(new Ft(t))}_l(t){this.fa=this.fa.filter((i=>i.Qh()!==t)),t.detached&&t.detached(),this.sn.mr()}Mu(){return this.fa}il(t,i){return this.fa.map((n=>n.Qs(t,i))).filter((t=>null!==t))}hu(t){const i=t.g_();if(i&&i.length>0&&!this.ia.Zi()){const i=this.ia.Ee();null!==i&&t.b_(i)}t.Nn()}K_(t,i,n){let s=this.O_(i);if(null===s&&(s=this.E_(i,this.sn.N().overlayPriceScales)),this.bo.splice(n,0,t),!Z(i)){const n=this.P_.get(i)||[];n.push(t),this.P_.set(i,n)}t._n(n),s.h_(t),t.un(s),this.G_(s),this.Z_()}Z_(){this.xo=null,this.R_=null}ru(){return\"left\"===this.sn.N().defaultVisiblePriceScaleId?[this.B_,this.A_]:[this.A_,this.B_]}L_(t,i,n){i._e!==n._e&&this.hu(t)}E_(t,i){const n={visible:!0,autoScale:!0,...M(i)},s=new Ci(t,n,this.sn.N().layout,this.sn.N().localization,this.sn.Xi());return s.$o(this.$t()),s}}function ki(t,i){return null===i||(2===t.se&&2!==i.se||(2!==i.se||2===t.se)&&(t.ne!==i.ne&&t.ne<i.ne))}function Ti(t){return{te:t.te,ie:t.ie}}function Ri(t){return{ne:t.distance??0,se:t.hitTestPriority??(\"marker\"===t.itemType?2:0),ee:t.itemType??\"primitive\",gu:t.cursorStyle,te:t.externalId}}function Di(t){return{uu:t.uu,bu:Ti(t.Su),gu:t.Su.gu,ee:t.Su.ee??\"primitive\"}}function Ii(t,i,n,s){let e=null;for(const r of t){let t=r.Qs?.(i,n,s)??null;if(null===t){const e=r.Tt(s);t=null!==e&&e.Qs?e.Qs(i,n):null}if(null!==t){const i={xu:r,Su:t};(null===e||ki(i.Su,e.Su))&&(e=i)}}return e}function Vi(t){return void 0!==t.jn}function Bi(t,i,n){const s=[t,...t.Dt()].reverse(),e=function(t,i,n){let s,e,r;for(const l of t){const t=l.il?.(i,n)??[];for(const i of t){const t=Ri(i);h=i.zOrder,a=s?.zOrder,(!a||\"top\"===h&&\"top\"!==a||\"normal\"===h&&\"bottom\"===a||i.zOrder===s?.zOrder&&void 0!==e&&ki(t,e)||i.zOrder===s?.zOrder&&void 0===e)&&(s=i,e=t,r=l)}}var h,a;return s&&r&&e?{Su:e,Cu:s,uu:r}:null}(s,i,n);if(\"top\"===e?.Cu.zOrder)return Di(e);let r=null,h=null;for(const a of s){if(e&&e.uu===a&&\"bottom\"!==e.Cu.zOrder&&!e.Cu.isBackground)return r??Di(e);if(Vi(a)){const s=Ii(a.jn(t),i,n,t);if(null!==s){const t={uu:a,xu:s.xu,bu:Ti(s.Su),gu:s.Su.gu,ee:s.Su.ee??\"primitive\"};(null===r||ki(s.Su,h))&&(r=t,h=s.Su)}}if(e&&e.uu===a&&\"bottom\"!==e.Cu.zOrder&&e.Cu.isBackground)return r??Di(e)}return null!==r?r:e?.Cu?Di(e):null}class Ei{constructor(t,i,n=50){this.Vs=0,this.Bs=1,this.Es=1,this.Ls=new Map,this.As=new Map,this.yu=t,this.Pu=i,this.zs=n}ku(t){const i=t.time,n=this.Pu.cacheKey(i),s=this.Ls.get(n);if(void 0!==s)return s.Tu;if(this.Vs===this.zs){const t=this.As.get(this.Es);this.As.delete(this.Es),this.Ls.delete(_(t)),this.Es++,this.Vs--}const e=this.yu(t);return this.Ls.set(n,{Tu:e,Ws:this.Bs}),this.As.set(this.Bs,n),this.Vs++,this.Bs++,e}}class Ai{constructor(t,i){o(t<=i,\"right should be >= left\"),this.Ru=t,this.Du=i}Na(){return this.Ru}bi(){return this.Du}Iu(){return this.Du-this.Ru+1}ze(t){return this.Ru<=t&&t<=this.Du}Ze(t){return this.Ru===t.Na()&&this.Du===t.bi()}}function Li(t,i){return null===t||null===i?t===i:t.Ze(i)}class zi{constructor(){this.Vu=new Map,this.Ls=null,this.Bu=!1}Eu(t){this.Bu=t,this.Ls=null}Au(t,i){this.Lu(i),this.Ls=null;for(let n=i;n<t.length;++n){const i=t[n];let s=this.Vu.get(i.timeWeight);void 0===s&&(s=[],this.Vu.set(i.timeWeight,s)),s.push({index:n,time:i.time,weight:i.timeWeight,originalTime:i.originalTime})}}zu(t,i,n,s,e){const r=Math.ceil(i/t);return null!==this.Ls&&this.Ls.Ou===r&&e===this.Ls.Nu&&n===this.Ls.Fu||(this.Ls={Nu:e,Fu:n,zl:this.Wu(r,n,s),Ou:r}),this.Ls.zl}Lu(t){if(0===t)return void this.Vu.clear();const i=[];this.Vu.forEach(((n,s)=>{t<=n[0].index?i.push(s):n.splice(Rt(n,t,(i=>i.index<t)),1/0)}));for(const t of i)this.Vu.delete(t)}Wu(t,i,n){let s=[];const e=t=>!i||n.has(t.index);for(const i of Array.from(this.Vu.keys()).sort(((t,i)=>i-t))){if(!this.Vu.get(i))continue;const n=s;s=[];const r=n.length;let h=0;const a=_(this.Vu.get(i)),l=a.length;let o=1/0,u=-1/0;for(let i=0;i<l;i++){const l=a[i],_=l.index;for(;h<r;){const t=n[h],i=t.index;if(!(i<_&&e(t))){o=i;break}h++,s.push(t),u=i,o=1/0}if(o-_>=t&&_-u>=t&&e(l))s.push(l),u=_;else if(this.Bu)return n}for(;h<r;h++)e(n[h])&&s.push(n[h])}return s}}class Oi{constructor(t){this.Hu=t}Uu(){return null===this.Hu?null:new Ai(Math.floor(this.Hu.Na()),Math.ceil(this.Hu.bi()))}$u(){return this.Hu}static ju(){return new Oi(null)}}function Ni(t,i){return t.weight>i.weight?t:i}class Fi{constructor(t,i,n,s){this.k_=0,this.qu=null,this.Yu=[],this.Po=null,this.yo=null,this.Ku=new zi,this.Gu=new Map,this.Zu=Oi.ju(),this.Xu=!0,this.Ju=new d,this.Qu=new d,this.tc=new d,this.nc=null,this.sc=null,this.ec=new Map,this.rc=-1,this.hc=[],this.ac=1,this.yn=i,this.Do=n,this.lc=i.rightOffset,this.oc=i.barSpacing,this.sn=t,this._c(i),this.Pu=s,this.uc(),this.Ku.Eu(i.uniformDistribution),this.cc(),this.dc()}N(){return this.yn}fc(t){f(this.Do,t),this.vc(),this.uc()}vr(t,i){f(this.yn,t),this.yn.fixLeftEdge&&this.mc(),this.yn.fixRightEdge&&this.wc(),void 0!==t.barSpacing&&this.sn.Ms(t.barSpacing),void 0!==t.rightOffset&&this.sn.gs(t.rightOffset),this._c(t),void 0===t.minBarSpacing&&void 0===t.maxBarSpacing||this.sn.Ms(t.barSpacing??this.oc),void 0!==t.ignoreWhitespaceIndices&&t.ignoreWhitespaceIndices!==this.yn.ignoreWhitespaceIndices&&this.dc(),this.vc(),this.uc(),void 0===t.enableConflation&&void 0===t.conflationThresholdFactor||this.cc(),this.tc.p()}Rn(t){return this.Yu[t]?.time??null}en(t){return this.Yu[t]??null}Mc(t,i){if(this.Yu.length<1)return null;if(this.Pu.key(t)>this.Pu.key(this.Yu[this.Yu.length-1].time))return i?this.Yu.length-1:null;const n=Rt(this.Yu,this.Pu.key(t),((t,i)=>this.Pu.key(t.time)<i));return this.Pu.key(t)<this.Pu.key(this.Yu[n].time)?i?n:null:n}Zi(){return 0===this.k_||0===this.Yu.length||null===this.qu}gc(){return this.Yu.length>0}Ee(){return this.bc(),this.Zu.Uu()}Sc(){return this.bc(),this.Zu.$u()}xc(){const t=this.Ee();if(null===t)return null;const i={from:t.Na(),to:t.bi()};return this.Cc(i)}Cc(t){const i=Math.round(t.from),n=Math.round(t.to),s=u(this.yc()),e=u(this.Pc());return{from:u(this.en(Math.max(s,i))),to:u(this.en(Math.min(e,n)))}}kc(t){return{from:u(this.Mc(t.from,!0)),to:u(this.Mc(t.to,!0))}}nn(){return this.k_}H_(t){if(!isFinite(t)||t<=0)return;if(this.k_===t)return;const i=this.Sc(),n=this.k_;if(this.k_=t,this.Xu=!0,this.yn.lockVisibleTimeRangeOnResize&&0!==n){const i=this.oc*t/n;this.oc=i}if(this.yn.fixLeftEdge&&null!==i&&i.Na()<=0){const i=n-t;this.lc-=Math.round(i/this.oc)+1,this.Xu=!0}this.Tc(),this.Rc()}jt(t){if(this.Zi()||!v(t))return 0;const i=this.Dc()+this.lc-t;return this.k_-(i+.5)*this.oc-1}Ic(t,i){const n=this.Dc(),s=void 0===i?0:i.from,e=void 0===i?t.length:i.to;for(let i=s;i<e;i++){const s=t[i].wt,e=n+this.lc-s,r=this.k_-(e+.5)*this.oc-1;t[i]._t=r}}Vc(t,i){const n=Math.ceil(this.Bc(t));return i&&this.yn.ignoreWhitespaceIndices&&!this.Ec(n)?this.Ac(n):n}gs(t){this.Xu=!0,this.lc=t,this.Rc(),this.sn.Lc(),this.sn.mr()}ml(){return this.oc}Ms(t){const i=this.oc;if(this.zc(t),void 0!==this.yn.rightOffsetPixels&&0!==i){const t=this.lc*i/this.oc;this.lc=t}this.Rc(),this.sn.Lc(),this.sn.mr()}Oc(){return this.lc}zl(){if(this.Zi())return null;if(null!==this.sc)return this.sc;const t=this.oc,i=5*(this.sn.N().layout.fontSize+4)/8*(this.yn.tickMarkMaxCharacterLength||8),n=Math.round(i/t),s=u(this.Ee()),e=Math.max(s.Na(),s.Na()-n),r=Math.max(s.bi(),s.bi()-n),h=this.Ku.zu(t,i,this.yn.ignoreWhitespaceIndices,this.ec,this.rc),a=this.yc()+n,l=this.Pc()-n,o=this.Nc(),_=this.yn.fixLeftEdge||o,c=this.yn.fixRightEdge||o;let d=0;for(const t of h){if(!(e<=t.index&&t.index<=r))continue;let n;d<this.hc.length?(n=this.hc[d],n.coord=this.jt(t.index),n.label=this.Fc(t),n.weight=t.weight):(n={needAlignCoordinate:!1,coord:this.jt(t.index),label:this.Fc(t),weight:t.weight},this.hc.push(n)),this.oc>i/2&&!o?n.needAlignCoordinate=!1:n.needAlignCoordinate=_&&t.index<=a||c&&t.index>=l,d++}return this.hc.length=d,this.sc=this.hc,this.hc}Wc(){let t;this.Xu=!0,this.Ms(this.yn.barSpacing),t=void 0!==this.yn.rightOffsetPixels?this.yn.rightOffsetPixels/this.ml():this.yn.rightOffset,this.gs(t)}Hc(t){this.Xu=!0,this.qu=t,this.Rc(),this.mc()}Uc(t,i){const n=this.Bc(t),s=this.ml(),e=s+i*(s/10);this.Ms(e),this.yn.rightBarStaysOnScroll||this.gs(this.Oc()+(n-this.Bc(t)))}u_(t){this.Po&&this.v_(),null===this.yo&&null===this.nc&&(this.Zi()||(this.yo=t,this.$c()))}c_(t){if(null===this.nc)return;const i=ni(this.k_-t,0,this.k_),n=ni(this.k_-u(this.yo),0,this.k_);0!==i&&0!==n&&this.Ms(this.nc.ml*i/n)}d_(){null!==this.yo&&(this.yo=null,this.jc())}f_(t){null===this.Po&&null===this.nc&&(this.Zi()||(this.Po=t,this.$c()))}p_(t){if(null===this.Po)return;const i=(this.Po-t)/this.ml();this.lc=u(this.nc).Oc+i,this.Xu=!0,this.Rc()}v_(){null!==this.Po&&(this.Po=null,this.jc())}qc(){this.Yc(this.yn.rightOffset)}Yc(t,i=400){if(!isFinite(t))throw new RangeError(\"offset is required and must be finite number\");if(!isFinite(i)||i<=0)throw new RangeError(\"animationDuration (optional) must be finite positive number\");const n=this.lc,s=performance.now();this.sn.ps({Kc:t=>(t-s)/i>=1,Gc:e=>{const r=(e-s)/i;return r>=1?t:n+(t-n)*r}})}Pt(t,i){this.Xu=!0,this.Yu=t,this.Ku.Au(t,i),this.Rc()}Zc(){return this.Ju}Xc(){return this.Qu}Jc(){return this.tc}Dc(){return this.qu||0}Qc(t,i){const n=t.Iu(),s=i&&this.yn.rightOffsetPixels||0;this.zc((this.k_-s)/n),this.lc=t.bi()-this.Dc(),i&&(this.lc=s?s/this.ml():this.yn.rightOffset),this.Rc(),this.Xu=!0,this.sn.Lc(),this.sn.mr()}td(){const t=this.yc(),i=this.Pc();if(null===t||null===i)return;const n=!this.yn.rightOffsetPixels&&this.yn.rightOffset||0;this.Qc(new Ai(t,i+n),!0)}nd(t){const i=new Ai(t.from,t.to);this.Qc(i)}rn(t){return void 0!==this.Do.timeFormatter?this.Do.timeFormatter(t.originalTime):this.Pu.formatHorzItem(t.time)}dc(){if(!this.yn.ignoreWhitespaceIndices)return;this.ec.clear();const t=this.sn.Jn();for(const i of t)for(const t of i.fl())this.ec.set(t,!0);this.rc++}sd(){return this.ac}Sl(){const t=1/(window.devicePixelRatio||1),i=this.yn.minBarSpacing;if(i>=t)return[1];const n=[1];let s=2;for(;s<=512;){i<t/s&&n.push(s),s*=2}return n}Nc(){const t=this.sn.N().handleScroll,i=this.sn.N().handleScale;return!(t.horzTouchDrag||t.mouseWheel||t.pressedMouseMove||t.vertTouchDrag||i.axisDoubleClickReset.time||i.axisPressedMouseMove.time||i.mouseWheel||i.pinch)}yc(){return 0===this.Yu.length?null:0}Pc(){return 0===this.Yu.length?null:this.Yu.length-1}ed(t){return(this.k_-1-t)/this.oc}Bc(t){const i=this.ed(t),n=this.Dc()+this.lc-i;return Math.round(1e6*n)/1e6}zc(t){const i=this.oc;this.oc=t,this.Tc(),i!==this.oc&&(this.Xu=!0,this.rd(),this.cc())}bc(){if(!this.Xu)return;if(this.Xu=!1,this.Zi())return void this.hd(Oi.ju());const t=this.Dc(),i=this.k_/this.oc,n=this.lc+t,s=new Ai(n-i+1,n);this.hd(new Oi(s))}Tc(){const t=ni(this.oc,this.ad(),this.ld());this.oc!==t&&(this.oc=t,this.Xu=!0)}ld(){return this.yn.maxBarSpacing>0?this.yn.maxBarSpacing:.5*this.k_}ad(){return this.yn.fixLeftEdge&&this.yn.fixRightEdge&&0!==this.Yu.length?this.k_/this.Yu.length:this.yn.minBarSpacing}cc(){if(!this.yn.enableConflation)return void(this.ac=1);const t=1/(window.devicePixelRatio||1)*(this.yn.conflationThresholdFactor??1);if(this.oc>=t)return void(this.ac=1);const i=t/this.oc,n=Math.pow(2,Math.floor(Math.log2(i)));this.ac=Math.min(n,512)}Rc(){const t=this.od();null!==t&&this.lc<t&&(this.lc=t,this.Xu=!0);const i=this._d();this.lc>i&&(this.lc=i,this.Xu=!0)}od(){const t=this.yc(),i=this.qu;if(null===t||null===i)return null;return t-i-1+(this.yn.fixLeftEdge?this.k_/this.oc:Math.min(2,this.Yu.length))}_d(){return this.yn.fixRightEdge?0:this.k_/this.oc-Math.min(2,this.Yu.length)}$c(){this.nc={ml:this.ml(),Oc:this.Oc()}}jc(){this.nc=null}Fc(t){let i=this.Gu.get(t.weight);return void 0===i&&(i=new Ei((t=>this.ud(t)),this.Pu),this.Gu.set(t.weight,i)),i.ku(t)}ud(t){return this.Pu.formatTickmark(t,this.Do)}hd(t){const i=this.Zu;this.Zu=t,Li(i.Uu(),this.Zu.Uu())||this.Ju.p(),Li(i.$u(),this.Zu.$u())||this.Qu.p(),this.rd()}rd(){this.sc=null}vc(){this.rd(),this.Gu.clear()}uc(){this.Pu.updateFormatter(this.Do)}mc(){if(!this.yn.fixLeftEdge)return;const t=this.yc();if(null===t)return;const i=this.Ee();if(null===i)return;const n=i.Na()-t;if(n<0){const t=this.lc-n-1;this.gs(t)}this.Tc()}wc(){this.Rc(),this.Tc()}Ec(t){return!this.yn.ignoreWhitespaceIndices||(this.ec.get(t)||!1)}Ac(t){const i=function*(t){const i=Math.round(t),n=i<t;let s=1;for(;;)n?(yield i+s,yield i-s):(yield i-s,yield i+s),s++}(t),n=this.Pc();for(;n;){const t=i.next().value;if(this.ec.get(t))return t;if(t<0||t>n)break}return t}_c(t){if(void 0!==t.rightOffsetPixels){const i=t.rightOffsetPixels/(t.barSpacing||this.oc);this.sn.gs(i)}}}var Wi,Hi,Ui,$i,ji;!function(t){t[t.OnTouchEnd=0]=\"OnTouchEnd\",t[t.OnNextTap=1]=\"OnNextTap\"}(Wi||(Wi={}));class qi{constructor(t,i,n){this.dd=[],this.fd=[],this.pd=null,this.k_=0,this.vd=null,this.md=new d,this.wd=new d,this.Md=null,this.gd=t,this.yn=i,this.Pu=n,this.Io=new k(this.yn.layout.colorParsers),this.bd=new C(this),this.ia=new Fi(this,i.timeScale,this.yn.localization,n),this.Ct=new G(this,i.crosshair),this.Sd=new ii(i.crosshair),i.addDefaultPane&&(this.xd(0),this.dd[0].W_(2)),this.Cd=this.yd(0),this.Pd=this.yd(1)}ka(){this.kd(X.ys())}mr(){this.kd(X.Cs())}Ya(){this.kd(new X(1))}Ta(t){const i=this.Td(t);this.kd(i)}cu(){return this.vd}Rd(t){if(this.vd?.uu===t?.uu&&this.vd?.bu?.te===t?.bu?.te&&this.vd?.bu?.ie===t?.bu?.ie&&this.vd?.gu===t?.gu&&this.vd?.ee===t?.ee)return;const i=this.vd;this.vd=t,null!==i&&this.Ta(i.uu),null!==t&&t.uu!==i?.uu&&this.Ta(t.uu)}N(){return this.yn}vr(t){f(this.yn,t),this.dd.forEach((i=>i.z_(t))),void 0!==t.timeScale&&this.ia.vr(t.timeScale),void 0!==t.localization&&this.ia.fc(t.localization),(t.leftPriceScale||t.rightPriceScale)&&this.md.p(),this.Cd=this.yd(0),this.Pd=this.yd(1),this.ka()}Dd(t,i,n=0){const s=this.dd[n];if(void 0===s)return;if(\"left\"===t)return f(this.yn,{leftPriceScale:i}),s.z_({leftPriceScale:i}),this.md.p(),void this.ka();if(\"right\"===t)return f(this.yn,{rightPriceScale:i}),s.z_({rightPriceScale:i}),this.md.p(),void this.ka();const e=this.Id(t,n);null!==e&&(e.Ft.vr(i),this.md.p())}Id(t,i){const n=this.dd[i];if(void 0===n)return null;const s=n.O_(t);return null!==s?{Kn:n,Ft:s}:null}Et(){return this.ia}Gn(){return this.dd}Vd(){return this.Ct}Bd(){return this.wd}Ed(t,i){t.$o(i),this.Lc()}H_(t){this.k_=t,this.ia.H_(this.k_),this.dd.forEach((i=>i.H_(t))),this.Lc()}Ad(t){1!==this.dd.length&&(o(t>=0&&t<this.dd.length,\"Invalid pane index\"),this.dd.splice(t,1),this.ka())}Ld(t,i){if(this.dd.length<2)return;o(t>=0&&t<this.dd.length,\"Invalid pane index\");const n=this.dd[t],s=this.dd.reduce(((t,i)=>t+i.F_()),0),e=this.dd.reduce(((t,i)=>t+i.$t()),0),r=e-30*(this.dd.length-1);i=Math.min(r,Math.max(30,i));const h=s/e,a=n.$t();n.W_(i*h);let l=i-a,_=this.dd.length-1;for(const t of this.dd)if(t!==n){const i=Math.min(r,Math.max(30,t.$t()-l/_));l-=t.$t()-i,_-=1;const n=i*h;t.W_(n)}this.ka()}zd(t,i){o(t>=0&&t<this.dd.length&&i>=0&&i<this.dd.length,\"Invalid pane index\");const n=this.dd[t],s=this.dd[i];this.dd[t]=s,this.dd[i]=n,this.ka()}Od(t,i){if(o(t>=0&&t<this.dd.length&&i>=0&&i<this.dd.length,\"Invalid pane index\"),t===i)return;const[n]=this.dd.splice(t,1);this.dd.splice(i,0,n),this.ka()}Q_(t,i,n){t.Q_(i,n)}tu(t,i,n){t.tu(i,n),this.Ra(),this.kd(this.Nd(t,2))}iu(t,i){t.iu(i),this.kd(this.Nd(t,2))}nu(t,i,n){i.zo()||t.nu(i,n)}su(t,i,n){i.zo()||(t.su(i,n),this.Ra(),this.kd(this.Nd(t,2)))}eu(t,i){i.zo()||(t.eu(i),this.kd(this.Nd(t,2)))}au(t,i){t.au(i),this.kd(this.Nd(t,2))}Fd(t){this.ia.u_(t)}Wd(t,i){const n=this.Et();if(n.Zi()||0===i)return;const s=n.nn();t=Math.max(1,Math.min(t,s)),n.Uc(t,i),this.Lc()}Hd(t){this.Ud(0),this.$d(t),this.jd()}qd(t){this.ia.c_(t),this.Lc()}Yd(){this.ia.d_(),this.mr()}Ud(t){this.ia.f_(t)}$d(t){this.ia.p_(t),this.Lc()}jd(){this.ia.v_(),this.mr()}Jn(){return this.fd}Wn(){return null===this.pd&&(this.pd=this.fd.filter((t=>t.It()))),this.pd}Pa(){this.pd=null}Kd(t,i,n,s,e){this.Ct.In(t,i);let r=NaN,h=this.ia.Vc(t,!0);const a=this.ia.Ee();null!==a&&(h=Math.min(Math.max(a.Na(),h),a.bi())),h=this.Ct.Fn(h);const l=s.kn(),o=l.Lt();if(null!==o&&(r=l.Tn(i,o)),r=this.Sd.Pl(r,h,s),this.Ct.An(h,r,s),this.Ya(),!e){const e=Bi(s,t,i);this.Rd(e&&{uu:e.uu,bu:e.bu,gu:e.gu||null,ee:e.ee}),this.wd.p(this.Ct.Bt(),{x:t,y:i},n)}}Gd(t,i,n){const s=n.kn(),e=s.Lt(),r=s.Nt(t,u(e)),h=this.ia.Mc(i,!0),a=this.ia.jt(u(h));this.Kd(a,r,null,n,!0)}Zd(t){this.Vd().zn(),this.Ya(),t||this.wd.p(null,null,null)}Ra(){const t=this.Ct.Kn();if(null!==t){const i=this.Ct.Bn(),n=this.Ct.En();this.Kd(i,n,null,t)}this.Ct.Nn()}Xd(t,i,n){const s=this.ia.Rn(0);void 0!==i&&void 0!==n&&this.ia.Pt(i,n);const e=this.ia.Rn(0),r=this.ia.Dc(),h=this.ia.Ee();if(null!==h&&null!==s&&null!==e){const i=h.ze(r),a=this.Pu.key(s)>this.Pu.key(e),l=null!==t&&t>r&&!a,o=this.ia.N().allowShiftVisibleRangeOnWhitespaceReplacement,_=i&&(!(void 0===n)||o)&&this.ia.N().shiftVisibleRangeOnNewBar;if(l&&!_){const i=t-r;this.ia.gs(this.ia.Oc()-i)}}this.ia.Hc(t)}Ba(t){null!==t&&t.ou()}Ks(t){if(function(t){return t instanceof Pi}(t))return t;const i=this.dd.find((i=>i.Dt().includes(t)));return void 0===i?null:i}Lc(){this.dd.forEach((t=>t.ou())),this.Ra()}m(){this.dd.forEach((t=>t.m())),this.dd.length=0,this.yn.localization.priceFormatter=void 0,this.yn.localization.percentageFormatter=void 0,this.yn.localization.timeFormatter=void 0}Jd(){return this.bd}Js(){return this.bd.N()}N_(){return this.md}Qd(t,i){const n=this.xd(i);this.tf(t,n),this.fd.push(t),this.Pa(),1===this.fd.length?this.ka():this.mr()}if(t){const i=this.Ks(t),n=this.fd.indexOf(t);o(-1!==n,\"Series not found\");const s=u(i);this.fd.splice(n,1),s.l_(t),t.m&&t.m(),this.Pa(),this.ia.dc(),this.nf(s)}ya(t,i){const n=u(this.Ks(t));n.l_(t,!0),n.h_(t,i,!0)}td(){const t=X.Cs();t.us(),this.kd(t)}sf(t){const i=X.Cs();i.fs(t),this.kd(i)}ws(){const t=X.Cs();t.ws(),this.kd(t)}Ms(t){const i=X.Cs();i.Ms(t),this.kd(i)}gs(t){const i=X.Cs();i.gs(t),this.kd(i)}ps(t){const i=X.Cs();i.ps(t),this.kd(i)}cs(){const t=X.Cs();t.cs(),this.kd(t)}ef(){const t=this.yn.defaultVisiblePriceScaleId,i=this.yn.leftPriceScale.visible;return i!==this.yn.rightPriceScale.visible?i?\"left\":\"right\":t}rf(t,i){o(i>=0,\"Index should be greater or equal to 0\");if(i===this.hf(t))return;const n=u(this.Ks(t));n.l_(t);const s=this.xd(i);this.tf(t,s);let e=!1;0===n.kl().length&&(e=this.nf(n)),e||this.ka()}af(){return this.Pd}$(){return this.Cd}Ut(t){const i=this.Pd,n=this.Cd;if(i===n)return i;if(t=Math.max(0,Math.min(100,Math.round(100*t))),null===this.Md||this.Md.ah!==n||this.Md.oh!==i)this.Md={ah:n,oh:i,lf:new Map};else{const i=this.Md.lf.get(t);if(void 0!==i)return i}const s=this.Io.tt(n,i,t/100);return this.Md.lf.set(t,s),s}_f(t){return this.dd.indexOf(t)}Xi(){return this.Io}uf(){return this.cf()}cf(t){const i=new Pi(this.ia,this);this.dd.push(i);const n=t??this.dd.length-1,s=X.ys();return s.es(n,{rs:0,hs:!0}),this.kd(s),i}xd(t){return o(t>=0,\"Index should be greater or equal to 0\"),(t=Math.min(this.dd.length,t))<this.dd.length?this.dd[t]:this.cf(t)}hf(t){return this.dd.findIndex((i=>i.Y_().includes(t)))}Nd(t,i){const n=new X(i);if(null!==t){const s=this.dd.indexOf(t);n.es(s,{rs:i})}return n}Td(t,i){return void 0===i&&(i=2),this.Nd(this.Ks(t),i)}kd(t){this.gd&&this.gd(t),this.dd.forEach((t=>t.wu().wr().Pt()))}tf(t,i){const n=t.N().priceScaleId,s=void 0!==n?n:this.ef();i.h_(t,s),Z(s)||t.vr(t.N())}yd(t){const i=this.yn.layout;return\"gradient\"===i.background.type?0===t?i.background.topColor:i.background.bottomColor:i.background.color}nf(t){return!t.q_()&&0===t.kl().length&&this.dd.length>1&&(this.dd.splice(this._f(t),1),this.ka(),!0)}}function Yi(t){if(t>=1)return 0;let i=0;for(;i<8;i++){const n=Math.round(t);if(Math.abs(n-t)<1e-8)return i;t*=10}return i}function Ki(t){return!p(t)&&!m(t)}function Gi(t){return p(t)}!function(t){t[t.Disabled=0]=\"Disabled\",t[t.Continuous=1]=\"Continuous\",t[t.OnDataUpdate=2]=\"OnDataUpdate\"}(Hi||(Hi={})),function(t){t[t.LastBar=0]=\"LastBar\",t[t.LastVisible=1]=\"LastVisible\"}(Ui||(Ui={})),function(t){t.Solid=\"solid\",t.VerticalGradient=\"gradient\"}($i||($i={})),function(t){t[t.Year=0]=\"Year\",t[t.Month=1]=\"Month\",t[t.DayOfMonth=2]=\"DayOfMonth\",t[t.Time=3]=\"Time\",t[t.TimeWithSeconds=4]=\"TimeWithSeconds\"}(ji||(ji={}));const Zi=t=>t.getUTCFullYear();function Xi(t,i,n){return i.replace(/yyyy/g,(t=>tt(Zi(t),4))(t)).replace(/yy/g,(t=>tt(Zi(t)%100,2))(t)).replace(/MMMM/g,((t,i)=>new Date(t.getUTCFullYear(),t.getUTCMonth(),1).toLocaleString(i,{month:\"long\"}))(t,n)).replace(/MMM/g,((t,i)=>new Date(t.getUTCFullYear(),t.getUTCMonth(),1).toLocaleString(i,{month:\"short\"}))(t,n)).replace(/MM/g,(t=>tt((t=>t.getUTCMonth()+1)(t),2))(t)).replace(/dd/g,(t=>tt((t=>t.getUTCDate())(t),2))(t))}class Ji{constructor(t=\"yyyy-MM-dd\",i=\"default\"){this.df=t,this.ff=i}ku(t){return Xi(t,this.df,this.ff)}}class Qi{constructor(t){this.pf=t||\"%h:%m:%s\"}ku(t){return this.pf.replace(\"%h\",tt(t.getUTCHours(),2)).replace(\"%m\",tt(t.getUTCMinutes(),2)).replace(\"%s\",tt(t.getUTCSeconds(),2))}}const tn={vf:\"yyyy-MM-dd\",mf:\"%h:%m:%s\",wf:\" \",Mf:\"default\"};class nn{constructor(t={}){const i={...tn,...t};this.gf=new Ji(i.vf,i.Mf),this.bf=new Qi(i.mf),this.Sf=i.wf}ku(t){return`${this.gf.ku(t)}${this.Sf}${this.bf.ku(t)}`}}function sn(t){return 60*t*60*1e3}function en(t){return 60*t*1e3}const rn=[{xf:(hn=1,1e3*hn),Cf:10},{xf:en(1),Cf:20},{xf:en(5),Cf:21},{xf:en(30),Cf:22},{xf:sn(1),Cf:30},{xf:sn(3),Cf:31},{xf:sn(6),Cf:32},{xf:sn(12),Cf:33}];var hn;function an(t,i){if(t.getUTCFullYear()!==i.getUTCFullYear())return 70;if(t.getUTCMonth()!==i.getUTCMonth())return 60;if(t.getUTCDate()!==i.getUTCDate())return 50;for(let n=rn.length-1;n>=0;--n)if(Math.floor(i.getTime()/rn[n].xf)!==Math.floor(t.getTime()/rn[n].xf))return rn[n].Cf;return 0}function ln(t){let i=t;if(m(t)&&(i=_n(t)),!Ki(i))throw new Error(\"time must be of type BusinessDay\");const n=new Date(Date.UTC(i.year,i.month-1,i.day,0,0,0,0));return{yf:Math.round(n.getTime()/1e3),Pf:i}}function on(t){if(!Gi(t))throw new Error(\"time must be of type isUTCTimestamp\");return{yf:t}}function _n(t){const i=new Date(t);if(isNaN(i.getTime()))throw new Error(`Invalid date string=${t}, expected format=yyyy-mm-dd`);return{day:i.getUTCDate(),month:i.getUTCMonth()+1,year:i.getUTCFullYear()}}function un(t){m(t.time)&&(t.time=_n(t.time))}class cn{options(){return this.yn}setOptions(t){this.yn=t,this.updateFormatter(t.localization)}preprocessData(t){Array.isArray(t)?function(t){t.forEach(un)}(t):un(t)}createConverterToInternalObj(t){return u(function(t){return 0===t.length?null:Ki(t[0].time)||m(t[0].time)?ln:on}(t))}key(t){return\"object\"==typeof t&&\"yf\"in t?t.yf:this.key(this.convertHorzItemToInternal(t))}cacheKey(t){const i=t;return void 0===i.Pf?new Date(1e3*i.yf).getTime():new Date(Date.UTC(i.Pf.year,i.Pf.month-1,i.Pf.day)).getTime()}convertHorzItemToInternal(t){return Gi(i=t)?on(i):Ki(i)?ln(i):ln(_n(i));var i}updateFormatter(t){if(!this.yn)return;const i=t.dateFormat;this.yn.timeScale.timeVisible?this.kf=new nn({vf:i,mf:this.yn.timeScale.secondsVisible?\"%h:%m:%s\":\"%h:%m\",wf:\" \",Mf:t.locale}):this.kf=new Ji(i,t.locale)}formatHorzItem(t){const i=t;return this.kf.ku(new Date(1e3*i.yf))}formatTickmark(t,i){const n=function(t,i,n){switch(t){case 0:case 10:return i?n?4:3:2;case 20:case 21:case 22:case 30:case 31:case 32:case 33:return i?3:2;case 50:return 2;case 60:return 1;case 70:return 0}}(t.weight,this.yn.timeScale.timeVisible,this.yn.timeScale.secondsVisible),s=this.yn.timeScale;if(void 0!==s.tickMarkFormatter){const e=s.tickMarkFormatter(t.originalTime,n,i.locale);if(null!==e)return e}return function(t,i,n){const s={};switch(i){case 0:s.year=\"numeric\";break;case 1:s.month=\"short\";break;case 2:s.day=\"numeric\";break;case 3:s.hour12=!1,s.hour=\"2-digit\",s.minute=\"2-digit\";break;case 4:s.hour12=!1,s.hour=\"2-digit\",s.minute=\"2-digit\",s.second=\"2-digit\"}const e=void 0===t.Pf?new Date(1e3*t.yf):new Date(Date.UTC(t.Pf.year,t.Pf.month-1,t.Pf.day));return new Date(e.getUTCFullYear(),e.getUTCMonth(),e.getUTCDate(),e.getUTCHours(),e.getUTCMinutes(),e.getUTCSeconds(),e.getUTCMilliseconds()).toLocaleString(n,s)}(t.time,n,i.locale)}maxTickMarkWeight(t){let i=t.reduce(Ni,t[0]).weight;return i>30&&i<50&&(i=30),i}fillWeightsForPoints(t,i){!function(t,i=0){if(0===t.length)return;let n=0===i?null:t[i-1].time.yf,s=null!==n?new Date(1e3*n):null,e=0;for(let r=i;r<t.length;++r){const i=t[r],h=new Date(1e3*i.time.yf);null!==s&&(i.timeWeight=an(h,s)),e+=i.time.yf-(n||i.time.yf),n=i.time.yf,s=h}if(0===i&&t.length>1){const i=Math.ceil(e/(t.length-1)),n=new Date(1e3*(t[0].time.yf-i));t[0].timeWeight=an(new Date(1e3*t[0].time.yf),n)}}(t,i)}static Tf(t){return f({localization:{dateFormat:\"dd MMM 'yy\"}},t??{})}}const dn=\"undefined\"!=typeof window;function fn(){return!!dn&&window.navigator.userAgent.toLowerCase().indexOf(\"firefox\")>-1}function pn(){return!!dn&&/iPhone|iPad|iPod/.test(window.navigator.platform)}function vn(t,i){switch(t){case\"custom\":return void 0!==i?\"custom-object\":\"series\";case\"price-line\":return\"custom-price-line\";case\"marker\":return\"series-marker\";case\"primitive\":return\"primitive\";default:return\"series\"}}function mn(t){return t+t%2}function wn(t){dn&&void 0!==window.chrome&&t.addEventListener(\"mousedown\",(t=>{if(1===t.button)return t.preventDefault(),!1}))}class Mn{constructor(t,i,n){this.Rf=0,this.Df=null,this.If={_t:Number.NEGATIVE_INFINITY,ut:Number.POSITIVE_INFINITY},this.Vf=0,this.Bf=null,this.Ef={_t:Number.NEGATIVE_INFINITY,ut:Number.POSITIVE_INFINITY},this.Af=null,this.Lf=!1,this.zf=null,this.Of=null,this.Nf=!1,this.Ff=!1,this.Wf=!1,this.Hf=null,this.Uf=null,this.$f=null,this.jf=null,this.qf=null,this.Yf=null,this.Kf=null,this.Gf=0,this.Zf=!1,this.Xf=!1,this.Jf=!1,this.Qf=0,this.tp=null,this.ip=!pn(),this.np=t=>{this.sp(t)},this.ep=t=>{if(this.rp(t)){const i=this.hp(t);if(++this.Vf,this.Bf&&this.Vf>1){const{ap:n}=this.lp(Sn(t),this.Ef);n<30&&!this.Wf&&this.op(i,this.up._p),this.cp()}}else{const i=this.hp(t);if(++this.Rf,this.Df&&this.Rf>1){const{ap:n}=this.lp(Sn(t),this.If);n<5&&!this.Ff&&this.dp(i,this.up.fp),this.pp()}}},this.vp=t,this.up=i,this.yn=n,this.mp()}m(){null!==this.Hf&&(this.Hf(),this.Hf=null),null!==this.Uf&&(this.Uf(),this.Uf=null),null!==this.jf&&(this.jf(),this.jf=null),null!==this.qf&&(this.qf(),this.qf=null),null!==this.Yf&&(this.Yf(),this.Yf=null),null!==this.$f&&(this.$f(),this.$f=null),this.wp(),this.pp()}Mp(t){this.jf&&this.jf();const i=this.gp.bind(this);if(this.jf=()=>{this.vp.removeEventListener(\"mousemove\",i)},this.vp.addEventListener(\"mousemove\",i),this.rp(t))return;const n=this.hp(t);this.dp(n,this.up.bp),this.ip=!0}pp(){null!==this.Df&&clearTimeout(this.Df),this.Rf=0,this.Df=null,this.If={_t:Number.NEGATIVE_INFINITY,ut:Number.POSITIVE_INFINITY}}cp(){null!==this.Bf&&clearTimeout(this.Bf),this.Vf=0,this.Bf=null,this.Ef={_t:Number.NEGATIVE_INFINITY,ut:Number.POSITIVE_INFINITY}}gp(t){if(this.Jf||null!==this.Of)return;if(this.rp(t))return;const i=this.hp(t);this.dp(i,this.up.Sp),this.ip=!0}xp(t){const i=Cn(t.changedTouches,u(this.tp));if(null===i)return;if(this.Qf=xn(t),null!==this.Kf)return;if(this.Xf)return;this.Zf=!0;const n=this.lp(Sn(i),u(this.Of)),{Cp:s,yp:e,ap:r}=n;if(this.Nf||!(r<5)){if(!this.Nf){const t=.5*s,i=e>=t&&!this.yn.Pp(),n=t>e&&!this.yn.kp();i||n||(this.Xf=!0),this.Nf=!0,this.Wf=!0,this.wp(),this.cp()}if(!this.Xf){const n=this.hp(t,i);this.op(n,this.up.Tp),bn(t)}}}Rp(t){if(0!==t.button)return;const i=this.lp(Sn(t),u(this.zf)),{ap:n}=i;if(n>=5&&(this.Ff=!0,this.pp()),this.Ff){const i=this.hp(t);this.dp(i,this.up.Dp)}}lp(t,i){const n=Math.abs(i._t-t._t),s=Math.abs(i.ut-t.ut);return{Cp:n,yp:s,ap:n+s}}Ip(t){let i=Cn(t.changedTouches,u(this.tp));if(null===i&&0===t.touches.length&&(i=t.changedTouches[0]),null===i)return;this.tp=null,this.Qf=xn(t),this.wp(),this.Of=null,this.Yf&&(this.Yf(),this.Yf=null);const n=this.hp(t,i);if(this.op(n,this.up.Vp),++this.Vf,this.Bf&&this.Vf>1){const{ap:t}=this.lp(Sn(i),this.Ef);t<30&&!this.Wf&&this.op(n,this.up._p),this.cp()}else this.Wf||(this.op(n,this.up.Bp),this.up.Bp&&bn(t));0===this.Vf&&bn(t),0===t.touches.length&&this.Lf&&(this.Lf=!1,bn(t))}sp(t){if(0!==t.button)return;const i=this.hp(t);if(this.zf=null,this.Jf=!1,this.qf&&(this.qf(),this.qf=null),fn()){this.vp.ownerDocument.documentElement.removeEventListener(\"mouseleave\",this.np)}if(!this.rp(t))if(this.dp(i,this.up.Ep),++this.Rf,this.Df&&this.Rf>1){const{ap:n}=this.lp(Sn(t),this.If);n<5&&!this.Ff&&this.dp(i,this.up.fp),this.pp()}else this.Ff||this.dp(i,this.up.Ap)}wp(){null!==this.Af&&(clearTimeout(this.Af),this.Af=null)}Lp(t){if(null!==this.tp)return;const i=t.changedTouches[0];this.tp=i.identifier,this.Qf=xn(t);const n=this.vp.ownerDocument.documentElement;this.Wf=!1,this.Nf=!1,this.Xf=!1,this.Of=Sn(i),this.Yf&&(this.Yf(),this.Yf=null);{const i=this.xp.bind(this),s=this.Ip.bind(this);this.Yf=()=>{n.removeEventListener(\"touchmove\",i),n.removeEventListener(\"touchend\",s)},n.addEventListener(\"touchmove\",i,{passive:!1}),n.addEventListener(\"touchend\",s,{passive:!1}),this.wp(),this.Af=setTimeout(this.zp.bind(this,t),240)}const s=this.hp(t,i);this.op(s,this.up.Op),this.Bf||(this.Vf=0,this.Bf=setTimeout(this.cp.bind(this),500),this.Ef=Sn(i))}Np(t){if(0!==t.button)return;const i=this.vp.ownerDocument.documentElement;fn()&&i.addEventListener(\"mouseleave\",this.np),this.Ff=!1,this.zf=Sn(t),this.qf&&(this.qf(),this.qf=null);{const t=this.Rp.bind(this),n=this.sp.bind(this);this.qf=()=>{i.removeEventListener(\"mousemove\",t),i.removeEventListener(\"mouseup\",n)},i.addEventListener(\"mousemove\",t),i.addEventListener(\"mouseup\",n)}if(this.Jf=!0,this.rp(t))return;const n=this.hp(t);this.dp(n,this.up.Fp),this.Df||(this.Rf=0,this.Df=setTimeout(this.pp.bind(this),500),this.If=Sn(t))}mp(){this.vp.addEventListener(\"mouseenter\",this.Mp.bind(this)),this.vp.addEventListener(\"touchcancel\",this.wp.bind(this));{const t=this.vp.ownerDocument,i=t=>{this.up.Wp&&(t.composed&&this.vp.contains(t.composedPath()[0])||t.target&&this.vp.contains(t.target)||this.up.Wp())};this.Uf=()=>{t.removeEventListener(\"touchstart\",i)},this.Hf=()=>{t.removeEventListener(\"mousedown\",i)},t.addEventListener(\"mousedown\",i),t.addEventListener(\"touchstart\",i,{passive:!0})}pn()&&(this.$f=()=>{this.vp.removeEventListener(\"dblclick\",this.ep)},this.vp.addEventListener(\"dblclick\",this.ep)),this.vp.addEventListener(\"mouseleave\",this.Hp.bind(this)),this.vp.addEventListener(\"touchstart\",this.Lp.bind(this),{passive:!0}),wn(this.vp),this.vp.addEventListener(\"mousedown\",this.Np.bind(this)),this.Up(),this.vp.addEventListener(\"touchmove\",(()=>{}),{passive:!1})}Up(){void 0===this.up.$p&&void 0===this.up.jp&&void 0===this.up.qp||(this.vp.addEventListener(\"touchstart\",(t=>this.Yp(t.touches)),{passive:!0}),this.vp.addEventListener(\"touchmove\",(t=>{if(2===t.touches.length&&null!==this.Kf&&void 0!==this.up.jp){const i=gn(t.touches[0],t.touches[1])/this.Gf;this.up.jp(this.Kf,i),bn(t)}}),{passive:!1}),this.vp.addEventListener(\"touchend\",(t=>{this.Yp(t.touches)})))}Yp(t){1===t.length&&(this.Zf=!1),2!==t.length||this.Zf||this.Lf?this.Kp():this.Gp(t)}Gp(t){const i=this.vp.getBoundingClientRect()||{left:0,top:0};this.Kf={_t:(t[0].clientX-i.left+(t[1].clientX-i.left))/2,ut:(t[0].clientY-i.top+(t[1].clientY-i.top))/2},this.Gf=gn(t[0],t[1]),void 0!==this.up.$p&&this.up.$p(),this.wp()}Kp(){null!==this.Kf&&(this.Kf=null,void 0!==this.up.qp&&this.up.qp())}Hp(t){if(this.jf&&this.jf(),this.rp(t))return;if(!this.ip)return;const i=this.hp(t);this.dp(i,this.up.Zp),this.ip=!pn()}zp(t){const i=Cn(t.touches,u(this.tp));if(null===i)return;const n=this.hp(t,i);this.op(n,this.up.Xp),this.Wf=!0,this.Lf=!0}rp(t){return t.sourceCapabilities&&void 0!==t.sourceCapabilities.firesTouchEvents?t.sourceCapabilities.firesTouchEvents:xn(t)<this.Qf+500}op(t,i){i&&i.call(this.up,t)}dp(t,i){i&&i.call(this.up,t)}hp(t,i){const n=i||t,s=this.vp.getBoundingClientRect()||{left:0,top:0};return{clientX:n.clientX,clientY:n.clientY,pageX:n.pageX,pageY:n.pageY,screenX:n.screenX,screenY:n.screenY,localX:n.clientX-s.left,localY:n.clientY-s.top,ctrlKey:t.ctrlKey,altKey:t.altKey,shiftKey:t.shiftKey,metaKey:t.metaKey,Jp:!t.type.startsWith(\"mouse\")&&\"contextmenu\"!==t.type&&\"click\"!==t.type,Qp:t.type,tv:n.target,xu:t.view,iv:()=>{\"touchstart\"!==t.type&&bn(t)}}}}function gn(t,i){const n=t.clientX-i.clientX,s=t.clientY-i.clientY;return Math.sqrt(n*n+s*s)}function bn(t){t.cancelable&&t.preventDefault()}function Sn(t){return{_t:t.pageX,ut:t.pageY}}function xn(t){return t.timeStamp||performance.now()}function Cn(t,i){for(let n=0;n<t.length;++n)if(t[n].identifier===i)return t[n];return null}class yn{constructor(t,i,n){this.nv=null,this.sv=null,this.ev=!0,this.rv=null,this.hv=t,this.av=t.lv()[i],this.ov=t.lv()[n],this._v=document.createElement(\"tr\"),this._v.style.height=\"1px\",this.uv=document.createElement(\"td\"),this.uv.style.position=\"relative\",this.uv.style.padding=\"0\",this.uv.style.margin=\"0\",this.uv.setAttribute(\"colspan\",\"3\"),this.cv(),this._v.appendChild(this.uv),this.ev=this.hv.N().layout.panes.enableResize,this.ev?this.dv():(this.nv=null,this.sv=null)}m(){null!==this.sv&&this.sv.m()}fv(){return this._v}pv(){return t({width:this.av.pv().width,height:1})}vv(){return t({width:this.av.vv().width,height:1*window.devicePixelRatio})}mv(t,i,n){const s=this.vv();t.fillStyle=this.hv.N().layout.panes.separatorColor,t.fillRect(i,n,s.width,s.height)}Pt(){this.cv(),this.hv.N().layout.panes.enableResize!==this.ev&&(this.ev=this.hv.N().layout.panes.enableResize,this.ev?this.dv():(null!==this.nv&&(this.uv.removeChild(this.nv.wv),this.uv.removeChild(this.nv.Mv),this.nv=null),null!==this.sv&&(this.sv.m(),this.sv=null)))}dv(){const t=document.createElement(\"div\"),i=t.style;i.position=\"fixed\",i.display=\"none\",i.zIndex=\"49\",i.top=\"0\",i.left=\"0\",i.width=\"100%\",i.height=\"100%\",i.cursor=\"row-resize\",this.uv.appendChild(t);const n=document.createElement(\"div\"),s=n.style;s.position=\"absolute\",s.zIndex=\"50\",s.top=\"-4px\",s.height=\"9px\",s.width=\"100%\",s.backgroundColor=\"\",s.cursor=\"row-resize\",this.uv.appendChild(n);const e={bp:this.gv.bind(this),Zp:this.bv.bind(this),Fp:this.Sv.bind(this),Op:this.Sv.bind(this),Dp:this.xv.bind(this),Tp:this.xv.bind(this),Ep:this.Cv.bind(this),Vp:this.Cv.bind(this)};this.sv=new Mn(n,e,{Pp:()=>!1,kp:()=>!0}),this.nv={Mv:n,wv:t}}cv(){this.uv.style.background=this.hv.N().layout.panes.separatorColor}gv(t){null!==this.nv&&(this.nv.Mv.style.backgroundColor=this.hv.N().layout.panes.separatorHoverColor)}bv(t){null!==this.nv&&null===this.rv&&(this.nv.Mv.style.backgroundColor=\"\")}Sv(t){if(null===this.nv)return;const i=this.av.yv().F_()+this.ov.yv().F_(),n=i/(this.av.pv().height+this.ov.pv().height),s=30*n;i<=2*s||(this.rv={Pv:t.pageY,kv:this.av.yv().F_(),Tv:i-s,Rv:i,Dv:n,Iv:s},this.nv.wv.style.display=\"block\")}xv(t){const i=this.rv;if(null===i)return;const n=(t.pageY-i.Pv)*i.Dv,s=ni(i.kv+n,i.Iv,i.Tv);this.av.yv().W_(s),this.ov.yv().W_(i.Rv-s),this.hv.Qt().ka()}Cv(t){null!==this.rv&&null!==this.nv&&(this.rv=null,this.nv.wv.style.display=\"none\")}}function Pn(t,i){return t.Vv-i.Vv}function kn(t,i,n){const s=(t.Vv-i.Vv)/(t.wt-i.wt);return Math.sign(s)*Math.min(Math.abs(s),n)}class Tn{constructor(t,i,n,s){this.Bv=null,this.Ev=null,this.Av=null,this.Lv=null,this.zv=null,this.Ov=0,this.Nv=0,this.Fv=t,this.Wv=i,this.Hv=n,this.Ps=s}Uv(t,i){if(null!==this.Bv){if(this.Bv.wt===i)return void(this.Bv.Vv=t);if(Math.abs(this.Bv.Vv-t)<this.Ps)return}this.Lv=this.Av,this.Av=this.Ev,this.Ev=this.Bv,this.Bv={wt:i,Vv:t}}me(t,i){if(null===this.Bv||null===this.Ev)return;if(i-this.Bv.wt>50)return;let n=0;const s=kn(this.Bv,this.Ev,this.Wv),e=Pn(this.Bv,this.Ev),r=[s],h=[e];if(n+=e,null!==this.Av){const t=kn(this.Ev,this.Av,this.Wv);if(Math.sign(t)===Math.sign(s)){const i=Pn(this.Ev,this.Av);if(r.push(t),h.push(i),n+=i,null!==this.Lv){const t=kn(this.Av,this.Lv,this.Wv);if(Math.sign(t)===Math.sign(s)){const i=Pn(this.Av,this.Lv);r.push(t),h.push(i),n+=i}}}}let a=0;for(let t=0;t<r.length;++t)a+=h[t]/n*r[t];Math.abs(a)<this.Fv||(this.zv={Vv:t,wt:i},this.Nv=a,this.Ov=function(t,i){const n=Math.log(i);return Math.log(1*n/-t)/n}(Math.abs(a),this.Hv))}Gc(t){const i=u(this.zv),n=t-i.wt;return i.Vv+this.Nv*(Math.pow(this.Hv,n)-1)/Math.log(this.Hv)}Kc(t){return null===this.zv||this.$v(t)===this.Ov}$v(t){const i=t-u(this.zv).wt;return Math.min(i,this.Ov)}}class Rn{constructor(t,i){this.jv=void 0,this.qv=void 0,this.Yv=void 0,this.vn=!1,this.Kv=t,this.Gv=i,this.Zv()}Pt(){this.Zv()}Xv(){this.jv&&this.Kv.removeChild(this.jv),this.qv&&this.Kv.removeChild(this.qv),this.jv=void 0,this.qv=void 0}Jv(){return this.vn!==this.Qv()||this.Yv!==this.tm()}tm(){return this.Gv.Qt().Xi().J(this.Gv.N().layout.textColor)>160?\"dark\":\"light\"}Qv(){return this.Gv.N().layout.attributionLogo}im(){const t=new URL(location.href);return t.hostname?\"&utm_source=\"+t.hostname+t.pathname:\"\"}Zv(){this.Jv()&&(this.Xv(),this.vn=this.Qv(),this.vn&&(this.Yv=this.tm(),this.qv=document.createElement(\"style\"),this.qv.innerText=\"a#tv-attr-logo{--fill:#131722;--stroke:#fff;position:absolute;left:10px;bottom:10px;height:19px;width:35px;margin:0;padding:0;border:0;z-index:3;}a#tv-attr-logo[data-dark]{--fill:#D1D4DC;--stroke:#131722;}\",this.jv=document.createElement(\"a\"),this.jv.href=`https://www.tradingview.com/?utm_medium=lwc-link&utm_campaign=lwc-chart${this.im()}`,this.jv.title=\"Charting by TradingView\",this.jv.id=\"tv-attr-logo\",this.jv.target=\"_blank\",this.jv.innerHTML='<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"35\" height=\"19\" fill=\"none\"><g fill-rule=\"evenodd\" clip-path=\"url(#a)\" clip-rule=\"evenodd\"><path fill=\"var(--stroke)\" d=\"M2 0H0v10h6v9h21.4l.5-1.3 6-15 1-2.7H23.7l-.5 1.3-.2.6a5 5 0 0 0-7-.9V0H2Zm20 17h4l5.2-13 .8-2h-7l-1 2.5-.2.5-1.5 3.8-.3.7V17Zm-.8-10a3 3 0 0 0 .7-2.7A3 3 0 1 0 16.8 7h4.4ZM14 7V2H2v6h6v9h4V7h2Z\"/><path fill=\"var(--fill)\" d=\"M14 2H2v6h6v9h6V2Zm12 15h-7l6-15h7l-6 15Zm-7-9a3 3 0 1 0 0-6 3 3 0 0 0 0 6Z\"/></g><defs><clipPath id=\"a\"><path fill=\"var(--stroke)\" d=\"M0 0h35v19H0z\"/></clipPath></defs></svg>',this.jv.toggleAttribute(\"data-dark\",\"dark\"===this.Yv),this.Kv.appendChild(this.qv),this.Kv.appendChild(this.jv)))}}function Dn(t,n){const s=u(t.ownerDocument).createElement(\"canvas\");t.appendChild(s);const e=i(s,{type:\"device-pixel-content-box\",options:{allowResizeObserver:!0},transform:(t,i)=>({width:Math.max(t.width,i.width),height:Math.max(t.height,i.height)})});return e.resizeCanvasElement(n),e}function In(t){t.width=1,t.height=1,t.getContext(\"2d\")?.clearRect(0,0,1,1)}function Vn(t,i,n,s){t.qh&&t.qh(i,n,s)}function Bn(t,i,n,s){t.st(i,n,s)}function En(t,i,n,s){An(t(n,s),i,s)}function An(t,i,n){for(const s of t){const t=s.Tt(n);null!==t&&i(t)}}function Ln(t,i){return n=>{if(!function(t){return void 0!==t.Ft}(n))return[];return(n.Ft()?.pl()??\"\")!==i?[]:n.Qa?.(t)??[]}}function zn(t,i,n,s){if(!t.length)return;let e=0;const r=t[0].$t(s,!0);let h=1===i?n/2-(t[0].Hi()-r/2):t[0].Hi()-r/2-n/2;h=Math.max(0,h);for(let r=1;r<t.length;r++){const a=t[r],l=t[r-1],o=l.$t(s,!1),_=a.Hi(),u=l.Hi();if(1===i?_>u-o:_<u+o){const s=u-o*i;a.Ui(s);const r=s-i*o/2;if((1===i?r<0:r>n)&&h>0){const s=1===i?-1-r:r-n,a=Math.min(s,h);for(let n=e;n<t.length;n++)t[n].Ui(t[n].Hi()+i*a);h-=a}}else e=r,h=1===i?u-o-_:_-(u+o)}}class On{constructor(i,n,s,e){this.Ki=null,this.nm=null,this.sm=!1,this.rm=new rt(200),this.hm=null,this.am=0,this.lm=!1,this.om=()=>{this.lm||this.yt._m().Qt().mr()},this.um=()=>{this.lm||this.yt._m().Qt().mr()},this.yt=i,this.yn=n,this.Ro=n.layout,this.bd=s,this.dm=\"left\"===e,this.fm=Ln(\"normal\",e),this.pm=Ln(\"top\",e),this.vm=Ln(\"bottom\",e),this.uv=document.createElement(\"div\"),this.uv.style.height=\"100%\",this.uv.style.overflow=\"hidden\",this.uv.style.width=\"25px\",this.uv.style.left=\"0\",this.uv.style.position=\"relative\",this.wm=Dn(this.uv,t({width:16,height:16})),this.wm.subscribeSuggestedBitmapSizeChanged(this.om);const r=this.wm.canvasElement;r.style.position=\"absolute\",r.style.zIndex=\"1\",r.style.left=\"0\",r.style.top=\"0\",this.Mm=Dn(this.uv,t({width:16,height:16})),this.Mm.subscribeSuggestedBitmapSizeChanged(this.um);const h=this.Mm.canvasElement;h.style.position=\"absolute\",h.style.zIndex=\"2\",h.style.left=\"0\",h.style.top=\"0\";const a={Fp:this.Sv.bind(this),Op:this.Sv.bind(this),Dp:this.xv.bind(this),Tp:this.xv.bind(this),Wp:this.gm.bind(this),Ep:this.Cv.bind(this),Vp:this.Cv.bind(this),fp:this.bm.bind(this),_p:this.bm.bind(this),bp:this.Sm.bind(this),Zp:this.bv.bind(this)};this.sv=new Mn(this.Mm.canvasElement,a,{Pp:()=>!this.yn.handleScroll.vertTouchDrag,kp:()=>!0})}m(){this.sv.m(),this.Mm.unsubscribeSuggestedBitmapSizeChanged(this.um),In(this.Mm.canvasElement),this.Mm.dispose(),this.wm.unsubscribeSuggestedBitmapSizeChanged(this.om),In(this.wm.canvasElement),this.wm.dispose(),null!==this.Ki&&this.Ki.__().u(this),this.Ki=null}fv(){return this.uv}P(){return this.Ro.fontSize}xm(){const t=this.bd.N();return this.hm!==t.k&&(this.rm.Os(),this.hm=t.k),t}Cm(){if(null===this.Ki)return 0;let t=0;const i=this.xm(),n=u(this.wm.canvasElement.getContext(\"2d\",{colorSpace:this.yt._m().N().layout.colorSpace}));n.save();const s=this.Ki.zl();n.font=this.ym(),s.length>0&&(t=Math.max(this.rm.Ii(n,s[0].eo),this.rm.Ii(n,s[s.length-1].eo)));const e=this.Pm();for(let i=e.length;i--;){const s=this.rm.Ii(n,e[i].ri());s>t&&(t=s)}const r=this.Ki.Lt();if(null!==r&&null!==this.nm&&(2!==(h=this.yn.crosshair).mode&&h.horzLine.visible&&h.horzLine.labelVisible)){const i=this.Ki.Tn(1,r),s=this.Ki.Tn(this.nm.height-2,r);t=Math.max(t,this.rm.Ii(n,this.Ki.Ji(Math.floor(Math.min(i,s))+.11111111111111,r)),this.rm.Ii(n,this.Ki.Ji(Math.ceil(Math.max(i,s))-.11111111111111,r)))}var h;n.restore();const a=t||34;return mn(Math.ceil(i.S+i.C+i.V+i.B+5+a))}km(t){null!==this.nm&&n(this.nm,t)||(this.nm=t,this.lm=!0,this.wm.resizeCanvasElement(t),this.Mm.resizeCanvasElement(t),this.lm=!1,this.uv.style.width=`${t.width}px`,this.uv.style.height=`${t.height}px`)}Tm(){return u(this.nm).width}un(t){this.Ki!==t&&(null!==this.Ki&&this.Ki.__().u(this),this.Ki=t,t.__().i(this.wo.bind(this),this))}Ft(){return this.Ki}Os(){const t=this.yt.yv();this.yt._m().Qt().au(t,u(this.Ft()))}Rm(t){if(null===this.nm)return;const i={colorSpace:this.yt._m().N().layout.colorSpace};if(1!==t){this.Dm(),this.wm.applySuggestedBitmapSize();const t=s(this.wm,i);null!==t&&(t.useBitmapCoordinateSpace((t=>{this.Im(t),this.Vm(t)})),this.yt.Bm(t,this.vm),this.Em(t),this.yt.Bm(t,this.fm),this.Am(t))}this.Mm.applySuggestedBitmapSize();const n=s(this.Mm,i);null!==n&&(n.useBitmapCoordinateSpace((({context:t,bitmapSize:i})=>{t.clearRect(0,0,i.width,i.height)})),this.Lm(n),this.yt.Bm(n,this.pm))}vv(){return this.wm.bitmapSize}mv(t,i,n,s){const e=this.vv();if(e.width>0&&e.height>0&&(t.drawImage(this.wm.canvasElement,i,n),s)){const s=this.Mm.canvasElement;t.drawImage(s,i,n)}}Pt(){this.Ki?.zl()}Sv(t){if(null===this.Ki||this.Ki.Zi()||!this.yn.handleScale.axisPressedMouseMove.price)return;const i=this.yt._m().Qt(),n=this.yt.yv();this.sm=!0,i.Q_(n,this.Ki,t.localY)}xv(t){if(null===this.Ki||!this.yn.handleScale.axisPressedMouseMove.price)return;const i=this.yt._m().Qt(),n=this.yt.yv(),s=this.Ki;i.tu(n,s,t.localY)}gm(){if(null===this.Ki||!this.yn.handleScale.axisPressedMouseMove.price)return;const t=this.yt._m().Qt(),i=this.yt.yv(),n=this.Ki;this.sm&&(this.sm=!1,t.iu(i,n))}Cv(t){if(null===this.Ki||!this.yn.handleScale.axisPressedMouseMove.price)return;const i=this.yt._m().Qt(),n=this.yt.yv();this.sm=!1,i.iu(n,this.Ki)}bm(t){this.yn.handleScale.axisDoubleClickReset.price&&this.Os()}Sm(t){if(null===this.Ki)return;!this.yt._m().Qt().N().handleScale.axisPressedMouseMove.price||this.Ki.je()||this.Ki.No()||this.zm(1)}bv(t){this.zm(0)}Pm(){const t=[],i=null===this.Ki?void 0:this.Ki;return(n=>{for(let s=0;s<n.length;++s){const e=n[s].qn(this.yt.yv(),i);for(let i=0;i<e.length;i++)t.push(e[i])}})(this.yt.yv().Dt()),t}Im({context:t,bitmapSize:i}){const{width:n,height:s}=i,e=this.yt.yv().Qt(),r=e.$(),h=e.af();r===h?z(t,0,0,n,s,r):F(t,0,0,n,s,r,h)}Vm({context:t,bitmapSize:i,horizontalPixelRatio:n}){if(null===this.nm||null===this.Ki||!this.Ki.N().borderVisible)return;t.fillStyle=this.Ki.N().borderColor;const s=Math.max(1,Math.floor(this.xm().S*n));let e;e=this.dm?i.width-s:0,t.fillRect(e,0,s,i.height)}Em(t){if(null===this.nm||null===this.Ki)return;const i=this.Ki.zl(),n=this.Ki.N(),s=this.xm(),e=this.dm?this.nm.width-s.C:0;n.borderVisible&&n.ticksVisible&&t.useBitmapCoordinateSpace((({context:t,horizontalPixelRatio:r,verticalPixelRatio:h})=>{t.fillStyle=n.borderColor;const a=Math.max(1,Math.floor(h)),l=Math.floor(.5*h),o=Math.round(s.C*r);t.beginPath();for(const n of i)t.rect(Math.floor(e*r),Math.round(n.Vl*h)-l,o,a);t.fill()})),t.useMediaCoordinateSpace((({context:t})=>{t.font=this.ym(),t.fillStyle=n.textColor??this.Ro.textColor,t.textAlign=this.dm?\"right\":\"left\",t.textBaseline=\"middle\";const r=this.dm?Math.round(e-s.V):Math.round(e+s.C+s.V),h=i.map((i=>this.rm.Di(t,i.eo)));for(let n=i.length;n--;){const s=i[n];t.fillText(s.eo,r,s.Vl+h[n])}}))}Dm(){if(null===this.nm||null===this.Ki)return;let t=this.nm.height/2;const i=[],n=this.Ki.Dt().slice(),s=this.yt.yv(),e=this.xm();this.Ki===s.Zs()&&this.yt.yv().Dt().forEach((t=>{s.Gs(t)&&n.push(t)}));const r=this.Ki.kl()[0],h=this.Ki;n.forEach((n=>{const e=n.qn(s,h);e.forEach((t=>{t.$i()&&null===t.Wi()&&(t.Ui(null),i.push(t))})),r===n&&e.length>0&&(t=e[0].Ei())}));this.Ki.N().alignLabels&&this.Om(i,e,t)}Om(t,i,n){if(null===this.nm)return;const s=t.filter((t=>t.Ei()<=n)),e=t.filter((t=>t.Ei()>n));s.sort(((t,i)=>i.Ei()-t.Ei())),s.length&&e.length&&e.push(s[0]),e.sort(((t,i)=>t.Ei()-i.Ei()));for(const n of t){const t=Math.floor(n.$t(i)/2),s=n.Ei();s>-t&&s<t&&n.Ui(t),s>this.nm.height-t&&s<this.nm.height+t&&n.Ui(this.nm.height-t)}zn(s,1,this.nm.height,i),zn(e,-1,this.nm.height,i)}Am(t){if(null===this.nm)return;const i=this.Pm(),n=this.xm(),s=this.dm?\"right\":\"left\";i.forEach((i=>{if(i.ji()){i.Tt(u(this.Ki)).st(t,n,this.rm,s)}}))}Lm(t){if(null===this.nm||null===this.Ki)return;const i=this.yt._m().Qt(),n=[],s=this.yt.yv(),e=i.Vd().qn(s,this.Ki);e.length&&n.push(e);const r=this.xm(),h=this.dm?\"right\":\"left\";n.forEach((i=>{i.forEach((i=>{i.Tt(u(this.Ki)).st(t,r,this.rm,h)}))}))}zm(t){this.uv.style.cursor=1===t?\"ns-resize\":\"default\"}wo(){const t=this.Cm();this.am<t&&this.yt._m().Qt().ka(),this.am=t}ym(){return x(this.Ro.fontSize,this.Ro.fontFamily)}}function Nn(t,i){return t.Xa?.(i)??[]}function Fn(t,i){return t.jn?.(i)??[]}function Wn(t,i){return t.cn?.(i)??[]}function Hn(t,i){return t.qa?.(i)??[]}class Un{constructor(i,n){this.nm=t({width:0,height:0}),this.Nm=null,this.Fm=null,this.Wm=null,this.Hm=null,this.Um=!1,this.$m=new d,this.jm=new d,this.qm=0,this.Ym=!1,this.Km=null,this.Gm=!1,this.Zm=null,this.Xm=null,this.lm=!1,this.om=()=>{this.lm||null===this.Jm||this.sn().mr()},this.um=()=>{this.lm||null===this.Jm||this.sn().mr()},this.Gv=i,this.Jm=n,this.Jm.mu().i(this.Qm.bind(this),this,!0),this.tw=document.createElement(\"td\"),this.tw.style.padding=\"0\",this.tw.style.position=\"relative\";const s=document.createElement(\"div\");s.style.width=\"100%\",s.style.height=\"100%\",s.style.position=\"relative\",s.style.overflow=\"hidden\",this.iw=document.createElement(\"td\"),this.iw.style.padding=\"0\",this.nw=document.createElement(\"td\"),this.nw.style.padding=\"0\",this.tw.appendChild(s),this.wm=Dn(s,t({width:16,height:16})),this.wm.subscribeSuggestedBitmapSizeChanged(this.om);const e=this.wm.canvasElement;e.style.position=\"absolute\",e.style.zIndex=\"1\",e.style.left=\"0\",e.style.top=\"0\",this.Mm=Dn(s,t({width:16,height:16})),this.Mm.subscribeSuggestedBitmapSizeChanged(this.um);const r=this.Mm.canvasElement;r.style.position=\"absolute\",r.style.zIndex=\"2\",r.style.left=\"0\",r.style.top=\"0\",this._v=document.createElement(\"tr\"),this._v.appendChild(this.iw),this._v.appendChild(this.tw),this._v.appendChild(this.nw),this.sw(),this.sv=new Mn(this.Mm.canvasElement,this,{Pp:()=>null===this.Km&&!this.Gv.N().handleScroll.vertTouchDrag,kp:()=>null===this.Km&&!this.Gv.N().handleScroll.horzTouchDrag})}m(){null!==this.Nm&&this.Nm.m(),null!==this.Fm&&this.Fm.m(),this.Wm=null,this.Mm.unsubscribeSuggestedBitmapSizeChanged(this.um),In(this.Mm.canvasElement),this.Mm.dispose(),this.wm.unsubscribeSuggestedBitmapSizeChanged(this.om),In(this.wm.canvasElement),this.wm.dispose(),null!==this.Jm&&(this.Jm.mu().u(this),this.Jm.m()),this.sv.m()}yv(){return u(this.Jm)}ew(t){null!==this.Jm&&this.Jm.mu().u(this),this.Jm=t,null!==this.Jm&&this.Jm.mu().i(Un.prototype.Qm.bind(this),this,!0),this.sw(),this.Gv.lv().indexOf(this)===this.Gv.lv().length-1?(this.Wm=this.Wm??new Rn(this.tw,this.Gv),this.Wm.Pt()):(this.Wm?.Xv(),this.Wm=null)}_m(){return this.Gv}fv(){return this._v}sw(){if(null!==this.Jm&&(this.rw(),0!==this.sn().Jn().length)){if(null!==this.Nm){const t=this.Jm.X_();this.Nm.un(u(t))}if(null!==this.Fm){const t=this.Jm.J_();this.Fm.un(u(t))}}}hw(){null!==this.Nm&&this.Nm.Pt(),null!==this.Fm&&this.Fm.Pt()}F_(){return null!==this.Jm?this.Jm.F_():0}W_(t){this.Jm&&this.Jm.W_(t)}bp(t){if(!this.Jm)return;this.aw();const i=t.localX,n=t.localY;this.lw(i,n,t)}Fp(t){this.aw(),this.ow(),this.lw(t.localX,t.localY,t)}Sp(t){if(!this.Jm)return;this.aw();const i=t.localX,n=t.localY;this.lw(i,n,t)}Ap(t){null!==this.Jm&&(this.aw(),this.lw(t.localX,t.localY,t),this._w(t))}fp(t){null!==this.Jm&&this.uw(this.jm,t)}_p(t){this.fp(t)}Dp(t){this.aw(),this.cw(t),this.lw(t.localX,t.localY,t)}Ep(t){null!==this.Jm&&(this.aw(),this.Ym=!1,this.dw(t))}Bp(t){null!==this.Jm&&this._w(t)}Xp(t){if(this.Ym=!0,null===this.Km){const i={x:t.localX,y:t.localY};this.fw(i,i,t)}}Zp(t){null!==this.Jm&&(this.aw(),this.Jm.Qt().Rd(null),this.pw())}mw(){return this.$m}ww(){return this.jm}$p(){this.qm=1,this.sn().cs()}jp(t,i){if(!this.Gv.N().handleScale.pinch)return;const n=5*(i-this.qm);this.qm=i,this.sn().Wd(t._t,n)}Op(t){this.Ym=!1,this.Gm=null!==this.Km,this.ow();const i=this.sn().Vd();null!==this.Km&&i.It()&&(this.Zm={x:i.ni(),y:i.si()},this.Km={x:t.localX,y:t.localY})}Tp(t){if(null===this.Jm)return;const i=t.localX,n=t.localY;if(null===this.Km)this.cw(t);else{this.Gm=!1;const s=u(this.Zm),e=s.x+(i-this.Km.x),r=s.y+(n-this.Km.y);this.lw(e,r,t)}}Vp(t){0===this._m().N().trackingMode.exitMode&&(this.Gm=!0),this.Mw(),this.dw(t)}Qs(t,i){const n=this.Jm;return null===n?null:Bi(n,t,i)}gw(i,n){u(\"left\"===n?this.Nm:this.Fm).km(t({width:i,height:this.nm.height}))}pv(){return this.nm}km(t){n(this.nm,t)||(this.nm=t,this.lm=!0,this.wm.resizeCanvasElement(t),this.Mm.resizeCanvasElement(t),this.lm=!1,this.tw.style.width=t.width+\"px\",this.tw.style.height=t.height+\"px\")}bw(){const t=u(this.Jm);t.G_(t.X_()),t.G_(t.J_());for(const i of t.kl())if(t.Gs(i)){const n=i.Ft();null!==n&&t.G_(n),i.Nn()}for(const i of t.Mu())i.Nn()}vv(){return this.wm.bitmapSize}mv(t,i,n,s){const e=this.vv();if(e.width>0&&e.height>0&&(t.drawImage(this.wm.canvasElement,i,n),s)){const s=this.Mm.canvasElement;null!==t&&t.drawImage(s,i,n)}}Rm(t){if(0===t)return;if(null===this.Jm)return;t>1&&this.bw(),null!==this.Nm&&this.Nm.Rm(t),null!==this.Fm&&this.Fm.Rm(t);const i={colorSpace:this.Gv.N().layout.colorSpace};if(1!==t){this.wm.applySuggestedBitmapSize();const t=s(this.wm,i);null!==t&&(t.useBitmapCoordinateSpace((t=>{this.Im(t)})),this.Jm&&(this.Sw(t,Nn),this.xw(t),this.Sw(t,Fn),this.Sw(t,Wn)))}this.Mm.applySuggestedBitmapSize();const n=s(this.Mm,i);null!==n&&(n.useBitmapCoordinateSpace((({context:t,bitmapSize:i})=>{t.clearRect(0,0,i.width,i.height)})),this.Cw(n),this.Sw(n,Hn),this.Sw(n,Wn))}yw(){return this.Nm}Pw(){return this.Fm}Bm(t,i){this.Sw(t,i)}Qm(){null!==this.Jm&&this.Jm.mu().u(this),this.Jm=null}_w(t){this.uw(this.$m,t)}uw(t,i){const n=i.localX,s=i.localY;t.v()&&t.p(this.sn().Et().Vc(n),{x:n,y:s},i)}Im({context:t,bitmapSize:i}){const{width:n,height:s}=i,e=this.sn(),r=e.$(),h=e.af();r===h?z(t,0,0,n,s,h):F(t,0,0,n,s,r,h)}xw(t){const i=u(this.Jm),n=i.wu().wr().Tt(i);null!==n&&n.st(t,!1)}Cw(t){this.kw(t,Fn,Bn,this.sn().Vd())}Sw(t,i){const n=u(this.Jm),s=i===Fn?this.Tw():null,e=null===s?null:this.Rw(s,n),r=n.Mu();if(null===e||null===s){const s=n._u();return this.Dw(t,i,Vn,r,s),void this.Dw(t,i,Bn,r,s)}const h=n.Dt(),a=t=>t===s?e.Za:void 0;this.Dw(t,i,Vn,r,h,a),this.Dw(t,i,Bn,r,h,a),this.kw(t,i,Vn,s,e.qa),this.kw(t,i,Bn,s,e.qa)}Dw(t,i,n,s,e,r){for(const e of s)this.kw(t,i,n,e);if(void 0!==r)for(const s of e)this.kw(t,i,n,s,r(s));else for(const s of e)this.kw(t,i,n,s)}Tw(){const t=u(this.Jm),i=t.Qt().cu()?.uu;if(!t.Qt().N().hoveredSeriesOnTop||void 0===i)return null;for(const n of t.Dt())if(n===i)return n;return null}Rw(t,i){const n=t.Ga?.(i)??null;return null===n||0===n.qa.length?null:n}kw(t,i,n,s,e){const r=u(this.Jm),h=r.Qt().cu(),a=null!==h&&h.uu===s,l=null!==h&&a&&void 0!==h.bu?h.bu.ie:void 0,o=i=>n(i,t,a,l);void 0===e?En(i,o,s,r):An(e,o,r)}rw(){if(null===this.Jm)return;const t=this.Gv,i=this.Jm.X_().N().visible,n=this.Jm.J_().N().visible;i||null===this.Nm||(this.iw.removeChild(this.Nm.fv()),this.Nm.m(),this.Nm=null),n||null===this.Fm||(this.nw.removeChild(this.Fm.fv()),this.Fm.m(),this.Fm=null);const s=t.Qt().Jd();i&&null===this.Nm&&(this.Nm=new On(this,t.N(),s,\"left\"),this.iw.appendChild(this.Nm.fv())),n&&null===this.Fm&&(this.Fm=new On(this,t.N(),s,\"right\"),this.nw.appendChild(this.Fm.fv()))}Iw(t){return t.Jp&&this.Ym||null!==this.Km}lw(t,i,n){t=Math.max(0,Math.min(t,this.nm.width-1)),i=Math.max(0,Math.min(i,this.nm.height-1)),this.sn().Kd(t,i,n,u(this.Jm))}pw(){this.sn().Zd()}Mw(){this.Gm&&(this.Km=null,this.pw())}fw(t,i,n){this.Km=t,this.Gm=!1,this.lw(i.x,i.y,n);const s=this.sn().Vd();this.Zm={x:s.ni(),y:s.si()}}sn(){return this.Gv.Qt()}dw(t){if(!this.Um)return;const i=this.sn(),n=this.yv();if(i.eu(n,n.kn()),this.Hm=null,this.Um=!1,i.jd(),null!==this.Xm){const t=performance.now(),n=i.Et();this.Xm.me(n.Oc(),t),this.Xm.Kc(t)||i.ps(this.Xm)}}aw(){this.Km=null}ow(){if(!this.Jm)return;if(this.sn().cs(),document.activeElement!==document.body&&document.activeElement!==document.documentElement)u(document.activeElement).blur();else{const t=document.getSelection();null!==t&&t.removeAllRanges()}!this.Jm.kn().Zi()&&this.sn().Et().Zi()}cw(t){if(null===this.Jm)return;const i=this.sn(),n=i.Et();if(n.Zi())return;const s=this.Gv.N(),e=s.handleScroll,r=s.kineticScroll;if((!e.pressedMouseMove||t.Jp)&&(!e.horzTouchDrag&&!e.vertTouchDrag||!t.Jp))return;const h=this.Jm.kn(),a=performance.now();if(null!==this.Hm||this.Iw(t)||(this.Hm={x:t.clientX,y:t.clientY,yf:a,Vw:t.localX,Bw:t.localY}),null!==this.Hm&&!this.Um&&(this.Hm.x!==t.clientX||this.Hm.y!==t.clientY)){if(t.Jp&&r.touch||!t.Jp&&r.mouse){const t=n.ml();this.Xm=new Tn(.2/t,7/t,.997,15/t),this.Xm.Uv(n.Oc(),this.Hm.yf)}else this.Xm=null;h.Zi()||i.nu(this.Jm,h,t.localY),i.Ud(t.localX),this.Um=!0}this.Um&&(h.Zi()||i.su(this.Jm,h,t.localY),i.$d(t.localX),null!==this.Xm&&this.Xm.Uv(n.Oc(),a))}}class $n{constructor(i,n,s,e,r){this.xt=!0,this.nm=t({width:0,height:0}),this.om=()=>this.Rm(3),this.dm=\"left\"===i,this.bd=s.Jd,this.yn=n,this.Ew=e,this.Aw=r,this.uv=document.createElement(\"div\"),this.uv.style.width=\"25px\",this.uv.style.height=\"100%\",this.uv.style.overflow=\"hidden\",this.wm=Dn(this.uv,t({width:16,height:16})),this.wm.subscribeSuggestedBitmapSizeChanged(this.om)}m(){this.wm.unsubscribeSuggestedBitmapSizeChanged(this.om),In(this.wm.canvasElement),this.wm.dispose()}fv(){return this.uv}pv(){return this.nm}km(t){n(this.nm,t)||(this.nm=t,this.wm.resizeCanvasElement(t),this.uv.style.width=`${t.width}px`,this.uv.style.height=`${t.height}px`,this.xt=!0)}Rm(t){if(t<3&&!this.xt)return;if(0===this.nm.width||0===this.nm.height)return;this.xt=!1,this.wm.applySuggestedBitmapSize();const i=s(this.wm,{colorSpace:this.yn.layout.colorSpace});null!==i&&i.useBitmapCoordinateSpace((t=>{this.Im(t),this.Vm(t)}))}vv(){return this.wm.bitmapSize}mv(t,i,n){const s=this.vv();s.width>0&&s.height>0&&t.drawImage(this.wm.canvasElement,i,n)}Vm({context:t,bitmapSize:i,horizontalPixelRatio:n,verticalPixelRatio:s}){if(!this.Ew())return;t.fillStyle=this.yn.timeScale.borderColor;const e=Math.floor(this.bd.N().S*n),r=Math.floor(this.bd.N().S*s),h=this.dm?i.width-e:0;t.fillRect(h,0,e,r)}Im({context:t,bitmapSize:i}){z(t,0,0,i.width,i.height,this.Aw())}}function jn(t){return i=>i.tl?.(t)??[]}const qn=jn(\"normal\"),Yn=jn(\"top\"),Kn=jn(\"bottom\");class Gn{constructor(i,n){this.Lw=null,this.zw=null,this.M=null,this.Ow=!1,this.nm=t({width:0,height:0}),this.Nw=new d,this.rm=new rt(5),this.lm=!1,this.om=()=>{this.lm||this.Gv.Qt().mr()},this.um=()=>{this.lm||this.Gv.Qt().mr()},this.Gv=i,this.Pu=n,this.yn=i.N().layout,this.jv=document.createElement(\"tr\"),this.Fw=document.createElement(\"td\"),this.Fw.style.padding=\"0\",this.Ww=document.createElement(\"td\"),this.Ww.style.padding=\"0\",this.uv=document.createElement(\"td\"),this.uv.style.height=\"25px\",this.uv.style.padding=\"0\",this.Hw=document.createElement(\"div\"),this.Hw.style.width=\"100%\",this.Hw.style.height=\"100%\",this.Hw.style.position=\"relative\",this.Hw.style.overflow=\"hidden\",this.uv.appendChild(this.Hw),this.wm=Dn(this.Hw,t({width:16,height:16})),this.wm.subscribeSuggestedBitmapSizeChanged(this.om);const s=this.wm.canvasElement;s.style.position=\"absolute\",s.style.zIndex=\"1\",s.style.left=\"0\",s.style.top=\"0\",this.Mm=Dn(this.Hw,t({width:16,height:16})),this.Mm.subscribeSuggestedBitmapSizeChanged(this.um);const e=this.Mm.canvasElement;e.style.position=\"absolute\",e.style.zIndex=\"2\",e.style.left=\"0\",e.style.top=\"0\",this.jv.appendChild(this.Fw),this.jv.appendChild(this.uv),this.jv.appendChild(this.Ww),this.Uw(),this.Gv.Qt().N_().i(this.Uw.bind(this),this),this.sv=new Mn(this.Mm.canvasElement,this,{Pp:()=>!0,kp:()=>!this.Gv.N().handleScroll.horzTouchDrag})}m(){this.sv.m(),null!==this.Lw&&this.Lw.m(),null!==this.zw&&this.zw.m(),this.Mm.unsubscribeSuggestedBitmapSizeChanged(this.um),In(this.Mm.canvasElement),this.Mm.dispose(),this.wm.unsubscribeSuggestedBitmapSizeChanged(this.om),In(this.wm.canvasElement),this.wm.dispose()}fv(){return this.jv}$w(){return this.Lw}jw(){return this.zw}Fp(t){if(this.Ow)return;this.Ow=!0;const i=this.Gv.Qt();!i.Et().Zi()&&this.Gv.N().handleScale.axisPressedMouseMove.time&&i.Fd(t.localX)}Op(t){this.Fp(t)}Wp(){const t=this.Gv.Qt();!t.Et().Zi()&&this.Ow&&(this.Ow=!1,this.Gv.N().handleScale.axisPressedMouseMove.time&&t.Yd())}Dp(t){const i=this.Gv.Qt();!i.Et().Zi()&&this.Gv.N().handleScale.axisPressedMouseMove.time&&i.qd(t.localX)}Tp(t){this.Dp(t)}Ep(){this.Ow=!1;const t=this.Gv.Qt();t.Et().Zi()&&!this.Gv.N().handleScale.axisPressedMouseMove.time||t.Yd()}Vp(){this.Ep()}fp(){this.Gv.N().handleScale.axisDoubleClickReset.time&&this.Gv.Qt().ws()}_p(){this.fp()}bp(){this.Gv.Qt().N().handleScale.axisPressedMouseMove.time&&this.zm(1)}Zp(){this.zm(0)}pv(){return this.nm}qw(){return this.Nw}Yw(i,s,e){n(this.nm,i)||(this.nm=i,this.lm=!0,this.wm.resizeCanvasElement(i),this.Mm.resizeCanvasElement(i),this.lm=!1,this.uv.style.width=`${i.width}px`,this.uv.style.height=`${i.height}px`,this.Nw.p(i)),null!==this.Lw&&this.Lw.km(t({width:s,height:i.height})),null!==this.zw&&this.zw.km(t({width:e,height:i.height}))}Kw(){const t=this.Gw();return Math.ceil(t.S+t.C+t.P+t.A+t.I+t.Zw)}Pt(){this.Gv.Qt().Et().zl()}vv(){return this.wm.bitmapSize}mv(t,i,n,s){const e=this.vv();if(e.width>0&&e.height>0&&(t.drawImage(this.wm.canvasElement,i,n),s)){const s=this.Mm.canvasElement;t.drawImage(s,i,n)}}Rm(t){if(0===t)return;const i={colorSpace:this.yn.colorSpace};if(1!==t){this.wm.applySuggestedBitmapSize();const n=s(this.wm,i);null!==n&&(n.useBitmapCoordinateSpace((t=>{this.Im(t),this.Vm(t),this.Xw(n,Kn)})),this.Em(n),this.Xw(n,qn)),null!==this.Lw&&this.Lw.Rm(t),null!==this.zw&&this.zw.Rm(t)}this.Mm.applySuggestedBitmapSize();const n=s(this.Mm,i);null!==n&&(n.useBitmapCoordinateSpace((({context:t,bitmapSize:i})=>{t.clearRect(0,0,i.width,i.height)})),this.Jw([...this.Gv.Qt().Jn(),this.Gv.Qt().Vd()],n),this.Xw(n,Yn))}Xw(t,i){const n=this.Gv.Qt().Jn();for(const s of n)En(i,(i=>Vn(i,t,!1,void 0)),s,void 0);for(const s of n)En(i,(i=>Bn(i,t,!1,void 0)),s,void 0)}Im({context:t,bitmapSize:i}){z(t,0,0,i.width,i.height,this.Gv.Qt().af())}Vm({context:t,bitmapSize:i,verticalPixelRatio:n}){if(this.Gv.N().timeScale.borderVisible){t.fillStyle=this.Qw();const s=Math.max(1,Math.floor(this.Gw().S*n));t.fillRect(0,0,i.width,s)}}Em(t){const i=this.Gv.Qt().Et(),n=i.zl();if(!n||0===n.length)return;const s=this.Pu.maxTickMarkWeight(n),e=this.Gw(),r=i.N();r.borderVisible&&r.ticksVisible&&t.useBitmapCoordinateSpace((({context:t,horizontalPixelRatio:i,verticalPixelRatio:s})=>{t.strokeStyle=this.Qw(),t.fillStyle=this.Qw();const r=Math.max(1,Math.floor(i)),h=Math.floor(.5*i);t.beginPath();const a=Math.round(e.C*s);for(let s=n.length;s--;){const e=Math.round(n[s].coord*i);t.rect(e-h,0,r,a)}t.fill()})),t.useMediaCoordinateSpace((({context:t})=>{const i=e.S+e.C+e.A+e.P/2;t.textAlign=\"center\",t.textBaseline=\"middle\",t.fillStyle=this.H(),t.font=this.ym();for(const e of n)if(e.weight<s){const n=e.needAlignCoordinate?this.tM(t,e.coord,e.label):e.coord;t.fillText(e.label,n,i)}this.Gv.N().timeScale.allowBoldLabels&&(t.font=this.iM());for(const e of n)if(e.weight>=s){const n=e.needAlignCoordinate?this.tM(t,e.coord,e.label):e.coord;t.fillText(e.label,n,i)}}))}tM(t,i,n){const s=this.rm.Ii(t,n),e=s/2,r=Math.floor(i-e)+.5;return r<0?i+=Math.abs(0-r):r+s>this.nm.width&&(i-=Math.abs(this.nm.width-(r+s))),i}Jw(t,i){const n=this.Gw();for(const s of t)for(const t of s.dn())t.Tt().st(i,n)}Qw(){return this.Gv.N().timeScale.borderColor}H(){return this.yn.textColor}F(){return this.yn.fontSize}ym(){return x(this.F(),this.yn.fontFamily)}iM(){return x(this.F(),this.yn.fontFamily,\"bold\")}Gw(){null===this.M&&(this.M={S:1,L:NaN,A:NaN,I:NaN,tn:NaN,C:5,P:NaN,k:\"\",Qi:new rt,Zw:0});const t=this.M,i=this.ym();if(t.k!==i){const n=this.F();t.P=n,t.k=i,t.A=3*n/12,t.I=3*n/12,t.tn=9*n/12,t.L=0,t.Zw=4*n/12,t.Qi.Os()}return this.M}zm(t){this.uv.style.cursor=1===t?\"ew-resize\":\"default\"}Uw(){const t=this.Gv.Qt(),i=t.N();i.leftPriceScale.visible||null===this.Lw||(this.Fw.removeChild(this.Lw.fv()),this.Lw.m(),this.Lw=null),i.rightPriceScale.visible||null===this.zw||(this.Ww.removeChild(this.zw.fv()),this.zw.m(),this.zw=null);const n={Jd:this.Gv.Qt().Jd()},s=()=>i.leftPriceScale.borderVisible&&t.Et().N().borderVisible,e=()=>t.af();i.leftPriceScale.visible&&null===this.Lw&&(this.Lw=new $n(\"left\",i,n,s,e),this.Fw.appendChild(this.Lw.fv())),i.rightPriceScale.visible&&null===this.zw&&(this.zw=new $n(\"right\",i,n,s,e),this.Ww.appendChild(this.zw.fv()))}}const Zn=!!dn&&!!navigator.userAgentData&&navigator.userAgentData.brands.some((t=>t.brand.includes(\"Chromium\")))&&!!dn&&(navigator?.userAgentData?.platform?\"Windows\"===navigator.userAgentData.platform:navigator.userAgent.toLowerCase().indexOf(\"win\")>=0);class Xn{constructor(t,i,n){var s;this.nM=[],this.sM=[],this.eM=0,this.oo=0,this.k_=0,this.rM=0,this.hM=0,this.aM=null,this.lM=!1,this.$m=new d,this.jm=new d,this.wd=new d,this.oM=null,this._M=null,this.Kv=t,this.yn=i,this.Pu=n,this.jv=document.createElement(\"div\"),this.jv.classList.add(\"tv-lightweight-charts\"),this.jv.style.overflow=\"hidden\",this.jv.style.direction=\"ltr\",this.jv.style.width=\"100%\",this.jv.style.height=\"100%\",(s=this.jv).style.userSelect=\"none\",s.style.webkitUserSelect=\"none\",s.style.msUserSelect=\"none\",s.style.MozUserSelect=\"none\",s.style.webkitTapHighlightColor=\"transparent\",this.uM=document.createElement(\"table\"),this.uM.setAttribute(\"cellspacing\",\"0\"),this.jv.appendChild(this.uM),this.cM=this.dM.bind(this),Jn(this.yn)&&this.fM(!0),this.sn=new qi(this.gd.bind(this),this.yn,n),this.Qt().Bd().i(this.pM.bind(this),this),this.vM=new Gn(this,this.Pu),this.uM.appendChild(this.vM.fv());const e=i.autoSize&&this.mM();let r=this.yn.width,h=this.yn.height;if(e||0===r||0===h){const i=t.getBoundingClientRect();r=r||i.width,h=h||i.height}this.wM(r,h),this.MM(),t.appendChild(this.jv),this.gM(),this.sn.Et().Jc().i(this.sn.ka.bind(this.sn),this),this.sn.N_().i(this.sn.ka.bind(this.sn),this)}Qt(){return this.sn}N(){return this.yn}lv(){return this.nM}bM(){return this.vM}m(){this.fM(!1),0!==this.eM&&window.cancelAnimationFrame(this.eM),this.sn.Bd().u(this),this.sn.Et().Jc().u(this),this.sn.N_().u(this),this.sn.m();for(const t of this.nM)this.uM.removeChild(t.fv()),t.mw().u(this),t.ww().u(this),t.m();this.nM=[];for(const t of this.sM)this.SM(t);this.sM=[],u(this.vM).m(),null!==this.jv.parentElement&&this.jv.parentElement.removeChild(this.jv),this.wd.m(),this.$m.m(),this.jm.m(),this.xM()}wM(i,n,s=!1){if(this.oo===n&&this.k_===i)return;const e=function(i){const n=Math.floor(i.width),s=Math.floor(i.height);return t({width:n-n%2,height:s-s%2})}(t({width:i,height:n}));this.oo=e.height,this.k_=e.width;const r=this.oo+\"px\",h=this.k_+\"px\";if(this.CM()||(u(this.jv).style.height=r,u(this.jv).style.width=h),this.uM.style.height=r,this.uM.style.width=h,s){0!==this.eM&&(window.cancelAnimationFrame(this.eM),this.eM=0),this.lM=!1;const t=X.ys();null!==this.aM&&(t.Ss(this.aM),this.aM=null),this.yM(t,performance.now())}else this.sn.ka()}Rm(t){void 0===t&&(t=X.ys());for(let i=0;i<this.nM.length;i++)this.nM[i].Rm(t._s(i).rs);this.yn.timeScale.visible&&this.vM.Rm(t.ls())}vr(t){const i=Jn(this.yn);this.sn.vr(t);const n=Jn(this.yn);n!==i&&this.fM(n),t.layout?.panes&&this.PM(),this.gM(),this.kM(t)}mw(){return this.$m}ww(){return this.jm}Bd(){return this.wd}TM(t=!1){null!==this.aM&&(this.yM(this.aM,performance.now()),this.aM=null);const i=this.RM(null),n=document.createElement(\"canvas\");n.width=i.width,n.height=i.height;const s=u(n.getContext(\"2d\"));return this.RM(s,t),n}DM(t){if(\"left\"===t&&!this.IM())return 0;if(\"right\"===t&&!this.VM())return 0;if(0===this.nM.length)return 0;return u(\"left\"===t?this.nM[0].yw():this.nM[0].Pw()).Tm()}CM(){return this.yn.autoSize&&null!==this.oM}Mv(){return this.jv}BM(t){this._M=t,this._M?this.Mv().style.setProperty(\"cursor\",t):this.Mv().style.removeProperty(\"cursor\")}EM(){return this._M}AM(t){return _(this.nM[t]).pv()}PM(){this.sM.forEach((t=>{t.Pt()}))}kM(t){(void 0!==t.autoSize||!this.oM||void 0===t.width&&void 0===t.height)&&(t.autoSize&&!this.oM&&this.mM(),!1===t.autoSize&&null!==this.oM&&this.xM(),t.autoSize||void 0===t.width&&void 0===t.height||this.wM(t.width||this.k_,t.height||this.oo))}RM(i,n){let s=0,e=0;const r=this.nM[0],h=(t,s)=>{let e=0;for(let r=0;r<this.nM.length;r++){const h=this.nM[r],a=u(\"left\"===t?h.yw():h.Pw()),l=a.vv();if(null!==i&&a.mv(i,s,e,n),e+=l.height,r<this.nM.length-1){const t=this.sM[r],n=t.vv();null!==i&&t.mv(i,s,e),e+=n.height}}};if(this.IM()){h(\"left\",0);s+=u(r.yw()).vv().width}for(let t=0;t<this.nM.length;t++){const r=this.nM[t],h=r.vv();if(null!==i&&r.mv(i,s,e,n),e+=h.height,t<this.nM.length-1){const n=this.sM[t],r=n.vv();null!==i&&n.mv(i,s,e),e+=r.height}}if(s+=r.vv().width,this.VM()){h(\"right\",s);s+=u(r.Pw()).vv().width}const a=(t,n,s)=>{u(\"left\"===t?this.vM.$w():this.vM.jw()).mv(u(i),n,s)};if(this.yn.timeScale.visible){const t=this.vM.vv();if(null!==i){let s=0;this.IM()&&(a(\"left\",s,e),s=u(r.yw()).vv().width),this.vM.mv(i,s,e,n),s+=t.width,this.VM()&&a(\"right\",s,e)}e+=t.height}return t({width:s,height:e})}LM(){let i=0,n=0,s=0;for(const t of this.nM)this.IM()&&(n=Math.max(n,u(t.yw()).Cm(),this.yn.leftPriceScale.minimumWidth)),this.VM()&&(s=Math.max(s,u(t.Pw()).Cm(),this.yn.rightPriceScale.minimumWidth)),i+=t.F_();n=mn(n),s=mn(s);const e=this.k_,r=this.oo,h=Math.max(e-n-s,0),a=1*this.sM.length,l=this.yn.timeScale.visible;let o=l?Math.max(this.vM.Kw(),this.yn.timeScale.minimumHeight):0;var _;o=(_=o)+_%2;const c=a+o,d=r<c?0:r-c,f=d/i;let p=0;const v=window.devicePixelRatio||1;for(let i=0;i<this.nM.length;++i){const e=this.nM[i];e.ew(this.sn.Gn()[i]);let r=0,a=0;a=i===this.nM.length-1?Math.ceil((d-p)*v)/v:Math.round(e.F_()*f*v)/v,r=Math.max(a,2),p+=r,e.km(t({width:h,height:r})),this.IM()&&e.gw(n,\"left\"),this.VM()&&e.gw(s,\"right\"),e.yv()&&this.sn.Ed(e.yv(),r)}this.vM.Yw(t({width:l?h:0,height:o}),l?n:0,l?s:0),this.sn.H_(h),this.rM!==n&&(this.rM=n),this.hM!==s&&(this.hM=s)}fM(t){t?this.jv.addEventListener(\"wheel\",this.cM,{passive:!1}):this.jv.removeEventListener(\"wheel\",this.cM)}zM(t){switch(t.deltaMode){case t.DOM_DELTA_PAGE:return 120;case t.DOM_DELTA_LINE:return 32}return Zn?1/window.devicePixelRatio:1}dM(t){if(!(0!==t.deltaX&&this.yn.handleScroll.mouseWheel||0!==t.deltaY&&this.yn.handleScale.mouseWheel))return;const i=this.zM(t),n=i*t.deltaX/100,s=-i*t.deltaY/100;if(t.cancelable&&t.preventDefault(),0!==s&&this.yn.handleScale.mouseWheel){const i=Math.sign(s)*Math.min(1,Math.abs(s)),n=t.clientX-this.jv.getBoundingClientRect().left;this.Qt().Wd(n,i)}0!==n&&this.yn.handleScroll.mouseWheel&&this.Qt().Hd(-80*n)}yM(t,i){const n=t.ls();3===n&&this.OM(),3!==n&&2!==n||(this.NM(t),this.FM(t,i),this.vM.Pt(),this.nM.forEach((t=>{t.hw()})),3===this.aM?.ls()&&(this.aM.Ss(t),this.OM(),this.NM(this.aM),this.FM(this.aM,i),t=this.aM,this.aM=null)),this.Rm(t)}FM(t,i){for(const n of t.bs())this.xs(n,i)}NM(t){const i=this.sn.Gn();for(let n=0;n<i.length;n++)t._s(n).hs&&i[n].lu()}xs(t,i){const n=this.sn.Et();switch(t.ds){case 0:n.td();break;case 1:n.nd(t.Wt);break;case 2:n.Ms(t.Wt);break;case 3:n.gs(t.Wt);break;case 4:n.Wc();break;case 5:t.Wt.Kc(i)||n.gs(t.Wt.Gc(i))}}gd(t){null!==this.aM?this.aM.Ss(t):this.aM=t,this.lM||(this.lM=!0,this.eM=window.requestAnimationFrame((t=>{if(this.lM=!1,this.eM=0,null!==this.aM){const i=this.aM;this.aM=null,this.yM(i,t);for(const n of i.bs())if(5===n.ds&&!n.Wt.Kc(t)){this.Qt().ps(n.Wt);break}}})))}OM(){this.MM()}SM(t){this.uM.removeChild(t.fv()),t.m()}MM(){const t=this.sn.Gn(),i=t.length,n=this.nM.length;for(let t=i;t<n;t++){const t=_(this.nM.pop());this.uM.removeChild(t.fv()),t.mw().u(this),t.ww().u(this),t.m();const i=this.sM.pop();void 0!==i&&this.SM(i)}for(let s=n;s<i;s++){const i=new Un(this,t[s]);if(i.mw().i(this.WM.bind(this,i),this),i.ww().i(this.HM.bind(this,i),this),this.nM.push(i),s>0){const t=new yn(this,s-1,s);this.sM.push(t),this.uM.insertBefore(t.fv(),this.vM.fv())}this.uM.insertBefore(i.fv(),this.vM.fv())}for(let n=0;n<i;n++){const i=t[n],s=this.nM[n];s.yv()!==i?s.ew(i):s.sw()}this.gM(),this.LM()}UM(t,i,n,s){const e=new Map;if(null!==t){this.sn.Jn().forEach((i=>{const n=i.Un().Hn(t);null!==n&&e.set(i,n)}))}let r;if(null!==t){const i=this.sn.Et().en(t)?.originalTime;void 0!==i&&(r=i)}const h=this.Qt().cu(),a=this.$M(s),l=function(t,i){const n=null!==t&&t.uu instanceof Jt?t.uu:void 0,s=t?.bu?.te,e=void 0!==i&&-1!==i?i:void 0;return null===t||void 0===t.ee?{jM:n,qM:s}:{jM:n,qM:s,YM:{ds:t.ee,KM:(r=t.uu,h=t.ee,r instanceof Pi?\"pane-primitive\":\"marker\"===h||\"primitive\"===h?\"series-primitive\":\"series\"),GM:vn(t.ee,s),Y_:n,ZM:s,XM:e}};var r,h}(h,a);return{Qr:r,$n:t??void 0,JM:i??void 0,XM:-1!==a?a:void 0,jM:l.jM,QM:e,qM:l.qM,YM:l.YM,tg:n??void 0}}$M(t){let i=-1;if(t)i=this.nM.indexOf(t);else{const t=this.Qt().Vd().Kn();null!==t&&(i=this.Qt().Gn().indexOf(t))}return i}WM(t,i,n,s){this.$m.p((()=>this.UM(i,n,s,t)))}HM(t,i,n,s){this.jm.p((()=>this.UM(i,n,s,t)))}pM(t,i,n){this.BM(this.Qt().cu()?.gu??null),this.wd.p((()=>this.UM(t,i,n)))}gM(){const t=this.yn.timeScale.visible?\"\":\"none\";this.vM.fv().style.display=t}IM(){return this.nM[0].yv().X_().N().visible}VM(){return this.nM[0].yv().J_().N().visible}mM(){return\"ResizeObserver\"in window&&(this.oM=new ResizeObserver((t=>{const i=t[t.length-1];if(!i)return;const n=i.contentRect.width,s=i.contentRect.height;this.wM(n,s,!0)})),this.oM.observe(this.Kv,{box:\"border-box\"}),!0)}xM(){null!==this.oM&&this.oM.disconnect(),this.oM=null}}function Jn(t){return Boolean(t.handleScroll.mouseWheel||t.handleScale.mouseWheel)}function Qn(t){return void 0===t.open&&void 0===t.value}function ts(t){return function(t){return void 0!==t.open}(t)||function(t){return void 0!==t.value}(t)}function is(t,i,n,s){const e=n.value,r={$n:i,wt:t,Wt:[e,e,e,e],Qr:s};return void 0!==n.color&&(r.R=n.color),r}function ns(t,i,n,s){const e=n.value,r={$n:i,wt:t,Wt:[e,e,e,e],Qr:s};return void 0!==n.lineColor&&(r.vt=n.lineColor),void 0!==n.topColor&&(r.ah=n.topColor),void 0!==n.bottomColor&&(r.oh=n.bottomColor),r}function ss(t,i,n,s){const e=n.value,r={$n:i,wt:t,Wt:[e,e,e,e],Qr:s};return void 0!==n.topLineColor&&(r._h=n.topLineColor),void 0!==n.bottomLineColor&&(r.uh=n.bottomLineColor),void 0!==n.topFillColor1&&(r.dh=n.topFillColor1),void 0!==n.topFillColor2&&(r.fh=n.topFillColor2),void 0!==n.bottomFillColor1&&(r.ph=n.bottomFillColor1),void 0!==n.bottomFillColor2&&(r.mh=n.bottomFillColor2),r}function es(t,i,n,s){const e={$n:i,wt:t,Wt:[n.open,n.high,n.low,n.close],Qr:s};return void 0!==n.color&&(e.R=n.color),e}function rs(t,i,n,s){const e={$n:i,wt:t,Wt:[n.open,n.high,n.low,n.close],Qr:s};return void 0!==n.color&&(e.R=n.color),void 0!==n.borderColor&&(e.Ht=n.borderColor),void 0!==n.wickColor&&(e.hh=n.wickColor),e}function hs(t,i,n,s,e){const r=_(e)(n),h=Math.max(...r),a=Math.min(...r),l=r[r.length-1],o=[l,h,a,l],{time:u,color:c,...d}=n;return{$n:i,wt:t,Wt:o,Qr:s,ue:d,R:c}}function as(t){return void 0!==t.Wt}function ls(t,i){return void 0!==i.customValues&&(t.ig=i.customValues),t}function os(t){return(i,n,s,e,r,h)=>function(t,i){return i?i(t):Qn(t)}(s,h)?ls({wt:i,$n:n,Qr:e},s):ls(t(i,n,s,e,r),s)}function _s(t){return{Candlestick:os(rs),Bar:os(es),Area:os(ns),Baseline:os(ss),Histogram:os(is),Line:os(is),Custom:os(hs)}[t]}function us(t){return{$n:0,ng:new Map,Oa:t}}function cs(t,i){if(void 0!==t&&0!==t.length)return{sg:i.key(t[0].wt),eg:i.key(t[t.length-1].wt)}}function ds(t){let i;return t.forEach((t=>{void 0===i&&(i=t.Qr)})),_(i)}class fs{constructor(t){this.rg=new Map,this.hg=new Map,this.ag=new Map,this.lg=[],this.Pu=t}m(){this.rg.clear(),this.hg.clear(),this.ag.clear(),this.lg=[]}og(t,i){let n=0!==this.rg.size,s=!1;const e=this.hg.get(t);if(void 0!==e)if(1===this.hg.size)n=!1,s=!0,this.rg.clear();else for(const i of this.lg)i.pointData.ng.delete(t)&&(s=!0);let r=[];if(0!==i.length){const n=i.map((t=>t.time)),e=this.Pu.createConverterToInternalObj(i),h=_s(t.bh()),a=t.ul(),l=t.cl();r=i.map(((i,r)=>{const o=e(i.time),_=this.Pu.key(o);let u=this.rg.get(_);void 0===u&&(u=us(o),this.rg.set(_,u),s=!0);const c=h(o,u.$n,i,n[r],a,l);return u.ng.set(t,c),c}))}n&&this._g(),this.ug(t,r);let h=-1;if(s){const t=[];this.rg.forEach((i=>{t.push({timeWeight:0,time:i.Oa,pointData:i,originalTime:ds(i.ng)})})),t.sort(((t,i)=>this.Pu.key(t.time)-this.Pu.key(i.time))),h=this.cg(t)}return this.dg(t,h,function(t,i,n){const s=cs(t,n),e=cs(i,n);if(void 0!==s&&void 0!==e)return{fg:!1,Va:s.eg>=e.eg&&s.sg>=e.sg}}(this.hg.get(t),e,this.Pu))}if(t){return this.og(t,[])}pg(t,i,n){if(n&&t.Fa())throw new Error(\"Historical updates are not supported when conflation is enabled. Conflation requires data to be processed in order.\");const s=i;!function(t){void 0===t.Qr&&(t.Qr=t.time)}(s),this.Pu.preprocessData(i);const e=this.Pu.createConverterToInternalObj([i])(i.time),r=this.ag.get(t);if(!n&&void 0!==r&&this.Pu.key(e)<this.Pu.key(r))throw new Error(`Cannot update oldest data, last time=${r}, new time=${e}`);let h=this.rg.get(this.Pu.key(e));if(n&&void 0===h)throw new Error(\"Cannot update non-existing data point when historicalUpdate is true\");const a=void 0===h;void 0===h&&(h=us(e),this.rg.set(this.Pu.key(e),h));const l=_s(t.bh()),o=t.ul(),_=t.cl(),u=l(e,h.$n,i,s.Qr,o,_),c=!n&&!a&&void 0!==r&&this.Pu.key(e)===this.Pu.key(r);h.ng.set(t,u),n?this.vg(t,u,h.$n):c&&t.Fa()&&as(u)?(t.Rr(u),this.mg(t,u)):this.mg(t,u);const d={Va:as(u),fg:n};if(!a)return this.dg(t,-1,d);const f={timeWeight:0,time:h.Oa,pointData:h,originalTime:ds(h.ng)},p=Rt(this.lg,this.Pu.key(f.time),((t,i)=>this.Pu.key(t.time)<i));this.lg.splice(p,0,f);for(let t=p;t<this.lg.length;++t)ps(this.lg[t].pointData,t);return this.Pu.fillWeightsForPoints(this.lg,p),this.dg(t,p,d)}wg(t,i){const n=this.hg.get(t);if(void 0===n||i<=0)return[[],this.Mg()];i=Math.min(i,n.length);const s=n.splice(-i).reverse();0===n.length?this.ag.delete(t):this.ag.set(t,n[n.length-1].wt);for(const i of s){const n=this.rg.get(this.Pu.key(i.wt));if(n&&(n.ng.delete(t),0===n.ng.size)){this.rg.delete(this.Pu.key(n.Oa)),this.lg.splice(n.$n,1);for(let t=n.$n;t<this.lg.length;++t)ps(this.lg[t].pointData,t)}}return[s,this.dg(t,this.lg.length-1,{fg:!1,Va:!1})]}mg(t,i){let n=this.hg.get(t);void 0===n&&(n=[],this.hg.set(t,n));const s=0!==n.length?n[n.length-1]:null;null===s||this.Pu.key(i.wt)>this.Pu.key(s.wt)?as(i)&&n.push(i):as(i)?n[n.length-1]=i:n.splice(-1,1),this.ag.set(t,i.wt)}vg(t,i,n){const s=this.hg.get(t);if(void 0===s)return;const e=Rt(s,n,((t,i)=>t.$n<i));as(i)?s[e]=i:s.splice(e,1)}ug(t,i){0!==i.length?(this.hg.set(t,i.filter(as)),this.ag.set(t,i[i.length-1].wt)):(this.hg.delete(t),this.ag.delete(t))}_g(){for(const t of this.lg)0===t.pointData.ng.size&&this.rg.delete(this.Pu.key(t.time))}cg(t){let i=-1;for(let n=0;n<this.lg.length&&n<t.length;++n){const s=this.lg[n],e=t[n];if(this.Pu.key(s.time)!==this.Pu.key(e.time)){i=n;break}e.timeWeight=s.timeWeight,ps(e.pointData,n)}if(-1===i&&this.lg.length!==t.length&&(i=Math.min(this.lg.length,t.length)),-1===i)return-1;for(let n=i;n<t.length;++n)ps(t[n].pointData,n);return this.Pu.fillWeightsForPoints(t,i),this.lg=t,i}gg(){if(0===this.hg.size)return null;let t=0;return this.hg.forEach((i=>{0!==i.length&&(t=Math.max(t,i[i.length-1].$n))})),t}dg(t,i,n){const s=this.Mg();if(-1!==i)this.hg.forEach(((i,e)=>{s.Y_.set(e,{ue:i,bg:e===t?n:void 0})})),this.hg.has(t)||s.Y_.set(t,{ue:[],bg:n}),s.Et.Sg=this.lg,s.Et.xg=i;else{const i=this.hg.get(t);s.Y_.set(t,{ue:i||[],bg:n})}return s}Mg(){return{Y_:new Map,Et:{Dc:this.gg()}}}}function ps(t,i){t.$n=i,t.ng.forEach((t=>{t.$n=i}))}function vs(t,i){return t._t<i}function ms(t,i){return i<t._t}function ws(t,i,n,s){return Rt(t,i,vs,n,s)}function Ms(t,i,n,s){return Dt(t,i,ms,n,s)}function gs(t,i,n){return{ne:t,se:i,ee:n}}function bs(t,i,n,s){return t>=i-s&&t<=n+s}function Ss(t,i,n,s,e,r){const h=e-n,a=r-s;if(0===h&&0===a)return Math.hypot(t-n,i-s);const l=((t-n)*h+(i-s)*a)/(h*h+a*a),o=Math.max(0,Math.min(1,l)),_=n+h*o,u=s+a*o;return Math.hypot(t-_,i-u)}const xs=[0,0];function Cs(t,i,n){return void 0===i||i.wt!==t.wt-1?t._t-n/2:(i._t+t._t)/2}function ys(t,i,n){return void 0===i||i.wt!==t.wt+1?t._t+n/2:(t._t+i._t)/2}function Ps(t,i,n,s,e,r,h){if(null===i||i.from>=i.to||0===t.length)return null;const a=e/2+r,l=ws(t,n-a,i.from,i.to),o=Ms(t,n+a,l,i.to);if(l>=o)return null;let _=Number.POSITIVE_INFINITY;for(let a=l;a<o;a++){const l=t[a],o=a>i.from?t[a-1]:void 0,u=a<i.to-1?t[a+1]:void 0,c=Cs(l,o,e)-r,d=ys(l,u,e)+r;if(n<c||n>d)continue;h(l,xs);const f=xs[0],p=xs[1],v=Math.min(f,p),m=Math.max(f,p),w=v-r,M=m+r;if(s>=v&&s<=m)_=Math.min(_,0);else if(s>=w&&s<=M){const t=Math.min(Math.abs(s-v),Math.abs(m-s));_=Math.min(_,t)}}return Number.isFinite(_)?gs(_,0,\"series-range\"):null}function ks(t,i){return t.wt<i}function Ts(t,i){return i<t.wt}function Rs(t,i,n){const s=i.Na(),e=i.bi(),r=Rt(t,s,ks),h=Dt(t,e,Ts);if(!n)return{from:r,to:h};let a=r,l=h;return r>0&&r<t.length&&t[r].wt>=s&&(a=r-1),h>0&&h<t.length&&t[h-1].wt<=e&&(l=h+1),{from:a,to:l}}class Ds{constructor(t,i,n){this.Cg=!0,this.yg=!0,this.Pg=!0,this.kg=[],this.Tg=null,this.Rg=-1,this.ae=t,this.le=i,this.Dg=n}Pt(t){this.Cg=!0,\"data\"===t&&(this.yg=!0),\"options\"===t&&(this.Pg=!0)}Tt(){return this.ae.It()?(this.Ig(),null===this.Tg?null:this.Vg):null}Qs(t,i){return this.ae.It()?(this.Ig(),null===this.Tg?null:this.Bg(t,i)):null}Bg(t,i){return null}Eg(){this.kg=this.kg.map((t=>({...t,...this.ae.Sa().Sh(t.wt)})))}Ag(){this.Tg=null}Ig(){const t=this.le.Et(),i=t.N().enableConflation?t.sd():0;i!==this.Rg&&(this.yg=!0,this.Rg=i),this.yg&&(this.Lg(),this.yg=!1),this.Pg&&(this.Eg(),this.Pg=!1),this.Cg&&(this.zg(),this.Cg=!1)}zg(){const t=this.ae.Ft(),i=this.le.Et();if(this.Ag(),i.Zi()||t.Zi())return;const n=i.Ee();if(null===n)return;if(0===this.ae.Un().Th())return;const s=this.ae.Lt();null!==s&&(this.Tg=Rs(this.kg,n,this.Dg),this.Og(t,i,s.Wt),this.Ng())}}class Is{constructor(t,i){this.Fg=t,this.Ki=i}st(t,i,n){this.Fg.draw(t,this.Ki,i,n)}}function Vs(t){switch(t){case\"point\":return 2;case\"range\":return 0;default:return 1}}class Bs extends Ds{constructor(t,i,n){super(t,i,!1),this.Yh=n,this.Fg=this.Yh.renderer(),this.Vg=new Is(this.Fg,(t=>this.Wg(t)))}get ga(){return this.Yh.conflationReducer}Ha(t){return this.Yh.priceValueBuilder(t)}dl(t){return this.Yh.isWhitespace(t)}Bg(t,i){const n=this.Fg.hitTest?.(t,i,(t=>this.Wg(t)));if(null!=n)return{ne:(s=n).distance,se:Vs(s.type),ee:\"custom\",gu:s.cursorStyle,te:s.objectId,ie:s.hitTestData};var s;const e=Ps(this.kg,this.Tg,t,i,this.le.Et().ml(),this.ae.N().hitTestTolerance,((t,i)=>{const n=t.Hg;let s=NaN,e=NaN;if(void 0!==n&&!this.Yh.isWhitespace(n))for(const t of this.Yh.priceValueBuilder(n)){const i=this.Wg(t);null!==i&&(s=Number.isNaN(s)?i:Math.min(s,i),e=Number.isNaN(e)?i:Math.max(e,i))}i[0]=s,i[1]=e}));return null===e?null:{...e,ee:\"custom\"}}Lg(){const t=this.ae.Sa();this.kg=this.ae.Ua().Bh().map((i=>({wt:i.$n,_t:NaN,...t.Sh(i.$n),Hg:i.ue})))}Og(t,i){i.Ic(this.kg,b(this.Tg))}Ng(){this.Yh.update({bars:this.kg.map(Es),barSpacing:this.le.Et().ml(),visibleRange:this.Tg,conflationFactor:this.le.Et().sd()},this.ae.N())}Wg(t){const i=this.ae.Lt();return null===i?null:this.ae.Ft().Nt(t,i.Wt)}}function Es(t){return{x:t._t,time:t.wt,originalData:t.Hg,barColor:t.sh}}const As={color:\"#2196f3\"},Ls=(t,i,n)=>{const s=c(n);return new Bs(t,i,s)};function zs(t){const i={value:t.Wt[3],time:t.Qr};return void 0!==t.ig&&(i.customValues=t.ig),i}function Os(t){const i=zs(t);return void 0!==t.R&&(i.color=t.R),i}function Ns(t){const i=zs(t);return void 0!==t.vt&&(i.lineColor=t.vt),void 0!==t.ah&&(i.topColor=t.ah),void 0!==t.oh&&(i.bottomColor=t.oh),i}function Fs(t){const i=zs(t);return void 0!==t._h&&(i.topLineColor=t._h),void 0!==t.uh&&(i.bottomLineColor=t.uh),void 0!==t.dh&&(i.topFillColor1=t.dh),void 0!==t.fh&&(i.topFillColor2=t.fh),void 0!==t.ph&&(i.bottomFillColor1=t.ph),void 0!==t.mh&&(i.bottomFillColor2=t.mh),i}function Ws(t){const i={open:t.Wt[0],high:t.Wt[1],low:t.Wt[2],close:t.Wt[3],time:t.Qr};return void 0!==t.ig&&(i.customValues=t.ig),i}function Hs(t){const i=Ws(t);return void 0!==t.R&&(i.color=t.R),i}function Us(t){const i=Ws(t),{R:n,Ht:s,hh:e}=t;return void 0!==n&&(i.color=n),void 0!==s&&(i.borderColor=s),void 0!==e&&(i.wickColor=e),i}function $s(t){return{Area:Ns,Line:Os,Baseline:Fs,Histogram:Os,Bar:Hs,Candlestick:Us,Custom:js}[t]}function js(t){const i=t.Qr;return{...t.ue,time:i}}const qs={vertLine:{color:\"#9598A1\",width:1,style:3,visible:!0,labelVisible:!0,labelBackgroundColor:\"#131722\"},horzLine:{color:\"#9598A1\",width:1,style:3,visible:!0,labelVisible:!0,labelBackgroundColor:\"#131722\"},mode:1,doNotSnapToHiddenSeriesIndices:!1},Ys={vertLines:{color:\"#D6DCDE\",style:0,visible:!0},horzLines:{color:\"#D6DCDE\",style:0,visible:!0}},Ks={background:{type:\"solid\",color:\"#FFFFFF\"},textColor:\"#191919\",fontSize:12,fontFamily:S,panes:{enableResize:!0,separatorColor:\"#E0E3EB\",separatorHoverColor:\"rgba(178, 181, 189, 0.2)\"},attributionLogo:!0,colorSpace:\"srgb\",colorParsers:[]},Gs={autoScale:!0,mode:0,invertScale:!1,alignLabels:!0,borderVisible:!0,borderColor:\"#2B2B43\",entireTextOnly:!1,visible:!1,ticksVisible:!1,scaleMargins:{bottom:.1,top:.2},minimumWidth:0,ensureEdgeTickMarksVisible:!1,tickMarkDensity:2.5},Zs={rightOffset:0,barSpacing:6,minBarSpacing:.5,maxBarSpacing:0,fixLeftEdge:!1,fixRightEdge:!1,lockVisibleTimeRangeOnResize:!1,rightBarStaysOnScroll:!1,borderVisible:!0,borderColor:\"#2B2B43\",visible:!0,timeVisible:!1,secondsVisible:!0,shiftVisibleRangeOnNewBar:!0,allowShiftVisibleRangeOnWhitespaceReplacement:!1,ticksVisible:!1,uniformDistribution:!1,minimumHeight:0,allowBoldLabels:!0,ignoreWhitespaceIndices:!1,enableConflation:!1,conflationThresholdFactor:1,precomputeConflationOnInit:!1,precomputeConflationPriority:\"background\"};function Xs(){return{addDefaultPane:!0,hoveredSeriesOnTop:!0,width:0,height:0,autoSize:!1,layout:Ks,crosshair:qs,grid:Ys,overlayPriceScales:{...Gs},leftPriceScale:{...Gs,visible:!1},rightPriceScale:{...Gs,visible:!0},defaultVisiblePriceScaleId:\"right\",timeScale:Zs,localization:{locale:dn?navigator.language:\"\",dateFormat:\"dd MMM 'yy\"},handleScroll:{mouseWheel:!0,pressedMouseMove:!0,horzTouchDrag:!0,vertTouchDrag:!0},handleScale:{axisPressedMouseMove:{time:!0,price:!0},axisDoubleClickReset:{time:!0,price:!0},mouseWheel:!0,pinch:!0},kineticScroll:{mouse:!1,touch:!0},trackingMode:{exitMode:1}}}class Js{constructor(t,i,n){this.hv=t,this.Ug=i,this.$g=n??0}applyOptions(t){this.hv.Qt().Dd(this.Ug,t,this.$g)}options(){return this.Ki().N()}width(){return Z(this.Ug)?this.hv.DM(this.Ug):0}setVisibleRange(t){this.setAutoScale(!1),this.Ki().Go(new mt(t.from,t.to))}getVisibleRange(){let t,i,n=this.Ki().ar();if(null===n)return null;if(this.Ki().ho()){const s=this.Ki().S_(),e=Yi(s);n=vi(n,this.Ki().lo()),t=Number((Math.round(n.Je()/s)*s).toFixed(e)),i=Number((Math.round(n.Qe()/s)*s).toFixed(e))}else t=n.Je(),i=n.Qe();return{from:t,to:i}}setAutoScale(t){this.applyOptions({autoScale:t})}Ki(){return u(this.hv.Qt().Id(this.Ug,this.$g)).Ft}}class Qs{constructor(t,i,n,s){this.hv=t,this.yt=n,this.jg=i,this.qg=s}getHeight(){return this.yt.$t()}setHeight(t){const i=this.hv.Qt(),n=i._f(this.yt);i.Ld(n,t)}getStretchFactor(){return this.yt.F_()}setStretchFactor(t){this.yt.W_(t),this.hv.Qt().ka()}paneIndex(){return this.hv.Qt()._f(this.yt)}moveTo(t){const i=this.paneIndex();i!==t&&(o(t>=0&&t<this.hv.lv().length,\"Invalid pane index\"),this.hv.Qt().Od(i,t))}getSeries(){return this.yt.Y_().map((t=>this.jg(t)))??[]}getHTMLElement(){const t=this.hv.lv();return t&&0!==t.length&&t[this.paneIndex()]?t[this.paneIndex()].fv():null}attachPrimitive(t){this.yt.ol(t),t.attached&&t.attached({chart:this.qg,requestUpdate:()=>this.yt.Qt().ka()})}detachPrimitive(t){this.yt._l(t)}priceScale(t){if(null===this.yt.O_(t))throw new Error(`Cannot find price scale with id: ${t}`);return new Js(this.hv,t,this.paneIndex())}setPreserveEmptyPane(t){this.yt.j_(t)}preserveEmptyPane(){return this.yt.q_()}addCustomSeries(t,i={},n=0){return this.qg.addCustomSeries(t,i,n)}addSeries(t,i={}){return this.qg.addSeries(t,i,this.paneIndex())}}const te={color:\"#FF0000\",price:0,lineStyle:2,lineWidth:1,lineVisible:!0,axisLabelVisible:!0,title:\"\",axisLabelColor:\"\",axisLabelTextColor:\"\"};class ie{constructor(t){this._r=t}applyOptions(t){this._r.vr(t)}options(){return this._r.N()}Yg(){return this._r}}class ne{constructor(t,i,n,s,e,r){this.Kg=new d,this.ae=t,this.Gg=i,this.Zg=n,this.Pu=e,this.qg=s,this.Xg=r}m(){this.Kg.m()}priceFormatter(){return this.ae.sl()}priceToCoordinate(t){const i=this.ae.Lt();return null===i?null:this.ae.Ft().Nt(t,i.Wt)}coordinateToPrice(t){const i=this.ae.Lt();return null===i?null:this.ae.Ft().Tn(t,i.Wt)}barsInLogicalRange(t){if(null===t)return null;const i=new Oi(new Ai(t.from,t.to)).Uu(),n=this.ae.Un();if(n.Zi())return null;const s=n.Hn(i.Na(),1),e=n.Hn(i.bi(),-1),r=u(n.Rh()),h=u(n.Qn());if(null!==s&&null!==e&&s.$n>e.$n)return{barsBefore:t.from-r,barsAfter:h-t.to};const a={barsBefore:null===s||s.$n===r?t.from-r:s.$n-r,barsAfter:null===e||e.$n===h?h-t.to:h-e.$n};return null!==s&&null!==e&&(a.from=s.Qr,a.to=e.Qr),a}setData(t){this.Pu,this.ae.bh(),this.Gg.Jg(this.ae,t),this.Qg(\"full\")}update(t,i=!1){this.ae.bh(),this.Gg.tb(this.ae,t,i),this.Qg(\"update\")}pop(t=1){const i=this.Gg.ib(this.ae,t);0!==i.length&&this.Qg(\"update\");const n=$s(this.seriesType());return i.map((t=>n(t)))}dataByIndex(t,i){const n=this.ae.Un().Hn(t,i);if(null===n)return null;return $s(this.seriesType())(n)}data(){const t=$s(this.seriesType());return this.ae.Un().Bh().map((i=>t(i)))}subscribeDataChanged(t){this.Kg.i(t)}unsubscribeDataChanged(t){this.Kg._(t)}applyOptions(t){this.ae.vr(t)}options(){return M(this.ae.N())}priceScale(){return this.Zg.priceScale(this.ae.Ft().pl(),this.getPane().paneIndex())}createPriceLine(t){const i=f(M(te),t),n=this.ae.Ea(i);return new ie(n)}removePriceLine(t){this.ae.Aa(t.Yg())}priceLines(){return this.ae.La().map((t=>new ie(t)))}seriesType(){return this.ae.bh()}lastValueData(t){const i=this.ae.Ae(t);return i.Le?{noData:!0}:{noData:!1,price:i.Mt,color:i.R}}attachPrimitive(t){this.ae.ol(t),t.attached&&t.attached({chart:this.qg,series:this,requestUpdate:()=>this.ae.Qt().ka(),horzScaleBehavior:this.Pu})}detachPrimitive(t){this.ae._l(t),t.detached&&t.detached(),this.ae.Qt().ka()}getPane(){const t=this.ae,i=u(this.ae.Qt().Ks(t));return this.Xg(i)}moveToPane(t){this.ae.Qt().rf(this.ae,t)}seriesOrder(){const t=this.ae.Qt().Ks(this.ae);return null===t?-1:t.Y_().indexOf(this.ae)}setSeriesOrder(t){const i=this.ae.Qt().Ks(this.ae);null!==i&&i.vu(this.ae,t)}Qg(t){this.Kg.v()&&this.Kg.p(t)}}class se{constructor(t,i,n){this.nb=new d,this.Qu=new d,this.Nw=new d,this.sn=t,this.ia=t.Et(),this.vM=i,this.ia.Zc().i(this.sb.bind(this)),this.ia.Xc().i(this.eb.bind(this)),this.vM.qw().i(this.rb.bind(this)),this.Pu=n}m(){this.ia.Zc().u(this),this.ia.Xc().u(this),this.vM.qw().u(this),this.nb.m(),this.Qu.m(),this.Nw.m()}scrollPosition(){return this.ia.Oc()}scrollToPosition(t,i){i?this.ia.Yc(t,1e3):this.sn.gs(t)}scrollToRealTime(){this.ia.qc()}getVisibleRange(){const t=this.ia.xc();return null===t?null:{from:t.from.originalTime,to:t.to.originalTime}}setVisibleRange(t){const i={from:this.Pu.convertHorzItemToInternal(t.from),to:this.Pu.convertHorzItemToInternal(t.to)},n=this.ia.kc(i);this.sn.sf(n)}getVisibleLogicalRange(){const t=this.ia.Sc();return null===t?null:{from:t.Na(),to:t.bi()}}setVisibleLogicalRange(t){o(t.from<=t.to,\"The from index cannot be after the to index.\"),this.sn.sf(t)}resetTimeScale(){this.sn.ws()}fitContent(){this.sn.td()}logicalToCoordinate(t){const i=this.sn.Et();return i.Zi()?null:i.jt(t)}coordinateToLogical(t){return this.ia.Zi()?null:this.ia.Vc(t)}timeToIndex(t,i){const n=this.Pu.convertHorzItemToInternal(t);return this.ia.Mc(n,i)}timeToCoordinate(t){const i=this.timeToIndex(t,!1);return null===i?null:this.ia.jt(i)}coordinateToTime(t){const i=this.sn.Et(),n=i.Vc(t),s=i.en(n);return null===s?null:s.originalTime}width(){return this.vM.pv().width}height(){return this.vM.pv().height}subscribeVisibleTimeRangeChange(t){this.nb.i(t)}unsubscribeVisibleTimeRangeChange(t){this.nb._(t)}subscribeVisibleLogicalRangeChange(t){this.Qu.i(t)}unsubscribeVisibleLogicalRangeChange(t){this.Qu._(t)}subscribeSizeChange(t){this.Nw.i(t)}unsubscribeSizeChange(t){this.Nw._(t)}applyOptions(t){this.ia.vr(t)}options(){return{...M(this.ia.N()),barSpacing:this.ia.ml()}}sb(){this.nb.v()&&this.nb.p(this.getVisibleRange())}eb(){this.Qu.v()&&this.Qu.p(this.getVisibleLogicalRange())}rb(t){this.Nw.p(t.width,t.height)}}function ee(t){return function(t){if(w(t.handleScale)){const i=t.handleScale;t.handleScale={axisDoubleClickReset:{time:i,price:i},axisPressedMouseMove:{time:i,price:i},mouseWheel:i,pinch:i}}else if(void 0!==t.handleScale){const{axisPressedMouseMove:i,axisDoubleClickReset:n}=t.handleScale;w(i)&&(t.handleScale.axisPressedMouseMove={time:i,price:i}),w(n)&&(t.handleScale.axisDoubleClickReset={time:n,price:n})}const i=t.handleScroll;w(i)&&(t.handleScroll={horzTouchDrag:i,vertTouchDrag:i,mouseWheel:i,pressedMouseMove:i})}(t),t}class re{constructor(t,i,n){this.hb=new Map,this.ab=new Map,this.lb=new d,this.ob=new d,this._b=new d,this.dd=new WeakMap,this.ub=new fs(i);const s=void 0===n?M(Xs()):f(M(Xs()),ee(n));this.cb=i,this.hv=new Xn(t,s,i),this.hv.mw().i((t=>{this.lb.v()&&this.lb.p(this.fb(t()))}),this),this.hv.ww().i((t=>{this.ob.v()&&this.ob.p(this.fb(t()))}),this),this.hv.Bd().i((t=>{this._b.v()&&this._b.p(this.fb(t()))}),this);const e=this.hv.Qt();this.pb=new se(e,this.hv.bM(),this.cb)}remove(){this.hv.mw().u(this),this.hv.ww().u(this),this.hv.Bd().u(this),this.pb.m(),this.hv.m(),this.hb.clear(),this.ab.clear(),this.lb.m(),this.ob.m(),this._b.m(),this.ub.m()}resize(t,i,n){this.autoSizeActive()||this.hv.wM(t,i,n)}addCustomSeries(t,i={},n=0){const s=(t=>({type:\"Custom\",isBuiltIn:!1,defaultOptions:{...As,...t.defaultOptions()},mb:Ls,wb:t}))(c(t));return this.Mb(s,i,n)}addSeries(t,i={},n=0){return this.Mb(t,i,n)}removeSeries(t){const i=_(this.hb.get(t)),n=this.ub.if(i);this.hv.Qt().if(i),this.gb(n),this.hb.delete(t),this.ab.delete(i)}Jg(t,i){this.gb(this.ub.og(t,i))}tb(t,i,n){this.gb(this.ub.pg(t,i,n))}ib(t,i){const[n,s]=this.ub.wg(t,i);return 0!==n.length&&this.gb(s),n}subscribeClick(t){this.lb.i(t)}unsubscribeClick(t){this.lb._(t)}subscribeCrosshairMove(t){this._b.i(t)}unsubscribeCrosshairMove(t){this._b._(t)}subscribeDblClick(t){this.ob.i(t)}unsubscribeDblClick(t){this.ob._(t)}priceScale(t,i=0){return new Js(this.hv,t,i)}timeScale(){return this.pb}applyOptions(t){this.hv.vr(ee(t))}options(){return this.hv.N()}takeScreenshot(t=!1,i=!1){let n,s;try{i||(n=this.hv.Qt().N().crosshair.mode,this.hv.vr({crosshair:{mode:2}})),s=this.hv.TM(t)}finally{i||void 0===n||this.hv.Qt().vr({crosshair:{mode:n}})}return s}addPane(t=!1){const i=this.hv.Qt().uf();return i.j_(t),this.bb(i)}removePane(t){this.hv.Qt().Ad(t)}swapPanes(t,i){this.hv.Qt().zd(t,i)}autoSizeActive(){return this.hv.CM()}chartElement(){return this.hv.Mv()}panes(){return this.hv.Qt().Gn().map((t=>this.bb(t)))}paneSize(t=0){const i=this.hv.AM(t);return{height:i.height,width:i.width}}setCrosshairPosition(t,i,n){const s=this.hb.get(n);if(void 0===s)return;const e=this.hv.Qt().Ks(s);null!==e&&this.hv.Qt().Gd(t,i,e)}clearCrosshairPosition(){this.hv.Qt().Zd(!0)}horzBehaviour(){return this.cb}Mb(t,i={},n=0){o(void 0!==t.mb),function(t){if(void 0===t||\"custom\"===t.type)return;const i=t;void 0!==i.minMove&&void 0===i.precision&&(i.precision=Yi(i.minMove))}(i.priceFormat),\"Candlestick\"===t.type&&function(t){void 0!==t.borderColor&&(t.borderUpColor=t.borderColor,t.borderDownColor=t.borderColor),void 0!==t.wickColor&&(t.wickUpColor=t.wickColor,t.wickDownColor=t.wickColor)}(i);const s=f(M(e),M(t.defaultOptions),i),r=t.mb,h=new Jt(this.hv.Qt(),t.type,s,r,t.wb);this.hv.Qt().Qd(h,n);const a=new ne(h,this,this,this,this.cb,(t=>this.bb(t)));return this.hb.set(a,h),this.ab.set(h,a),a}gb(t){const i=this.hv.Qt();for(const i of t.Y_.keys())i.Ia();i.Xd(t.Et.Dc,t.Et.Sg,t.Et.xg),t.Y_.forEach(((t,i)=>i.ht(t.ue,t.bg))),i.Et().dc(),i.Lc()}Sb(t){return _(this.ab.get(t))}xb(t){return void 0!==t&&this.ab.has(t)?this.Sb(t):void 0}fb(t){const i=new Map;t.QM.forEach(((t,n)=>{const s=n.bh(),e=$s(s)(t);if(\"Custom\"!==s)o(ts(e));else{const t=n.cl();o(!t||!1===t(e))}i.set(this.Sb(n),e)}));const n=this.xb(t.jM),s=void 0===t.YM?void 0:{type:t.YM.ds,sourceKind:t.YM.KM,objectKind:t.YM.GM,series:this.xb(t.YM.Y_),objectId:t.YM.ZM,paneIndex:t.YM.XM};return{time:t.Qr,logical:t.$n,point:t.JM,paneIndex:t.XM,hoveredInfo:s,hoveredSeries:n,hoveredObjectId:t.qM,seriesData:i,sourceEvent:t.tg}}bb(t){let i=this.dd.get(t);return i||(i=new Qs(this.hv,(t=>this.Sb(t)),t,this),this.dd.set(t,i)),i}}function he(t){if(m(t)){const i=document.getElementById(t);return o(null!==i,`Cannot find element in DOM with id=${t}`),i}return t}function ae(t,i,n){const s=he(t),e=new re(s,i,n);return i.setOptions(e.options()),e}function le(t,i){return ae(t,new cn,cn.Tf(i))}function oe(){return cn}function _e(t,i,n,s){return Math.hypot(n-t,s-i)}function ue(t,i,n,s,e,r,h,a=0){if(0===i.length||s.from>=i.length||s.to<=0)return;const{context:l,horizontalPixelRatio:o,verticalPixelRatio:_}=t,u=i[s.from];let c=r(t,u),d=u;if(s.to-s.from<2){const i=e/2;l.beginPath();const n={_t:u._t-i,ut:u.ut},s={_t:u._t+i,ut:u.ut};l.moveTo(n._t*o,n.ut*_),l.lineTo(s._t*o,s.ut*_),h(t,c,n,s)}else{const e=a>0;let f=0;const p=(i,n)=>{if(h(t,c,d,n),l.beginPath(),c=i,d=n,e){const t=f%a;l.lineDashOffset=t,f=t}};let v=d;l.beginPath(),l.moveTo(u._t*o,u.ut*_);for(let h=s.from+1;h<s.to;++h){v=i[h];const s=v._t*o,a=v.ut*_,u=r(t,v);switch(n){case 0:if(l.lineTo(s,a),e){const t=i[h-1],n=t._t*o,e=t.ut*_;f+=_e(n,e,s,a)}break;case 1:{const t=i[h-1],n=t.ut*_;l.lineTo(s,n),e&&(f+=Math.abs(v._t-t._t)*o),u!==c&&(p(u,v),l.lineTo(s,n)),l.lineTo(s,a),e&&(f+=Math.abs(v.ut-t.ut)*_);break}case 2:{const[t,n]=pe(i,h-1,h),r=t._t*o,u=t.ut*_,c=n._t*o,d=n.ut*_;if(l.bezierCurveTo(r,u,c,d,s,a),e){const t=i[h-1],n=t._t*o,e=t.ut*_,l=_e(n,e,s,a),p=_e(n,e,r,u)+_e(r,u,c,d)+_e(c,d,s,a);f+=(l+p)/2}break}}1!==n&&u!==c&&(p(u,v),l.moveTo(s,a))}(d!==v||d===v&&1===n)&&h(t,c,d,v),e&&(l.lineDashOffset=0)}}const ce=6;function de(t,i){return{_t:t._t-i._t,ut:t.ut-i.ut}}function fe(t,i){return{_t:t._t/i,ut:t.ut/i}}function pe(t,i,n){const s=Math.max(0,i-1),e=Math.min(t.length-1,n+1);var r,h;return[(r=t[i],h=fe(de(t[n],t[s]),ce),{_t:r._t+h._t,ut:r.ut+h.ut}),de(t[n],fe(de(t[e],t[i]),ce))]}function ve(t,i){const n=t.context;n.strokeStyle=i,n.stroke()}class me extends R{constructor(){super(...arguments),this.rt=null}ht(t){this.rt=t}et(t){if(null===this.rt)return;const{ot:i,lt:n,Cb:s,yb:e,ct:r,Gt:h,Pb:l}=this.rt;if(null===n)return;const o=t.context;o.lineCap=\"butt\",o.lineWidth=r*t.verticalPixelRatio;const _=a(o,h);o.lineJoin=\"round\";const u=this.kb.bind(this),c=function(t){return t.reduce(((t,i)=>t+i),0)}(_);void 0!==e&&ue(t,i,e,n,s,u,ve,c),l&&function(t,i,n,s,e){if(s.to-s.from<=0)return;const{horizontalPixelRatio:r,verticalPixelRatio:h,context:a}=t;let l=null;const o=Math.max(1,Math.floor(r))%2/2,_=n*h+o;for(let n=s.to-1;n>=s.from;--n){const s=i[n];if(s){const i=e(t,s);i!==l&&(null!==l&&a.fill(),a.beginPath(),a.fillStyle=i,l=i);const n=Math.round(s._t*r)+o,u=s.ut*h;a.moveTo(n,u),a.arc(n,u,_,0,2*Math.PI)}}a.fill()}(t,i,l,n,u)}}class we extends me{kb(t,i){return i.vt}}function Me(t,i,n,s,e){const r=1-e;return r*r*r*t+3*r*r*e*i+3*r*e*e*n+e*e*e*s}function ge(t,i,n,s,e){if(2===n){const[n,r]=pe(s,e-1,e);return[Math.min(t._t,i._t,n._t,r._t),Math.max(t._t,i._t,n._t,r._t)]}return[Math.min(t._t,i._t),Math.max(t._t,i._t)]}function be(t,i,n,s,e,r,h,a){switch(e){case 1:{const e=Ss(t,i,n._t,n.ut,s._t,n.ut),r=Ss(t,i,s._t,n.ut,s._t,s.ut),h=Math.min(e,r);return h<=a?h:null}case 2:{const[e,l]=pe(r,h-1,h),o=function(t,i,n){let s=Number.POSITIVE_INFINITY,e=n[0];for(let r=1;r<=12;r++){const h=r/12,a={_t:Me(n[0]._t,n[1]._t,n[2]._t,n[3]._t,h),ut:Me(n[0].ut,n[1].ut,n[2].ut,n[3].ut,h)};s=Math.min(s,Ss(t,i,e._t,e.ut,a._t,a.ut)),e=a}return s}(t,i,[n,e,l,s]);return o<=a?o:null}default:{const e=Ss(t,i,n._t,n.ut,s._t,s.ut);return e<=a?e:null}}}class Se extends Ds{constructor(t,i){super(t,i,!0)}Og(t,i,n){i.Ic(this.kg,b(this.Tg)),t.Jo(this.kg,n,b(this.Tg))}Tb(t,i){return{wt:t,Mt:i,_t:NaN,ut:NaN}}Lg(){const t=this.ae.Sa();this.kg=this.ae.Ua().Bh().map((i=>{let n;if((i.Gr??1)>1){const t=i.Wt[1],s=i.Wt[2],e=i.Wt[3];n=Math.abs(t-e)>Math.abs(s-e)?t:s}else n=i.Wt[3];return this.Rb(i.$n,n,t)}))}}class xe extends Se{Bg(t,i){const n=this.ae.N();return function(t,i,n,s,e,r,h,a=0,l=0){if(null===i||i.from>=i.to||0===t.length)return null;const o=Math.max(r/2,h??0)+l;let _=Number.POSITIVE_INFINITY;if(void 0!==h){const e=h+l,r=ws(t,n-e,i.from,i.to),a=Ms(t,n+e,r,i.to);for(let i=r;i<a;i++){const e=t[i];if(!bs(n,e._t,e._t,h+l))continue;const r=Math.hypot(n-e._t,s-e.ut);r<=h+l&&(_=Math.min(_,r))}}if(i.to-i.from<2){const e=t[i.from],r=Math.max(a/2,o),h=Ss(n,s,e._t-r,e.ut,e._t+r,e.ut);return h<=o&&(_=Math.min(_,h)),Number.isFinite(_)?gs(_,2,\"series-point\"):null}let u=Number.POSITIVE_INFINITY;const c=ws(t,n-o,i.from,i.to),d=Ms(t,n+o,c,i.to),f=Math.max(i.from+1,c),p=Math.min(i.to,d+1);for(let i=f;i<p;i++){const r=t[i-1],h=t[i],[a,l]=ge(r,h,e,t,i);if(!bs(n,a,l,o))continue;const _=be(n,s,r,h,e,t,i,o);null!==_&&(u=Math.min(u,_))}return Number.isFinite(_)?gs(_,2,\"series-point\"):Number.isFinite(u)?gs(u,1,\"series-line\"):null}(this.kg,this.Tg,t,i,n.lineType,n.lineVisible?n.lineWidth:1,n.pointMarkersVisible?n.pointMarkersRadius||n.lineWidth/2+2:void 0,this.le.Et().ml(),n.hitTestTolerance)}}class Ce extends xe{constructor(){super(...arguments),this.Vg=new we}Rb(t,i,n){return{...this.Tb(t,i),...n.Sh(t)}}Ng(){const t=this.ae.N(),i={ot:this.kg,Gt:t.lineStyle,yb:t.lineVisible?t.lineType:void 0,ct:t.lineWidth,Pb:t.pointMarkersVisible?t.pointMarkersRadius||t.lineWidth/2+2:void 0,lt:this.Tg,Cb:this.le.Et().ml()};this.Vg.ht(i)}}const ye={type:\"Line\",isBuiltIn:!0,defaultOptions:{color:\"#2196f3\",lineStyle:0,lineWidth:3,lineType:0,lineVisible:!0,crosshairMarkerVisible:!0,crosshairMarkerRadius:4,crosshairMarkerBorderColor:\"\",crosshairMarkerBorderWidth:2,crosshairMarkerBackgroundColor:\"\",lastPriceAnimation:0,pointMarkersVisible:!1},mb:(t,i)=>new Ce(t,i)};function Pe(t,i){return t.weight>i.weight?t:i}class ke{constructor(){this.Db=new d,this.Ib=function(t){let i=!1;return function(...n){i||(i=!0,queueMicrotask((()=>{t(...n),i=!1})))}}((()=>this.Db.p(this.Vb))),this.Vb=0}Bb(){return this.Db}m(){this.Db.m()}options(){return this.yn}setOptions(t){this.yn=t}preprocessData(t){}updateFormatter(t){this.yn&&(this.yn.localization=t)}createConverterToInternalObj(t){return this.Ib(),t=>(t>this.Vb&&(this.Vb=t),t)}key(t){return t}cacheKey(t){return t}convertHorzItemToInternal(t){return t}formatHorzItem(t){return this.Eb(t)}formatTickmark(t){return this.Eb(t.time)}maxTickMarkWeight(t){return t.reduce(Pe,t[0]).weight}fillWeightsForPoints(t,i){for(let s=i;s<t.length;++s)t[s].timeWeight=(n=t[s].time)%120==0?10:n%60==0?9:n%36==0?8:n%12==0?7:n%6==0?6:n%3==0?5:n%1==0?4:0;var n;this.Vb=t[t.length-1].time,this.Ib()}Eb(t){if(this.yn.localization?.timeFormatter)return this.yn.localization.timeFormatter(t);if(t<12)return`${t}M`;const i=Math.floor(t/12),n=t%12;return 0===n?`${i}Y`:`${i}Y${n}M`}}const Te={yieldCurve:{baseResolution:1,minimumTimeRange:120,startTimeRange:0},timeScale:{ignoreWhitespaceIndices:!0},leftPriceScale:{visible:!0},rightPriceScale:{visible:!1},localization:{priceFormatter:t=>t.toFixed(3)+\"%\"}},Re={lastValueVisible:!1,priceLineVisible:!1};class De extends re{constructor(t,i){const n=f(Te,i||{}),s=new ke;super(t,s,n),s.setOptions(this.options()),this._initWhitespaceSeries()}addSeries(t,i={},n=0){if(t.isBuiltIn&&!1===[\"Area\",\"Line\"].includes(t.type))throw new Error(\"Yield curve only support Area and Line series\");const s={...Re,...i};return super.addSeries(t,s,n)}_initWhitespaceSeries(){const t=this.horzBehaviour(),i=this.addSeries(ye);let n;function s(s){const e=function(t,i){return{me:Math.max(0,t.startTimeRange),we:Math.max(0,t.minimumTimeRange,i||0),Ab:Math.max(1,t.baseResolution)}}(t.options().yieldCurve,s),r=(({me:t,we:i,Ab:n})=>`${t}~${i}~${n}`)(e);r!==n&&(n=r,i.setData(function({me:t,we:i,Ab:n}){return Array.from({length:Math.floor((i-t)/n)+1},((i,s)=>({time:t+s*n})))}(e)))}s(0),t.Bb().i(s)}}function Ie(t,i){const n=he(t);return new De(n,i)}function Ve(t,i){return t.weight>i.weight?t:i}class Be{options(){return this.yn}setOptions(t){this.yn=t}preprocessData(t){}updateFormatter(t){this.yn&&(this.yn.localization=t)}createConverterToInternalObj(t){return t=>t}key(t){return t}cacheKey(t){return t}convertHorzItemToInternal(t){return t}formatHorzItem(t){return t.toFixed(this.Ds())}formatTickmark(t,i){return t.time.toFixed(this.Ds())}maxTickMarkWeight(t){return t.reduce(Ve,t[0]).weight}fillWeightsForPoints(t,i){for(let s=i;s<t.length;++s)t[s].timeWeight=(n=t[s].time)===100*Math.ceil(n/100)?8:n===50*Math.ceil(n/50)?7:n===25*Math.ceil(n/25)?6:n===10*Math.ceil(n/10)?5:n===5*Math.ceil(n/5)?4:n===Math.ceil(n)?3:2*n===Math.ceil(2*n)?1:0;var n}Ds(){return this.yn.localization.precision}}function Ee(t,i){return ae(t,new Be,i)}function Ae(t,i,n,s,e){const{context:r,horizontalPixelRatio:h,verticalPixelRatio:a}=i;r.lineTo(e._t*h,t*a),r.lineTo(s._t*h,t*a),r.closePath(),r.fillStyle=n,r.fill()}class Le extends R{constructor(){super(...arguments),this.rt=null}ht(t){this.rt=t}et(t){if(null===this.rt)return;const{ot:i,lt:n,Cb:s,ct:e,Gt:r,yb:h}=this.rt,l=this.rt.Lb??(this.rt.zb?0:t.mediaSize.height);if(null===n)return;const o=t.context;o.lineCap=\"butt\",o.lineJoin=\"round\",o.lineWidth=e,a(o,r),o.lineWidth=1,ue(t,i,h,n,s,this.Ob.bind(this),Ae.bind(null,l))}}class ze{Nb(t,i){const n=this.Fb,{Wb:s,Hb:e,Ub:r,$b:h,Lb:a,jb:l,qb:o}=i;if(void 0===this.Yb||void 0===n||n.Wb!==s||n.Hb!==e||n.Ub!==r||n.$b!==h||n.Lb!==a||n.jb!==l||n.qb!==o){const{verticalPixelRatio:n}=t,_=a||l>0?n:1,u=l*_,c=o===t.bitmapSize.height?o:o*_,d=(a??0)*_,f=t.context.createLinearGradient(0,u,0,c);if(f.addColorStop(0,s),null!=a){const t=ni((d-u)/(c-u),0,1);f.addColorStop(t,e),f.addColorStop(t,r)}f.addColorStop(1,h),this.Yb=f,this.Fb=i}return this.Yb}}class Oe extends Le{constructor(){super(...arguments),this.Kb=new ze}Ob(t,i){const n=this.rt;return this.Kb.Nb(t,{Wb:i.dh,Hb:i.fh,Ub:i.ph,$b:i.mh,Lb:n.Lb,jb:n.jb??0,qb:n.qb??t.bitmapSize.height})}}class Ne extends me{constructor(){super(...arguments),this.Gb=new ze}kb(t,i){const n=this.rt;return this.Gb.Nb(t,{Wb:i._h,Hb:i._h,Ub:i.uh,$b:i.uh,Lb:n.Lb,jb:n.jb??0,qb:n.qb??t.bitmapSize.height})}}class Fe{constructor(t,i,n,s){this.Zb=t,this.Xb=i,this.Jb=n,this.Qb=s}st(t,i,n){this.Zb.st(t,i,n),!this.Jb()||i&&this.Qb()||this.Xb.st(t,i,n)}}class We{constructor(t,i){this.Xb=t,this.tS=i}Tt(){return this.tS()?this.Xb:null}}class He extends xe{constructor(t,i){super(t,i),this.iS=new Oe,this.nS=new Ne,this.sS=new We(this.nS,(()=>this.Jb())),this.eS=[this],this.rS=[this.sS],this.hS={Za:this.eS,qa:this.rS},this.Vg=new Fe(this.iS,this.nS,(()=>this.Jb()),(()=>this.le.N().hoveredSeriesOnTop))}Ga(){return this.hS}Rb(t,i,n){return{...this.Tb(t,i),...n.Sh(t)}}Ng(){const t=this.ae.Lt();if(null===t)return;const i=this.ae.N(),n=this.ae.Ft().Nt(i.baseValue.price,t.Wt),s=this.le.Et().ml();if(null===this.Tg||0===this.kg.length)return;let e,r;if(i.relativeGradient){e=this.kg[this.Tg.from].ut,r=this.kg[this.Tg.from].ut;for(let t=this.Tg.from;t<this.Tg.to;t++){const i=this.kg[t];i.ut<e&&(e=i.ut),i.ut>r&&(r=i.ut)}}this.iS.ht({ot:this.kg,ct:i.lineWidth,Gt:i.lineStyle,yb:i.lineType,Lb:n,jb:e,qb:r,zb:!1,lt:this.Tg,Cb:s}),this.nS.ht({ot:this.kg,ct:i.lineWidth,Gt:i.lineStyle,yb:i.lineVisible?i.lineType:void 0,Pb:i.pointMarkersVisible?i.pointMarkersRadius||i.lineWidth/2+2:void 0,Lb:n,jb:e,qb:r,lt:this.Tg,Cb:s})}Jb(){return this.ae.It()&&null!==this.Tg&&this.aS()}aS(){const t=this.ae.N();return t.lineVisible||t.pointMarkersVisible}}const Ue={type:\"Baseline\",isBuiltIn:!0,defaultOptions:{baseValue:{type:\"price\",price:0},relativeGradient:!1,topFillColor1:\"rgba(38, 166, 154, 0.28)\",topFillColor2:\"rgba(38, 166, 154, 0.05)\",topLineColor:\"rgba(38, 166, 154, 1)\",bottomFillColor1:\"rgba(239, 83, 80, 0.05)\",bottomFillColor2:\"rgba(239, 83, 80, 0.28)\",bottomLineColor:\"rgba(239, 83, 80, 1)\",lineWidth:3,lineStyle:0,lineType:0,lineVisible:!0,crosshairMarkerVisible:!0,crosshairMarkerRadius:4,crosshairMarkerBorderColor:\"\",crosshairMarkerBorderWidth:2,crosshairMarkerBackgroundColor:\"\",lastPriceAnimation:0,pointMarkersVisible:!1},mb:(t,i)=>new He(t,i)};class $e extends Le{constructor(){super(...arguments),this.Kb=new ze}Ob(t,i){return this.Kb.Nb(t,{Wb:i.ah,Hb:\"\",Ub:\"\",$b:i.oh,jb:this.rt?.jb??0,qb:t.bitmapSize.height})}}class je extends xe{constructor(t,i){super(t,i),this.lS=new $e,this.Xb=new we,this.sS=new We(this.Xb,(()=>this.Jb())),this.eS=[this],this.rS=[this.sS],this.hS={Za:this.eS,qa:this.rS},this.Vg=new Fe(this.lS,this.Xb,(()=>this.Jb()),(()=>this.le.N().hoveredSeriesOnTop))}Ga(){return this.hS}Rb(t,i,n){return{...this.Tb(t,i),...n.Sh(t)}}Ng(){const t=this.ae.N();if(null===this.Tg||0===this.kg.length)return;let i;if(t.relativeGradient){i=this.kg[this.Tg.from].ut;for(let t=this.Tg.from;t<this.Tg.to;t++){const n=this.kg[t];n.ut<i&&(i=n.ut)}}this.lS.ht({yb:t.lineType,ot:this.kg,Gt:t.lineStyle,ct:t.lineWidth,Lb:null,jb:i,zb:t.invertFilledArea,lt:this.Tg,Cb:this.le.Et().ml()}),this.Xb.ht({yb:t.lineVisible?t.lineType:void 0,ot:this.kg,Gt:t.lineStyle,ct:t.lineWidth,lt:this.Tg,Cb:this.le.Et().ml(),Pb:t.pointMarkersVisible?t.pointMarkersRadius||t.lineWidth/2+2:void 0})}Jb(){return this.ae.It()&&null!==this.Tg&&this.aS()}aS(){const t=this.ae.N();return t.lineVisible||t.pointMarkersVisible}}const qe={type:\"Area\",isBuiltIn:!0,defaultOptions:{topColor:\"rgba( 46, 220, 135, 0.4)\",bottomColor:\"rgba( 40, 221, 100, 0)\",invertFilledArea:!1,relativeGradient:!1,lineColor:\"#33D778\",lineStyle:0,lineWidth:3,lineType:0,lineVisible:!0,crosshairMarkerVisible:!0,crosshairMarkerRadius:4,crosshairMarkerBorderColor:\"\",crosshairMarkerBorderWidth:2,crosshairMarkerBackgroundColor:\"\",lastPriceAnimation:0,pointMarkersVisible:!1},mb:(t,i)=>new je(t,i)};class Ye extends R{constructor(){super(...arguments),this.qt=null,this.oS=0,this._S=0}ht(t){this.qt=t}et({context:t,horizontalPixelRatio:i,verticalPixelRatio:n}){if(null===this.qt||0===this.qt.Un.length||null===this.qt.lt)return;if(this.oS=this.uS(i),this.oS>=2){Math.max(1,Math.floor(i))%2!=this.oS%2&&this.oS--}this._S=this.qt.cS?Math.min(this.oS,Math.floor(i)):this.oS;let s=null;const e=this._S<=this.oS&&this.qt.ml>=Math.floor(1.5*i);for(let r=this.qt.lt.from;r<this.qt.lt.to;++r){const h=this.qt.Un[r];s!==h.sh&&(t.fillStyle=h.sh,s=h.sh);const a=Math.floor(.5*this._S),l=Math.round(h._t*i),o=l-a,_=this._S,u=o+_-1,c=Math.min(h.n_,h.s_),d=Math.max(h.n_,h.s_),f=Math.round(c*n)-a,p=Math.round(d*n)+a,v=Math.max(p-f,this._S);t.fillRect(o,f,_,v);const m=Math.ceil(1.5*this.oS);if(e){if(this.qt.dS){const i=l-m;let s=Math.max(f,Math.round(h.i_*n)-a),e=s+_-1;e>f+v-1&&(e=f+v-1,s=e-_+1),t.fillRect(i,s,o-i,e-s+1)}const i=l+m;let s=Math.max(f,Math.round(h.e_*n)-a),e=s+_-1;e>f+v-1&&(e=f+v-1,s=e-_+1),t.fillRect(u+1,s,i-u,e-s+1)}}}uS(t){const i=Math.floor(t);return Math.max(i,Math.floor(function(t,i){return Math.floor(.3*t*i)}(u(this.qt).ml,t)))}}class Ke extends Ds{constructor(t,i){super(t,i,!1)}Bg(t,i){return Ps(this.kg,this.Tg,t,i,this.le.Et().ml(),this.ae.N().hitTestTolerance,((t,i)=>{i[0]=t.n_,i[1]=t.s_}))}Og(t,i,n){i.Ic(this.kg,b(this.Tg)),t.t_(this.kg,n,b(this.Tg))}fS(t,i,n){return{wt:t,jr:i.Wt[0],qr:i.Wt[1],Yr:i.Wt[2],Kr:i.Wt[3],_t:NaN,i_:NaN,n_:NaN,s_:NaN,e_:NaN}}Lg(){const t=this.ae.Sa();this.kg=this.ae.Ua().Bh().map((i=>this.Rb(i.$n,i,t)))}}class Ge extends Ke{constructor(){super(...arguments),this.Vg=new Ye}Rb(t,i,n){return{...this.fS(t,i,n),...n.Sh(t)}}Ng(){const t=this.ae.N();this.Vg.ht({Un:this.kg,ml:this.le.Et().ml(),dS:t.openVisible,cS:t.thinBars,lt:this.Tg})}}const Ze={type:\"Bar\",isBuiltIn:!0,defaultOptions:{upColor:\"#26a69a\",downColor:\"#ef5350\",openVisible:!0,thinBars:!0},mb:(t,i)=>new Ge(t,i)};class Xe extends R{constructor(){super(...arguments),this.qt=null,this.oS=0}ht(t){this.qt=t}et(t){if(null===this.qt||0===this.qt.Un.length||null===this.qt.lt)return;const{horizontalPixelRatio:i}=t;if(this.oS=function(t,i){if(t>=2.5&&t<=4)return Math.floor(3*i);const n=1-.2*Math.atan(Math.max(4,t)-4)/(.5*Math.PI),s=Math.floor(t*n*i),e=Math.floor(t*i),r=Math.min(s,e);return Math.max(Math.floor(i),r)}(this.qt.ml,i),this.oS>=2){Math.floor(i)%2!=this.oS%2&&this.oS--}const n=this.qt.Un;this.qt.pS&&this.vS(t,n,this.qt.lt),this.qt.gi&&this.Vm(t,n,this.qt.lt);const s=this.mS(i);(!this.qt.gi||this.oS>2*s)&&this.wS(t,n,this.qt.lt)}vS(t,i,n){if(null===this.qt)return;const{context:s,horizontalPixelRatio:e,verticalPixelRatio:r}=t;let h=\"\",a=Math.min(Math.floor(e),Math.floor(this.qt.ml*e));a=Math.max(Math.floor(e),Math.min(a,this.oS));const l=Math.floor(.5*a);let o=null;for(let t=n.from;t<n.to;t++){const n=i[t];n.rh!==h&&(s.fillStyle=n.rh,h=n.rh);const _=Math.round(Math.min(n.i_,n.e_)*r),u=Math.round(Math.max(n.i_,n.e_)*r),c=Math.round(n.n_*r),d=Math.round(n.s_*r);let f=Math.round(e*n._t)-l;const p=f+a-1;null!==o&&(f=Math.max(o+1,f),f=Math.min(f,p));const v=p-f+1;s.fillRect(f,c,v,_-c),s.fillRect(f,u+1,v,d-u),o=p}}mS(t){let i=Math.floor(1*t);this.oS<=2*i&&(i=Math.floor(.5*(this.oS-1)));const n=Math.max(Math.floor(t),i);return this.oS<=2*n?Math.max(Math.floor(t),Math.floor(1*t)):n}Vm(t,i,n){if(null===this.qt)return;const{context:s,horizontalPixelRatio:e,verticalPixelRatio:r}=t;let h=\"\";const a=this.mS(e);let l=null;for(let t=n.from;t<n.to;t++){const n=i[t];n.eh!==h&&(s.fillStyle=n.eh,h=n.eh);let o=Math.round(n._t*e)-Math.floor(.5*this.oS);const _=o+this.oS-1,u=Math.round(Math.min(n.i_,n.e_)*r),c=Math.round(Math.max(n.i_,n.e_)*r);if(null!==l&&(o=Math.max(l+1,o),o=Math.min(o,_)),this.qt.ml*e>2*a)L(s,o,u,_-o+1,c-u+1,a);else{const t=_-o+1;s.fillRect(o,u,t,c-u+1)}l=_}}wS(t,i,n){if(null===this.qt)return;const{context:s,horizontalPixelRatio:e,verticalPixelRatio:r}=t;let h=\"\";const a=this.mS(e);for(let t=n.from;t<n.to;t++){const n=i[t];let l=Math.round(Math.min(n.i_,n.e_)*r),o=Math.round(Math.max(n.i_,n.e_)*r),_=Math.round(n._t*e)-Math.floor(.5*this.oS),u=_+this.oS-1;if(n.sh!==h){const t=n.sh;s.fillStyle=t,h=t}this.qt.gi&&(_+=a,l+=a,u-=a,o-=a),l>o||s.fillRect(_,l,u-_+1,o-l+1)}}}class Je extends Ke{constructor(){super(...arguments),this.Vg=new Xe}Rb(t,i,n){return{...this.fS(t,i,n),...n.Sh(t)}}Ng(){const t=this.ae.N();this.Vg.ht({Un:this.kg,ml:this.le.Et().ml(),pS:t.wickVisible,gi:t.borderVisible,lt:this.Tg})}}const Qe={type:\"Candlestick\",isBuiltIn:!0,defaultOptions:{upColor:\"#26a69a\",downColor:\"#ef5350\",wickVisible:!0,borderVisible:!0,borderColor:\"#378658\",borderUpColor:\"#26a69a\",borderDownColor:\"#ef5350\",wickColor:\"#737375\",wickUpColor:\"#26a69a\",wickDownColor:\"#ef5350\"},mb:(t,i)=>new Je(t,i)};class tr extends R{constructor(){super(...arguments),this.qt=null,this.MS=[]}ht(t){this.qt=t,this.MS=[]}et({context:t,horizontalPixelRatio:i,verticalPixelRatio:n}){if(null===this.qt||0===this.qt.ot.length||null===this.qt.lt)return;this.MS.length||this.gS(i);const s=Math.max(1,Math.floor(n)),e=Math.round(this.qt.bS*n)-Math.floor(s/2),r=e+s;for(let i=this.qt.lt.from;i<this.qt.lt.to;i++){const h=this.qt.ot[i],a=this.MS[i-this.qt.lt.from],l=Math.round(h.ut*n);let o,_;t.fillStyle=h.sh,l<=e?(o=l,_=r):(o=e,_=l-Math.floor(s/2)+s),t.fillRect(a.Na,o,a.bi-a.Na+1,_-o)}}gS(t){if(null===this.qt||0===this.qt.ot.length||null===this.qt.lt)return void(this.MS=[]);const i=Math.ceil(this.qt.ml*t)<=1?0:Math.max(1,Math.floor(t)),n=Math.round(this.qt.ml*t)-i;this.MS=new Array(this.qt.lt.to-this.qt.lt.from);for(let i=this.qt.lt.from;i<this.qt.lt.to;i++){const s=this.qt.ot[i],e=Math.round(s._t*t);let r,h;if(n%2){const t=(n-1)/2;r=e-t,h=e+t}else{const t=n/2;r=e-t,h=e+t-1}this.MS[i-this.qt.lt.from]={Na:r,bi:h,SS:e,ce:s._t*t,wt:s.wt}}for(let t=this.qt.lt.from+1;t<this.qt.lt.to;t++){const n=this.MS[t-this.qt.lt.from],s=this.MS[t-this.qt.lt.from-1];n.wt===s.wt+1&&(n.Na-s.bi!==i+1&&(s.SS>s.ce?s.bi=n.Na-i-1:n.Na=s.bi+i+1))}let s=Math.ceil(this.qt.ml*t);for(let t=this.qt.lt.from;t<this.qt.lt.to;t++){const i=this.MS[t-this.qt.lt.from];i.bi<i.Na&&(i.bi=i.Na);const n=i.bi-i.Na+1;s=Math.min(n,s)}if(i>0&&s<4)for(let t=this.qt.lt.from;t<this.qt.lt.to;t++){const i=this.MS[t-this.qt.lt.from];i.bi-i.Na+1>s&&(i.SS>i.ce?i.bi-=1:i.Na+=1)}}}class ir extends Se{constructor(){super(...arguments),this.Vg=new tr}Bg(t,i){const n=this.ae.Ft().Nt(this.ae.N().base,u(this.ae.Lt()).Wt);return null===n?null:Ps(this.kg,this.Tg,t,i,this.le.Et().ml(),this.ae.N().hitTestTolerance,((t,i)=>{i[0]=t.ut,i[1]=n}))}Rb(t,i,n){return{...this.Tb(t,i),...n.Sh(t)}}Ng(){const t={ot:this.kg,ml:this.le.Et().ml(),lt:this.Tg,bS:this.ae.Ft().Nt(this.ae.N().base,u(this.ae.Lt()).Wt)};this.Vg.ht(t)}}const nr={type:\"Histogram\",isBuiltIn:!0,defaultOptions:{color:\"#26a69a\",base:0},mb:(t,i)=>new ir(t,i)};class sr{constructor(t,i){this.yt=t,this.xS=i,this.CS()}detach(){this.yt.detachPrimitive(this.xS)}getPane(){return this.yt}applyOptions(t){this.xS.vr?.(t)}CS(){this.yt.attachPrimitive(this.xS)}}const er={visible:!0,horzAlign:\"center\",vertAlign:\"center\",lines:[]},rr={color:\"rgba(0, 0, 0, 0.5)\",fontSize:48,fontFamily:S,fontStyle:\"\",text:\"\"};class hr{constructor(t){this.yS=new Map,this.qt=t}draw(t){t.useMediaCoordinateSpace((t=>{if(!this.qt.visible)return;const{context:i,mediaSize:n}=t;let s=0;for(const t of this.qt.lines){if(0===t.text.length)continue;i.font=t.k;const e=this.PS(i,t.text);e>n.width?t.Uc=n.width/e:t.Uc=1,s+=t.lineHeight*t.Uc}let e=0;switch(this.qt.vertAlign){case\"top\":e=0;break;case\"center\":e=Math.max((n.height-s)/2,0);break;case\"bottom\":e=Math.max(n.height-s,0)}for(const t of this.qt.lines){i.save(),i.fillStyle=t.color;let s=0;switch(this.qt.horzAlign){case\"left\":i.textAlign=\"left\",s=t.lineHeight/2;break;case\"center\":i.textAlign=\"center\",s=n.width/2;break;case\"right\":i.textAlign=\"right\",s=n.width-1-t.lineHeight/2}i.translate(s,e),i.textBaseline=\"top\",i.font=t.k,i.scale(t.Uc,t.Uc),i.fillText(t.text,0,t.kS),i.restore(),e+=t.lineHeight*t.Uc}}))}PS(t,i){const n=this.TS(t.font);let s=n.get(i);return void 0===s&&(s=t.measureText(i).width,n.set(i,s)),s}TS(t){let i=this.yS.get(t);return void 0===i&&(i=new Map,this.yS.set(t,i)),i}}class ar{constructor(t){this.yn=or(t)}Pt(t){this.yn=or(t)}renderer(){return new hr(this.yn)}}function lr(t){return{...t,k:x(t.fontSize,t.fontFamily,t.fontStyle),lineHeight:t.lineHeight||1.2*t.fontSize,kS:0,Uc:0}}function or(t){return{...t,lines:t.lines.map(lr)}}function _r(t){return{...rr,...t}}function ur(t){return{...er,...t,lines:t.lines?.map(_r)??[]}}class cr{constructor(t){this.yn=ur(t),this.RS=[new ar(this.yn)]}updateAllViews(){this.RS.forEach((t=>t.Pt(this.yn)))}paneViews(){return this.RS}attached({requestUpdate:t}){this.DS=t}detached(){this.DS=void 0}vr(t){this.yn=ur({...this.yn,...t}),this.DS&&this.DS()}}function dr(t,i){return new sr(t,new cr(i))}const fr={alpha:1,padding:0};class pr{constructor(t){this.qt=t}draw(t){t.useMediaCoordinateSpace((t=>{const i=t.context,n=this.IS(this.qt,t.mediaSize);n&&this.qt.VS&&(i.globalAlpha=this.qt.alpha??1,i.drawImage(this.qt.VS,n._t,n.ut,n.nn,n.$t))}))}IS(t,i){const{maxHeight:n,maxWidth:s,BS:e,ES:r,padding:h}=t,a=Math.round(i.width/2),l=Math.round(i.height/2),o=h??0;let _=i.width-2*o,u=i.height-2*o;n&&(u=Math.min(u,n)),s&&(_=Math.min(_,s));const c=_/r,d=u/e,f=Math.min(c,d),p=r*f,v=e*f;return{_t:a-.5*p,ut:l-.5*v,$t:v,nn:p}}}class vr{constructor(t){this.AS=null,this.LS=0,this.zS=0,this.yn=t,this.M=mr(this.yn,this.AS,this.LS,this.zS)}OS(t){void 0!==t.NS&&(this.LS=t.NS),void 0!==t.FS&&(this.zS=t.FS),void 0!==t.WS&&(this.AS=t.WS),this.Pt()}HS(t){this.yn=t,this.Pt()}zOrder(){return\"bottom\"}Pt(){this.M=mr(this.yn,this.AS,this.LS,this.zS)}renderer(){return new pr(this.M)}}function mr(t,i,n,s){return{...t,VS:i,ES:n,BS:s}}function wr(t){return{...fr,...t}}class Mr{constructor(t,i){this.US=null,this.$S=t,this.yn=wr(i),this.RS=[new vr(this.yn)]}updateAllViews(){this.RS.forEach((t=>t.Pt()))}paneViews(){return this.RS}attached(t){const{requestUpdate:i}=t;this.jS=i,this.US=new Image,this.US.onload=()=>{const t=this.US?.naturalHeight??1,i=this.US?.naturalWidth??1;this.RS.forEach((n=>n.OS({FS:t,NS:i,WS:this.US}))),this.jS&&this.jS()},this.US.src=this.$S}detached(){this.jS=void 0,this.US=null}vr(t){this.yn=wr({...this.yn,...t}),this.qS(),this.DS&&this.DS()}DS(){this.jS&&this.jS()}qS(){this.RS.forEach((t=>t.HS(this.yn)))}}function gr(t,i,n){return new sr(t,new Mr(i,n))}class br{constructor(t,i){this.ae=t,this.Jh=i,this.CS()}detach(){this.ae.detachPrimitive(this.Jh)}getSeries(){return this.ae}applyOptions(t){this.Jh&&this.Jh.vr&&this.Jh.vr(t)}CS(){this.ae.attachPrimitive(this.Jh)}}const Sr={autoScale:!0,zOrder:\"normal\"};function xr(t,i){return ei(Math.min(Math.max(t,12),30)*i)}function Cr(t,i){const n=\"circle\"===t?.8:\"square\"===t?.7:1;return ei(Math.max(i,12)*n)}function yr(t){return function(t){const i=Math.ceil(t);return i%2!=0?i-1:i}(xr(t,1))}function Pr(t){return Math.max(xr(t,.1),3)}function kr(t,i,n){return i?t:n?Math.ceil(t/2):0}function Tr(t,i,n,s){const e=(Cr(\"arrowUp\",s)-1)/2*n.YS,r=(ei(s/2)-1)/2*n.YS;i.beginPath(),t?(i.moveTo(n._t-e,n.ut),i.lineTo(n._t,n.ut-e),i.lineTo(n._t+e,n.ut),i.lineTo(n._t+r,n.ut),i.lineTo(n._t+r,n.ut+e),i.lineTo(n._t-r,n.ut+e),i.lineTo(n._t-r,n.ut)):(i.moveTo(n._t-e,n.ut),i.lineTo(n._t,n.ut+e),i.lineTo(n._t+e,n.ut),i.lineTo(n._t+r,n.ut),i.lineTo(n._t+r,n.ut-e),i.lineTo(n._t-r,n.ut-e),i.lineTo(n._t-r,n.ut)),i.fill()}function Rr(t,i,n,s,e,r){const h=(Cr(\"arrowUp\",s)-1)/2,a=(ei(s/2)-1)/2;if(e>=i-a-2&&e<=i+a+2&&r>=(t?n:n-h)-2&&r<=(t?n+h:n)+2)return!0;return(()=>{if(e<i-h-3||e>i+h+3||r<(t?n-h-3:n)||r>(t?n:n+h+3))return!1;const s=Math.abs(e-i);return Math.abs(r-n)+3>=s/2})()}class Dr{constructor(){this.qt=null,this.$s=new rt,this.F=-1,this.W=\"\",this.hm=\"\",this.KS=\"normal\"}ht(t){this.qt=t}js(t,i,n){this.F===t&&this.W===i||(this.F=t,this.W=i,this.hm=x(t,i),this.$s.Os()),this.KS=n}Qs(t,i){if(null===this.qt||null===this.qt.lt)return null;for(let n=this.qt.lt.from;n<this.qt.lt.to;n++){const s=this.qt.ot[n];if(s&&Vr(s,t,i))return{zOrder:\"normal\",externalId:s.te??\"\",itemType:\"marker\"}}return null}draw(t){\"aboveSeries\"!==this.KS&&t.useBitmapCoordinateSpace((t=>{this.et(t)}))}drawBackground(t){\"aboveSeries\"===this.KS&&t.useBitmapCoordinateSpace((t=>{this.et(t)}))}et({context:t,horizontalPixelRatio:i,verticalPixelRatio:n}){if(null!==this.qt&&null!==this.qt.lt){t.textBaseline=\"middle\",t.font=this.hm;for(let s=this.qt.lt.from;s<this.qt.lt.to;s++){const e=this.qt.ot[s];void 0!==e.ri&&(e.ri.nn=this.$s.Ii(t,e.ri.GS),e.ri.$t=this.F,e.ri._t=e._t-e.ri.nn/2),Ir(e,t,i,n)}}}}function Ir(t,i,n,s){i.fillStyle=t.R,void 0!==t.ri&&function(t,i,n,s,e,r){t.save(),t.scale(e,r),t.fillText(i,n,s),t.restore()}(i,t.ri.GS,t.ri._t,t.ri.ut,n,s),function(t,i,n){if(0===t.Th)return;switch(t.ZS){case\"arrowDown\":return void Tr(!1,i,n,t.Th);case\"arrowUp\":return void Tr(!0,i,n,t.Th);case\"circle\":return void function(t,i,n){const s=(Cr(\"circle\",n)-1)/2;t.beginPath(),t.arc(i._t,i.ut,s*i.YS,0,2*Math.PI,!1),t.fill()}(i,n,t.Th);case\"square\":return void function(t,i,n){const s=Cr(\"square\",n),e=(s-1)*i.YS/2,r=i._t-e,h=i.ut-e;t.fillRect(r,h,s*i.YS,s*i.YS)}(i,n,t.Th)}t.ZS}(t,i,function(t,i,n){const s=Math.max(1,Math.floor(i))%2/2;return{_t:Math.round(t._t*i)+s,ut:t.ut*n,YS:i}}(t,n,s))}function Vr(t,i,n){return!(void 0===t.ri||!function(t,i,n,s,e,r){const h=s/2;return e>=t&&e<=t+n&&r>=i-h&&r<=i+h}(t.ri._t,t.ri.ut,t.ri.nn,t.ri.$t,i,n))||function(t,i,n){if(0===t.Th)return!1;switch(t.ZS){case\"arrowDown\":return Rr(!0,t._t,t.ut,t.Th,i,n);case\"arrowUp\":return Rr(!1,t._t,t.ut,t.Th,i,n);case\"circle\":return function(t,i,n,s,e){const r=2+Cr(\"circle\",n)/2,h=t-s,a=i-e;return Math.sqrt(h*h+a*a)<=r}(t._t,t.ut,t.Th,i,n);case\"square\":return function(t,i,n,s,e){const r=Cr(\"square\",n),h=(r-1)/2,a=t-h,l=i-h;return s>=a&&s<=a+r&&e>=l&&e<=l+r}(t._t,t.ut,t.Th,i,n)}}(t,i,n)}function Br(t){return\"atPriceTop\"===t||\"atPriceBottom\"===t||\"atPriceMiddle\"===t}function Er(t,i,n,s,e,r,h,a){const l=function(t,i,n){if(Br(i.position)&&void 0!==i.price)return i.price;if(\"value\"in(s=t)&&\"number\"==typeof s.value)return t.value;var s;if(function(t){return\"open\"in t&&\"high\"in t&&\"low\"in t&&\"close\"in t}(t)){if(\"inBar\"===i.position)return t.close;if(\"aboveBar\"===i.position)return n?t.low:t.high;if(\"belowBar\"===i.position)return n?t.high:t.low}}(n,i,h.priceScale().options().invertScale);if(void 0===l)return;const o=Br(i.position),_=a.timeScale(),c=p(i.size)?Math.max(i.size,0):1,d=yr(_.options().barSpacing)*c,f=d/2;t.Th=d;switch(i.position){case\"inBar\":case\"atPriceMiddle\":return t.ut=u(h.priceToCoordinate(l)),void(void 0!==t.ri&&(t.ri.ut=t.ut+f+r+.6*e));case\"aboveBar\":case\"atPriceTop\":{const i=o?0:s.XS;return t.ut=u(h.priceToCoordinate(l))-f-i,void 0!==t.ri&&(t.ri.ut=t.ut-f-.6*e,s.XS+=1.2*e),void(o||(s.XS+=d+r))}case\"belowBar\":case\"atPriceBottom\":{const i=o?0:s.JS;return t.ut=u(h.priceToCoordinate(l))+f+i,void 0!==t.ri&&(t.ri.ut=t.ut+f+r+.6*e,s.JS+=1.2*e),void(o||(s.JS+=d+r))}}}class Ar{constructor(t,i,n){this.QS=[],this.xt=!0,this.tx=!0,this.Xt=new Dr,this.Te=t,this.Gv=i,this.qt={ot:[],lt:null},this.yn=n}renderer(){if(!this.Te.options().visible)return null;this.xt&&this.Ig();const t=this.Gv.options().layout;return this.Xt.js(t.fontSize,t.fontFamily,this.yn.zOrder),this.Xt.ht(this.qt),this.Xt}ix(t){this.QS=t,this.Pt(\"data\")}Pt(t){this.xt=!0,\"data\"===t&&(this.tx=!0)}nx(t){this.xt=!0,this.yn=t}zOrder(){return\"aboveSeries\"===this.yn.zOrder?\"top\":this.yn.zOrder}Ig(){const t=this.Gv.timeScale(),i=this.QS;this.tx&&(this.qt.ot=i.map((t=>({wt:t.time,_t:0,ut:0,Th:0,ZS:t.shape,R:t.color,te:t.id,sx:t.sx,ri:void 0}))),this.tx=!1);const n=this.Gv.options().layout;this.qt.lt=null;const s=t.getVisibleLogicalRange();if(null===s)return;const e=new Ai(Math.floor(s.from),Math.ceil(s.to));if(null===this.Te.dataByIndex(0,1))return;if(0===this.qt.ot.length)return;let r=NaN;const h=Pr(t.options().barSpacing),a={XS:h,JS:h};this.qt.lt=Rs(this.qt.ot,e,!0);for(let s=this.qt.lt.from;s<this.qt.lt.to;s++){const e=i[s];e.time!==r&&(a.XS=h,a.JS=h,r=e.time);const l=this.qt.ot[s];l._t=u(t.logicalToCoordinate(e.time)),void 0!==e.text&&e.text.length>0&&(l.ri={GS:e.text,_t:0,ut:0,nn:0,$t:0});const o=this.Te.dataByIndex(e.time,0);null!==o&&Er(l,e,o,a,n.fontSize,h,this.Te,this.Gv)}this.xt=!1}}function Lr(t){return{...Sr,...t}}class zr{constructor(t){this.Yh=null,this.QS=[],this.hx=[],this.lx=null,this.Te=null,this.Gv=null,this.ox=!0,this._x=null,this.ux=null,this.vx=null,this.mx=!0,this.yn=Lr(t)}attached(t){this.wx(),this.Gv=t.chart,this.Te=t.series,this.Yh=new Ar(this.Te,u(this.Gv),this.yn),this.jS=t.requestUpdate,this.Te.subscribeDataChanged((t=>this.Qg(t))),this.mx=!0,this.DS()}DS(){this.jS&&this.jS()}detached(){this.Te&&this.lx&&this.Te.unsubscribeDataChanged(this.lx),this.Gv=null,this.Te=null,this.Yh=null,this.lx=null}ix(t){this.mx=!0,this.QS=t,this.wx(),this.ox=!0,this.ux=null,this.DS()}Mx(){return this.QS}paneViews(){return this.Yh?[this.Yh]:[]}updateAllViews(){this.gx()}hitTest(t,i){return this.Yh?this.Yh.renderer()?.Qs(t,i)??null:null}autoscaleInfo(t,i){if(this.yn.autoScale&&this.Yh){const t=this.bx();if(t)return{priceRange:null,margins:t}}return null}vr(t){this.yn=Lr({...this.yn,...t}),this.DS&&this.DS()}bx(){const t=u(this.Gv).timeScale().options().barSpacing;if(this.ox||t!==this.vx){if(this.vx=t,this.QS.length>0){const i=Pr(t),n=1.5*yr(t)+2*i,s=this.Sx();this._x={above:kr(n,s.aboveBar,s.inBar),below:kr(n,s.belowBar,s.inBar)}}else this._x=null;this.ox=!1}return this._x}Sx(){return null===this.ux&&(this.ux=this.QS.reduce(((t,i)=>(t[i.position]||(t[i.position]=!0),t)),{inBar:!1,aboveBar:!1,belowBar:!1,atPriceTop:!1,atPriceBottom:!1,atPriceMiddle:!1})),this.ux}wx(){if(!this.mx||!this.Gv||!this.Te)return;const t=this.Gv.timeScale(),i=this.Te?.data();if(null==t.getVisibleLogicalRange()||!this.Te||0===i.length)return void(this.hx=[]);const n=t.timeToIndex(u(i[0].time),!0);this.hx=this.QS.map(((i,s)=>{const e=t.timeToIndex(i.time,!0),r=e<n?1:-1,h=u(this.Te).dataByIndex(e,r),a={time:t.timeToIndex(u(h).time,!1),position:i.position,shape:i.shape,color:i.color,id:i.id,sx:s,text:i.text,size:i.size,price:i.price,Qr:i.time};if(\"atPriceTop\"===i.position||\"atPriceBottom\"===i.position||\"atPriceMiddle\"===i.position){if(void 0===i.price)throw new Error(`Price is required for position ${i.position}`);return{...a,position:i.position,price:i.price}}return{...a,position:i.position,price:i.price}})),this.mx=!1}gx(t){this.Yh&&(this.wx(),this.Yh.ix(this.hx),this.Yh.nx(this.yn),this.Yh.Pt(t))}Qg(t){this.mx=!0,this.DS()}}class Or extends br{constructor(t,i,n){super(t,i),n&&this.setMarkers(n)}setMarkers(t){this.Jh.ix(t)}markers(){return this.Jh.Mx()}}function Nr(t,i,n){const s=new Or(t,new zr(n??{}));return i&&s.setMarkers(i),s}class Fr{constructor(t){this.QS=new Map,this.xx=t}Cx(t,i,n){if(this.yx(i),void 0!==n){const s=window.setTimeout((()=>{this.QS.delete(i),this.Px()}),n),e={...t,kx:s,Tx:Date.now()+n};this.QS.set(i,e)}else this.QS.set(i,{...t,kx:void 0,Tx:void 0});this.Px()}yx(t){const i=this.QS.get(t);i&&void 0!==i.kx&&window.clearTimeout(i.kx),this.QS.delete(t),this.Px()}Rx(){for(const[t]of this.QS)this.yx(t)}Dx(){const t=Date.now(),i=[];for(const[n,s]of this.QS)!s.Tx||s.Tx>t?i.push({time:s.time,sign:s.sign,value:s.value}):this.yx(n);return i}Ix(t){this.xx=t}Px(){this.xx&&this.xx()}}const Wr={positiveColor:\"#22AB94\",negativeColor:\"#F7525F\",updateVisibilityDuration:5e3};class Hr{constructor(t,i,n,s){this.qt=t,this.Vx=i,this.Bx=n,this.Ex=s}draw(t){t.useBitmapCoordinateSpace((t=>{const i=t.context,n=Math.max(1,Math.floor(t.horizontalPixelRatio))%2/2,s=4*t.verticalPixelRatio+n;this.qt.forEach((e=>{const r=Math.round(e._t*t.horizontalPixelRatio)+n;i.beginPath();const h=this.Ax(e.Lx);i.fillStyle=h,i.arc(r,e.ut*t.verticalPixelRatio,s,0,2*Math.PI,!1),i.fill(),e.Lx&&(i.strokeStyle=h,i.lineWidth=Math.floor(2*t.horizontalPixelRatio),i.beginPath(),i.moveTo((e._t-4.7)*t.horizontalPixelRatio+n,(e.ut-7*e.Lx)*t.verticalPixelRatio),i.lineTo(e._t*t.horizontalPixelRatio+n,(e.ut-7*e.Lx-7*e.Lx*.5)*t.verticalPixelRatio),i.lineTo((e._t+4.7)*t.horizontalPixelRatio+n,(e.ut-7*e.Lx)*t.verticalPixelRatio),i.stroke())}))}))}Ax(t){return 0===t?this.Vx:t>0?this.Ex:this.Bx}}class Ur{constructor(t,i,n){this.qt=[],this.Te=t,this.ia=i,this.yn=n}Pt(t){this.qt=t.map((t=>{const i=this.Te.priceToCoordinate(t.value);if(null===i)return null;return{_t:u(this.ia.timeToCoordinate(t.time)),ut:i,Lx:t.sign}})).filter(g)}renderer(){const t=function(t,i){return function(t,i){return\"Area\"===i}(0,i)?t.lineColor:t.color}(this.Te.options(),this.Te.seriesType());return new Hr(this.qt,t,this.yn.negativeColor,this.yn.positiveColor)}}function $r(t,i){return\"Line\"===i||\"Area\"===i}class jr{constructor(t){this.Gv=void 0,this.Te=void 0,this.RS=[],this.Pu=null,this.zx=new Map,this.Ox=new Fr((()=>this.DS())),this.yn={...Wr,...t}}vr(t){this.yn={...this.yn,...t},this.DS()}ix(t){this.Ox.Rx();const i=this.Pu;i&&t.forEach((t=>{this.Ox.Cx(t,i.key(t.time))}))}Mx(){return this.Ox.Dx()}DS(){this.jS?.()}attached(t){const{chart:i,series:n,requestUpdate:s,horzScaleBehavior:e}=t;this.Gv=i,this.Te=n,this.Pu=e;const r=this.Te.seriesType();if(\"Area\"!==r&&\"Line\"!==r)throw new Error(\"UpDownMarkersPrimitive is only supported for Area and Line series types\");this.RS=[new Ur(this.Te,this.Gv.timeScale(),this.yn)],this.jS=s,this.DS()}detached(){this.Gv=void 0,this.Te=void 0,this.jS=void 0}_m(){return _(this.Gv)}Y_(){return _(this.Te)}updateAllViews(){this.RS.forEach((t=>t.Pt(this.Mx())))}paneViews(){return this.RS}ht(t){if(!this.Te)throw new Error(\"Primitive not attached to series\");const i=this.Te.seriesType();this.zx.clear();const n=this.Pu;n&&t.forEach((t=>{ts(t)&&$r(0,i)&&this.zx.set(n.key(t.time),t.value)})),_(this.Te).setData(t)}Pt(t,i){if(!this.Te||!this.Pu)throw new Error(\"Primitive not attached to series\");const n=this.Te.seriesType(),s=this.Pu.key(t.time);if(Qn(t)&&this.zx.delete(s),ts(t)&&$r(0,n)){const i=this.zx.get(s);i&&this.Ox.Cx({time:t.time,value:t.value,sign:qr(t.value,i)},s,this.yn.updateVisibilityDuration)}_(this.Te).update(t,i)}Nx(){this.Ox.Rx()}}function qr(t,i){return t===i?0:t-i>0?1:-1}class Yr extends br{setData(t){return this.Jh.ht(t)}update(t,i){return this.Jh.Pt(t,i)}markers(){return this.Jh.Mx()}setMarkers(t){return this.Jh.ix(t)}clearMarkers(){return this.Jh.Nx()}}function Kr(t,i={}){return new Yr(t,new jr(i))}const Gr={...e,color:\"#2196f3\"};function Zr(){return\"5.2.1\"}export{qe as AreaSeries,Ze as BarSeries,Ue as BaselineSeries,Qe as CandlestickSeries,$i as ColorType,K as CrosshairMode,nr as HistogramSeries,Hi as LastPriceAnimationMode,ye as LineSeries,h as LineStyle,r as LineType,It as MismatchDirection,Ui as PriceLineSource,bi as PriceScaleMode,ji as TickMarkType,Wi as TrackingModeExitMode,le as createChart,ae as createChartEx,gr as createImageWatermark,Ee as createOptionsChart,Nr as createSeriesMarkers,dr as createTextWatermark,Kr as createUpDownMarkers,Ie as createYieldCurveChart,Gr as customSeriesDefaultOptions,oe as defaultHorzScaleBehavior,Ki as isBusinessDay,Gi as isUTCTimestamp,Zr as version};\n","//#region src/engine.ts\nconst DEFAULT_INITIAL_CAPITAL = 1e5;\nconst DEFAULT_FEE_RATE = .001;\nconst MS_PER_YEAR = 315576e5;\n/** 推断一年的 bar 根数(根据相邻 K 线平均时间间隔)。 */\nfunction estimateBarsPerYear(bars) {\n\tif (bars.length < 2) return 250;\n\tconst totalSpan = bars[bars.length - 1].openTime - bars[0].openTime;\n\tif (totalSpan <= 0) return 250;\n\tconst avgInterval = totalSpan / (bars.length - 1);\n\tif (avgInterval <= 0) return 250;\n\tconst barsPerYear = MS_PER_YEAR / avgInterval;\n\treturn Math.max(1, Math.min(barsPerYear, 525600));\n}\nfunction run(bars, strategy, paramsOverride = {}, options = {}) {\n\tconst initialCapital = options.initialCapital ?? DEFAULT_INITIAL_CAPITAL;\n\tconst feeRate = options.feeRate ?? DEFAULT_FEE_RATE;\n\tconst slippage = options.slippage ?? 0;\n\tif (!bars || bars.length === 0) return {\n\t\tsignals: [],\n\t\ttrades: [],\n\t\tequity: [],\n\t\tmetrics: {\n\t\t\ttotalReturn: 0,\n\t\t\tcagr: 0,\n\t\t\tmaxDrawdown: 0,\n\t\t\tsharpe: 0,\n\t\t\twinRate: 0,\n\t\t\tprofitFactor: 0,\n\t\t\ttradeCount: 0,\n\t\t\texposure: 0\n\t\t},\n\t\tinitialCapital,\n\t\tfinalCapital: initialCapital\n\t};\n\tconst resolvedParams = {};\n\tfor (const p of strategy.params) resolvedParams[p.key] = paramsOverride[p.key] ?? p.default;\n\tconst signals = strategy.compute(bars, resolvedParams);\n\tconst signalMap = /* @__PURE__ */ new Map();\n\tfor (const s of signals) if (s.index >= 0 && s.index < bars.length) signalMap.set(s.index, s);\n\tlet cash = initialCapital;\n\tlet shares = 0;\n\tlet position = \"flat\";\n\tlet entryIndex = -1;\n\tlet entryTime = 0;\n\tlet entryPrice = 0;\n\tlet entryCashCost = 0;\n\tlet totalHoldingBars = 0;\n\tconst trades = [];\n\tconst equityPoints = [];\n\tlet peakEquity = initialCapital;\n\tlet maxDrawdown = 0;\n\tfor (let i = 0; i < bars.length; i++) {\n\t\tconst currentBar = bars[i];\n\t\tif (i > 0) {\n\t\t\tconst prevSignal = signalMap.get(i - 1);\n\t\t\tif (prevSignal) {\n\t\t\t\tif (prevSignal.action === \"entry\" && position === \"flat\") {\n\t\t\t\t\tconst executedBuyPrice = currentBar.open * (1 + slippage);\n\t\t\t\t\tif (executedBuyPrice > 0) {\n\t\t\t\t\t\tconst costPerShare = executedBuyPrice * (1 + feeRate);\n\t\t\t\t\t\tshares = cash / costPerShare;\n\t\t\t\t\t\tentryCashCost = cash;\n\t\t\t\t\t\tcash = 0;\n\t\t\t\t\t\tposition = \"long\";\n\t\t\t\t\t\tentryIndex = i;\n\t\t\t\t\t\tentryTime = currentBar.openTime;\n\t\t\t\t\t\tentryPrice = executedBuyPrice;\n\t\t\t\t\t}\n\t\t\t\t} else if (prevSignal.action === \"exit\" && position === \"long\") {\n\t\t\t\t\tconst executedSellPrice = currentBar.open * (1 - slippage);\n\t\t\t\t\tconst netCash = shares * executedSellPrice * (1 - feeRate);\n\t\t\t\t\tconst profit = netCash - entryCashCost;\n\t\t\t\t\tconst returnPercent = (executedSellPrice / entryPrice * (1 - feeRate) / (1 + feeRate) - 1) * 100;\n\t\t\t\t\tconst holdingBars = i - entryIndex;\n\t\t\t\t\ttrades.push({\n\t\t\t\t\t\tentryIndex,\n\t\t\t\t\t\tentryTime,\n\t\t\t\t\t\tentryPrice,\n\t\t\t\t\t\texitIndex: i,\n\t\t\t\t\t\texitTime: currentBar.openTime,\n\t\t\t\t\t\texitPrice: executedSellPrice,\n\t\t\t\t\t\treturnPercent,\n\t\t\t\t\t\tprofit,\n\t\t\t\t\t\tholdingBars,\n\t\t\t\t\t\texitReason: prevSignal.reason,\n\t\t\t\t\t\t...prevSignal.reasonKey !== void 0 ? { exitReasonKey: prevSignal.reasonKey } : {},\n\t\t\t\t\t\t...prevSignal.reasonParams !== void 0 ? { exitReasonParams: prevSignal.reasonParams } : {}\n\t\t\t\t\t});\n\t\t\t\t\tcash = netCash;\n\t\t\t\t\tshares = 0;\n\t\t\t\t\tposition = \"flat\";\n\t\t\t\t\tentryIndex = -1;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tif (position === \"long\") totalHoldingBars += 1;\n\t\tlet currentEquity;\n\t\tif (position === \"long\") currentEquity = shares * currentBar.close * (1 - feeRate);\n\t\telse currentEquity = cash;\n\t\tif (currentEquity > peakEquity) peakEquity = currentEquity;\n\t\tconst currentDrawdown = peakEquity > 0 ? (currentEquity - peakEquity) / peakEquity * 100 : 0;\n\t\tif (currentDrawdown < maxDrawdown) maxDrawdown = currentDrawdown;\n\t\tequityPoints.push({\n\t\t\ttime: currentBar.openTime,\n\t\t\tequity: currentEquity,\n\t\t\tdrawdownPercent: currentDrawdown\n\t\t});\n\t}\n\tconst finalCapital = equityPoints[equityPoints.length - 1]?.equity ?? initialCapital;\n\tconst totalReturn = (finalCapital - initialCapital) / initialCapital * 100;\n\tconst tradeCount = trades.length;\n\tconst winningTrades = trades.filter((t) => t.profit > 0);\n\tconst winRate = tradeCount > 0 ? winningTrades.length / tradeCount * 100 : 0;\n\tconst totalWinAmount = trades.filter((t) => t.profit > 0).reduce((sum, t) => sum + t.profit, 0);\n\tconst totalLossAmount = trades.filter((t) => t.profit < 0).reduce((sum, t) => sum + Math.abs(t.profit), 0);\n\tlet profitFactor = 0;\n\tif (totalLossAmount === 0) profitFactor = totalWinAmount > 0 ? Infinity : 0;\n\telse profitFactor = totalWinAmount / totalLossAmount;\n\tconst exposure = bars.length > 0 ? totalHoldingBars / bars.length * 100 : 0;\n\tlet cagr = 0;\n\tif (bars.length > 1) {\n\t\tconst years = (bars[bars.length - 1].openTime - bars[0].openTime) / MS_PER_YEAR;\n\t\tif (years > .01 && finalCapital > 0) cagr = (Math.pow(finalCapital / initialCapital, 1 / years) - 1) * 100;\n\t\telse if (finalCapital <= 0) cagr = -100;\n\t}\n\tlet sharpe = 0;\n\tif (equityPoints.length > 1) {\n\t\tconst returns = [];\n\t\tfor (let k = 1; k < equityPoints.length; k++) {\n\t\t\tconst prev = equityPoints[k - 1].equity;\n\t\t\tconst curr = equityPoints[k].equity;\n\t\t\tif (prev > 0) returns.push((curr - prev) / prev);\n\t\t\telse returns.push(0);\n\t\t}\n\t\tif (returns.length > 1) {\n\t\t\tconst mean = returns.reduce((sum, r) => sum + r, 0) / returns.length;\n\t\t\tconst variance = returns.reduce((sum, r) => sum + Math.pow(r - mean, 2), 0) / (returns.length - 1);\n\t\t\tconst stdev = Math.sqrt(variance);\n\t\t\tif (stdev > 0) {\n\t\t\t\tconst annualFactor = Math.sqrt(estimateBarsPerYear(bars));\n\t\t\t\tsharpe = mean / stdev * annualFactor;\n\t\t\t}\n\t\t}\n\t}\n\treturn {\n\t\tsignals,\n\t\ttrades,\n\t\tequity: equityPoints,\n\t\tmetrics: {\n\t\t\ttotalReturn,\n\t\t\tcagr,\n\t\t\tmaxDrawdown,\n\t\t\tsharpe,\n\t\t\twinRate,\n\t\t\tprofitFactor,\n\t\t\ttradeCount,\n\t\t\texposure\n\t\t},\n\t\tinitialCapital,\n\t\tfinalCapital\n\t};\n}\n//#endregion\nexport { run };\n","//#region src/price-format.ts\n/**\n* 标的价格显示小数位(自适应,全局显示约定单一来源):\n* ≥1 默认 2 位;当 2 位舍入会丢失第 3 位有效小数(如港股 0.001 tick、\n* 低价权证/债券)时升到 3 位;<1 按量级 4/6 位(低价加密对)。\n* 1e-9 容差只滤浮点表示噪声——常规价位下它比第 3 位小数量级低多个数量级。\n*\n* client-ui-trading / client-ui-strategies 经本包复用同一规则;范式策略的\n* compute 因需自包含(compute.toString() 导出可编译源码)内联同式实现,\n* 两处改动必须同步。\n*/\nfunction priceDigits(value) {\n\tif (value === void 0 || !Number.isFinite(value)) return 2;\n\tconst abs = Math.abs(value);\n\tif (abs < 1) return abs >= .01 ? 4 : 6;\n\tconst rounded = Number(value.toFixed(2));\n\treturn Math.abs(rounded - value) < 1e-9 ? 2 : 3;\n}\n/** 价格文本:undefined/NaN → '—',否则按 priceDigits 定点舍入。 */\nfunction fmtPrice(value) {\n\tif (value === void 0 || !Number.isFinite(value)) return \"—\";\n\treturn value.toFixed(priceDigits(value));\n}\n//#endregion\nexport { fmtPrice, priceDigits };\n","//#region src/validate.ts\nconst ID_PATTERN = /^[a-z0-9_]{2,32}$/;\nconst PARAM_KEY_PATTERN = /^[a-zA-Z0-9_]{1,16}$/;\nconst MAX_SOURCE_LENGTH = 16384;\nconst MAX_PARAMS_COUNT = 8;\nconst RESERVED_IDS = /* @__PURE__ */ new Set([\n\t\"ma\",\n\t\"ema\",\n\t\"boll\",\n\t\"macd\",\n\t\"rsi\",\n\t\"kdj\"\n]);\n/**\n* 试算超时默认值(毫秒)。试算本身是 30 根 K 线的纯计算,正常耗时在微秒级;\n* 100ms 只作死循环熔断,不是性能阈值——issue #88:Windows CI(2 vCPU)上\n* `pnpm -r test` 全包并行时进程被抢占,墙钟偶发超过 100ms 导致合法指标被误判\n* 超时。入口(两个校验器 + validateCustomIndicatorNode + 两个工具工厂)\n* 可注入 trialTimeoutMs 放宽;死循环保护由显式用例覆盖,不依赖本默认值。\n*/\nconst DEFAULT_TRIAL_TIMEOUT_MS = 100;\n/** 生成特征测试 K 线序列。 */\nfunction createSampleBars() {\n\tconst baseTime = 17e11;\n\tconst minute = 6e4;\n\treturn {\n\t\tuptrend: Array.from({ length: 30 }, (_, i) => {\n\t\t\tconst open = 100 + i * 2;\n\t\t\tconst close = open + 1.5;\n\t\t\treturn {\n\t\t\t\topenTime: baseTime + i * minute,\n\t\t\t\topen,\n\t\t\t\thigh: close + 1,\n\t\t\t\tlow: open - .5,\n\t\t\t\tclose,\n\t\t\t\tvolume: 1e3 + i * 50\n\t\t\t};\n\t\t}),\n\t\tdowntrend: Array.from({ length: 30 }, (_, i) => {\n\t\t\tconst open = 200 - i * 2.5;\n\t\t\tconst close = open - 2;\n\t\t\treturn {\n\t\t\t\topenTime: baseTime + i * minute,\n\t\t\t\topen,\n\t\t\t\thigh: open + .5,\n\t\t\t\tlow: close - 1,\n\t\t\t\tclose,\n\t\t\t\tvolume: 2e3 - i * 30\n\t\t\t};\n\t\t}),\n\t\tflat: Array.from({ length: 30 }, (_, i) => {\n\t\t\tconst delta = (i % 2 === 0 ? 1 : -1) * (i % 3 === 0 ? .8 : .2);\n\t\t\tconst open = 150;\n\t\t\tconst close = open + delta;\n\t\t\treturn {\n\t\t\t\topenTime: baseTime + i * minute,\n\t\t\t\topen,\n\t\t\t\thigh: Math.max(open, close) + .5,\n\t\t\t\tlow: Math.min(open, close) - .5,\n\t\t\t\tclose,\n\t\t\t\tvolume: 1500\n\t\t\t};\n\t\t}),\n\t\tgap: Array.from({ length: 15 }, (_, i) => {\n\t\t\tconst jump = i === 7 ? 30 : 0;\n\t\t\tconst open = 100 + i * 2 + jump;\n\t\t\tconst close = open + 1;\n\t\t\treturn {\n\t\t\t\topenTime: baseTime + i * minute,\n\t\t\t\topen,\n\t\t\t\thigh: close + 2,\n\t\t\t\tlow: open - 1,\n\t\t\t\tclose,\n\t\t\t\tvolume: 3e3\n\t\t\t};\n\t\t}),\n\t\tshort: [\n\t\t\t{\n\t\t\t\topenTime: baseTime,\n\t\t\t\topen: 100,\n\t\t\t\thigh: 102,\n\t\t\t\tlow: 99,\n\t\t\t\tclose: 101,\n\t\t\t\tvolume: 500\n\t\t\t},\n\t\t\t{\n\t\t\t\topenTime: 170000006e4,\n\t\t\t\topen: 101,\n\t\t\t\thigh: 104,\n\t\t\t\tlow: 100,\n\t\t\t\tclose: 103,\n\t\t\t\tvolume: 600\n\t\t\t},\n\t\t\t{\n\t\t\t\topenTime: 170000012e4,\n\t\t\t\topen: 103,\n\t\t\t\thigh: 105,\n\t\t\t\tlow: 102,\n\t\t\t\tclose: 102,\n\t\t\t\tvolume: 550\n\t\t\t}\n\t\t]\n\t};\n}\n/** 将源码解析为可执行纯函数。 */\nfunction compileComputeSource(source) {\n\tconst trimmed = source.trim();\n\tif (/^(?:\\([a-zA-Z0-9_,\\s]*\\)|[a-zA-Z0-9_]+)\\s*=>/.test(trimmed) || /^function\\b/.test(trimmed)) return new Function(`\"use strict\"; return (${trimmed});`)();\n\treturn new Function(\"bars\", \"params\", `\"use strict\";\\n${trimmed}`);\n}\n/** 默认浏览器纯 JS runner。 */\nconst defaultJsRunner = (source, bars, params) => {\n\treturn compileComputeSource(source)(bars, params);\n};\n/**\n* blob Worker 内执行的编译+试算脚本(自包含,不依赖宿主任何模块)。\n* 与 compileComputeSource 同构的第三处实现——Worker 内无法 import,镜像不可避免;\n* 形态嗅探正则与编译语义改动必须同步本段(单一事实来源 = compileComputeSource)。\n*/\nconst WORKER_TRIAL_SCRIPT = `self.onmessage = (event) => {\n const { source, bars, params } = event.data\n try {\n const trimmed = String(source).trim()\n let fn\n if (/^(?:\\\\([a-zA-Z0-9_,\\\\s]*\\\\)|[a-zA-Z0-9_]+)\\\\s*=>/.test(trimmed) || /^function\\\\b/.test(trimmed)) {\n fn = (new Function('\"use strict\"; return (' + trimmed + ');'))()\n } else {\n fn = new Function('bars', 'params', '\"use strict\";\\\\n' + trimmed)\n }\n const result = fn(bars, params)\n self.postMessage({ ok: true, result })\n } catch (error) {\n self.postMessage({ ok: false, message: String((error && error.message) || error) })\n }\n}`;\n/**\n* 浏览器端 Worker 超时 runner(issue #31):compute 源码在 blob URL Worker 内\n* 编译执行,主线程超时即 terminate——补 new Function 裸执行「死循环卡死主线程」\n* 的缺口(策略校验与指标异步校验共用)。非浏览器环境(Node)回退同步直执行\n* (无熔断;Node 侧应传 vm 熔断 runner)。\n*/\nfunction workerComputeRunner(computeSource, bars, params, timeoutMs = 100) {\n\tif (typeof Worker === \"undefined\" || typeof Blob === \"undefined\" || typeof URL === \"undefined\") try {\n\t\tconst fn = compileComputeSource(computeSource);\n\t\treturn Promise.resolve(fn(bars, params));\n\t} catch (error) {\n\t\treturn Promise.reject(error);\n\t}\n\treturn new Promise((resolve, reject) => {\n\t\tconst blob = new Blob([WORKER_TRIAL_SCRIPT], { type: \"text/javascript\" });\n\t\tconst url = URL.createObjectURL(blob);\n\t\tconst worker = new Worker(url);\n\t\tlet settled = false;\n\t\tconst finish = (action) => {\n\t\t\tif (settled) return;\n\t\t\tsettled = true;\n\t\t\tclearTimeout(timer);\n\t\t\tworker.terminate();\n\t\t\tURL.revokeObjectURL(url);\n\t\t\taction();\n\t\t};\n\t\tconst timer = setTimeout(() => {\n\t\t\tfinish(() => reject(/* @__PURE__ */ new Error(`compute 执行超时(超过 ${timeoutMs}ms),可能存在死循环(如 while/for 未退出)`)));\n\t\t}, timeoutMs);\n\t\tworker.onmessage = (event) => {\n\t\t\tconst data = event.data;\n\t\t\tfinish(() => {\n\t\t\t\tif (data.ok) resolve(data.result);\n\t\t\t\telse reject(new Error(data.message ?? \"compute 执行失败\"));\n\t\t\t});\n\t\t};\n\t\tworker.onerror = (event) => {\n\t\t\tfinish(() => reject(new Error(String(event.message ?? \"worker 执行失败\"))));\n\t\t};\n\t\tworker.postMessage({\n\t\t\tsource: computeSource,\n\t\t\tbars: [...bars],\n\t\t\tparams: { ...params }\n\t\t});\n\t});\n}\n/**\n* 结构与语法校验(检查 1-6,无试算)——sync / async(Worker 熔断)校验器共用。\n*/\nfunction checkCustomIndicatorStructure(raw) {\n\tif (typeof raw !== \"object\" || raw === null) return {\n\t\tok: false,\n\t\treason: \"指标配置必须是一个非空对象\"\n\t};\n\tconst input = raw;\n\tconst id = typeof input.id === \"string\" ? input.id.trim().toLowerCase() : \"\";\n\tif (!id) return {\n\t\tok: false,\n\t\treason: \"缺少指标 id\"\n\t};\n\tif (!ID_PATTERN.test(id)) return {\n\t\tok: false,\n\t\treason: `指标 id \"${id}\" 不合法:必须由 2-32 位小写字母、数字或下划线组成`\n\t};\n\tif (RESERVED_IDS.has(id)) return {\n\t\tok: false,\n\t\treason: `指标 id \"${id}\" 是系统预置保留名称,请使用其他名称(如 custom_${id})`\n\t};\n\tconst title = typeof input.title === \"string\" ? input.title.trim() : \"\";\n\tif (!title || title.length > 32) return {\n\t\tok: false,\n\t\treason: \"指标 title 必须是 1-32 字符的非空字符串\"\n\t};\n\tconst pane = input.pane;\n\tif (pane !== \"main\" && pane !== \"sub\") return {\n\t\tok: false,\n\t\treason: `指标 pane 必须是 \"main\"(主图叠加)或 \"sub\"(副图),收到: ${JSON.stringify(input.pane)}`\n\t};\n\tconst params = [];\n\tif (input.params !== void 0) {\n\t\tif (!Array.isArray(input.params)) return {\n\t\t\tok: false,\n\t\t\treason: \"指标 params 必须是数组\"\n\t\t};\n\t\tif (input.params.length > MAX_PARAMS_COUNT) return {\n\t\t\tok: false,\n\t\t\treason: `指标 params 数量超出上限(至多 ${MAX_PARAMS_COUNT} 个参数)`\n\t\t};\n\t\tfor (let index = 0; index < input.params.length; index++) {\n\t\t\tconst p = input.params[index];\n\t\t\tif (typeof p !== \"object\" || p === null) return {\n\t\t\t\tok: false,\n\t\t\t\treason: `params[${index}] 必须是一个对象`\n\t\t\t};\n\t\t\tconst key = typeof p.key === \"string\" ? p.key.trim() : \"\";\n\t\t\tif (!PARAM_KEY_PATTERN.test(key)) return {\n\t\t\t\tok: false,\n\t\t\t\treason: `params[${index}].key \"${key}\" 不合法:必须是 1-16 位字母数字或下划线`\n\t\t\t};\n\t\t\tconst label = typeof p.label === \"string\" ? p.label.trim() : key;\n\t\t\tconst defVal = Number(p.default);\n\t\t\tconst minVal = Number(p.min);\n\t\t\tconst maxVal = Number(p.max);\n\t\t\tif (!Number.isFinite(defVal) || !Number.isFinite(minVal) || !Number.isFinite(maxVal)) return {\n\t\t\t\tok: false,\n\t\t\t\treason: `params[${index}] (${key}) 的 default、min、max 必须是有限数字`\n\t\t\t};\n\t\t\tif (minVal >= maxVal) return {\n\t\t\t\tok: false,\n\t\t\t\treason: `params[${index}] (${key}) 的 min (${minVal}) 必须严格小于 max (${maxVal})`\n\t\t\t};\n\t\t\tif (defVal < minVal || defVal > maxVal) return {\n\t\t\t\tok: false,\n\t\t\t\treason: `params[${index}] (${key}) 的 default (${defVal}) 必须在 [min, max] (${minVal}..${maxVal}) 范围内`\n\t\t\t};\n\t\t\tparams.push({\n\t\t\t\tkey,\n\t\t\t\tlabel,\n\t\t\t\tdefault: defVal,\n\t\t\t\tmin: minVal,\n\t\t\t\tmax: maxVal\n\t\t\t});\n\t\t}\n\t}\n\tconst computeSource = typeof input.computeSource === \"string\" ? input.computeSource.trim() : \"\";\n\tif (!computeSource) return {\n\t\tok: false,\n\t\treason: \"缺少 computeSource 源码\"\n\t};\n\tif (computeSource.length > MAX_SOURCE_LENGTH) return {\n\t\tok: false,\n\t\treason: `computeSource 源码长度 (${computeSource.length} B) 超出限制 (${MAX_SOURCE_LENGTH} B / 16KB)`\n\t};\n\ttry {\n\t\tcompileComputeSource(computeSource);\n\t} catch (error) {\n\t\treturn {\n\t\t\tok: false,\n\t\t\treason: `源码语法错误或无法编译: ${String(error?.message ?? error)}`\n\t\t};\n\t}\n\tconst defaultParamsMap = {};\n\tfor (const p of params) defaultParamsMap[p.key] = p.default;\n\treturn {\n\t\tok: true,\n\t\tid,\n\t\ttitle,\n\t\tpane,\n\t\tparams,\n\t\tcomputeSource,\n\t\tdefaultParamsMap,\n\t\tinput\n\t};\n}\n/** 试算输出的形状与逐点校验(sync/async 共用);返回 undefined = 通过。 */\nfunction checkIndicatorTrialOutputs(outputs, barsLength) {\n\tif (!Array.isArray(outputs)) return `compute 返回值必须是 IndicatorOutput[] 数组,实际返回类型为: ${typeof outputs}`;\n\tif (outputs.length === 0) return \"compute 返回的 IndicatorOutput[] 数组不能为空(至少需要一个输出系列)\";\n\tif (outputs.length > 8) return `compute 返回的输出系列过多 (${outputs.length} > 8)`;\n\tfor (let outIdx = 0; outIdx < outputs.length; outIdx++) {\n\t\tconst output = outputs[outIdx];\n\t\tif (typeof output !== \"object\" || output === null) return `outputs[${outIdx}] 必须是非空对象`;\n\t\tif (typeof output.key !== \"string\" || !output.key.trim()) return `outputs[${outIdx}].key 必须是非空字符串`;\n\t\tif (output.kind !== \"line\" && output.kind !== \"histogram\" && output.kind !== \"area\") return `outputs[${outIdx}].kind 必须是 \"line\"、\"histogram\" 或 \"area\"`;\n\t\tif (typeof output.color !== \"string\" || !output.color.trim()) return `outputs[${outIdx}].color 必须是非空颜色字符串`;\n\t\tif (!Array.isArray(output.values)) return `outputs[${outIdx}].values 必须是数组`;\n\t\tif (output.values.length !== barsLength) return `outputs[${outIdx}] (${output.key}) 的 values 长度 (${output.values.length}) 与输入的 bars 长度 (${barsLength}) 不一致(必须逐条对齐)`;\n\t\tfor (let valIdx = 0; valIdx < output.values.length; valIdx++) {\n\t\t\tconst v = output.values[valIdx];\n\t\t\tif (v === void 0) continue;\n\t\t\tif (typeof v !== \"number\" || !Number.isFinite(v)) return `outputs[${outIdx}] (${output.key}) 在下标 ${valIdx} 处包含非法数值: ${String(v)}(只允许有限数字或 undefined 作为 warm-up)`;\n\t\t}\n\t}\n}\nfunction validateCustomIndicator(raw, options) {\n\tconst checked = checkCustomIndicatorStructure(raw);\n\tif (!checked.ok) return checked;\n\tconst { id, title, pane, params, computeSource, defaultParamsMap, input } = checked;\n\tconst sampleScenarios = createSampleBars();\n\tconst scenarioNames = [\n\t\t\"uptrend\",\n\t\t\"downtrend\",\n\t\t\"flat\",\n\t\t\"gap\",\n\t\t\"short\"\n\t];\n\tconst runner = options?.runner ?? defaultJsRunner;\n\tconst trialTimeoutMs = options?.trialTimeoutMs ?? 100;\n\tfor (const scenario of scenarioNames) {\n\t\tconst bars = sampleScenarios[scenario];\n\t\tlet outputs;\n\t\ttry {\n\t\t\toutputs = runner(computeSource, bars, defaultParamsMap, trialTimeoutMs);\n\t\t} catch (error) {\n\t\t\treturn {\n\t\t\t\tok: false,\n\t\t\t\treason: `在 ${scenario} 样例数据上试算执行报错: ${String(error?.message ?? error)}`\n\t\t\t};\n\t\t}\n\t\tconst outputReason = checkIndicatorTrialOutputs(outputs, bars.length);\n\t\tif (outputReason !== void 0) return {\n\t\t\tok: false,\n\t\t\treason: outputReason\n\t\t};\n\t}\n\treturn {\n\t\tok: true,\n\t\tdefinition: {\n\t\t\tid,\n\t\t\ttitle,\n\t\t\tpane,\n\t\t\tparams,\n\t\t\tcompute: compileComputeSource(computeSource)\n\t\t},\n\t\trecord: {\n\t\t\tid,\n\t\t\ttitle,\n\t\t\tpane,\n\t\t\tparams,\n\t\t\tcomputeSource,\n\t\t\tcreatedAt: typeof input.createdAt === \"number\" ? input.createdAt : Date.now(),\n\t\t\tdescription: typeof input.description === \"string\" ? input.description.trim() : void 0\n\t\t}\n\t};\n}\n/**\n* 异步版校验器(issue #31):结构与语法校验与同步版同源(checkCustomIndicatorStructure),\n* 试算走可等待 runner——默认 Worker 超时熔断(workerComputeRunner),补浏览器端\n* new Function 裸执行「死循环卡死主线程」的既知缺口。Node 宿主侧继续用\n* validateCustomIndicatorNode(vm 熔断,同步语义)。\n*/\nasync function validateCustomIndicatorAsync(raw, options) {\n\tconst checked = checkCustomIndicatorStructure(raw);\n\tif (!checked.ok) return checked;\n\tconst { id, title, pane, params, computeSource, defaultParamsMap, input } = checked;\n\tconst sampleScenarios = createSampleBars();\n\tconst scenarioNames = [\n\t\t\"uptrend\",\n\t\t\"downtrend\",\n\t\t\"flat\",\n\t\t\"gap\",\n\t\t\"short\"\n\t];\n\tconst runner = options?.runner ?? workerComputeRunner;\n\tconst trialTimeoutMs = options?.trialTimeoutMs ?? 100;\n\tfor (const scenario of scenarioNames) {\n\t\tconst bars = sampleScenarios[scenario];\n\t\tlet outputs;\n\t\ttry {\n\t\t\toutputs = await runner(computeSource, bars, { ...defaultParamsMap }, trialTimeoutMs);\n\t\t} catch (error) {\n\t\t\treturn {\n\t\t\t\tok: false,\n\t\t\t\treason: `在 ${scenario} 样例数据上试算执行报错: ${String(error?.message ?? error)}`\n\t\t\t};\n\t\t}\n\t\tconst outputReason = checkIndicatorTrialOutputs(outputs, bars.length);\n\t\tif (outputReason !== void 0) return {\n\t\t\tok: false,\n\t\t\treason: outputReason\n\t\t};\n\t}\n\treturn {\n\t\tok: true,\n\t\tdefinition: {\n\t\t\tid,\n\t\t\ttitle,\n\t\t\tpane,\n\t\t\tparams,\n\t\t\tcompute: compileComputeSource(computeSource)\n\t\t},\n\t\trecord: {\n\t\t\tid,\n\t\t\ttitle,\n\t\t\tpane,\n\t\t\tparams,\n\t\t\tcomputeSource,\n\t\t\tcreatedAt: typeof input.createdAt === \"number\" ? input.createdAt : Date.now(),\n\t\t\tdescription: typeof input.description === \"string\" ? input.description.trim() : void 0\n\t\t}\n\t};\n}\n//#endregion\nexport { DEFAULT_TRIAL_TIMEOUT_MS, compileComputeSource, createSampleBars, validateCustomIndicator, validateCustomIndicatorAsync, workerComputeRunner };\n","import { compileComputeSource, createSampleBars, workerComputeRunner } from \"@dshtrading/indicators\";\n//#region src/validate.ts\n/**\n* 自定义策略安全校验器(issue #31 / P2)。浏览器端与宿主两侧共用(纯库,零 Node 依赖):\n*\n* 1. 结构校验:id / title / horizon / summary / paramsJson / computeSource\n* 2. 源码体积与编译检查(16KB 上限,语法必须可编译)\n* 3. 多场景样例试算(复用 indicators 的特征 K 线:上涨/下跌/平盘/缺口/极短)\n* 4. **信号序列专用校验**(不复用指标的等长断言——信号序列语义不同):\n* - index 为整数、落在 [0, bars.length) 且严格单调递增;\n* - time 与 bars[index].openTime 逐位一致;\n* - action ∈ {entry, exit}、direction ∈ {long, flat} 且与 action 配对\n* (entry→long、exit→flat);\n* - price 为有限数且等于 bars[index].close(i 收盘确认价,浮点容差);\n* - 序列可复算:从 flat 起步、entry/exit 严格交替(exit 时必须持仓、entry\n* 时必须空仓)——与回测引擎的成交语义一致(i 收盘确认、i+1 开盘成交)。\n* 5. 可插拔 runner:浏览器默认 Worker 超时熔断(indicators 的 workerComputeRunner),\n* Node 侧传 vm 熔断 runner(validate-node.ts)。\n*/\nconst ID_PATTERN = /^[a-z0-9_][a-z0-9_-]{1,31}$/;\nconst PARAM_KEY_PATTERN = /^[a-zA-Z0-9_]{1,16}$/;\nconst MAX_SOURCE_LENGTH = 16384;\nconst MAX_PARAMS_COUNT = 8;\nconst MAX_SUMMARY_LENGTH = 120;\nconst MAX_REASON_LENGTH = 200;\nconst HORIZONS = [\n\t\"short\",\n\t\"swing\",\n\t\"long\"\n];\nconst DEFAULT_TIMEOUT_MS = 100;\n/**\n* 将策略源码解析为可执行纯函数(浏览器端 new Function;Node 侧走 vm runner 试算)。\n* 编译语义(形态嗅探 + new Function 双形态)的单一来源是 @dshtrading/indicators 的\n* compileComputeSource——此处仅按策略信号类型收窄返回值(2026-09-09 收敛同体副本)。\n*/\nconst compileStrategySource = compileComputeSource;\n/**\n* 信号序列专用校验(引擎语义对齐:i 收盘确认、i+1 开盘成交可复算)。\n* 返回 undefined = 通过;否则返回人话诊断(模型与 UI 直接可读)。\n*/\nfunction validateSignalSequence(signals, bars) {\n\tlet position = \"flat\";\n\tlet prevIndex = -1;\n\tfor (let i = 0; i < signals.length; i++) {\n\t\tconst s = signals[i];\n\t\tif (typeof s !== \"object\" || s === null) return `signals[${i}] 必须是非空对象`;\n\t\tconst signal = s;\n\t\tif (typeof signal.index !== \"number\" || !Number.isInteger(signal.index) || signal.index < 0 || signal.index >= bars.length) return `signals[${i}].index 必须是落在 [0, ${bars.length - 1}] 的整数(bar 下标),收到: ${String(signal.index)}`;\n\t\tif (signal.index <= prevIndex) return `signals[${i}].index (${signal.index}) 必须严格大于前一个信号的 index (${prevIndex})——信号按 bar 下标单调递增`;\n\t\tprevIndex = signal.index;\n\t\tif (signal.time !== bars[signal.index].openTime) return `signals[${i}].time (${String(signal.time)}) 与 bars[${signal.index}].openTime (${String(bars[signal.index].openTime)}) 不一致——信号 time 必须等于确认 bar 的 openTime`;\n\t\tif (signal.action !== \"entry\" && signal.action !== \"exit\") return `signals[${i}].action 必须是 \"entry\" 或 \"exit\",收到: ${JSON.stringify(signal.action)}`;\n\t\tif (signal.direction !== \"long\" && signal.direction !== \"flat\") return `signals[${i}].direction 必须是 \"long\" 或 \"flat\",收到: ${JSON.stringify(signal.direction)}`;\n\t\tconst expectedDirection = signal.action === \"entry\" ? \"long\" : \"flat\";\n\t\tif (signal.direction !== expectedDirection) return `signals[${i}].direction (${signal.direction}) 与 action (${signal.action}) 不配对——entry 对应 long,exit 对应 flat`;\n\t\tif (typeof signal.price !== \"number\" || !Number.isFinite(signal.price)) return `signals[${i}].price 必须是有限数字(确认时收盘价),收到: ${String(signal.price)}`;\n\t\tconst close = bars[signal.index].close;\n\t\tif (Math.abs(signal.price - close) > Math.max(1e-9, Math.abs(close) * 1e-6)) return `signals[${i}].price (${signal.price}) 与确认 bar 收盘价 (${close}) 不一致——信号在 i 收盘确认,price 必须等于 bars[i].close`;\n\t\tif (typeof signal.reason !== \"string\" || !signal.reason.trim()) return `signals[${i}].reason 必须是非空字符串(人话解释)`;\n\t\tif (signal.reason.length > MAX_REASON_LENGTH) return `signals[${i}].reason 超长(${signal.reason.length} > ${MAX_REASON_LENGTH})`;\n\t\tif (signal.action === \"entry\" && position === \"long\") return `signals[${i}] 在已持仓(前一个 entry 尚未 exit)时再次 entry——引擎不会重复开仓,序列不可复算`;\n\t\tif (signal.action === \"exit\" && position === \"flat\") return `signals[${i}] 在空仓时 exit——没有可平的头寸,序列不可复算(首信号必须是 entry)`;\n\t\tposition = signal.action === \"entry\" ? \"long\" : \"flat\";\n\t}\n}\n/**\n* 参数规格数组解析(策略/选股器校验共用):JSON 解析 → StrategyParamSpec[],\n* 保留合法正值 step(内置覆盖保存后参数步进不失真)。\n*/\nfunction parseParamSpecs(paramsJson) {\n\tif (paramsJson === void 0) return {\n\t\tok: true,\n\t\tparams: []\n\t};\n\tif (typeof paramsJson !== \"string\") return {\n\t\tok: false,\n\t\treason: \"paramsJson 必须是字符串(StrategyParamSpec[] 的 JSON)\"\n\t};\n\tlet parsed;\n\ttry {\n\t\tparsed = JSON.parse(paramsJson);\n\t} catch (error) {\n\t\treturn {\n\t\t\tok: false,\n\t\t\treason: `paramsJson 不是合法 JSON: ${String(error?.message ?? error)}`\n\t\t};\n\t}\n\tif (!Array.isArray(parsed)) return {\n\t\tok: false,\n\t\treason: \"paramsJson 解析结果必须是数组(StrategyParamSpec[])\"\n\t};\n\tif (parsed.length > MAX_PARAMS_COUNT) return {\n\t\tok: false,\n\t\treason: `策略参数数量超出上限(至多 ${MAX_PARAMS_COUNT} 个)`\n\t};\n\tconst params = [];\n\tfor (let index = 0; index < parsed.length; index++) {\n\t\tconst p = parsed[index];\n\t\tif (typeof p !== \"object\" || p === null) return {\n\t\t\tok: false,\n\t\t\treason: `paramsJson[${index}] 必须是一个对象`\n\t\t};\n\t\tconst spec = p;\n\t\tconst key = typeof spec.key === \"string\" ? spec.key.trim() : \"\";\n\t\tif (!PARAM_KEY_PATTERN.test(key)) return {\n\t\t\tok: false,\n\t\t\treason: `paramsJson[${index}].key \"${key}\" 不合法:必须是 1-16 位字母数字或下划线`\n\t\t};\n\t\tconst label = typeof spec.label === \"string\" ? spec.label.trim() : key;\n\t\tconst defVal = Number(spec.default);\n\t\tconst minVal = Number(spec.min);\n\t\tconst maxVal = Number(spec.max);\n\t\tif (!Number.isFinite(defVal) || !Number.isFinite(minVal) || !Number.isFinite(maxVal)) return {\n\t\t\tok: false,\n\t\t\treason: `paramsJson[${index}] (${key}) 的 default、min、max 必须是有限数字`\n\t\t};\n\t\tif (minVal >= maxVal) return {\n\t\t\tok: false,\n\t\t\treason: `paramsJson[${index}] (${key}) 的 min (${minVal}) 必须严格小于 max (${maxVal})`\n\t\t};\n\t\tif (defVal < minVal || defVal > maxVal) return {\n\t\t\tok: false,\n\t\t\treason: `paramsJson[${index}] (${key}) 的 default (${defVal}) 必须在 [min, max] (${minVal}..${maxVal}) 范围内`\n\t\t};\n\t\tconst stepVal = Number(spec.step);\n\t\tconst step = Number.isFinite(stepVal) && stepVal > 0 ? stepVal : 1;\n\t\tparams.push({\n\t\t\tkey,\n\t\t\tlabel,\n\t\t\tdefault: defVal,\n\t\t\tmin: minVal,\n\t\t\tmax: maxVal,\n\t\t\tstep\n\t\t});\n\t}\n\treturn {\n\t\tok: true,\n\t\tparams\n\t};\n}\n/**\n* 结构校验(无试算)——browser/node 校验器共用。\n*/\nfunction checkCustomStrategyStructure(raw) {\n\tif (typeof raw !== \"object\" || raw === null) return {\n\t\tok: false,\n\t\treason: \"策略配置必须是一个非空对象\"\n\t};\n\tconst input = raw;\n\tconst id = typeof input.id === \"string\" ? input.id.trim().toLowerCase() : \"\";\n\tif (!id) return {\n\t\tok: false,\n\t\treason: \"缺少策略 id\"\n\t};\n\tif (!ID_PATTERN.test(id)) return {\n\t\tok: false,\n\t\treason: `策略 id \"${id}\" 不合法:必须由 2-32 位小写字母、数字、下划线或连字符组成`\n\t};\n\tconst title = typeof input.title === \"string\" ? input.title.trim() : \"\";\n\tif (!title || title.length > 32) return {\n\t\tok: false,\n\t\treason: \"策略 title 必须是 1-32 字符的非空字符串\"\n\t};\n\tconst horizon = input.horizon;\n\tif (!HORIZONS.includes(horizon)) return {\n\t\tok: false,\n\t\treason: `策略 horizon 必须是 \"short\"、\"swing\" 或 \"long\",收到: ${JSON.stringify(input.horizon)}`\n\t};\n\tconst summary = typeof input.summary === \"string\" ? input.summary.trim() : \"\";\n\tif (!summary || summary.length > MAX_SUMMARY_LENGTH) return {\n\t\tok: false,\n\t\treason: `策略 summary 必须是 1-${MAX_SUMMARY_LENGTH} 字符的非空字符串`\n\t};\n\tconst params = parseParamSpecs(input.paramsJson);\n\tif (!params.ok) return params;\n\tconst computeSource = typeof input.computeSource === \"string\" ? input.computeSource.trim() : \"\";\n\tif (!computeSource) return {\n\t\tok: false,\n\t\treason: \"缺少 computeSource 源码\"\n\t};\n\tif (computeSource.length > MAX_SOURCE_LENGTH) return {\n\t\tok: false,\n\t\treason: `computeSource 源码长度 (${computeSource.length} B) 超出限制 (${MAX_SOURCE_LENGTH} B / 16KB)`\n\t};\n\ttry {\n\t\tcompileStrategySource(computeSource);\n\t} catch (error) {\n\t\treturn {\n\t\t\tok: false,\n\t\t\treason: `源码语法错误或无法编译: ${String(error?.message ?? error)}`\n\t\t};\n\t}\n\treturn {\n\t\tok: true,\n\t\tid,\n\t\ttitle,\n\t\thorizon,\n\t\tsummary,\n\t\tparams: params.params,\n\t\tcomputeSource,\n\t\tinput\n\t};\n}\n/**\n* 自定义策略校验(异步——试算走可等待 runner,默认浏览器 Worker 超时熔断;\n* Node 宿主侧传 validate-node.ts 的 vm 熔断 runner)。\n*/\nasync function validateCustomStrategy(raw, options) {\n\tconst checked = checkCustomStrategyStructure(raw);\n\tif (!checked.ok) return checked;\n\tconst { id, title, horizon, summary, params, computeSource, input } = checked;\n\tconst sampleScenarios = createSampleBars();\n\tconst scenarioNames = [\n\t\t\"uptrend\",\n\t\t\"downtrend\",\n\t\t\"flat\",\n\t\t\"gap\",\n\t\t\"short\"\n\t];\n\tconst runner = options?.runner ?? workerComputeRunner;\n\tconst defaultParamsMap = {};\n\tfor (const p of params) defaultParamsMap[p.key] = p.default;\n\tfor (const scenario of scenarioNames) {\n\t\tconst bars = sampleScenarios[scenario];\n\t\tlet signals;\n\t\ttry {\n\t\t\tsignals = await runner(computeSource, bars, { ...defaultParamsMap }, DEFAULT_TIMEOUT_MS);\n\t\t} catch (error) {\n\t\t\treturn {\n\t\t\t\tok: false,\n\t\t\t\treason: `在 ${scenario} 样例数据上试算执行报错: ${String(error?.message ?? error)}`\n\t\t\t};\n\t\t}\n\t\tif (!Array.isArray(signals)) return {\n\t\t\tok: false,\n\t\t\treason: `compute 返回值必须是 StrategySignal[] 数组,${scenario} 场景实际返回类型为: ${typeof signals}`\n\t\t};\n\t\tconst sequenceReason = validateSignalSequence(signals, bars);\n\t\tif (sequenceReason !== void 0) return {\n\t\t\tok: false,\n\t\t\treason: `信号序列校验失败(${scenario} 场景): ${sequenceReason}`\n\t\t};\n\t}\n\treturn {\n\t\tok: true,\n\t\tdefinition: {\n\t\t\tid,\n\t\t\thorizon,\n\t\t\tname: title,\n\t\t\tsummary,\n\t\t\tparams,\n\t\t\tcompute: compileStrategySource(computeSource)\n\t\t},\n\t\trecord: {\n\t\t\tid,\n\t\t\ttitle,\n\t\t\thorizon,\n\t\t\tsummary,\n\t\t\tparamsJson: JSON.stringify(params),\n\t\t\tcomputeSource,\n\t\t\tcreatedAt: typeof input.createdAt === \"number\" ? input.createdAt : Date.now()\n\t\t}\n\t};\n}\n/** 选股器 id:强制 'scr.' 前缀与范式策略 id 空间隔离(内置 id 同形,可覆盖)。 */\nconst SCREENER_ID_PATTERN = /^scr\\.[a-z0-9_][a-z0-9_-]{1,31}$/;\nconst MAX_COLUMNS_COUNT = 8;\n/**\n* 结构校验(无试算):id / title / summary / paramsJson / columnsJson / evaluateSource。\n* evaluate 与 compute 同为 (bars, params) 纯函数,编译走同一 compileStrategySource。\n*/\nfunction checkCustomScreenerStructure(raw) {\n\tif (typeof raw !== \"object\" || raw === null) return {\n\t\tok: false,\n\t\treason: \"选股器配置必须是一个非空对象\"\n\t};\n\tconst input = raw;\n\tconst id = typeof input.id === \"string\" ? input.id.trim().toLowerCase() : \"\";\n\tif (!id) return {\n\t\tok: false,\n\t\treason: \"缺少选股器 id\"\n\t};\n\tif (!SCREENER_ID_PATTERN.test(id)) return {\n\t\tok: false,\n\t\treason: `选股器 id \"${id}\" 不合法:必须以 \"scr.\" 开头,后接 2-32 位小写字母、数字、下划线或连字符`\n\t};\n\tconst title = typeof input.title === \"string\" ? input.title.trim() : \"\";\n\tif (!title || title.length > 32) return {\n\t\tok: false,\n\t\treason: \"选股器 title 必须是 1-32 字符的非空字符串\"\n\t};\n\tconst summary = typeof input.summary === \"string\" ? input.summary.trim() : \"\";\n\tif (!summary || summary.length > MAX_SUMMARY_LENGTH) return {\n\t\tok: false,\n\t\treason: `选股器 summary 必须是 1-${MAX_SUMMARY_LENGTH} 字符的非空字符串`\n\t};\n\tconst params = parseParamSpecs(input.paramsJson);\n\tif (!params.ok) return params;\n\tlet columns = [];\n\tif (typeof input.columnsJson !== \"string\" || !input.columnsJson.trim()) return {\n\t\tok: false,\n\t\treason: \"缺少 columnsJson(ScreenerColumnSpec[] 的 JSON,至少 1 列)\"\n\t};\n\tlet parsedColumns;\n\ttry {\n\t\tparsedColumns = JSON.parse(input.columnsJson);\n\t} catch (error) {\n\t\treturn {\n\t\t\tok: false,\n\t\t\treason: `columnsJson 不是合法 JSON: ${String(error?.message ?? error)}`\n\t\t};\n\t}\n\tif (!Array.isArray(parsedColumns) || parsedColumns.length === 0) return {\n\t\tok: false,\n\t\treason: \"columnsJson 解析结果必须是非空数组(ScreenerColumnSpec[])\"\n\t};\n\tif (parsedColumns.length > MAX_COLUMNS_COUNT) return {\n\t\tok: false,\n\t\treason: `结果列数量超出上限(至多 ${MAX_COLUMNS_COUNT} 列)`\n\t};\n\tfor (let index = 0; index < parsedColumns.length; index++) {\n\t\tconst c = parsedColumns[index];\n\t\tif (typeof c !== \"object\" || c === null) return {\n\t\t\tok: false,\n\t\t\treason: `columnsJson[${index}] 必须是一个对象`\n\t\t};\n\t\tconst spec = c;\n\t\tconst key = typeof spec.key === \"string\" ? spec.key.trim() : \"\";\n\t\tif (!PARAM_KEY_PATTERN.test(key)) return {\n\t\t\tok: false,\n\t\t\treason: `columnsJson[${index}].key \"${key}\" 不合法:必须是 1-16 位字母数字或下划线`\n\t\t};\n\t\tconst label = typeof spec.label === \"string\" ? spec.label.trim() : key;\n\t\tconst format = spec.format === \"percent\" || spec.format === \"number\" ? spec.format : void 0;\n\t\tcolumns.push(format === void 0 ? {\n\t\t\tkey,\n\t\t\tlabel\n\t\t} : {\n\t\t\tkey,\n\t\t\tlabel,\n\t\t\tformat\n\t\t});\n\t}\n\tif (new Set(columns.map((c) => c.key)).size !== columns.length) return {\n\t\tok: false,\n\t\treason: \"columnsJson 存在重复的列 key\"\n\t};\n\tconst evaluateSource = typeof input.evaluateSource === \"string\" ? input.evaluateSource.trim() : \"\";\n\tif (!evaluateSource) return {\n\t\tok: false,\n\t\treason: \"缺少 evaluateSource 源码\"\n\t};\n\tif (evaluateSource.length > MAX_SOURCE_LENGTH) return {\n\t\tok: false,\n\t\treason: `evaluateSource 源码长度 (${evaluateSource.length} B) 超出限制 (${MAX_SOURCE_LENGTH} B / 16KB)`\n\t};\n\ttry {\n\t\tcompileStrategySource(evaluateSource);\n\t} catch (error) {\n\t\treturn {\n\t\t\tok: false,\n\t\t\treason: `源码语法错误或无法编译: ${String(error?.message ?? error)}`\n\t\t};\n\t}\n\treturn {\n\t\tok: true,\n\t\tid,\n\t\ttitle,\n\t\tsummary,\n\t\tparams: params.params,\n\t\tcolumns,\n\t\tevaluateSource,\n\t\tinput\n\t};\n}\n/** 单个命中结果校验(null = 未命中合法;其余必须符合 ScreenerMatch 形状)。 */\nfunction checkScreenerMatch(value, columns, scenario) {\n\tif (value === null || value === void 0) return void 0;\n\tif (typeof value !== \"object\" || Array.isArray(value)) return `evaluate 返回值必须是 ScreenerMatch 对象或 null,${scenario} 场景实际为: ${typeof value}`;\n\tconst match = value;\n\tif (typeof match.metrics !== \"object\" || match.metrics === null || Array.isArray(match.metrics)) return `ScreenerMatch.metrics 必须是 Record<string, number>(${scenario} 场景)`;\n\tconst columnKeys = new Set(columns.map((c) => c.key));\n\tfor (const [key, val] of Object.entries(match.metrics)) {\n\t\tif (!columnKeys.has(key)) return `metrics 键 \"${key}\" 未在 columns 中声明(${scenario} 场景)——动态列必须先声明再产出`;\n\t\tif (typeof val !== \"number\" || !Number.isFinite(val)) return `metrics[\"${key}\"] 必须是有限数字(${scenario} 场景),收到: ${String(val)}`;\n\t}\n\tif (typeof match.reason !== \"string\" || !match.reason.trim()) return `ScreenerMatch.reason 必须是非空字符串(${scenario} 场景)`;\n\tif (match.reason.length > MAX_REASON_LENGTH) return `reason 超长(${match.reason.length} > ${MAX_REASON_LENGTH},${scenario} 场景)`;\n}\n/**\n* 自定义选股器校验(异步——试算走可等待 runner,默认浏览器 Worker 超时熔断;\n* Node 宿主侧传 validate-node.ts 的 vm 熔断 runner)。\n*\n* 与策略校验的差异:evaluate 是「单时点截面判断」——无信号序列语义,\n* 返回 null(未命中/数据不足跳过)或 ScreenerMatch(metrics 键 ⊆ columns 声明、\n* 数值有限、reason 非空)。内置选股器 id 可覆盖(不再保留名)。\n*/\nasync function validateCustomScreener(raw, options) {\n\tconst checked = checkCustomScreenerStructure(raw);\n\tif (!checked.ok) return checked;\n\tconst { id, title, summary, params, columns, evaluateSource, input } = checked;\n\tconst sampleScenarios = createSampleBars();\n\tconst scenarioNames = [\n\t\t\"uptrend\",\n\t\t\"downtrend\",\n\t\t\"flat\",\n\t\t\"gap\",\n\t\t\"short\"\n\t];\n\tconst runner = options?.runner ?? workerComputeRunner;\n\tconst defaultParamsMap = {};\n\tfor (const p of params) defaultParamsMap[p.key] = p.default;\n\tconst longScenario = [];\n\tlet longPrice = 100;\n\tfor (let i = 0; i < 300; i++) {\n\t\tconst drift = i < 100 ? .6 : i < 200 ? -.5 : .55;\n\t\tlongPrice = Math.max(1, longPrice + drift);\n\t\tlongScenario.push({\n\t\t\topenTime: 17e11 + i * 864e5,\n\t\t\topen: longPrice - drift / 2,\n\t\t\thigh: longPrice + .4,\n\t\t\tlow: longPrice - .4,\n\t\t\tclose: longPrice,\n\t\t\tvolume: i % 7 === 5 ? 5e3 : 800\n\t\t});\n\t}\n\tconst scenarios = [...scenarioNames.map((name) => ({\n\t\tname,\n\t\tbars: sampleScenarios[name]\n\t})), {\n\t\tname: \"long\",\n\t\tbars: longScenario\n\t}];\n\tlet matchedScenario = false;\n\tfor (const { name: scenario, bars } of scenarios) {\n\t\tlet match;\n\t\ttry {\n\t\t\tmatch = await runner(evaluateSource, bars, { ...defaultParamsMap }, DEFAULT_TIMEOUT_MS);\n\t\t} catch (error) {\n\t\t\treturn {\n\t\t\t\tok: false,\n\t\t\t\treason: `在 ${scenario} 样例数据上试算执行报错: ${String(error?.message ?? error)}`\n\t\t\t};\n\t\t}\n\t\tconst matchReason = checkScreenerMatch(match, columns, scenario);\n\t\tif (matchReason !== void 0) return {\n\t\t\tok: false,\n\t\t\treason: matchReason\n\t\t};\n\t\tif (match !== null && match !== void 0) matchedScenario = true;\n\t}\n\tif (!matchedScenario) return {\n\t\tok: false,\n\t\treason: \"选股器在全部样例场景(上涨/下跌/震荡/跳空/短序列/300根长序列)上都返回 null——请检查入场条件(阈值方向、数据长度 guard),至少一个场景应命中\"\n\t};\n\treturn {\n\t\tok: true,\n\t\tdefinition: {\n\t\t\tid,\n\t\t\tname: title,\n\t\t\tsummary,\n\t\t\tparams,\n\t\t\tcolumns,\n\t\t\tevaluate: compileStrategySource(evaluateSource)\n\t\t},\n\t\trecord: {\n\t\t\tid,\n\t\t\ttitle,\n\t\t\thorizon: \"swing\",\n\t\t\tsummary,\n\t\t\tparamsJson: JSON.stringify(params),\n\t\t\tcolumnsJson: JSON.stringify(columns),\n\t\t\tevaluateSource,\n\t\t\tcreatedAt: typeof input.createdAt === \"number\" ? input.createdAt : Date.now()\n\t\t}\n\t};\n}\n//#endregion\nexport { compileStrategySource, validateCustomScreener, validateCustomStrategy, validateSignalSequence };\n","//#region src/paradigms/donchian-breakout.ts\nconst donchianBreakoutStrategy = {\n\tid: \"donchian-breakout\",\n\thorizon: \"short\",\n\tname: \"唐奇安通道突破\",\n\tsummary: \"收盘价突破前 N1 根最高价做多,跌破前 N2 根最低价离场(海龟经典简化版)\",\n\tparams: [{\n\t\tkey: \"lookbackEntry\",\n\t\tlabel: \"突破周期 (N1)\",\n\t\tdefault: 20,\n\t\tmin: 5,\n\t\tmax: 100,\n\t\tstep: 1\n\t}, {\n\t\tkey: \"lookbackExit\",\n\t\tlabel: \"离场周期 (N2)\",\n\t\tdefault: 10,\n\t\tmin: 2,\n\t\tmax: 50,\n\t\tstep: 1\n\t}],\n\tcompute(bars, params) {\n\t\tconst n1 = Math.max(2, Math.round(params.lookbackEntry ?? 20));\n\t\tconst n2 = Math.max(1, Math.round(params.lookbackExit ?? 10));\n\t\tconst fmtPrice = (value) => {\n\t\t\tif (!Number.isFinite(value)) return \"—\";\n\t\t\tconst abs = Math.abs(value);\n\t\t\tif (abs < 1) return value.toFixed(abs >= .01 ? 4 : 6);\n\t\t\treturn value.toFixed(Math.abs(Number(value.toFixed(2)) - value) < 1e-9 ? 2 : 3);\n\t\t};\n\t\tconst signals = [];\n\t\tlet inPosition = false;\n\t\tfor (let i = Math.max(n1, n2); i < bars.length; i++) {\n\t\t\tconst currentClose = bars[i].close;\n\t\t\tlet highestHigh = -Infinity;\n\t\t\tfor (let j = i - n1; j < i; j++) if (bars[j].high > highestHigh) highestHigh = bars[j].high;\n\t\t\tlet lowestLow = Infinity;\n\t\t\tfor (let j = i - n2; j < i; j++) if (bars[j].low < lowestLow) lowestLow = bars[j].low;\n\t\t\tif (!inPosition && currentClose > highestHigh) {\n\t\t\t\tsignals.push({\n\t\t\t\t\tindex: i,\n\t\t\t\t\ttime: bars[i].openTime,\n\t\t\t\t\taction: \"entry\",\n\t\t\t\t\tdirection: \"long\",\n\t\t\t\t\tprice: currentClose,\n\t\t\t\t\treason: `收盘价 (${fmtPrice(currentClose)}) 突破前 ${n1} 根最高价 (${fmtPrice(highestHigh)})`,\n\t\t\t\t\treasonKey: \"strat.donchian-breakout.reason.entry\",\n\t\t\t\t\treasonParams: {\n\t\t\t\t\t\tclose: fmtPrice(currentClose),\n\t\t\t\t\t\tn: n1,\n\t\t\t\t\t\thigh: fmtPrice(highestHigh)\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t\tinPosition = true;\n\t\t\t} else if (inPosition && currentClose < lowestLow) {\n\t\t\t\tsignals.push({\n\t\t\t\t\tindex: i,\n\t\t\t\t\ttime: bars[i].openTime,\n\t\t\t\t\taction: \"exit\",\n\t\t\t\t\tdirection: \"flat\",\n\t\t\t\t\tprice: currentClose,\n\t\t\t\t\treason: `收盘价 (${fmtPrice(currentClose)}) 跌破前 ${n2} 根最低价 (${fmtPrice(lowestLow)})`,\n\t\t\t\t\treasonKey: \"strat.donchian-breakout.reason.exit\",\n\t\t\t\t\treasonParams: {\n\t\t\t\t\t\tclose: fmtPrice(currentClose),\n\t\t\t\t\t\tn: n2,\n\t\t\t\t\t\tlow: fmtPrice(lowestLow)\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t\tinPosition = false;\n\t\t\t}\n\t\t}\n\t\treturn signals;\n\t}\n};\n//#endregion\nexport { donchianBreakoutStrategy };\n","//#region src/paradigms/rsi-reversion.ts\nconst rsiReversionStrategy = {\n\tid: \"rsi-reversion\",\n\thorizon: \"short\",\n\tname: \"RSI 短线极值回归\",\n\tsummary: \"短周期 RSI(2) 进入极端超卖区抄底,快速反弹后止盈(经典均值回归)\",\n\tparams: [\n\t\t{\n\t\t\tkey: \"rsiPeriod\",\n\t\t\tlabel: \"RSI 周期\",\n\t\t\tdefault: 2,\n\t\t\tmin: 2,\n\t\t\tmax: 14,\n\t\t\tstep: 1\n\t\t},\n\t\t{\n\t\t\tkey: \"entryThreshold\",\n\t\t\tlabel: \"入场超卖阈值\",\n\t\t\tdefault: 10,\n\t\t\tmin: 1,\n\t\t\tmax: 30,\n\t\t\tstep: 1\n\t\t},\n\t\t{\n\t\t\tkey: \"exitThreshold\",\n\t\t\tlabel: \"出场止盈阈值\",\n\t\t\tdefault: 60,\n\t\t\tmin: 50,\n\t\t\tmax: 95,\n\t\t\tstep: 1\n\t\t}\n\t],\n\tcompute(bars, params) {\n\t\tconst period = Math.max(2, Math.round(params.rsiPeriod ?? 2));\n\t\tconst enterThresh = Number(params.entryThreshold ?? 10);\n\t\tconst exitThresh = Number(params.exitThreshold ?? 60);\n\t\tconst rsiOf = (values, period) => {\n\t\t\tconst out = new Array(values.length).fill(void 0);\n\t\t\tif (!Number.isFinite(period) || period < 1 || values.length < period) return out;\n\t\t\tlet gain = 0;\n\t\t\tlet loss = 0;\n\t\t\tfor (let index = 1; index <= period; index++) {\n\t\t\t\tconst delta = values[index] - values[index - 1];\n\t\t\t\tif (delta >= 0) gain += delta;\n\t\t\t\telse loss -= delta;\n\t\t\t}\n\t\t\tgain /= period;\n\t\t\tloss /= period;\n\t\t\tout[period] = loss === 0 ? 100 : 100 - 100 / (1 + gain / loss);\n\t\t\tfor (let index = period + 1; index < values.length; index++) {\n\t\t\t\tconst delta = values[index] - values[index - 1];\n\t\t\t\tgain = (gain * (period - 1) + Math.max(delta, 0)) / period;\n\t\t\t\tloss = (loss * (period - 1) + Math.max(-delta, 0)) / period;\n\t\t\t\tout[index] = loss === 0 ? 100 : 100 - 100 / (1 + gain / loss);\n\t\t\t}\n\t\t\treturn out;\n\t\t};\n\t\tconst rsiValues = rsiOf(bars.map((b) => b.close), period);\n\t\tconst signals = [];\n\t\tlet inPosition = false;\n\t\tfor (let i = 0; i < bars.length; i++) {\n\t\t\tconst val = rsiValues[i];\n\t\t\tif (val === void 0 || Number.isNaN(val)) continue;\n\t\t\tif (!inPosition && val < enterThresh) {\n\t\t\t\tsignals.push({\n\t\t\t\t\tindex: i,\n\t\t\t\t\ttime: bars[i].openTime,\n\t\t\t\t\taction: \"entry\",\n\t\t\t\t\tdirection: \"long\",\n\t\t\t\t\tprice: bars[i].close,\n\t\t\t\t\treason: `RSI(${period}) 达到极端超卖值 (${val.toFixed(1)} < ${enterThresh}),触发反弹买入`,\n\t\t\t\t\treasonKey: \"strat.rsi-reversion.reason.entry\",\n\t\t\t\t\treasonParams: {\n\t\t\t\t\t\tperiod,\n\t\t\t\t\t\tval: val.toFixed(1),\n\t\t\t\t\t\tthresh: enterThresh\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t\tinPosition = true;\n\t\t\t} else if (inPosition && val > exitThresh) {\n\t\t\t\tsignals.push({\n\t\t\t\t\tindex: i,\n\t\t\t\t\ttime: bars[i].openTime,\n\t\t\t\t\taction: \"exit\",\n\t\t\t\t\tdirection: \"flat\",\n\t\t\t\t\tprice: bars[i].close,\n\t\t\t\t\treason: `RSI(${period}) 回升至目标位 (${val.toFixed(1)} > ${exitThresh}),止盈离场`,\n\t\t\t\t\treasonKey: \"strat.rsi-reversion.reason.exit\",\n\t\t\t\t\treasonParams: {\n\t\t\t\t\t\tperiod,\n\t\t\t\t\t\tval: val.toFixed(1),\n\t\t\t\t\t\tthresh: exitThresh\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t\tinPosition = false;\n\t\t\t}\n\t\t}\n\t\treturn signals;\n\t}\n};\n//#endregion\nexport { rsiReversionStrategy };\n","//#region src/paradigms/ema-crossover.ts\nconst emaCrossoverStrategy = {\n\tid: \"ema-crossover\",\n\thorizon: \"swing\",\n\tname: \"EMA 双均线趋势跟踪\",\n\tsummary: \"快线 EMA 上穿慢线 EMA 金叉做多,死叉平仓(经典中线波段趋势策略)\",\n\tparams: [{\n\t\tkey: \"fastPeriod\",\n\t\tlabel: \"快线周期 (Fast)\",\n\t\tdefault: 20,\n\t\tmin: 5,\n\t\tmax: 50,\n\t\tstep: 1\n\t}, {\n\t\tkey: \"slowPeriod\",\n\t\tlabel: \"慢线周期 (Slow)\",\n\t\tdefault: 60,\n\t\tmin: 20,\n\t\tmax: 200,\n\t\tstep: 1\n\t}],\n\tcompute(bars, params) {\n\t\tconst fastP = Math.max(2, Math.round(params.fastPeriod ?? 20));\n\t\tconst slowP = Math.max(fastP + 1, Math.round(params.slowPeriod ?? 60));\n\t\tconst fmtPrice = (value) => {\n\t\t\tif (!Number.isFinite(value)) return \"—\";\n\t\t\tconst abs = Math.abs(value);\n\t\t\tif (abs < 1) return value.toFixed(abs >= .01 ? 4 : 6);\n\t\t\treturn value.toFixed(Math.abs(Number(value.toFixed(2)) - value) < 1e-9 ? 2 : 3);\n\t\t};\n\t\tconst emaOf = (values, period) => {\n\t\t\tconst out = new Array(values.length).fill(void 0);\n\t\t\tif (!Number.isFinite(period) || period < 1 || values.length < period) return out;\n\t\t\tconst k = 2 / (period + 1);\n\t\t\tlet seed = 0;\n\t\t\tfor (let index = 0; index < period; index++) seed += values[index];\n\t\t\tlet prev = seed / period;\n\t\t\tout[period - 1] = prev;\n\t\t\tfor (let index = period; index < values.length; index++) {\n\t\t\t\tprev = values[index] * k + prev * (1 - k);\n\t\t\t\tout[index] = prev;\n\t\t\t}\n\t\t\treturn out;\n\t\t};\n\t\tconst closes = bars.map((b) => b.close);\n\t\tconst fastEma = emaOf(closes, fastP);\n\t\tconst slowEma = emaOf(closes, slowP);\n\t\tconst signals = [];\n\t\tlet inPosition = false;\n\t\tfor (let i = 1; i < bars.length; i++) {\n\t\t\tconst prevFast = fastEma[i - 1];\n\t\t\tconst prevSlow = slowEma[i - 1];\n\t\t\tconst currFast = fastEma[i];\n\t\t\tconst currSlow = slowEma[i];\n\t\t\tif (prevFast === void 0 || prevSlow === void 0 || currFast === void 0 || currSlow === void 0) continue;\n\t\t\tif (!inPosition && prevFast <= prevSlow && currFast > currSlow) {\n\t\t\t\tsignals.push({\n\t\t\t\t\tindex: i,\n\t\t\t\t\ttime: bars[i].openTime,\n\t\t\t\t\taction: \"entry\",\n\t\t\t\t\tdirection: \"long\",\n\t\t\t\t\tprice: bars[i].close,\n\t\t\t\t\treason: `EMA(${fastP}) (${fmtPrice(currFast)}) 上穿 EMA(${slowP}) (${fmtPrice(currSlow)}) 形成金叉`,\n\t\t\t\t\treasonKey: \"strat.ema-crossover.reason.entry\",\n\t\t\t\t\treasonParams: {\n\t\t\t\t\t\tfastP,\n\t\t\t\t\t\tfast: fmtPrice(currFast),\n\t\t\t\t\t\tslowP,\n\t\t\t\t\t\tslow: fmtPrice(currSlow)\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t\tinPosition = true;\n\t\t\t} else if (inPosition && prevFast >= prevSlow && currFast < currSlow) {\n\t\t\t\tsignals.push({\n\t\t\t\t\tindex: i,\n\t\t\t\t\ttime: bars[i].openTime,\n\t\t\t\t\taction: \"exit\",\n\t\t\t\t\tdirection: \"flat\",\n\t\t\t\t\tprice: bars[i].close,\n\t\t\t\t\treason: `EMA(${fastP}) (${fmtPrice(currFast)}) 下穿 EMA(${slowP}) (${fmtPrice(currSlow)}) 形成死叉`,\n\t\t\t\t\treasonKey: \"strat.ema-crossover.reason.exit\",\n\t\t\t\t\treasonParams: {\n\t\t\t\t\t\tfastP,\n\t\t\t\t\t\tfast: fmtPrice(currFast),\n\t\t\t\t\t\tslowP,\n\t\t\t\t\t\tslow: fmtPrice(currSlow)\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t\tinPosition = false;\n\t\t\t}\n\t\t}\n\t\treturn signals;\n\t}\n};\n//#endregion\nexport { emaCrossoverStrategy };\n","//#region src/paradigms/bollinger-reversion.ts\nconst bollingerReversionStrategy = {\n\tid: \"bollinger-reversion\",\n\thorizon: \"swing\",\n\tname: \"布林带下轨均值回归\",\n\tsummary: \"价格跌破布林线下轨时介入抄底,反弹至中轨(基准均线)时平仓(波段通道回归)\",\n\tparams: [{\n\t\tkey: \"period\",\n\t\tlabel: \"布林周期\",\n\t\tdefault: 20,\n\t\tmin: 5,\n\t\tmax: 50,\n\t\tstep: 1\n\t}, {\n\t\tkey: \"multiplier\",\n\t\tlabel: \"标准差倍数 (k)\",\n\t\tdefault: 2,\n\t\tmin: 1,\n\t\tmax: 4,\n\t\tstep: .5\n\t}],\n\tcompute(bars, params) {\n\t\tconst period = Math.max(5, Math.round(params.period ?? 20));\n\t\tconst k = Number(params.multiplier ?? 2);\n\t\tconst fmtPrice = (value) => {\n\t\t\tif (!Number.isFinite(value)) return \"—\";\n\t\t\tconst abs = Math.abs(value);\n\t\t\tif (abs < 1) return value.toFixed(abs >= .01 ? 4 : 6);\n\t\t\treturn value.toFixed(Math.abs(Number(value.toFixed(2)) - value) < 1e-9 ? 2 : 3);\n\t\t};\n\t\tconst smaOf = (values, period) => {\n\t\t\tconst out = new Array(values.length).fill(void 0);\n\t\t\tif (!Number.isFinite(period) || period < 1 || values.length < period) return out;\n\t\t\tlet sum = 0;\n\t\t\tfor (let index = 0; index < values.length; index++) {\n\t\t\t\tsum += values[index];\n\t\t\t\tif (index >= period) sum -= values[index - period];\n\t\t\t\tif (index >= period - 1) out[index] = sum / period;\n\t\t\t}\n\t\t\treturn out;\n\t\t};\n\t\tconst stdevOf = (values, period) => {\n\t\t\tconst out = new Array(values.length).fill(void 0);\n\t\t\tif (!Number.isFinite(period) || period < 1 || values.length < period) return out;\n\t\t\tfor (let index = period - 1; index < values.length; index++) {\n\t\t\t\tlet mean = 0;\n\t\t\t\tfor (let offset = 0; offset < period; offset++) mean += values[index - offset];\n\t\t\t\tmean /= period;\n\t\t\t\tlet variance = 0;\n\t\t\t\tfor (let offset = 0; offset < period; offset++) {\n\t\t\t\t\tconst delta = values[index - offset] - mean;\n\t\t\t\t\tvariance += delta * delta;\n\t\t\t\t}\n\t\t\t\tout[index] = Math.sqrt(variance / period);\n\t\t\t}\n\t\t\treturn out;\n\t\t};\n\t\tconst closes = bars.map((b) => b.close);\n\t\tconst mid = smaOf(closes, period);\n\t\tconst sd = stdevOf(closes, period);\n\t\tconst lower = closes.map((_, index) => {\n\t\t\tconst base = mid[index];\n\t\t\tconst dev = sd[index];\n\t\t\treturn base === void 0 || dev === void 0 ? void 0 : base - k * dev;\n\t\t});\n\t\tconst signals = [];\n\t\tlet inPosition = false;\n\t\tfor (let i = period - 1; i < bars.length; i++) {\n\t\t\tconst currentClose = bars[i].close;\n\t\t\tconst currentLower = lower[i];\n\t\t\tconst currentMid = mid[i];\n\t\t\tif (currentLower === void 0 || currentMid === void 0) continue;\n\t\t\tif (!inPosition && currentClose < currentLower) {\n\t\t\t\tsignals.push({\n\t\t\t\t\tindex: i,\n\t\t\t\t\ttime: bars[i].openTime,\n\t\t\t\t\taction: \"entry\",\n\t\t\t\t\tdirection: \"long\",\n\t\t\t\t\tprice: currentClose,\n\t\t\t\t\treason: `收盘价 (${fmtPrice(currentClose)}) 跌破布林下轨 (${fmtPrice(currentLower)}),触发波段均值回归`,\n\t\t\t\t\treasonKey: \"strat.bollinger-reversion.reason.entry\",\n\t\t\t\t\treasonParams: {\n\t\t\t\t\t\tclose: fmtPrice(currentClose),\n\t\t\t\t\t\tband: fmtPrice(currentLower)\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t\tinPosition = true;\n\t\t\t} else if (inPosition && currentClose >= currentMid) {\n\t\t\t\tsignals.push({\n\t\t\t\t\tindex: i,\n\t\t\t\t\ttime: bars[i].openTime,\n\t\t\t\t\taction: \"exit\",\n\t\t\t\t\tdirection: \"flat\",\n\t\t\t\t\tprice: currentClose,\n\t\t\t\t\treason: `收盘价 (${fmtPrice(currentClose)}) 成功回归至布林中轨 (${fmtPrice(currentMid)}),完成目标止盈`,\n\t\t\t\t\treasonKey: \"strat.bollinger-reversion.reason.exit\",\n\t\t\t\t\treasonParams: {\n\t\t\t\t\t\tclose: fmtPrice(currentClose),\n\t\t\t\t\t\tmid: fmtPrice(currentMid)\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t\tinPosition = false;\n\t\t\t}\n\t\t}\n\t\treturn signals;\n\t}\n};\n//#endregion\nexport { bollingerReversionStrategy };\n","//#region src/paradigms/sma-baseline.ts\nconst smaBaselineStrategy = {\n\tid: \"sma-baseline\",\n\thorizon: \"long\",\n\tname: \"200 日均线牛熊择时基线\",\n\tsummary: \"收盘价站上 SMA200 均线做多,跌破均线空仓避险(长线资产配置经典基线)\",\n\tparams: [{\n\t\tkey: \"period\",\n\t\tlabel: \"长期均线周期\",\n\t\tdefault: 200,\n\t\tmin: 50,\n\t\tmax: 300,\n\t\tstep: 10\n\t}],\n\tcompute(bars, params) {\n\t\tconst period = Math.max(10, Math.round(params.period ?? 200));\n\t\tconst fmtPrice = (value) => {\n\t\t\tif (!Number.isFinite(value)) return \"—\";\n\t\t\tconst abs = Math.abs(value);\n\t\t\tif (abs < 1) return value.toFixed(abs >= .01 ? 4 : 6);\n\t\t\treturn value.toFixed(Math.abs(Number(value.toFixed(2)) - value) < 1e-9 ? 2 : 3);\n\t\t};\n\t\tconst smaOf = (values, period) => {\n\t\t\tconst out = new Array(values.length).fill(void 0);\n\t\t\tif (!Number.isFinite(period) || period < 1 || values.length < period) return out;\n\t\t\tlet sum = 0;\n\t\t\tfor (let index = 0; index < values.length; index++) {\n\t\t\t\tsum += values[index];\n\t\t\t\tif (index >= period) sum -= values[index - period];\n\t\t\t\tif (index >= period - 1) out[index] = sum / period;\n\t\t\t}\n\t\t\treturn out;\n\t\t};\n\t\tconst smaValues = smaOf(bars.map((b) => b.close), period);\n\t\tconst signals = [];\n\t\tlet inPosition = false;\n\t\tfor (let i = period - 1; i < bars.length; i++) {\n\t\t\tconst currentClose = bars[i].close;\n\t\t\tconst currentSma = smaValues[i];\n\t\t\tif (currentSma === void 0) continue;\n\t\t\tif (!inPosition && currentClose > currentSma) {\n\t\t\t\tsignals.push({\n\t\t\t\t\tindex: i,\n\t\t\t\t\ttime: bars[i].openTime,\n\t\t\t\t\taction: \"entry\",\n\t\t\t\t\tdirection: \"long\",\n\t\t\t\t\tprice: currentClose,\n\t\t\t\t\treason: `收盘价 (${fmtPrice(currentClose)}) 站上长期基线 SMA(${period}) (${fmtPrice(currentSma)}),确立多头趋势`,\n\t\t\t\t\treasonKey: \"strat.sma-baseline.reason.entry\",\n\t\t\t\t\treasonParams: {\n\t\t\t\t\t\tclose: fmtPrice(currentClose),\n\t\t\t\t\t\tperiod,\n\t\t\t\t\t\tsma: fmtPrice(currentSma)\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t\tinPosition = true;\n\t\t\t} else if (inPosition && currentClose < currentSma) {\n\t\t\t\tsignals.push({\n\t\t\t\t\tindex: i,\n\t\t\t\t\ttime: bars[i].openTime,\n\t\t\t\t\taction: \"exit\",\n\t\t\t\t\tdirection: \"flat\",\n\t\t\t\t\tprice: currentClose,\n\t\t\t\t\treason: `收盘价 (${fmtPrice(currentClose)}) 跌破长期基线 SMA(${period}) (${fmtPrice(currentSma)}),转入防御避险`,\n\t\t\t\t\treasonKey: \"strat.sma-baseline.reason.exit\",\n\t\t\t\t\treasonParams: {\n\t\t\t\t\t\tclose: fmtPrice(currentClose),\n\t\t\t\t\t\tperiod,\n\t\t\t\t\t\tsma: fmtPrice(currentSma)\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t\tinPosition = false;\n\t\t\t}\n\t\t}\n\t\treturn signals;\n\t}\n};\n//#endregion\nexport { smaBaselineStrategy };\n","//#region src/paradigms/momentum-12m.ts\nconst momentum12mStrategy = {\n\tid: \"momentum-12m\",\n\thorizon: \"long\",\n\tname: \"12 个月动量择时\",\n\tsummary: \"近 12 个月动量为正且站上年线做多,动量转负或破位离场(低换手长线动量)\",\n\tparams: [{\n\t\tkey: \"lookbackBars\",\n\t\tlabel: \"动量回溯周期 (K线)\",\n\t\tdefault: 250,\n\t\tmin: 50,\n\t\tmax: 500,\n\t\tstep: 10\n\t}],\n\tcompute(bars, params) {\n\t\tconst lookback = Math.max(10, Math.round(params.lookbackBars ?? 250));\n\t\tconst fmtPrice = (value) => {\n\t\t\tif (!Number.isFinite(value)) return \"—\";\n\t\t\tconst abs = Math.abs(value);\n\t\t\tif (abs < 1) return value.toFixed(abs >= .01 ? 4 : 6);\n\t\t\treturn value.toFixed(Math.abs(Number(value.toFixed(2)) - value) < 1e-9 ? 2 : 3);\n\t\t};\n\t\tconst smaOf = (values, period) => {\n\t\t\tconst out = new Array(values.length).fill(void 0);\n\t\t\tif (!Number.isFinite(period) || period < 1 || values.length < period) return out;\n\t\t\tlet sum = 0;\n\t\t\tfor (let index = 0; index < values.length; index++) {\n\t\t\t\tsum += values[index];\n\t\t\t\tif (index >= period) sum -= values[index - period];\n\t\t\t\tif (index >= period - 1) out[index] = sum / period;\n\t\t\t}\n\t\t\treturn out;\n\t\t};\n\t\tconst smaValues = smaOf(bars.map((b) => b.close), lookback);\n\t\tconst signals = [];\n\t\tlet inPosition = false;\n\t\tfor (let i = lookback; i < bars.length; i++) {\n\t\t\tconst currentClose = bars[i].close;\n\t\t\tconst pastClose = bars[i - lookback].close;\n\t\t\tconst currentSma = smaValues[i];\n\t\t\tif (pastClose <= 0 || currentSma === void 0) continue;\n\t\t\tconst momentumReturn = (currentClose - pastClose) / pastClose;\n\t\t\tif (!inPosition && momentumReturn > 0 && currentClose > currentSma) {\n\t\t\t\tsignals.push({\n\t\t\t\t\tindex: i,\n\t\t\t\t\ttime: bars[i].openTime,\n\t\t\t\t\taction: \"entry\",\n\t\t\t\t\tdirection: \"long\",\n\t\t\t\t\tprice: currentClose,\n\t\t\t\t\treason: `近 ${lookback} 周期动量为正 (+${(momentumReturn * 100).toFixed(1)}%) 且位于均线 (${fmtPrice(currentSma)}) 之上,确认强动量`,\n\t\t\t\t\treasonKey: \"strat.momentum-12m.reason.entry\",\n\t\t\t\t\treasonParams: {\n\t\t\t\t\t\tn: lookback,\n\t\t\t\t\t\tpct: (momentumReturn * 100).toFixed(1),\n\t\t\t\t\t\tsma: fmtPrice(currentSma)\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t\tinPosition = true;\n\t\t\t} else if (inPosition && (momentumReturn <= 0 || currentClose < currentSma)) {\n\t\t\t\tconst exitCause = momentumReturn <= 0 ? \"动量转为负值\" : \"跌破基准均线\";\n\t\t\t\tsignals.push({\n\t\t\t\t\tindex: i,\n\t\t\t\t\ttime: bars[i].openTime,\n\t\t\t\t\taction: \"exit\",\n\t\t\t\t\tdirection: \"flat\",\n\t\t\t\t\tprice: currentClose,\n\t\t\t\t\treason: `${exitCause} (${(momentumReturn * 100).toFixed(1)}% / SMA ${fmtPrice(currentSma)}),动量衰减平仓`,\n\t\t\t\t\treasonKey: \"strat.momentum-12m.reason.exit\",\n\t\t\t\t\treasonParams: {\n\t\t\t\t\t\tcause: momentumReturn <= 0 ? \"momentumNegative\" : \"belowBaseline\",\n\t\t\t\t\t\tpct: (momentumReturn * 100).toFixed(1),\n\t\t\t\t\t\tsma: fmtPrice(currentSma)\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t\tinPosition = false;\n\t\t\t}\n\t\t}\n\t\treturn signals;\n\t}\n};\n//#endregion\nexport { momentum12mStrategy };\n","import { donchianBreakoutStrategy } from \"./donchian-breakout.js\";\nimport { rsiReversionStrategy } from \"./rsi-reversion.js\";\nimport { emaCrossoverStrategy } from \"./ema-crossover.js\";\nimport { bollingerReversionStrategy } from \"./bollinger-reversion.js\";\nimport { smaBaselineStrategy } from \"./sma-baseline.js\";\nimport { momentum12mStrategy } from \"./momentum-12m.js\";\n//#region src/paradigms/index.ts\n/**\n* 6 个经典策略参考范式汇聚。\n*/\nconst strategyParadigms = [\n\tdonchianBreakoutStrategy,\n\trsiReversionStrategy,\n\temaCrossoverStrategy,\n\tbollingerReversionStrategy,\n\tsmaBaselineStrategy,\n\tmomentum12mStrategy\n];\nfunction getStrategyById(id) {\n\treturn strategyParadigms.find((s) => s.id === id);\n}\n//#endregion\nexport { bollingerReversionStrategy, donchianBreakoutStrategy, emaCrossoverStrategy, getStrategyById, momentum12mStrategy, rsiReversionStrategy, smaBaselineStrategy, strategyParadigms };\n","//#region src/screeners/ma-bull-align.ts\nconst maBullAlignScreener = {\n\tid: \"scr.ma-bull-align\",\n\tname: \"均线多头排列\",\n\tsummary: \"现价站上三线且 SMA(短) > SMA(中) > SMA(长),筛选趋势结构完整的标的\",\n\tparams: [\n\t\t{\n\t\t\tkey: \"n1\",\n\t\t\tlabel: \"短期均线\",\n\t\t\tdefault: 20,\n\t\t\tmin: 5,\n\t\t\tmax: 120,\n\t\t\tstep: 5\n\t\t},\n\t\t{\n\t\t\tkey: \"n2\",\n\t\t\tlabel: \"中期均线\",\n\t\t\tdefault: 60,\n\t\t\tmin: 20,\n\t\t\tmax: 250,\n\t\t\tstep: 10\n\t\t},\n\t\t{\n\t\t\tkey: \"n3\",\n\t\t\tlabel: \"长期均线\",\n\t\t\tdefault: 120,\n\t\t\tmin: 50,\n\t\t\tmax: 300,\n\t\t\tstep: 10\n\t\t}\n\t],\n\tcolumns: [{\n\t\tkey: \"distLongPct\",\n\t\tlabel: \"距长期均线\",\n\t\tformat: \"percent\"\n\t}],\n\tevaluate(bars, params) {\n\t\tconst n1 = Math.max(5, Math.round(params.n1 ?? 20));\n\t\tconst n2 = Math.max(n1, Math.round(params.n2 ?? 60));\n\t\tconst n3 = Math.max(n2, Math.round(params.n3 ?? 120));\n\t\tconst i = bars.length - 1;\n\t\tif (i + 1 < n3) return null;\n\t\tconst smaOf = (values, period) => {\n\t\t\tconst out = new Array(values.length).fill(void 0);\n\t\t\tif (!Number.isFinite(period) || period < 1 || values.length < period) return out;\n\t\t\tlet sum = 0;\n\t\t\tfor (let index = 0; index < values.length; index++) {\n\t\t\t\tsum += values[index];\n\t\t\t\tif (index >= period) sum -= values[index - period];\n\t\t\t\tif (index >= period - 1) out[index] = sum / period;\n\t\t\t}\n\t\t\treturn out;\n\t\t};\n\t\tconst closes = bars.map((b) => b.close);\n\t\tconst s1 = smaOf(closes, n1)[i];\n\t\tconst s2 = smaOf(closes, n2)[i];\n\t\tconst s3 = smaOf(closes, n3)[i];\n\t\tif (s1 === void 0 || s2 === void 0 || s3 === void 0) return null;\n\t\tconst close = bars[i].close;\n\t\tif (!(close > s1 && s1 > s2 && s2 > s3)) return null;\n\t\treturn {\n\t\t\tmetrics: { distLongPct: (close - s3) / s3 * 100 },\n\t\t\treason: `现价站上三线且 SMA(${n1}) > SMA(${n2}) > SMA(${n3}),多头排列`,\n\t\t\treasonKey: \"scr.ma-bull-align.reason\",\n\t\t\treasonParams: {\n\t\t\t\tn1,\n\t\t\t\tn2,\n\t\t\t\tn3\n\t\t\t}\n\t\t};\n\t}\n};\n//#endregion\nexport { maBullAlignScreener };\n","//#region src/screeners/volume-breakout.ts\nconst volumeBreakoutScreener = {\n\tid: \"scr.volume-breakout\",\n\tname: \"放量突破\",\n\tsummary: \"收盘价创 N 日新高且成交量 ≥ 均量 M 倍,量价配合的突破筛选\",\n\tparams: [{\n\t\tkey: \"lookback\",\n\t\tlabel: \"突破窗口(日)\",\n\t\tdefault: 20,\n\t\tmin: 5,\n\t\tmax: 60,\n\t\tstep: 5\n\t}, {\n\t\tkey: \"volMultiple\",\n\t\tlabel: \"量能倍数\",\n\t\tdefault: 2,\n\t\tmin: 1,\n\t\tmax: 10,\n\t\tstep: .5\n\t}],\n\tcolumns: [{\n\t\tkey: \"volRatio\",\n\t\tlabel: \"量比(倍)\"\n\t}, {\n\t\tkey: \"breakoutPct\",\n\t\tlabel: \"突破幅度\",\n\t\tformat: \"percent\"\n\t}],\n\tevaluate(bars, params) {\n\t\tconst lookback = Math.max(5, Math.round(params.lookback ?? 20));\n\t\tconst volMultiple = Math.max(1, params.volMultiple ?? 2);\n\t\tconst i = bars.length - 1;\n\t\tif (i < lookback) return null;\n\t\tconst smaOf = (values, period) => {\n\t\t\tconst out = new Array(values.length).fill(void 0);\n\t\t\tif (!Number.isFinite(period) || period < 1 || values.length < period) return out;\n\t\t\tlet sum = 0;\n\t\t\tfor (let index = 0; index < values.length; index++) {\n\t\t\t\tsum += values[index];\n\t\t\t\tif (index >= period) sum -= values[index - period];\n\t\t\t\tif (index >= period - 1) out[index] = sum / period;\n\t\t\t}\n\t\t\treturn out;\n\t\t};\n\t\tconst window = bars.slice(i - lookback, i);\n\t\tconst priorHigh = Math.max(...window.map((b) => b.high));\n\t\tconst avgVolume = smaOf(bars.map((b) => b.volume), lookback)[i];\n\t\tif (avgVolume === void 0 || avgVolume <= 0) return null;\n\t\tconst close = bars[i].close;\n\t\tconst volume = bars[i].volume;\n\t\tif (!(close > priorHigh) || !(volume >= volMultiple * avgVolume)) return null;\n\t\tconst volRatio = volume / avgVolume;\n\t\treturn {\n\t\t\tmetrics: {\n\t\t\t\tvolRatio,\n\t\t\t\tbreakoutPct: (close - priorHigh) / priorHigh * 100\n\t\t\t},\n\t\t\treason: `放量 ${volRatio.toFixed(2)} 倍突破 ${lookback} 日高点`,\n\t\t\treasonKey: \"scr.volume-breakout.reason\",\n\t\t\treasonParams: {\n\t\t\t\tratio: volRatio.toFixed(2),\n\t\t\t\tn: lookback\n\t\t\t}\n\t\t};\n\t}\n};\n//#endregion\nexport { volumeBreakoutScreener };\n","//#region src/screeners/rsi-oversold.ts\nconst rsiOversoldScreener = {\n\tid: \"scr.rsi-oversold\",\n\tname: \"RSI 超卖\",\n\tsummary: \"RSI 跌入超卖区(默认 <30),筛选值得盯的反转候选(逆势信号)\",\n\tparams: [{\n\t\tkey: \"period\",\n\t\tlabel: \"RSI 周期\",\n\t\tdefault: 14,\n\t\tmin: 5,\n\t\tmax: 30,\n\t\tstep: 1\n\t}, {\n\t\tkey: \"threshold\",\n\t\tlabel: \"超卖阈值\",\n\t\tdefault: 30,\n\t\tmin: 10,\n\t\tmax: 50,\n\t\tstep: 5\n\t}],\n\tcolumns: [{\n\t\tkey: \"rsi\",\n\t\tlabel: \"RSI\"\n\t}],\n\tevaluate(bars, params) {\n\t\tconst period = Math.max(5, Math.round(params.period ?? 14));\n\t\tconst threshold = Math.min(50, Math.max(10, params.threshold ?? 30));\n\t\tconst i = bars.length - 1;\n\t\tif (i < period) return null;\n\t\tconst rsiOf = (values, period) => {\n\t\t\tconst out = new Array(values.length).fill(void 0);\n\t\t\tif (!Number.isFinite(period) || period < 1 || values.length < period) return out;\n\t\t\tlet gain = 0;\n\t\t\tlet loss = 0;\n\t\t\tfor (let index = 1; index <= period; index++) {\n\t\t\t\tconst delta = values[index] - values[index - 1];\n\t\t\t\tif (delta >= 0) gain += delta;\n\t\t\t\telse loss -= delta;\n\t\t\t}\n\t\t\tgain /= period;\n\t\t\tloss /= period;\n\t\t\tout[period] = loss === 0 ? 100 : 100 - 100 / (1 + gain / loss);\n\t\t\tfor (let index = period + 1; index < values.length; index++) {\n\t\t\t\tconst delta = values[index] - values[index - 1];\n\t\t\t\tgain = (gain * (period - 1) + Math.max(delta, 0)) / period;\n\t\t\t\tloss = (loss * (period - 1) + Math.max(-delta, 0)) / period;\n\t\t\t\tout[index] = loss === 0 ? 100 : 100 - 100 / (1 + gain / loss);\n\t\t\t}\n\t\t\treturn out;\n\t\t};\n\t\tconst value = rsiOf(bars.map((b) => b.close), period)[i];\n\t\tif (value === void 0) return null;\n\t\tif (!(value < threshold)) return null;\n\t\treturn {\n\t\t\tmetrics: { rsi: value },\n\t\t\treason: `RSI(${period}) = ${value.toFixed(1)},进入超卖区(逆势信号)`,\n\t\t\treasonKey: \"scr.rsi-oversold.reason\",\n\t\t\treasonParams: {\n\t\t\t\tperiod,\n\t\t\t\tval: value.toFixed(1)\n\t\t\t}\n\t\t};\n\t}\n};\n//#endregion\nexport { rsiOversoldScreener };\n","//#region src/screeners/near-high.ts\nconst nearHighScreener = {\n\tid: \"scr.near-high\",\n\tname: \"接近一年新高\",\n\tsummary: \"现价距 N 日最高价不超过 X%,强势整理/突破前夜的动量筛选\",\n\tparams: [{\n\t\tkey: \"window\",\n\t\tlabel: \"窗口(日)\",\n\t\tdefault: 250,\n\t\tmin: 60,\n\t\tmax: 500,\n\t\tstep: 10\n\t}, {\n\t\tkey: \"withinPct\",\n\t\tlabel: \"接近阈值(%)\",\n\t\tdefault: 5,\n\t\tmin: 1,\n\t\tmax: 30,\n\t\tstep: 1\n\t}],\n\tcolumns: [{\n\t\tkey: \"offHighPct\",\n\t\tlabel: \"距高点\",\n\t\tformat: \"percent\"\n\t}],\n\tevaluate(bars, params) {\n\t\tconst window = Math.max(60, Math.round(params.window ?? 250));\n\t\tconst withinPct = Math.max(1, params.withinPct ?? 5);\n\t\tconst i = bars.length - 1;\n\t\tif (i + 1 < window) return null;\n\t\tconst windowBars = bars.slice(i + 1 - window);\n\t\tconst highMax = Math.max(...windowBars.map((b) => b.high));\n\t\tif (!(highMax > 0)) return null;\n\t\tconst offHighPct = (highMax - bars[i].close) / highMax * 100;\n\t\tif (!(offHighPct >= 0 && offHighPct <= withinPct)) return null;\n\t\treturn {\n\t\t\tmetrics: { offHighPct },\n\t\t\treason: `距 ${window} 日高点仅 ${offHighPct.toFixed(2)}%,处于突破前夜`,\n\t\t\treasonKey: \"scr.near-high.reason\",\n\t\t\treasonParams: {\n\t\t\t\tn: window,\n\t\t\t\tpct: offHighPct.toFixed(2)\n\t\t\t}\n\t\t};\n\t}\n};\n//#endregion\nexport { nearHighScreener };\n","//#region src/screeners/above-ma.ts\nconst aboveMaScreener = {\n\tid: \"scr.above-ma\",\n\tname: \"站上牛熊线\",\n\tsummary: \"现价站上长期均线且均线斜率向上,筛选长线多头环境的标的\",\n\tparams: [{\n\t\tkey: \"period\",\n\t\tlabel: \"牛熊线周期\",\n\t\tdefault: 200,\n\t\tmin: 50,\n\t\tmax: 300,\n\t\tstep: 10\n\t}, {\n\t\tkey: \"slopeBars\",\n\t\tlabel: \"斜率窗口(日)\",\n\t\tdefault: 20,\n\t\tmin: 5,\n\t\tmax: 60,\n\t\tstep: 5\n\t}],\n\tcolumns: [{\n\t\tkey: \"aboveMaPct\",\n\t\tlabel: \"高于均线\",\n\t\tformat: \"percent\"\n\t}, {\n\t\tkey: \"maSlopePct\",\n\t\tlabel: \"均线斜率\",\n\t\tformat: \"percent\"\n\t}],\n\tevaluate(bars, params) {\n\t\tconst period = Math.max(50, Math.round(params.period ?? 200));\n\t\tconst slopeBars = Math.max(5, Math.round(params.slopeBars ?? 20));\n\t\tconst i = bars.length - 1;\n\t\tif (i < period + slopeBars - 1) return null;\n\t\tconst smaOf = (values, period) => {\n\t\t\tconst out = new Array(values.length).fill(void 0);\n\t\t\tif (!Number.isFinite(period) || period < 1 || values.length < period) return out;\n\t\t\tlet sum = 0;\n\t\t\tfor (let index = 0; index < values.length; index++) {\n\t\t\t\tsum += values[index];\n\t\t\t\tif (index >= period) sum -= values[index - period];\n\t\t\t\tif (index >= period - 1) out[index] = sum / period;\n\t\t\t}\n\t\t\treturn out;\n\t\t};\n\t\tconst maSeries = smaOf(bars.map((b) => b.close), period);\n\t\tconst ma = maSeries[i];\n\t\tconst maPrev = maSeries[i - slopeBars];\n\t\tif (ma === void 0 || maPrev === void 0 || !(maPrev > 0)) return null;\n\t\tconst close = bars[i].close;\n\t\tif (!(close > ma) || !(ma > maPrev)) return null;\n\t\tconst aboveMaPct = (close - ma) / ma * 100;\n\t\tconst maSlopePct = (ma - maPrev) / maPrev * 100;\n\t\treturn {\n\t\t\tmetrics: {\n\t\t\t\taboveMaPct,\n\t\t\t\tmaSlopePct\n\t\t\t},\n\t\t\treason: `现价高于 SMA(${period}) ${aboveMaPct.toFixed(2)}%,均线 ${slopeBars} 日斜率 +${maSlopePct.toFixed(2)}%`,\n\t\t\treasonKey: \"scr.above-ma.reason\",\n\t\t\treasonParams: {\n\t\t\t\tperiod,\n\t\t\t\tabove: aboveMaPct.toFixed(2),\n\t\t\t\tslope: slopeBars,\n\t\t\t\tslopePct: maSlopePct.toFixed(2)\n\t\t\t}\n\t\t};\n\t}\n};\n//#endregion\nexport { aboveMaScreener };\n","import { maBullAlignScreener } from \"./ma-bull-align.js\";\nimport { volumeBreakoutScreener } from \"./volume-breakout.js\";\nimport { rsiOversoldScreener } from \"./rsi-oversold.js\";\nimport { nearHighScreener } from \"./near-high.js\";\nimport { aboveMaScreener } from \"./above-ma.js\";\n//#region src/screeners/index.ts\nconst screenerParadigms = [\n\tmaBullAlignScreener,\n\tvolumeBreakoutScreener,\n\trsiOversoldScreener,\n\tnearHighScreener,\n\taboveMaScreener\n];\nfunction getScreenerById(id) {\n\treturn screenerParadigms.find((s) => s.id === id);\n}\n//#endregion\nexport { getScreenerById, screenerParadigms };\n","import { strategyParadigms } from \"./paradigms/index.js\";\nimport { screenerParadigms } from \"./screeners/index.js\";\n//#region src/management.ts\n/**\n* 策略管理名册合成与内置源码导出(策略管理,2026-09-07)。\n*\n* 覆盖 + 墓碑模型的唯一合成逻辑:内置范式(代码常量)为出厂默认层,\n* 自定义 store 中同 id 的记录是覆盖层,墓碑表是删除层。agent 侧\n* (resolveStrategyDefinition)与 GUI 侧(StrategyView)共用本模块,\n* 保证两侧名册一致。纯函数、零 Node 依赖,浏览器安全。\n*/\n/** 内置范式策略 id 集合(稳定词汇;选股器 id 带 'scr.' 前缀,不在此列)。 */\nconst BUILTIN_STRATEGY_IDS = new Set(strategyParadigms.map((d) => d.id));\n/** 内置选股器 id 集合('scr.' 前缀词汇)。 */\nconst BUILTIN_SCREENER_IDS = new Set(screenerParadigms.map((d) => d.id));\nfunction isBuiltinStrategyId(id) {\n\treturn BUILTIN_STRATEGY_IDS.has(id);\n}\nfunction isBuiltinScreenerId(id) {\n\treturn BUILTIN_SCREENER_IDS.has(id);\n}\n/**\n* 名册合成:内置 − 墓碑,覆盖记录原位替换同 id 内置,自定义按传入顺序追加。\n* @param paradigms 出厂默认名册(生产传 strategyParadigms,单测可传定制名册)\n* @param defs 自定义 store 校验后的定义(含覆盖内置的同 id 记录)\n* @param deletedIds 墓碑 id(内置删除标记;命中者从名册剔除)\n*/\nfunction applyStrategyManagement(paradigms, defs, deletedIds) {\n\tconst deleted = new Set(deletedIds);\n\tconst overrides = /* @__PURE__ */ new Map();\n\tconst customs = [];\n\tfor (const def of defs) if (BUILTIN_STRATEGY_IDS.has(def.id)) overrides.set(def.id, def);\n\telse customs.push(def);\n\tconst roster = [];\n\tfor (const builtin of paradigms) {\n\t\tif (deleted.has(builtin.id)) continue;\n\t\troster.push(overrides.get(builtin.id) ?? builtin);\n\t}\n\treturn [...roster, ...customs];\n}\n/**\n* 内置策略 compute 源码导出(GUI「编辑内置」预填用)。\n*\n* 前提:内置 compute 一律自包含(指标数学内联,不引用外部闭包),方法速记\n* 形态 `compute(bars, params) { ... }` 归一为箭头形态 `(bars, params) => { ... }`\n* ——后者是 compileStrategySource 直接接受的形状。打包器若改写为箭头/function\n* 形态则原样透传(同样被 compileStrategySource 支持)。\n*/\nfunction builtinStrategySource(def) {\n\tconst raw = def.compute.toString().trim();\n\tconst method = raw.match(/^compute\\s*\\(([^)]*)\\)\\s*\\{([\\s\\S]*)\\}$/);\n\tif (method !== null) return `(${method[1]}) => {${method[2]}}`;\n\treturn raw;\n}\n/**\n* 内置策略 → 可编辑记录预填(GUI 编辑器初值)。params 序列化保留 step,\n* 让覆盖保存后参数步进与出厂一致(校验器接受合法 step)。\n*/\nfunction builtinStrategyRecord(def) {\n\tconst params = def.params.map((p) => ({\n\t\tkey: p.key,\n\t\tlabel: p.label,\n\t\tdefault: p.default,\n\t\tmin: p.min,\n\t\tmax: p.max,\n\t\tstep: p.step\n\t}));\n\treturn {\n\t\tid: def.id,\n\t\ttitle: def.name,\n\t\thorizon: def.horizon,\n\t\tsummary: def.summary,\n\t\tparamsJson: JSON.stringify(params),\n\t\tcomputeSource: builtinStrategySource(def),\n\t\tcreatedAt: Date.now()\n\t};\n}\n/**\n* 选股器名册合成(覆盖 + 墓碑,与 applyStrategyManagement 同模型):\n* 内置 − 墓碑,覆盖记录原位替换同 id 内置,自定义按传入顺序追加。\n*/\nfunction applyScreenerManagement(builtins, defs, deletedIds) {\n\tconst deleted = new Set(deletedIds);\n\tconst overrides = /* @__PURE__ */ new Map();\n\tconst customs = [];\n\tfor (const def of defs) if (BUILTIN_SCREENER_IDS.has(def.id)) overrides.set(def.id, def);\n\telse customs.push(def);\n\tconst roster = [];\n\tfor (const builtin of builtins) {\n\t\tif (deleted.has(builtin.id)) continue;\n\t\troster.push(overrides.get(builtin.id) ?? builtin);\n\t}\n\treturn [...roster, ...customs];\n}\n/**\n* 内置选股器 evaluate 源码导出(GUI「编辑内置」预填用),归一化规则同\n* builtinStrategySource:方法速记 `evaluate(bars, params) { ... }` → 箭头形态。\n*/\nfunction builtinScreenerSource(def) {\n\tconst raw = def.evaluate.toString().trim();\n\tconst method = raw.match(/^evaluate\\s*\\(([^)]*)\\)\\s*\\{([\\s\\S]*)\\}$/);\n\tif (method !== null) return `(${method[1]}) => {${method[2]}}`;\n\treturn raw;\n}\n/** 内置选股器 → 可编辑记录预填(columns 序列化保真)。 */\nfunction builtinScreenerRecord(def) {\n\tconst params = def.params.map((p) => ({\n\t\tkey: p.key,\n\t\tlabel: p.label,\n\t\tdefault: p.default,\n\t\tmin: p.min,\n\t\tmax: p.max,\n\t\tstep: p.step\n\t}));\n\tconst columns = def.columns.map((c) => c.format === void 0 ? {\n\t\tkey: c.key,\n\t\tlabel: c.label\n\t} : {\n\t\tkey: c.key,\n\t\tlabel: c.label,\n\t\tformat: c.format\n\t});\n\treturn {\n\t\tid: def.id,\n\t\ttitle: def.name,\n\t\thorizon: \"swing\",\n\t\tsummary: def.summary,\n\t\tparamsJson: JSON.stringify(params),\n\t\tcolumnsJson: JSON.stringify(columns),\n\t\tevaluateSource: builtinScreenerSource(def),\n\t\tcreatedAt: Date.now()\n\t};\n}\n//#endregion\nexport { BUILTIN_SCREENER_IDS, BUILTIN_STRATEGY_IDS, applyScreenerManagement, applyStrategyManagement, builtinScreenerRecord, builtinScreenerSource, builtinStrategyRecord, builtinStrategySource, isBuiltinScreenerId, isBuiltinStrategyId };\n","/**\n * Shell 面(最小结构镜像):client-ui-strategies 不 import\n * client-ui-trading 的内部模块(插件间协作一律走 cordis 服务 inject),\n * 这里只镜像视图用到的纯类型/纯函数面——类型漂移的代价是编译期可见,\n * 行为面(fetch/SSE)全部经 tradingBridge 服务。\n *\n * readJson/writeJson 是 localStorage 纯工具(shell 同款实现,~20 行),\n * 镜像成本低于为此在服务面开洞。\n */\n\n/** shell selection store 的最小形状面(hook selector 的输入类型)。 */\nexport interface SelectionState {\n instrument: { market: string; symbol: string; name?: string } | null\n}\n\n/** localStorage read that survives unavailable storage (privacy mode) and corrupt JSON. */\nexport function readJson<T>(key: string, fallback: T): T {\n try {\n const raw = localStorage.getItem(key)\n if (raw === null) return fallback\n return JSON.parse(raw) as T\n } catch {\n return fallback\n }\n}\n\n/** localStorage write that survives unavailable storage. */\nexport function writeJson(key: string, value: unknown): void {\n try {\n localStorage.setItem(key, JSON.stringify(value))\n } catch {\n /* storage unavailable — session-only degradation */\n }\n}","/**\n * 视图包内联矢量图标(shell icons.tsx 同款 outline 风格;只带本视图用到的)。\n */\nimport type { ReactElement } from 'react'\n\n/** 策略回测图表/仪表盘图标。 */\nexport function IconStrategy({ size = 32 }: { size?: number }): ReactElement {\n return (\n <svg viewBox=\"0 0 24 24\" width={size} height={size} aria-hidden=\"true\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"1.5\" strokeLinecap=\"round\" strokeLinejoin=\"round\">\n <rect x=\"3\" y=\"3\" width=\"18\" height=\"18\" rx=\"3\" />\n <path d=\"M7 16l3.5-4.5 3 3L17 9\" />\n <circle cx=\"17\" cy=\"9\" r=\"1.2\" fill=\"currentColor\" />\n </svg>\n )\n}","/**\n * 策略页展示文案的词典查表 helper(PR #56 评审 L7 拆出):\n * 独立模块切断 ScreenerPane ↔ StrategyView 的模块环(两文件曾互引,\n * 渲染期调用下当前安全,但顶层消费在打包重排下会 TDZ——本仓已有前科\n * d82167a)。同时统一「t 单次调用 + miss 比对回退」形状,消除逐格\n * 2–4 次重复 t() 调用。\n *\n * 键约定 strat.<id>[.summary/.param.<key>/.reason.<kind>]/\n * scr.<id>[.summary/.param.<key>/.col.<key>/.reason]。\n * 词典优先,miss 回退定义自带值——自定义策略(用户 author,单语)自动走回退,\n * host 纯库(packages/strategies)零 locale 依赖。\n */\nimport type { StrategyLocaleKey } from './contract.ts'\n\n/** 查表 miss 判定:SDK t() 在键缺失时返回 key 本身(契约,见 locale-contract 测试)。 */\nfunction translateOr(\n key: StrategyLocaleKey,\n fallback: string,\n t: (key: StrategyLocaleKey, params?: Record<string, unknown>) => string,\n params?: Record<string, unknown>,\n): string {\n const translated = t(key, params)\n return translated !== key ? translated : fallback\n}\n\nexport function strategyName(def: { id: string; name: string }, t: (key: StrategyLocaleKey, params?: Record<string, unknown>) => string): string {\n return translateOr(`strat.${def.id}` as StrategyLocaleKey, def.name, t)\n}\n\nexport function strategySummary(def: { id: string; summary: string }, t: (key: StrategyLocaleKey, params?: Record<string, unknown>) => string): string {\n return translateOr(`strat.${def.id}.summary` as StrategyLocaleKey, def.summary, t)\n}\n\nexport function paramLabel(def: { id: string }, param: { key: string; label: string }, t: (key: StrategyLocaleKey, params?: Record<string, unknown>) => string): string {\n return translateOr(`strat.${def.id}.param.${param.key}` as StrategyLocaleKey, param.label, t)\n}\n\nexport function screenerName(def: { id: string; name: string }, t: (key: StrategyLocaleKey, params?: Record<string, unknown>) => string): string {\n return translateOr(def.id as StrategyLocaleKey, def.name, t)\n}\n\nexport function screenerSummary(def: { id: string; summary: string }, t: (key: StrategyLocaleKey, params?: Record<string, unknown>) => string): string {\n return translateOr(`${def.id}.summary` as StrategyLocaleKey, def.summary, t)\n}\n\nexport function screenerParamLabel(def: { id: string }, param: { key: string; label: string }, t: (key: StrategyLocaleKey, params?: Record<string, unknown>) => string): string {\n return translateOr(`${def.id}.param.${param.key}` as StrategyLocaleKey, param.label, t)\n}\n\nexport function screenerColumnLabel(def: { id: string }, col: { key: string; label: string }, t: (key: StrategyLocaleKey, params?: Record<string, unknown>) => string): string {\n return translateOr(`${def.id}.col.${col.key}` as StrategyLocaleKey, col.label, t)\n}\n\n/** 选股器命中原因:reasonKey 词典命中(带插值参数)优先,miss 回退 zh 原文。 */\nexport function screenerReason(\n row: { reason: string; reasonKey?: string; reasonParams?: Readonly<Record<string, string | number>> },\n t: (key: StrategyLocaleKey, params?: Record<string, unknown>) => string,\n): string {\n if (row.reasonKey === undefined) return row.reason\n return translateOr(row.reasonKey as StrategyLocaleKey, row.reason, t, { ...(row.reasonParams ?? {}) })\n}\n\n/** 交易流水的离场原因:词典键优先(内置范式,en 下走当语模板),回退 zh 原文\n * (自定义策略无 reasonKey)。momentum 的 {cause} 槽是稳定枚举键,先翻译成\n * 当语文案再进模板插值。 */\nexport function exitReasonText(\n tr: { exitReason: string; exitReasonKey?: string; exitReasonParams?: Readonly<Record<string, string | number>> },\n t: (key: StrategyLocaleKey, params?: Record<string, unknown>) => string,\n): string {\n if (tr.exitReasonKey === undefined) return tr.exitReason\n const params: Record<string, unknown> = { ...(tr.exitReasonParams ?? {}) }\n if (typeof params.cause === 'string' && ['momentumNegative', 'belowBaseline'].includes(params.cause)) {\n const causeKey = `strat.momentum-12m.cause.${params.cause}` as StrategyLocaleKey\n params.cause = t(causeKey) !== causeKey ? t(causeKey) : params.cause\n }\n return translateOr(tr.exitReasonKey as StrategyLocaleKey, tr.exitReason, t, params)\n}","/**\n * 选股器编辑器(选股器管理,2026-09-07):新建/编辑选股器的表单面板。\n *\n * 与 StrategyEditor 同构,差异:columns 行编辑(key/label/format)+ evaluate\n * 源码 textarea(单时点截面判断,无信号序列语义);无期限字段(记录恒 'swing')。\n * 「校验」走浏览器 Worker 版 validateCustomScreener,「保存」本地预校验后桥 PUT\n * (host vm 复校验)。编辑内置选股器时经 builtinScreenerRecord 预填自包含源码。\n */\nimport { useMemo, useState } from 'react'\nimport {\n BUILTIN_SCREENER_IDS,\n validateCustomScreener,\n type StrategyParamSpec,\n} from '@dshtrading/strategies'\nimport type { CustomScreenerRecord } from '@dshtrading/strategies'\nimport type { ScreenerColumnSpec } from '@dshtrading/strategies'\nimport type { StrategyLocaleKey } from './contract.ts'\nimport css from './StrategyEditor.module.css'\n\nexport interface ScreenerEditorSaveInput {\n id: string\n title: string\n summary: string\n paramsJson: string\n columnsJson: string\n evaluateSource: string\n overridesScreener: boolean\n}\n\nexport interface ScreenerEditorProps {\n t: (key: StrategyLocaleKey, params?: Record<string, unknown>) => string\n /** 编辑初值;null = 新建。 */\n initial: CustomScreenerRecord | null\n /** 保存回调(桥 PUT);返回 null = 桥不可达。 */\n onSave: (input: ScreenerEditorSaveInput) => Promise<{ ok: true } | { ok: false; reason: string } | null>\n onClose: () => void\n /** 保存成功后的额外动作(父组件刷新名册)。 */\n onSaved: () => void\n}\n\ninterface ParamRow {\n key: string\n label: string\n default: string\n min: string\n max: string\n step: string\n}\n\ninterface ColumnRow {\n key: string\n label: string\n format: '' | 'percent' | 'number'\n}\n\nfunction rowsFromParamsJson(paramsJson: string): ParamRow[] {\n try {\n const parsed = JSON.parse(paramsJson) as StrategyParamSpec[]\n if (!Array.isArray(parsed)) return []\n return parsed.map((p) => ({\n key: String(p.key ?? ''),\n label: String(p.label ?? ''),\n default: String(p.default ?? ''),\n min: String(p.min ?? ''),\n max: String(p.max ?? ''),\n step: String(p.step ?? 1),\n }))\n } catch {\n return []\n }\n}\n\nfunction rowsFromColumnsJson(columnsJson: string): ColumnRow[] {\n try {\n const parsed = JSON.parse(columnsJson) as ScreenerColumnSpec[]\n if (!Array.isArray(parsed)) return []\n return parsed.map((c) => ({\n key: String(c.key ?? ''),\n label: String(c.label ?? ''),\n format: c.format === 'percent' || c.format === 'number' ? c.format : '',\n }))\n } catch {\n return []\n }\n}\n\nexport function ScreenerEditor({ t, initial, onSave, onClose, onSaved }: ScreenerEditorProps) {\n const isEdit = initial !== null\n const [id, setId] = useState(initial?.id ?? '')\n const [title, setTitle] = useState(initial?.title ?? '')\n const [summary, setSummary] = useState(initial?.summary ?? '')\n const [rows, setRows] = useState<ParamRow[]>(() => rowsFromParamsJson(initial?.paramsJson ?? '[]'))\n const [cols, setCols] = useState<ColumnRow[]>(() => rowsFromColumnsJson(initial?.columnsJson ?? '[]'))\n const [source, setSource] = useState(initial?.evaluateSource ?? '')\n const [busy, setBusy] = useState<'' | 'validating' | 'saving'>('')\n const [notice, setNotice] = useState<{ kind: 'ok' | 'error'; text: string } | null>(null)\n\n const idIsBuiltin = useMemo(() => BUILTIN_SCREENER_IDS.has(id.trim().toLowerCase()), [id])\n\n const buildInput = (): ScreenerEditorSaveInput | { error: string } => {\n const trimmedId = id.trim().toLowerCase()\n if (!trimmedId) return { error: `${t('sv.mgmt.field.id')}: ${t('sv.mgmt.fieldRequired')}` }\n const params: StrategyParamSpec[] = []\n for (const row of rows) {\n const key = row.key.trim()\n if (!key) continue\n const def = Number(row.default)\n const min = Number(row.min)\n const max = Number(row.max)\n const step = Number(row.step)\n if (!Number.isFinite(def) || !Number.isFinite(min) || !Number.isFinite(max)) {\n return { error: `${t('sv.mgmt.field.params')} [${key}]: ${t('sv.mgmt.fieldRequired')}` }\n }\n params.push({\n key,\n label: row.label.trim() || key,\n default: def,\n min: min,\n max: max,\n step: Number.isFinite(step) && step > 0 ? step : 1,\n })\n }\n const columns: ScreenerColumnSpec[] = []\n for (const col of cols) {\n const key = col.key.trim()\n if (!key) continue\n columns.push(col.format === '' ? { key, label: col.label.trim() || key } : { key, label: col.label.trim() || key, format: col.format })\n }\n if (columns.length === 0) {\n return { error: `${t('sv.mgmt.field.columns')}: ${t('sv.mgmt.fieldRequired')}` }\n }\n return {\n id: trimmedId,\n title: title.trim(),\n summary: summary.trim(),\n paramsJson: JSON.stringify(params),\n columnsJson: JSON.stringify(columns),\n evaluateSource: source,\n overridesScreener: idIsBuiltin,\n }\n }\n\n const validateCurrent = async (): Promise<string | undefined> => {\n const input = buildInput()\n if ('error' in input) return input.error\n const result = await validateCustomScreener({\n id: input.id,\n title: input.title,\n horizon: 'swing',\n summary: input.summary,\n paramsJson: input.paramsJson,\n columnsJson: input.columnsJson,\n evaluateSource: input.evaluateSource,\n createdAt: initial?.createdAt ?? Date.now(),\n })\n return result.ok ? undefined : result.reason\n }\n\n const handleValidate = async () => {\n setBusy('validating')\n setNotice(null)\n try {\n const reason = await validateCurrent()\n setNotice(reason ? { kind: 'error', text: reason } : { kind: 'ok', text: t('sv.mgmt.validationOkScreener') })\n } finally {\n setBusy('')\n }\n }\n\n const handleSave = async () => {\n const input = buildInput()\n if ('error' in input) {\n setNotice({ kind: 'error', text: input.error })\n return\n }\n if (!isEdit && input.overridesScreener) {\n if (!window.confirm(t('sv.mgmt.confirmOverrideScreener'))) return\n }\n setBusy('saving')\n setNotice(null)\n try {\n const reason = await validateCurrent()\n if (reason !== undefined) {\n setNotice({ kind: 'error', text: reason })\n return\n }\n const result = await onSave(input)\n if (result === null) {\n setNotice({ kind: 'error', text: t('sv.mgmt.saveFailed') })\n return\n }\n if (!result.ok) {\n setNotice({ kind: 'error', text: `${t('sv.mgmt.saveFailed')}: ${result.reason}` })\n return\n }\n onSaved()\n onClose()\n } finally {\n setBusy('')\n }\n }\n\n const updateRow = (index: number, patch: Partial<ParamRow>) => {\n setRows((prev) => prev.map((row, i) => (i === index ? { ...row, ...patch } : row)))\n }\n const updateCol = (index: number, patch: Partial<ColumnRow>) => {\n setCols((prev) => prev.map((col, i) => (i === index ? { ...col, ...patch } : col)))\n }\n\n return (\n <div className={css.overlay} role=\"dialog\" aria-modal=\"true\">\n <div className={css.panel}>\n <div className={css.panelHeader}>\n <span className={css.panelTitle}>{t('sv.mgmt.editorTitleScreener')}{isEdit ? ` · ${initial!.id}` : ''}</span>\n <button type=\"button\" className={css.closeBtn} onClick={onClose}>✕</button>\n </div>\n\n <div className={css.formGrid}>\n <label className={css.field}>\n <span className={css.fieldLabel}>{t('sv.mgmt.field.id')}</span>\n <input\n className={css.fieldInput}\n value={id}\n disabled={isEdit}\n onChange={(e) => setId(e.target.value)}\n placeholder=\"scr.custom-momentum\"\n />\n </label>\n <label className={css.field}>\n <span className={css.fieldLabel}>{t('sv.mgmt.field.title')}</span>\n <input className={css.fieldInput} value={title} onChange={(e) => setTitle(e.target.value)} />\n </label>\n <span />\n </div>\n\n <label className={css.field}>\n <span className={css.fieldLabel}>{t('sv.mgmt.field.summary')}</span>\n <input className={css.fieldInput} value={summary} onChange={(e) => setSummary(e.target.value)} />\n </label>\n\n <div className={css.field}>\n <span className={css.fieldLabel}>{t('sv.mgmt.field.params')}</span>\n <div className={css.paramTable}>\n <div className={css.paramHeadRow}>\n <span>{t('sv.mgmt.param.key')}</span>\n <span>{t('sv.mgmt.param.label')}</span>\n <span>{t('sv.mgmt.param.default')}</span>\n <span>{t('sv.mgmt.param.min')}</span>\n <span>{t('sv.mgmt.param.max')}</span>\n <span>{t('sv.mgmt.param.step')}</span>\n <span />\n </div>\n {rows.map((row, index) => (\n <div key={index} className={css.paramRow}>\n <input className={css.paramCell} value={row.key} onChange={(e) => updateRow(index, { key: e.target.value })} />\n <input className={css.paramCell} value={row.label} onChange={(e) => updateRow(index, { label: e.target.value })} />\n <input className={css.paramCell} type=\"number\" value={row.default} onChange={(e) => updateRow(index, { default: e.target.value })} />\n <input className={css.paramCell} type=\"number\" value={row.min} onChange={(e) => updateRow(index, { min: e.target.value })} />\n <input className={css.paramCell} type=\"number\" value={row.max} onChange={(e) => updateRow(index, { max: e.target.value })} />\n <input className={css.paramCell} type=\"number\" value={row.step} onChange={(e) => updateRow(index, { step: e.target.value })} />\n <button\n type=\"button\"\n className={css.paramRemove}\n title={t('sv.mgmt.removeParam')}\n onClick={() => setRows((prev) => prev.filter((_, i) => i !== index))}\n >✕</button>\n </div>\n ))}\n <button\n type=\"button\"\n className={css.addParamBtn}\n onClick={() => setRows((prev) => [...prev, { key: '', label: '', default: '0', min: '0', max: '100', step: '1' }])}\n >+ {t('sv.mgmt.addParam')}</button>\n </div>\n </div>\n\n <div className={css.field}>\n <span className={css.fieldLabel}>{t('sv.mgmt.field.columns')}</span>\n <div className={css.paramTable}>\n <div className={css.columnHeadRow}>\n <span>{t('sv.mgmt.param.key')}</span>\n <span>{t('sv.mgmt.param.label')}</span>\n <span>{t('sv.mgmt.column.format')}</span>\n <span />\n </div>\n {cols.map((col, index) => (\n <div key={index} className={css.columnRow}>\n <input className={css.paramCell} value={col.key} onChange={(e) => updateCol(index, { key: e.target.value })} />\n <input className={css.paramCell} value={col.label} onChange={(e) => updateCol(index, { label: e.target.value })} />\n <select\n className={css.paramCell}\n value={col.format}\n onChange={(e) => updateCol(index, { format: e.target.value as ColumnRow['format'] })}\n >\n <option value=\"\">number</option>\n <option value=\"percent\">percent</option>\n </select>\n <button\n type=\"button\"\n className={css.paramRemove}\n title={t('sv.mgmt.removeParam')}\n onClick={() => setCols((prev) => prev.filter((_, i) => i !== index))}\n >✕</button>\n </div>\n ))}\n <button\n type=\"button\"\n className={css.addParamBtn}\n onClick={() => setCols((prev) => [...prev, { key: '', label: '', format: '' }])}\n >+ {t('sv.mgmt.addColumn')}</button>\n </div>\n </div>\n\n <label className={css.field}>\n <span className={css.fieldLabel}>{t('sv.mgmt.field.evaluate')}</span>\n <textarea\n className={css.sourceArea}\n value={source}\n spellCheck={false}\n onChange={(e) => setSource(e.target.value)}\n rows={12}\n />\n </label>\n\n {notice !== null && (\n <div className={notice.kind === 'ok' ? css.noticeOk : css.noticeError}>{notice.text}</div>\n )}\n\n <div className={css.actionBar}>\n <button type=\"button\" className={css.secondaryBtn} disabled={busy !== ''} onClick={() => { void handleValidate() }}>\n {busy === 'validating' ? t('sv.mgmt.validating') : t('sv.mgmt.validate')}\n </button>\n <div className={css.actionSpacer} />\n <button type=\"button\" className={css.secondaryBtn} onClick={onClose}>{t('sv.mgmt.cancel')}</button>\n <button type=\"button\" className={css.primaryBtn} disabled={busy !== ''} onClick={() => { void handleSave() }}>\n {busy === 'saving' ? t('sv.mgmt.validating') : t('sv.mgmt.save')}\n </button>\n </div>\n </div>\n </div>\n )\n}\n","/**\n * 选股策略面板(一级「选股策略」分区的内容视图):\n * 1. 选股器卡列表(内置 − 墓碑、覆盖原位替换、自定义追加;来源徽标 + 管理操作)\n * 2. 参数 + 扫描池上限 + 运行/停止条\n * 3. 扫描进度条 + 命中结果表(代码/名称/现价/动态指标列/信号说明)\n *\n * 扫描调度在本层:名册 fetchSymbols(桥 30min 缓存)→ 截断到扫描池上限 →\n * 受限并发逐标的拉 500 根日 K → 纯函数 evaluate。数据不足的标的由契约\n * 返回 null 静默跳过;单标的失败(含空 K 线响应)只计数不中断扫描。\n *\n * 选股器管理(2026-09-07):名册经 applyScreenerManagement 合成;桥拉取记录\n * 与墓碑,SSE 'strategies' 信号重拉;编辑器(ScreenerEditor)新建/编辑/覆盖。\n */\nimport { useEffect, useMemo, useRef, useState } from 'react'\nimport {\n screenerParadigms,\n validateCustomScreener,\n applyScreenerManagement,\n isBuiltinScreenerId,\n builtinScreenerRecord,\n workerComputeRunner,\n fmtPrice,\n type Kline,\n type ScreenerDefinition,\n type CustomScreenerRecord,\n} from '@dshtrading/strategies'\nimport { readJson, writeJson } from './shell-faces.ts'\nimport { screenerName, screenerSummary, screenerParamLabel, screenerColumnLabel, screenerReason } from './strategy-locale.ts'\nimport { ScreenerEditor, type ScreenerEditorSaveInput } from './ScreenerEditor.tsx'\nimport type { StrategyLocaleKey } from './contract.ts'\nimport css from './StrategyView.module.css'\n\ninterface ScreenerStateStored {\n screenerId: string\n paramsMap: Record<string, Record<string, number>>\n scanLimit: number\n}\n\nconst SCREENER_STORE_KEY = 'dshtrading.screener.v1'\n\n/** 自定义选股器扫描时的单符号 Worker 超时(真实 500 根 K 线,较校验样例放宽)。 */\nconst SCAN_EVAL_TIMEOUT_MS = 1000\n\nconst DEFAULT_STORED: ScreenerStateStored = {\n screenerId: 'scr.ma-bull-align',\n paramsMap: {},\n scanLimit: 300,\n}\n\n/** 扫描并发上限:保护公共数据源(每标的 1 次日 K 请求),不追求扫描速度。 */\nconst SCAN_CONCURRENCY = 5\n\nconst SCAN_LIMIT_MIN = 50\nconst SCAN_LIMIT_MAX = 800\n\n/**\n * 单次扫描的日 K 窗口。必须覆盖全部内置选股器在参数上限下的数据需求,\n * 否则 evaluate 对所有标的返回 null(数据不足),扫描会以「零命中」的\n * 假阴性收场:near-high 最长(window 上限 500),above-ma 次之\n * (period 300 + slopeBars 60 - 1 = 359)。\n */\nconst SCAN_KLINE_LIMIT = 500\n\ninterface ScanRow {\n readonly symbol: string\n readonly name?: string\n readonly price: number\n readonly metrics: Readonly<Record<string, number>>\n readonly reason: string\n readonly reasonKey?: string\n readonly reasonParams?: Readonly<Record<string, string | number>>\n}\n\nfunction formatMetric(val: number, format?: 'percent' | 'number'): string {\n if (!Number.isFinite(val)) return '--'\n return format === 'percent' ? `${val.toFixed(2)}%` : val.toFixed(2)\n}\n\nexport interface ScreenerPaneProps {\n t: (key: StrategyLocaleKey, params?: Record<string, unknown>) => string\n market: string\n bridge: {\n fetchKlines: (market: string, symbol: string, interval: string, limit: number) => Promise<Kline[]>\n fetchSymbols: (market: string) => Promise<Array<{ symbol: string; name?: string }>>\n subscribeTradingEvents?: ((handlers: { strategies?: () => void }) => () => void) | undefined\n fetchCustomScreeners?: (() => Promise<Array<Record<string, unknown>>>) | undefined\n saveCustomScreener?: ((input: ScreenerEditorSaveInput) => Promise<{ ok: true } | { ok: false; reason: string } | null>) | undefined\n deleteCustomScreener?: ((id: string) => Promise<boolean>) | undefined\n resetScreener?: ((id: string) => Promise<{ ok: boolean; changed: boolean } | null>) | undefined\n fetchStrategyTombstones?: (() => Promise<string[]>) | undefined\n }\n}\n\nexport function ScreenerPane({ t, market, bridge }: ScreenerPaneProps) {\n const [stored] = useState<ScreenerStateStored>(() => readJson<ScreenerStateStored>(SCREENER_STORE_KEY, DEFAULT_STORED))\n const [selectedId, setSelectedId] = useState<string>(stored.screenerId ?? DEFAULT_STORED.screenerId)\n const [paramsMap, setParamsMap] = useState<Record<string, Record<string, number>>>(stored.paramsMap ?? {})\n const [scanLimit, setScanLimit] = useState<number>(() => {\n const raw = stored.scanLimit\n if (typeof raw !== 'number' || !Number.isFinite(raw)) return DEFAULT_STORED.scanLimit\n return Math.min(SCAN_LIMIT_MAX, Math.max(SCAN_LIMIT_MIN, raw))\n })\n\n // 选股器管理名册:桥拉取记录 + 墓碑 → 校验 → applyScreenerManagement 合成;\n // SSE 'strategies' 信号重拉(screener_* 工具/桥写入即时上榜)。\n const [customDefs, setCustomDefs] = useState<ScreenerDefinition[]>([])\n const [records, setRecords] = useState<CustomScreenerRecord[]>([])\n const [tombstones, setTombstones] = useState<string[]>([])\n const [reloadKey, setReloadKey] = useState(0)\n const bridgeRef = useRef(bridge)\n if (bridgeRef.current === null) bridgeRef.current = bridge\n const stableBridge = bridgeRef.current\n const hasManagement = stableBridge.fetchCustomScreeners !== undefined\n && stableBridge.saveCustomScreener !== undefined\n && stableBridge.deleteCustomScreener !== undefined\n && stableBridge.resetScreener !== undefined\n\n useEffect(() => {\n if (!hasManagement || stableBridge === undefined) return\n let cancelled = false\n // generation 令牌:SSE 突发时同一 effect 内会并发起多个 load(),后完成的\n // 旧响应不得覆盖新状态——只允许最新一代落 setState(与 StrategyView 同款)。\n let generation = 0\n const load = async () => {\n const gen = ++generation\n try {\n const rawRecords = await stableBridge.fetchCustomScreeners!()\n const defs: ScreenerDefinition[] = []\n const validRecords: CustomScreenerRecord[] = []\n for (const record of rawRecords) {\n const result = await validateCustomScreener(record as never)\n if (result.ok) {\n defs.push(result.definition)\n validRecords.push(result.record)\n }\n }\n const deleted = stableBridge.fetchStrategyTombstones !== undefined\n ? await stableBridge.fetchStrategyTombstones()\n : []\n if (cancelled || gen !== generation) return\n setCustomDefs(defs)\n setRecords(validRecords)\n setTombstones(deleted)\n } catch (e) {\n console.warn('[dsh-trading] failed to load custom screeners:', e)\n }\n }\n void load()\n const unsubscribe = stableBridge.subscribeTradingEvents?.({ strategies: () => { void load() } })\n return () => { cancelled = true; unsubscribe?.() }\n }, [stableBridge, hasManagement, reloadKey])\n\n // 名册 = 内置 − 墓碑,覆盖原位替换,自定义追加(无管理面 = 内置原样,旧行为)。\n const roster = useMemo<ScreenerDefinition[]>(() => (\n hasManagement ? applyScreenerManagement(screenerParadigms, customDefs, tombstones) : [...screenerParadigms]\n ), [customDefs, tombstones, hasManagement])\n\n const modifiedIds = useMemo(\n () => new Set(records.map((r) => r.id).filter((id) => isBuiltinScreenerId(id))),\n [records],\n )\n\n const tombstonedScreeners = useMemo<ScreenerDefinition[]>(() => {\n if (!hasManagement) return []\n return screenerParadigms.filter((d) => tombstones.includes(d.id))\n }, [tombstones, hasManagement])\n\n const currentScreener = useMemo<ScreenerDefinition | null>(() => {\n // 全部内置已删且无自定义时名册可为空(选股器管理边界):返回 null 走空态。\n return roster.find((s) => s.id === selectedId) ?? roster[0] ?? null\n }, [roster, selectedId])\n\n const currentParams = useMemo<Record<string, number>>(() => {\n if (currentScreener === null) return {}\n const custom = paramsMap[currentScreener.id] ?? {}\n const res: Record<string, number> = {}\n for (const p of currentScreener.params) {\n res[p.key] = custom[p.key] ?? p.default\n }\n return res\n }, [currentScreener, paramsMap])\n\n // 同步持久化\n const persist = (next: ScreenerStateStored) => {\n writeJson(SCREENER_STORE_KEY, next)\n }\n\n const handleParamChange = (key: string, value: number) => {\n if (currentScreener === null) return\n const nextMap = {\n ...paramsMap,\n [currentScreener.id]: { ...(paramsMap[currentScreener.id] ?? {}), [key]: value },\n }\n setParamsMap(nextMap)\n persist({ screenerId: selectedId, paramsMap: nextMap, scanLimit })\n }\n\n const handleScanLimitChange = (value: number) => {\n if (!Number.isFinite(value)) return\n const clamped = Math.min(SCAN_LIMIT_MAX, Math.max(SCAN_LIMIT_MIN, Math.round(value)))\n setScanLimit(clamped)\n persist({ screenerId: selectedId, paramsMap, scanLimit: clamped })\n }\n\n /* ---------------- 选股器管理动作(2026-09-07) ---------------- */\n\n const forgetLocalParams = (id: string) => {\n setParamsMap((prev) => {\n if (prev[id] === undefined) return prev\n const next = { ...prev }\n delete next[id]\n return next\n })\n }\n\n const handleDeleteScreener = async (screener: ScreenerDefinition) => {\n if (stableBridge.deleteCustomScreener === undefined) return\n if (!window.confirm(t('sv.mgmt.confirmDelete'))) return\n await stableBridge.deleteCustomScreener(screener.id)\n forgetLocalParams(screener.id)\n if (selectedId === screener.id) setSelectedId('')\n }\n\n const handleRestoreScreener = async (id: string) => {\n if (stableBridge.resetScreener === undefined) return\n // 已修改内置 = 覆盖记录将被清除且不可恢复(出厂代码不受影响),需显式确认。\n if (modifiedIds.has(id) && !window.confirm(t('sv.mgmt.confirmRestore'))) return\n const result = await stableBridge.resetScreener(id)\n if (result !== null && result.ok) forgetLocalParams(id)\n }\n\n const handleEditScreener = (screener: ScreenerDefinition) => {\n // 内置/已修改内置:从代码定义导出自包含源码预填;自定义:用 store 原记录。\n const record = modifiedIds.has(screener.id) || !isBuiltinScreenerId(screener.id)\n ? records.find((r) => r.id === screener.id) ?? null\n : builtinScreenerRecord(screener)\n if (record !== null) setEditor({ initial: record })\n }\n\n const handleSaveFromEditor = async (input: ScreenerEditorSaveInput) => {\n if (stableBridge.saveCustomScreener === undefined) return null\n return stableBridge.saveCustomScreener(input)\n }\n\n // 编辑器状态:null = 关闭;record = null 新建,否则编辑预填。\n const [editor, setEditor] = useState<{ initial: CustomScreenerRecord | null } | null>(null)\n\n // 扫描状态;runId 作为取消/过期令牌(自增即作废上一轮,worker 循环自查)。\n // scanScreener:扫描开始时冻结的选股器定义——SSE 名册重载可中途换 currentScreener,\n // 结果表(表头列 + 行数据)必须按同一份定义渲染,否则列错位(2026-09-07 审查)。\n const runIdRef = useRef(0)\n const [scanning, setScanning] = useState(false)\n const [scanScreener, setScanScreener] = useState<ScreenerDefinition | null>(null)\n const [progress, setProgress] = useState({ done: 0, total: 0, hits: 0, failed: 0 })\n const [universeSize, setUniverseSize] = useState<number | null>(null)\n const [rows, setRows] = useState<ScanRow[]>([])\n const [errorMsg, setErrorMsg] = useState<string | null>(null)\n\n const handleStop = () => {\n runIdRef.current += 1\n setScanning(false)\n }\n\n const handleRun = async () => {\n if (currentScreener === null) return\n const runId = runIdRef.current + 1\n runIdRef.current = runId\n setScanning(true)\n setScanScreener(currentScreener)\n setRows([])\n setErrorMsg(null)\n setProgress({ done: 0, total: 0, hits: 0, failed: 0 })\n setUniverseSize(null)\n try {\n // 能力预检:宿主 tradingBridge 提供方若为旧版(无 fetchSymbols),\n // 落到「名册不可用」的诚实降级文案,而非泛化的 TypeError 报错。\n if (typeof bridge.fetchSymbols !== 'function') {\n setErrorMsg(t('sv.screener.noUniverse'))\n setScanning(false)\n return\n }\n const universe = await bridge.fetchSymbols(market)\n if (runIdRef.current !== runId) return\n if (!universe || universe.length === 0) {\n setErrorMsg(t('sv.screener.noUniverse'))\n setScanning(false)\n return\n }\n const capped = universe.slice(0, scanLimit)\n setUniverseSize(universe.length)\n setProgress({ done: 0, total: capped.length, hits: 0, failed: 0 })\n\n const hits: ScanRow[] = []\n let done = 0\n let failed = 0\n let cursor = 0\n\n // 自定义选股器 = 用户源码 → 扫描时走 Worker 超时熔断(1000ms/符号,\n // 远高于校验样例的 100ms:真实 500 根 K 线计算量更大)。源码从名册\n // 合成时的 store 记录取(builtinScreenerRecord 仅用于编辑预填,不在扫描面)。\n // 内置选股器 = 代码常量(可信任,且无源码形态)→ 维持同步直调用(旧行为)。\n const evaluateSourceById = new Map(records.map((r) => [r.id, r.evaluateSource] as const))\n const evalOne = async (bars: Kline[]): Promise<ReturnType<ScreenerDefinition['evaluate']>> => {\n const source = evaluateSourceById.get(currentScreener.id)\n if (source === undefined) return currentScreener.evaluate(bars, currentParams)\n return (await workerComputeRunner(source, bars, currentParams, SCAN_EVAL_TIMEOUT_MS)) as never\n }\n\n const worker = async () => {\n while (cursor < capped.length && runIdRef.current === runId) {\n const inst = capped[cursor]!\n cursor += 1\n try {\n const bars = await bridge.fetchKlines(market, inst.symbol, '1d', SCAN_KLINE_LIMIT)\n if (runIdRef.current !== runId) return\n if (bars && bars.length > 0) {\n const match = await evalOne(bars)\n if (match) {\n hits.push({\n symbol: inst.symbol,\n ...(inst.name ? { name: inst.name } : {}),\n price: bars[bars.length - 1]!.close,\n metrics: match.metrics,\n reason: match.reason,\n ...(match.reasonKey !== undefined ? { reasonKey: match.reasonKey } : {}),\n ...(match.reasonParams !== undefined ? { reasonParams: match.reasonParams } : {}),\n })\n }\n } else {\n // 空响应(如上游静默返回 [])也按失败计:否则整体断供会被\n // 误报成「扫描成功、零命中」。\n failed += 1\n }\n } catch {\n failed += 1\n }\n done += 1\n if (runIdRef.current !== runId) return\n setProgress({ done, total: capped.length, hits: hits.length, failed })\n setRows([...hits])\n }\n }\n\n await Promise.all(Array.from({ length: Math.min(SCAN_CONCURRENCY, capped.length) }, () => worker()))\n if (runIdRef.current !== runId) return\n // 有失败就明示(含空响应计数),不再被「已有命中」掩盖——命中与失败\n // 并存时用户仍需知道覆盖面有缺口。\n if (failed > 0) {\n setErrorMsg(`${t('sv.error.failed')} (${failed}/${capped.length})`)\n }\n } catch (e) {\n if (runIdRef.current !== runId) return\n setErrorMsg(`${t('sv.error.failed')}: ${String((e as Error)?.message ?? e)}`)\n } finally {\n if (runIdRef.current === runId) setScanning(false)\n }\n }\n\n if (currentScreener === null && tombstonedScreeners.length === 0 && !hasManagement) {\n // 无管理面的老壳 + 空名册:理论不可达(内置名册静态非空),保守空态。\n return (\n <div className={css.emptyState}>\n <div>{t('sv.screener.rosterEmpty')}</div>\n </div>\n )\n }\n\n return (\n <>\n {/* 工具行:新建选股器(管理面可用时) */}\n {hasManagement && (\n <div className={css.mgmtRow}>\n <span />\n <button type=\"button\" className={css.newStrategyBtn} onClick={() => setEditor({ initial: null })}>\n + {t('sv.mgmt.newScreener')}\n </button>\n </div>\n )}\n\n {/* 选股器卡片(来源徽标 + 管理操作;扫描中锁定:行数据按运行时捕获的\n 选股器评估,中途切换会造成表头/指标列/信号说明与行内容错位) */}\n <div className={css.strategyCards}>\n {roster.map((screener) => {\n const modified = modifiedIds.has(screener.id)\n const builtin = isBuiltinScreenerId(screener.id)\n return (\n <div\n key={screener.id}\n className={css.strategyCard}\n data-active={screener.id === selectedId ? 'true' : undefined}\n data-disabled={scanning ? 'true' : undefined}\n onClick={() => { if (!scanning) setSelectedId(screener.id) }}\n >\n <div className={css.cardTitleRow}>\n <span className={css.cardTitle}>{screenerName(screener, t)}</span>\n <span\n className={css.cardBadge}\n data-kind={modified ? 'modified' : builtin ? 'builtin' : 'custom'}\n >\n {t(modified ? 'sv.mgmt.badge.modified' : builtin ? 'sv.mgmt.badge.builtin' : 'sv.mgmt.badge.custom')}\n </span>\n </div>\n <div className={css.cardSummary}>{screenerSummary(screener, t)}</div>\n {hasManagement && !scanning && (\n <div className={css.cardActions} onClick={(e) => e.stopPropagation()}>\n <button type=\"button\" className={css.cardActionBtn} onClick={() => handleEditScreener(screener)}>\n {t('sv.mgmt.edit')}\n </button>\n {builtin && modified && (\n <button type=\"button\" className={css.cardActionBtn} onClick={() => { void handleRestoreScreener(screener.id) }}>\n {t('sv.mgmt.restore')}\n </button>\n )}\n <button\n type=\"button\"\n className={css.cardActionBtn}\n data-danger=\"true\"\n onClick={() => { void handleDeleteScreener(screener) }}\n >\n {t('sv.mgmt.delete')}\n </button>\n </div>\n )}\n </div>\n )\n })}\n {tombstonedScreeners.map((screener) => (\n <div key={screener.id} className={css.strategyCard} data-deleted=\"true\">\n <div className={css.cardTitleRow}>\n <span className={css.cardTitle}>{screenerName(screener, t)}</span>\n <span className={css.cardBadge} data-kind=\"deleted\">{t('sv.mgmt.deleted')}</span>\n </div>\n <div className={css.cardSummary}>{screenerSummary(screener, t)}</div>\n <div className={css.cardActions} onClick={(e) => e.stopPropagation()}>\n <button type=\"button\" className={css.cardActionBtn} onClick={() => { void handleRestoreScreener(screener.id) }}>\n {t('sv.mgmt.restore')}\n </button>\n </div>\n </div>\n ))}\n </div>\n\n {currentScreener === null ? (\n /* 名册为空(全部内置已删且无自定义,选股器管理边界)→ 空态 */\n <div className={css.emptyState}>\n <div>{t('sv.screener.rosterEmpty')}</div>\n </div>\n ) : (\n <>\n {/* 参数 + 扫描池上限 + 运行条 */}\n <div className={css.configBar}>\n {currentScreener.params.map((p) => (\n <div key={p.key} className={css.paramGroup}>\n <label className={css.paramLabel}>{screenerParamLabel(currentScreener, p, t)}:</label>\n <input\n type=\"number\"\n className={css.paramInput}\n min={p.min}\n max={p.max}\n step={p.step}\n disabled={scanning}\n value={currentParams[p.key] ?? p.default}\n onChange={(e) => {\n const numVal = parseFloat(e.target.value)\n if (!Number.isNaN(numVal)) handleParamChange(p.key, numVal)\n }}\n />\n </div>\n ))}\n\n <div className={css.paramGroup}>\n <label className={css.paramLabel}>{t('sv.screener.scanLimit')}:</label>\n <input\n type=\"number\"\n className={css.paramInput}\n min={SCAN_LIMIT_MIN}\n max={SCAN_LIMIT_MAX}\n step={50}\n disabled={scanning}\n value={scanLimit}\n onChange={(e) => {\n const numVal = parseFloat(e.target.value)\n if (!Number.isNaN(numVal)) handleScanLimitChange(numVal)\n }}\n />\n </div>\n\n {scanning ? (\n <button type=\"button\" className={css.runBtn} onClick={handleStop}>\n {t('sv.screener.stop')}\n </button>\n ) : (\n <button type=\"button\" className={css.runBtn} onClick={() => { void handleRun() }}>\n {t('sv.screener.run')}\n </button>\n )}\n </div>\n\n {/* 进度与名册信息 */}\n {(scanning || universeSize !== null) && (\n <div className={css.scanMeta}>\n <span>\n {t('sv.screener.universePrefix')} {universeSize ?? '--'} · {t('sv.screener.scanned')}{' '}\n {progress.done}/{progress.total} · {t('sv.screener.hits')} {progress.hits} ·{' '}\n {t('sv.screener.failed')} {progress.failed}\n </span>\n <div className={css.progressWrap}>\n <div\n className={css.progressFill}\n style={{ width: progress.total > 0 ? `${(progress.done / progress.total) * 100}%` : '0%' }}\n />\n </div>\n </div>\n )}\n\n {errorMsg && <div className={css.errorMessage}>{errorMsg}</div>}\n\n {/* 命中结果表(表头按 scanScreener 冻结定义渲染,避免扫描中 SSE 名册\n 重载换列后列与行数据错位;非扫描态回落 currentScreener) */}\n <div className={css.tableSection}>\n <div className={css.tableTitle}>\n {t('sv.screener.hits')} ({rows.length})\n </div>\n <div className={css.tradesTableWrapper}>\n <table className={css.tradesTable}>\n <thead>\n <tr>\n <th>{t('sv.screener.col.symbol')}</th>\n <th>{t('sv.screener.col.name')}</th>\n <th>{t('sv.screener.col.price')}</th>\n {(scanning ? scanScreener : currentScreener)?.columns.map((col) => (\n <th key={col.key}>{screenerColumnLabel(scanning ? scanScreener! : currentScreener, col, t)}</th>\n ))}\n <th>{t('sv.screener.col.reason')}</th>\n </tr>\n </thead>\n <tbody>\n {rows.length === 0 ? (\n <tr>\n <td colSpan={4 + (scanning ? scanScreener : currentScreener)!.columns.length} className={css.tableEmptyCell}>\n {scanning\n ? t('sv.screener.scanning')\n : progress.total > 0 && progress.failed === 0\n ? t('sv.screener.noHits')\n : t('sv.screener.emptyHint')}\n </td>\n </tr>\n ) : (\n rows.map((row) => (\n <tr key={row.symbol}>\n <td>{row.symbol}</td>\n <td className={css.nameCell}>{row.name ?? '--'}</td>\n <td>{fmtPrice(row.price)}</td>\n {(scanning ? scanScreener : currentScreener)!.columns.map((col) => (\n <td key={col.key}>{formatMetric(row.metrics[col.key] ?? NaN, col.format)}</td>\n ))}\n <td className={css.reasonCell}>{screenerReason(row, t)}</td>\n </tr>\n ))\n )}\n </tbody>\n </table>\n </div>\n </div>\n </>\n )}\n\n {/* 选股器编辑器(新建/编辑/覆盖内置;模态覆盖层) */}\n {editor !== null && (\n <ScreenerEditor\n t={t}\n initial={editor.initial}\n onSave={handleSaveFromEditor}\n onSaved={() => setReloadKey((k) => k + 1)}\n onClose={() => setEditor(null)}\n />\n )}\n </>\n )\n}\n","/**\n * 策略编辑器(策略管理,2026-09-07):新建/编辑策略的表单面板。\n *\n * - 元数据(id/title/horizon/summary)+ 参数规格行编辑 + compute 源码 textarea。\n * - 「校验」走浏览器 Worker 版 validateCustomStrategy(多场景试算 + 信号序列),\n * 即时反馈不落盘;「保存」先本地预校验再交桥 PUT(host 侧 vm 沙箱复校验,\n * 通过才落盘)——两侧校验器同源(validate.ts),结果一致。\n * - 新建时 id 撞内置范式 → confirm 确认后带 overridesBuiltin 提交(桥的\n * TRADING_STRATEGY_OVERRIDE_CONFIRM 闸门要求显式确认位);编辑内置同理。\n */\nimport { useMemo, useState } from 'react'\nimport {\n BUILTIN_STRATEGY_IDS,\n validateCustomStrategy,\n type StrategyHorizon,\n type StrategyParamSpec,\n} from '@dshtrading/strategies'\nimport type { CustomStrategyRecord } from '@dshtrading/strategies'\nimport type { StrategyLocaleKey } from './contract.ts'\nimport css from './StrategyEditor.module.css'\n\nexport interface StrategyEditorSaveInput {\n id: string\n title: string\n horizon: StrategyHorizon\n summary: string\n paramsJson: string\n computeSource: string\n overridesBuiltin: boolean\n}\n\nexport interface StrategyEditorProps {\n t: (key: StrategyLocaleKey, params?: Record<string, unknown>) => string\n /** 编辑初值;null = 新建。 */\n initial: CustomStrategyRecord | null\n /** 保存回调(桥 PUT);返回 null = 桥不可达。 */\n onSave: (input: StrategyEditorSaveInput) => Promise<{ ok: true } | { ok: false; reason: string } | null>\n onClose: () => void\n /** 保存成功后的额外动作(父组件刷新名册)。 */\n onSaved: () => void\n}\n\nconst HORIZONS: readonly StrategyHorizon[] = ['short', 'swing', 'long']\n\ninterface ParamRow {\n key: string\n label: string\n default: string\n min: string\n max: string\n step: string\n}\n\nfunction rowsFromParamsJson(paramsJson: string): ParamRow[] {\n try {\n const parsed = JSON.parse(paramsJson) as StrategyParamSpec[]\n if (!Array.isArray(parsed)) return []\n return parsed.map((p) => ({\n key: String(p.key ?? ''),\n label: String(p.label ?? ''),\n default: String(p.default ?? ''),\n min: String(p.min ?? ''),\n max: String(p.max ?? ''),\n step: String(p.step ?? 1),\n }))\n } catch {\n return []\n }\n}\n\nexport function StrategyEditor({ t, initial, onSave, onClose, onSaved }: StrategyEditorProps) {\n const isEdit = initial !== null\n const [id, setId] = useState(initial?.id ?? '')\n const [title, setTitle] = useState(initial?.title ?? '')\n const [horizon, setHorizon] = useState<StrategyHorizon>(initial?.horizon ?? 'short')\n const [summary, setSummary] = useState(initial?.summary ?? '')\n const [rows, setRows] = useState<ParamRow[]>(() => rowsFromParamsJson(initial?.paramsJson ?? '[]'))\n const [source, setSource] = useState(initial?.computeSource ?? '')\n const [busy, setBusy] = useState<'' | 'validating' | 'saving'>('')\n const [notice, setNotice] = useState<{ kind: 'ok' | 'error'; text: string } | null>(null)\n\n const idIsBuiltin = useMemo(() => BUILTIN_STRATEGY_IDS.has(id.trim().toLowerCase()), [id])\n\n const buildInput = (): StrategyEditorSaveInput | { error: string } => {\n const trimmedId = id.trim().toLowerCase()\n if (!trimmedId) return { error: `${t('sv.mgmt.field.id')}: ${t('sv.mgmt.fieldRequired')}` }\n const params: StrategyParamSpec[] = []\n for (const row of rows) {\n const key = row.key.trim()\n if (!key) continue\n const def = Number(row.default)\n const min = Number(row.min)\n const max = Number(row.max)\n const step = Number(row.step)\n if (!Number.isFinite(def) || !Number.isFinite(min) || !Number.isFinite(max)) {\n return { error: `${t('sv.mgmt.field.params')} [${key}]: ${t('sv.mgmt.fieldRequired')}` }\n }\n params.push({\n key,\n label: row.label.trim() || key,\n default: def,\n min: min,\n max: max,\n step: Number.isFinite(step) && step > 0 ? step : 1,\n })\n }\n return {\n id: trimmedId,\n title: title.trim(),\n horizon,\n summary: summary.trim(),\n paramsJson: JSON.stringify(params),\n computeSource: source,\n // 编辑内置 = 覆盖语义;新建撞内置 = 显式确认后覆盖。\n overridesBuiltin: idIsBuiltin,\n }\n }\n\n const handleValidate = async () => {\n const input = buildInput()\n if ('error' in input) {\n setNotice({ kind: 'error', text: input.error })\n return\n }\n setBusy('validating')\n setNotice(null)\n try {\n const result = await validateCustomStrategy({\n id: input.id,\n title: input.title,\n horizon: input.horizon,\n summary: input.summary,\n paramsJson: input.paramsJson,\n computeSource: input.computeSource,\n createdAt: initial?.createdAt ?? Date.now(),\n })\n setNotice(\n result.ok\n ? { kind: 'ok', text: t('sv.mgmt.validationOk') }\n : { kind: 'error', text: result.reason },\n )\n } finally {\n setBusy('')\n }\n }\n\n const handleSave = async () => {\n const input = buildInput()\n if ('error' in input) {\n setNotice({ kind: 'error', text: input.error })\n return\n }\n if (!isEdit && input.overridesBuiltin) {\n if (!window.confirm(t('sv.mgmt.confirmOverride'))) return\n }\n // 本地预校验(Worker 试算)先行,给出即时反馈;host 侧保存时还会 vm 复校验。\n setBusy('saving')\n setNotice(null)\n try {\n const pre = await validateCustomStrategy({\n id: input.id,\n title: input.title,\n horizon: input.horizon,\n summary: input.summary,\n paramsJson: input.paramsJson,\n computeSource: input.computeSource,\n createdAt: initial?.createdAt ?? Date.now(),\n })\n if (!pre.ok) {\n setNotice({ kind: 'error', text: pre.reason })\n return\n }\n const result = await onSave(input)\n if (result === null) {\n setNotice({ kind: 'error', text: t('sv.mgmt.saveFailed') })\n return\n }\n if (!result.ok) {\n setNotice({ kind: 'error', text: `${t('sv.mgmt.saveFailed')}: ${result.reason}` })\n return\n }\n onSaved()\n onClose()\n } finally {\n setBusy('')\n }\n }\n\n const updateRow = (index: number, patch: Partial<ParamRow>) => {\n setRows((prev) => prev.map((row, i) => (i === index ? { ...row, ...patch } : row)))\n }\n\n return (\n <div className={css.overlay} role=\"dialog\" aria-modal=\"true\">\n <div className={css.panel}>\n <div className={css.panelHeader}>\n <span className={css.panelTitle}>{t('sv.mgmt.editorTitle')}{isEdit ? ` · ${initial!.id}` : ''}</span>\n <button type=\"button\" className={css.closeBtn} onClick={onClose}>✕</button>\n </div>\n\n <div className={css.formGrid}>\n <label className={css.field}>\n <span className={css.fieldLabel}>{t('sv.mgmt.field.id')}</span>\n <input\n className={css.fieldInput}\n value={id}\n disabled={isEdit}\n onChange={(e) => setId(e.target.value)}\n placeholder=\"ema-stop-takeprofit\"\n />\n </label>\n <label className={css.field}>\n <span className={css.fieldLabel}>{t('sv.mgmt.field.title')}</span>\n <input className={css.fieldInput} value={title} onChange={(e) => setTitle(e.target.value)} />\n </label>\n <label className={css.field}>\n <span className={css.fieldLabel}>{t('sv.mgmt.field.horizon')}</span>\n <select\n className={css.fieldInput}\n value={horizon}\n onChange={(e) => setHorizon(e.target.value as StrategyHorizon)}\n >\n {HORIZONS.map((h) => (\n <option key={h} value={h}>{t(`sv.horizon.${h}` as StrategyLocaleKey)}</option>\n ))}\n </select>\n </label>\n </div>\n\n <label className={css.field}>\n <span className={css.fieldLabel}>{t('sv.mgmt.field.summary')}</span>\n <input className={css.fieldInput} value={summary} onChange={(e) => setSummary(e.target.value)} />\n </label>\n\n <div className={css.field}>\n <span className={css.fieldLabel}>{t('sv.mgmt.field.params')}</span>\n <div className={css.paramTable}>\n <div className={css.paramHeadRow}>\n <span>{t('sv.mgmt.param.key')}</span>\n <span>{t('sv.mgmt.param.label')}</span>\n <span>{t('sv.mgmt.param.default')}</span>\n <span>{t('sv.mgmt.param.min')}</span>\n <span>{t('sv.mgmt.param.max')}</span>\n <span>{t('sv.mgmt.param.step')}</span>\n <span />\n </div>\n {rows.map((row, index) => (\n <div key={index} className={css.paramRow}>\n <input className={css.paramCell} value={row.key} onChange={(e) => updateRow(index, { key: e.target.value })} />\n <input className={css.paramCell} value={row.label} onChange={(e) => updateRow(index, { label: e.target.value })} />\n <input className={css.paramCell} type=\"number\" value={row.default} onChange={(e) => updateRow(index, { default: e.target.value })} />\n <input className={css.paramCell} type=\"number\" value={row.min} onChange={(e) => updateRow(index, { min: e.target.value })} />\n <input className={css.paramCell} type=\"number\" value={row.max} onChange={(e) => updateRow(index, { max: e.target.value })} />\n <input className={css.paramCell} type=\"number\" value={row.step} onChange={(e) => updateRow(index, { step: e.target.value })} />\n <button\n type=\"button\"\n className={css.paramRemove}\n title={t('sv.mgmt.removeParam')}\n onClick={() => setRows((prev) => prev.filter((_, i) => i !== index))}\n >✕</button>\n </div>\n ))}\n <button\n type=\"button\"\n className={css.addParamBtn}\n onClick={() => setRows((prev) => [...prev, { key: '', label: '', default: '0', min: '0', max: '100', step: '1' }])}\n >+ {t('sv.mgmt.addParam')}</button>\n </div>\n </div>\n\n <label className={css.field}>\n <span className={css.fieldLabel}>{t('sv.mgmt.field.source')}</span>\n <textarea\n className={css.sourceArea}\n value={source}\n spellCheck={false}\n onChange={(e) => setSource(e.target.value)}\n rows={12}\n />\n </label>\n\n {notice !== null && (\n <div className={notice.kind === 'ok' ? css.noticeOk : css.noticeError}>{notice.text}</div>\n )}\n\n <div className={css.actionBar}>\n <button type=\"button\" className={css.secondaryBtn} disabled={busy !== ''} onClick={() => { void handleValidate() }}>\n {busy === 'validating' ? t('sv.mgmt.validating') : t('sv.mgmt.validate')}\n </button>\n <div className={css.actionSpacer} />\n <button type=\"button\" className={css.secondaryBtn} onClick={onClose}>{t('sv.mgmt.cancel')}</button>\n <button type=\"button\" className={css.primaryBtn} disabled={busy !== ''} onClick={() => { void handleSave() }}>\n {busy === 'saving' ? t('sv.mgmt.validating') : t('sv.mgmt.save')}\n </button>\n </div>\n </div>\n </div>\n )\n}\n","/**\n * 策略板块主视图(对齐 docs/design/strategy-tab.md §3.4 与 Review 规范)。\n *\n * 结构(自上而下,两级分区):\n * 1. 分区分段控件(选股策略 | 量化策略)\n * 2a. 选股策略 → ScreenerPane(内置选股器卡 + 参数/扫描池 + 进度 + 命中表)\n * 2b. 量化策略 → 周期分段控件(短线 | 波段 | 长线)+ 策略卡列表\n * + 参数配置与回测控制栏(参数输入 + 标的周期 + 运行回测)\n * + 结果区:8 指标卡 + 权益曲线 (lightweight-charts) + 交易明细流水表\n */\nimport { useEffect, useMemo, useRef, useState } from 'react'\nimport { createChart, ColorType, AreaSeries, type IChartApi, type ISeriesApi } from 'lightweight-charts'\nimport {\n strategyParadigms,\n run,\n validateCustomStrategy,\n applyStrategyManagement,\n isBuiltinStrategyId,\n builtinStrategyRecord,\n fmtPrice,\n type StrategyHorizon,\n type StrategyDefinition,\n type BacktestResult,\n type CustomStrategyRecord,\n type Kline,\n} from '@dshtrading/strategies'\nimport { readJson, writeJson, type SelectionState } from './shell-faces.ts'\nimport { IconStrategy } from './icons.tsx'\nimport { ScreenerPane } from './ScreenerPane.tsx'\nimport { StrategyEditor, type StrategyEditorSaveInput } from './StrategyEditor.tsx'\nimport type { StrategyLocaleKey } from './contract.ts'\nimport {\n strategyName, strategySummary, paramLabel,\n exitReasonText,\n} from './strategy-locale.ts'\nexport { strategyName, strategySummary, paramLabel, exitReasonText } from './strategy-locale.ts'\nimport css from './StrategyView.module.css'\n\ntype StrategySection = 'screener' | 'quant'\n\ninterface StrategyStateStored {\n section?: StrategySection\n strategyId: string\n paramsMap: Record<string, Record<string, number>>\n horizon: StrategyHorizon\n}\n\nconst STRATEGY_STORE_KEY = 'dshtrading.strategy.v1'\n\nconst DEFAULT_STORED: StrategyStateStored = {\n strategyId: 'donchian-breakout',\n paramsMap: {},\n horizon: 'short',\n}\n\nfunction formatPercent(val: number, plus = false): string {\n if (!Number.isFinite(val)) return '--'\n const sign = val > 0 && plus ? '+' : ''\n return `${sign}${val.toFixed(2)}%`\n}\n\nfunction formatNum(val: number, decimals = 2): string {\n if (val === Infinity) return '∞'\n if (!Number.isFinite(val)) return '--'\n return val.toFixed(decimals)\n}\n\nfunction formatDate(timestamp: number): string {\n const d = new Date(timestamp)\n const y = d.getFullYear()\n const m = String(d.getMonth() + 1).padStart(2, '0')\n const day = String(d.getDate()).padStart(2, '0')\n return `${y}-${m}-${day}`\n}\n\nexport type UseStoreState<TState> = <TSelected>(selector: (state: TState) => TSelected) => TSelected\n\nexport interface StrategyViewProps {\n t: (key: StrategyLocaleKey, params?: Record<string, unknown>) => string\n /** 中栏活动视图 id(tradingStageViews.render 透传;本视图固定 strategy,未用)。 */\n view?: string\n /** 桥面(shell 的 tradingBridge 服务;未注入时空跑——视图静默空态)。\n * 管理方法(策略管理,2026-09-07)为可选:老 shell 缺席时管理动作降级隐藏。 */\n bridge: {\n fetchKlines: (market: string, symbol: string, interval: string, limit: number) => Promise<Kline[]>\n fetchCustomStrategies: () => Promise<Array<{ id: string; title: string; horizon: string; summary: string; paramsJson: string; computeSource: string }>>\n fetchSymbols: (market: string) => Promise<Array<{ symbol: string; name?: string }>>\n subscribeTradingEvents: (handlers: { strategies?: () => void }) => () => void\n saveCustomStrategy?: ((input: StrategyEditorSaveInput) => Promise<{ ok: true } | { ok: false; reason: string } | null>) | undefined\n deleteCustomStrategy?: ((id: string) => Promise<boolean>) | undefined\n resetStrategy?: ((id: string) => Promise<{ ok: boolean; changed: boolean } | null>) | undefined\n fetchStrategyTombstones?: (() => Promise<string[]>) | undefined\n }\n useSelection?: UseStoreState<SelectionState>\n}\n\nexport function StrategyView({ t, bridge, useSelection }: StrategyViewProps) {\n const instrument = useSelection ? useSelection((s) => s.instrument) : null\n const market = instrument?.market ?? 'crypto'\n const symbol = instrument?.symbol ?? 'BTCUSDT'\n\n // 1. 本地存储持久化状态\n const [stored] = useState<StrategyStateStored>(() => {\n return readJson<StrategyStateStored>(STRATEGY_STORE_KEY, DEFAULT_STORED)\n })\n\n // section 白名单:旧存档缺省 quant;手改出的脏值回落 quant,避免渲染出\n // 「头部选择器隐藏但量化内容还在」的半套 UI\n const [section, setSection] = useState<StrategySection>(stored.section === 'screener' ? 'screener' : 'quant')\n const [horizon, setHorizon] = useState<StrategyHorizon>(stored.horizon ?? 'short')\n const [selectedId, setSelectedId] = useState<string>(stored.strategyId ?? 'donchian-breakout')\n const [paramsMap, setParamsMap] = useState<Record<string, Record<string, number>>>(stored.paramsMap ?? {})\n\n // 2. 自定义策略名册(issue #31 / P2)+ 策略管理(2026-09-07):桥拉取记录与\n // 墓碑 → 校验(Worker 熔断)→ applyStrategyManagement 合成名册(内置 − 墓碑、\n // 覆盖记录原位替换、自定义追加);SSE 'strategies' 信号到达时重拉。\n // 桥来自 shell 的 tradingBridge 服务(未注入时跳过拉取,视图空态)。\n const [customDefs, setCustomDefs] = useState<StrategyDefinition[]>([])\n const [records, setRecords] = useState<CustomStrategyRecord[]>([])\n const [tombstones, setTombstones] = useState<string[]>([])\n // 桥引用稳定化(防御):上游若每次 render 传新 bridge 字面量,[bridge] 依赖会\n // 自激振荡(每帧 loadCards → setState → 新 bridge → …,实证 fetch 风暴)。\n // 锁定首见引用;真换桥实例需重挂视图,语义可接受。\n const bridgeRef = useRef(bridge)\n if (bridgeRef.current === null) bridgeRef.current = bridge\n const stableBridge = bridgeRef.current\n // 编辑器保存后的立即重拉触发器(SSE 缺席的老宿主也能即时上榜)。\n const [reloadKey, setReloadKey] = useState(0)\n useEffect(() => {\n if (stableBridge === undefined) return\n let cancelled = false\n // generation 令牌:SSE 突发时同一 effect 内会并发起多个 load(),后完成的\n // 旧响应不得覆盖新状态——只允许最新一代落 setState。\n let generation = 0\n const load = async () => {\n const gen = ++generation\n try {\n const rawRecords = await stableBridge.fetchCustomStrategies()\n const defs: StrategyDefinition[] = []\n const validRecords: CustomStrategyRecord[] = []\n for (const record of rawRecords) {\n const result = await validateCustomStrategy(record as never)\n if (result.ok) {\n defs.push(result.definition)\n validRecords.push(result.record)\n }\n }\n const deleted = stableBridge.fetchStrategyTombstones !== undefined\n ? await stableBridge.fetchStrategyTombstones()\n : []\n if (cancelled || gen !== generation) return\n setCustomDefs(defs)\n setRecords(validRecords)\n setTombstones(deleted)\n } catch (e) {\n console.warn('[dsh-trading] failed to load custom strategies:', e)\n }\n }\n void load()\n const unsubscribe = stableBridge.subscribeTradingEvents({ strategies: () => { void load() } })\n return () => { cancelled = true; unsubscribe() }\n }, [stableBridge, reloadKey])\n\n // 名册 = 内置 − 墓碑,覆盖记录原位替换,自定义追加(策略管理统一合成)。\n const allStrategies = useMemo<StrategyDefinition[]>(\n () => applyStrategyManagement(strategyParadigms, customDefs, tombstones),\n [customDefs, tombstones],\n )\n\n // 来源徽标词汇:已修改内置(store 有同 id 覆盖记录)/ 自定义。\n const modifiedIds = useMemo(\n () => new Set(records.map((r) => r.id).filter((id) => isBuiltinStrategyId(id))),\n [records],\n )\n\n // 编辑器状态:null = 关闭;record = null 新建,否则编辑预填(内置经\n // builtinStrategyRecord 导出自包含源码)。\n const [editor, setEditor] = useState<{ initial: CustomStrategyRecord | null } | null>(null)\n\n const currentStrategy = useMemo<StrategyDefinition | null>(() => {\n // 全部内置被删且无自定义时名册可为空(策略管理边界):返回 null 走空态。\n return allStrategies.find((s) => s.id === selectedId) ?? allStrategies[0] ?? null\n }, [allStrategies, selectedId])\n\n // 当前策略对应的参数\n const currentParams = useMemo<Record<string, number>>(() => {\n if (currentStrategy === null) return {}\n const custom = paramsMap[currentStrategy.id] ?? {}\n const res: Record<string, number> = {}\n for (const p of currentStrategy.params) {\n res[p.key] = custom[p.key] ?? p.default\n }\n return res\n }, [currentStrategy, paramsMap])\n\n // 3. 回测运行状态\n const [loading, setLoading] = useState(false)\n const [result, setResult] = useState<BacktestResult | null>(null)\n const [errorMsg, setErrorMsg] = useState<string | null>(null)\n\n // 4. 图表容器 ref\n const chartContainerRef = useRef<HTMLDivElement | null>(null)\n const chartApiRef = useRef<IChartApi | null>(null)\n const seriesApiRef = useRef<ISeriesApi<'Area'> | null>(null)\n\n // 同步持久化\n useEffect(() => {\n const nextState: StrategyStateStored = { section, strategyId: selectedId, paramsMap, horizon }\n writeJson(STRATEGY_STORE_KEY, nextState)\n }, [section, selectedId, paramsMap, horizon])\n\n // 切换 horizon 时自动选择该分类下的第一个策略\n const switchHorizon = (h: StrategyHorizon) => {\n setHorizon(h)\n const firstInHorizon = allStrategies.find((s) => s.horizon === h)\n if (firstInHorizon) {\n setSelectedId(firstInHorizon.id)\n }\n }\n\n const handleParamChange = (key: string, value: number) => {\n if (currentStrategy === null) return\n setParamsMap((prev) => ({\n ...prev,\n [currentStrategy.id]: {\n ...(prev[currentStrategy.id] ?? {}),\n [key]: value,\n },\n }))\n }\n\n /* ---------------- 策略管理动作(2026-09-07) ----------------\n 老壳(桥无管理方法)时按钮不渲染(管理面缺席降级),动作函数不做兜底。 */\n\n const forgetLocalParams = (id: string) => {\n setParamsMap((prev) => {\n if (prev[id] === undefined) return prev\n const next = { ...prev }\n delete next[id]\n return next\n })\n }\n\n const handleDeleteStrategy = async (strat: StrategyDefinition) => {\n if (stableBridge.deleteCustomStrategy === undefined) return\n if (!window.confirm(t('sv.mgmt.confirmDelete'))) return\n await stableBridge.deleteCustomStrategy(strat.id)\n forgetLocalParams(strat.id)\n // 删除对象正被选中 → 回落到名册第一个可用策略(墓碑生效后 currentStrategy 兜底)。\n if (selectedId === strat.id) setSelectedId('')\n }\n\n const handleRestoreStrategy = async (id: string) => {\n if (stableBridge.resetStrategy === undefined) return\n // 已修改内置 = 覆盖记录将被清除且不可恢复(出厂代码不受影响),需显式确认。\n if (modifiedIds.has(id) && !window.confirm(t('sv.mgmt.confirmRestore'))) return\n const result = await stableBridge.resetStrategy(id)\n if (result !== null && result.ok) forgetLocalParams(id)\n }\n\n const handleEditStrategy = (strat: StrategyDefinition) => {\n // 内置/已修改内置:从代码定义导出自包含源码预填;自定义:用 store 原记录。\n const record = modifiedIds.has(strat.id) || !isBuiltinStrategyId(strat.id)\n ? records.find((r) => r.id === strat.id) ?? null\n : builtinStrategyRecord(strat)\n if (record !== null) setEditor({ initial: record })\n }\n\n const handleSaveFromEditor = async (input: StrategyEditorSaveInput) => {\n if (stableBridge.saveCustomStrategy === undefined) return null\n return stableBridge.saveCustomStrategy(input)\n }\n\n // 运行回测(拉取 300 根日 K,对齐各主流交易所如 OKX 单次 300 根上限,并保障 250 根长线策略有充足样本窗口)\n const handleRunBacktest = async () => {\n if (currentStrategy === null) return\n setLoading(true)\n setErrorMsg(null)\n try {\n const barsRaw = await stableBridge.fetchKlines(market, symbol, '1d', 300)\n if (!barsRaw || barsRaw.length === 0) {\n setErrorMsg(t('sv.error.noKlines'))\n setResult(null)\n return\n }\n const klines: Kline[] = barsRaw.map((b) => ({\n openTime: b.openTime,\n open: b.open,\n high: b.high,\n low: b.low,\n close: b.close,\n volume: b.volume,\n }))\n const backtestResult = run(klines, currentStrategy, currentParams)\n setResult(backtestResult)\n } catch (e) {\n setErrorMsg(`${t('sv.error.failed')}: ${String((e as Error)?.message ?? e)}`)\n setResult(null)\n } finally {\n setLoading(false)\n }\n }\n\n // 挂载与更新权益曲线图表\n useEffect(() => {\n if (!chartContainerRef.current || !result || result.equity.length === 0) {\n return\n }\n\n const container = chartContainerRef.current\n if (chartApiRef.current) {\n chartApiRef.current.remove()\n chartApiRef.current = null\n }\n\n const chart = createChart(container, {\n width: container.clientWidth,\n height: container.clientHeight,\n layout: {\n background: { type: ColorType.Solid, color: 'transparent' },\n textColor: '#8e95a3',\n fontSize: 11,\n },\n grid: {\n vertLines: { color: 'rgba(0, 0, 0, 0.04)' },\n horzLines: { color: 'rgba(0, 0, 0, 0.04)' },\n },\n timeScale: {\n borderColor: '#e3e6ea',\n timeVisible: false,\n },\n rightPriceScale: {\n borderColor: '#e3e6ea',\n },\n })\n\n const isPositive = result.metrics.totalReturn >= 0\n const areaSeries = chart.addSeries(AreaSeries, {\n topColor: isPositive ? 'rgba(230, 69, 69, 0.35)' : 'rgba(43, 164, 113, 0.35)',\n bottomColor: isPositive ? 'rgba(230, 69, 69, 0.02)' : 'rgba(43, 164, 113, 0.02)',\n lineColor: isPositive ? '#e64545' : '#2ba471',\n lineWidth: 2,\n })\n\n const chartData = result.equity.map((pt) => ({\n time: Math.floor(pt.time / 1000) as unknown as string,\n value: pt.equity,\n }))\n\n areaSeries.setData(chartData as never)\n chart.timeScale().fitContent()\n\n chartApiRef.current = chart\n seriesApiRef.current = areaSeries\n\n const handleResize = () => {\n if (chartContainerRef.current && chartApiRef.current) {\n chartApiRef.current.applyOptions({\n width: chartContainerRef.current.clientWidth,\n height: chartContainerRef.current.clientHeight,\n })\n }\n }\n window.addEventListener('resize', handleResize)\n\n return () => {\n window.removeEventListener('resize', handleResize)\n chart.remove()\n chartApiRef.current = null\n seriesApiRef.current = null\n }\n // 依赖含 section:图表容器在量化分支内,切到选股分区会卸载容器。\n // 不跟随 section 的话,切回量化后挂载的是新容器而 effect 不重跑——\n // result 还在、权益曲线却空白,旧 chart 实例还挂在 ref 上失联。\n }, [result, section])\n\n const horizonStrategies = useMemo(() => {\n return allStrategies.filter((s) => s.horizon === horizon)\n }, [allStrategies, horizon])\n\n // 管理面可用性(老壳无桥管理方法 → 整组管理动作降级隐藏)。\n const mgmtAvailable = stableBridge.deleteCustomStrategy !== undefined\n && stableBridge.saveCustomStrategy !== undefined\n && stableBridge.resetStrategy !== undefined\n\n // 已删内置(墓碑):灰卡 + 恢复入口(可发现性——不展示则用户无从知道可恢复)。\n const tombstonedStrategies = useMemo<StrategyDefinition[]>(() => {\n if (!mgmtAvailable) return []\n return strategyParadigms.filter((d) => tombstones.includes(d.id))\n }, [tombstones, mgmtAvailable])\n\n return (\n <div className={css.root} data-dshtrading-strategy-view=\"\">\n {/* 1. 分区分段控件(选股策略 | 量化策略) */}\n <div className={css.header}>\n <div className={css.horizonSelector} role=\"tablist\">\n <button\n type=\"button\"\n className={css.horizonBtn}\n data-active={section === 'screener' ? 'true' : undefined}\n onClick={() => setSection('screener')}\n >\n {t('sv.section.screener')}\n </button>\n <button\n type=\"button\"\n className={css.horizonBtn}\n data-active={section === 'quant' ? 'true' : undefined}\n onClick={() => setSection('quant')}\n >\n {t('sv.section.quant')}\n </button>\n </div>\n\n {section === 'quant' && (\n <>\n {/* 2b-1. 周期分段 + 新建策略 */}\n <div className={css.mgmtRow}>\n <div className={css.horizonSelector} role=\"tablist\">\n <button\n type=\"button\"\n className={css.horizonBtn}\n data-active={horizon === 'short' ? 'true' : undefined}\n onClick={() => switchHorizon('short')}\n >\n {t('sv.horizon.short')}\n </button>\n <button\n type=\"button\"\n className={css.horizonBtn}\n data-active={horizon === 'swing' ? 'true' : undefined}\n onClick={() => switchHorizon('swing')}\n >\n {t('sv.horizon.swing')}\n </button>\n <button\n type=\"button\"\n className={css.horizonBtn}\n data-active={horizon === 'long' ? 'true' : undefined}\n onClick={() => switchHorizon('long')}\n >\n {t('sv.horizon.long')}\n </button>\n </div>\n {mgmtAvailable && (\n <button type=\"button\" className={css.newStrategyBtn} onClick={() => setEditor({ initial: null })}>\n + {t('sv.mgmt.new')}\n </button>\n )}\n </div>\n\n {/* 策略卡片(来源徽标 + 管理操作) */}\n <div className={css.strategyCards}>\n {horizonStrategies.map((strat) => {\n const modified = modifiedIds.has(strat.id)\n const builtin = isBuiltinStrategyId(strat.id)\n return (\n <div\n key={strat.id}\n className={css.strategyCard}\n data-active={strat.id === selectedId ? 'true' : undefined}\n onClick={() => setSelectedId(strat.id)}\n >\n <div className={css.cardTitleRow}>\n <span className={css.cardTitle}>{strategyName(strat, t)}</span>\n <span\n className={css.cardBadge}\n data-kind={modified ? 'modified' : builtin ? 'builtin' : 'custom'}\n >\n {t(modified ? 'sv.mgmt.badge.modified' : builtin ? 'sv.mgmt.badge.builtin' : 'sv.mgmt.badge.custom')}\n </span>\n </div>\n <div className={css.cardSummary}>{strategySummary(strat, t)}</div>\n {mgmtAvailable && (\n <div className={css.cardActions} onClick={(e) => e.stopPropagation()}>\n <button type=\"button\" className={css.cardActionBtn} onClick={() => handleEditStrategy(strat)}>\n {t('sv.mgmt.edit')}\n </button>\n {builtin && modified && (\n <button type=\"button\" className={css.cardActionBtn} onClick={() => { void handleRestoreStrategy(strat.id) }}>\n {t('sv.mgmt.restore')}\n </button>\n )}\n <button\n type=\"button\"\n className={css.cardActionBtn}\n data-danger=\"true\"\n onClick={() => { void handleDeleteStrategy(strat) }}\n >\n {t('sv.mgmt.delete')}\n </button>\n </div>\n )}\n </div>\n )\n })}\n {tombstonedStrategies.map((strat) => (\n <div key={strat.id} className={css.strategyCard} data-deleted=\"true\">\n <div className={css.cardTitleRow}>\n <span className={css.cardTitle}>{strategyName(strat, t)}</span>\n <span className={css.cardBadge} data-kind=\"deleted\">{t('sv.mgmt.deleted')}</span>\n </div>\n <div className={css.cardSummary}>{strategySummary(strat, t)}</div>\n <div className={css.cardActions} onClick={(e) => e.stopPropagation()}>\n <button type=\"button\" className={css.cardActionBtn} onClick={() => { void handleRestoreStrategy(strat.id) }}>\n {t('sv.mgmt.restore')}\n </button>\n </div>\n </div>\n ))}\n </div>\n </>\n )}\n </div>\n\n {section === 'screener' ? (\n /* 2a. 选股策略面板 */\n <ScreenerPane t={t} market={market} bridge={stableBridge} />\n ) : currentStrategy === null ? (\n /* 名册为空(全部内置已删且无自定义,策略管理边界)→ 空态 */\n <div className={css.emptyState}>\n <div className={css.emptyIcon}>\n <IconStrategy size={36} />\n </div>\n <div>{t('sv.mgmt.rosterEmpty')}</div>\n </div>\n ) : (\n <>\n {/* 2b-2. 参数调节与运行条 */}\n <div className={css.configBar}>\n {currentStrategy.params.map((p) => (\n <div key={p.key} className={css.paramGroup}>\n <label className={css.paramLabel}>{paramLabel(currentStrategy, p, t)}:</label>\n <input\n type=\"number\"\n className={css.paramInput}\n min={p.min}\n max={p.max}\n step={p.step}\n value={currentParams[p.key] ?? p.default}\n onChange={(e) => {\n const numVal = parseFloat(e.target.value)\n if (!Number.isNaN(numVal)) {\n handleParamChange(p.key, numVal)\n }\n }}\n />\n </div>\n ))}\n\n <div className={css.paramGroup}>\n <span className={css.paramLabel}>{t('sv.symbolLabel')}</span>\n <span className={css.symbolValue}>\n {symbol} {t('sv.intervalDaily')}\n </span>\n </div>\n\n <button\n type=\"button\"\n className={css.runBtn}\n disabled={loading}\n onClick={handleRunBacktest}\n >\n {loading ? t('sv.running') : t('sv.run')}\n </button>\n </div>\n\n {errorMsg && (\n <div className={css.errorMessage}>\n {errorMsg}\n </div>\n )}\n\n {/* 3. 回测结果展示区 */}\n {result ? (\n <>\n {/* 8 指标卡 */}\n <div className={css.metricsGrid}>\n <div className={css.metricCard}>\n <span className={css.metricLabel}>{t('sv.metrics.totalReturn')}</span>\n <span\n className={`${css.metricValue} ${result.metrics.totalReturn >= 0 ? css.trendUp : css.trendDown}`}\n >\n {formatPercent(result.metrics.totalReturn, true)}\n </span>\n </div>\n\n <div className={css.metricCard}>\n <span className={css.metricLabel}>{t('sv.metrics.cagr')}</span>\n <span\n className={`${css.metricValue} ${result.metrics.cagr >= 0 ? css.trendUp : css.trendDown}`}\n >\n {formatPercent(result.metrics.cagr, true)}\n </span>\n </div>\n\n <div className={css.metricCard}>\n <span className={css.metricLabel}>{t('sv.metrics.maxDrawdown')}</span>\n <span className={`${css.metricValue} ${css.trendDown}`}>\n {formatPercent(result.metrics.maxDrawdown)}\n </span>\n </div>\n\n <div className={css.metricCard}>\n <span className={css.metricLabel}>{t('sv.metrics.sharpe')}</span>\n <span className={css.metricValue}>{formatNum(result.metrics.sharpe)}</span>\n </div>\n\n <div className={css.metricCard}>\n <span className={css.metricLabel}>{t('sv.metrics.winRate')}</span>\n <span className={css.metricValue}>{formatPercent(result.metrics.winRate)}</span>\n </div>\n\n <div className={css.metricCard}>\n <span className={css.metricLabel}>{t('sv.metrics.profitFactor')}</span>\n <span className={css.metricValue}>{formatNum(result.metrics.profitFactor)}</span>\n </div>\n\n <div className={css.metricCard}>\n <span className={css.metricLabel}>{t('sv.metrics.tradeCount')}</span>\n <span className={css.metricValue}>\n {result.metrics.tradeCount} {t('sv.metrics.tradeUnit')}\n </span>\n </div>\n\n <div className={css.metricCard}>\n <span className={css.metricLabel}>{t('sv.metrics.exposure')}</span>\n <span className={css.metricValue}>{formatPercent(result.metrics.exposure)}</span>\n </div>\n </div>\n\n {/* 权益曲线 */}\n <div className={css.chartContainer}>\n <div ref={chartContainerRef} className={css.chartWrapper} />\n </div>\n\n {/* 交易明细流水表 */}\n <div className={css.tableSection}>\n <div className={css.tableTitle}>\n {t('sv.trades.title')} ({result.trades.length} {t('sv.metrics.tradeUnit')})\n </div>\n <div className={css.tradesTableWrapper}>\n <table className={css.tradesTable}>\n <thead>\n <tr>\n <th>{t('sv.trades.entryTime')}</th>\n <th>{t('sv.trades.exitTime')}</th>\n <th>{t('sv.trades.entryPrice')}</th>\n <th>{t('sv.trades.exitPrice')}</th>\n <th>{t('sv.trades.holdingBars')}</th>\n <th>{t('sv.trades.netReturn')}</th>\n <th>{t('sv.trades.exitReason')}</th>\n </tr>\n </thead>\n <tbody>\n {result.trades.length === 0 ? (\n <tr>\n <td colSpan={7} className={css.tableEmptyCell}>\n {t('sv.trades.empty')}\n </td>\n </tr>\n ) : (\n result.trades.map((tr, idx) => (\n <tr key={idx}>\n <td>{formatDate(tr.entryTime)}</td>\n <td>{formatDate(tr.exitTime)}</td>\n <td>{fmtPrice(tr.entryPrice)}</td>\n <td>{fmtPrice(tr.exitPrice)}</td>\n <td>{tr.holdingBars}</td>\n <td className={tr.returnPercent >= 0 ? css.trendUp : css.trendDown}>\n {formatPercent(tr.returnPercent, true)}\n </td>\n <td className={css.reasonCell}>{exitReasonText(tr, t)}</td>\n </tr>\n ))\n )}\n </tbody>\n </table>\n </div>\n </div>\n </>\n ) : (\n <div className={css.emptyState}>\n <div className={css.emptyIcon}>\n <IconStrategy size={36} />\n </div>\n <div>{t('sv.empty.hint')}</div>\n </div>\n )}\n </>\n )}\n\n {/* 策略编辑器(新建/编辑/覆盖内置;模态覆盖层) */}\n {editor !== null && (\n <StrategyEditor\n t={t}\n initial={editor.initial}\n onSave={handleSaveFromEditor}\n onSaved={() => setReloadKey((k) => k + 1)}\n onClose={() => setEditor(null)}\n />\n )}\n </div>\n )\n}\n\n","/**\n * toolview 富卡片的数据解析(issue #34 / P5 §5.5)。\n *\n * 工具输出面(host 半 strategies/plugin):\n * - strategy_backtest → JSON 串(ok/strategy/market/symbol/interval/metrics/\n * trades/equity/initialCapital/finalCapital);\n * - strategy_author → 人读文本(成功「[strategy_author] Successfully authored…」\n * 或失败「[strategy_author] Validation failed: …」)。\n *\n * 解析全部防御式:call 块来自 wire,字段可能缺失/类型漂移——失败返回 null,\n * 卡片回落到通用工具行(keyed slot 返回 null 时不接管渲染)。\n */\n\n/** strategy_backtest 输出的 metrics 面(数值可能缺失)。 */\nexport interface BacktestMetricsLike {\n totalReturn?: unknown\n cagr?: unknown\n maxDrawdown?: unknown\n sharpe?: unknown\n winRate?: unknown\n profitFactor?: unknown\n tradeCount?: unknown\n exposure?: unknown\n}\n\nexport interface BacktestPayloadLike {\n ok?: unknown\n strategy?: { id?: unknown; name?: unknown; horizon?: unknown }\n market?: unknown\n symbol?: unknown\n interval?: unknown\n barsTested?: unknown\n metrics?: BacktestMetricsLike\n equity?: Array<{ time?: unknown; equity?: unknown }>\n initialCapital?: unknown\n finalCapital?: unknown\n}\n\nexport interface ParsedBacktestCard {\n name: string\n symbol: string\n market: string\n interval: string\n barsTested: number | null\n totalReturn: number | null\n cagr: number | null\n maxDrawdown: number | null\n sharpe: number | null\n winRate: number | null\n profitFactor: number | null\n tradeCount: number | null\n exposure: number | null\n /** 权益曲线数值序列(sparkline 输入;坏点剔除)。 */\n equityValues: number[]\n isPositive: boolean\n}\n\nfunction asNumber(value: unknown): number | null {\n return typeof value === 'number' && Number.isFinite(value) ? value : null\n}\n\nfunction asString(value: unknown, fallback = ''): string {\n return typeof value === 'string' ? value : fallback\n}\n\n/** 从 ToolCallBlock(settled tool-result)取文本输出并解析 backtest 载荷。 */\nexport function parseStrategyBacktestPayload(raw: unknown): ParsedBacktestCard | null {\n if (typeof raw !== 'string' || raw.length === 0) return null\n let wire: BacktestPayloadLike\n try {\n wire = JSON.parse(raw) as BacktestPayloadLike\n } catch {\n return null\n }\n if (wire === null || typeof wire !== 'object' || wire.ok !== true) return null\n const metrics = (wire.metrics ?? {}) as BacktestMetricsLike\n const equityValues: number[] = []\n if (Array.isArray(wire.equity)) {\n for (const point of wire.equity) {\n const value = asNumber((point as { equity?: unknown })?.equity)\n if (value !== null) equityValues.push(value)\n }\n }\n const totalReturn = asNumber(metrics.totalReturn)\n return {\n name: asString((wire.strategy as { name?: unknown } | undefined)?.name, '—'),\n symbol: asString(wire.symbol, '—'),\n market: asString(wire.market, '—'),\n interval: asString(wire.interval, '1d'),\n barsTested: asNumber(wire.barsTested),\n totalReturn,\n cagr: asNumber(metrics.cagr),\n maxDrawdown: asNumber(metrics.maxDrawdown),\n sharpe: asNumber(metrics.sharpe),\n winRate: asNumber(metrics.winRate),\n profitFactor: asNumber(metrics.profitFactor),\n tradeCount: asNumber(metrics.tradeCount),\n exposure: asNumber(metrics.exposure),\n equityValues,\n isPositive: totalReturn === null ? false : totalReturn >= 0,\n }\n}\n\nexport interface ParsedAuthorCard {\n ok: boolean\n /** 策略标题(成功时从文本提取)。 */\n title: string\n /** 策略 id。 */\n id: string\n horizon: string\n /** 参数摘要(fast=20, slow=60 形态)。 */\n params: string\n /** 失败原因(失败时)。 */\n reason: string\n}\n\n/**\n * strategy_author 输出是人读文本(host 半刻意如此——失败原因要直接喂模型)。\n * 成功形态:\n * [strategy_author] Successfully authored strategy \"双均线\" (id: my-id, horizon: short, params: fast=20). …\n * 失败形态:\n * [strategy_author] Validation failed: <reason>…\n */\nexport function parseStrategyAuthorText(raw: unknown): ParsedAuthorCard | null {\n if (typeof raw !== 'string' || raw.length === 0) return null\n const okMatch = /^\\[strategy_author\\] Successfully authored strategy \"([^\"]*)\" \\(id:\\s*([^,]+),\\s*horizon:\\s*([^,)]+)(?:,\\s*params:\\s*([^)]*))?\\)/.exec(raw)\n if (okMatch !== null) {\n return {\n ok: true,\n title: okMatch[1] ?? '—',\n id: (okMatch[2] ?? '').trim(),\n horizon: (okMatch[3] ?? '').trim(),\n params: (okMatch[4] ?? '').trim(),\n reason: '',\n }\n }\n const failMatch = /^\\[strategy_author\\] Validation failed:\\s*([\\s\\S]+)$/.exec(raw)\n if (failMatch !== null) {\n return {\n ok: false,\n title: '—',\n id: '',\n horizon: '',\n params: '',\n reason: (failMatch[1] ?? '').trim(),\n }\n }\n return null\n}","/**\n * 对话内富卡片(issue #34 / P5 §5.5):tool.call.toolview keyed slot 视图。\n *\n * - StrategyBacktestCard(key = strategy_backtest):权益曲线 sparkline +\n * 8 指标 mini 卡 + 标的/区间摘要;\n * - StrategyAuthorCard(key = strategy_author):校验结果(成功=参数摘要,\n * 失败=原因高亮)。\n *\n * 契约:settled 前返回 null(回落通用工具行);解析失败同样返回 null——\n * keyed slot 不接管时官方 ToolRow 原样渲染,卡片坏了不吞工具结果。\n */\nimport type { ToolCallOwnerProps } from '@deepseek-ai/dsh-client-ui-tool/client'\nimport { parseStrategyBacktestPayload, parseStrategyAuthorText, type ParsedBacktestCard } from './toolview-parse.ts'\nimport type { StrategyLocaleKey } from './contract.ts'\nimport css from './toolview.module.css'\n\n/** 卡片文案 t(keyed slot 声明 locale: NS 后由框架注入 owner props)。 */\ntype CardProps = ToolCallOwnerProps & { t?: (key: StrategyLocaleKey) => string }\n\n/** 从 owner.block 取(argsRaw, result 文本)。RunningToolCall 无 result → null。 */\nfunction readCall(block: ToolCallOwnerProps['block']): { argsRaw: string; resultText: string | null; isError: boolean } {\n if (block.kind === 'tool-result') {\n const text = block.content\n .map(part => (typeof part === 'object' && part !== null && 'text' in part ? String((part as { text?: unknown }).text ?? '') : ''))\n .join('')\n return { argsRaw: block.call?.argsRaw ?? '', resultText: text, isError: block.isError }\n }\n return { argsRaw: block.argsRaw ?? '', resultText: null, isError: false }\n}\n\nfunction fmt(value: number | null, suffix = '', plus = false): string {\n if (value === null) return '--'\n const sign = value > 0 && plus ? '+' : ''\n return `${sign}${value.toFixed(2)}${suffix}`\n}\n\n/** 迷你权益曲线:纯 SVG polyline(卡片场景免 lightweight-charts 重量)。 */\nfunction EquitySparkline({ values, isPositive }: { values: number[]; isPositive: boolean }) {\n if (values.length < 2) return null\n let min = values[0] as number\n let max = values[0] as number\n for (const value of values) {\n if (value < min) min = value\n if (value > max) max = value\n }\n const width = 560\n const height = 72\n const span = max - min\n const step = width / (values.length - 1)\n const points = values\n .map((value, index) => {\n const x = index * step\n const y = span === 0 ? height / 2 : (1 - (value - min) / span) * (height - 6) + 3\n return `${x.toFixed(1)},${y.toFixed(1)}`\n })\n .join(' ')\n const stroke = isPositive ? 'var(--dsv-up, #e64545)' : 'var(--dsv-down, #2ba471)'\n return (\n <svg className={css.spark} viewBox={`0 0 ${width} ${height}`} preserveAspectRatio=\"none\" aria-hidden=\"true\">\n <polyline points={points} fill=\"none\" stroke={stroke} strokeWidth=\"1.6\" strokeLinecap=\"round\" strokeLinejoin=\"round\" />\n </svg>\n )\n}\n\nconst METRIC_CELL: ReadonlyArray<{ key: keyof ParsedBacktestCard; labelKey: StrategyLocaleKey; suffix?: string; plus?: boolean }> = [\n { key: 'totalReturn', labelKey: 'sv.metrics.totalReturn', suffix: '%', plus: true },\n { key: 'cagr', labelKey: 'sv.metrics.cagr', suffix: '%', plus: true },\n { key: 'maxDrawdown', labelKey: 'sv.metrics.maxDrawdown', suffix: '%' },\n { key: 'sharpe', labelKey: 'sv.metrics.sharpe' },\n { key: 'winRate', labelKey: 'sv.metrics.winRate', suffix: '%' },\n { key: 'profitFactor', labelKey: 'sv.metrics.profitFactor' },\n { key: 'tradeCount', labelKey: 'sv.metrics.tradeCount' },\n { key: 'exposure', labelKey: 'sv.metrics.exposure', suffix: '%' },\n]\n\n/** strategy_backtest 卡:头部(策略名 + 标的 + 区间)+ sparkline + 8 指标 mini 网格。 */\nexport function StrategyBacktestCard(props: CardProps) {\n const { block, t } = props\n const call = readCall(block)\n if (call.isError || call.resultText === null) return null\n const payload = parseStrategyBacktestPayload(call.resultText)\n if (payload === null) return null\n\n return (\n <div className={css.card} data-dshtrading-toolview=\"strategy-backtest\">\n <div className={css.head}>\n <span className={css.title}>{payload.name}</span>\n <span className={css.chip}>{payload.symbol}</span>\n <span className={css.chip}>{payload.market}</span>\n <span className={css.chip}>{payload.interval}</span>\n {payload.barsTested !== null && <span className={css.meta}>{payload.barsTested} bars</span>}\n </div>\n <EquitySparkline values={payload.equityValues} isPositive={payload.isPositive} />\n <div className={css.metrics}>\n {METRIC_CELL.map(cell => (\n <div key={cell.key} className={css.metric}>\n <span className={css.metricLabel}>{t !== undefined ? t(cell.labelKey) : cell.labelKey}</span>\n <span\n className={css.metricValue}\n data-tone={cell.key === 'totalReturn' || cell.key === 'cagr' ? (payload[cell.key] as number | null) >= 0 ? 'up' : 'down' : undefined}\n >\n {fmt(payload[cell.key] as number | null, cell.suffix ?? '', cell.plus === true)}\n </span>\n </div>\n ))}\n </div>\n </div>\n )\n}\n\n/** strategy_author 卡:成功 = 标题 + id/horizon/参数摘要;失败 = 原因高亮。 */\nexport function StrategyAuthorCard({ block, t }: CardProps) {\n const call = readCall(block)\n if (call.resultText === null) return null\n const parsed = parseStrategyAuthorText(call.resultText)\n if (parsed === null) return null\n\n if (!parsed.ok) {\n return (\n <div className={css.card} data-dshtrading-toolview=\"strategy-author\" data-ok=\"false\">\n <div className={css.head}>\n <span className={css.title}>{t !== undefined ? t('sv.author.failed') : 'Validation failed'}</span>\n </div>\n <div className={css.reason}>{parsed.reason}</div>\n </div>\n )\n }\n return (\n <div className={css.card} data-dshtrading-toolview=\"strategy-author\" data-ok=\"true\">\n <div className={css.head}>\n <span className={css.title}>{parsed.title}</span>\n <span className={css.chip}>{parsed.id}</span>\n <span className={css.chip}>{parsed.horizon}</span>\n </div>\n {parsed.params !== '' && <div className={css.params}>{parsed.params}</div>}\n </div>\n )\n}","/**\n * client-ui-strategies client 词典(纯数据模块:零运行时依赖)。\n *\n * 单一来源:本包 client apply 注册 zh/en(typed register 编译期校验键位);\n * packages/dsh-i18n 语言包构建期 import 本模块注册 zh-CN;scripts/i18n-audit.mjs\n * 静态加载本模块做 zh/en 键对齐与占位符对齐门禁。\n */\nimport type { StrategyLocaleKey } from './contract.ts'\n\nexport const zh: Record<StrategyLocaleKey, string> = {\n 'sv.section.screener': '选股策略',\n 'sv.section.quant': '量化策略',\n 'sv.horizon.short': '短线交易',\n 'sv.horizon.swing': '波段操作',\n 'sv.horizon.long': '长线投资',\n 'sv.run': '运行回测',\n 'sv.running': '回测计算中...',\n 'sv.symbolLabel': '标的:',\n 'sv.intervalDaily': '(日K)',\n 'sv.error.noKlines': '未能获取到该标的的 K 线数据,无法执行回测',\n 'sv.error.failed': '策略计算异常',\n 'sv.metrics.totalReturn': '累计收益率',\n 'sv.metrics.cagr': '年化复合增长率 (CAGR)',\n 'sv.metrics.maxDrawdown': '最大回撤 (MDD)',\n 'sv.metrics.sharpe': '夏普比率 (Sharpe)',\n 'sv.metrics.winRate': '胜率 (Win Rate)',\n 'sv.metrics.profitFactor': '盈亏比 (Profit Factor)',\n 'sv.metrics.tradeCount': '交易笔数',\n 'sv.metrics.tradeUnit': '笔',\n 'sv.metrics.exposure': '市场暴露度 (Exposure)',\n 'sv.trades.title': '交易明细流水',\n 'sv.trades.empty': '回测区间内未触发交易信号',\n 'sv.trades.entryTime': '开仓时间',\n 'sv.trades.exitTime': '平仓时间',\n 'sv.trades.entryPrice': '开仓均价',\n 'sv.trades.exitPrice': '平仓均价',\n 'sv.trades.holdingBars': '持仓根数',\n 'sv.trades.netReturn': '单笔净收益率',\n 'sv.trades.exitReason': '离场原因',\n 'sv.empty.hint': '选择上方策略与参数后,点击「运行回测」查看绩效与权益曲线',\n 'sv.screener.run': '运行选股',\n 'sv.screener.stop': '停止',\n 'sv.screener.scanLimit': '扫描池上限',\n 'sv.screener.universePrefix': '标的名册',\n 'sv.screener.scanned': '已扫描',\n 'sv.screener.hits': '命中',\n 'sv.screener.failed': '失败',\n 'sv.screener.noUniverse': '当前数据源未提供标的全集,选股功能不可用(Binance/OKX 等提供名册的连接器可用)',\n 'sv.screener.noHits': '扫描完成:没有标的满足当前条件',\n 'sv.screener.scanning': '扫描中,命中将实时出现在下方...',\n 'sv.screener.emptyHint': '选择上方选股器与参数后,点击「运行选股」扫描全市场标的',\n 'sv.screener.col.symbol': '代码',\n 'sv.screener.col.name': '名称',\n 'sv.screener.col.price': '现价',\n 'sv.screener.col.reason': '信号说明',\n 'sv.author.failed': '策略校验未通过',\n 'sv.mgmt.new': '新建策略',\n 'sv.mgmt.edit': '编辑',\n 'sv.mgmt.delete': '删除',\n 'sv.mgmt.restore': '恢复默认',\n 'sv.mgmt.deleted': '已删除',\n 'sv.mgmt.badge.builtin': '内置',\n 'sv.mgmt.badge.modified': '已修改',\n 'sv.mgmt.badge.custom': '自定义',\n 'sv.mgmt.confirmDelete': '确定删除该策略?内置策略删除后可「恢复默认」找回出厂代码;你对内置策略的修改和自定义策略的删除不可恢复。',\n 'sv.mgmt.confirmOverride': '该 ID 与内置策略同名,保存将覆盖内置策略(可随时恢复出厂代码;本次修改保存后删除/恢复将不可找回)。继续?',\n 'sv.mgmt.confirmRestore': '恢复出厂将清除该内置策略的全部修改(不可恢复),出厂代码会找回。继续?',\n 'sv.mgmt.editorTitle': '策略编辑器',\n 'sv.mgmt.field.id': 'ID',\n 'sv.mgmt.field.title': '名称',\n 'sv.mgmt.field.horizon': '期限',\n 'sv.mgmt.field.summary': '一句话思路',\n 'sv.mgmt.field.params': '参数规格',\n 'sv.mgmt.field.source': '策略源码 compute(bars, params)',\n 'sv.mgmt.fieldRequired': '必填字段缺失或数值非法',\n 'sv.mgmt.param.key': '键',\n 'sv.mgmt.param.label': '名称',\n 'sv.mgmt.param.default': '默认',\n 'sv.mgmt.param.min': '最小',\n 'sv.mgmt.param.max': '最大',\n 'sv.mgmt.param.step': '步进',\n 'sv.mgmt.addParam': '添加参数',\n 'sv.mgmt.removeParam': '移除',\n 'sv.mgmt.validate': '校验',\n 'sv.mgmt.validating': '计算中…',\n 'sv.mgmt.validationOk': '校验通过:5 场景试算 + 信号序列可复算',\n 'sv.mgmt.save': '保存',\n 'sv.mgmt.cancel': '取消',\n 'sv.mgmt.saveFailed': '保存失败',\n 'sv.mgmt.rosterEmpty': '名册为空:全部内置策略已删除且无自定义策略,可新建策略或恢复内置默认',\n 'sv.mgmt.newScreener': '新建选股器',\n 'sv.mgmt.editorTitleScreener': '选股器编辑器',\n 'sv.mgmt.field.columns': '结果列',\n 'sv.mgmt.field.evaluate': '选股器源码 evaluate(bars, params)',\n 'sv.mgmt.column.format': '格式',\n 'sv.mgmt.addColumn': '添加列',\n 'sv.mgmt.confirmOverrideScreener': '该 ID 与内置选股器同名,保存将覆盖内置选股器(可随时恢复出厂代码;本次修改保存后删除/恢复将不可找回)。继续?',\n 'sv.mgmt.validationOkScreener': '校验通过:5 场景试算,命中形状合法',\n 'sv.screener.rosterEmpty': '选股器名册为空:全部内置选股器已删除且无自定义选股器,可新建或恢复内置默认',\n 'strat.donchian-breakout': \"唐奇安通道突破\",\n 'strat.donchian-breakout.summary': \"收盘价突破前 N1 根最高价做多,跌破前 N2 根最低价离场(海龟经典简化版)\",\n 'strat.donchian-breakout.param.lookbackEntry': \"突破周期 (N1)\",\n 'strat.donchian-breakout.param.lookbackExit': \"离场周期 (N2)\",\n 'strat.donchian-breakout.reason.entry': \"收盘价 ({close}) 突破前 {n} 根最高价 ({high})\",\n 'strat.donchian-breakout.reason.exit': \"收盘价 ({close}) 跌破前 {n} 根最低价 ({low})\",\n 'strat.rsi-reversion': \"RSI 短线极值回归\",\n 'strat.rsi-reversion.summary': \"短周期 RSI(2) 进入极端超卖区抄底,快速反弹后止盈(经典均值回归)\",\n 'strat.rsi-reversion.param.rsiPeriod': \"RSI 周期\",\n 'strat.rsi-reversion.param.entryThreshold': \"入场超卖阈值\",\n 'strat.rsi-reversion.param.exitThreshold': \"出场止盈阈值\",\n 'strat.rsi-reversion.reason.entry': \"RSI({period}) 达到极端超卖值 ({val} < {thresh}),触发反弹买入\",\n 'strat.rsi-reversion.reason.exit': \"RSI({period}) 回升至目标位 ({val} > {thresh}),止盈离场\",\n 'strat.ema-crossover': \"EMA 双均线趋势跟踪\",\n 'strat.ema-crossover.summary': \"快线 EMA 上穿慢线 EMA 金叉做多,死叉平仓(经典中线波段趋势策略)\",\n 'strat.ema-crossover.param.fastPeriod': \"快线周期 (Fast)\",\n 'strat.ema-crossover.param.slowPeriod': \"慢线周期 (Slow)\",\n 'strat.ema-crossover.reason.entry': \"EMA({fastP}) ({fast}) 上穿 EMA({slowP}) ({slow}) 形成金叉\",\n 'strat.ema-crossover.reason.exit': \"EMA({fastP}) ({fast}) 下穿 EMA({slowP}) ({slow}) 形成死叉\",\n 'strat.bollinger-reversion': \"布林带下轨均值回归\",\n 'strat.bollinger-reversion.summary': \"价格跌破布林线下轨时介入抄底,反弹至中轨(基准均线)时平仓(波段通道回归)\",\n 'strat.bollinger-reversion.param.period': \"布林周期\",\n 'strat.bollinger-reversion.param.multiplier': \"标准差倍数 (k)\",\n 'strat.bollinger-reversion.reason.entry': \"收盘价 ({close}) 跌破布林下轨 ({band}),触发波段均值回归\",\n 'strat.bollinger-reversion.reason.exit': \"收盘价 ({close}) 成功回归至布林中轨 ({mid}),完成目标止盈\",\n 'strat.sma-baseline': \"200 日均线牛熊择时基线\",\n 'strat.sma-baseline.summary': \"收盘价站上 SMA200 均线做多,跌破均线空仓避险(长线资产配置经典基线)\",\n 'strat.sma-baseline.param.period': \"长期均线周期\",\n 'strat.sma-baseline.reason.entry': \"收盘价 ({close}) 站上长期基线 SMA({period}) ({sma}),确立多头趋势\",\n 'strat.sma-baseline.reason.exit': \"收盘价 ({close}) 跌破长期基线 SMA({period}) ({sma}),转入防御避险\",\n 'strat.momentum-12m': \"12 个月动量择时\",\n 'strat.momentum-12m.summary': \"近 12 个月动量为正且站上年线做多,动量转负或破位离场(低换手长线动量)\",\n 'strat.momentum-12m.param.lookbackBars': \"动量回溯周期 (K线)\",\n 'strat.momentum-12m.reason.entry': \"近 {n} 周期动量为正 (+{pct}%) 且位于均线 ({sma}) 之上,确认强动量\",\n 'strat.momentum-12m.reason.exit': \"{cause} ({pct}% / SMA {sma}),动量衰减平仓\",\n 'scr.ma-bull-align': \"均线多头排列\",\n 'scr.ma-bull-align.summary': \"现价站上三线且 SMA(短) > SMA(中) > SMA(长),筛选趋势结构完整的标的\",\n 'scr.ma-bull-align.param.n1': \"短期均线\",\n 'scr.ma-bull-align.param.n2': \"中期均线\",\n 'scr.ma-bull-align.param.n3': \"长期均线\",\n 'scr.ma-bull-align.col.distLongPct': \"距长期均线\",\n 'scr.ma-bull-align.reason': \"现价站上三线且 SMA({n1}) > SMA({n2}) > SMA({n3}),多头排列\",\n 'scr.volume-breakout': \"放量突破\",\n 'scr.volume-breakout.summary': \"收盘价创 N 日新高且成交量 ≥ 均量 M 倍,量价配合的突破筛选\",\n 'scr.volume-breakout.param.lookback': \"突破窗口(日)\",\n 'scr.volume-breakout.param.volMultiple': \"量能倍数\",\n 'scr.volume-breakout.col.volRatio': \"量比(倍)\",\n 'scr.volume-breakout.col.breakoutPct': \"突破幅度\",\n 'scr.volume-breakout.reason': \"放量 {ratio} 倍突破 {n} 日高点\",\n 'scr.rsi-oversold': \"RSI 超卖\",\n 'scr.rsi-oversold.summary': \"RSI 跌入超卖区(默认 <30),筛选值得盯的反转候选(逆势信号)\",\n 'scr.rsi-oversold.param.period': \"RSI 周期\",\n 'scr.rsi-oversold.param.threshold': \"超卖阈值\",\n 'scr.rsi-oversold.col.rsi': \"RSI\",\n 'scr.rsi-oversold.reason': \"RSI({period}) = {val},进入超卖区(逆势信号)\",\n 'scr.near-high': \"接近一年新高\",\n 'scr.near-high.summary': \"现价距 N 日最高价不超过 X%,强势整理/突破前夜的动量筛选\",\n 'scr.near-high.param.window': \"窗口(日)\",\n 'scr.near-high.param.withinPct': \"接近阈值(%)\",\n 'scr.near-high.col.offHighPct': \"距高点\",\n 'scr.near-high.reason': \"距 {n} 日高点仅 {pct}%,处于突破前夜\",\n 'scr.above-ma': \"站上牛熊线\",\n 'scr.above-ma.summary': \"现价站上长期均线且均线斜率向上,筛选长线多头环境的标的\",\n 'scr.above-ma.param.period': \"牛熊线周期\",\n 'scr.above-ma.param.slopeBars': \"斜率窗口(日)\",\n 'scr.above-ma.col.aboveMaPct': \"高于均线\",\n 'scr.above-ma.col.maSlopePct': \"均线斜率\",\n 'scr.above-ma.reason': \"现价高于 SMA({period}) {above}%,均线 {slope} 日斜率 +{slopePct}%\",\n 'strat.momentum-12m.cause.momentumNegative': \"动量转为负值\",\n 'strat.momentum-12m.cause.belowBaseline': \"跌破基准均线\",\n}\n\nexport const en: Record<StrategyLocaleKey, string> = {\n 'sv.section.screener': 'Screener',\n 'sv.section.quant': 'Quantitative',\n 'sv.horizon.short': 'Short-term',\n 'sv.horizon.swing': 'Swing',\n 'sv.horizon.long': 'Long-term',\n 'sv.run': 'Run Backtest',\n 'sv.running': 'Running...',\n 'sv.symbolLabel': 'Symbol & Interval:',\n 'sv.intervalDaily': '(Daily)',\n 'sv.error.noKlines': 'Failed to fetch klines for this symbol, cannot run backtest',\n 'sv.error.failed': 'Strategy compute error',\n 'sv.metrics.totalReturn': 'Total Return',\n 'sv.metrics.cagr': 'CAGR',\n 'sv.metrics.maxDrawdown': 'Max Drawdown',\n 'sv.metrics.sharpe': 'Sharpe Ratio',\n 'sv.metrics.winRate': 'Win Rate',\n 'sv.metrics.profitFactor': 'Profit Factor',\n 'sv.metrics.tradeCount': 'Trades',\n 'sv.metrics.tradeUnit': 'trades',\n 'sv.metrics.exposure': 'Market Exposure',\n 'sv.trades.title': 'Trade Log',\n 'sv.trades.empty': 'No trades generated in the backtest period',\n 'sv.trades.entryTime': 'Entry Time',\n 'sv.trades.exitTime': 'Exit Time',\n 'sv.trades.entryPrice': 'Entry Price',\n 'sv.trades.exitPrice': 'Exit Price',\n 'sv.trades.holdingBars': 'Holding Bars',\n 'sv.trades.netReturn': 'Net Return',\n 'sv.trades.exitReason': 'Exit Reason',\n 'sv.empty.hint': 'Select a strategy and parameters above, then click \"Run Backtest\"',\n 'sv.screener.run': 'Scan',\n 'sv.screener.stop': 'Stop',\n 'sv.screener.scanLimit': 'Scan Cap',\n 'sv.screener.universePrefix': 'Universe',\n 'sv.screener.scanned': 'Scanned',\n 'sv.screener.hits': 'Hits',\n 'sv.screener.failed': 'Failed',\n 'sv.screener.noUniverse': 'This data source does not provide a symbol universe; screening is unavailable (connectors like Binance/OKX do)',\n 'sv.screener.noHits': 'Scan finished: no symbols match the current criteria',\n 'sv.screener.scanning': 'Scanning, hits appear below in real time...',\n 'sv.screener.emptyHint': 'Pick a screener and parameters above, then click \"Scan\" to screen the market',\n 'sv.screener.col.symbol': 'Symbol',\n 'sv.screener.col.name': 'Name',\n 'sv.screener.col.price': 'Price',\n 'sv.screener.col.reason': 'Signal',\n 'sv.author.failed': 'Validation failed',\n 'sv.mgmt.new': 'New Strategy',\n 'sv.mgmt.edit': 'Edit',\n 'sv.mgmt.delete': 'Delete',\n 'sv.mgmt.restore': 'Restore',\n 'sv.mgmt.deleted': 'Deleted',\n 'sv.mgmt.badge.builtin': 'Built-in',\n 'sv.mgmt.badge.modified': 'Modified',\n 'sv.mgmt.badge.custom': 'Custom',\n 'sv.mgmt.confirmDelete': 'Delete this strategy? Deleted built-ins can be restored to factory code via \"Restore\"; your modifications to a built-in and deleted custom strategies cannot be recovered.',\n 'sv.mgmt.confirmOverride': 'This ID collides with a built-in strategy. Saving will override it (factory code stays restorable; once saved, this modification is unrecoverable on delete/restore). Continue?',\n 'sv.mgmt.confirmRestore': 'Restoring factory default will permanently discard all modifications to this built-in strategy (unrecoverable). The factory code will be restored. Continue?',\n 'sv.mgmt.editorTitle': 'Strategy Editor',\n 'sv.mgmt.field.id': 'ID',\n 'sv.mgmt.field.title': 'Title',\n 'sv.mgmt.field.horizon': 'Horizon',\n 'sv.mgmt.field.summary': 'Summary',\n 'sv.mgmt.field.params': 'Parameters',\n 'sv.mgmt.field.source': 'Strategy source compute(bars, params)',\n 'sv.mgmt.fieldRequired': 'Required field missing or invalid number',\n 'sv.mgmt.param.key': 'Key',\n 'sv.mgmt.param.label': 'Label',\n 'sv.mgmt.param.default': 'Default',\n 'sv.mgmt.param.min': 'Min',\n 'sv.mgmt.param.max': 'Max',\n 'sv.mgmt.param.step': 'Step',\n 'sv.mgmt.addParam': 'Add Parameter',\n 'sv.mgmt.removeParam': 'Remove',\n 'sv.mgmt.validate': 'Validate',\n 'sv.mgmt.validating': 'Computing…',\n 'sv.mgmt.validationOk': 'Validation passed: 5 scenarios + replayable signal sequence',\n 'sv.mgmt.save': 'Save',\n 'sv.mgmt.cancel': 'Cancel',\n 'sv.mgmt.saveFailed': 'Save failed',\n 'sv.mgmt.rosterEmpty': 'Roster is empty: all built-in strategies deleted and no custom strategies. Create one or restore built-ins.',\n 'sv.mgmt.newScreener': 'New Screener',\n 'sv.mgmt.editorTitleScreener': 'Screener Editor',\n 'sv.mgmt.field.columns': 'Columns',\n 'sv.mgmt.field.evaluate': 'Screener source evaluate(bars, params)',\n 'sv.mgmt.column.format': 'Format',\n 'sv.mgmt.addColumn': 'Add Column',\n 'sv.mgmt.confirmOverrideScreener': 'This ID collides with a built-in screener. Saving will override it (factory code stays restorable; once saved, this modification is unrecoverable on delete/restore). Continue?',\n 'sv.mgmt.validationOkScreener': 'Validation passed: 5 scenarios, match shape valid',\n 'sv.screener.rosterEmpty': 'Screener roster is empty: all built-ins deleted and no custom screeners. Create one or restore built-ins.',\n 'strat.donchian-breakout': \"Donchian breakout\",\n 'strat.donchian-breakout.summary': \"Go long when close breaks the N1-bar high; exit below the N2-bar low (classic turtle, simplified)\",\n 'strat.donchian-breakout.param.lookbackEntry': \"Breakout lookback (N1)\",\n 'strat.donchian-breakout.param.lookbackExit': \"Exit lookback (N2)\",\n 'strat.donchian-breakout.reason.entry': \"Close ({close}) breaks the {n}-bar high ({high})\",\n 'strat.donchian-breakout.reason.exit': \"Close ({close}) falls below the {n}-bar low ({low})\",\n 'strat.rsi-reversion': \"RSI short-term reversion\",\n 'strat.rsi-reversion.summary': \"Buy when short-period RSI(2) reaches extreme oversold; take profit on the quick bounce (classic mean reversion)\",\n 'strat.rsi-reversion.param.rsiPeriod': \"RSI period\",\n 'strat.rsi-reversion.param.entryThreshold': \"Entry oversold threshold\",\n 'strat.rsi-reversion.param.exitThreshold': \"Exit take-profit threshold\",\n 'strat.rsi-reversion.reason.entry': \"RSI({period}) at extreme oversold ({val} < {thresh}); bounce buy\",\n 'strat.rsi-reversion.reason.exit': \"RSI({period}) recovered to target ({val} > {thresh}); take profit\",\n 'strat.ema-crossover': \"EMA dual-MA trend following\",\n 'strat.ema-crossover.summary': \"Long on fast-EMA/slow-EMA golden cross, flat on death cross (classic swing trend strategy)\",\n 'strat.ema-crossover.param.fastPeriod': \"Fast period\",\n 'strat.ema-crossover.param.slowPeriod': \"Slow period\",\n 'strat.ema-crossover.reason.entry': \"EMA({fastP}) ({fast}) crosses above EMA({slowP}) ({slow}) — golden cross\",\n 'strat.ema-crossover.reason.exit': \"EMA({fastP}) ({fast}) crosses below EMA({slowP}) ({slow}) — death cross\",\n 'strat.bollinger-reversion': \"Bollinger lower-band reversion\",\n 'strat.bollinger-reversion.summary': \"Buy when price pierces the lower band; exit at the middle band (swing channel reversion)\",\n 'strat.bollinger-reversion.param.period': \"Bollinger period\",\n 'strat.bollinger-reversion.param.multiplier': \"Std-dev multiple (k)\",\n 'strat.bollinger-reversion.reason.entry': \"Close ({close}) pierces the lower band ({band}); swing reversion entry\",\n 'strat.bollinger-reversion.reason.exit': \"Close ({close}) reverted to the middle band ({mid}); target profit taken\",\n 'strat.sma-baseline': \"200-day SMA bull/bear baseline\",\n 'strat.sma-baseline.summary': \"Long above SMA200, in cash below it (classic long-term allocation baseline)\",\n 'strat.sma-baseline.param.period': \"Long MA period\",\n 'strat.sma-baseline.reason.entry': \"Close ({close}) above the long baseline SMA({period}) ({sma}); bull trend established\",\n 'strat.sma-baseline.reason.exit': \"Close ({close}) below the long baseline SMA({period}) ({sma}); defensive exit\",\n 'strat.momentum-12m': \"12-month momentum timing\",\n 'strat.momentum-12m.summary': \"Long when 12-month momentum is positive and price is above the yearly MA; exit on momentum decay (low-turnover long momentum)\",\n 'strat.momentum-12m.param.lookbackBars': \"Momentum lookback (bars)\",\n 'strat.momentum-12m.reason.entry': \"Positive {n}-bar momentum (+{pct}%) with price above the MA ({sma}); strong momentum confirmed\",\n 'strat.momentum-12m.reason.exit': \"{cause} ({pct}% / SMA {sma}); momentum-decay exit\",\n 'scr.ma-bull-align': \"MA bull alignment\",\n 'scr.ma-bull-align.summary': \"Price above all three MAs with SMA(short) > SMA(mid) > SMA(long); screens intact uptrends\",\n 'scr.ma-bull-align.param.n1': \"Short MA\",\n 'scr.ma-bull-align.param.n2': \"Mid MA\",\n 'scr.ma-bull-align.param.n3': \"Long MA\",\n 'scr.ma-bull-align.col.distLongPct': \"Distance to long MA\",\n 'scr.ma-bull-align.reason': \"Price above all three MAs, SMA({n1}) > SMA({n2}) > SMA({n3}) — bull alignment\",\n 'scr.volume-breakout': \"Volume breakout\",\n 'scr.volume-breakout.summary': \"Close at an N-bar high with volume ≥ M× average; volume-confirmed breakouts\",\n 'scr.volume-breakout.param.lookback': \"Breakout window (bars)\",\n 'scr.volume-breakout.param.volMultiple': \"Volume multiple\",\n 'scr.volume-breakout.col.volRatio': \"Volume ratio (x)\",\n 'scr.volume-breakout.col.breakoutPct': \"Breakout magnitude\",\n 'scr.volume-breakout.reason': \"{ratio}x volume breakout of the {n}-bar high\",\n 'scr.rsi-oversold': \"RSI oversold\",\n 'scr.rsi-oversold.summary': \"RSI in oversold territory (default <30); reversal candidates to watch (contrarian)\",\n 'scr.rsi-oversold.param.period': \"RSI period\",\n 'scr.rsi-oversold.param.threshold': \"Oversold threshold\",\n 'scr.rsi-oversold.col.rsi': \"RSI\",\n 'scr.rsi-oversold.reason': \"RSI({period}) = {val}; oversold (contrarian)\",\n 'scr.near-high': \"Near 52-week high\",\n 'scr.near-high.summary': \"Price within X% of the N-bar high; consolidation / pre-breakout momentum\",\n 'scr.near-high.param.window': \"Window (bars)\",\n 'scr.near-high.param.withinPct': \"Proximity threshold (%)\",\n 'scr.near-high.col.offHighPct': \"Off high\",\n 'scr.near-high.reason': \"Within {pct}% of the {n}-bar high; pre-breakout\",\n 'scr.above-ma': \"Above bull/bear line\",\n 'scr.above-ma.summary': \"Price above the long MA with rising slope; screens long-term bull regimes\",\n 'scr.above-ma.param.period': \"Bull/bear MA period\",\n 'scr.above-ma.param.slopeBars': \"Slope window (bars)\",\n 'scr.above-ma.col.aboveMaPct': \"Above MA\",\n 'scr.above-ma.col.maSlopePct': \"MA slope\",\n 'scr.above-ma.reason': \"Price {above}% above SMA({period}); {slope}-bar slope +{slopePct}%\",\n 'strat.momentum-12m.cause.momentumNegative': \"momentum turned negative\",\n 'strat.momentum-12m.cause.belowBaseline': \"fell below the baseline MA\",\n}\n","/**\n * client-ui-strategies, browser half (issue #34 / P5 拆包).\n *\n * 接入面(一切皆插件):ctx.inject(['tradingStageViews']) 把「策略」视图注册进\n * 中栏注册表;桥与 SSE 经 tradingBridge 服务(shell 提供)inject 进视图 props。\n * shell 未安装时两个 inject 回调都不触发,本插件静默无 UI(可选依赖语义)。\n *\n * 额外注册 tool.call.toolview keyed slot(key = strategy_backtest / strategy_author):\n * 对话内富卡片——回测 8 指标 mini 卡 + 权益曲线 sparkline;author 校验结果摘要。\n */\nimport type { Context as ClientContext } from '@deepseek-ai/cordis'\nimport type { ComponentType } from 'react'\nimport type { ToolCallOwnerProps } from '@deepseek-ai/dsh-client-ui-tool/client'\nimport { StrategyView } from './StrategyView.tsx'\nimport { StrategyBacktestCard, StrategyAuthorCard } from './toolview.tsx'\nimport type { StrategyEditorSaveInput } from './StrategyEditor.tsx'\nimport type { ScreenerEditorSaveInput } from './ScreenerEditor.tsx'\nimport './contract.ts'\n\nimport { en, zh } from './locales.ts'\nconst NS = 'dshtrading.strategies'\n\n/** Required services:slot/locale 官方服务 + 视图注册面 + 桥面(后两者由\n * client-ui-trading client 半 provide;本插件 apply 同步访问 ctx.locale/ctx.slots,\n * 故必须声明;tradingStageViews/tradingBridge 在 apply 内 ctx.inject 异步等待,\n * 不进静态名单——shell 未安装时挂起无害,可选依赖语义)。 */\nexport const inject = ['slots', 'locale']\n\n/** tradingStageViews / tradingBridge 的最小结构面(避免对 shell 包类型依赖)。 */\ninterface StageViewsService {\n register(definition: {\n id: string\n titleKey: string\n order?: number\n render: ComponentType<{ t: (key: string) => string; view: string }>\n }): void\n}\ninterface BridgeService {\n fetchKlines(market: string, symbol: string, interval: string, limit: number): Promise<unknown[]>\n fetchCustomStrategies(): Promise<Array<Record<string, unknown>>>\n fetchSymbols(market: string): Promise<Array<{ symbol: string; name?: string }>>\n subscribeTradingEvents(handlers: Record<string, () => void>): () => void\n // 策略管理面(2026-09-07;老 shell 缺席 → 视图管理动作降级隐藏)。\n saveCustomStrategy?(input: StrategyEditorSaveInput): Promise<{ ok: true } | { ok: false; reason: string } | null>\n deleteCustomStrategy?(id: string): Promise<boolean>\n resetStrategy?(id: string): Promise<{ ok: boolean; changed: boolean } | null>\n fetchStrategyTombstones?(): Promise<string[]>\n // 选股器管理面(选股器管理;老 shell 缺席 → ScreenerPane 管理动作降级隐藏)。\n fetchCustomScreeners?(): Promise<Array<Record<string, unknown>>>\n saveCustomScreener?(input: ScreenerEditorSaveInput): Promise<{ ok: true } | { ok: false; reason: string } | null>\n deleteCustomScreener?(id: string): Promise<boolean>\n resetScreener?(id: string): Promise<{ ok: boolean; changed: boolean } | null>\n}\n\nexport function apply(ctx: ClientContext): void {\n const t = ctx.locale.bind(NS)\n ctx.effect(() => ctx.locale.register(NS, { zh, en }), 'dsh-trading-strategies-view: dictionaries')\n\n // 中栏「策略」tab:视图组件在 render 闭包里捕获 t 与桥(服务就绪后注册,\n // 依赖时序由 cordis inject 解析保证)。\n // bridge/t 必须 apply 期只建一次(引用稳定):render 闭包里每次新建字面量会让\n // 视图 useEffect([bridge]) 自激振荡——每帧重拉数据(2026-09-01 实证 fetch 风暴)。\n ctx.inject(['tradingStageViews', 'tradingBridge'] as never, (scope) => {\n const faces = scope as unknown as { tradingStageViews: StageViewsService; tradingBridge: BridgeService }\n const bridge = {\n fetchKlines: (market, symbol, interval, limit) =>\n faces.tradingBridge.fetchKlines(market, symbol, interval, limit) as never,\n fetchCustomStrategies: () =>\n faces.tradingBridge.fetchCustomStrategies() as never,\n fetchSymbols: (market) =>\n faces.tradingBridge.fetchSymbols(market) as never,\n subscribeTradingEvents: (handlers) => faces.tradingBridge.subscribeTradingEvents(handlers),\n // 管理面透传(可选:老 shell 缺席时方法为 undefined,视图据此降级)。\n saveCustomStrategy: faces.tradingBridge.saveCustomStrategy?.bind(faces.tradingBridge),\n deleteCustomStrategy: faces.tradingBridge.deleteCustomStrategy?.bind(faces.tradingBridge),\n resetStrategy: faces.tradingBridge.resetStrategy?.bind(faces.tradingBridge),\n fetchStrategyTombstones: faces.tradingBridge.fetchStrategyTombstones?.bind(faces.tradingBridge),\n // 选股器管理面透传。\n fetchCustomScreeners: faces.tradingBridge.fetchCustomScreeners?.bind(faces.tradingBridge),\n saveCustomScreener: faces.tradingBridge.saveCustomScreener?.bind(faces.tradingBridge),\n deleteCustomScreener: faces.tradingBridge.deleteCustomScreener?.bind(faces.tradingBridge),\n resetScreener: faces.tradingBridge.resetScreener?.bind(faces.tradingBridge),\n }\n faces.tradingStageViews.register({\n id: 'strategy',\n titleKey: 'stage.strategy',\n order: 10,\n render: (props) => StrategyView({\n // shell 词典的 stage.tab 文案由宿主 t(dshtrading.market)渲染——这里\n // 只收本包词典;tab 条的 t 由 MiddleStage 自己出。视图内 t 走本包 NS。\n t: t as unknown as (key: string) => string,\n view: props.view,\n bridge,\n }),\n })\n })\n\n // 对话内富卡片(§5.5):strategy_backtest 权益曲线 + 8 指标 mini 卡;\n // strategy_author 校验结果 + 参数摘要。keyed slot,key = 工具名。\n ctx.slots.inject('tool.call.toolview', () => ctx.slots.register({\n name: 'tool.call.toolview',\n key: 'strategy_backtest',\n locale: NS,\n }, StrategyBacktestCard as unknown as ComponentType<ToolCallOwnerProps & { t: (key: string) => string }>))\n ctx.slots.inject('tool.call.toolview', () => ctx.slots.register({\n name: 'tool.call.toolview',\n key: 'strategy_author',\n locale: NS,\n }, StrategyAuthorCard as unknown as ComponentType<ToolCallOwnerProps & { t: (key: string) => string }>))\n}\n"],"x_google_ignoreList":[0,1,2,3,4],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"client.js","names":["createDevicePixelRatioObservable","en","t","i","n","s","HORIZONS","rowsFromParamsJson","useState","useMemo","css","DEFAULT_STORED","useState","useRef","useMemo","css","useState","useMemo","css","useState","useRef","useMemo","createChart","ColorType","AreaSeries","css","css"],"sources":["../../../node_modules/.pnpm/fancy-canvas@2.1.0/node_modules/fancy-canvas/size.mjs","../../../node_modules/.pnpm/fancy-canvas@2.1.0/node_modules/fancy-canvas/device-pixel-ratio.mjs","../../../node_modules/.pnpm/fancy-canvas@2.1.0/node_modules/fancy-canvas/canvas-element-bitmap-size.mjs","../../../node_modules/.pnpm/fancy-canvas@2.1.0/node_modules/fancy-canvas/canvas-rendering-target.mjs","../../../node_modules/.pnpm/lightweight-charts@5.2.1/node_modules/lightweight-charts/dist/lightweight-charts.production.mjs","../../strategies/lib/engine.js","../../strategies/lib/price-format.js","../../indicators/lib/validate.js","../../strategies/lib/validate.js","../../strategies/lib/paradigms/donchian-breakout.js","../../strategies/lib/paradigms/rsi-reversion.js","../../strategies/lib/paradigms/ema-crossover.js","../../strategies/lib/paradigms/bollinger-reversion.js","../../strategies/lib/paradigms/sma-baseline.js","../../strategies/lib/paradigms/momentum-12m.js","../../strategies/lib/paradigms/index.js","../../strategies/lib/screeners/ma-bull-align.js","../../strategies/lib/screeners/volume-breakout.js","../../strategies/lib/screeners/rsi-oversold.js","../../strategies/lib/screeners/near-high.js","../../strategies/lib/screeners/above-ma.js","../../strategies/lib/screeners/index.js","../../strategies/lib/management.js","../src/client/shell-faces.ts","../src/client/icons.tsx","../src/client/strategy-locale.ts","../src/client/ScreenerEditor.tsx","../src/client/ScreenerPane.tsx","../src/client/StrategyEditor.tsx","../src/client/StrategyView.tsx","../src/client/toolview-parse.ts","../src/client/toolview.tsx","../src/client/locales.ts","../src/client/index.ts"],"sourcesContent":["export function size(_a) {\n var width = _a.width, height = _a.height;\n if (width < 0) {\n throw new Error('Negative width is not allowed for Size');\n }\n if (height < 0) {\n throw new Error('Negative height is not allowed for Size');\n }\n return {\n width: width,\n height: height,\n };\n}\nexport function equalSizes(first, second) {\n return (first.width === second.width) &&\n (first.height === second.height);\n}\n","var Observable = /** @class */ (function () {\n function Observable(win) {\n var _this = this;\n this._resolutionListener = function () { return _this._onResolutionChanged(); };\n this._resolutionMediaQueryList = null;\n this._observers = [];\n this._window = win;\n this._installResolutionListener();\n }\n Observable.prototype.dispose = function () {\n this._uninstallResolutionListener();\n this._window = null;\n };\n Object.defineProperty(Observable.prototype, \"value\", {\n get: function () {\n return this._window.devicePixelRatio;\n },\n enumerable: false,\n configurable: true\n });\n Observable.prototype.subscribe = function (next) {\n var _this = this;\n var observer = { next: next };\n this._observers.push(observer);\n return {\n unsubscribe: function () {\n _this._observers = _this._observers.filter(function (o) { return o !== observer; });\n },\n };\n };\n Observable.prototype._installResolutionListener = function () {\n if (this._resolutionMediaQueryList !== null) {\n throw new Error('Resolution listener is already installed');\n }\n var dppx = this._window.devicePixelRatio;\n this._resolutionMediaQueryList = this._window.matchMedia(\"all and (resolution: \".concat(dppx, \"dppx)\"));\n // IE and some versions of Edge do not support addEventListener/removeEventListener, and we are going to use the deprecated addListener/removeListener\n this._resolutionMediaQueryList.addListener(this._resolutionListener);\n };\n Observable.prototype._uninstallResolutionListener = function () {\n if (this._resolutionMediaQueryList !== null) {\n // IE and some versions of Edge do not support addEventListener/removeEventListener, and we are going to use the deprecated addListener/removeListener\n this._resolutionMediaQueryList.removeListener(this._resolutionListener);\n this._resolutionMediaQueryList = null;\n }\n };\n Observable.prototype._reinstallResolutionListener = function () {\n this._uninstallResolutionListener();\n this._installResolutionListener();\n };\n Observable.prototype._onResolutionChanged = function () {\n var _this = this;\n this._observers.forEach(function (observer) { return observer.next(_this._window.devicePixelRatio); });\n this._reinstallResolutionListener();\n };\n return Observable;\n}());\nexport function createObservable(win) {\n return new Observable(win);\n}\n","import { equalSizes, size } from \"./size.mjs\";\nimport { createObservable as createDevicePixelRatioObservable } from \"./device-pixel-ratio.mjs\";\nvar DevicePixelContentBoxBinding = /** @class */ (function () {\n function DevicePixelContentBoxBinding(canvasElement, transformBitmapSize, options) {\n var _a;\n this._canvasElement = null;\n this._bitmapSizeChangedListeners = [];\n this._suggestedBitmapSize = null;\n this._suggestedBitmapSizeChangedListeners = [];\n // devicePixelRatio approach\n this._devicePixelRatioObservable = null;\n // ResizeObserver approach\n this._canvasElementResizeObserver = null;\n this._canvasElement = canvasElement;\n this._canvasElementClientSize = size({\n width: this._canvasElement.clientWidth,\n height: this._canvasElement.clientHeight,\n });\n this._transformBitmapSize = transformBitmapSize !== null && transformBitmapSize !== void 0 ? transformBitmapSize : (function (size) { return size; });\n this._allowResizeObserver = (_a = options === null || options === void 0 ? void 0 : options.allowResizeObserver) !== null && _a !== void 0 ? _a : true;\n this._chooseAndInitObserver();\n // we MAY leave the constuctor without any bitmap size observation mechanics initialized\n }\n DevicePixelContentBoxBinding.prototype.dispose = function () {\n var _a, _b;\n if (this._canvasElement === null) {\n throw new Error('Object is disposed');\n }\n (_a = this._canvasElementResizeObserver) === null || _a === void 0 ? void 0 : _a.disconnect();\n this._canvasElementResizeObserver = null;\n (_b = this._devicePixelRatioObservable) === null || _b === void 0 ? void 0 : _b.dispose();\n this._devicePixelRatioObservable = null;\n this._suggestedBitmapSizeChangedListeners.length = 0;\n this._bitmapSizeChangedListeners.length = 0;\n this._canvasElement = null;\n };\n Object.defineProperty(DevicePixelContentBoxBinding.prototype, \"canvasElement\", {\n get: function () {\n if (this._canvasElement === null) {\n throw new Error('Object is disposed');\n }\n return this._canvasElement;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(DevicePixelContentBoxBinding.prototype, \"canvasElementClientSize\", {\n get: function () {\n return this._canvasElementClientSize;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(DevicePixelContentBoxBinding.prototype, \"bitmapSize\", {\n get: function () {\n return size({\n width: this.canvasElement.width,\n height: this.canvasElement.height,\n });\n },\n enumerable: false,\n configurable: true\n });\n /**\n * Use this function to change canvas element client size until binding is disposed\n * @param clientSize New client size for bound HTMLCanvasElement\n */\n DevicePixelContentBoxBinding.prototype.resizeCanvasElement = function (clientSize) {\n this._canvasElementClientSize = size(clientSize);\n this.canvasElement.style.width = \"\".concat(this._canvasElementClientSize.width, \"px\");\n this.canvasElement.style.height = \"\".concat(this._canvasElementClientSize.height, \"px\");\n this._invalidateBitmapSize();\n };\n DevicePixelContentBoxBinding.prototype.subscribeBitmapSizeChanged = function (listener) {\n this._bitmapSizeChangedListeners.push(listener);\n };\n DevicePixelContentBoxBinding.prototype.unsubscribeBitmapSizeChanged = function (listener) {\n this._bitmapSizeChangedListeners = this._bitmapSizeChangedListeners.filter(function (l) { return l !== listener; });\n };\n Object.defineProperty(DevicePixelContentBoxBinding.prototype, \"suggestedBitmapSize\", {\n get: function () {\n return this._suggestedBitmapSize;\n },\n enumerable: false,\n configurable: true\n });\n DevicePixelContentBoxBinding.prototype.subscribeSuggestedBitmapSizeChanged = function (listener) {\n this._suggestedBitmapSizeChangedListeners.push(listener);\n };\n DevicePixelContentBoxBinding.prototype.unsubscribeSuggestedBitmapSizeChanged = function (listener) {\n this._suggestedBitmapSizeChangedListeners = this._suggestedBitmapSizeChangedListeners.filter(function (l) { return l !== listener; });\n };\n DevicePixelContentBoxBinding.prototype.applySuggestedBitmapSize = function () {\n if (this._suggestedBitmapSize === null) {\n // nothing to apply\n return;\n }\n var oldSuggestedSize = this._suggestedBitmapSize;\n this._suggestedBitmapSize = null;\n this._resizeBitmap(oldSuggestedSize);\n this._emitSuggestedBitmapSizeChanged(oldSuggestedSize, this._suggestedBitmapSize);\n };\n DevicePixelContentBoxBinding.prototype._resizeBitmap = function (newSize) {\n var oldSize = this.bitmapSize;\n if (equalSizes(oldSize, newSize)) {\n return;\n }\n this.canvasElement.width = newSize.width;\n this.canvasElement.height = newSize.height;\n this._emitBitmapSizeChanged(oldSize, newSize);\n };\n DevicePixelContentBoxBinding.prototype._emitBitmapSizeChanged = function (oldSize, newSize) {\n var _this = this;\n this._bitmapSizeChangedListeners.forEach(function (listener) { return listener.call(_this, oldSize, newSize); });\n };\n DevicePixelContentBoxBinding.prototype._suggestNewBitmapSize = function (newSize) {\n var oldSuggestedSize = this._suggestedBitmapSize;\n var finalNewSize = size(this._transformBitmapSize(newSize, this._canvasElementClientSize));\n var newSuggestedSize = equalSizes(this.bitmapSize, finalNewSize) ? null : finalNewSize;\n if (oldSuggestedSize === null && newSuggestedSize === null) {\n return;\n }\n if (oldSuggestedSize !== null && newSuggestedSize !== null\n && equalSizes(oldSuggestedSize, newSuggestedSize)) {\n return;\n }\n this._suggestedBitmapSize = newSuggestedSize;\n this._emitSuggestedBitmapSizeChanged(oldSuggestedSize, newSuggestedSize);\n };\n DevicePixelContentBoxBinding.prototype._emitSuggestedBitmapSizeChanged = function (oldSize, newSize) {\n var _this = this;\n this._suggestedBitmapSizeChangedListeners.forEach(function (listener) { return listener.call(_this, oldSize, newSize); });\n };\n DevicePixelContentBoxBinding.prototype._chooseAndInitObserver = function () {\n var _this = this;\n if (!this._allowResizeObserver) {\n this._initDevicePixelRatioObservable();\n return;\n }\n isDevicePixelContentBoxSupported()\n .then(function (isSupported) {\n return isSupported ?\n _this._initResizeObserver() :\n _this._initDevicePixelRatioObservable();\n });\n };\n // devicePixelRatio approach\n DevicePixelContentBoxBinding.prototype._initDevicePixelRatioObservable = function () {\n var _this = this;\n if (this._canvasElement === null) {\n // it looks like we are already dead\n return;\n }\n var win = canvasElementWindow(this._canvasElement);\n if (win === null) {\n throw new Error('No window is associated with the canvas');\n }\n this._devicePixelRatioObservable = createDevicePixelRatioObservable(win);\n this._devicePixelRatioObservable.subscribe(function () { return _this._invalidateBitmapSize(); });\n this._invalidateBitmapSize();\n };\n DevicePixelContentBoxBinding.prototype._invalidateBitmapSize = function () {\n var _a, _b;\n if (this._canvasElement === null) {\n // it looks like we are already dead\n return;\n }\n var win = canvasElementWindow(this._canvasElement);\n if (win === null) {\n return;\n }\n var ratio = (_b = (_a = this._devicePixelRatioObservable) === null || _a === void 0 ? void 0 : _a.value) !== null && _b !== void 0 ? _b : win.devicePixelRatio;\n var canvasRects = this._canvasElement.getClientRects();\n var newSize = \n // eslint-disable-next-line no-negated-condition\n canvasRects[0] !== undefined ?\n predictedBitmapSize(canvasRects[0], ratio) :\n size({\n width: this._canvasElementClientSize.width * ratio,\n height: this._canvasElementClientSize.height * ratio,\n });\n this._suggestNewBitmapSize(newSize);\n };\n // ResizeObserver approach\n DevicePixelContentBoxBinding.prototype._initResizeObserver = function () {\n var _this = this;\n if (this._canvasElement === null) {\n // it looks like we are already dead\n return;\n }\n this._canvasElementResizeObserver = new ResizeObserver(function (entries) {\n var entry = entries.find(function (entry) { return entry.target === _this._canvasElement; });\n if (!entry || !entry.devicePixelContentBoxSize || !entry.devicePixelContentBoxSize[0]) {\n return;\n }\n var entrySize = entry.devicePixelContentBoxSize[0];\n var newSize = size({\n width: entrySize.inlineSize,\n height: entrySize.blockSize,\n });\n _this._suggestNewBitmapSize(newSize);\n });\n this._canvasElementResizeObserver.observe(this._canvasElement, { box: 'device-pixel-content-box' });\n };\n return DevicePixelContentBoxBinding;\n}());\nexport function bindTo(canvasElement, target) {\n if (target.type === 'device-pixel-content-box') {\n return new DevicePixelContentBoxBinding(canvasElement, target.transform, target.options);\n }\n throw new Error('Unsupported binding target');\n}\nfunction canvasElementWindow(canvasElement) {\n // According to DOM Level 2 Core specification, ownerDocument should never be null for HTMLCanvasElement\n // see https://www.w3.org/TR/2000/REC-DOM-Level-2-Core-20001113/core.html#node-ownerDoc\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n return canvasElement.ownerDocument.defaultView;\n}\nfunction isDevicePixelContentBoxSupported() {\n return new Promise(function (resolve) {\n var ro = new ResizeObserver(function (entries) {\n resolve(entries.every(function (entry) { return 'devicePixelContentBoxSize' in entry; }));\n ro.disconnect();\n });\n ro.observe(document.body, { box: 'device-pixel-content-box' });\n })\n .catch(function () { return false; });\n}\nfunction predictedBitmapSize(canvasRect, ratio) {\n return size({\n width: Math.round(canvasRect.left * ratio + canvasRect.width * ratio) -\n Math.round(canvasRect.left * ratio),\n height: Math.round(canvasRect.top * ratio + canvasRect.height * ratio) -\n Math.round(canvasRect.top * ratio),\n });\n}\n","/**\n * @experimental\n */\nvar CanvasRenderingTarget2D = /** @class */ (function () {\n function CanvasRenderingTarget2D(context, mediaSize, bitmapSize) {\n if (mediaSize.width === 0 || mediaSize.height === 0) {\n throw new TypeError('Rendering target could only be created on a media with positive width and height');\n }\n this._mediaSize = mediaSize;\n // !Number.isInteger(bitmapSize.width) || !Number.isInteger(bitmapSize.height)\n if (bitmapSize.width === 0 || bitmapSize.height === 0) {\n throw new TypeError('Rendering target could only be created using a bitmap with positive integer width and height');\n }\n this._bitmapSize = bitmapSize;\n this._context = context;\n }\n CanvasRenderingTarget2D.prototype.useMediaCoordinateSpace = function (f) {\n try {\n this._context.save();\n // do not use resetTransform to support old versions of Edge\n this._context.setTransform(1, 0, 0, 1, 0, 0);\n this._context.scale(this._horizontalPixelRatio, this._verticalPixelRatio);\n return f({\n context: this._context,\n mediaSize: this._mediaSize,\n });\n }\n finally {\n this._context.restore();\n }\n };\n CanvasRenderingTarget2D.prototype.useBitmapCoordinateSpace = function (f) {\n try {\n this._context.save();\n // do not use resetTransform to support old versions of Edge\n this._context.setTransform(1, 0, 0, 1, 0, 0);\n return f({\n context: this._context,\n mediaSize: this._mediaSize,\n bitmapSize: this._bitmapSize,\n horizontalPixelRatio: this._horizontalPixelRatio,\n verticalPixelRatio: this._verticalPixelRatio,\n });\n }\n finally {\n this._context.restore();\n }\n };\n Object.defineProperty(CanvasRenderingTarget2D.prototype, \"_horizontalPixelRatio\", {\n get: function () {\n return this._bitmapSize.width / this._mediaSize.width;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(CanvasRenderingTarget2D.prototype, \"_verticalPixelRatio\", {\n get: function () {\n return this._bitmapSize.height / this._mediaSize.height;\n },\n enumerable: false,\n configurable: true\n });\n return CanvasRenderingTarget2D;\n}());\nexport { CanvasRenderingTarget2D };\n/**\n * @experimental\n */\nexport function createCanvasRenderingTarget2D(binding, contextOptions) {\n var mediaSize = binding.canvasElementClientSize;\n var bitmapSize = binding.bitmapSize;\n var context = binding.canvasElement.getContext('2d', contextOptions);\n if (context === null) {\n throw new Error('Could not get 2d drawing context from bound canvas element. Has the canvas already been set to a different context mode?');\n }\n return new CanvasRenderingTarget2D(context, mediaSize, bitmapSize);\n}\n/**\n * @experimental\n */\nexport function tryCreateCanvasRenderingTarget2D(binding, contextOptions) {\n var mediaSize = binding.canvasElementClientSize;\n if (mediaSize.width === 0 || mediaSize.height === 0) {\n return null;\n }\n var bitmapSize = binding.bitmapSize;\n if (bitmapSize.width === 0 || bitmapSize.height === 0) {\n return null;\n }\n var context = binding.canvasElement.getContext('2d', contextOptions);\n if (context === null) {\n return null;\n }\n return new CanvasRenderingTarget2D(context, mediaSize, bitmapSize);\n}\n","/*!\n * @license\n * TradingView Lightweight Charts™ v5.2.1\n * Copyright (c) 2026 TradingView, Inc.\n * Licensed under Apache License 2.0 https://www.apache.org/licenses/LICENSE-2.0\n */\nimport{size as t,bindCanvasElementBitmapSizeTo as i,equalSizes as n,tryCreateCanvasRenderingTarget2D as s}from\"fancy-canvas\";const e={title:\"\",visible:!0,hitTestTolerance:3,lastValueVisible:!0,priceLineVisible:!0,priceLineSource:0,priceLineWidth:1,priceLineColor:\"\",priceLineStyle:2,baseLineVisible:!0,baseLineWidth:1,baseLineColor:\"#B2B5BE\",baseLineStyle:0,priceFormat:{type:\"price\",precision:2,minMove:.01}};var r,h;function a(t,i){const n=function(t,i){switch(t){case 0:default:return[];case 1:return[i,i];case 2:return[2*i,2*i];case 3:return[6*i,6*i];case 4:return[i,4*i]}}(i,t.lineWidth);return t.setLineDash(n),n}function l(t,i,n,s){t.beginPath();const e=t.lineWidth%2?.5:0;t.moveTo(n,i+e),t.lineTo(s,i+e),t.stroke()}function o(t,i){if(!t)throw new Error(\"Assertion failed\"+(i?\": \"+i:\"\"))}function _(t){if(void 0===t)throw new Error(\"Value is undefined\");return t}function u(t){if(null===t)throw new Error(\"Value is null\");return t}function c(t){return u(_(t))}!function(t){t[t.Simple=0]=\"Simple\",t[t.WithSteps=1]=\"WithSteps\",t[t.Curved=2]=\"Curved\"}(r||(r={})),function(t){t[t.Solid=0]=\"Solid\",t[t.Dotted=1]=\"Dotted\",t[t.Dashed=2]=\"Dashed\",t[t.LargeDashed=3]=\"LargeDashed\",t[t.SparseDotted=4]=\"SparseDotted\"}(h||(h={}));class d{constructor(){this.t=[]}i(t,i,n){const s={h:t,l:i,o:!0===n};this.t.push(s)}_(t){const i=this.t.findIndex((i=>t===i.h));i>-1&&this.t.splice(i,1)}u(t){this.t=this.t.filter((i=>i.l!==t))}p(t,i,n){const s=[...this.t];this.t=this.t.filter((t=>!t.o)),s.forEach((s=>s.h(t,i,n)))}v(){return this.t.length>0}m(){this.t=[]}}function f(t,...i){for(const n of i)for(const i in n)void 0!==n[i]&&Object.prototype.hasOwnProperty.call(n,i)&&![\"__proto__\",\"constructor\",\"prototype\"].includes(i)&&(\"object\"!=typeof n[i]||void 0===t[i]||Array.isArray(n[i])?t[i]=n[i]:f(t[i],n[i]));return t}function p(t){return\"number\"==typeof t&&isFinite(t)}function v(t){return\"number\"==typeof t&&t%1==0}function m(t){return\"string\"==typeof t}function w(t){return\"boolean\"==typeof t}function M(t){const i=t;if(!i||\"object\"!=typeof i)return i;let n,s,e;for(s in n=Array.isArray(i)?[]:{},i)i.hasOwnProperty(s)&&(e=i[s],n[s]=e&&\"object\"==typeof e?M(e):e);return n}function g(t){return null!==t}function b(t){return null===t?void 0:t}const S=\"-apple-system, BlinkMacSystemFont, 'Trebuchet MS', Roboto, Ubuntu, sans-serif\";function x(t,i,n){return void 0===i&&(i=S),`${n=void 0!==n?`${n} `:\"\"}${t}px ${i}`}class C{constructor(t){this.M={S:1,C:5,P:NaN,k:\"\",T:\"\",R:\"\",D:\"\",I:0,V:0,B:0,A:0,L:0},this.O=t}N(){const t=this.M,i=this.F(),n=this.W();return t.P===i&&t.T===n||(t.P=i,t.T=n,t.k=x(i,n),t.A=2.5/12*i,t.I=t.A,t.V=i/12*t.C,t.B=i/12*t.C,t.L=0),t.R=this.H(),t.D=this.U(),this.M}H(){return this.O.N().layout.textColor}U(){return this.O.$()}F(){return this.O.N().layout.fontSize}W(){return this.O.N().layout.fontFamily}}function y(t){return t<0?0:t>255?255:Math.round(t)||0}function P(t){return.199*t[0]+.687*t[1]+.114*t[2]}class k{constructor(t,i){this.j=new Map,this.q=t,i&&(this.j=i)}Y(t,i){if(\"transparent\"===t)return t;const n=this.K(t),s=n[3];return`rgba(${n[0]}, ${n[1]}, ${n[2]}, ${i*s})`}G(t){const i=this.K(t);return{Z:`rgb(${i[0]}, ${i[1]}, ${i[2]})`,X:P(i)>160?\"black\":\"white\"}}J(t){return P(this.K(t))}tt(t,i,n){const[s,e,r,h]=this.K(t),[a,l,o,_]=this.K(i),u=[y(s+n*(a-s)),y(e+n*(l-e)),y(r+n*(o-r)),(c=h+n*(_-h),c<=0||c>1?Math.min(Math.max(c,0),1):Math.round(1e4*c)/1e4)];var c;return`rgba(${u[0]}, ${u[1]}, ${u[2]}, ${u[3]})`}K(t){const i=this.j.get(t);if(i)return i;const n=function(t){const i=document.createElement(\"div\");i.style.display=\"none\",document.body.appendChild(i),i.style.color=t;const n=window.getComputedStyle(i).color;return document.body.removeChild(i),n}(t),s=n.match(/^rgba?\\s*\\((\\d+),\\s*(\\d+),\\s*(\\d+)(?:,\\s*(\\d*\\.?\\d+))?\\)$/);if(!s){if(this.q.length)for(const i of this.q){const n=i(t);if(n)return this.j.set(t,n),n}throw new Error(`Failed to parse color: ${t}`)}const e=[parseInt(s[1],10),parseInt(s[2],10),parseInt(s[3],10),s[4]?parseFloat(s[4]):1];return this.j.set(t,e),e}}class T{constructor(){this.it=[]}nt(t){this.it=t}st(t,i,n){this.it.forEach((s=>{s.st(t,i,n)}))}}class R{st(t,i,n){t.useBitmapCoordinateSpace((t=>this.et(t,i,n)))}}class D extends R{constructor(){super(...arguments),this.rt=null}ht(t){this.rt=t}et({context:t,horizontalPixelRatio:i,verticalPixelRatio:n}){if(null===this.rt||null===this.rt.lt)return;const s=this.rt.lt,e=this.rt,r=Math.max(1,Math.floor(i))%2/2,h=h=>{t.beginPath();for(let a=s.to-1;a>=s.from;--a){const s=e.ot[a],l=Math.round(s._t*i)+r,o=s.ut*n,_=h*n+r;t.moveTo(l,o),t.arc(l,o,_,0,2*Math.PI)}t.fill()};e.ct>0&&(t.fillStyle=e.dt,h(e.ft+e.ct)),t.fillStyle=e.vt,h(e.ft)}}function I(){return{ot:[{_t:0,ut:0,wt:0,Mt:0}],vt:\"\",dt:\"\",ft:0,ct:0,lt:null}}const V={from:0,to:1};class B{constructor(t,i,n){this.gt=new T,this.bt=[],this.St=[],this.xt=!0,this.O=t,this.Ct=i,this.yt=n,this.gt.nt(this.bt)}Pt(t){this.kt(),this.xt=!0}Tt(){return this.xt&&(this.Rt(),this.xt=!1),this.gt}kt(){const t=this.yt.Dt();t.length!==this.bt.length&&(this.St=t.map(I),this.bt=this.St.map((t=>{const i=new D;return i.ht(t),i})),this.gt.nt(this.bt))}Rt(){const t=2===this.Ct.N().mode||!this.Ct.It(),i=this.yt.Vt(),n=this.Ct.Bt(),s=this.O.Et();this.kt(),i.forEach(((i,e)=>{const r=this.St[e],h=i.At(n),a=i.Lt();!t&&null!==h&&i.It()&&null!==a?(r.vt=h.zt,r.ft=h.ft,r.ct=h.Ot,r.ot[0].Mt=h.Mt,r.ot[0].ut=i.Ft().Nt(h.Mt,a.Wt),r.dt=h.Ht??this.O.Ut(r.ot[0].ut/i.Ft().$t()),r.ot[0].wt=n,r.ot[0]._t=s.jt(n),r.lt=V):r.lt=null}))}}class E extends R{constructor(t){super(),this.qt=t}et({context:t,bitmapSize:i,horizontalPixelRatio:n,verticalPixelRatio:s}){if(null===this.qt)return;const e=this.qt.Yt.It,r=this.qt.Kt.It;if(!e&&!r)return;const h=Math.round(this.qt._t*n),o=Math.round(this.qt.ut*s);t.lineCap=\"butt\",e&&h>=0&&(t.lineWidth=Math.floor(this.qt.Yt.ct*n),t.strokeStyle=this.qt.Yt.R,t.fillStyle=this.qt.Yt.R,a(t,this.qt.Yt.Gt),function(t,i,n,s){t.beginPath();const e=t.lineWidth%2?.5:0;t.moveTo(i+e,n),t.lineTo(i+e,s),t.stroke()}(t,h,0,i.height)),r&&o>=0&&(t.lineWidth=Math.floor(this.qt.Kt.ct*s),t.strokeStyle=this.qt.Kt.R,t.fillStyle=this.qt.Kt.R,a(t,this.qt.Kt.Gt),l(t,o,0,i.width))}}class A{constructor(t,i){this.xt=!0,this.Zt={Yt:{ct:1,Gt:0,R:\"\",It:!1},Kt:{ct:1,Gt:0,R:\"\",It:!1},_t:0,ut:0},this.Xt=new E(this.Zt),this.Jt=t,this.yt=i}Pt(){this.xt=!0}Tt(t){return this.xt&&(this.Rt(),this.xt=!1),this.Xt}Rt(){const t=this.Jt.It(),i=this.yt.Qt().N().crosshair,n=this.Zt;if(2===i.mode)return n.Kt.It=!1,void(n.Yt.It=!1);n.Kt.It=t&&this.Jt.ti(this.yt),n.Yt.It=t&&this.Jt.ii(),n.Kt.ct=i.horzLine.width,n.Kt.Gt=i.horzLine.style,n.Kt.R=i.horzLine.color,n.Yt.ct=i.vertLine.width,n.Yt.Gt=i.vertLine.style,n.Yt.R=i.vertLine.color,n._t=this.Jt.ni(),n.ut=this.Jt.si()}}function L(t,i,n,s,e,r){t.fillRect(i+r,n,s-2*r,r),t.fillRect(i+r,n+e-r,s-2*r,r),t.fillRect(i,n,r,e),t.fillRect(i+s-r,n,r,e)}function z(t,i,n,s,e,r){t.save(),t.globalCompositeOperation=\"copy\",t.fillStyle=r,t.fillRect(i,n,s,e),t.restore()}function O(t,i,n,s,e,r){t.beginPath(),t.roundRect?t.roundRect(i,n,s,e,r):(t.lineTo(i+s-r[1],n),0!==r[1]&&t.arcTo(i+s,n,i+s,n+r[1],r[1]),t.lineTo(i+s,n+e-r[2]),0!==r[2]&&t.arcTo(i+s,n+e,i+s-r[2],n+e,r[2]),t.lineTo(i+r[3],n+e),0!==r[3]&&t.arcTo(i,n+e,i,n+e-r[3],r[3]),t.lineTo(i,n+r[0]),0!==r[0]&&t.arcTo(i,n,i+r[0],n,r[0]))}function N(t,i,n,s,e,r,h=0,a=[0,0,0,0],l=\"\"){if(t.save(),!h||!l||l===r)return O(t,i,n,s,e,a),t.fillStyle=r,t.fill(),void t.restore();const o=h/2;var _;O(t,i+o,n+o,s-h,e-h,(_=-o,a.map((t=>0===t?t:t+_)))),\"transparent\"!==r&&(t.fillStyle=r,t.fill()),\"transparent\"!==l&&(t.lineWidth=h,t.strokeStyle=l,t.closePath(),t.stroke()),t.restore()}function F(t,i,n,s,e,r,h){t.save(),t.globalCompositeOperation=\"copy\";const a=t.createLinearGradient(0,0,0,e);a.addColorStop(0,r),a.addColorStop(1,h),t.fillStyle=a,t.fillRect(i,n,s,e),t.restore()}class W{constructor(t,i){this.ht(t,i)}ht(t,i){this.qt=t,this.ei=i}$t(t,i){return this.qt.It?t.P+t.A+t.I:0}st(t,i,n,s){if(!this.qt.It||0===this.qt.ri.length)return;const e=this.qt.R,r=this.ei.Z,h=t.useBitmapCoordinateSpace((t=>{const h=t.context;h.font=i.k;const a=this.hi(t,i,n,s),l=a.ai;return a.li?N(h,l.oi,l._i,l.ui,l.ci,r,l.di,[l.ft,0,0,l.ft],r):N(h,l.fi,l._i,l.ui,l.ci,r,l.di,[0,l.ft,l.ft,0],r),this.qt.pi&&(h.fillStyle=e,h.fillRect(l.fi,l.mi,l.wi-l.fi,l.Mi)),this.qt.gi&&(h.fillStyle=i.D,h.fillRect(a.li?l.bi-l.di:0,l._i,l.di,l.Si-l._i)),a}));t.useMediaCoordinateSpace((({context:t})=>{const n=h.xi;t.font=i.k,t.textAlign=h.li?\"right\":\"left\",t.textBaseline=\"middle\",t.fillStyle=e,t.fillText(this.qt.ri,n.Ci,(n._i+n.Si)/2+n.yi)}))}hi(t,i,n,s){const{context:e,bitmapSize:r,mediaSize:h,horizontalPixelRatio:a,verticalPixelRatio:l}=t,o=this.qt.pi||!this.qt.Pi?i.C:0,_=this.qt.ki?i.S:0,u=i.A+this.ei.Ti,c=i.I+this.ei.Ri,d=i.V,f=i.B,p=this.qt.ri,v=i.P,m=n.Di(e,p),w=Math.ceil(n.Ii(e,p)),M=v+u+c,g=i.S+d+f+w+o,b=Math.max(1,Math.floor(l));let S=Math.round(M*l);S%2!=b%2&&(S+=1);const x=_>0?Math.max(1,Math.floor(_*a)):0,C=Math.round(g*a),y=Math.round(o*a),P=this.ei.Vi??this.ei.Bi??this.ei.Ei,k=Math.round(P*l)-Math.floor(.5*l),T=Math.floor(k+b/2-S/2),R=T+S,D=\"right\"===s,I=D?h.width-_:_,V=D?r.width-x:x;let B,E,A;return D?(B=V-C,E=V-y,A=I-o-d-_):(B=V+C,E=V+y,A=I+o+d),{li:D,ai:{_i:T,mi:k,Si:R,ui:C,ci:S,ft:2*a,di:x,oi:B,fi:V,wi:E,Mi:b,bi:r.width},xi:{_i:T/l,Si:R/l,Ci:A,yi:m}}}}class H{constructor(t){this.Ai={Ei:0,Z:\"#000\",Ri:0,Ti:0},this.Li={ri:\"\",It:!1,pi:!0,Pi:!1,Ht:\"\",R:\"#FFF\",gi:!1,ki:!1},this.zi={ri:\"\",It:!1,pi:!1,Pi:!0,Ht:\"\",R:\"#FFF\",gi:!0,ki:!0},this.xt=!0,this.Oi=new(t||W)(this.Li,this.Ai),this.Ni=new(t||W)(this.zi,this.Ai)}ri(){return this.Fi(),this.Li.ri}Ei(){return this.Fi(),this.Ai.Ei}Pt(){this.xt=!0}$t(t,i=!1){return Math.max(this.Oi.$t(t,i),this.Ni.$t(t,i))}Wi(){return this.Ai.Vi??null}Hi(){return this.Ai.Vi??this.Ai.Bi??this.Ei()}Ui(t){this.Ai.Bi=t??void 0}$i(){return this.Fi(),this.Li.It||this.zi.It}ji(){return this.Fi(),this.Li.It}Tt(t){return this.Fi(),this.Li.pi=this.Li.pi&&t.N().ticksVisible,this.zi.pi=this.zi.pi&&t.N().ticksVisible,this.Oi.ht(this.Li,this.Ai),this.Ni.ht(this.zi,this.Ai),this.Oi}qi(){return this.Fi(),this.Oi.ht(this.Li,this.Ai),this.Ni.ht(this.zi,this.Ai),this.Ni}Fi(){this.xt&&(this.Li.pi=!0,this.zi.pi=!1,this.Yi(this.Li,this.zi,this.Ai))}}class U extends H{constructor(t,i,n){super(),this.Jt=t,this.Ki=i,this.Gi=n}Yi(t,i,n){if(t.It=!1,2===this.Jt.N().mode)return;const s=this.Jt.N().horzLine;if(!s.labelVisible)return;const e=this.Ki.Lt();if(!this.Jt.It()||this.Ki.Zi()||null===e)return;const r=this.Ki.Xi().G(s.labelBackgroundColor);n.Z=r.Z,t.R=r.X;const h=2/12*this.Ki.P();n.Ti=h,n.Ri=h;const a=this.Gi(this.Ki);n.Ei=a.Ei,t.ri=this.Ki.Ji(a.Mt,e),t.It=!0}}const $=/[1-9]/g;class j{constructor(){this.qt=null}ht(t){this.qt=t}st(t,i){if(null===this.qt||!1===this.qt.It||0===this.qt.ri.length)return;const n=t.useMediaCoordinateSpace((({context:t})=>(t.font=i.k,Math.round(i.Qi.Ii(t,u(this.qt).ri,$)))));if(n<=0)return;const s=i.tn,e=n+2*s,r=e/2,h=this.qt.nn;let a=this.qt.Ei,l=Math.floor(a-r)+.5;l<0?(a+=Math.abs(0-l),l=Math.floor(a-r)+.5):l+e>h&&(a-=Math.abs(h-(l+e)),l=Math.floor(a-r)+.5);const o=l+e,_=Math.ceil(0+i.S+i.C+i.A+i.P+i.I);t.useBitmapCoordinateSpace((({context:t,horizontalPixelRatio:n,verticalPixelRatio:s})=>{const e=u(this.qt);t.fillStyle=e.Z;const r=Math.round(l*n),h=Math.round(0*s),a=Math.round(o*n),c=Math.round(_*s),d=Math.round(2*n);if(t.beginPath(),t.moveTo(r,h),t.lineTo(r,c-d),t.arcTo(r,c,r+d,c,d),t.lineTo(a-d,c),t.arcTo(a,c,a,c-d,d),t.lineTo(a,h),t.fill(),e.pi){const r=Math.round(e.Ei*n),a=h,l=Math.round((a+i.C)*s);t.fillStyle=e.R;const o=Math.max(1,Math.floor(n)),_=Math.floor(.5*n);t.fillRect(r-_,a,o,l-a)}})),t.useMediaCoordinateSpace((({context:t})=>{const n=u(this.qt),e=0+i.S+i.C+i.A+i.P/2;t.font=i.k,t.textAlign=\"left\",t.textBaseline=\"middle\",t.fillStyle=n.R;const r=i.Qi.Di(t,\"Apr0\");t.translate(l+s,e+r),t.fillText(n.ri,0,0)}))}}class q{constructor(t,i,n){this.xt=!0,this.Xt=new j,this.Zt={It:!1,Z:\"#4c525e\",R:\"white\",ri:\"\",nn:0,Ei:NaN,pi:!0},this.Ct=t,this.sn=i,this.Gi=n}Pt(){this.xt=!0}Tt(){return this.xt&&(this.Rt(),this.xt=!1),this.Xt.ht(this.Zt),this.Xt}Rt(){const t=this.Zt;if(t.It=!1,2===this.Ct.N().mode)return;const i=this.Ct.N().vertLine;if(!i.labelVisible)return;const n=this.sn.Et();if(n.Zi())return;t.nn=n.nn();const s=this.Gi();if(null===s)return;t.Ei=s.Ei;const e=n.en(this.Ct.Bt());t.ri=n.rn(u(e)),t.It=!0;const r=this.sn.Xi().G(i.labelBackgroundColor);t.Z=r.Z,t.R=r.X,t.pi=n.N().ticksVisible}}class Y{constructor(){this.hn=null,this.an=0}ln(){return this.an}_n(t){this.an=t}Ft(){return this.hn}un(t){this.hn=t}cn(t){return[]}dn(){return[]}It(){return!0}}var K;!function(t){t[t.Normal=0]=\"Normal\",t[t.Magnet=1]=\"Magnet\",t[t.Hidden=2]=\"Hidden\",t[t.MagnetOHLC=3]=\"MagnetOHLC\"}(K||(K={}));class G extends Y{constructor(t,i){super(),this.yt=null,this.fn=NaN,this.pn=0,this.vn=!1,this.mn=new Map,this.wn=!1,this.Mn=new WeakMap,this.gn=new WeakMap,this.bn=NaN,this.Sn=NaN,this.xn=NaN,this.Cn=NaN,this.sn=t,this.yn=i;this.Pn=((t,i)=>n=>{const s=i(),e=t();if(n===u(this.yt).kn())return{Mt:e,Ei:s};{const t=u(n.Lt());return{Mt:n.Tn(s,t),Ei:s}}})((()=>this.fn),(()=>this.Sn));const n=((t,i)=>()=>{const n=this.sn.Et().Rn(t()),s=i();return n&&Number.isFinite(s)?{wt:n,Ei:s}:null})((()=>this.pn),(()=>this.ni()));this.Dn=new q(this,t,n)}N(){return this.yn}In(t,i){this.xn=t,this.Cn=i}Vn(){this.xn=NaN,this.Cn=NaN}Bn(){return this.xn}En(){return this.Cn}An(t,i,n){this.wn||(this.wn=!0),this.vn=!0,this.Ln(t,i,n)}Bt(){return this.pn}ni(){return this.bn}si(){return this.Sn}It(){return this.vn}zn(){this.vn=!1,this.On(),this.fn=NaN,this.bn=NaN,this.Sn=NaN,this.yt=null,this.Vn(),this.Nn()}Fn(t){if(!this.yn.doNotSnapToHiddenSeriesIndices)return t;const i=this.sn,n=i.Et();let s=null,e=null;for(const n of i.Wn()){const i=n.Un().Hn(t,-1);if(i){if(i.$n===t)return t;(null===s||i.$n>s)&&(s=i.$n)}const r=n.Un().Hn(t,1);if(r){if(r.$n===t)return t;(null===e||r.$n<e)&&(e=r.$n)}}const r=[s,e].filter(g);if(0===r.length)return t;const h=n.jt(t),a=r.map((t=>Math.abs(h-n.jt(t))));return r[a.indexOf(Math.min(...a))]}jn(t){let i=this.Mn.get(t);i||(i=new A(this,t),this.Mn.set(t,i));let n=this.gn.get(t);return n||(n=new B(this.sn,this,t),this.gn.set(t,n)),[i,n]}ti(t){return t===this.yt&&this.yn.horzLine.visible}ii(){return this.yn.vertLine.visible}qn(t,i){this.vn&&this.yt===t||this.mn.clear();const n=[];return this.yt===t&&n.push(this.Yn(this.mn,i,this.Pn)),n}dn(){return this.vn?[this.Dn]:[]}Kn(){return this.yt}Nn(){this.sn.Gn().forEach((t=>{this.Mn.get(t)?.Pt(),this.gn.get(t)?.Pt()})),this.mn.forEach((t=>t.Pt())),this.Dn.Pt()}Zn(t){return t&&!t.kn().Zi()?t.kn():null}Ln(t,i,n){this.Xn(t,i,n)&&this.Nn()}Xn(t,i,n){const s=this.bn,e=this.Sn,r=this.fn,h=this.pn,a=this.yt,l=this.Zn(n);this.pn=t,this.bn=isNaN(t)?NaN:this.sn.Et().jt(t),this.yt=n;const o=null!==l?l.Lt():null;return null!==l&&null!==o?(this.fn=i,this.Sn=l.Nt(i,o)):(this.fn=NaN,this.Sn=NaN),s!==this.bn||e!==this.Sn||h!==this.pn||r!==this.fn||a!==this.yt}On(){const t=this.sn.Jn().map((t=>t.Un().Qn())).filter(g),i=0===t.length?null:Math.max(...t);this.pn=null!==i?i:NaN}Yn(t,i,n){let s=t.get(i);return void 0===s&&(s=new U(this,i,n),t.set(i,s)),s}}function Z(t){return\"left\"===t||\"right\"===t}class X{constructor(t){this.ts=new Map,this.ns=[],this.ss=t}es(t,i){const n=function(t,i){return void 0===t?i:{rs:Math.max(t.rs,i.rs),hs:t.hs||i.hs}}(this.ts.get(t),i);this.ts.set(t,n)}ls(){return this.ss}_s(t){const i=this.ts.get(t);return void 0===i?{rs:this.ss}:{rs:Math.max(this.ss,i.rs),hs:i.hs}}us(){this.cs(),this.ns=[{ds:0}]}fs(t){this.cs(),this.ns=[{ds:1,Wt:t}]}ps(t){this.vs(),this.ns.push({ds:5,Wt:t})}cs(){this.vs(),this.ns.push({ds:6})}ws(){this.cs(),this.ns=[{ds:4}]}Ms(t){this.cs(),this.ns.push({ds:2,Wt:t})}gs(t){this.cs(),this.ns.push({ds:3,Wt:t})}bs(){return this.ns}Ss(t){for(const i of t.ns)this.xs(i);this.ss=Math.max(this.ss,t.ss),t.ts.forEach(((t,i)=>{this.es(i,t)}))}static Cs(){return new X(2)}static ys(){return new X(3)}xs(t){switch(t.ds){case 0:this.us();break;case 1:this.fs(t.Wt);break;case 2:this.Ms(t.Wt);break;case 3:this.gs(t.Wt);break;case 4:this.ws();break;case 5:this.ps(t.Wt);break;case 6:this.vs()}}vs(){const t=this.ns.findIndex((t=>5===t.ds));-1!==t&&this.ns.splice(t,1)}}class J{formatTickmarks(t){return t.map((t=>this.format(t)))}}const Q=\".\";function tt(t,i){if(!p(t))return\"n/a\";if(!v(i))throw new TypeError(\"invalid length\");if(i<0||i>16)throw new TypeError(\"invalid length\");if(0===i)return t.toString();return(\"0000000000000000\"+t.toString()).slice(-i)}class it extends J{constructor(t,i){if(super(),i||(i=1),p(t)&&v(t)||(t=100),t<0)throw new TypeError(\"invalid base\");this.Ki=t,this.Ps=i,this.ks()}format(t){const i=t<0?\"−\":\"\";return t=Math.abs(t),i+this.Ts(t)}ks(){if(this.Rs=0,this.Ki>0&&this.Ps>0){let t=this.Ki;for(;t>1;)t/=10,this.Rs++}}Ts(t){const i=this.Ki/this.Ps;let n=Math.floor(t),s=\"\";const e=void 0!==this.Rs?this.Rs:NaN;if(i>1){let r=+(Math.round(t*i)-n*i).toFixed(this.Rs);r>=i&&(r-=i,n+=1),s=Q+tt(+r.toFixed(this.Rs)*this.Ps,e)}else n=Math.round(n*i)/i,e>0&&(s=Q+tt(0,e));return n.toFixed(0)+s}}class nt extends it{constructor(t=100){super(t)}format(t){return`${super.format(t)}%`}}class st extends J{constructor(t){super(),this.Ds=t}format(t){let i=\"\";return t<0&&(i=\"-\",t=-t),t<995?i+this.Is(t):t<999995?i+this.Is(t/1e3)+\"K\":t<999999995?(t=1e3*Math.round(t/1e3),i+this.Is(t/1e6)+\"M\"):(t=1e6*Math.round(t/1e6),i+this.Is(t/1e9)+\"B\")}Is(t){let i;const n=Math.pow(10,this.Ds);return i=(t=Math.round(t*n)/n)>=1e-15&&t<1?t.toFixed(this.Ds).replace(/\\.?0+$/,\"\"):String(t),i.replace(/(\\.[1-9]*)0+$/,((t,i)=>i))}}const et=/[2-9]/g;class rt{constructor(t=50){this.Vs=0,this.Bs=1,this.Es=1,this.As={},this.Ls=new Map,this.zs=t}Os(){this.Vs=0,this.Ls.clear(),this.Bs=1,this.Es=1,this.As={}}Ii(t,i,n){return this.Ns(t,i,n).width}Di(t,i,n){const s=this.Ns(t,i,n);return((s.actualBoundingBoxAscent||0)-(s.actualBoundingBoxDescent||0))/2}Ns(t,i,n){const s=n||et,e=String(i).replace(s,\"0\");if(this.Ls.has(e))return _(this.Ls.get(e)).Fs;if(this.Vs===this.zs){const t=this.As[this.Es];delete this.As[this.Es],this.Ls.delete(t),this.Es++,this.Vs--}t.save(),t.textBaseline=\"middle\";const r=t.measureText(e);return t.restore(),0===r.width&&i.length||(this.Ls.set(e,{Fs:r,Ws:this.Bs}),this.As[this.Bs]=e,this.Vs++,this.Bs++),r}}class ht{constructor(t){this.Hs=null,this.M=null,this.Us=\"right\",this.$s=t}js(t,i,n){this.Hs=t,this.M=i,this.Us=n}st(t){null!==this.M&&null!==this.Hs&&this.Hs.st(t,this.M,this.$s,this.Us)}}class at{constructor(t,i,n){this.qs=t,this.$s=new rt(50),this.Ys=i,this.O=n,this.F=-1,this.Xt=new ht(this.$s)}Tt(){const t=this.O.Ks(this.Ys);if(null===t)return null;const i=t.Gs(this.Ys)?t.Zs():this.Ys.Ft();if(null===i)return null;const n=t.Xs(i);if(\"overlay\"===n)return null;const s=this.O.Js();return s.P!==this.F&&(this.F=s.P,this.$s.Os()),this.Xt.js(this.qs.qi(),s,n),this.Xt}}class lt extends R{constructor(){super(...arguments),this.qt=null}ht(t){this.qt=t}Qs(t,i){if(!this.qt?.It)return null;const{ut:n,ct:s,te:e}=this.qt;return i>=n-s-7&&i<=n+s+7?{ie:this.qt,ne:Math.abs(i-n),se:2,ee:\"price-line\",te:e}:null}et({context:t,bitmapSize:i,horizontalPixelRatio:n,verticalPixelRatio:s}){if(null===this.qt)return;if(!1===this.qt.It)return;const e=Math.round(this.qt.ut*s);e<0||e>i.height||(t.lineCap=\"butt\",t.strokeStyle=this.qt.R,t.lineWidth=Math.floor(this.qt.ct*n),a(t,this.qt.Gt),l(t,e,0,i.width))}}class ot{constructor(t){this.re={ut:0,R:\"rgba(0, 0, 0, 0)\",ct:1,Gt:0,It:!1},this.he=new lt,this.xt=!0,this.ae=t,this.le=t.Qt(),this.he.ht(this.re)}Pt(){this.xt=!0}Tt(){return this.ae.It()?(this.xt&&(this.oe(),this.xt=!1),this.he):null}}class _t extends ot{constructor(t){super(t)}oe(){this.re.It=!1;const t=this.ae.Ft(),i=t._e()._e;if(2!==i&&3!==i)return;const n=this.ae.N();if(!n.baseLineVisible||!this.ae.It())return;const s=this.ae.Lt();null!==s&&(this.re.It=!0,this.re.ut=t.Nt(s.Wt,s.Wt),this.re.R=n.baseLineColor,this.re.ct=n.baseLineWidth,this.re.Gt=n.baseLineStyle)}}class ut extends R{constructor(){super(...arguments),this.qt=null}ht(t){this.qt=t}ue(){return this.qt}et({context:t,horizontalPixelRatio:i,verticalPixelRatio:n}){const s=this.qt;if(null===s)return;const e=Math.max(1,Math.floor(i)),r=e%2/2,h=Math.round(s.ce.x*i)+r,a=s.ce.y*n;t.fillStyle=s.de,t.beginPath();const l=Math.max(2,1.5*s.fe)*i;t.arc(h,a,l,0,2*Math.PI,!1),t.fill(),t.fillStyle=s.pe,t.beginPath(),t.arc(h,a,s.ft*i,0,2*Math.PI,!1),t.fill(),t.lineWidth=e,t.strokeStyle=s.ve,t.beginPath(),t.arc(h,a,s.ft*i+e/2,0,2*Math.PI,!1),t.stroke()}}const ct=[{me:0,we:.25,Me:4,ge:10,be:.25,Se:0,xe:.4,Ce:.8},{me:.25,we:.525,Me:10,ge:14,be:0,Se:0,xe:.8,Ce:0},{me:.525,we:1,Me:14,ge:14,be:0,Se:0,xe:0,Ce:0}];class dt{constructor(t){this.Xt=new ut,this.xt=!0,this.ye=!0,this.Pe=performance.now(),this.ke=this.Pe-1,this.Te=t}Re(){this.ke=this.Pe-1,this.Pt()}De(){if(this.Pt(),2===this.Te.N().lastPriceAnimation){const t=performance.now(),i=this.ke-t;if(i>0)return void(i<650&&(this.ke+=2600));this.Pe=t,this.ke=t+2600}}Pt(){this.xt=!0}Ie(){this.ye=!0}It(){return 0!==this.Te.N().lastPriceAnimation}Ve(){switch(this.Te.N().lastPriceAnimation){case 0:return!1;case 1:return!0;case 2:return performance.now()<=this.ke}}Tt(){return this.xt?(this.Rt(),this.xt=!1,this.ye=!1):this.ye&&(this.Be(),this.ye=!1),this.Xt}Rt(){this.Xt.ht(null);const t=this.Te.Qt().Et(),i=t.Ee(),n=this.Te.Lt();if(null===i||null===n)return;const s=this.Te.Ae(!0);if(s.Le||!i.ze(s.$n))return;const e={x:t.jt(s.$n),y:this.Te.Ft().Nt(s.Mt,n.Wt)},r=s.R,h=this.Te.N().lineWidth,a=this.Oe(this.Ne(),r);this.Xt.ht({de:r,fe:h,pe:a.pe,ve:a.ve,ft:a.ft,ce:e})}Be(){const t=this.Xt.ue();if(null!==t){const i=this.Oe(this.Ne(),t.de);t.pe=i.pe,t.ve=i.ve,t.ft=i.ft}}Ne(){return this.Ve()?performance.now()-this.Pe:2599}Fe(t,i,n,s){const e=n+(s-n)*i;return this.Te.Qt().Xi().Y(t,e)}Oe(t,i){const n=t%2600/2600;let s;for(const t of ct)if(n>=t.me&&n<=t.we){s=t;break}o(void 0!==s,\"Last price animation internal logic error\");const e=(n-s.me)/(s.we-s.me);return{pe:this.Fe(i,e,s.be,s.Se),ve:this.Fe(i,e,s.xe,s.Ce),ft:(r=e,h=s.Me,a=s.ge,h+(a-h)*r)};var r,h,a}}class ft extends ot{constructor(t){super(t)}oe(){const t=this.re;t.It=!1;const i=this.ae.N();if(!i.priceLineVisible||!this.ae.It())return;const n=this.ae.Ae(0===i.priceLineSource);n.Le||(t.It=!0,t.ut=n.Ei,t.R=this.ae.We(n.R),t.ct=i.priceLineWidth,t.Gt=i.priceLineStyle)}}class pt extends H{constructor(t){super(),this.Jt=t}Yi(t,i,n){t.It=!1,i.It=!1;const s=this.Jt;if(!s.It())return;const e=s.N(),r=e.lastValueVisible,h=\"\"!==s.He(),a=0===e.seriesLastValueMode,l=s.Ae(!1);if(l.Le)return;r&&(t.ri=this.Ue(l,r,a),t.It=0!==t.ri.length),(h||a)&&(i.ri=this.$e(l,r,h,a),i.It=i.ri.length>0);const o=s.We(l.R),_=this.Jt.Qt().Xi().G(o);n.Z=_.Z,n.Ei=l.Ei,i.Ht=s.Qt().Ut(l.Ei/s.Ft().$t()),t.Ht=o,t.R=_.X,i.R=_.X}$e(t,i,n,s){let e=\"\";const r=this.Jt.He();return n&&0!==r.length&&(e+=`${r} `),i&&s&&(e+=this.Jt.Ft().je()?t.qe:t.Ye),e.trim()}Ue(t,i,n){return i?n?this.Jt.Ft().je()?t.Ye:t.qe:t.ri:\"\"}}function vt(t,i,n,s){const e=Number.isFinite(i),r=Number.isFinite(n);return e&&r?t(i,n):e||r?e?i:n:s}class mt{constructor(t,i){this.Ke=t,this.Ge=i}Ze(t){return null!==t&&(this.Ke===t.Ke&&this.Ge===t.Ge)}Xe(){return new mt(this.Ke,this.Ge)}Je(){return this.Ke}Qe(){return this.Ge}tr(){return this.Ge-this.Ke}Zi(){return this.Ge===this.Ke||Number.isNaN(this.Ge)||Number.isNaN(this.Ke)}Ss(t){return null===t?this:new mt(vt(Math.min,this.Je(),t.Je(),-1/0),vt(Math.max,this.Qe(),t.Qe(),1/0))}ir(t){if(!p(t))return;if(0===this.Ge-this.Ke)return;const i=.5*(this.Ge+this.Ke);let n=this.Ge-i,s=this.Ke-i;n*=t,s*=t,this.Ge=i+n,this.Ke=i+s}nr(t){p(t)&&(this.Ge+=t,this.Ke+=t)}sr(){return{minValue:this.Ke,maxValue:this.Ge}}static er(t){return null===t?null:new mt(t.minValue,t.maxValue)}}class wt{constructor(t,i){this.rr=t,this.hr=i||null}ar(){return this.rr}lr(){return this.hr}sr(){return{priceRange:null===this.rr?null:this.rr.sr(),margins:this.hr||void 0}}static er(t){return null===t?null:new wt(mt.er(t.priceRange),t.margins)}}const Mt=[2,4,8,16,32,64,128,256,512],gt=\"Custom series with conflation reducer must have a priceValueBuilder method\";class bt extends ot{constructor(t,i){super(t),this._r=i}oe(){const t=this.re;t.It=!1;const i=this._r.N();if(!this.ae.It()||!i.lineVisible)return;const n=this._r.ur();null!==n&&(t.It=!0,t.ut=n,t.R=i.color,t.ct=i.lineWidth,t.Gt=i.lineStyle,t.te=this._r.N().id)}}class St extends H{constructor(t,i){super(),this.Te=t,this._r=i}Yi(t,i,n){t.It=!1,i.It=!1;const s=this._r.N(),e=s.axisLabelVisible,r=\"\"!==s.title,h=this.Te;if(!e||!h.It())return;const a=this._r.ur();if(null===a)return;r&&(i.ri=s.title,i.It=!0),i.Ht=h.Qt().Ut(a/h.Ft().$t()),t.ri=this.cr(s.price),t.It=!0;const l=this.Te.Qt().Xi().G(s.axisLabelColor||s.color);n.Z=l.Z;const o=s.axisLabelTextColor||l.X;t.R=o,i.R=o,n.Ei=a}cr(t){const i=this.Te.Lt();return null===i?\"\":this.Te.Ft().Ji(t,i.Wt)}}class xt{constructor(t,i){this.Te=t,this.yn=i,this.dr=new bt(t,this),this.qs=new St(t,this),this.pr=new at(this.qs,t,t.Qt())}vr(t){f(this.yn,t),this.Pt(),this.Te.Qt().mr()}N(){return this.yn}wr(){return this.dr}Mr(){return this.pr}gr(){return this.qs}Pt(){this.dr.Pt(),this.qs.Pt()}ur(){const t=this.Te,i=t.Ft();if(t.Qt().Et().Zi()||i.Zi())return null;const n=t.Lt();return null===n?null:i.Nt(this.yn.price,n.Wt)}}class Ct{constructor(){this.br=new WeakMap}Sr(t,i,n){const s=1/i*n;if(t>=s)return 1;const e=s/t,r=Math.pow(2,Math.floor(Math.log2(e)));return Math.min(r,512)}Cr(t,i,n,s=!1,e){if(0===t.length||i<=1)return t;const r=this.yr(i);if(r<=1)return t;const h=this.Pr(t);let a=h.kr.get(r);return void 0!==a||(a=this.Tr(t,r,n,s,e,h.kr),h.kr.set(r,a)),a}Rr(t,i,n,s,e=!1,r){if(n<1||0===t.length)return t;const h=this.Pr(t),a=h.kr.get(n);if(!a)return this.Cr(t,n,s,e,r);const l=this.Dr(t,i,n,a,e,s,r);return h.kr.set(n,l),l}yr(t){if(t<=2)return 2;for(const i of Mt)if(t<=i)return i;return 512}Ir(t){if(0===t.length)return 0;const i=t[0],n=t[t.length-1];return 31*t.length+17*i.$n+13*n.$n}Tr(t,i,n,s=!1,e,r=new Map){if(2===i)return this.Vr(t,2,n,s,e);const h=i/2;let a=r.get(h);return a||(a=this.Tr(t,h,n,s,e,r),r.set(h,a)),this.Br(a,n,s,e)}Vr(t,i,n,s=!1,e){const r=this.Er(t,i,n,s,e);return this.Ar(r,s)}Br(t,i,n=!1,s){const e=this.Er(t,2,i,n,s);return this.Ar(e,n)}Er(t,i,n,s=!1,e){const r=[];for(let h=0;h<t.length;h+=i){if(t.length-h>=i){const i=this.Lr(t[h],t[h+1],n,s,e);i.zr=!1,r.push(i)}else if(0===r.length)r.push(this.Or(t[h],!0));else{const i=r[r.length-1];r[r.length-1]=this.Nr(i,t[h],n,s,e)}}return r}Fr(t,i){return(t??1)+(i??1)}Lr(t,i,n,s=!1,e){if(!s||!n||!e){const n=t.Wt[1]>i.Wt[1]?t.Wt[1]:i.Wt[1],s=t.Wt[2]<i.Wt[2]?t.Wt[2]:i.Wt[2];return{Wr:t.$n,Hr:i.$n,Ur:t.wt,$r:i.wt,jr:t.Wt[0],qr:n,Yr:s,Kr:i.Wt[3],Gr:this.Fr(t.Gr,i.Gr),Zr:void 0,zr:!1}}const r=n(this.Xr(t,e),this.Xr(i,e)),h=e(r),a=h.length?h[h.length-1]:0;return{Wr:t.$n,Hr:i.$n,Ur:t.wt,$r:i.wt,jr:t.Wt[0],qr:Math.max(t.Wt[1],a),Yr:Math.min(t.Wt[2],a),Kr:a,Gr:this.Fr(t.Gr,i.Gr),Zr:r,zr:!1}}Nr(t,i,n,s=!1,e){if(!s||!n||!e)return{Wr:t.Wr,Hr:i.$n,Ur:t.Ur,$r:i.wt,jr:t.jr,qr:t.qr>i.Wt[1]?t.qr:i.Wt[1],Yr:t.Yr<i.Wt[2]?t.Yr:i.Wt[2],Kr:i.Wt[3],Gr:t.Gr+(i.Gr??1),Zr:t.Zr,zr:!1};const r=t.Zr,h=this.Xr(i,e),a=r?{data:r,index:t.Wr,originalTime:t.Ur,time:t.Ur,priceValues:e(r)}:null,l=a?n(a,h):h.data,o=a?e(l):h.priceValues,_=o.length?o[o.length-1]:0;return{Wr:t.Wr,Hr:i.$n,Ur:t.Ur,$r:i.wt,jr:t.jr,qr:Math.max(t.qr,_),Yr:Math.min(t.Yr,_),Kr:_,Gr:t.Gr+(i.Gr??1),Zr:l,zr:!1}}Jr(t,i,n,s,e,r,h=!1,a){const l=i===s?e:t[i];if(n-i==1)return this.Or(l,!0);const o=i+1===s?e:t[i+1];let _=this.Lr(l,o,r,h,a);for(let l=i+2;l<n;l++){const i=l===s?e:t[l];_=this.Nr(_,i,r,h,a)}return _}Xr(t,i){const n=t.ue??{};return{data:t.ue,index:t.$n,originalTime:t.Qr,time:t.wt,priceValues:i(n)}}th(t,i=!1){const n=!0===i,s=!!t.Zr;return{...{$n:t.Wr,wt:t.Ur,Qr:t.Ur,Wt:[n?t.Kr:t.jr,t.qr,t.Yr,t.Kr],Gr:t.Gr},ue:n?s?t.Zr:{wt:t.Ur}:void 0}}Ar(t,i=!1){return t.map((t=>this.th(t,i)))}Dr(t,i,n,s,e=!1,r,h){if(0===s.length)return s;const a=t.length-1,l=Math.floor(a/n)*n;if(Math.min(l+n,t.length)-l<n&&t.length>n){const s=t.slice();return s[s.length-1]=i,this.Cr(s,n,r,e,h)}if(Math.floor((a-1)/n)===Math.floor(a/n)||1===s.length){const o=Math.min(l+n,t.length),_=o-l;if(_<=0)return s;const u=1===_?this.Or(l===a?i:t[l],!0):this.Jr(t,l,o,a,i,r,e,h);return s[s.length-1]=this.th(u,e),s}{const s=t.slice();return s[s.length-1]=i,this.Cr(s,n,r,e,h)}}Or(t,i=!1){return{Wr:t.$n,Hr:t.$n,Ur:t.wt,$r:t.wt,jr:t.Wt[0],qr:t.Wt[1],Yr:t.Wt[2],Kr:t.Wt[3],Gr:t.Gr??1,Zr:t.ue,zr:i}}Pr(t){const i=this.ih(t),n=this.Ir(t);return i.nh!==n&&(i.kr.clear(),i.nh=n),i}ih(t){let i=this.br.get(t);return void 0===i&&(i={nh:this.Ir(t),kr:new Map},this.br.set(t,i)),i}}class yt extends Y{constructor(t){super(),this.sn=t}Qt(){return this.sn}}const Pt={Bar:(t,i,n,s)=>{const e=i.upColor,r=i.downColor,h=u(t(n,s)),a=c(h.Wt[0])<=c(h.Wt[3]);return{sh:h.R??(a?e:r)}},Candlestick:(t,i,n,s)=>{const e=i.upColor,r=i.downColor,h=i.borderUpColor,a=i.borderDownColor,l=i.wickUpColor,o=i.wickDownColor,_=u(t(n,s)),d=c(_.Wt[0])<=c(_.Wt[3]);return{sh:_.R??(d?e:r),eh:_.Ht??(d?h:a),rh:_.hh??(d?l:o)}},Custom:(t,i,n,s)=>({sh:u(t(n,s)).R??i.color}),Area:(t,i,n,s)=>{const e=u(t(n,s));return{sh:e.vt??i.lineColor,vt:e.vt??i.lineColor,ah:e.ah??i.topColor,oh:e.oh??i.bottomColor}},Baseline:(t,i,n,s)=>{const e=u(t(n,s));return{sh:e.Wt[3]>=i.baseValue.price?i.topLineColor:i.bottomLineColor,_h:e._h??i.topLineColor,uh:e.uh??i.bottomLineColor,dh:e.dh??i.topFillColor1,fh:e.fh??i.topFillColor2,ph:e.ph??i.bottomFillColor1,mh:e.mh??i.bottomFillColor2}},Line:(t,i,n,s)=>{const e=u(t(n,s));return{sh:e.R??i.color,vt:e.R??i.color}},Histogram:(t,i,n,s)=>({sh:u(t(n,s)).R??i.color})};class kt{constructor(t){this.wh=(t,i)=>void 0!==i?i.Wt:this.Te.Un().Mh(t),this.Te=t,this.gh=Pt[t.bh()]}Sh(t,i){return this.gh(this.wh,this.Te.N(),t,i)}}function Tt(t,i,n,s,e=0,r=i.length){let h=r-e;for(;0<h;){const r=h>>1,a=e+r;s(i[a],n)===t?(e=a+1,h-=r+1):h=r}return e}const Rt=Tt.bind(null,!0),Dt=Tt.bind(null,!1);var It;!function(t){t[t.NearestLeft=-1]=\"NearestLeft\",t[t.None=0]=\"None\",t[t.NearestRight=1]=\"NearestRight\"}(It||(It={}));const Vt=30;class Bt{constructor(){this.xh=[],this.Ch=new Map,this.yh=new Map,this.Ph=[]}kh(){return this.Th()>0?this.xh[this.xh.length-1]:null}Rh(){return this.Th()>0?this.Dh(0):null}Qn(){return this.Th()>0?this.Dh(this.xh.length-1):null}Th(){return this.xh.length}Zi(){return 0===this.Th()}ze(t){return null!==this.Ih(t,0)}Mh(t){return this.Hn(t)}Hn(t,i=0){const n=this.Ih(t,i);return null===n?null:{...this.Vh(n),$n:this.Dh(n)}}Bh(){return this.xh}Eh(t,i,n){if(this.Zi())return null;let s=null;for(const e of n){s=Et(s,this.Ah(t,i,e))}return s}ht(t){this.yh.clear(),this.Ch.clear(),this.xh=t,this.Ph=t.map((t=>t.$n))}Lh(){return this.Ph}Dh(t){return this.xh[t].$n}Vh(t){return this.xh[t]}Ih(t,i){const n=this.zh(t);if(null===n&&0!==i)switch(i){case-1:return this.Oh(t);case 1:return this.Nh(t);default:throw new TypeError(\"Unknown search mode\")}return n}Oh(t){let i=this.Fh(t);return i>0&&(i-=1),i!==this.xh.length&&this.Dh(i)<t?i:null}Nh(t){const i=this.Wh(t);return i!==this.xh.length&&t<this.Dh(i)?i:null}zh(t){const i=this.Fh(t);return i===this.xh.length||t<this.xh[i].$n?null:i}Fh(t){return Rt(this.xh,t,((t,i)=>t.$n<i))}Wh(t){return Dt(this.xh,t,((t,i)=>t.$n>i))}Hh(t,i,n){let s=null;for(let e=t;e<i;e++){const t=this.xh[e].Wt[n];Number.isNaN(t)||(null===s?s={Uh:t,$h:t}:(t<s.Uh&&(s.Uh=t),t>s.$h&&(s.$h=t)))}return s}Ah(t,i,n){if(this.Zi())return null;let s=null;const e=u(this.Rh()),r=u(this.Qn()),h=Math.max(t,e),a=Math.min(i,r),l=Math.ceil(h/Vt)*Vt,o=Math.max(l,Math.floor(a/Vt)*Vt);{const t=this.Fh(h),e=this.Wh(Math.min(a,l,i));s=Et(s,this.Hh(t,e,n))}let _=this.Ch.get(n);void 0===_&&(_=new Map,this.Ch.set(n,_));for(let t=Math.max(l+1,h);t<o;t+=Vt){const i=Math.floor(t/Vt);let e=_.get(i);if(void 0===e){const t=this.Fh(i*Vt),s=this.Wh((i+1)*Vt-1);e=this.Hh(t,s,n),_.set(i,e)}s=Et(s,e)}{const t=this.Fh(o),i=this.Wh(a);s=Et(s,this.Hh(t,i,n))}return s}}function Et(t,i){if(null===t)return i;if(null===i)return t;return{Uh:Math.min(t.Uh,i.Uh),$h:Math.max(t.$h,i.$h)}}function At(){return new Bt}const Lt={setLineStyle:a};class zt{constructor(t){this.jh=t}st(t,i,n){this.jh.draw(t,Lt)}qh(t,i,n){this.jh.drawBackground?.(t,Lt)}}class Ot{constructor(t){this.Ls=null,this.Yh=t}Tt(){const t=this.Yh.renderer();if(null===t)return null;if(this.Ls?.Kh===t)return this.Ls.Gh;const i=new zt(t);return this.Ls={Kh:t,Gh:i},i}Zh(){return this.Yh.zOrder?.()??\"normal\"}}class Nt{constructor(t){this.Xh=null,this.Jh=t}Qh(){return this.Jh}Nn(){this.Jh.updateAllViews?.()}jn(){const t=this.Jh.paneViews?.()??[];if(this.Xh?.Kh===t)return this.Xh.Gh;const i=t.map((t=>new Ot(t)));return this.Xh={Kh:t,Gh:i},i}Qs(t,i){return this.Jh.hitTest?.(t,i)??null}}let Ft=class extends Nt{cn(){return[]}};class Wt{constructor(t){this.jh=t}st(t,i,n){this.jh.draw(t,Lt)}qh(t,i,n){this.jh.drawBackground?.(t,Lt)}}class Ht{constructor(t){this.Ls=null,this.Yh=t}Tt(){const t=this.Yh.renderer();if(null===t)return null;if(this.Ls?.Kh===t)return this.Ls.Gh;const i=new Wt(t);return this.Ls={Kh:t,Gh:i},i}Zh(){return this.Yh.zOrder?.()??\"normal\"}}function Ut(t){return{ri:t.text(),Ei:t.coordinate(),Vi:t.fixedCoordinate?.(),R:t.textColor(),Z:t.backColor(),It:t.visible?.()??!0,pi:t.tickVisible?.()??!0}}class $t{constructor(t,i){this.Xt=new j,this.ta=t,this.ia=i}Tt(){return this.Xt.ht({nn:this.ia.nn(),...Ut(this.ta)}),this.Xt}}class jt extends H{constructor(t,i){super(),this.ta=t,this.Ki=i}Yi(t,i,n){const s=Ut(this.ta);n.Z=s.Z,t.R=s.R;const e=2/12*this.Ki.P();n.Ti=e,n.Ri=e,n.Ei=s.Ei,n.Vi=s.Vi,t.ri=s.ri,t.It=s.It,t.pi=s.pi}}class qt extends Nt{constructor(t,i){super(t),this.na=null,this.sa=null,this.ea=null,this.ra=null,this.Te=i}dn(){const t=this.Jh.timeAxisViews?.()??[];if(this.na?.Kh===t)return this.na.Gh;const i=this.Te.Qt().Et(),n=t.map((t=>new $t(t,i)));return this.na={Kh:t,Gh:n},n}qn(){const t=this.Jh.priceAxisViews?.()??[];if(this.sa?.Kh===t)return this.sa.Gh;const i=this.Te.Ft(),n=t.map((t=>new jt(t,i)));return this.sa={Kh:t,Gh:n},n}ha(){const t=this.Jh.priceAxisPaneViews?.()??[];if(this.ea?.Kh===t)return this.ea.Gh;const i=t.map((t=>new Ht(t)));return this.ea={Kh:t,Gh:i},i}aa(){const t=this.Jh.timeAxisPaneViews?.()??[];if(this.ra?.Kh===t)return this.ra.Gh;const i=t.map((t=>new Ht(t)));return this.ra={Kh:t,Gh:i},i}la(t,i){return this.Jh.autoscaleInfo?.(t,i)??null}}function Yt(t,i,n,s){t.forEach((t=>{i(t).forEach((t=>{t.Zh()===n&&s.push(t)}))}))}function Kt(t){return t.jn()}function Gt(t){return t.ha()}function Zt(t){return t.aa()}const Xt=[\"Area\",\"Line\",\"Baseline\"];class Jt extends yt{constructor(t,i,n,s,e){super(t),this.qt=At(),this.dr=new ft(this),this.oa=[],this._a=new _t(this),this.ua=null,this.ca=null,this.da=null,this.fa=[],this.pa=new Ct,this.va=new Map,this.ma=null,this.yn=n,this.wa=i;const r=new pt(this);if(this.mn=[r],this.pr=new at(r,this,t),Xt.includes(this.wa)&&(this.ua=new dt(this)),this.Ma(),this.Yh=s(this,this.Qt(),e),\"Custom\"===this.wa){const t=this.Yh;t.ga&&this.ba(t.ga)}}m(){null!==this.da&&clearTimeout(this.da)}We(t){return this.yn.priceLineColor||t}Ae(t){const i={Le:!0},n=this.Ft();if(this.Qt().Et().Zi()||n.Zi()||this.qt.Zi())return i;const s=this.Qt().Et().Ee(),e=this.Lt();if(null===s||null===e)return i;let r,h;if(t){const t=this.qt.kh();if(null===t)return i;r=t,h=t.$n}else{const t=this.qt.Hn(s.bi(),-1);if(null===t)return i;if(r=this.qt.Mh(t.$n),null===r)return i;h=t.$n}const a=r.Wt[3],l=this.Sa().Sh(h,{Wt:r}),o=n.Nt(a,e.Wt);return{Le:!1,Mt:a,ri:n.Ji(a,e.Wt),qe:n.xa(a),Ye:n.Ca(a,e.Wt),R:l.sh,Ei:o,$n:h}}Sa(){return null!==this.ca||(this.ca=new kt(this)),this.ca}N(){return this.yn}vr(t){const i=this.Qt(),{priceScaleId:n,visible:s,priceFormat:e}=t;void 0!==n&&n!==this.yn.priceScaleId&&i.ya(this,n),void 0!==s&&s!==this.yn.visible&&i.Pa();const r=void 0!==t.conflationThresholdFactor;f(this.yn,t),Object.prototype.hasOwnProperty.call(t,\"autoscaleInfoProvider\")&&void 0===t.autoscaleInfoProvider&&(this.yn.autoscaleInfoProvider=void 0),r&&(this.va.clear(),this.Qt().mr()),void 0!==e&&(this.Ma(),i.ka()),i.Ta(this),i.Ra(),this.Yh.Pt(\"options\")}ht(t,i){this.qt.ht(t),this.va.clear();const n=this.Qt().Et().N();n.enableConflation&&n.precomputeConflationOnInit&&this.Da(n.precomputeConflationPriority),this.Ia(),null!==this.ua&&(i&&i.Va?this.ua.De():0===t.length&&this.ua.Re());const s=this.Qt().Ks(this);this.Qt().Ba(s),this.Qt().Ta(this),this.Qt().Ra(),this.Qt().mr()}Ia(){this.Yh.Pt(\"data\")}Ea(t){const i=new xt(this,t);return this.oa.push(i),this.Qt().Ta(this),i}Aa(t){const i=this.oa.indexOf(t);-1!==i&&this.oa.splice(i,1),this.Qt().Ta(this)}La(){return this.oa}bh(){return this.wa}Lt(){const t=this.za();return null===t?null:{Wt:t.Wt[3],Oa:t.wt}}za(){const t=this.Qt().Et().Ee();if(null===t)return null;const i=t.Na();return this.qt.Hn(i,1)}Un(){return this.qt}ba(t){this.ma=t,this.va.clear()}Fa(){return!!this.Qt().Et().N().enableConflation&&this.Wa()>1}Rr(t){if(!this.Fa())return;const i=this.Wa();if(!this.va.has(i))return;const n=\"Custom\"===this.wa,s=n&&this.ma||void 0,e=n&&this.Yh.Ha?t=>{const i=t,n=this.Yh.Ha(i);return Array.isArray(n)?n:[\"number\"==typeof n?n:0]}:void 0,r=this.pa.Rr(this.qt.Bh(),t,i,s,n,e),h=At();h.ht(r),this.va.set(i,h)}Ua(){const t=this.Qt().Et().N().enableConflation;if(\"Custom\"===this.wa&&null===this.ma)return this.qt;if(!t)return this.qt;const i=this.Wa(),n=this.va.get(i);if(n)return n;this.$a(i);return this.va.get(i)??this.qt}ja(t){const i=this.qt.Mh(t);return null===i?null:\"Bar\"===this.wa||\"Candlestick\"===this.wa||\"Custom\"===this.wa?{jr:i.Wt[0],qr:i.Wt[1],Yr:i.Wt[2],Kr:i.Wt[3]}:i.Wt[3]}qa(t){const i=[];Yt(this.fa,Kt,\"top\",i);const n=this.ua;return null!==n&&n.It()?(null===this.da&&n.Ve()&&(this.da=setTimeout((()=>{this.da=null,this.Qt().Ya()}),0)),n.Ie(),i.unshift(n),i):i}jn(){const t=[];this.Ka()||t.push(this._a),t.push(this.Yh,this.dr);const i=this.oa.map((t=>t.wr()));return t.push(...i),Yt(this.fa,Kt,\"normal\",t),t}Ga(){const t=this.Yh.Ga?.()??null;if(null===t)return null;const i=[];this.Ka()||i.push(this._a),i.push(...t.Za),Yt(this.fa,Kt,\"normal\",i);const n=[];n.push(...t.qa,this.dr);const s=this.oa.map((t=>t.wr()));return n.push(...s),{Za:i,qa:n}}Xa(){return this.Ja(Kt,\"bottom\")}Qa(t){return this.Ja(Gt,t)}tl(t){return this.Ja(Zt,t)}il(t,i){return this.fa.map((n=>n.Qs(t,i))).filter((t=>null!==t))}cn(){return[this.pr,...this.oa.map((t=>t.Mr()))]}qn(t,i){if(i!==this.hn&&!this.Ka())return[];const n=[...this.mn];for(const t of this.oa)n.push(t.gr());return this.fa.forEach((t=>{n.push(...t.qn())})),n}dn(){const t=[];return this.fa.forEach((i=>{t.push(...i.dn())})),t}la(t,i){if(void 0!==this.yn.autoscaleInfoProvider){const n=this.yn.autoscaleInfoProvider((()=>{const n=this.nl(t,i);return null===n?null:n.sr()}));return wt.er(n)}return this.nl(t,i)}Kh(){const t=this.yn.priceFormat;return t.base??1/t.minMove}sl(){return this.el}Nn(){this.Yh.Pt();for(const t of this.mn)t.Pt();for(const t of this.oa)t.Pt();this.dr.Pt(),this._a.Pt(),this.ua?.Pt(),this.fa.forEach((t=>t.Nn()))}Ft(){return u(super.Ft())}At(t){if(!((\"Line\"===this.wa||\"Area\"===this.wa||\"Baseline\"===this.wa)&&this.yn.crosshairMarkerVisible))return null;const i=this.qt.Mh(t);if(null===i)return null;return{Mt:i.Wt[3],ft:this.rl(),Ht:this.hl(),Ot:this.al(),zt:this.ll(t)}}He(){return this.yn.title}It(){return this.yn.visible}ol(t){this.fa.push(new qt(t,this))}_l(t){this.fa=this.fa.filter((i=>i.Qh()!==t))}ul(){if(\"Custom\"===this.wa)return t=>this.Yh.Ha(t)}cl(){if(\"Custom\"===this.wa)return t=>this.Yh.dl(t)}fl(){return this.qt.Lh()}Ka(){return!Z(this.Ft().pl())}nl(t,i){if(!v(t)||!v(i)||this.qt.Zi())return null;const n=\"Line\"===this.wa||\"Area\"===this.wa||\"Baseline\"===this.wa||\"Histogram\"===this.wa?[3]:[2,1],s=this.qt.Eh(t,i,n);let e=null!==s?new mt(s.Uh,s.$h):null,r=null;if(\"Histogram\"===this.bh()){const t=this.yn.base,i=new mt(t,t);e=null!==e?e.Ss(i):i}return this.fa.forEach((n=>{const s=n.la(t,i);if(s?.priceRange){const t=new mt(s.priceRange.minValue,s.priceRange.maxValue);e=null!==e?e.Ss(t):t}s?.margins&&(r=s.margins)})),new wt(e,r)}rl(){switch(this.wa){case\"Line\":case\"Area\":case\"Baseline\":return this.yn.crosshairMarkerRadius}return 0}hl(){switch(this.wa){case\"Line\":case\"Area\":case\"Baseline\":{const t=this.yn.crosshairMarkerBorderColor;if(0!==t.length)return t}}return null}al(){switch(this.wa){case\"Line\":case\"Area\":case\"Baseline\":return this.yn.crosshairMarkerBorderWidth}return 0}ll(t){switch(this.wa){case\"Line\":case\"Area\":case\"Baseline\":{const t=this.yn.crosshairMarkerBackgroundColor;if(0!==t.length)return t}}return this.Sa().Sh(t).sh}Ma(){switch(this.yn.priceFormat.type){case\"custom\":{const t=this.yn.priceFormat.formatter;this.el={format:t,formatTickmarks:this.yn.priceFormat.tickmarksFormatter??(i=>i.map(t))};break}case\"volume\":this.el=new st(this.yn.priceFormat.precision);break;case\"percent\":this.el=new nt(this.yn.priceFormat.precision);break;default:{const t=Math.pow(10,this.yn.priceFormat.precision);this.el=new it(t,this.yn.priceFormat.minMove*t)}}null!==this.hn&&this.hn.vl()}Ja(t,i){const n=[];return Yt(this.fa,t,i,n),n}Wa(){const{ml:t,wl:i,Ml:n}=this.gl();return this.pa.Sr(t,i,n)}gl(){const t=this.Qt().Et(),i=t.ml(),n=window.devicePixelRatio||1,s=t.N().conflationThresholdFactor;return{ml:i,wl:n,Ml:this.yn.conflationThresholdFactor??s??1}}bl(t){const i=this.qt.Bh();let n;if(\"Custom\"===this.wa&&null!==this.ma){const s=this.ul();if(!s)throw new Error(gt);n=this.pa.Cr(i,t,this.ma,!0,(t=>s(t)))}else n=this.pa.Cr(i,t);const s=At();return s.ht(n),s}$a(t){const i=this.bl(t);this.va.set(t,i)}Da(t){if(\"Custom\"===this.wa&&(null===this.ma||!this.ul()))return;this.va.clear();const i=this.Qt().Et().Sl();for(const n of i){const i=()=>{this.xl(n)},s=\"object\"==typeof window&&window||\"object\"==typeof self&&self;s?.yl?.Cl?s.yl.Cl((()=>{i()}),{se:t}):Promise.resolve().then((()=>i()))}}xl(t){if(this.va.has(t))return;if(0===this.qt.Bh().length)return;const i=this.bl(t);this.va.set(t,i)}}const Qt=[3],ti=[0,1,2,3];class ii{constructor(t){this.yn=t}Pl(t,i,n){let s=t;if(0===this.yn.mode)return s;const e=n.kn(),r=e.Lt();if(null===r)return s;const h=e.Nt(t,r),a=n.kl().filter((t=>t instanceof Jt)).reduce(((t,s)=>{if(n.Gs(s)||!s.It())return t;const e=s.Ft(),r=s.Un();if(e.Zi()||!r.ze(i))return t;const h=r.Mh(i);if(null===h)return t;const a=c(s.Lt()),l=3===this.yn.mode?ti:Qt;return t.concat(l.map((t=>e.Nt(h.Wt[t],a.Wt))))}),[]);if(0===a.length)return s;a.sort(((t,i)=>Math.abs(t-h)-Math.abs(i-h)));const l=a[0];return s=e.Tn(l,r),s}}function ni(t,i,n){return Math.min(Math.max(t,i),n)}function si(t,i,n){return i-t<=n}function ei(t){const i=Math.ceil(t);return i%2==0?i-1:i}class ri extends R{constructor(){super(...arguments),this.qt=null}ht(t){this.qt=t}et({context:t,bitmapSize:i,horizontalPixelRatio:n,verticalPixelRatio:s}){if(null===this.qt)return;const e=Math.max(1,Math.floor(n));t.lineWidth=e,function(t,i){t.save(),t.lineWidth%2&&t.translate(.5,.5),i(),t.restore()}(t,(()=>{const r=u(this.qt);if(r.Tl){t.strokeStyle=r.Rl,a(t,r.Dl),t.beginPath();for(const s of r.Il){const r=Math.round(s.Vl*n);t.moveTo(r,-e),t.lineTo(r,i.height+e)}t.stroke()}if(r.Bl){t.strokeStyle=r.El,a(t,r.Al),t.beginPath();for(const n of r.Ll){const r=Math.round(n.Vl*s);t.moveTo(-e,r),t.lineTo(i.width+e,r)}t.stroke()}}))}}class hi{constructor(t){this.Xt=new ri,this.xt=!0,this.yt=t}Pt(){this.xt=!0}Tt(){if(this.xt){const t=this.yt.Qt().N().grid,i={Bl:t.horzLines.visible,Tl:t.vertLines.visible,El:t.horzLines.color,Rl:t.vertLines.color,Al:t.horzLines.style,Dl:t.vertLines.style,Ll:this.yt.kn().zl(),Il:(this.yt.Qt().Et().zl()||[]).map((t=>({Vl:t.coord})))};this.Xt.ht(i),this.xt=!1}return this.Xt}}class ai{constructor(t){this.Yh=new hi(t)}wr(){return this.Yh}}const li={Ol:4,Nl:1e-4};function oi(t,i){const n=100*(t-i)/i;return i<0?-n:n}function _i(t,i){const n=oi(t.Je(),i),s=oi(t.Qe(),i);return new mt(n,s)}function ui(t,i){const n=100*(t-i)/i+100;return i<0?-n:n}function ci(t,i){const n=ui(t.Je(),i),s=ui(t.Qe(),i);return new mt(n,s)}function di(t,i){const n=Math.abs(t);if(n<1e-15)return 0;const s=Math.log10(n+i.Nl)+i.Ol;return t<0?-s:s}function fi(t,i){const n=Math.abs(t);if(n<1e-15)return 0;const s=Math.pow(10,n-i.Ol)-i.Nl;return t<0?-s:s}function pi(t,i){if(null===t)return null;const n=di(t.Je(),i),s=di(t.Qe(),i);return new mt(n,s)}function vi(t,i){if(null===t)return null;const n=fi(t.Je(),i),s=fi(t.Qe(),i);return new mt(n,s)}function mi(t){if(null===t)return li;const i=Math.abs(t.Qe()-t.Je());if(i>=1||i<1e-15)return li;const n=Math.ceil(Math.abs(Math.log10(i))),s=li.Ol+n;return{Ol:s,Nl:1/Math.pow(10,s)}}class wi{constructor(t,i){if(this.Fl=t,this.Wl=i,function(t){if(t<0)return!1;if(t>1e18)return!0;for(let i=t;i>1;i/=10)if(i%10!=0)return!1;return!0}(this.Fl))this.Hl=[2,2.5,2];else{this.Hl=[];for(let t=this.Fl;1!==t;){if(t%2==0)this.Hl.push(2),t/=2;else{if(t%5!=0)throw new Error(\"unexpected base\");this.Hl.push(2,2.5),t/=5}if(this.Hl.length>100)throw new Error(\"something wrong with base\")}}}Ul(t,i,n){const s=0===this.Fl?0:1/this.Fl;let e=Math.pow(10,Math.max(0,Math.ceil(Math.log10(t-i)))),r=0,h=this.Wl[0];for(;;){const t=si(e,s,1e-14)&&e>s+1e-14,i=si(e,n*h,1e-14),a=si(e,1,1e-14);if(!(t&&i&&a))break;e/=h,h=this.Wl[++r%this.Wl.length]}if(e<=s+1e-14&&(e=s),e=Math.max(1,e),this.Hl.length>0&&(a=e,l=1,o=1e-14,Math.abs(a-l)<o))for(r=0,h=this.Hl[0];si(e,n*h,1e-14)&&e>s+1e-14;)e/=h,h=this.Hl[++r%this.Hl.length];var a,l,o;return e}}class Mi{constructor(t,i,n,s){this.$l=[],this.Ki=t,this.Fl=i,this.jl=n,this.ql=s}Ul(t,i){if(t<i)throw new Error(\"high < low\");const n=this.Ki.$t(),s=(t-i)*this.Yl()/n,e=new wi(this.Fl,[2,2.5,2]),r=new wi(this.Fl,[2,2,2.5]),h=new wi(this.Fl,[2.5,2,2]),a=[];return a.push(e.Ul(t,i,s),r.Ul(t,i,s),h.Ul(t,i,s)),function(t){if(t.length<1)throw Error(\"array is empty\");let i=t[0];for(let n=1;n<t.length;++n)t[n]<i&&(i=t[n]);return i}(a)}Kl(){const t=this.Ki,i=t.Lt();if(null===i)return void(this.$l=[]);const n=t.$t(),s=this.jl(n-1,i),e=this.jl(0,i),r=this.Ki.N().entireTextOnly?this.Gl()/2:0,h=r,a=n-1-r,l=Math.max(s,e),o=Math.min(s,e);if(l===o)return void(this.$l=[]);const _=this.Ul(l,o);if(this.Zl(i,_,l,o,h,a),t.Xl()&&this.Jl(_,o,l)){const t=this.Ki.Ql();this.io(i,_,h,a,t,2*t)}const u=this.$l.map((t=>t.no)),c=this.Ki.so(u);for(let t=0;t<this.$l.length;t++)this.$l[t].eo=c[t]}zl(){return this.$l}Gl(){return this.Ki.P()}Yl(){return Math.ceil(this.Gl()*this.Ki.N().tickMarkDensity)}Zl(t,i,n,s,e,r){const h=this.$l,a=this.Ki;let l=n%i;l+=l<0?i:0;const o=n>=s?1:-1;let _=null,u=0;for(let c=n-l;c>s;c-=i){const n=this.ql(c,t,!0);null!==_&&Math.abs(n-_)<this.Yl()||(n<e||n>r||(u<h.length?(h[u].Vl=n,h[u].eo=a.ro(c),h[u].no=c):h.push({Vl:n,eo:a.ro(c),no:c}),u++,_=n,a.ho()&&(i=this.Ul(c*o,s))))}h.length=u}io(t,i,n,s,e,r){const h=this.$l,a=this.ao(t,n,e,r),l=this.ao(t,s,-r,-e),o=this.ql(0,t,!0)-this.ql(i,t,!0);h.length>0&&h[0].Vl-a.Vl<o/2&&h.shift(),h.length>0&&l.Vl-h[h.length-1].Vl<o/2&&h.pop(),h.unshift(a),h.push(l)}ao(t,i,n,s){const e=(n+s)/2,r=this.jl(i+n,t),h=this.jl(i+s,t),a=Math.min(r,h),l=Math.max(r,h),o=Math.max(.1,this.Ul(l,a)),_=this.jl(i+e,t),u=_-_%o,c=this.ql(u,t,!0);return{eo:this.Ki.ro(u),Vl:c,no:u}}Jl(t,i,n){let s=c(this.Ki.ar());return this.Ki.ho()&&(s=vi(s,this.Ki.lo())),s.Je()-i<t&&n-s.Qe()<t}}function gi(t){return t.slice().sort(((t,i)=>u(t.ln())-u(i.ln())))}var bi;!function(t){t[t.Normal=0]=\"Normal\",t[t.Logarithmic=1]=\"Logarithmic\",t[t.Percentage=2]=\"Percentage\",t[t.IndexedTo100=3]=\"IndexedTo100\"}(bi||(bi={}));const Si=new nt,xi=new it(100,1);class Ci{constructor(t,i,n,s,e){this.oo=0,this._o=null,this.rr=null,this.uo=null,this.co={do:!1,fo:null},this.po=!1,this.vo=0,this.mo=0,this.wo=new d,this.Mo=new d,this.bo=[],this.So=null,this.xo=null,this.Co=null,this.yo=null,this.Po=null,this.el=xi,this.ko=mi(null),this.To=t,this.yn=i,this.Ro=n,this.Do=s,this.Io=e,this.Vo=new Mi(this,100,this.Bo.bind(this),this.Eo.bind(this))}pl(){return this.To}N(){return this.yn}vr(t){if(f(this.yn,t),this.vl(),void 0!==t.mode&&this.Ao({_e:t.mode}),void 0!==t.scaleMargins){const i=_(t.scaleMargins.top),n=_(t.scaleMargins.bottom);if(i<0||i>1)throw new Error(`Invalid top margin - expect value between 0 and 1, given=${i}`);if(n<0||n>1)throw new Error(`Invalid bottom margin - expect value between 0 and 1, given=${n}`);if(i+n>1)throw new Error(`Invalid margins - sum of margins must be less than 1, given=${i+n}`);this.Lo(),this.Co=null}}zo(){return this.yn.autoScale}Oo(){return this.po}ho(){return 1===this.yn.mode}je(){return 2===this.yn.mode}No(){return 3===this.yn.mode}lo(){return this.ko}_e(){return{hs:this.yn.autoScale,Fo:this.yn.invertScale,_e:this.yn.mode}}Ao(t){const i=this._e();let n=null;void 0!==t.hs&&(this.yn.autoScale=t.hs),void 0!==t._e&&(this.yn.mode=t._e,2!==t._e&&3!==t._e||(this.yn.autoScale=!0),this.co.do=!1),1===i._e&&t._e!==i._e&&(!function(t,i){if(null===t)return!1;const n=fi(t.Je(),i),s=fi(t.Qe(),i);return isFinite(n)&&isFinite(s)}(this.rr,this.ko)?this.yn.autoScale=!0:(n=vi(this.rr,this.ko),null!==n&&this.Wo(n))),1===t._e&&t._e!==i._e&&(n=pi(this.rr,this.ko),null!==n&&this.Wo(n));const s=i._e!==this.yn.mode;s&&(2===i._e||this.je())&&this.vl(),s&&(3===i._e||this.No())&&this.vl(),void 0!==t.Fo&&i.Fo!==t.Fo&&(this.yn.invertScale=t.Fo,this.Ho()),this.Mo.p(i,this._e())}Uo(){return this.Mo}P(){return this.Ro.fontSize}$t(){return this.oo}$o(t){this.oo!==t&&(this.oo=t,this.Lo(),this.Co=null)}jo(){if(this._o)return this._o;const t=this.$t()-this.qo()-this.Yo();return this._o=t,t}ar(){return this.Ko(),this.rr}Wo(t,i){const n=this.rr;(i||null===n&&null!==t||null!==n&&!n.Ze(t))&&(this.Co=null,this.rr=t)}Go(t){this.Wo(t),this.Zo(null!==t)}Zi(){return this.Ko(),0===this.oo||!this.rr||this.rr.Zi()}Xo(t){return this.Fo()?t:this.$t()-1-t}Nt(t,i){return this.je()?t=oi(t,i):this.No()&&(t=ui(t,i)),this.Eo(t,i)}Jo(t,i,n){this.Ko();const s=this.Yo(),e=u(this.ar()),r=e.Je(),h=e.Qe(),a=this.jo()-1,l=this.Fo(),o=a/(h-r),_=void 0===n?0:n.from,c=void 0===n?t.length:n.to,d=this.Qo();for(let n=_;n<c;n++){const e=t[n],h=e.Mt;if(isNaN(h))continue;let a=h;null!==d&&(a=d(e.Mt,i));const _=s+o*(a-r),u=l?_:this.oo-1-_;e.ut=u}}t_(t,i,n){this.Ko();const s=this.Yo(),e=u(this.ar()),r=e.Je(),h=e.Qe(),a=this.jo()-1,l=this.Fo(),o=a/(h-r),_=void 0===n?0:n.from,c=void 0===n?t.length:n.to,d=this.Qo();for(let n=_;n<c;n++){const e=t[n];let h=e.jr,a=e.qr,_=e.Yr,u=e.Kr;null!==d&&(h=d(e.jr,i),a=d(e.qr,i),_=d(e.Yr,i),u=d(e.Kr,i));let c=s+o*(h-r),f=l?c:this.oo-1-c;e.i_=f,c=s+o*(a-r),f=l?c:this.oo-1-c,e.n_=f,c=s+o*(_-r),f=l?c:this.oo-1-c,e.s_=f,c=s+o*(u-r),f=l?c:this.oo-1-c,e.e_=f}}Tn(t,i){const n=this.Bo(t,i);return this.r_(n,i)}r_(t,i){let n=t;return this.je()?n=function(t,i){return i<0&&(t=-t),t/100*i+i}(n,i):this.No()&&(n=function(t,i){return t-=100,i<0&&(t=-t),t/100*i+i}(n,i)),n}kl(){return this.bo}Dt(){return this.xo||(this.xo=gi(this.bo)),this.xo}h_(t){-1===this.bo.indexOf(t)&&(this.bo.push(t),this.vl(),this.a_())}l_(t){const i=this.bo.indexOf(t);if(-1===i)throw new Error(\"source is not attached to scale\");this.bo.splice(i,1),0===this.bo.length&&(this.Ao({hs:!0}),this.Wo(null)),this.vl(),this.a_()}Lt(){let t=null;for(const i of this.bo){const n=i.Lt();null!==n&&((null===t||n.Oa<t.Oa)&&(t=n))}return null===t?null:t.Wt}Fo(){return this.yn.invertScale}zl(){const t=null===this.Lt();if(null!==this.Co&&(t||this.Co.o_===t))return this.Co.zl;this.Vo.Kl();const i=this.Vo.zl();return this.Co={zl:i,o_:t},this.wo.p(),i}__(){return this.wo}u_(t){this.je()||this.No()||null===this.yo&&null===this.uo&&(this.Zi()||(this.yo=this.oo-t,this.uo=u(this.ar()).Xe()))}c_(t){if(this.je()||this.No())return;if(null===this.yo)return;this.Ao({hs:!1}),(t=this.oo-t)<0&&(t=0);let i=(this.yo+.2*(this.oo-1))/(t+.2*(this.oo-1));const n=u(this.uo).Xe();i=Math.max(i,.1),n.ir(i),this.Wo(n)}d_(){this.je()||this.No()||(this.yo=null,this.uo=null)}f_(t){this.zo()||null===this.Po&&null===this.uo&&(this.Zi()||(this.Po=t,this.uo=u(this.ar()).Xe()))}p_(t){if(this.zo())return;if(null===this.Po)return;const i=u(this.ar()).tr()/(this.jo()-1);let n=t-this.Po;this.Fo()&&(n*=-1);const s=n*i,e=u(this.uo).Xe();e.nr(s),this.Wo(e,!0),this.Co=null}v_(){this.zo()||null!==this.Po&&(this.Po=null,this.uo=null)}sl(){return this.el||this.vl(),this.el}Ji(t,i){switch(this.yn.mode){case 2:return this.m_(oi(t,i));case 3:return this.sl().format(ui(t,i));default:return this.cr(t)}}ro(t){switch(this.yn.mode){case 2:return this.m_(t);case 3:return this.sl().format(t);default:return this.cr(t)}}so(t){switch(this.yn.mode){case 2:return this.w_(t);case 3:return this.sl().formatTickmarks(t);default:return this.M_(t)}}xa(t){return this.cr(t,u(this.So).sl())}Ca(t,i){return t=oi(t,i),this.m_(t,Si)}g_(){return this.bo}b_(t){this.co={fo:t,do:!1}}Nn(){this.bo.forEach((t=>t.Nn()))}Xl(){return this.yn.ensureEdgeTickMarksVisible&&this.zo()}Ql(){return this.P()/2}vl(){this.Co=null;let t=1/0;this.So=null;for(const i of this.bo)i.ln()<t&&(t=i.ln(),this.So=i);let i=100;null!==this.So&&(i=Math.round(this.So.Kh())),this.el=xi,this.je()?(this.el=Si,i=100):this.No()?(this.el=new it(100,1),i=100):null!==this.So&&(this.el=this.So.sl()),this.Vo=new Mi(this,i,this.Bo.bind(this),this.Eo.bind(this)),this.Vo.Kl()}a_(){this.xo=null}S_(){return null===this.So||this.je()||this.No()?1:1/this.So.Kh()}Xi(){return this.Io}Zo(t){this.po=t}qo(){return this.Fo()?this.yn.scaleMargins.bottom*this.$t()+this.mo:this.yn.scaleMargins.top*this.$t()+this.vo}Yo(){return this.Fo()?this.yn.scaleMargins.top*this.$t()+this.vo:this.yn.scaleMargins.bottom*this.$t()+this.mo}Ko(){this.co.do||(this.co.do=!0,this.x_())}Lo(){this._o=null}Eo(t,i){if(this.Ko(),this.Zi())return 0;t=this.ho()&&t?di(t,this.ko):t;const n=u(this.ar()),s=this.Yo()+(this.jo()-1)*(t-n.Je())/n.tr();return this.Xo(s)}Bo(t,i){if(this.Ko(),this.Zi())return 0;const n=this.Xo(t),s=u(this.ar()),e=s.Je()+s.tr()*((n-this.Yo())/(this.jo()-1));return this.ho()?fi(e,this.ko):e}Ho(){this.Co=null,this.Vo.Kl()}x_(){if(this.Oo()&&!this.zo())return;const t=this.co.fo;if(null===t)return;let i=null;const n=this.g_();let s=0,e=0;for(const r of n){if(!r.It())continue;const n=r.Lt();if(null===n)continue;const h=r.la(t.Na(),t.bi());let a=h&&h.ar();if(null!==a){switch(this.yn.mode){case 1:a=pi(a,this.ko);break;case 2:a=_i(a,n.Wt);break;case 3:a=ci(a,n.Wt)}if(i=null===i?a:i.Ss(u(a)),null!==h){const t=h.lr();null!==t&&(s=Math.max(s,t.above),e=Math.max(e,t.below))}}}if(this.Xl()&&(s=Math.max(s,this.Ql()),e=Math.max(e,this.Ql())),s===this.vo&&e===this.mo||(this.vo=s,this.mo=e,this.Co=null,this.Lo()),null!==i){if(i.Je()===i.Qe()){const t=5*this.S_();this.ho()&&(i=vi(i,this.ko)),i=new mt(i.Je()-t,i.Qe()+t),this.ho()&&(i=pi(i,this.ko))}if(this.ho()){const t=vi(i,this.ko),n=mi(t);if(r=n,h=this.ko,r.Ol!==h.Ol||r.Nl!==h.Nl){const s=null!==this.uo?vi(this.uo,this.ko):null;this.ko=n,i=pi(t,n),null!==s&&(this.uo=pi(s,n))}}this.Wo(i)}else null===this.rr&&(this.Wo(new mt(-.5,.5)),this.ko=mi(null));var r,h}Qo(){return this.je()?oi:this.No()?ui:this.ho()?t=>di(t,this.ko):null}C_(t,i,n){return void 0===i?(void 0===n&&(n=this.sl()),n.format(t)):i(t)}y_(t,i,n){return void 0===i?(void 0===n&&(n=this.sl()),n.formatTickmarks(t)):i(t)}cr(t,i){return this.C_(t,this.Do.priceFormatter,i)}M_(t,i){const n=this.Do.priceFormatter;return this.y_(t,this.Do.tickmarksPriceFormatter??(n?t=>t.map(n):void 0),i)}m_(t,i){return this.C_(t,this.Do.percentageFormatter,i)}w_(t,i){const n=this.Do.percentageFormatter;return this.y_(t,this.Do.tickmarksPercentageFormatter??(n?t=>t.map(n):void 0),i)}}function yi(t){return t instanceof Jt}class Pi{constructor(t,i){this.bo=[],this.P_=new Map,this.oo=0,this.k_=0,this.T_=1,this.xo=null,this.R_=null,this.D_=!1,this.I_=new d,this.fa=[],this.ia=t,this.sn=i,this.V_=new ai(this);const n=i.N();this.B_=this.E_(\"left\",n.leftPriceScale),this.A_=this.E_(\"right\",n.rightPriceScale),this.B_.Uo().i(this.L_.bind(this,this.B_),this),this.A_.Uo().i(this.L_.bind(this,this.A_),this),this.z_(n)}z_(t){if(t.leftPriceScale&&this.B_.vr(t.leftPriceScale),t.rightPriceScale&&this.A_.vr(t.rightPriceScale),t.localization&&(this.B_.vl(),this.A_.vl()),t.overlayPriceScales){const i=Array.from(this.P_.values());for(const n of i){const i=u(n[0].Ft());i.vr(t.overlayPriceScales),t.localization&&i.vl()}}}O_(t){switch(t){case\"left\":return this.B_;case\"right\":return this.A_}return this.P_.has(t)?_(this.P_.get(t))[0].Ft():null}m(){this.Qt().N_().u(this),this.B_.Uo().u(this),this.A_.Uo().u(this),this.bo.forEach((t=>{t.m&&t.m()})),this.fa=this.fa.filter((t=>{const i=t.Qh();return i.detached&&i.detached(),!1})),this.I_.p()}F_(){return this.T_}W_(t){this.T_=t}Qt(){return this.sn}nn(){return this.k_}$t(){return this.oo}H_(t){this.k_=t,this.U_()}$o(t){this.oo=t,this.B_.$o(t),this.A_.$o(t),this.bo.forEach((i=>{if(this.Gs(i)){const n=i.Ft();null!==n&&n.$o(t)}})),this.U_()}j_(t){this.D_=t}q_(){return this.D_}Y_(){return this.bo.filter(yi)}kl(){return this.bo}Gs(t){const i=t.Ft();return null===i||this.B_!==i&&this.A_!==i}h_(t,i,n){this.K_(t,i,n?t.ln():this.bo.length)}l_(t,i){const n=this.bo.indexOf(t);o(-1!==n,\"removeDataSource: invalid data source\"),this.bo.splice(n,1),i||this.bo.forEach(((t,i)=>t._n(i)));const s=u(t.Ft()).pl();if(this.P_.has(s)){const i=_(this.P_.get(s)),n=i.indexOf(t);-1!==n&&(i.splice(n,1),0===i.length&&this.P_.delete(s))}const e=t.Ft();e&&e.kl().indexOf(t)>=0&&(e.l_(t),this.G_(e)),this.Z_()}Xs(t){return t===this.B_?\"left\":t===this.A_?\"right\":\"overlay\"}X_(){return this.B_}J_(){return this.A_}Q_(t,i){t.u_(i)}tu(t,i){t.c_(i),this.U_()}iu(t){t.d_()}nu(t,i){t.f_(i)}su(t,i){t.p_(i),this.U_()}eu(t){t.v_()}U_(){this.bo.forEach((t=>{t.Nn()}))}kn(){const[t,i]=this.ru();let n=null;return t.N().visible&&0!==t.kl().length?n=t:i.N().visible&&0!==i.kl().length?n=i:0!==this.bo.length&&(n=this.bo[0].Ft()),null===n&&(n=this.Zs()??t),n}Zs(){const[t,i]=this.ru();return t.N().visible?t:i.N().visible?i:null}G_(t){null!==t&&t.zo()&&this.hu(t)}au(t){const i=this.ia.Ee();t.Ao({hs:!0}),null!==i&&t.b_(i),this.U_()}lu(){this.hu(this.B_),this.hu(this.A_)}ou(){this.G_(this.B_),this.G_(this.A_),this.bo.forEach((t=>{this.Gs(t)&&this.G_(t.Ft())})),this.U_(),this.sn.mr()}Dt(){return null===this.xo&&(this.xo=gi(this.bo)),this.xo}_u(){const t=this.Dt(),i=this.sn.cu()?.uu,n=this.sn.N().hoveredSeriesOnTop,s=this.R_;if(null!==s&&s.Kh===t&&s.du===i&&s.fu===n)return s.pu;const e=function(t,i,n){if(!n)return t;const s=t.indexOf(i);if(-1===s||s===t.length-1)return t;const e=[];for(let i=0;i<t.length;i++)i!==s&&e.push(t[i]);return e.push(t[s]),e}(t,i,n);return this.R_={Kh:t,du:i,fu:n,pu:e},e}vu(t,i){i=ni(i,0,this.bo.length-1);const n=this.bo.indexOf(t);o(-1!==n,\"setSeriesOrder: invalid data source\"),this.bo.splice(n,1),this.bo.splice(i,0,t),this.bo.forEach(((t,i)=>t._n(i))),this.Z_();for(const t of[this.B_,this.A_])t.a_(),t.vl();this.sn.mr()}Vt(){return this.Dt().filter(yi)}mu(){return this.I_}wu(){return this.V_}ol(t){this.fa.push(new Ft(t))}_l(t){this.fa=this.fa.filter((i=>i.Qh()!==t)),t.detached&&t.detached(),this.sn.mr()}Mu(){return this.fa}il(t,i){return this.fa.map((n=>n.Qs(t,i))).filter((t=>null!==t))}hu(t){const i=t.g_();if(i&&i.length>0&&!this.ia.Zi()){const i=this.ia.Ee();null!==i&&t.b_(i)}t.Nn()}K_(t,i,n){let s=this.O_(i);if(null===s&&(s=this.E_(i,this.sn.N().overlayPriceScales)),this.bo.splice(n,0,t),!Z(i)){const n=this.P_.get(i)||[];n.push(t),this.P_.set(i,n)}t._n(n),s.h_(t),t.un(s),this.G_(s),this.Z_()}Z_(){this.xo=null,this.R_=null}ru(){return\"left\"===this.sn.N().defaultVisiblePriceScaleId?[this.B_,this.A_]:[this.A_,this.B_]}L_(t,i,n){i._e!==n._e&&this.hu(t)}E_(t,i){const n={visible:!0,autoScale:!0,...M(i)},s=new Ci(t,n,this.sn.N().layout,this.sn.N().localization,this.sn.Xi());return s.$o(this.$t()),s}}function ki(t,i){return null===i||(2===t.se&&2!==i.se||(2!==i.se||2===t.se)&&(t.ne!==i.ne&&t.ne<i.ne))}function Ti(t){return{te:t.te,ie:t.ie}}function Ri(t){return{ne:t.distance??0,se:t.hitTestPriority??(\"marker\"===t.itemType?2:0),ee:t.itemType??\"primitive\",gu:t.cursorStyle,te:t.externalId}}function Di(t){return{uu:t.uu,bu:Ti(t.Su),gu:t.Su.gu,ee:t.Su.ee??\"primitive\"}}function Ii(t,i,n,s){let e=null;for(const r of t){let t=r.Qs?.(i,n,s)??null;if(null===t){const e=r.Tt(s);t=null!==e&&e.Qs?e.Qs(i,n):null}if(null!==t){const i={xu:r,Su:t};(null===e||ki(i.Su,e.Su))&&(e=i)}}return e}function Vi(t){return void 0!==t.jn}function Bi(t,i,n){const s=[t,...t.Dt()].reverse(),e=function(t,i,n){let s,e,r;for(const l of t){const t=l.il?.(i,n)??[];for(const i of t){const t=Ri(i);h=i.zOrder,a=s?.zOrder,(!a||\"top\"===h&&\"top\"!==a||\"normal\"===h&&\"bottom\"===a||i.zOrder===s?.zOrder&&void 0!==e&&ki(t,e)||i.zOrder===s?.zOrder&&void 0===e)&&(s=i,e=t,r=l)}}var h,a;return s&&r&&e?{Su:e,Cu:s,uu:r}:null}(s,i,n);if(\"top\"===e?.Cu.zOrder)return Di(e);let r=null,h=null;for(const a of s){if(e&&e.uu===a&&\"bottom\"!==e.Cu.zOrder&&!e.Cu.isBackground)return r??Di(e);if(Vi(a)){const s=Ii(a.jn(t),i,n,t);if(null!==s){const t={uu:a,xu:s.xu,bu:Ti(s.Su),gu:s.Su.gu,ee:s.Su.ee??\"primitive\"};(null===r||ki(s.Su,h))&&(r=t,h=s.Su)}}if(e&&e.uu===a&&\"bottom\"!==e.Cu.zOrder&&e.Cu.isBackground)return r??Di(e)}return null!==r?r:e?.Cu?Di(e):null}class Ei{constructor(t,i,n=50){this.Vs=0,this.Bs=1,this.Es=1,this.Ls=new Map,this.As=new Map,this.yu=t,this.Pu=i,this.zs=n}ku(t){const i=t.time,n=this.Pu.cacheKey(i),s=this.Ls.get(n);if(void 0!==s)return s.Tu;if(this.Vs===this.zs){const t=this.As.get(this.Es);this.As.delete(this.Es),this.Ls.delete(_(t)),this.Es++,this.Vs--}const e=this.yu(t);return this.Ls.set(n,{Tu:e,Ws:this.Bs}),this.As.set(this.Bs,n),this.Vs++,this.Bs++,e}}class Ai{constructor(t,i){o(t<=i,\"right should be >= left\"),this.Ru=t,this.Du=i}Na(){return this.Ru}bi(){return this.Du}Iu(){return this.Du-this.Ru+1}ze(t){return this.Ru<=t&&t<=this.Du}Ze(t){return this.Ru===t.Na()&&this.Du===t.bi()}}function Li(t,i){return null===t||null===i?t===i:t.Ze(i)}class zi{constructor(){this.Vu=new Map,this.Ls=null,this.Bu=!1}Eu(t){this.Bu=t,this.Ls=null}Au(t,i){this.Lu(i),this.Ls=null;for(let n=i;n<t.length;++n){const i=t[n];let s=this.Vu.get(i.timeWeight);void 0===s&&(s=[],this.Vu.set(i.timeWeight,s)),s.push({index:n,time:i.time,weight:i.timeWeight,originalTime:i.originalTime})}}zu(t,i,n,s,e){const r=Math.ceil(i/t);return null!==this.Ls&&this.Ls.Ou===r&&e===this.Ls.Nu&&n===this.Ls.Fu||(this.Ls={Nu:e,Fu:n,zl:this.Wu(r,n,s),Ou:r}),this.Ls.zl}Lu(t){if(0===t)return void this.Vu.clear();const i=[];this.Vu.forEach(((n,s)=>{t<=n[0].index?i.push(s):n.splice(Rt(n,t,(i=>i.index<t)),1/0)}));for(const t of i)this.Vu.delete(t)}Wu(t,i,n){let s=[];const e=t=>!i||n.has(t.index);for(const i of Array.from(this.Vu.keys()).sort(((t,i)=>i-t))){if(!this.Vu.get(i))continue;const n=s;s=[];const r=n.length;let h=0;const a=_(this.Vu.get(i)),l=a.length;let o=1/0,u=-1/0;for(let i=0;i<l;i++){const l=a[i],_=l.index;for(;h<r;){const t=n[h],i=t.index;if(!(i<_&&e(t))){o=i;break}h++,s.push(t),u=i,o=1/0}if(o-_>=t&&_-u>=t&&e(l))s.push(l),u=_;else if(this.Bu)return n}for(;h<r;h++)e(n[h])&&s.push(n[h])}return s}}class Oi{constructor(t){this.Hu=t}Uu(){return null===this.Hu?null:new Ai(Math.floor(this.Hu.Na()),Math.ceil(this.Hu.bi()))}$u(){return this.Hu}static ju(){return new Oi(null)}}function Ni(t,i){return t.weight>i.weight?t:i}class Fi{constructor(t,i,n,s){this.k_=0,this.qu=null,this.Yu=[],this.Po=null,this.yo=null,this.Ku=new zi,this.Gu=new Map,this.Zu=Oi.ju(),this.Xu=!0,this.Ju=new d,this.Qu=new d,this.tc=new d,this.nc=null,this.sc=null,this.ec=new Map,this.rc=-1,this.hc=[],this.ac=1,this.yn=i,this.Do=n,this.lc=i.rightOffset,this.oc=i.barSpacing,this.sn=t,this._c(i),this.Pu=s,this.uc(),this.Ku.Eu(i.uniformDistribution),this.cc(),this.dc()}N(){return this.yn}fc(t){f(this.Do,t),this.vc(),this.uc()}vr(t,i){f(this.yn,t),this.yn.fixLeftEdge&&this.mc(),this.yn.fixRightEdge&&this.wc(),void 0!==t.barSpacing&&this.sn.Ms(t.barSpacing),void 0!==t.rightOffset&&this.sn.gs(t.rightOffset),this._c(t),void 0===t.minBarSpacing&&void 0===t.maxBarSpacing||this.sn.Ms(t.barSpacing??this.oc),void 0!==t.ignoreWhitespaceIndices&&t.ignoreWhitespaceIndices!==this.yn.ignoreWhitespaceIndices&&this.dc(),this.vc(),this.uc(),void 0===t.enableConflation&&void 0===t.conflationThresholdFactor||this.cc(),this.tc.p()}Rn(t){return this.Yu[t]?.time??null}en(t){return this.Yu[t]??null}Mc(t,i){if(this.Yu.length<1)return null;if(this.Pu.key(t)>this.Pu.key(this.Yu[this.Yu.length-1].time))return i?this.Yu.length-1:null;const n=Rt(this.Yu,this.Pu.key(t),((t,i)=>this.Pu.key(t.time)<i));return this.Pu.key(t)<this.Pu.key(this.Yu[n].time)?i?n:null:n}Zi(){return 0===this.k_||0===this.Yu.length||null===this.qu}gc(){return this.Yu.length>0}Ee(){return this.bc(),this.Zu.Uu()}Sc(){return this.bc(),this.Zu.$u()}xc(){const t=this.Ee();if(null===t)return null;const i={from:t.Na(),to:t.bi()};return this.Cc(i)}Cc(t){const i=Math.round(t.from),n=Math.round(t.to),s=u(this.yc()),e=u(this.Pc());return{from:u(this.en(Math.max(s,i))),to:u(this.en(Math.min(e,n)))}}kc(t){return{from:u(this.Mc(t.from,!0)),to:u(this.Mc(t.to,!0))}}nn(){return this.k_}H_(t){if(!isFinite(t)||t<=0)return;if(this.k_===t)return;const i=this.Sc(),n=this.k_;if(this.k_=t,this.Xu=!0,this.yn.lockVisibleTimeRangeOnResize&&0!==n){const i=this.oc*t/n;this.oc=i}if(this.yn.fixLeftEdge&&null!==i&&i.Na()<=0){const i=n-t;this.lc-=Math.round(i/this.oc)+1,this.Xu=!0}this.Tc(),this.Rc()}jt(t){if(this.Zi()||!v(t))return 0;const i=this.Dc()+this.lc-t;return this.k_-(i+.5)*this.oc-1}Ic(t,i){const n=this.Dc(),s=void 0===i?0:i.from,e=void 0===i?t.length:i.to;for(let i=s;i<e;i++){const s=t[i].wt,e=n+this.lc-s,r=this.k_-(e+.5)*this.oc-1;t[i]._t=r}}Vc(t,i){const n=Math.ceil(this.Bc(t));return i&&this.yn.ignoreWhitespaceIndices&&!this.Ec(n)?this.Ac(n):n}gs(t){this.Xu=!0,this.lc=t,this.Rc(),this.sn.Lc(),this.sn.mr()}ml(){return this.oc}Ms(t){const i=this.oc;if(this.zc(t),void 0!==this.yn.rightOffsetPixels&&0!==i){const t=this.lc*i/this.oc;this.lc=t}this.Rc(),this.sn.Lc(),this.sn.mr()}Oc(){return this.lc}zl(){if(this.Zi())return null;if(null!==this.sc)return this.sc;const t=this.oc,i=5*(this.sn.N().layout.fontSize+4)/8*(this.yn.tickMarkMaxCharacterLength||8),n=Math.round(i/t),s=u(this.Ee()),e=Math.max(s.Na(),s.Na()-n),r=Math.max(s.bi(),s.bi()-n),h=this.Ku.zu(t,i,this.yn.ignoreWhitespaceIndices,this.ec,this.rc),a=this.yc()+n,l=this.Pc()-n,o=this.Nc(),_=this.yn.fixLeftEdge||o,c=this.yn.fixRightEdge||o;let d=0;for(const t of h){if(!(e<=t.index&&t.index<=r))continue;let n;d<this.hc.length?(n=this.hc[d],n.coord=this.jt(t.index),n.label=this.Fc(t),n.weight=t.weight):(n={needAlignCoordinate:!1,coord:this.jt(t.index),label:this.Fc(t),weight:t.weight},this.hc.push(n)),this.oc>i/2&&!o?n.needAlignCoordinate=!1:n.needAlignCoordinate=_&&t.index<=a||c&&t.index>=l,d++}return this.hc.length=d,this.sc=this.hc,this.hc}Wc(){let t;this.Xu=!0,this.Ms(this.yn.barSpacing),t=void 0!==this.yn.rightOffsetPixels?this.yn.rightOffsetPixels/this.ml():this.yn.rightOffset,this.gs(t)}Hc(t){this.Xu=!0,this.qu=t,this.Rc(),this.mc()}Uc(t,i){const n=this.Bc(t),s=this.ml(),e=s+i*(s/10);this.Ms(e),this.yn.rightBarStaysOnScroll||this.gs(this.Oc()+(n-this.Bc(t)))}u_(t){this.Po&&this.v_(),null===this.yo&&null===this.nc&&(this.Zi()||(this.yo=t,this.$c()))}c_(t){if(null===this.nc)return;const i=ni(this.k_-t,0,this.k_),n=ni(this.k_-u(this.yo),0,this.k_);0!==i&&0!==n&&this.Ms(this.nc.ml*i/n)}d_(){null!==this.yo&&(this.yo=null,this.jc())}f_(t){null===this.Po&&null===this.nc&&(this.Zi()||(this.Po=t,this.$c()))}p_(t){if(null===this.Po)return;const i=(this.Po-t)/this.ml();this.lc=u(this.nc).Oc+i,this.Xu=!0,this.Rc()}v_(){null!==this.Po&&(this.Po=null,this.jc())}qc(){this.Yc(this.yn.rightOffset)}Yc(t,i=400){if(!isFinite(t))throw new RangeError(\"offset is required and must be finite number\");if(!isFinite(i)||i<=0)throw new RangeError(\"animationDuration (optional) must be finite positive number\");const n=this.lc,s=performance.now();this.sn.ps({Kc:t=>(t-s)/i>=1,Gc:e=>{const r=(e-s)/i;return r>=1?t:n+(t-n)*r}})}Pt(t,i){this.Xu=!0,this.Yu=t,this.Ku.Au(t,i),this.Rc()}Zc(){return this.Ju}Xc(){return this.Qu}Jc(){return this.tc}Dc(){return this.qu||0}Qc(t,i){const n=t.Iu(),s=i&&this.yn.rightOffsetPixels||0;this.zc((this.k_-s)/n),this.lc=t.bi()-this.Dc(),i&&(this.lc=s?s/this.ml():this.yn.rightOffset),this.Rc(),this.Xu=!0,this.sn.Lc(),this.sn.mr()}td(){const t=this.yc(),i=this.Pc();if(null===t||null===i)return;const n=!this.yn.rightOffsetPixels&&this.yn.rightOffset||0;this.Qc(new Ai(t,i+n),!0)}nd(t){const i=new Ai(t.from,t.to);this.Qc(i)}rn(t){return void 0!==this.Do.timeFormatter?this.Do.timeFormatter(t.originalTime):this.Pu.formatHorzItem(t.time)}dc(){if(!this.yn.ignoreWhitespaceIndices)return;this.ec.clear();const t=this.sn.Jn();for(const i of t)for(const t of i.fl())this.ec.set(t,!0);this.rc++}sd(){return this.ac}Sl(){const t=1/(window.devicePixelRatio||1),i=this.yn.minBarSpacing;if(i>=t)return[1];const n=[1];let s=2;for(;s<=512;){i<t/s&&n.push(s),s*=2}return n}Nc(){const t=this.sn.N().handleScroll,i=this.sn.N().handleScale;return!(t.horzTouchDrag||t.mouseWheel||t.pressedMouseMove||t.vertTouchDrag||i.axisDoubleClickReset.time||i.axisPressedMouseMove.time||i.mouseWheel||i.pinch)}yc(){return 0===this.Yu.length?null:0}Pc(){return 0===this.Yu.length?null:this.Yu.length-1}ed(t){return(this.k_-1-t)/this.oc}Bc(t){const i=this.ed(t),n=this.Dc()+this.lc-i;return Math.round(1e6*n)/1e6}zc(t){const i=this.oc;this.oc=t,this.Tc(),i!==this.oc&&(this.Xu=!0,this.rd(),this.cc())}bc(){if(!this.Xu)return;if(this.Xu=!1,this.Zi())return void this.hd(Oi.ju());const t=this.Dc(),i=this.k_/this.oc,n=this.lc+t,s=new Ai(n-i+1,n);this.hd(new Oi(s))}Tc(){const t=ni(this.oc,this.ad(),this.ld());this.oc!==t&&(this.oc=t,this.Xu=!0)}ld(){return this.yn.maxBarSpacing>0?this.yn.maxBarSpacing:.5*this.k_}ad(){return this.yn.fixLeftEdge&&this.yn.fixRightEdge&&0!==this.Yu.length?this.k_/this.Yu.length:this.yn.minBarSpacing}cc(){if(!this.yn.enableConflation)return void(this.ac=1);const t=1/(window.devicePixelRatio||1)*(this.yn.conflationThresholdFactor??1);if(this.oc>=t)return void(this.ac=1);const i=t/this.oc,n=Math.pow(2,Math.floor(Math.log2(i)));this.ac=Math.min(n,512)}Rc(){const t=this.od();null!==t&&this.lc<t&&(this.lc=t,this.Xu=!0);const i=this._d();this.lc>i&&(this.lc=i,this.Xu=!0)}od(){const t=this.yc(),i=this.qu;if(null===t||null===i)return null;return t-i-1+(this.yn.fixLeftEdge?this.k_/this.oc:Math.min(2,this.Yu.length))}_d(){return this.yn.fixRightEdge?0:this.k_/this.oc-Math.min(2,this.Yu.length)}$c(){this.nc={ml:this.ml(),Oc:this.Oc()}}jc(){this.nc=null}Fc(t){let i=this.Gu.get(t.weight);return void 0===i&&(i=new Ei((t=>this.ud(t)),this.Pu),this.Gu.set(t.weight,i)),i.ku(t)}ud(t){return this.Pu.formatTickmark(t,this.Do)}hd(t){const i=this.Zu;this.Zu=t,Li(i.Uu(),this.Zu.Uu())||this.Ju.p(),Li(i.$u(),this.Zu.$u())||this.Qu.p(),this.rd()}rd(){this.sc=null}vc(){this.rd(),this.Gu.clear()}uc(){this.Pu.updateFormatter(this.Do)}mc(){if(!this.yn.fixLeftEdge)return;const t=this.yc();if(null===t)return;const i=this.Ee();if(null===i)return;const n=i.Na()-t;if(n<0){const t=this.lc-n-1;this.gs(t)}this.Tc()}wc(){this.Rc(),this.Tc()}Ec(t){return!this.yn.ignoreWhitespaceIndices||(this.ec.get(t)||!1)}Ac(t){const i=function*(t){const i=Math.round(t),n=i<t;let s=1;for(;;)n?(yield i+s,yield i-s):(yield i-s,yield i+s),s++}(t),n=this.Pc();for(;n;){const t=i.next().value;if(this.ec.get(t))return t;if(t<0||t>n)break}return t}_c(t){if(void 0!==t.rightOffsetPixels){const i=t.rightOffsetPixels/(t.barSpacing||this.oc);this.sn.gs(i)}}}var Wi,Hi,Ui,$i,ji;!function(t){t[t.OnTouchEnd=0]=\"OnTouchEnd\",t[t.OnNextTap=1]=\"OnNextTap\"}(Wi||(Wi={}));class qi{constructor(t,i,n){this.dd=[],this.fd=[],this.pd=null,this.k_=0,this.vd=null,this.md=new d,this.wd=new d,this.Md=null,this.gd=t,this.yn=i,this.Pu=n,this.Io=new k(this.yn.layout.colorParsers),this.bd=new C(this),this.ia=new Fi(this,i.timeScale,this.yn.localization,n),this.Ct=new G(this,i.crosshair),this.Sd=new ii(i.crosshair),i.addDefaultPane&&(this.xd(0),this.dd[0].W_(2)),this.Cd=this.yd(0),this.Pd=this.yd(1)}ka(){this.kd(X.ys())}mr(){this.kd(X.Cs())}Ya(){this.kd(new X(1))}Ta(t){const i=this.Td(t);this.kd(i)}cu(){return this.vd}Rd(t){if(this.vd?.uu===t?.uu&&this.vd?.bu?.te===t?.bu?.te&&this.vd?.bu?.ie===t?.bu?.ie&&this.vd?.gu===t?.gu&&this.vd?.ee===t?.ee)return;const i=this.vd;this.vd=t,null!==i&&this.Ta(i.uu),null!==t&&t.uu!==i?.uu&&this.Ta(t.uu)}N(){return this.yn}vr(t){f(this.yn,t),this.dd.forEach((i=>i.z_(t))),void 0!==t.timeScale&&this.ia.vr(t.timeScale),void 0!==t.localization&&this.ia.fc(t.localization),(t.leftPriceScale||t.rightPriceScale)&&this.md.p(),this.Cd=this.yd(0),this.Pd=this.yd(1),this.ka()}Dd(t,i,n=0){const s=this.dd[n];if(void 0===s)return;if(\"left\"===t)return f(this.yn,{leftPriceScale:i}),s.z_({leftPriceScale:i}),this.md.p(),void this.ka();if(\"right\"===t)return f(this.yn,{rightPriceScale:i}),s.z_({rightPriceScale:i}),this.md.p(),void this.ka();const e=this.Id(t,n);null!==e&&(e.Ft.vr(i),this.md.p())}Id(t,i){const n=this.dd[i];if(void 0===n)return null;const s=n.O_(t);return null!==s?{Kn:n,Ft:s}:null}Et(){return this.ia}Gn(){return this.dd}Vd(){return this.Ct}Bd(){return this.wd}Ed(t,i){t.$o(i),this.Lc()}H_(t){this.k_=t,this.ia.H_(this.k_),this.dd.forEach((i=>i.H_(t))),this.Lc()}Ad(t){1!==this.dd.length&&(o(t>=0&&t<this.dd.length,\"Invalid pane index\"),this.dd.splice(t,1),this.ka())}Ld(t,i){if(this.dd.length<2)return;o(t>=0&&t<this.dd.length,\"Invalid pane index\");const n=this.dd[t],s=this.dd.reduce(((t,i)=>t+i.F_()),0),e=this.dd.reduce(((t,i)=>t+i.$t()),0),r=e-30*(this.dd.length-1);i=Math.min(r,Math.max(30,i));const h=s/e,a=n.$t();n.W_(i*h);let l=i-a,_=this.dd.length-1;for(const t of this.dd)if(t!==n){const i=Math.min(r,Math.max(30,t.$t()-l/_));l-=t.$t()-i,_-=1;const n=i*h;t.W_(n)}this.ka()}zd(t,i){o(t>=0&&t<this.dd.length&&i>=0&&i<this.dd.length,\"Invalid pane index\");const n=this.dd[t],s=this.dd[i];this.dd[t]=s,this.dd[i]=n,this.ka()}Od(t,i){if(o(t>=0&&t<this.dd.length&&i>=0&&i<this.dd.length,\"Invalid pane index\"),t===i)return;const[n]=this.dd.splice(t,1);this.dd.splice(i,0,n),this.ka()}Q_(t,i,n){t.Q_(i,n)}tu(t,i,n){t.tu(i,n),this.Ra(),this.kd(this.Nd(t,2))}iu(t,i){t.iu(i),this.kd(this.Nd(t,2))}nu(t,i,n){i.zo()||t.nu(i,n)}su(t,i,n){i.zo()||(t.su(i,n),this.Ra(),this.kd(this.Nd(t,2)))}eu(t,i){i.zo()||(t.eu(i),this.kd(this.Nd(t,2)))}au(t,i){t.au(i),this.kd(this.Nd(t,2))}Fd(t){this.ia.u_(t)}Wd(t,i){const n=this.Et();if(n.Zi()||0===i)return;const s=n.nn();t=Math.max(1,Math.min(t,s)),n.Uc(t,i),this.Lc()}Hd(t){this.Ud(0),this.$d(t),this.jd()}qd(t){this.ia.c_(t),this.Lc()}Yd(){this.ia.d_(),this.mr()}Ud(t){this.ia.f_(t)}$d(t){this.ia.p_(t),this.Lc()}jd(){this.ia.v_(),this.mr()}Jn(){return this.fd}Wn(){return null===this.pd&&(this.pd=this.fd.filter((t=>t.It()))),this.pd}Pa(){this.pd=null}Kd(t,i,n,s,e){this.Ct.In(t,i);let r=NaN,h=this.ia.Vc(t,!0);const a=this.ia.Ee();null!==a&&(h=Math.min(Math.max(a.Na(),h),a.bi())),h=this.Ct.Fn(h);const l=s.kn(),o=l.Lt();if(null!==o&&(r=l.Tn(i,o)),r=this.Sd.Pl(r,h,s),this.Ct.An(h,r,s),this.Ya(),!e){const e=Bi(s,t,i);this.Rd(e&&{uu:e.uu,bu:e.bu,gu:e.gu||null,ee:e.ee}),this.wd.p(this.Ct.Bt(),{x:t,y:i},n)}}Gd(t,i,n){const s=n.kn(),e=s.Lt(),r=s.Nt(t,u(e)),h=this.ia.Mc(i,!0),a=this.ia.jt(u(h));this.Kd(a,r,null,n,!0)}Zd(t){this.Vd().zn(),this.Ya(),t||this.wd.p(null,null,null)}Ra(){const t=this.Ct.Kn();if(null!==t){const i=this.Ct.Bn(),n=this.Ct.En();this.Kd(i,n,null,t)}this.Ct.Nn()}Xd(t,i,n){const s=this.ia.Rn(0);void 0!==i&&void 0!==n&&this.ia.Pt(i,n);const e=this.ia.Rn(0),r=this.ia.Dc(),h=this.ia.Ee();if(null!==h&&null!==s&&null!==e){const i=h.ze(r),a=this.Pu.key(s)>this.Pu.key(e),l=null!==t&&t>r&&!a,o=this.ia.N().allowShiftVisibleRangeOnWhitespaceReplacement,_=i&&(!(void 0===n)||o)&&this.ia.N().shiftVisibleRangeOnNewBar;if(l&&!_){const i=t-r;this.ia.gs(this.ia.Oc()-i)}}this.ia.Hc(t)}Ba(t){null!==t&&t.ou()}Ks(t){if(function(t){return t instanceof Pi}(t))return t;const i=this.dd.find((i=>i.Dt().includes(t)));return void 0===i?null:i}Lc(){this.dd.forEach((t=>t.ou())),this.Ra()}m(){this.dd.forEach((t=>t.m())),this.dd.length=0,this.yn.localization.priceFormatter=void 0,this.yn.localization.percentageFormatter=void 0,this.yn.localization.timeFormatter=void 0}Jd(){return this.bd}Js(){return this.bd.N()}N_(){return this.md}Qd(t,i){const n=this.xd(i);this.tf(t,n),this.fd.push(t),this.Pa(),1===this.fd.length?this.ka():this.mr()}if(t){const i=this.Ks(t),n=this.fd.indexOf(t);o(-1!==n,\"Series not found\");const s=u(i);this.fd.splice(n,1),s.l_(t),t.m&&t.m(),this.Pa(),this.ia.dc(),this.nf(s)}ya(t,i){const n=u(this.Ks(t));n.l_(t,!0),n.h_(t,i,!0)}td(){const t=X.Cs();t.us(),this.kd(t)}sf(t){const i=X.Cs();i.fs(t),this.kd(i)}ws(){const t=X.Cs();t.ws(),this.kd(t)}Ms(t){const i=X.Cs();i.Ms(t),this.kd(i)}gs(t){const i=X.Cs();i.gs(t),this.kd(i)}ps(t){const i=X.Cs();i.ps(t),this.kd(i)}cs(){const t=X.Cs();t.cs(),this.kd(t)}ef(){const t=this.yn.defaultVisiblePriceScaleId,i=this.yn.leftPriceScale.visible;return i!==this.yn.rightPriceScale.visible?i?\"left\":\"right\":t}rf(t,i){o(i>=0,\"Index should be greater or equal to 0\");if(i===this.hf(t))return;const n=u(this.Ks(t));n.l_(t);const s=this.xd(i);this.tf(t,s);let e=!1;0===n.kl().length&&(e=this.nf(n)),e||this.ka()}af(){return this.Pd}$(){return this.Cd}Ut(t){const i=this.Pd,n=this.Cd;if(i===n)return i;if(t=Math.max(0,Math.min(100,Math.round(100*t))),null===this.Md||this.Md.ah!==n||this.Md.oh!==i)this.Md={ah:n,oh:i,lf:new Map};else{const i=this.Md.lf.get(t);if(void 0!==i)return i}const s=this.Io.tt(n,i,t/100);return this.Md.lf.set(t,s),s}_f(t){return this.dd.indexOf(t)}Xi(){return this.Io}uf(){return this.cf()}cf(t){const i=new Pi(this.ia,this);this.dd.push(i);const n=t??this.dd.length-1,s=X.ys();return s.es(n,{rs:0,hs:!0}),this.kd(s),i}xd(t){return o(t>=0,\"Index should be greater or equal to 0\"),(t=Math.min(this.dd.length,t))<this.dd.length?this.dd[t]:this.cf(t)}hf(t){return this.dd.findIndex((i=>i.Y_().includes(t)))}Nd(t,i){const n=new X(i);if(null!==t){const s=this.dd.indexOf(t);n.es(s,{rs:i})}return n}Td(t,i){return void 0===i&&(i=2),this.Nd(this.Ks(t),i)}kd(t){this.gd&&this.gd(t),this.dd.forEach((t=>t.wu().wr().Pt()))}tf(t,i){const n=t.N().priceScaleId,s=void 0!==n?n:this.ef();i.h_(t,s),Z(s)||t.vr(t.N())}yd(t){const i=this.yn.layout;return\"gradient\"===i.background.type?0===t?i.background.topColor:i.background.bottomColor:i.background.color}nf(t){return!t.q_()&&0===t.kl().length&&this.dd.length>1&&(this.dd.splice(this._f(t),1),this.ka(),!0)}}function Yi(t){if(t>=1)return 0;let i=0;for(;i<8;i++){const n=Math.round(t);if(Math.abs(n-t)<1e-8)return i;t*=10}return i}function Ki(t){return!p(t)&&!m(t)}function Gi(t){return p(t)}!function(t){t[t.Disabled=0]=\"Disabled\",t[t.Continuous=1]=\"Continuous\",t[t.OnDataUpdate=2]=\"OnDataUpdate\"}(Hi||(Hi={})),function(t){t[t.LastBar=0]=\"LastBar\",t[t.LastVisible=1]=\"LastVisible\"}(Ui||(Ui={})),function(t){t.Solid=\"solid\",t.VerticalGradient=\"gradient\"}($i||($i={})),function(t){t[t.Year=0]=\"Year\",t[t.Month=1]=\"Month\",t[t.DayOfMonth=2]=\"DayOfMonth\",t[t.Time=3]=\"Time\",t[t.TimeWithSeconds=4]=\"TimeWithSeconds\"}(ji||(ji={}));const Zi=t=>t.getUTCFullYear();function Xi(t,i,n){return i.replace(/yyyy/g,(t=>tt(Zi(t),4))(t)).replace(/yy/g,(t=>tt(Zi(t)%100,2))(t)).replace(/MMMM/g,((t,i)=>new Date(t.getUTCFullYear(),t.getUTCMonth(),1).toLocaleString(i,{month:\"long\"}))(t,n)).replace(/MMM/g,((t,i)=>new Date(t.getUTCFullYear(),t.getUTCMonth(),1).toLocaleString(i,{month:\"short\"}))(t,n)).replace(/MM/g,(t=>tt((t=>t.getUTCMonth()+1)(t),2))(t)).replace(/dd/g,(t=>tt((t=>t.getUTCDate())(t),2))(t))}class Ji{constructor(t=\"yyyy-MM-dd\",i=\"default\"){this.df=t,this.ff=i}ku(t){return Xi(t,this.df,this.ff)}}class Qi{constructor(t){this.pf=t||\"%h:%m:%s\"}ku(t){return this.pf.replace(\"%h\",tt(t.getUTCHours(),2)).replace(\"%m\",tt(t.getUTCMinutes(),2)).replace(\"%s\",tt(t.getUTCSeconds(),2))}}const tn={vf:\"yyyy-MM-dd\",mf:\"%h:%m:%s\",wf:\" \",Mf:\"default\"};class nn{constructor(t={}){const i={...tn,...t};this.gf=new Ji(i.vf,i.Mf),this.bf=new Qi(i.mf),this.Sf=i.wf}ku(t){return`${this.gf.ku(t)}${this.Sf}${this.bf.ku(t)}`}}function sn(t){return 60*t*60*1e3}function en(t){return 60*t*1e3}const rn=[{xf:(hn=1,1e3*hn),Cf:10},{xf:en(1),Cf:20},{xf:en(5),Cf:21},{xf:en(30),Cf:22},{xf:sn(1),Cf:30},{xf:sn(3),Cf:31},{xf:sn(6),Cf:32},{xf:sn(12),Cf:33}];var hn;function an(t,i){if(t.getUTCFullYear()!==i.getUTCFullYear())return 70;if(t.getUTCMonth()!==i.getUTCMonth())return 60;if(t.getUTCDate()!==i.getUTCDate())return 50;for(let n=rn.length-1;n>=0;--n)if(Math.floor(i.getTime()/rn[n].xf)!==Math.floor(t.getTime()/rn[n].xf))return rn[n].Cf;return 0}function ln(t){let i=t;if(m(t)&&(i=_n(t)),!Ki(i))throw new Error(\"time must be of type BusinessDay\");const n=new Date(Date.UTC(i.year,i.month-1,i.day,0,0,0,0));return{yf:Math.round(n.getTime()/1e3),Pf:i}}function on(t){if(!Gi(t))throw new Error(\"time must be of type isUTCTimestamp\");return{yf:t}}function _n(t){const i=new Date(t);if(isNaN(i.getTime()))throw new Error(`Invalid date string=${t}, expected format=yyyy-mm-dd`);return{day:i.getUTCDate(),month:i.getUTCMonth()+1,year:i.getUTCFullYear()}}function un(t){m(t.time)&&(t.time=_n(t.time))}class cn{options(){return this.yn}setOptions(t){this.yn=t,this.updateFormatter(t.localization)}preprocessData(t){Array.isArray(t)?function(t){t.forEach(un)}(t):un(t)}createConverterToInternalObj(t){return u(function(t){return 0===t.length?null:Ki(t[0].time)||m(t[0].time)?ln:on}(t))}key(t){return\"object\"==typeof t&&\"yf\"in t?t.yf:this.key(this.convertHorzItemToInternal(t))}cacheKey(t){const i=t;return void 0===i.Pf?new Date(1e3*i.yf).getTime():new Date(Date.UTC(i.Pf.year,i.Pf.month-1,i.Pf.day)).getTime()}convertHorzItemToInternal(t){return Gi(i=t)?on(i):Ki(i)?ln(i):ln(_n(i));var i}updateFormatter(t){if(!this.yn)return;const i=t.dateFormat;this.yn.timeScale.timeVisible?this.kf=new nn({vf:i,mf:this.yn.timeScale.secondsVisible?\"%h:%m:%s\":\"%h:%m\",wf:\" \",Mf:t.locale}):this.kf=new Ji(i,t.locale)}formatHorzItem(t){const i=t;return this.kf.ku(new Date(1e3*i.yf))}formatTickmark(t,i){const n=function(t,i,n){switch(t){case 0:case 10:return i?n?4:3:2;case 20:case 21:case 22:case 30:case 31:case 32:case 33:return i?3:2;case 50:return 2;case 60:return 1;case 70:return 0}}(t.weight,this.yn.timeScale.timeVisible,this.yn.timeScale.secondsVisible),s=this.yn.timeScale;if(void 0!==s.tickMarkFormatter){const e=s.tickMarkFormatter(t.originalTime,n,i.locale);if(null!==e)return e}return function(t,i,n){const s={};switch(i){case 0:s.year=\"numeric\";break;case 1:s.month=\"short\";break;case 2:s.day=\"numeric\";break;case 3:s.hour12=!1,s.hour=\"2-digit\",s.minute=\"2-digit\";break;case 4:s.hour12=!1,s.hour=\"2-digit\",s.minute=\"2-digit\",s.second=\"2-digit\"}const e=void 0===t.Pf?new Date(1e3*t.yf):new Date(Date.UTC(t.Pf.year,t.Pf.month-1,t.Pf.day));return new Date(e.getUTCFullYear(),e.getUTCMonth(),e.getUTCDate(),e.getUTCHours(),e.getUTCMinutes(),e.getUTCSeconds(),e.getUTCMilliseconds()).toLocaleString(n,s)}(t.time,n,i.locale)}maxTickMarkWeight(t){let i=t.reduce(Ni,t[0]).weight;return i>30&&i<50&&(i=30),i}fillWeightsForPoints(t,i){!function(t,i=0){if(0===t.length)return;let n=0===i?null:t[i-1].time.yf,s=null!==n?new Date(1e3*n):null,e=0;for(let r=i;r<t.length;++r){const i=t[r],h=new Date(1e3*i.time.yf);null!==s&&(i.timeWeight=an(h,s)),e+=i.time.yf-(n||i.time.yf),n=i.time.yf,s=h}if(0===i&&t.length>1){const i=Math.ceil(e/(t.length-1)),n=new Date(1e3*(t[0].time.yf-i));t[0].timeWeight=an(new Date(1e3*t[0].time.yf),n)}}(t,i)}static Tf(t){return f({localization:{dateFormat:\"dd MMM 'yy\"}},t??{})}}const dn=\"undefined\"!=typeof window;function fn(){return!!dn&&window.navigator.userAgent.toLowerCase().indexOf(\"firefox\")>-1}function pn(){return!!dn&&/iPhone|iPad|iPod/.test(window.navigator.platform)}function vn(t,i){switch(t){case\"custom\":return void 0!==i?\"custom-object\":\"series\";case\"price-line\":return\"custom-price-line\";case\"marker\":return\"series-marker\";case\"primitive\":return\"primitive\";default:return\"series\"}}function mn(t){return t+t%2}function wn(t){dn&&void 0!==window.chrome&&t.addEventListener(\"mousedown\",(t=>{if(1===t.button)return t.preventDefault(),!1}))}class Mn{constructor(t,i,n){this.Rf=0,this.Df=null,this.If={_t:Number.NEGATIVE_INFINITY,ut:Number.POSITIVE_INFINITY},this.Vf=0,this.Bf=null,this.Ef={_t:Number.NEGATIVE_INFINITY,ut:Number.POSITIVE_INFINITY},this.Af=null,this.Lf=!1,this.zf=null,this.Of=null,this.Nf=!1,this.Ff=!1,this.Wf=!1,this.Hf=null,this.Uf=null,this.$f=null,this.jf=null,this.qf=null,this.Yf=null,this.Kf=null,this.Gf=0,this.Zf=!1,this.Xf=!1,this.Jf=!1,this.Qf=0,this.tp=null,this.ip=!pn(),this.np=t=>{this.sp(t)},this.ep=t=>{if(this.rp(t)){const i=this.hp(t);if(++this.Vf,this.Bf&&this.Vf>1){const{ap:n}=this.lp(Sn(t),this.Ef);n<30&&!this.Wf&&this.op(i,this.up._p),this.cp()}}else{const i=this.hp(t);if(++this.Rf,this.Df&&this.Rf>1){const{ap:n}=this.lp(Sn(t),this.If);n<5&&!this.Ff&&this.dp(i,this.up.fp),this.pp()}}},this.vp=t,this.up=i,this.yn=n,this.mp()}m(){null!==this.Hf&&(this.Hf(),this.Hf=null),null!==this.Uf&&(this.Uf(),this.Uf=null),null!==this.jf&&(this.jf(),this.jf=null),null!==this.qf&&(this.qf(),this.qf=null),null!==this.Yf&&(this.Yf(),this.Yf=null),null!==this.$f&&(this.$f(),this.$f=null),this.wp(),this.pp()}Mp(t){this.jf&&this.jf();const i=this.gp.bind(this);if(this.jf=()=>{this.vp.removeEventListener(\"mousemove\",i)},this.vp.addEventListener(\"mousemove\",i),this.rp(t))return;const n=this.hp(t);this.dp(n,this.up.bp),this.ip=!0}pp(){null!==this.Df&&clearTimeout(this.Df),this.Rf=0,this.Df=null,this.If={_t:Number.NEGATIVE_INFINITY,ut:Number.POSITIVE_INFINITY}}cp(){null!==this.Bf&&clearTimeout(this.Bf),this.Vf=0,this.Bf=null,this.Ef={_t:Number.NEGATIVE_INFINITY,ut:Number.POSITIVE_INFINITY}}gp(t){if(this.Jf||null!==this.Of)return;if(this.rp(t))return;const i=this.hp(t);this.dp(i,this.up.Sp),this.ip=!0}xp(t){const i=Cn(t.changedTouches,u(this.tp));if(null===i)return;if(this.Qf=xn(t),null!==this.Kf)return;if(this.Xf)return;this.Zf=!0;const n=this.lp(Sn(i),u(this.Of)),{Cp:s,yp:e,ap:r}=n;if(this.Nf||!(r<5)){if(!this.Nf){const t=.5*s,i=e>=t&&!this.yn.Pp(),n=t>e&&!this.yn.kp();i||n||(this.Xf=!0),this.Nf=!0,this.Wf=!0,this.wp(),this.cp()}if(!this.Xf){const n=this.hp(t,i);this.op(n,this.up.Tp),bn(t)}}}Rp(t){if(0!==t.button)return;const i=this.lp(Sn(t),u(this.zf)),{ap:n}=i;if(n>=5&&(this.Ff=!0,this.pp()),this.Ff){const i=this.hp(t);this.dp(i,this.up.Dp)}}lp(t,i){const n=Math.abs(i._t-t._t),s=Math.abs(i.ut-t.ut);return{Cp:n,yp:s,ap:n+s}}Ip(t){let i=Cn(t.changedTouches,u(this.tp));if(null===i&&0===t.touches.length&&(i=t.changedTouches[0]),null===i)return;this.tp=null,this.Qf=xn(t),this.wp(),this.Of=null,this.Yf&&(this.Yf(),this.Yf=null);const n=this.hp(t,i);if(this.op(n,this.up.Vp),++this.Vf,this.Bf&&this.Vf>1){const{ap:t}=this.lp(Sn(i),this.Ef);t<30&&!this.Wf&&this.op(n,this.up._p),this.cp()}else this.Wf||(this.op(n,this.up.Bp),this.up.Bp&&bn(t));0===this.Vf&&bn(t),0===t.touches.length&&this.Lf&&(this.Lf=!1,bn(t))}sp(t){if(0!==t.button)return;const i=this.hp(t);if(this.zf=null,this.Jf=!1,this.qf&&(this.qf(),this.qf=null),fn()){this.vp.ownerDocument.documentElement.removeEventListener(\"mouseleave\",this.np)}if(!this.rp(t))if(this.dp(i,this.up.Ep),++this.Rf,this.Df&&this.Rf>1){const{ap:n}=this.lp(Sn(t),this.If);n<5&&!this.Ff&&this.dp(i,this.up.fp),this.pp()}else this.Ff||this.dp(i,this.up.Ap)}wp(){null!==this.Af&&(clearTimeout(this.Af),this.Af=null)}Lp(t){if(null!==this.tp)return;const i=t.changedTouches[0];this.tp=i.identifier,this.Qf=xn(t);const n=this.vp.ownerDocument.documentElement;this.Wf=!1,this.Nf=!1,this.Xf=!1,this.Of=Sn(i),this.Yf&&(this.Yf(),this.Yf=null);{const i=this.xp.bind(this),s=this.Ip.bind(this);this.Yf=()=>{n.removeEventListener(\"touchmove\",i),n.removeEventListener(\"touchend\",s)},n.addEventListener(\"touchmove\",i,{passive:!1}),n.addEventListener(\"touchend\",s,{passive:!1}),this.wp(),this.Af=setTimeout(this.zp.bind(this,t),240)}const s=this.hp(t,i);this.op(s,this.up.Op),this.Bf||(this.Vf=0,this.Bf=setTimeout(this.cp.bind(this),500),this.Ef=Sn(i))}Np(t){if(0!==t.button)return;const i=this.vp.ownerDocument.documentElement;fn()&&i.addEventListener(\"mouseleave\",this.np),this.Ff=!1,this.zf=Sn(t),this.qf&&(this.qf(),this.qf=null);{const t=this.Rp.bind(this),n=this.sp.bind(this);this.qf=()=>{i.removeEventListener(\"mousemove\",t),i.removeEventListener(\"mouseup\",n)},i.addEventListener(\"mousemove\",t),i.addEventListener(\"mouseup\",n)}if(this.Jf=!0,this.rp(t))return;const n=this.hp(t);this.dp(n,this.up.Fp),this.Df||(this.Rf=0,this.Df=setTimeout(this.pp.bind(this),500),this.If=Sn(t))}mp(){this.vp.addEventListener(\"mouseenter\",this.Mp.bind(this)),this.vp.addEventListener(\"touchcancel\",this.wp.bind(this));{const t=this.vp.ownerDocument,i=t=>{this.up.Wp&&(t.composed&&this.vp.contains(t.composedPath()[0])||t.target&&this.vp.contains(t.target)||this.up.Wp())};this.Uf=()=>{t.removeEventListener(\"touchstart\",i)},this.Hf=()=>{t.removeEventListener(\"mousedown\",i)},t.addEventListener(\"mousedown\",i),t.addEventListener(\"touchstart\",i,{passive:!0})}pn()&&(this.$f=()=>{this.vp.removeEventListener(\"dblclick\",this.ep)},this.vp.addEventListener(\"dblclick\",this.ep)),this.vp.addEventListener(\"mouseleave\",this.Hp.bind(this)),this.vp.addEventListener(\"touchstart\",this.Lp.bind(this),{passive:!0}),wn(this.vp),this.vp.addEventListener(\"mousedown\",this.Np.bind(this)),this.Up(),this.vp.addEventListener(\"touchmove\",(()=>{}),{passive:!1})}Up(){void 0===this.up.$p&&void 0===this.up.jp&&void 0===this.up.qp||(this.vp.addEventListener(\"touchstart\",(t=>this.Yp(t.touches)),{passive:!0}),this.vp.addEventListener(\"touchmove\",(t=>{if(2===t.touches.length&&null!==this.Kf&&void 0!==this.up.jp){const i=gn(t.touches[0],t.touches[1])/this.Gf;this.up.jp(this.Kf,i),bn(t)}}),{passive:!1}),this.vp.addEventListener(\"touchend\",(t=>{this.Yp(t.touches)})))}Yp(t){1===t.length&&(this.Zf=!1),2!==t.length||this.Zf||this.Lf?this.Kp():this.Gp(t)}Gp(t){const i=this.vp.getBoundingClientRect()||{left:0,top:0};this.Kf={_t:(t[0].clientX-i.left+(t[1].clientX-i.left))/2,ut:(t[0].clientY-i.top+(t[1].clientY-i.top))/2},this.Gf=gn(t[0],t[1]),void 0!==this.up.$p&&this.up.$p(),this.wp()}Kp(){null!==this.Kf&&(this.Kf=null,void 0!==this.up.qp&&this.up.qp())}Hp(t){if(this.jf&&this.jf(),this.rp(t))return;if(!this.ip)return;const i=this.hp(t);this.dp(i,this.up.Zp),this.ip=!pn()}zp(t){const i=Cn(t.touches,u(this.tp));if(null===i)return;const n=this.hp(t,i);this.op(n,this.up.Xp),this.Wf=!0,this.Lf=!0}rp(t){return t.sourceCapabilities&&void 0!==t.sourceCapabilities.firesTouchEvents?t.sourceCapabilities.firesTouchEvents:xn(t)<this.Qf+500}op(t,i){i&&i.call(this.up,t)}dp(t,i){i&&i.call(this.up,t)}hp(t,i){const n=i||t,s=this.vp.getBoundingClientRect()||{left:0,top:0};return{clientX:n.clientX,clientY:n.clientY,pageX:n.pageX,pageY:n.pageY,screenX:n.screenX,screenY:n.screenY,localX:n.clientX-s.left,localY:n.clientY-s.top,ctrlKey:t.ctrlKey,altKey:t.altKey,shiftKey:t.shiftKey,metaKey:t.metaKey,Jp:!t.type.startsWith(\"mouse\")&&\"contextmenu\"!==t.type&&\"click\"!==t.type,Qp:t.type,tv:n.target,xu:t.view,iv:()=>{\"touchstart\"!==t.type&&bn(t)}}}}function gn(t,i){const n=t.clientX-i.clientX,s=t.clientY-i.clientY;return Math.sqrt(n*n+s*s)}function bn(t){t.cancelable&&t.preventDefault()}function Sn(t){return{_t:t.pageX,ut:t.pageY}}function xn(t){return t.timeStamp||performance.now()}function Cn(t,i){for(let n=0;n<t.length;++n)if(t[n].identifier===i)return t[n];return null}class yn{constructor(t,i,n){this.nv=null,this.sv=null,this.ev=!0,this.rv=null,this.hv=t,this.av=t.lv()[i],this.ov=t.lv()[n],this._v=document.createElement(\"tr\"),this._v.style.height=\"1px\",this.uv=document.createElement(\"td\"),this.uv.style.position=\"relative\",this.uv.style.padding=\"0\",this.uv.style.margin=\"0\",this.uv.setAttribute(\"colspan\",\"3\"),this.cv(),this._v.appendChild(this.uv),this.ev=this.hv.N().layout.panes.enableResize,this.ev?this.dv():(this.nv=null,this.sv=null)}m(){null!==this.sv&&this.sv.m()}fv(){return this._v}pv(){return t({width:this.av.pv().width,height:1})}vv(){return t({width:this.av.vv().width,height:1*window.devicePixelRatio})}mv(t,i,n){const s=this.vv();t.fillStyle=this.hv.N().layout.panes.separatorColor,t.fillRect(i,n,s.width,s.height)}Pt(){this.cv(),this.hv.N().layout.panes.enableResize!==this.ev&&(this.ev=this.hv.N().layout.panes.enableResize,this.ev?this.dv():(null!==this.nv&&(this.uv.removeChild(this.nv.wv),this.uv.removeChild(this.nv.Mv),this.nv=null),null!==this.sv&&(this.sv.m(),this.sv=null)))}dv(){const t=document.createElement(\"div\"),i=t.style;i.position=\"fixed\",i.display=\"none\",i.zIndex=\"49\",i.top=\"0\",i.left=\"0\",i.width=\"100%\",i.height=\"100%\",i.cursor=\"row-resize\",this.uv.appendChild(t);const n=document.createElement(\"div\"),s=n.style;s.position=\"absolute\",s.zIndex=\"50\",s.top=\"-4px\",s.height=\"9px\",s.width=\"100%\",s.backgroundColor=\"\",s.cursor=\"row-resize\",this.uv.appendChild(n);const e={bp:this.gv.bind(this),Zp:this.bv.bind(this),Fp:this.Sv.bind(this),Op:this.Sv.bind(this),Dp:this.xv.bind(this),Tp:this.xv.bind(this),Ep:this.Cv.bind(this),Vp:this.Cv.bind(this)};this.sv=new Mn(n,e,{Pp:()=>!1,kp:()=>!0}),this.nv={Mv:n,wv:t}}cv(){this.uv.style.background=this.hv.N().layout.panes.separatorColor}gv(t){null!==this.nv&&(this.nv.Mv.style.backgroundColor=this.hv.N().layout.panes.separatorHoverColor)}bv(t){null!==this.nv&&null===this.rv&&(this.nv.Mv.style.backgroundColor=\"\")}Sv(t){if(null===this.nv)return;const i=this.av.yv().F_()+this.ov.yv().F_(),n=i/(this.av.pv().height+this.ov.pv().height),s=30*n;i<=2*s||(this.rv={Pv:t.pageY,kv:this.av.yv().F_(),Tv:i-s,Rv:i,Dv:n,Iv:s},this.nv.wv.style.display=\"block\")}xv(t){const i=this.rv;if(null===i)return;const n=(t.pageY-i.Pv)*i.Dv,s=ni(i.kv+n,i.Iv,i.Tv);this.av.yv().W_(s),this.ov.yv().W_(i.Rv-s),this.hv.Qt().ka()}Cv(t){null!==this.rv&&null!==this.nv&&(this.rv=null,this.nv.wv.style.display=\"none\")}}function Pn(t,i){return t.Vv-i.Vv}function kn(t,i,n){const s=(t.Vv-i.Vv)/(t.wt-i.wt);return Math.sign(s)*Math.min(Math.abs(s),n)}class Tn{constructor(t,i,n,s){this.Bv=null,this.Ev=null,this.Av=null,this.Lv=null,this.zv=null,this.Ov=0,this.Nv=0,this.Fv=t,this.Wv=i,this.Hv=n,this.Ps=s}Uv(t,i){if(null!==this.Bv){if(this.Bv.wt===i)return void(this.Bv.Vv=t);if(Math.abs(this.Bv.Vv-t)<this.Ps)return}this.Lv=this.Av,this.Av=this.Ev,this.Ev=this.Bv,this.Bv={wt:i,Vv:t}}me(t,i){if(null===this.Bv||null===this.Ev)return;if(i-this.Bv.wt>50)return;let n=0;const s=kn(this.Bv,this.Ev,this.Wv),e=Pn(this.Bv,this.Ev),r=[s],h=[e];if(n+=e,null!==this.Av){const t=kn(this.Ev,this.Av,this.Wv);if(Math.sign(t)===Math.sign(s)){const i=Pn(this.Ev,this.Av);if(r.push(t),h.push(i),n+=i,null!==this.Lv){const t=kn(this.Av,this.Lv,this.Wv);if(Math.sign(t)===Math.sign(s)){const i=Pn(this.Av,this.Lv);r.push(t),h.push(i),n+=i}}}}let a=0;for(let t=0;t<r.length;++t)a+=h[t]/n*r[t];Math.abs(a)<this.Fv||(this.zv={Vv:t,wt:i},this.Nv=a,this.Ov=function(t,i){const n=Math.log(i);return Math.log(1*n/-t)/n}(Math.abs(a),this.Hv))}Gc(t){const i=u(this.zv),n=t-i.wt;return i.Vv+this.Nv*(Math.pow(this.Hv,n)-1)/Math.log(this.Hv)}Kc(t){return null===this.zv||this.$v(t)===this.Ov}$v(t){const i=t-u(this.zv).wt;return Math.min(i,this.Ov)}}class Rn{constructor(t,i){this.jv=void 0,this.qv=void 0,this.Yv=void 0,this.vn=!1,this.Kv=t,this.Gv=i,this.Zv()}Pt(){this.Zv()}Xv(){this.jv&&this.Kv.removeChild(this.jv),this.qv&&this.Kv.removeChild(this.qv),this.jv=void 0,this.qv=void 0}Jv(){return this.vn!==this.Qv()||this.Yv!==this.tm()}tm(){return this.Gv.Qt().Xi().J(this.Gv.N().layout.textColor)>160?\"dark\":\"light\"}Qv(){return this.Gv.N().layout.attributionLogo}im(){const t=new URL(location.href);return t.hostname?\"&utm_source=\"+t.hostname+t.pathname:\"\"}Zv(){this.Jv()&&(this.Xv(),this.vn=this.Qv(),this.vn&&(this.Yv=this.tm(),this.qv=document.createElement(\"style\"),this.qv.innerText=\"a#tv-attr-logo{--fill:#131722;--stroke:#fff;position:absolute;left:10px;bottom:10px;height:19px;width:35px;margin:0;padding:0;border:0;z-index:3;}a#tv-attr-logo[data-dark]{--fill:#D1D4DC;--stroke:#131722;}\",this.jv=document.createElement(\"a\"),this.jv.href=`https://www.tradingview.com/?utm_medium=lwc-link&utm_campaign=lwc-chart${this.im()}`,this.jv.title=\"Charting by TradingView\",this.jv.id=\"tv-attr-logo\",this.jv.target=\"_blank\",this.jv.innerHTML='<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"35\" height=\"19\" fill=\"none\"><g fill-rule=\"evenodd\" clip-path=\"url(#a)\" clip-rule=\"evenodd\"><path fill=\"var(--stroke)\" d=\"M2 0H0v10h6v9h21.4l.5-1.3 6-15 1-2.7H23.7l-.5 1.3-.2.6a5 5 0 0 0-7-.9V0H2Zm20 17h4l5.2-13 .8-2h-7l-1 2.5-.2.5-1.5 3.8-.3.7V17Zm-.8-10a3 3 0 0 0 .7-2.7A3 3 0 1 0 16.8 7h4.4ZM14 7V2H2v6h6v9h4V7h2Z\"/><path fill=\"var(--fill)\" d=\"M14 2H2v6h6v9h6V2Zm12 15h-7l6-15h7l-6 15Zm-7-9a3 3 0 1 0 0-6 3 3 0 0 0 0 6Z\"/></g><defs><clipPath id=\"a\"><path fill=\"var(--stroke)\" d=\"M0 0h35v19H0z\"/></clipPath></defs></svg>',this.jv.toggleAttribute(\"data-dark\",\"dark\"===this.Yv),this.Kv.appendChild(this.qv),this.Kv.appendChild(this.jv)))}}function Dn(t,n){const s=u(t.ownerDocument).createElement(\"canvas\");t.appendChild(s);const e=i(s,{type:\"device-pixel-content-box\",options:{allowResizeObserver:!0},transform:(t,i)=>({width:Math.max(t.width,i.width),height:Math.max(t.height,i.height)})});return e.resizeCanvasElement(n),e}function In(t){t.width=1,t.height=1,t.getContext(\"2d\")?.clearRect(0,0,1,1)}function Vn(t,i,n,s){t.qh&&t.qh(i,n,s)}function Bn(t,i,n,s){t.st(i,n,s)}function En(t,i,n,s){An(t(n,s),i,s)}function An(t,i,n){for(const s of t){const t=s.Tt(n);null!==t&&i(t)}}function Ln(t,i){return n=>{if(!function(t){return void 0!==t.Ft}(n))return[];return(n.Ft()?.pl()??\"\")!==i?[]:n.Qa?.(t)??[]}}function zn(t,i,n,s){if(!t.length)return;let e=0;const r=t[0].$t(s,!0);let h=1===i?n/2-(t[0].Hi()-r/2):t[0].Hi()-r/2-n/2;h=Math.max(0,h);for(let r=1;r<t.length;r++){const a=t[r],l=t[r-1],o=l.$t(s,!1),_=a.Hi(),u=l.Hi();if(1===i?_>u-o:_<u+o){const s=u-o*i;a.Ui(s);const r=s-i*o/2;if((1===i?r<0:r>n)&&h>0){const s=1===i?-1-r:r-n,a=Math.min(s,h);for(let n=e;n<t.length;n++)t[n].Ui(t[n].Hi()+i*a);h-=a}}else e=r,h=1===i?u-o-_:_-(u+o)}}class On{constructor(i,n,s,e){this.Ki=null,this.nm=null,this.sm=!1,this.rm=new rt(200),this.hm=null,this.am=0,this.lm=!1,this.om=()=>{this.lm||this.yt._m().Qt().mr()},this.um=()=>{this.lm||this.yt._m().Qt().mr()},this.yt=i,this.yn=n,this.Ro=n.layout,this.bd=s,this.dm=\"left\"===e,this.fm=Ln(\"normal\",e),this.pm=Ln(\"top\",e),this.vm=Ln(\"bottom\",e),this.uv=document.createElement(\"div\"),this.uv.style.height=\"100%\",this.uv.style.overflow=\"hidden\",this.uv.style.width=\"25px\",this.uv.style.left=\"0\",this.uv.style.position=\"relative\",this.wm=Dn(this.uv,t({width:16,height:16})),this.wm.subscribeSuggestedBitmapSizeChanged(this.om);const r=this.wm.canvasElement;r.style.position=\"absolute\",r.style.zIndex=\"1\",r.style.left=\"0\",r.style.top=\"0\",this.Mm=Dn(this.uv,t({width:16,height:16})),this.Mm.subscribeSuggestedBitmapSizeChanged(this.um);const h=this.Mm.canvasElement;h.style.position=\"absolute\",h.style.zIndex=\"2\",h.style.left=\"0\",h.style.top=\"0\";const a={Fp:this.Sv.bind(this),Op:this.Sv.bind(this),Dp:this.xv.bind(this),Tp:this.xv.bind(this),Wp:this.gm.bind(this),Ep:this.Cv.bind(this),Vp:this.Cv.bind(this),fp:this.bm.bind(this),_p:this.bm.bind(this),bp:this.Sm.bind(this),Zp:this.bv.bind(this)};this.sv=new Mn(this.Mm.canvasElement,a,{Pp:()=>!this.yn.handleScroll.vertTouchDrag,kp:()=>!0})}m(){this.sv.m(),this.Mm.unsubscribeSuggestedBitmapSizeChanged(this.um),In(this.Mm.canvasElement),this.Mm.dispose(),this.wm.unsubscribeSuggestedBitmapSizeChanged(this.om),In(this.wm.canvasElement),this.wm.dispose(),null!==this.Ki&&this.Ki.__().u(this),this.Ki=null}fv(){return this.uv}P(){return this.Ro.fontSize}xm(){const t=this.bd.N();return this.hm!==t.k&&(this.rm.Os(),this.hm=t.k),t}Cm(){if(null===this.Ki)return 0;let t=0;const i=this.xm(),n=u(this.wm.canvasElement.getContext(\"2d\",{colorSpace:this.yt._m().N().layout.colorSpace}));n.save();const s=this.Ki.zl();n.font=this.ym(),s.length>0&&(t=Math.max(this.rm.Ii(n,s[0].eo),this.rm.Ii(n,s[s.length-1].eo)));const e=this.Pm();for(let i=e.length;i--;){const s=this.rm.Ii(n,e[i].ri());s>t&&(t=s)}const r=this.Ki.Lt();if(null!==r&&null!==this.nm&&(2!==(h=this.yn.crosshair).mode&&h.horzLine.visible&&h.horzLine.labelVisible)){const i=this.Ki.Tn(1,r),s=this.Ki.Tn(this.nm.height-2,r);t=Math.max(t,this.rm.Ii(n,this.Ki.Ji(Math.floor(Math.min(i,s))+.11111111111111,r)),this.rm.Ii(n,this.Ki.Ji(Math.ceil(Math.max(i,s))-.11111111111111,r)))}var h;n.restore();const a=t||34;return mn(Math.ceil(i.S+i.C+i.V+i.B+5+a))}km(t){null!==this.nm&&n(this.nm,t)||(this.nm=t,this.lm=!0,this.wm.resizeCanvasElement(t),this.Mm.resizeCanvasElement(t),this.lm=!1,this.uv.style.width=`${t.width}px`,this.uv.style.height=`${t.height}px`)}Tm(){return u(this.nm).width}un(t){this.Ki!==t&&(null!==this.Ki&&this.Ki.__().u(this),this.Ki=t,t.__().i(this.wo.bind(this),this))}Ft(){return this.Ki}Os(){const t=this.yt.yv();this.yt._m().Qt().au(t,u(this.Ft()))}Rm(t){if(null===this.nm)return;const i={colorSpace:this.yt._m().N().layout.colorSpace};if(1!==t){this.Dm(),this.wm.applySuggestedBitmapSize();const t=s(this.wm,i);null!==t&&(t.useBitmapCoordinateSpace((t=>{this.Im(t),this.Vm(t)})),this.yt.Bm(t,this.vm),this.Em(t),this.yt.Bm(t,this.fm),this.Am(t))}this.Mm.applySuggestedBitmapSize();const n=s(this.Mm,i);null!==n&&(n.useBitmapCoordinateSpace((({context:t,bitmapSize:i})=>{t.clearRect(0,0,i.width,i.height)})),this.Lm(n),this.yt.Bm(n,this.pm))}vv(){return this.wm.bitmapSize}mv(t,i,n,s){const e=this.vv();if(e.width>0&&e.height>0&&(t.drawImage(this.wm.canvasElement,i,n),s)){const s=this.Mm.canvasElement;t.drawImage(s,i,n)}}Pt(){this.Ki?.zl()}Sv(t){if(null===this.Ki||this.Ki.Zi()||!this.yn.handleScale.axisPressedMouseMove.price)return;const i=this.yt._m().Qt(),n=this.yt.yv();this.sm=!0,i.Q_(n,this.Ki,t.localY)}xv(t){if(null===this.Ki||!this.yn.handleScale.axisPressedMouseMove.price)return;const i=this.yt._m().Qt(),n=this.yt.yv(),s=this.Ki;i.tu(n,s,t.localY)}gm(){if(null===this.Ki||!this.yn.handleScale.axisPressedMouseMove.price)return;const t=this.yt._m().Qt(),i=this.yt.yv(),n=this.Ki;this.sm&&(this.sm=!1,t.iu(i,n))}Cv(t){if(null===this.Ki||!this.yn.handleScale.axisPressedMouseMove.price)return;const i=this.yt._m().Qt(),n=this.yt.yv();this.sm=!1,i.iu(n,this.Ki)}bm(t){this.yn.handleScale.axisDoubleClickReset.price&&this.Os()}Sm(t){if(null===this.Ki)return;!this.yt._m().Qt().N().handleScale.axisPressedMouseMove.price||this.Ki.je()||this.Ki.No()||this.zm(1)}bv(t){this.zm(0)}Pm(){const t=[],i=null===this.Ki?void 0:this.Ki;return(n=>{for(let s=0;s<n.length;++s){const e=n[s].qn(this.yt.yv(),i);for(let i=0;i<e.length;i++)t.push(e[i])}})(this.yt.yv().Dt()),t}Im({context:t,bitmapSize:i}){const{width:n,height:s}=i,e=this.yt.yv().Qt(),r=e.$(),h=e.af();r===h?z(t,0,0,n,s,r):F(t,0,0,n,s,r,h)}Vm({context:t,bitmapSize:i,horizontalPixelRatio:n}){if(null===this.nm||null===this.Ki||!this.Ki.N().borderVisible)return;t.fillStyle=this.Ki.N().borderColor;const s=Math.max(1,Math.floor(this.xm().S*n));let e;e=this.dm?i.width-s:0,t.fillRect(e,0,s,i.height)}Em(t){if(null===this.nm||null===this.Ki)return;const i=this.Ki.zl(),n=this.Ki.N(),s=this.xm(),e=this.dm?this.nm.width-s.C:0;n.borderVisible&&n.ticksVisible&&t.useBitmapCoordinateSpace((({context:t,horizontalPixelRatio:r,verticalPixelRatio:h})=>{t.fillStyle=n.borderColor;const a=Math.max(1,Math.floor(h)),l=Math.floor(.5*h),o=Math.round(s.C*r);t.beginPath();for(const n of i)t.rect(Math.floor(e*r),Math.round(n.Vl*h)-l,o,a);t.fill()})),t.useMediaCoordinateSpace((({context:t})=>{t.font=this.ym(),t.fillStyle=n.textColor??this.Ro.textColor,t.textAlign=this.dm?\"right\":\"left\",t.textBaseline=\"middle\";const r=this.dm?Math.round(e-s.V):Math.round(e+s.C+s.V),h=i.map((i=>this.rm.Di(t,i.eo)));for(let n=i.length;n--;){const s=i[n];t.fillText(s.eo,r,s.Vl+h[n])}}))}Dm(){if(null===this.nm||null===this.Ki)return;let t=this.nm.height/2;const i=[],n=this.Ki.Dt().slice(),s=this.yt.yv(),e=this.xm();this.Ki===s.Zs()&&this.yt.yv().Dt().forEach((t=>{s.Gs(t)&&n.push(t)}));const r=this.Ki.kl()[0],h=this.Ki;n.forEach((n=>{const e=n.qn(s,h);e.forEach((t=>{t.$i()&&null===t.Wi()&&(t.Ui(null),i.push(t))})),r===n&&e.length>0&&(t=e[0].Ei())}));this.Ki.N().alignLabels&&this.Om(i,e,t)}Om(t,i,n){if(null===this.nm)return;const s=t.filter((t=>t.Ei()<=n)),e=t.filter((t=>t.Ei()>n));s.sort(((t,i)=>i.Ei()-t.Ei())),s.length&&e.length&&e.push(s[0]),e.sort(((t,i)=>t.Ei()-i.Ei()));for(const n of t){const t=Math.floor(n.$t(i)/2),s=n.Ei();s>-t&&s<t&&n.Ui(t),s>this.nm.height-t&&s<this.nm.height+t&&n.Ui(this.nm.height-t)}zn(s,1,this.nm.height,i),zn(e,-1,this.nm.height,i)}Am(t){if(null===this.nm)return;const i=this.Pm(),n=this.xm(),s=this.dm?\"right\":\"left\";i.forEach((i=>{if(i.ji()){i.Tt(u(this.Ki)).st(t,n,this.rm,s)}}))}Lm(t){if(null===this.nm||null===this.Ki)return;const i=this.yt._m().Qt(),n=[],s=this.yt.yv(),e=i.Vd().qn(s,this.Ki);e.length&&n.push(e);const r=this.xm(),h=this.dm?\"right\":\"left\";n.forEach((i=>{i.forEach((i=>{i.Tt(u(this.Ki)).st(t,r,this.rm,h)}))}))}zm(t){this.uv.style.cursor=1===t?\"ns-resize\":\"default\"}wo(){const t=this.Cm();this.am<t&&this.yt._m().Qt().ka(),this.am=t}ym(){return x(this.Ro.fontSize,this.Ro.fontFamily)}}function Nn(t,i){return t.Xa?.(i)??[]}function Fn(t,i){return t.jn?.(i)??[]}function Wn(t,i){return t.cn?.(i)??[]}function Hn(t,i){return t.qa?.(i)??[]}class Un{constructor(i,n){this.nm=t({width:0,height:0}),this.Nm=null,this.Fm=null,this.Wm=null,this.Hm=null,this.Um=!1,this.$m=new d,this.jm=new d,this.qm=0,this.Ym=!1,this.Km=null,this.Gm=!1,this.Zm=null,this.Xm=null,this.lm=!1,this.om=()=>{this.lm||null===this.Jm||this.sn().mr()},this.um=()=>{this.lm||null===this.Jm||this.sn().mr()},this.Gv=i,this.Jm=n,this.Jm.mu().i(this.Qm.bind(this),this,!0),this.tw=document.createElement(\"td\"),this.tw.style.padding=\"0\",this.tw.style.position=\"relative\";const s=document.createElement(\"div\");s.style.width=\"100%\",s.style.height=\"100%\",s.style.position=\"relative\",s.style.overflow=\"hidden\",this.iw=document.createElement(\"td\"),this.iw.style.padding=\"0\",this.nw=document.createElement(\"td\"),this.nw.style.padding=\"0\",this.tw.appendChild(s),this.wm=Dn(s,t({width:16,height:16})),this.wm.subscribeSuggestedBitmapSizeChanged(this.om);const e=this.wm.canvasElement;e.style.position=\"absolute\",e.style.zIndex=\"1\",e.style.left=\"0\",e.style.top=\"0\",this.Mm=Dn(s,t({width:16,height:16})),this.Mm.subscribeSuggestedBitmapSizeChanged(this.um);const r=this.Mm.canvasElement;r.style.position=\"absolute\",r.style.zIndex=\"2\",r.style.left=\"0\",r.style.top=\"0\",this._v=document.createElement(\"tr\"),this._v.appendChild(this.iw),this._v.appendChild(this.tw),this._v.appendChild(this.nw),this.sw(),this.sv=new Mn(this.Mm.canvasElement,this,{Pp:()=>null===this.Km&&!this.Gv.N().handleScroll.vertTouchDrag,kp:()=>null===this.Km&&!this.Gv.N().handleScroll.horzTouchDrag})}m(){null!==this.Nm&&this.Nm.m(),null!==this.Fm&&this.Fm.m(),this.Wm=null,this.Mm.unsubscribeSuggestedBitmapSizeChanged(this.um),In(this.Mm.canvasElement),this.Mm.dispose(),this.wm.unsubscribeSuggestedBitmapSizeChanged(this.om),In(this.wm.canvasElement),this.wm.dispose(),null!==this.Jm&&(this.Jm.mu().u(this),this.Jm.m()),this.sv.m()}yv(){return u(this.Jm)}ew(t){null!==this.Jm&&this.Jm.mu().u(this),this.Jm=t,null!==this.Jm&&this.Jm.mu().i(Un.prototype.Qm.bind(this),this,!0),this.sw(),this.Gv.lv().indexOf(this)===this.Gv.lv().length-1?(this.Wm=this.Wm??new Rn(this.tw,this.Gv),this.Wm.Pt()):(this.Wm?.Xv(),this.Wm=null)}_m(){return this.Gv}fv(){return this._v}sw(){if(null!==this.Jm&&(this.rw(),0!==this.sn().Jn().length)){if(null!==this.Nm){const t=this.Jm.X_();this.Nm.un(u(t))}if(null!==this.Fm){const t=this.Jm.J_();this.Fm.un(u(t))}}}hw(){null!==this.Nm&&this.Nm.Pt(),null!==this.Fm&&this.Fm.Pt()}F_(){return null!==this.Jm?this.Jm.F_():0}W_(t){this.Jm&&this.Jm.W_(t)}bp(t){if(!this.Jm)return;this.aw();const i=t.localX,n=t.localY;this.lw(i,n,t)}Fp(t){this.aw(),this.ow(),this.lw(t.localX,t.localY,t)}Sp(t){if(!this.Jm)return;this.aw();const i=t.localX,n=t.localY;this.lw(i,n,t)}Ap(t){null!==this.Jm&&(this.aw(),this.lw(t.localX,t.localY,t),this._w(t))}fp(t){null!==this.Jm&&this.uw(this.jm,t)}_p(t){this.fp(t)}Dp(t){this.aw(),this.cw(t),this.lw(t.localX,t.localY,t)}Ep(t){null!==this.Jm&&(this.aw(),this.Ym=!1,this.dw(t))}Bp(t){null!==this.Jm&&this._w(t)}Xp(t){if(this.Ym=!0,null===this.Km){const i={x:t.localX,y:t.localY};this.fw(i,i,t)}}Zp(t){null!==this.Jm&&(this.aw(),this.Jm.Qt().Rd(null),this.pw())}mw(){return this.$m}ww(){return this.jm}$p(){this.qm=1,this.sn().cs()}jp(t,i){if(!this.Gv.N().handleScale.pinch)return;const n=5*(i-this.qm);this.qm=i,this.sn().Wd(t._t,n)}Op(t){this.Ym=!1,this.Gm=null!==this.Km,this.ow();const i=this.sn().Vd();null!==this.Km&&i.It()&&(this.Zm={x:i.ni(),y:i.si()},this.Km={x:t.localX,y:t.localY})}Tp(t){if(null===this.Jm)return;const i=t.localX,n=t.localY;if(null===this.Km)this.cw(t);else{this.Gm=!1;const s=u(this.Zm),e=s.x+(i-this.Km.x),r=s.y+(n-this.Km.y);this.lw(e,r,t)}}Vp(t){0===this._m().N().trackingMode.exitMode&&(this.Gm=!0),this.Mw(),this.dw(t)}Qs(t,i){const n=this.Jm;return null===n?null:Bi(n,t,i)}gw(i,n){u(\"left\"===n?this.Nm:this.Fm).km(t({width:i,height:this.nm.height}))}pv(){return this.nm}km(t){n(this.nm,t)||(this.nm=t,this.lm=!0,this.wm.resizeCanvasElement(t),this.Mm.resizeCanvasElement(t),this.lm=!1,this.tw.style.width=t.width+\"px\",this.tw.style.height=t.height+\"px\")}bw(){const t=u(this.Jm);t.G_(t.X_()),t.G_(t.J_());for(const i of t.kl())if(t.Gs(i)){const n=i.Ft();null!==n&&t.G_(n),i.Nn()}for(const i of t.Mu())i.Nn()}vv(){return this.wm.bitmapSize}mv(t,i,n,s){const e=this.vv();if(e.width>0&&e.height>0&&(t.drawImage(this.wm.canvasElement,i,n),s)){const s=this.Mm.canvasElement;null!==t&&t.drawImage(s,i,n)}}Rm(t){if(0===t)return;if(null===this.Jm)return;t>1&&this.bw(),null!==this.Nm&&this.Nm.Rm(t),null!==this.Fm&&this.Fm.Rm(t);const i={colorSpace:this.Gv.N().layout.colorSpace};if(1!==t){this.wm.applySuggestedBitmapSize();const t=s(this.wm,i);null!==t&&(t.useBitmapCoordinateSpace((t=>{this.Im(t)})),this.Jm&&(this.Sw(t,Nn),this.xw(t),this.Sw(t,Fn),this.Sw(t,Wn)))}this.Mm.applySuggestedBitmapSize();const n=s(this.Mm,i);null!==n&&(n.useBitmapCoordinateSpace((({context:t,bitmapSize:i})=>{t.clearRect(0,0,i.width,i.height)})),this.Cw(n),this.Sw(n,Hn),this.Sw(n,Wn))}yw(){return this.Nm}Pw(){return this.Fm}Bm(t,i){this.Sw(t,i)}Qm(){null!==this.Jm&&this.Jm.mu().u(this),this.Jm=null}_w(t){this.uw(this.$m,t)}uw(t,i){const n=i.localX,s=i.localY;t.v()&&t.p(this.sn().Et().Vc(n),{x:n,y:s},i)}Im({context:t,bitmapSize:i}){const{width:n,height:s}=i,e=this.sn(),r=e.$(),h=e.af();r===h?z(t,0,0,n,s,h):F(t,0,0,n,s,r,h)}xw(t){const i=u(this.Jm),n=i.wu().wr().Tt(i);null!==n&&n.st(t,!1)}Cw(t){this.kw(t,Fn,Bn,this.sn().Vd())}Sw(t,i){const n=u(this.Jm),s=i===Fn?this.Tw():null,e=null===s?null:this.Rw(s,n),r=n.Mu();if(null===e||null===s){const s=n._u();return this.Dw(t,i,Vn,r,s),void this.Dw(t,i,Bn,r,s)}const h=n.Dt(),a=t=>t===s?e.Za:void 0;this.Dw(t,i,Vn,r,h,a),this.Dw(t,i,Bn,r,h,a),this.kw(t,i,Vn,s,e.qa),this.kw(t,i,Bn,s,e.qa)}Dw(t,i,n,s,e,r){for(const e of s)this.kw(t,i,n,e);if(void 0!==r)for(const s of e)this.kw(t,i,n,s,r(s));else for(const s of e)this.kw(t,i,n,s)}Tw(){const t=u(this.Jm),i=t.Qt().cu()?.uu;if(!t.Qt().N().hoveredSeriesOnTop||void 0===i)return null;for(const n of t.Dt())if(n===i)return n;return null}Rw(t,i){const n=t.Ga?.(i)??null;return null===n||0===n.qa.length?null:n}kw(t,i,n,s,e){const r=u(this.Jm),h=r.Qt().cu(),a=null!==h&&h.uu===s,l=null!==h&&a&&void 0!==h.bu?h.bu.ie:void 0,o=i=>n(i,t,a,l);void 0===e?En(i,o,s,r):An(e,o,r)}rw(){if(null===this.Jm)return;const t=this.Gv,i=this.Jm.X_().N().visible,n=this.Jm.J_().N().visible;i||null===this.Nm||(this.iw.removeChild(this.Nm.fv()),this.Nm.m(),this.Nm=null),n||null===this.Fm||(this.nw.removeChild(this.Fm.fv()),this.Fm.m(),this.Fm=null);const s=t.Qt().Jd();i&&null===this.Nm&&(this.Nm=new On(this,t.N(),s,\"left\"),this.iw.appendChild(this.Nm.fv())),n&&null===this.Fm&&(this.Fm=new On(this,t.N(),s,\"right\"),this.nw.appendChild(this.Fm.fv()))}Iw(t){return t.Jp&&this.Ym||null!==this.Km}lw(t,i,n){t=Math.max(0,Math.min(t,this.nm.width-1)),i=Math.max(0,Math.min(i,this.nm.height-1)),this.sn().Kd(t,i,n,u(this.Jm))}pw(){this.sn().Zd()}Mw(){this.Gm&&(this.Km=null,this.pw())}fw(t,i,n){this.Km=t,this.Gm=!1,this.lw(i.x,i.y,n);const s=this.sn().Vd();this.Zm={x:s.ni(),y:s.si()}}sn(){return this.Gv.Qt()}dw(t){if(!this.Um)return;const i=this.sn(),n=this.yv();if(i.eu(n,n.kn()),this.Hm=null,this.Um=!1,i.jd(),null!==this.Xm){const t=performance.now(),n=i.Et();this.Xm.me(n.Oc(),t),this.Xm.Kc(t)||i.ps(this.Xm)}}aw(){this.Km=null}ow(){if(!this.Jm)return;if(this.sn().cs(),document.activeElement!==document.body&&document.activeElement!==document.documentElement)u(document.activeElement).blur();else{const t=document.getSelection();null!==t&&t.removeAllRanges()}!this.Jm.kn().Zi()&&this.sn().Et().Zi()}cw(t){if(null===this.Jm)return;const i=this.sn(),n=i.Et();if(n.Zi())return;const s=this.Gv.N(),e=s.handleScroll,r=s.kineticScroll;if((!e.pressedMouseMove||t.Jp)&&(!e.horzTouchDrag&&!e.vertTouchDrag||!t.Jp))return;const h=this.Jm.kn(),a=performance.now();if(null!==this.Hm||this.Iw(t)||(this.Hm={x:t.clientX,y:t.clientY,yf:a,Vw:t.localX,Bw:t.localY}),null!==this.Hm&&!this.Um&&(this.Hm.x!==t.clientX||this.Hm.y!==t.clientY)){if(t.Jp&&r.touch||!t.Jp&&r.mouse){const t=n.ml();this.Xm=new Tn(.2/t,7/t,.997,15/t),this.Xm.Uv(n.Oc(),this.Hm.yf)}else this.Xm=null;h.Zi()||i.nu(this.Jm,h,t.localY),i.Ud(t.localX),this.Um=!0}this.Um&&(h.Zi()||i.su(this.Jm,h,t.localY),i.$d(t.localX),null!==this.Xm&&this.Xm.Uv(n.Oc(),a))}}class $n{constructor(i,n,s,e,r){this.xt=!0,this.nm=t({width:0,height:0}),this.om=()=>this.Rm(3),this.dm=\"left\"===i,this.bd=s.Jd,this.yn=n,this.Ew=e,this.Aw=r,this.uv=document.createElement(\"div\"),this.uv.style.width=\"25px\",this.uv.style.height=\"100%\",this.uv.style.overflow=\"hidden\",this.wm=Dn(this.uv,t({width:16,height:16})),this.wm.subscribeSuggestedBitmapSizeChanged(this.om)}m(){this.wm.unsubscribeSuggestedBitmapSizeChanged(this.om),In(this.wm.canvasElement),this.wm.dispose()}fv(){return this.uv}pv(){return this.nm}km(t){n(this.nm,t)||(this.nm=t,this.wm.resizeCanvasElement(t),this.uv.style.width=`${t.width}px`,this.uv.style.height=`${t.height}px`,this.xt=!0)}Rm(t){if(t<3&&!this.xt)return;if(0===this.nm.width||0===this.nm.height)return;this.xt=!1,this.wm.applySuggestedBitmapSize();const i=s(this.wm,{colorSpace:this.yn.layout.colorSpace});null!==i&&i.useBitmapCoordinateSpace((t=>{this.Im(t),this.Vm(t)}))}vv(){return this.wm.bitmapSize}mv(t,i,n){const s=this.vv();s.width>0&&s.height>0&&t.drawImage(this.wm.canvasElement,i,n)}Vm({context:t,bitmapSize:i,horizontalPixelRatio:n,verticalPixelRatio:s}){if(!this.Ew())return;t.fillStyle=this.yn.timeScale.borderColor;const e=Math.floor(this.bd.N().S*n),r=Math.floor(this.bd.N().S*s),h=this.dm?i.width-e:0;t.fillRect(h,0,e,r)}Im({context:t,bitmapSize:i}){z(t,0,0,i.width,i.height,this.Aw())}}function jn(t){return i=>i.tl?.(t)??[]}const qn=jn(\"normal\"),Yn=jn(\"top\"),Kn=jn(\"bottom\");class Gn{constructor(i,n){this.Lw=null,this.zw=null,this.M=null,this.Ow=!1,this.nm=t({width:0,height:0}),this.Nw=new d,this.rm=new rt(5),this.lm=!1,this.om=()=>{this.lm||this.Gv.Qt().mr()},this.um=()=>{this.lm||this.Gv.Qt().mr()},this.Gv=i,this.Pu=n,this.yn=i.N().layout,this.jv=document.createElement(\"tr\"),this.Fw=document.createElement(\"td\"),this.Fw.style.padding=\"0\",this.Ww=document.createElement(\"td\"),this.Ww.style.padding=\"0\",this.uv=document.createElement(\"td\"),this.uv.style.height=\"25px\",this.uv.style.padding=\"0\",this.Hw=document.createElement(\"div\"),this.Hw.style.width=\"100%\",this.Hw.style.height=\"100%\",this.Hw.style.position=\"relative\",this.Hw.style.overflow=\"hidden\",this.uv.appendChild(this.Hw),this.wm=Dn(this.Hw,t({width:16,height:16})),this.wm.subscribeSuggestedBitmapSizeChanged(this.om);const s=this.wm.canvasElement;s.style.position=\"absolute\",s.style.zIndex=\"1\",s.style.left=\"0\",s.style.top=\"0\",this.Mm=Dn(this.Hw,t({width:16,height:16})),this.Mm.subscribeSuggestedBitmapSizeChanged(this.um);const e=this.Mm.canvasElement;e.style.position=\"absolute\",e.style.zIndex=\"2\",e.style.left=\"0\",e.style.top=\"0\",this.jv.appendChild(this.Fw),this.jv.appendChild(this.uv),this.jv.appendChild(this.Ww),this.Uw(),this.Gv.Qt().N_().i(this.Uw.bind(this),this),this.sv=new Mn(this.Mm.canvasElement,this,{Pp:()=>!0,kp:()=>!this.Gv.N().handleScroll.horzTouchDrag})}m(){this.sv.m(),null!==this.Lw&&this.Lw.m(),null!==this.zw&&this.zw.m(),this.Mm.unsubscribeSuggestedBitmapSizeChanged(this.um),In(this.Mm.canvasElement),this.Mm.dispose(),this.wm.unsubscribeSuggestedBitmapSizeChanged(this.om),In(this.wm.canvasElement),this.wm.dispose()}fv(){return this.jv}$w(){return this.Lw}jw(){return this.zw}Fp(t){if(this.Ow)return;this.Ow=!0;const i=this.Gv.Qt();!i.Et().Zi()&&this.Gv.N().handleScale.axisPressedMouseMove.time&&i.Fd(t.localX)}Op(t){this.Fp(t)}Wp(){const t=this.Gv.Qt();!t.Et().Zi()&&this.Ow&&(this.Ow=!1,this.Gv.N().handleScale.axisPressedMouseMove.time&&t.Yd())}Dp(t){const i=this.Gv.Qt();!i.Et().Zi()&&this.Gv.N().handleScale.axisPressedMouseMove.time&&i.qd(t.localX)}Tp(t){this.Dp(t)}Ep(){this.Ow=!1;const t=this.Gv.Qt();t.Et().Zi()&&!this.Gv.N().handleScale.axisPressedMouseMove.time||t.Yd()}Vp(){this.Ep()}fp(){this.Gv.N().handleScale.axisDoubleClickReset.time&&this.Gv.Qt().ws()}_p(){this.fp()}bp(){this.Gv.Qt().N().handleScale.axisPressedMouseMove.time&&this.zm(1)}Zp(){this.zm(0)}pv(){return this.nm}qw(){return this.Nw}Yw(i,s,e){n(this.nm,i)||(this.nm=i,this.lm=!0,this.wm.resizeCanvasElement(i),this.Mm.resizeCanvasElement(i),this.lm=!1,this.uv.style.width=`${i.width}px`,this.uv.style.height=`${i.height}px`,this.Nw.p(i)),null!==this.Lw&&this.Lw.km(t({width:s,height:i.height})),null!==this.zw&&this.zw.km(t({width:e,height:i.height}))}Kw(){const t=this.Gw();return Math.ceil(t.S+t.C+t.P+t.A+t.I+t.Zw)}Pt(){this.Gv.Qt().Et().zl()}vv(){return this.wm.bitmapSize}mv(t,i,n,s){const e=this.vv();if(e.width>0&&e.height>0&&(t.drawImage(this.wm.canvasElement,i,n),s)){const s=this.Mm.canvasElement;t.drawImage(s,i,n)}}Rm(t){if(0===t)return;const i={colorSpace:this.yn.colorSpace};if(1!==t){this.wm.applySuggestedBitmapSize();const n=s(this.wm,i);null!==n&&(n.useBitmapCoordinateSpace((t=>{this.Im(t),this.Vm(t),this.Xw(n,Kn)})),this.Em(n),this.Xw(n,qn)),null!==this.Lw&&this.Lw.Rm(t),null!==this.zw&&this.zw.Rm(t)}this.Mm.applySuggestedBitmapSize();const n=s(this.Mm,i);null!==n&&(n.useBitmapCoordinateSpace((({context:t,bitmapSize:i})=>{t.clearRect(0,0,i.width,i.height)})),this.Jw([...this.Gv.Qt().Jn(),this.Gv.Qt().Vd()],n),this.Xw(n,Yn))}Xw(t,i){const n=this.Gv.Qt().Jn();for(const s of n)En(i,(i=>Vn(i,t,!1,void 0)),s,void 0);for(const s of n)En(i,(i=>Bn(i,t,!1,void 0)),s,void 0)}Im({context:t,bitmapSize:i}){z(t,0,0,i.width,i.height,this.Gv.Qt().af())}Vm({context:t,bitmapSize:i,verticalPixelRatio:n}){if(this.Gv.N().timeScale.borderVisible){t.fillStyle=this.Qw();const s=Math.max(1,Math.floor(this.Gw().S*n));t.fillRect(0,0,i.width,s)}}Em(t){const i=this.Gv.Qt().Et(),n=i.zl();if(!n||0===n.length)return;const s=this.Pu.maxTickMarkWeight(n),e=this.Gw(),r=i.N();r.borderVisible&&r.ticksVisible&&t.useBitmapCoordinateSpace((({context:t,horizontalPixelRatio:i,verticalPixelRatio:s})=>{t.strokeStyle=this.Qw(),t.fillStyle=this.Qw();const r=Math.max(1,Math.floor(i)),h=Math.floor(.5*i);t.beginPath();const a=Math.round(e.C*s);for(let s=n.length;s--;){const e=Math.round(n[s].coord*i);t.rect(e-h,0,r,a)}t.fill()})),t.useMediaCoordinateSpace((({context:t})=>{const i=e.S+e.C+e.A+e.P/2;t.textAlign=\"center\",t.textBaseline=\"middle\",t.fillStyle=this.H(),t.font=this.ym();for(const e of n)if(e.weight<s){const n=e.needAlignCoordinate?this.tM(t,e.coord,e.label):e.coord;t.fillText(e.label,n,i)}this.Gv.N().timeScale.allowBoldLabels&&(t.font=this.iM());for(const e of n)if(e.weight>=s){const n=e.needAlignCoordinate?this.tM(t,e.coord,e.label):e.coord;t.fillText(e.label,n,i)}}))}tM(t,i,n){const s=this.rm.Ii(t,n),e=s/2,r=Math.floor(i-e)+.5;return r<0?i+=Math.abs(0-r):r+s>this.nm.width&&(i-=Math.abs(this.nm.width-(r+s))),i}Jw(t,i){const n=this.Gw();for(const s of t)for(const t of s.dn())t.Tt().st(i,n)}Qw(){return this.Gv.N().timeScale.borderColor}H(){return this.yn.textColor}F(){return this.yn.fontSize}ym(){return x(this.F(),this.yn.fontFamily)}iM(){return x(this.F(),this.yn.fontFamily,\"bold\")}Gw(){null===this.M&&(this.M={S:1,L:NaN,A:NaN,I:NaN,tn:NaN,C:5,P:NaN,k:\"\",Qi:new rt,Zw:0});const t=this.M,i=this.ym();if(t.k!==i){const n=this.F();t.P=n,t.k=i,t.A=3*n/12,t.I=3*n/12,t.tn=9*n/12,t.L=0,t.Zw=4*n/12,t.Qi.Os()}return this.M}zm(t){this.uv.style.cursor=1===t?\"ew-resize\":\"default\"}Uw(){const t=this.Gv.Qt(),i=t.N();i.leftPriceScale.visible||null===this.Lw||(this.Fw.removeChild(this.Lw.fv()),this.Lw.m(),this.Lw=null),i.rightPriceScale.visible||null===this.zw||(this.Ww.removeChild(this.zw.fv()),this.zw.m(),this.zw=null);const n={Jd:this.Gv.Qt().Jd()},s=()=>i.leftPriceScale.borderVisible&&t.Et().N().borderVisible,e=()=>t.af();i.leftPriceScale.visible&&null===this.Lw&&(this.Lw=new $n(\"left\",i,n,s,e),this.Fw.appendChild(this.Lw.fv())),i.rightPriceScale.visible&&null===this.zw&&(this.zw=new $n(\"right\",i,n,s,e),this.Ww.appendChild(this.zw.fv()))}}const Zn=!!dn&&!!navigator.userAgentData&&navigator.userAgentData.brands.some((t=>t.brand.includes(\"Chromium\")))&&!!dn&&(navigator?.userAgentData?.platform?\"Windows\"===navigator.userAgentData.platform:navigator.userAgent.toLowerCase().indexOf(\"win\")>=0);class Xn{constructor(t,i,n){var s;this.nM=[],this.sM=[],this.eM=0,this.oo=0,this.k_=0,this.rM=0,this.hM=0,this.aM=null,this.lM=!1,this.$m=new d,this.jm=new d,this.wd=new d,this.oM=null,this._M=null,this.Kv=t,this.yn=i,this.Pu=n,this.jv=document.createElement(\"div\"),this.jv.classList.add(\"tv-lightweight-charts\"),this.jv.style.overflow=\"hidden\",this.jv.style.direction=\"ltr\",this.jv.style.width=\"100%\",this.jv.style.height=\"100%\",(s=this.jv).style.userSelect=\"none\",s.style.webkitUserSelect=\"none\",s.style.msUserSelect=\"none\",s.style.MozUserSelect=\"none\",s.style.webkitTapHighlightColor=\"transparent\",this.uM=document.createElement(\"table\"),this.uM.setAttribute(\"cellspacing\",\"0\"),this.jv.appendChild(this.uM),this.cM=this.dM.bind(this),Jn(this.yn)&&this.fM(!0),this.sn=new qi(this.gd.bind(this),this.yn,n),this.Qt().Bd().i(this.pM.bind(this),this),this.vM=new Gn(this,this.Pu),this.uM.appendChild(this.vM.fv());const e=i.autoSize&&this.mM();let r=this.yn.width,h=this.yn.height;if(e||0===r||0===h){const i=t.getBoundingClientRect();r=r||i.width,h=h||i.height}this.wM(r,h),this.MM(),t.appendChild(this.jv),this.gM(),this.sn.Et().Jc().i(this.sn.ka.bind(this.sn),this),this.sn.N_().i(this.sn.ka.bind(this.sn),this)}Qt(){return this.sn}N(){return this.yn}lv(){return this.nM}bM(){return this.vM}m(){this.fM(!1),0!==this.eM&&window.cancelAnimationFrame(this.eM),this.sn.Bd().u(this),this.sn.Et().Jc().u(this),this.sn.N_().u(this),this.sn.m();for(const t of this.nM)this.uM.removeChild(t.fv()),t.mw().u(this),t.ww().u(this),t.m();this.nM=[];for(const t of this.sM)this.SM(t);this.sM=[],u(this.vM).m(),null!==this.jv.parentElement&&this.jv.parentElement.removeChild(this.jv),this.wd.m(),this.$m.m(),this.jm.m(),this.xM()}wM(i,n,s=!1){if(this.oo===n&&this.k_===i)return;const e=function(i){const n=Math.floor(i.width),s=Math.floor(i.height);return t({width:n-n%2,height:s-s%2})}(t({width:i,height:n}));this.oo=e.height,this.k_=e.width;const r=this.oo+\"px\",h=this.k_+\"px\";if(this.CM()||(u(this.jv).style.height=r,u(this.jv).style.width=h),this.uM.style.height=r,this.uM.style.width=h,s){0!==this.eM&&(window.cancelAnimationFrame(this.eM),this.eM=0),this.lM=!1;const t=X.ys();null!==this.aM&&(t.Ss(this.aM),this.aM=null),this.yM(t,performance.now())}else this.sn.ka()}Rm(t){void 0===t&&(t=X.ys());for(let i=0;i<this.nM.length;i++)this.nM[i].Rm(t._s(i).rs);this.yn.timeScale.visible&&this.vM.Rm(t.ls())}vr(t){const i=Jn(this.yn);this.sn.vr(t);const n=Jn(this.yn);n!==i&&this.fM(n),t.layout?.panes&&this.PM(),this.gM(),this.kM(t)}mw(){return this.$m}ww(){return this.jm}Bd(){return this.wd}TM(t=!1){null!==this.aM&&(this.yM(this.aM,performance.now()),this.aM=null);const i=this.RM(null),n=document.createElement(\"canvas\");n.width=i.width,n.height=i.height;const s=u(n.getContext(\"2d\"));return this.RM(s,t),n}DM(t){if(\"left\"===t&&!this.IM())return 0;if(\"right\"===t&&!this.VM())return 0;if(0===this.nM.length)return 0;return u(\"left\"===t?this.nM[0].yw():this.nM[0].Pw()).Tm()}CM(){return this.yn.autoSize&&null!==this.oM}Mv(){return this.jv}BM(t){this._M=t,this._M?this.Mv().style.setProperty(\"cursor\",t):this.Mv().style.removeProperty(\"cursor\")}EM(){return this._M}AM(t){return _(this.nM[t]).pv()}PM(){this.sM.forEach((t=>{t.Pt()}))}kM(t){(void 0!==t.autoSize||!this.oM||void 0===t.width&&void 0===t.height)&&(t.autoSize&&!this.oM&&this.mM(),!1===t.autoSize&&null!==this.oM&&this.xM(),t.autoSize||void 0===t.width&&void 0===t.height||this.wM(t.width||this.k_,t.height||this.oo))}RM(i,n){let s=0,e=0;const r=this.nM[0],h=(t,s)=>{let e=0;for(let r=0;r<this.nM.length;r++){const h=this.nM[r],a=u(\"left\"===t?h.yw():h.Pw()),l=a.vv();if(null!==i&&a.mv(i,s,e,n),e+=l.height,r<this.nM.length-1){const t=this.sM[r],n=t.vv();null!==i&&t.mv(i,s,e),e+=n.height}}};if(this.IM()){h(\"left\",0);s+=u(r.yw()).vv().width}for(let t=0;t<this.nM.length;t++){const r=this.nM[t],h=r.vv();if(null!==i&&r.mv(i,s,e,n),e+=h.height,t<this.nM.length-1){const n=this.sM[t],r=n.vv();null!==i&&n.mv(i,s,e),e+=r.height}}if(s+=r.vv().width,this.VM()){h(\"right\",s);s+=u(r.Pw()).vv().width}const a=(t,n,s)=>{u(\"left\"===t?this.vM.$w():this.vM.jw()).mv(u(i),n,s)};if(this.yn.timeScale.visible){const t=this.vM.vv();if(null!==i){let s=0;this.IM()&&(a(\"left\",s,e),s=u(r.yw()).vv().width),this.vM.mv(i,s,e,n),s+=t.width,this.VM()&&a(\"right\",s,e)}e+=t.height}return t({width:s,height:e})}LM(){let i=0,n=0,s=0;for(const t of this.nM)this.IM()&&(n=Math.max(n,u(t.yw()).Cm(),this.yn.leftPriceScale.minimumWidth)),this.VM()&&(s=Math.max(s,u(t.Pw()).Cm(),this.yn.rightPriceScale.minimumWidth)),i+=t.F_();n=mn(n),s=mn(s);const e=this.k_,r=this.oo,h=Math.max(e-n-s,0),a=1*this.sM.length,l=this.yn.timeScale.visible;let o=l?Math.max(this.vM.Kw(),this.yn.timeScale.minimumHeight):0;var _;o=(_=o)+_%2;const c=a+o,d=r<c?0:r-c,f=d/i;let p=0;const v=window.devicePixelRatio||1;for(let i=0;i<this.nM.length;++i){const e=this.nM[i];e.ew(this.sn.Gn()[i]);let r=0,a=0;a=i===this.nM.length-1?Math.ceil((d-p)*v)/v:Math.round(e.F_()*f*v)/v,r=Math.max(a,2),p+=r,e.km(t({width:h,height:r})),this.IM()&&e.gw(n,\"left\"),this.VM()&&e.gw(s,\"right\"),e.yv()&&this.sn.Ed(e.yv(),r)}this.vM.Yw(t({width:l?h:0,height:o}),l?n:0,l?s:0),this.sn.H_(h),this.rM!==n&&(this.rM=n),this.hM!==s&&(this.hM=s)}fM(t){t?this.jv.addEventListener(\"wheel\",this.cM,{passive:!1}):this.jv.removeEventListener(\"wheel\",this.cM)}zM(t){switch(t.deltaMode){case t.DOM_DELTA_PAGE:return 120;case t.DOM_DELTA_LINE:return 32}return Zn?1/window.devicePixelRatio:1}dM(t){if(!(0!==t.deltaX&&this.yn.handleScroll.mouseWheel||0!==t.deltaY&&this.yn.handleScale.mouseWheel))return;const i=this.zM(t),n=i*t.deltaX/100,s=-i*t.deltaY/100;if(t.cancelable&&t.preventDefault(),0!==s&&this.yn.handleScale.mouseWheel){const i=Math.sign(s)*Math.min(1,Math.abs(s)),n=t.clientX-this.jv.getBoundingClientRect().left;this.Qt().Wd(n,i)}0!==n&&this.yn.handleScroll.mouseWheel&&this.Qt().Hd(-80*n)}yM(t,i){const n=t.ls();3===n&&this.OM(),3!==n&&2!==n||(this.NM(t),this.FM(t,i),this.vM.Pt(),this.nM.forEach((t=>{t.hw()})),3===this.aM?.ls()&&(this.aM.Ss(t),this.OM(),this.NM(this.aM),this.FM(this.aM,i),t=this.aM,this.aM=null)),this.Rm(t)}FM(t,i){for(const n of t.bs())this.xs(n,i)}NM(t){const i=this.sn.Gn();for(let n=0;n<i.length;n++)t._s(n).hs&&i[n].lu()}xs(t,i){const n=this.sn.Et();switch(t.ds){case 0:n.td();break;case 1:n.nd(t.Wt);break;case 2:n.Ms(t.Wt);break;case 3:n.gs(t.Wt);break;case 4:n.Wc();break;case 5:t.Wt.Kc(i)||n.gs(t.Wt.Gc(i))}}gd(t){null!==this.aM?this.aM.Ss(t):this.aM=t,this.lM||(this.lM=!0,this.eM=window.requestAnimationFrame((t=>{if(this.lM=!1,this.eM=0,null!==this.aM){const i=this.aM;this.aM=null,this.yM(i,t);for(const n of i.bs())if(5===n.ds&&!n.Wt.Kc(t)){this.Qt().ps(n.Wt);break}}})))}OM(){this.MM()}SM(t){this.uM.removeChild(t.fv()),t.m()}MM(){const t=this.sn.Gn(),i=t.length,n=this.nM.length;for(let t=i;t<n;t++){const t=_(this.nM.pop());this.uM.removeChild(t.fv()),t.mw().u(this),t.ww().u(this),t.m();const i=this.sM.pop();void 0!==i&&this.SM(i)}for(let s=n;s<i;s++){const i=new Un(this,t[s]);if(i.mw().i(this.WM.bind(this,i),this),i.ww().i(this.HM.bind(this,i),this),this.nM.push(i),s>0){const t=new yn(this,s-1,s);this.sM.push(t),this.uM.insertBefore(t.fv(),this.vM.fv())}this.uM.insertBefore(i.fv(),this.vM.fv())}for(let n=0;n<i;n++){const i=t[n],s=this.nM[n];s.yv()!==i?s.ew(i):s.sw()}this.gM(),this.LM()}UM(t,i,n,s){const e=new Map;if(null!==t){this.sn.Jn().forEach((i=>{const n=i.Un().Hn(t);null!==n&&e.set(i,n)}))}let r;if(null!==t){const i=this.sn.Et().en(t)?.originalTime;void 0!==i&&(r=i)}const h=this.Qt().cu(),a=this.$M(s),l=function(t,i){const n=null!==t&&t.uu instanceof Jt?t.uu:void 0,s=t?.bu?.te,e=void 0!==i&&-1!==i?i:void 0;return null===t||void 0===t.ee?{jM:n,qM:s}:{jM:n,qM:s,YM:{ds:t.ee,KM:(r=t.uu,h=t.ee,r instanceof Pi?\"pane-primitive\":\"marker\"===h||\"primitive\"===h?\"series-primitive\":\"series\"),GM:vn(t.ee,s),Y_:n,ZM:s,XM:e}};var r,h}(h,a);return{Qr:r,$n:t??void 0,JM:i??void 0,XM:-1!==a?a:void 0,jM:l.jM,QM:e,qM:l.qM,YM:l.YM,tg:n??void 0}}$M(t){let i=-1;if(t)i=this.nM.indexOf(t);else{const t=this.Qt().Vd().Kn();null!==t&&(i=this.Qt().Gn().indexOf(t))}return i}WM(t,i,n,s){this.$m.p((()=>this.UM(i,n,s,t)))}HM(t,i,n,s){this.jm.p((()=>this.UM(i,n,s,t)))}pM(t,i,n){this.BM(this.Qt().cu()?.gu??null),this.wd.p((()=>this.UM(t,i,n)))}gM(){const t=this.yn.timeScale.visible?\"\":\"none\";this.vM.fv().style.display=t}IM(){return this.nM[0].yv().X_().N().visible}VM(){return this.nM[0].yv().J_().N().visible}mM(){return\"ResizeObserver\"in window&&(this.oM=new ResizeObserver((t=>{const i=t[t.length-1];if(!i)return;const n=i.contentRect.width,s=i.contentRect.height;this.wM(n,s,!0)})),this.oM.observe(this.Kv,{box:\"border-box\"}),!0)}xM(){null!==this.oM&&this.oM.disconnect(),this.oM=null}}function Jn(t){return Boolean(t.handleScroll.mouseWheel||t.handleScale.mouseWheel)}function Qn(t){return void 0===t.open&&void 0===t.value}function ts(t){return function(t){return void 0!==t.open}(t)||function(t){return void 0!==t.value}(t)}function is(t,i,n,s){const e=n.value,r={$n:i,wt:t,Wt:[e,e,e,e],Qr:s};return void 0!==n.color&&(r.R=n.color),r}function ns(t,i,n,s){const e=n.value,r={$n:i,wt:t,Wt:[e,e,e,e],Qr:s};return void 0!==n.lineColor&&(r.vt=n.lineColor),void 0!==n.topColor&&(r.ah=n.topColor),void 0!==n.bottomColor&&(r.oh=n.bottomColor),r}function ss(t,i,n,s){const e=n.value,r={$n:i,wt:t,Wt:[e,e,e,e],Qr:s};return void 0!==n.topLineColor&&(r._h=n.topLineColor),void 0!==n.bottomLineColor&&(r.uh=n.bottomLineColor),void 0!==n.topFillColor1&&(r.dh=n.topFillColor1),void 0!==n.topFillColor2&&(r.fh=n.topFillColor2),void 0!==n.bottomFillColor1&&(r.ph=n.bottomFillColor1),void 0!==n.bottomFillColor2&&(r.mh=n.bottomFillColor2),r}function es(t,i,n,s){const e={$n:i,wt:t,Wt:[n.open,n.high,n.low,n.close],Qr:s};return void 0!==n.color&&(e.R=n.color),e}function rs(t,i,n,s){const e={$n:i,wt:t,Wt:[n.open,n.high,n.low,n.close],Qr:s};return void 0!==n.color&&(e.R=n.color),void 0!==n.borderColor&&(e.Ht=n.borderColor),void 0!==n.wickColor&&(e.hh=n.wickColor),e}function hs(t,i,n,s,e){const r=_(e)(n),h=Math.max(...r),a=Math.min(...r),l=r[r.length-1],o=[l,h,a,l],{time:u,color:c,...d}=n;return{$n:i,wt:t,Wt:o,Qr:s,ue:d,R:c}}function as(t){return void 0!==t.Wt}function ls(t,i){return void 0!==i.customValues&&(t.ig=i.customValues),t}function os(t){return(i,n,s,e,r,h)=>function(t,i){return i?i(t):Qn(t)}(s,h)?ls({wt:i,$n:n,Qr:e},s):ls(t(i,n,s,e,r),s)}function _s(t){return{Candlestick:os(rs),Bar:os(es),Area:os(ns),Baseline:os(ss),Histogram:os(is),Line:os(is),Custom:os(hs)}[t]}function us(t){return{$n:0,ng:new Map,Oa:t}}function cs(t,i){if(void 0!==t&&0!==t.length)return{sg:i.key(t[0].wt),eg:i.key(t[t.length-1].wt)}}function ds(t){let i;return t.forEach((t=>{void 0===i&&(i=t.Qr)})),_(i)}class fs{constructor(t){this.rg=new Map,this.hg=new Map,this.ag=new Map,this.lg=[],this.Pu=t}m(){this.rg.clear(),this.hg.clear(),this.ag.clear(),this.lg=[]}og(t,i){let n=0!==this.rg.size,s=!1;const e=this.hg.get(t);if(void 0!==e)if(1===this.hg.size)n=!1,s=!0,this.rg.clear();else for(const i of this.lg)i.pointData.ng.delete(t)&&(s=!0);let r=[];if(0!==i.length){const n=i.map((t=>t.time)),e=this.Pu.createConverterToInternalObj(i),h=_s(t.bh()),a=t.ul(),l=t.cl();r=i.map(((i,r)=>{const o=e(i.time),_=this.Pu.key(o);let u=this.rg.get(_);void 0===u&&(u=us(o),this.rg.set(_,u),s=!0);const c=h(o,u.$n,i,n[r],a,l);return u.ng.set(t,c),c}))}n&&this._g(),this.ug(t,r);let h=-1;if(s){const t=[];this.rg.forEach((i=>{t.push({timeWeight:0,time:i.Oa,pointData:i,originalTime:ds(i.ng)})})),t.sort(((t,i)=>this.Pu.key(t.time)-this.Pu.key(i.time))),h=this.cg(t)}return this.dg(t,h,function(t,i,n){const s=cs(t,n),e=cs(i,n);if(void 0!==s&&void 0!==e)return{fg:!1,Va:s.eg>=e.eg&&s.sg>=e.sg}}(this.hg.get(t),e,this.Pu))}if(t){return this.og(t,[])}pg(t,i,n){if(n&&t.Fa())throw new Error(\"Historical updates are not supported when conflation is enabled. Conflation requires data to be processed in order.\");const s=i;!function(t){void 0===t.Qr&&(t.Qr=t.time)}(s),this.Pu.preprocessData(i);const e=this.Pu.createConverterToInternalObj([i])(i.time),r=this.ag.get(t);if(!n&&void 0!==r&&this.Pu.key(e)<this.Pu.key(r))throw new Error(`Cannot update oldest data, last time=${r}, new time=${e}`);let h=this.rg.get(this.Pu.key(e));if(n&&void 0===h)throw new Error(\"Cannot update non-existing data point when historicalUpdate is true\");const a=void 0===h;void 0===h&&(h=us(e),this.rg.set(this.Pu.key(e),h));const l=_s(t.bh()),o=t.ul(),_=t.cl(),u=l(e,h.$n,i,s.Qr,o,_),c=!n&&!a&&void 0!==r&&this.Pu.key(e)===this.Pu.key(r);h.ng.set(t,u),n?this.vg(t,u,h.$n):c&&t.Fa()&&as(u)?(t.Rr(u),this.mg(t,u)):this.mg(t,u);const d={Va:as(u),fg:n};if(!a)return this.dg(t,-1,d);const f={timeWeight:0,time:h.Oa,pointData:h,originalTime:ds(h.ng)},p=Rt(this.lg,this.Pu.key(f.time),((t,i)=>this.Pu.key(t.time)<i));this.lg.splice(p,0,f);for(let t=p;t<this.lg.length;++t)ps(this.lg[t].pointData,t);return this.Pu.fillWeightsForPoints(this.lg,p),this.dg(t,p,d)}wg(t,i){const n=this.hg.get(t);if(void 0===n||i<=0)return[[],this.Mg()];i=Math.min(i,n.length);const s=n.splice(-i).reverse();0===n.length?this.ag.delete(t):this.ag.set(t,n[n.length-1].wt);for(const i of s){const n=this.rg.get(this.Pu.key(i.wt));if(n&&(n.ng.delete(t),0===n.ng.size)){this.rg.delete(this.Pu.key(n.Oa)),this.lg.splice(n.$n,1);for(let t=n.$n;t<this.lg.length;++t)ps(this.lg[t].pointData,t)}}return[s,this.dg(t,this.lg.length-1,{fg:!1,Va:!1})]}mg(t,i){let n=this.hg.get(t);void 0===n&&(n=[],this.hg.set(t,n));const s=0!==n.length?n[n.length-1]:null;null===s||this.Pu.key(i.wt)>this.Pu.key(s.wt)?as(i)&&n.push(i):as(i)?n[n.length-1]=i:n.splice(-1,1),this.ag.set(t,i.wt)}vg(t,i,n){const s=this.hg.get(t);if(void 0===s)return;const e=Rt(s,n,((t,i)=>t.$n<i));as(i)?s[e]=i:s.splice(e,1)}ug(t,i){0!==i.length?(this.hg.set(t,i.filter(as)),this.ag.set(t,i[i.length-1].wt)):(this.hg.delete(t),this.ag.delete(t))}_g(){for(const t of this.lg)0===t.pointData.ng.size&&this.rg.delete(this.Pu.key(t.time))}cg(t){let i=-1;for(let n=0;n<this.lg.length&&n<t.length;++n){const s=this.lg[n],e=t[n];if(this.Pu.key(s.time)!==this.Pu.key(e.time)){i=n;break}e.timeWeight=s.timeWeight,ps(e.pointData,n)}if(-1===i&&this.lg.length!==t.length&&(i=Math.min(this.lg.length,t.length)),-1===i)return-1;for(let n=i;n<t.length;++n)ps(t[n].pointData,n);return this.Pu.fillWeightsForPoints(t,i),this.lg=t,i}gg(){if(0===this.hg.size)return null;let t=0;return this.hg.forEach((i=>{0!==i.length&&(t=Math.max(t,i[i.length-1].$n))})),t}dg(t,i,n){const s=this.Mg();if(-1!==i)this.hg.forEach(((i,e)=>{s.Y_.set(e,{ue:i,bg:e===t?n:void 0})})),this.hg.has(t)||s.Y_.set(t,{ue:[],bg:n}),s.Et.Sg=this.lg,s.Et.xg=i;else{const i=this.hg.get(t);s.Y_.set(t,{ue:i||[],bg:n})}return s}Mg(){return{Y_:new Map,Et:{Dc:this.gg()}}}}function ps(t,i){t.$n=i,t.ng.forEach((t=>{t.$n=i}))}function vs(t,i){return t._t<i}function ms(t,i){return i<t._t}function ws(t,i,n,s){return Rt(t,i,vs,n,s)}function Ms(t,i,n,s){return Dt(t,i,ms,n,s)}function gs(t,i,n){return{ne:t,se:i,ee:n}}function bs(t,i,n,s){return t>=i-s&&t<=n+s}function Ss(t,i,n,s,e,r){const h=e-n,a=r-s;if(0===h&&0===a)return Math.hypot(t-n,i-s);const l=((t-n)*h+(i-s)*a)/(h*h+a*a),o=Math.max(0,Math.min(1,l)),_=n+h*o,u=s+a*o;return Math.hypot(t-_,i-u)}const xs=[0,0];function Cs(t,i,n){return void 0===i||i.wt!==t.wt-1?t._t-n/2:(i._t+t._t)/2}function ys(t,i,n){return void 0===i||i.wt!==t.wt+1?t._t+n/2:(t._t+i._t)/2}function Ps(t,i,n,s,e,r,h){if(null===i||i.from>=i.to||0===t.length)return null;const a=e/2+r,l=ws(t,n-a,i.from,i.to),o=Ms(t,n+a,l,i.to);if(l>=o)return null;let _=Number.POSITIVE_INFINITY;for(let a=l;a<o;a++){const l=t[a],o=a>i.from?t[a-1]:void 0,u=a<i.to-1?t[a+1]:void 0,c=Cs(l,o,e)-r,d=ys(l,u,e)+r;if(n<c||n>d)continue;h(l,xs);const f=xs[0],p=xs[1],v=Math.min(f,p),m=Math.max(f,p),w=v-r,M=m+r;if(s>=v&&s<=m)_=Math.min(_,0);else if(s>=w&&s<=M){const t=Math.min(Math.abs(s-v),Math.abs(m-s));_=Math.min(_,t)}}return Number.isFinite(_)?gs(_,0,\"series-range\"):null}function ks(t,i){return t.wt<i}function Ts(t,i){return i<t.wt}function Rs(t,i,n){const s=i.Na(),e=i.bi(),r=Rt(t,s,ks),h=Dt(t,e,Ts);if(!n)return{from:r,to:h};let a=r,l=h;return r>0&&r<t.length&&t[r].wt>=s&&(a=r-1),h>0&&h<t.length&&t[h-1].wt<=e&&(l=h+1),{from:a,to:l}}class Ds{constructor(t,i,n){this.Cg=!0,this.yg=!0,this.Pg=!0,this.kg=[],this.Tg=null,this.Rg=-1,this.ae=t,this.le=i,this.Dg=n}Pt(t){this.Cg=!0,\"data\"===t&&(this.yg=!0),\"options\"===t&&(this.Pg=!0)}Tt(){return this.ae.It()?(this.Ig(),null===this.Tg?null:this.Vg):null}Qs(t,i){return this.ae.It()?(this.Ig(),null===this.Tg?null:this.Bg(t,i)):null}Bg(t,i){return null}Eg(){this.kg=this.kg.map((t=>({...t,...this.ae.Sa().Sh(t.wt)})))}Ag(){this.Tg=null}Ig(){const t=this.le.Et(),i=t.N().enableConflation?t.sd():0;i!==this.Rg&&(this.yg=!0,this.Rg=i),this.yg&&(this.Lg(),this.yg=!1),this.Pg&&(this.Eg(),this.Pg=!1),this.Cg&&(this.zg(),this.Cg=!1)}zg(){const t=this.ae.Ft(),i=this.le.Et();if(this.Ag(),i.Zi()||t.Zi())return;const n=i.Ee();if(null===n)return;if(0===this.ae.Un().Th())return;const s=this.ae.Lt();null!==s&&(this.Tg=Rs(this.kg,n,this.Dg),this.Og(t,i,s.Wt),this.Ng())}}class Is{constructor(t,i){this.Fg=t,this.Ki=i}st(t,i,n){this.Fg.draw(t,this.Ki,i,n)}}function Vs(t){switch(t){case\"point\":return 2;case\"range\":return 0;default:return 1}}class Bs extends Ds{constructor(t,i,n){super(t,i,!1),this.Yh=n,this.Fg=this.Yh.renderer(),this.Vg=new Is(this.Fg,(t=>this.Wg(t)))}get ga(){return this.Yh.conflationReducer}Ha(t){return this.Yh.priceValueBuilder(t)}dl(t){return this.Yh.isWhitespace(t)}Bg(t,i){const n=this.Fg.hitTest?.(t,i,(t=>this.Wg(t)));if(null!=n)return{ne:(s=n).distance,se:Vs(s.type),ee:\"custom\",gu:s.cursorStyle,te:s.objectId,ie:s.hitTestData};var s;const e=Ps(this.kg,this.Tg,t,i,this.le.Et().ml(),this.ae.N().hitTestTolerance,((t,i)=>{const n=t.Hg;let s=NaN,e=NaN;if(void 0!==n&&!this.Yh.isWhitespace(n))for(const t of this.Yh.priceValueBuilder(n)){const i=this.Wg(t);null!==i&&(s=Number.isNaN(s)?i:Math.min(s,i),e=Number.isNaN(e)?i:Math.max(e,i))}i[0]=s,i[1]=e}));return null===e?null:{...e,ee:\"custom\"}}Lg(){const t=this.ae.Sa();this.kg=this.ae.Ua().Bh().map((i=>({wt:i.$n,_t:NaN,...t.Sh(i.$n),Hg:i.ue})))}Og(t,i){i.Ic(this.kg,b(this.Tg))}Ng(){this.Yh.update({bars:this.kg.map(Es),barSpacing:this.le.Et().ml(),visibleRange:this.Tg,conflationFactor:this.le.Et().sd()},this.ae.N())}Wg(t){const i=this.ae.Lt();return null===i?null:this.ae.Ft().Nt(t,i.Wt)}}function Es(t){return{x:t._t,time:t.wt,originalData:t.Hg,barColor:t.sh}}const As={color:\"#2196f3\"},Ls=(t,i,n)=>{const s=c(n);return new Bs(t,i,s)};function zs(t){const i={value:t.Wt[3],time:t.Qr};return void 0!==t.ig&&(i.customValues=t.ig),i}function Os(t){const i=zs(t);return void 0!==t.R&&(i.color=t.R),i}function Ns(t){const i=zs(t);return void 0!==t.vt&&(i.lineColor=t.vt),void 0!==t.ah&&(i.topColor=t.ah),void 0!==t.oh&&(i.bottomColor=t.oh),i}function Fs(t){const i=zs(t);return void 0!==t._h&&(i.topLineColor=t._h),void 0!==t.uh&&(i.bottomLineColor=t.uh),void 0!==t.dh&&(i.topFillColor1=t.dh),void 0!==t.fh&&(i.topFillColor2=t.fh),void 0!==t.ph&&(i.bottomFillColor1=t.ph),void 0!==t.mh&&(i.bottomFillColor2=t.mh),i}function Ws(t){const i={open:t.Wt[0],high:t.Wt[1],low:t.Wt[2],close:t.Wt[3],time:t.Qr};return void 0!==t.ig&&(i.customValues=t.ig),i}function Hs(t){const i=Ws(t);return void 0!==t.R&&(i.color=t.R),i}function Us(t){const i=Ws(t),{R:n,Ht:s,hh:e}=t;return void 0!==n&&(i.color=n),void 0!==s&&(i.borderColor=s),void 0!==e&&(i.wickColor=e),i}function $s(t){return{Area:Ns,Line:Os,Baseline:Fs,Histogram:Os,Bar:Hs,Candlestick:Us,Custom:js}[t]}function js(t){const i=t.Qr;return{...t.ue,time:i}}const qs={vertLine:{color:\"#9598A1\",width:1,style:3,visible:!0,labelVisible:!0,labelBackgroundColor:\"#131722\"},horzLine:{color:\"#9598A1\",width:1,style:3,visible:!0,labelVisible:!0,labelBackgroundColor:\"#131722\"},mode:1,doNotSnapToHiddenSeriesIndices:!1},Ys={vertLines:{color:\"#D6DCDE\",style:0,visible:!0},horzLines:{color:\"#D6DCDE\",style:0,visible:!0}},Ks={background:{type:\"solid\",color:\"#FFFFFF\"},textColor:\"#191919\",fontSize:12,fontFamily:S,panes:{enableResize:!0,separatorColor:\"#E0E3EB\",separatorHoverColor:\"rgba(178, 181, 189, 0.2)\"},attributionLogo:!0,colorSpace:\"srgb\",colorParsers:[]},Gs={autoScale:!0,mode:0,invertScale:!1,alignLabels:!0,borderVisible:!0,borderColor:\"#2B2B43\",entireTextOnly:!1,visible:!1,ticksVisible:!1,scaleMargins:{bottom:.1,top:.2},minimumWidth:0,ensureEdgeTickMarksVisible:!1,tickMarkDensity:2.5},Zs={rightOffset:0,barSpacing:6,minBarSpacing:.5,maxBarSpacing:0,fixLeftEdge:!1,fixRightEdge:!1,lockVisibleTimeRangeOnResize:!1,rightBarStaysOnScroll:!1,borderVisible:!0,borderColor:\"#2B2B43\",visible:!0,timeVisible:!1,secondsVisible:!0,shiftVisibleRangeOnNewBar:!0,allowShiftVisibleRangeOnWhitespaceReplacement:!1,ticksVisible:!1,uniformDistribution:!1,minimumHeight:0,allowBoldLabels:!0,ignoreWhitespaceIndices:!1,enableConflation:!1,conflationThresholdFactor:1,precomputeConflationOnInit:!1,precomputeConflationPriority:\"background\"};function Xs(){return{addDefaultPane:!0,hoveredSeriesOnTop:!0,width:0,height:0,autoSize:!1,layout:Ks,crosshair:qs,grid:Ys,overlayPriceScales:{...Gs},leftPriceScale:{...Gs,visible:!1},rightPriceScale:{...Gs,visible:!0},defaultVisiblePriceScaleId:\"right\",timeScale:Zs,localization:{locale:dn?navigator.language:\"\",dateFormat:\"dd MMM 'yy\"},handleScroll:{mouseWheel:!0,pressedMouseMove:!0,horzTouchDrag:!0,vertTouchDrag:!0},handleScale:{axisPressedMouseMove:{time:!0,price:!0},axisDoubleClickReset:{time:!0,price:!0},mouseWheel:!0,pinch:!0},kineticScroll:{mouse:!1,touch:!0},trackingMode:{exitMode:1}}}class Js{constructor(t,i,n){this.hv=t,this.Ug=i,this.$g=n??0}applyOptions(t){this.hv.Qt().Dd(this.Ug,t,this.$g)}options(){return this.Ki().N()}width(){return Z(this.Ug)?this.hv.DM(this.Ug):0}setVisibleRange(t){this.setAutoScale(!1),this.Ki().Go(new mt(t.from,t.to))}getVisibleRange(){let t,i,n=this.Ki().ar();if(null===n)return null;if(this.Ki().ho()){const s=this.Ki().S_(),e=Yi(s);n=vi(n,this.Ki().lo()),t=Number((Math.round(n.Je()/s)*s).toFixed(e)),i=Number((Math.round(n.Qe()/s)*s).toFixed(e))}else t=n.Je(),i=n.Qe();return{from:t,to:i}}setAutoScale(t){this.applyOptions({autoScale:t})}Ki(){return u(this.hv.Qt().Id(this.Ug,this.$g)).Ft}}class Qs{constructor(t,i,n,s){this.hv=t,this.yt=n,this.jg=i,this.qg=s}getHeight(){return this.yt.$t()}setHeight(t){const i=this.hv.Qt(),n=i._f(this.yt);i.Ld(n,t)}getStretchFactor(){return this.yt.F_()}setStretchFactor(t){this.yt.W_(t),this.hv.Qt().ka()}paneIndex(){return this.hv.Qt()._f(this.yt)}moveTo(t){const i=this.paneIndex();i!==t&&(o(t>=0&&t<this.hv.lv().length,\"Invalid pane index\"),this.hv.Qt().Od(i,t))}getSeries(){return this.yt.Y_().map((t=>this.jg(t)))??[]}getHTMLElement(){const t=this.hv.lv();return t&&0!==t.length&&t[this.paneIndex()]?t[this.paneIndex()].fv():null}attachPrimitive(t){this.yt.ol(t),t.attached&&t.attached({chart:this.qg,requestUpdate:()=>this.yt.Qt().ka()})}detachPrimitive(t){this.yt._l(t)}priceScale(t){if(null===this.yt.O_(t))throw new Error(`Cannot find price scale with id: ${t}`);return new Js(this.hv,t,this.paneIndex())}setPreserveEmptyPane(t){this.yt.j_(t)}preserveEmptyPane(){return this.yt.q_()}addCustomSeries(t,i={},n=0){return this.qg.addCustomSeries(t,i,n)}addSeries(t,i={}){return this.qg.addSeries(t,i,this.paneIndex())}}const te={color:\"#FF0000\",price:0,lineStyle:2,lineWidth:1,lineVisible:!0,axisLabelVisible:!0,title:\"\",axisLabelColor:\"\",axisLabelTextColor:\"\"};class ie{constructor(t){this._r=t}applyOptions(t){this._r.vr(t)}options(){return this._r.N()}Yg(){return this._r}}class ne{constructor(t,i,n,s,e,r){this.Kg=new d,this.ae=t,this.Gg=i,this.Zg=n,this.Pu=e,this.qg=s,this.Xg=r}m(){this.Kg.m()}priceFormatter(){return this.ae.sl()}priceToCoordinate(t){const i=this.ae.Lt();return null===i?null:this.ae.Ft().Nt(t,i.Wt)}coordinateToPrice(t){const i=this.ae.Lt();return null===i?null:this.ae.Ft().Tn(t,i.Wt)}barsInLogicalRange(t){if(null===t)return null;const i=new Oi(new Ai(t.from,t.to)).Uu(),n=this.ae.Un();if(n.Zi())return null;const s=n.Hn(i.Na(),1),e=n.Hn(i.bi(),-1),r=u(n.Rh()),h=u(n.Qn());if(null!==s&&null!==e&&s.$n>e.$n)return{barsBefore:t.from-r,barsAfter:h-t.to};const a={barsBefore:null===s||s.$n===r?t.from-r:s.$n-r,barsAfter:null===e||e.$n===h?h-t.to:h-e.$n};return null!==s&&null!==e&&(a.from=s.Qr,a.to=e.Qr),a}setData(t){this.Pu,this.ae.bh(),this.Gg.Jg(this.ae,t),this.Qg(\"full\")}update(t,i=!1){this.ae.bh(),this.Gg.tb(this.ae,t,i),this.Qg(\"update\")}pop(t=1){const i=this.Gg.ib(this.ae,t);0!==i.length&&this.Qg(\"update\");const n=$s(this.seriesType());return i.map((t=>n(t)))}dataByIndex(t,i){const n=this.ae.Un().Hn(t,i);if(null===n)return null;return $s(this.seriesType())(n)}data(){const t=$s(this.seriesType());return this.ae.Un().Bh().map((i=>t(i)))}subscribeDataChanged(t){this.Kg.i(t)}unsubscribeDataChanged(t){this.Kg._(t)}applyOptions(t){this.ae.vr(t)}options(){return M(this.ae.N())}priceScale(){return this.Zg.priceScale(this.ae.Ft().pl(),this.getPane().paneIndex())}createPriceLine(t){const i=f(M(te),t),n=this.ae.Ea(i);return new ie(n)}removePriceLine(t){this.ae.Aa(t.Yg())}priceLines(){return this.ae.La().map((t=>new ie(t)))}seriesType(){return this.ae.bh()}lastValueData(t){const i=this.ae.Ae(t);return i.Le?{noData:!0}:{noData:!1,price:i.Mt,color:i.R}}attachPrimitive(t){this.ae.ol(t),t.attached&&t.attached({chart:this.qg,series:this,requestUpdate:()=>this.ae.Qt().ka(),horzScaleBehavior:this.Pu})}detachPrimitive(t){this.ae._l(t),t.detached&&t.detached(),this.ae.Qt().ka()}getPane(){const t=this.ae,i=u(this.ae.Qt().Ks(t));return this.Xg(i)}moveToPane(t){this.ae.Qt().rf(this.ae,t)}seriesOrder(){const t=this.ae.Qt().Ks(this.ae);return null===t?-1:t.Y_().indexOf(this.ae)}setSeriesOrder(t){const i=this.ae.Qt().Ks(this.ae);null!==i&&i.vu(this.ae,t)}Qg(t){this.Kg.v()&&this.Kg.p(t)}}class se{constructor(t,i,n){this.nb=new d,this.Qu=new d,this.Nw=new d,this.sn=t,this.ia=t.Et(),this.vM=i,this.ia.Zc().i(this.sb.bind(this)),this.ia.Xc().i(this.eb.bind(this)),this.vM.qw().i(this.rb.bind(this)),this.Pu=n}m(){this.ia.Zc().u(this),this.ia.Xc().u(this),this.vM.qw().u(this),this.nb.m(),this.Qu.m(),this.Nw.m()}scrollPosition(){return this.ia.Oc()}scrollToPosition(t,i){i?this.ia.Yc(t,1e3):this.sn.gs(t)}scrollToRealTime(){this.ia.qc()}getVisibleRange(){const t=this.ia.xc();return null===t?null:{from:t.from.originalTime,to:t.to.originalTime}}setVisibleRange(t){const i={from:this.Pu.convertHorzItemToInternal(t.from),to:this.Pu.convertHorzItemToInternal(t.to)},n=this.ia.kc(i);this.sn.sf(n)}getVisibleLogicalRange(){const t=this.ia.Sc();return null===t?null:{from:t.Na(),to:t.bi()}}setVisibleLogicalRange(t){o(t.from<=t.to,\"The from index cannot be after the to index.\"),this.sn.sf(t)}resetTimeScale(){this.sn.ws()}fitContent(){this.sn.td()}logicalToCoordinate(t){const i=this.sn.Et();return i.Zi()?null:i.jt(t)}coordinateToLogical(t){return this.ia.Zi()?null:this.ia.Vc(t)}timeToIndex(t,i){const n=this.Pu.convertHorzItemToInternal(t);return this.ia.Mc(n,i)}timeToCoordinate(t){const i=this.timeToIndex(t,!1);return null===i?null:this.ia.jt(i)}coordinateToTime(t){const i=this.sn.Et(),n=i.Vc(t),s=i.en(n);return null===s?null:s.originalTime}width(){return this.vM.pv().width}height(){return this.vM.pv().height}subscribeVisibleTimeRangeChange(t){this.nb.i(t)}unsubscribeVisibleTimeRangeChange(t){this.nb._(t)}subscribeVisibleLogicalRangeChange(t){this.Qu.i(t)}unsubscribeVisibleLogicalRangeChange(t){this.Qu._(t)}subscribeSizeChange(t){this.Nw.i(t)}unsubscribeSizeChange(t){this.Nw._(t)}applyOptions(t){this.ia.vr(t)}options(){return{...M(this.ia.N()),barSpacing:this.ia.ml()}}sb(){this.nb.v()&&this.nb.p(this.getVisibleRange())}eb(){this.Qu.v()&&this.Qu.p(this.getVisibleLogicalRange())}rb(t){this.Nw.p(t.width,t.height)}}function ee(t){return function(t){if(w(t.handleScale)){const i=t.handleScale;t.handleScale={axisDoubleClickReset:{time:i,price:i},axisPressedMouseMove:{time:i,price:i},mouseWheel:i,pinch:i}}else if(void 0!==t.handleScale){const{axisPressedMouseMove:i,axisDoubleClickReset:n}=t.handleScale;w(i)&&(t.handleScale.axisPressedMouseMove={time:i,price:i}),w(n)&&(t.handleScale.axisDoubleClickReset={time:n,price:n})}const i=t.handleScroll;w(i)&&(t.handleScroll={horzTouchDrag:i,vertTouchDrag:i,mouseWheel:i,pressedMouseMove:i})}(t),t}class re{constructor(t,i,n){this.hb=new Map,this.ab=new Map,this.lb=new d,this.ob=new d,this._b=new d,this.dd=new WeakMap,this.ub=new fs(i);const s=void 0===n?M(Xs()):f(M(Xs()),ee(n));this.cb=i,this.hv=new Xn(t,s,i),this.hv.mw().i((t=>{this.lb.v()&&this.lb.p(this.fb(t()))}),this),this.hv.ww().i((t=>{this.ob.v()&&this.ob.p(this.fb(t()))}),this),this.hv.Bd().i((t=>{this._b.v()&&this._b.p(this.fb(t()))}),this);const e=this.hv.Qt();this.pb=new se(e,this.hv.bM(),this.cb)}remove(){this.hv.mw().u(this),this.hv.ww().u(this),this.hv.Bd().u(this),this.pb.m(),this.hv.m(),this.hb.clear(),this.ab.clear(),this.lb.m(),this.ob.m(),this._b.m(),this.ub.m()}resize(t,i,n){this.autoSizeActive()||this.hv.wM(t,i,n)}addCustomSeries(t,i={},n=0){const s=(t=>({type:\"Custom\",isBuiltIn:!1,defaultOptions:{...As,...t.defaultOptions()},mb:Ls,wb:t}))(c(t));return this.Mb(s,i,n)}addSeries(t,i={},n=0){return this.Mb(t,i,n)}removeSeries(t){const i=_(this.hb.get(t)),n=this.ub.if(i);this.hv.Qt().if(i),this.gb(n),this.hb.delete(t),this.ab.delete(i)}Jg(t,i){this.gb(this.ub.og(t,i))}tb(t,i,n){this.gb(this.ub.pg(t,i,n))}ib(t,i){const[n,s]=this.ub.wg(t,i);return 0!==n.length&&this.gb(s),n}subscribeClick(t){this.lb.i(t)}unsubscribeClick(t){this.lb._(t)}subscribeCrosshairMove(t){this._b.i(t)}unsubscribeCrosshairMove(t){this._b._(t)}subscribeDblClick(t){this.ob.i(t)}unsubscribeDblClick(t){this.ob._(t)}priceScale(t,i=0){return new Js(this.hv,t,i)}timeScale(){return this.pb}applyOptions(t){this.hv.vr(ee(t))}options(){return this.hv.N()}takeScreenshot(t=!1,i=!1){let n,s;try{i||(n=this.hv.Qt().N().crosshair.mode,this.hv.vr({crosshair:{mode:2}})),s=this.hv.TM(t)}finally{i||void 0===n||this.hv.Qt().vr({crosshair:{mode:n}})}return s}addPane(t=!1){const i=this.hv.Qt().uf();return i.j_(t),this.bb(i)}removePane(t){this.hv.Qt().Ad(t)}swapPanes(t,i){this.hv.Qt().zd(t,i)}autoSizeActive(){return this.hv.CM()}chartElement(){return this.hv.Mv()}panes(){return this.hv.Qt().Gn().map((t=>this.bb(t)))}paneSize(t=0){const i=this.hv.AM(t);return{height:i.height,width:i.width}}setCrosshairPosition(t,i,n){const s=this.hb.get(n);if(void 0===s)return;const e=this.hv.Qt().Ks(s);null!==e&&this.hv.Qt().Gd(t,i,e)}clearCrosshairPosition(){this.hv.Qt().Zd(!0)}horzBehaviour(){return this.cb}Mb(t,i={},n=0){o(void 0!==t.mb),function(t){if(void 0===t||\"custom\"===t.type)return;const i=t;void 0!==i.minMove&&void 0===i.precision&&(i.precision=Yi(i.minMove))}(i.priceFormat),\"Candlestick\"===t.type&&function(t){void 0!==t.borderColor&&(t.borderUpColor=t.borderColor,t.borderDownColor=t.borderColor),void 0!==t.wickColor&&(t.wickUpColor=t.wickColor,t.wickDownColor=t.wickColor)}(i);const s=f(M(e),M(t.defaultOptions),i),r=t.mb,h=new Jt(this.hv.Qt(),t.type,s,r,t.wb);this.hv.Qt().Qd(h,n);const a=new ne(h,this,this,this,this.cb,(t=>this.bb(t)));return this.hb.set(a,h),this.ab.set(h,a),a}gb(t){const i=this.hv.Qt();for(const i of t.Y_.keys())i.Ia();i.Xd(t.Et.Dc,t.Et.Sg,t.Et.xg),t.Y_.forEach(((t,i)=>i.ht(t.ue,t.bg))),i.Et().dc(),i.Lc()}Sb(t){return _(this.ab.get(t))}xb(t){return void 0!==t&&this.ab.has(t)?this.Sb(t):void 0}fb(t){const i=new Map;t.QM.forEach(((t,n)=>{const s=n.bh(),e=$s(s)(t);if(\"Custom\"!==s)o(ts(e));else{const t=n.cl();o(!t||!1===t(e))}i.set(this.Sb(n),e)}));const n=this.xb(t.jM),s=void 0===t.YM?void 0:{type:t.YM.ds,sourceKind:t.YM.KM,objectKind:t.YM.GM,series:this.xb(t.YM.Y_),objectId:t.YM.ZM,paneIndex:t.YM.XM};return{time:t.Qr,logical:t.$n,point:t.JM,paneIndex:t.XM,hoveredInfo:s,hoveredSeries:n,hoveredObjectId:t.qM,seriesData:i,sourceEvent:t.tg}}bb(t){let i=this.dd.get(t);return i||(i=new Qs(this.hv,(t=>this.Sb(t)),t,this),this.dd.set(t,i)),i}}function he(t){if(m(t)){const i=document.getElementById(t);return o(null!==i,`Cannot find element in DOM with id=${t}`),i}return t}function ae(t,i,n){const s=he(t),e=new re(s,i,n);return i.setOptions(e.options()),e}function le(t,i){return ae(t,new cn,cn.Tf(i))}function oe(){return cn}function _e(t,i,n,s){return Math.hypot(n-t,s-i)}function ue(t,i,n,s,e,r,h,a=0){if(0===i.length||s.from>=i.length||s.to<=0)return;const{context:l,horizontalPixelRatio:o,verticalPixelRatio:_}=t,u=i[s.from];let c=r(t,u),d=u;if(s.to-s.from<2){const i=e/2;l.beginPath();const n={_t:u._t-i,ut:u.ut},s={_t:u._t+i,ut:u.ut};l.moveTo(n._t*o,n.ut*_),l.lineTo(s._t*o,s.ut*_),h(t,c,n,s)}else{const e=a>0;let f=0;const p=(i,n)=>{if(h(t,c,d,n),l.beginPath(),c=i,d=n,e){const t=f%a;l.lineDashOffset=t,f=t}};let v=d;l.beginPath(),l.moveTo(u._t*o,u.ut*_);for(let h=s.from+1;h<s.to;++h){v=i[h];const s=v._t*o,a=v.ut*_,u=r(t,v);switch(n){case 0:if(l.lineTo(s,a),e){const t=i[h-1],n=t._t*o,e=t.ut*_;f+=_e(n,e,s,a)}break;case 1:{const t=i[h-1],n=t.ut*_;l.lineTo(s,n),e&&(f+=Math.abs(v._t-t._t)*o),u!==c&&(p(u,v),l.lineTo(s,n)),l.lineTo(s,a),e&&(f+=Math.abs(v.ut-t.ut)*_);break}case 2:{const[t,n]=pe(i,h-1,h),r=t._t*o,u=t.ut*_,c=n._t*o,d=n.ut*_;if(l.bezierCurveTo(r,u,c,d,s,a),e){const t=i[h-1],n=t._t*o,e=t.ut*_,l=_e(n,e,s,a),p=_e(n,e,r,u)+_e(r,u,c,d)+_e(c,d,s,a);f+=(l+p)/2}break}}1!==n&&u!==c&&(p(u,v),l.moveTo(s,a))}(d!==v||d===v&&1===n)&&h(t,c,d,v),e&&(l.lineDashOffset=0)}}const ce=6;function de(t,i){return{_t:t._t-i._t,ut:t.ut-i.ut}}function fe(t,i){return{_t:t._t/i,ut:t.ut/i}}function pe(t,i,n){const s=Math.max(0,i-1),e=Math.min(t.length-1,n+1);var r,h;return[(r=t[i],h=fe(de(t[n],t[s]),ce),{_t:r._t+h._t,ut:r.ut+h.ut}),de(t[n],fe(de(t[e],t[i]),ce))]}function ve(t,i){const n=t.context;n.strokeStyle=i,n.stroke()}class me extends R{constructor(){super(...arguments),this.rt=null}ht(t){this.rt=t}et(t){if(null===this.rt)return;const{ot:i,lt:n,Cb:s,yb:e,ct:r,Gt:h,Pb:l}=this.rt;if(null===n)return;const o=t.context;o.lineCap=\"butt\",o.lineWidth=r*t.verticalPixelRatio;const _=a(o,h);o.lineJoin=\"round\";const u=this.kb.bind(this),c=function(t){return t.reduce(((t,i)=>t+i),0)}(_);void 0!==e&&ue(t,i,e,n,s,u,ve,c),l&&function(t,i,n,s,e){if(s.to-s.from<=0)return;const{horizontalPixelRatio:r,verticalPixelRatio:h,context:a}=t;let l=null;const o=Math.max(1,Math.floor(r))%2/2,_=n*h+o;for(let n=s.to-1;n>=s.from;--n){const s=i[n];if(s){const i=e(t,s);i!==l&&(null!==l&&a.fill(),a.beginPath(),a.fillStyle=i,l=i);const n=Math.round(s._t*r)+o,u=s.ut*h;a.moveTo(n,u),a.arc(n,u,_,0,2*Math.PI)}}a.fill()}(t,i,l,n,u)}}class we extends me{kb(t,i){return i.vt}}function Me(t,i,n,s,e){const r=1-e;return r*r*r*t+3*r*r*e*i+3*r*e*e*n+e*e*e*s}function ge(t,i,n,s,e){if(2===n){const[n,r]=pe(s,e-1,e);return[Math.min(t._t,i._t,n._t,r._t),Math.max(t._t,i._t,n._t,r._t)]}return[Math.min(t._t,i._t),Math.max(t._t,i._t)]}function be(t,i,n,s,e,r,h,a){switch(e){case 1:{const e=Ss(t,i,n._t,n.ut,s._t,n.ut),r=Ss(t,i,s._t,n.ut,s._t,s.ut),h=Math.min(e,r);return h<=a?h:null}case 2:{const[e,l]=pe(r,h-1,h),o=function(t,i,n){let s=Number.POSITIVE_INFINITY,e=n[0];for(let r=1;r<=12;r++){const h=r/12,a={_t:Me(n[0]._t,n[1]._t,n[2]._t,n[3]._t,h),ut:Me(n[0].ut,n[1].ut,n[2].ut,n[3].ut,h)};s=Math.min(s,Ss(t,i,e._t,e.ut,a._t,a.ut)),e=a}return s}(t,i,[n,e,l,s]);return o<=a?o:null}default:{const e=Ss(t,i,n._t,n.ut,s._t,s.ut);return e<=a?e:null}}}class Se extends Ds{constructor(t,i){super(t,i,!0)}Og(t,i,n){i.Ic(this.kg,b(this.Tg)),t.Jo(this.kg,n,b(this.Tg))}Tb(t,i){return{wt:t,Mt:i,_t:NaN,ut:NaN}}Lg(){const t=this.ae.Sa();this.kg=this.ae.Ua().Bh().map((i=>{let n;if((i.Gr??1)>1){const t=i.Wt[1],s=i.Wt[2],e=i.Wt[3];n=Math.abs(t-e)>Math.abs(s-e)?t:s}else n=i.Wt[3];return this.Rb(i.$n,n,t)}))}}class xe extends Se{Bg(t,i){const n=this.ae.N();return function(t,i,n,s,e,r,h,a=0,l=0){if(null===i||i.from>=i.to||0===t.length)return null;const o=Math.max(r/2,h??0)+l;let _=Number.POSITIVE_INFINITY;if(void 0!==h){const e=h+l,r=ws(t,n-e,i.from,i.to),a=Ms(t,n+e,r,i.to);for(let i=r;i<a;i++){const e=t[i];if(!bs(n,e._t,e._t,h+l))continue;const r=Math.hypot(n-e._t,s-e.ut);r<=h+l&&(_=Math.min(_,r))}}if(i.to-i.from<2){const e=t[i.from],r=Math.max(a/2,o),h=Ss(n,s,e._t-r,e.ut,e._t+r,e.ut);return h<=o&&(_=Math.min(_,h)),Number.isFinite(_)?gs(_,2,\"series-point\"):null}let u=Number.POSITIVE_INFINITY;const c=ws(t,n-o,i.from,i.to),d=Ms(t,n+o,c,i.to),f=Math.max(i.from+1,c),p=Math.min(i.to,d+1);for(let i=f;i<p;i++){const r=t[i-1],h=t[i],[a,l]=ge(r,h,e,t,i);if(!bs(n,a,l,o))continue;const _=be(n,s,r,h,e,t,i,o);null!==_&&(u=Math.min(u,_))}return Number.isFinite(_)?gs(_,2,\"series-point\"):Number.isFinite(u)?gs(u,1,\"series-line\"):null}(this.kg,this.Tg,t,i,n.lineType,n.lineVisible?n.lineWidth:1,n.pointMarkersVisible?n.pointMarkersRadius||n.lineWidth/2+2:void 0,this.le.Et().ml(),n.hitTestTolerance)}}class Ce extends xe{constructor(){super(...arguments),this.Vg=new we}Rb(t,i,n){return{...this.Tb(t,i),...n.Sh(t)}}Ng(){const t=this.ae.N(),i={ot:this.kg,Gt:t.lineStyle,yb:t.lineVisible?t.lineType:void 0,ct:t.lineWidth,Pb:t.pointMarkersVisible?t.pointMarkersRadius||t.lineWidth/2+2:void 0,lt:this.Tg,Cb:this.le.Et().ml()};this.Vg.ht(i)}}const ye={type:\"Line\",isBuiltIn:!0,defaultOptions:{color:\"#2196f3\",lineStyle:0,lineWidth:3,lineType:0,lineVisible:!0,crosshairMarkerVisible:!0,crosshairMarkerRadius:4,crosshairMarkerBorderColor:\"\",crosshairMarkerBorderWidth:2,crosshairMarkerBackgroundColor:\"\",lastPriceAnimation:0,pointMarkersVisible:!1},mb:(t,i)=>new Ce(t,i)};function Pe(t,i){return t.weight>i.weight?t:i}class ke{constructor(){this.Db=new d,this.Ib=function(t){let i=!1;return function(...n){i||(i=!0,queueMicrotask((()=>{t(...n),i=!1})))}}((()=>this.Db.p(this.Vb))),this.Vb=0}Bb(){return this.Db}m(){this.Db.m()}options(){return this.yn}setOptions(t){this.yn=t}preprocessData(t){}updateFormatter(t){this.yn&&(this.yn.localization=t)}createConverterToInternalObj(t){return this.Ib(),t=>(t>this.Vb&&(this.Vb=t),t)}key(t){return t}cacheKey(t){return t}convertHorzItemToInternal(t){return t}formatHorzItem(t){return this.Eb(t)}formatTickmark(t){return this.Eb(t.time)}maxTickMarkWeight(t){return t.reduce(Pe,t[0]).weight}fillWeightsForPoints(t,i){for(let s=i;s<t.length;++s)t[s].timeWeight=(n=t[s].time)%120==0?10:n%60==0?9:n%36==0?8:n%12==0?7:n%6==0?6:n%3==0?5:n%1==0?4:0;var n;this.Vb=t[t.length-1].time,this.Ib()}Eb(t){if(this.yn.localization?.timeFormatter)return this.yn.localization.timeFormatter(t);if(t<12)return`${t}M`;const i=Math.floor(t/12),n=t%12;return 0===n?`${i}Y`:`${i}Y${n}M`}}const Te={yieldCurve:{baseResolution:1,minimumTimeRange:120,startTimeRange:0},timeScale:{ignoreWhitespaceIndices:!0},leftPriceScale:{visible:!0},rightPriceScale:{visible:!1},localization:{priceFormatter:t=>t.toFixed(3)+\"%\"}},Re={lastValueVisible:!1,priceLineVisible:!1};class De extends re{constructor(t,i){const n=f(Te,i||{}),s=new ke;super(t,s,n),s.setOptions(this.options()),this._initWhitespaceSeries()}addSeries(t,i={},n=0){if(t.isBuiltIn&&!1===[\"Area\",\"Line\"].includes(t.type))throw new Error(\"Yield curve only support Area and Line series\");const s={...Re,...i};return super.addSeries(t,s,n)}_initWhitespaceSeries(){const t=this.horzBehaviour(),i=this.addSeries(ye);let n;function s(s){const e=function(t,i){return{me:Math.max(0,t.startTimeRange),we:Math.max(0,t.minimumTimeRange,i||0),Ab:Math.max(1,t.baseResolution)}}(t.options().yieldCurve,s),r=(({me:t,we:i,Ab:n})=>`${t}~${i}~${n}`)(e);r!==n&&(n=r,i.setData(function({me:t,we:i,Ab:n}){return Array.from({length:Math.floor((i-t)/n)+1},((i,s)=>({time:t+s*n})))}(e)))}s(0),t.Bb().i(s)}}function Ie(t,i){const n=he(t);return new De(n,i)}function Ve(t,i){return t.weight>i.weight?t:i}class Be{options(){return this.yn}setOptions(t){this.yn=t}preprocessData(t){}updateFormatter(t){this.yn&&(this.yn.localization=t)}createConverterToInternalObj(t){return t=>t}key(t){return t}cacheKey(t){return t}convertHorzItemToInternal(t){return t}formatHorzItem(t){return t.toFixed(this.Ds())}formatTickmark(t,i){return t.time.toFixed(this.Ds())}maxTickMarkWeight(t){return t.reduce(Ve,t[0]).weight}fillWeightsForPoints(t,i){for(let s=i;s<t.length;++s)t[s].timeWeight=(n=t[s].time)===100*Math.ceil(n/100)?8:n===50*Math.ceil(n/50)?7:n===25*Math.ceil(n/25)?6:n===10*Math.ceil(n/10)?5:n===5*Math.ceil(n/5)?4:n===Math.ceil(n)?3:2*n===Math.ceil(2*n)?1:0;var n}Ds(){return this.yn.localization.precision}}function Ee(t,i){return ae(t,new Be,i)}function Ae(t,i,n,s,e){const{context:r,horizontalPixelRatio:h,verticalPixelRatio:a}=i;r.lineTo(e._t*h,t*a),r.lineTo(s._t*h,t*a),r.closePath(),r.fillStyle=n,r.fill()}class Le extends R{constructor(){super(...arguments),this.rt=null}ht(t){this.rt=t}et(t){if(null===this.rt)return;const{ot:i,lt:n,Cb:s,ct:e,Gt:r,yb:h}=this.rt,l=this.rt.Lb??(this.rt.zb?0:t.mediaSize.height);if(null===n)return;const o=t.context;o.lineCap=\"butt\",o.lineJoin=\"round\",o.lineWidth=e,a(o,r),o.lineWidth=1,ue(t,i,h,n,s,this.Ob.bind(this),Ae.bind(null,l))}}class ze{Nb(t,i){const n=this.Fb,{Wb:s,Hb:e,Ub:r,$b:h,Lb:a,jb:l,qb:o}=i;if(void 0===this.Yb||void 0===n||n.Wb!==s||n.Hb!==e||n.Ub!==r||n.$b!==h||n.Lb!==a||n.jb!==l||n.qb!==o){const{verticalPixelRatio:n}=t,_=a||l>0?n:1,u=l*_,c=o===t.bitmapSize.height?o:o*_,d=(a??0)*_,f=t.context.createLinearGradient(0,u,0,c);if(f.addColorStop(0,s),null!=a){const t=ni((d-u)/(c-u),0,1);f.addColorStop(t,e),f.addColorStop(t,r)}f.addColorStop(1,h),this.Yb=f,this.Fb=i}return this.Yb}}class Oe extends Le{constructor(){super(...arguments),this.Kb=new ze}Ob(t,i){const n=this.rt;return this.Kb.Nb(t,{Wb:i.dh,Hb:i.fh,Ub:i.ph,$b:i.mh,Lb:n.Lb,jb:n.jb??0,qb:n.qb??t.bitmapSize.height})}}class Ne extends me{constructor(){super(...arguments),this.Gb=new ze}kb(t,i){const n=this.rt;return this.Gb.Nb(t,{Wb:i._h,Hb:i._h,Ub:i.uh,$b:i.uh,Lb:n.Lb,jb:n.jb??0,qb:n.qb??t.bitmapSize.height})}}class Fe{constructor(t,i,n,s){this.Zb=t,this.Xb=i,this.Jb=n,this.Qb=s}st(t,i,n){this.Zb.st(t,i,n),!this.Jb()||i&&this.Qb()||this.Xb.st(t,i,n)}}class We{constructor(t,i){this.Xb=t,this.tS=i}Tt(){return this.tS()?this.Xb:null}}class He extends xe{constructor(t,i){super(t,i),this.iS=new Oe,this.nS=new Ne,this.sS=new We(this.nS,(()=>this.Jb())),this.eS=[this],this.rS=[this.sS],this.hS={Za:this.eS,qa:this.rS},this.Vg=new Fe(this.iS,this.nS,(()=>this.Jb()),(()=>this.le.N().hoveredSeriesOnTop))}Ga(){return this.hS}Rb(t,i,n){return{...this.Tb(t,i),...n.Sh(t)}}Ng(){const t=this.ae.Lt();if(null===t)return;const i=this.ae.N(),n=this.ae.Ft().Nt(i.baseValue.price,t.Wt),s=this.le.Et().ml();if(null===this.Tg||0===this.kg.length)return;let e,r;if(i.relativeGradient){e=this.kg[this.Tg.from].ut,r=this.kg[this.Tg.from].ut;for(let t=this.Tg.from;t<this.Tg.to;t++){const i=this.kg[t];i.ut<e&&(e=i.ut),i.ut>r&&(r=i.ut)}}this.iS.ht({ot:this.kg,ct:i.lineWidth,Gt:i.lineStyle,yb:i.lineType,Lb:n,jb:e,qb:r,zb:!1,lt:this.Tg,Cb:s}),this.nS.ht({ot:this.kg,ct:i.lineWidth,Gt:i.lineStyle,yb:i.lineVisible?i.lineType:void 0,Pb:i.pointMarkersVisible?i.pointMarkersRadius||i.lineWidth/2+2:void 0,Lb:n,jb:e,qb:r,lt:this.Tg,Cb:s})}Jb(){return this.ae.It()&&null!==this.Tg&&this.aS()}aS(){const t=this.ae.N();return t.lineVisible||t.pointMarkersVisible}}const Ue={type:\"Baseline\",isBuiltIn:!0,defaultOptions:{baseValue:{type:\"price\",price:0},relativeGradient:!1,topFillColor1:\"rgba(38, 166, 154, 0.28)\",topFillColor2:\"rgba(38, 166, 154, 0.05)\",topLineColor:\"rgba(38, 166, 154, 1)\",bottomFillColor1:\"rgba(239, 83, 80, 0.05)\",bottomFillColor2:\"rgba(239, 83, 80, 0.28)\",bottomLineColor:\"rgba(239, 83, 80, 1)\",lineWidth:3,lineStyle:0,lineType:0,lineVisible:!0,crosshairMarkerVisible:!0,crosshairMarkerRadius:4,crosshairMarkerBorderColor:\"\",crosshairMarkerBorderWidth:2,crosshairMarkerBackgroundColor:\"\",lastPriceAnimation:0,pointMarkersVisible:!1},mb:(t,i)=>new He(t,i)};class $e extends Le{constructor(){super(...arguments),this.Kb=new ze}Ob(t,i){return this.Kb.Nb(t,{Wb:i.ah,Hb:\"\",Ub:\"\",$b:i.oh,jb:this.rt?.jb??0,qb:t.bitmapSize.height})}}class je extends xe{constructor(t,i){super(t,i),this.lS=new $e,this.Xb=new we,this.sS=new We(this.Xb,(()=>this.Jb())),this.eS=[this],this.rS=[this.sS],this.hS={Za:this.eS,qa:this.rS},this.Vg=new Fe(this.lS,this.Xb,(()=>this.Jb()),(()=>this.le.N().hoveredSeriesOnTop))}Ga(){return this.hS}Rb(t,i,n){return{...this.Tb(t,i),...n.Sh(t)}}Ng(){const t=this.ae.N();if(null===this.Tg||0===this.kg.length)return;let i;if(t.relativeGradient){i=this.kg[this.Tg.from].ut;for(let t=this.Tg.from;t<this.Tg.to;t++){const n=this.kg[t];n.ut<i&&(i=n.ut)}}this.lS.ht({yb:t.lineType,ot:this.kg,Gt:t.lineStyle,ct:t.lineWidth,Lb:null,jb:i,zb:t.invertFilledArea,lt:this.Tg,Cb:this.le.Et().ml()}),this.Xb.ht({yb:t.lineVisible?t.lineType:void 0,ot:this.kg,Gt:t.lineStyle,ct:t.lineWidth,lt:this.Tg,Cb:this.le.Et().ml(),Pb:t.pointMarkersVisible?t.pointMarkersRadius||t.lineWidth/2+2:void 0})}Jb(){return this.ae.It()&&null!==this.Tg&&this.aS()}aS(){const t=this.ae.N();return t.lineVisible||t.pointMarkersVisible}}const qe={type:\"Area\",isBuiltIn:!0,defaultOptions:{topColor:\"rgba( 46, 220, 135, 0.4)\",bottomColor:\"rgba( 40, 221, 100, 0)\",invertFilledArea:!1,relativeGradient:!1,lineColor:\"#33D778\",lineStyle:0,lineWidth:3,lineType:0,lineVisible:!0,crosshairMarkerVisible:!0,crosshairMarkerRadius:4,crosshairMarkerBorderColor:\"\",crosshairMarkerBorderWidth:2,crosshairMarkerBackgroundColor:\"\",lastPriceAnimation:0,pointMarkersVisible:!1},mb:(t,i)=>new je(t,i)};class Ye extends R{constructor(){super(...arguments),this.qt=null,this.oS=0,this._S=0}ht(t){this.qt=t}et({context:t,horizontalPixelRatio:i,verticalPixelRatio:n}){if(null===this.qt||0===this.qt.Un.length||null===this.qt.lt)return;if(this.oS=this.uS(i),this.oS>=2){Math.max(1,Math.floor(i))%2!=this.oS%2&&this.oS--}this._S=this.qt.cS?Math.min(this.oS,Math.floor(i)):this.oS;let s=null;const e=this._S<=this.oS&&this.qt.ml>=Math.floor(1.5*i);for(let r=this.qt.lt.from;r<this.qt.lt.to;++r){const h=this.qt.Un[r];s!==h.sh&&(t.fillStyle=h.sh,s=h.sh);const a=Math.floor(.5*this._S),l=Math.round(h._t*i),o=l-a,_=this._S,u=o+_-1,c=Math.min(h.n_,h.s_),d=Math.max(h.n_,h.s_),f=Math.round(c*n)-a,p=Math.round(d*n)+a,v=Math.max(p-f,this._S);t.fillRect(o,f,_,v);const m=Math.ceil(1.5*this.oS);if(e){if(this.qt.dS){const i=l-m;let s=Math.max(f,Math.round(h.i_*n)-a),e=s+_-1;e>f+v-1&&(e=f+v-1,s=e-_+1),t.fillRect(i,s,o-i,e-s+1)}const i=l+m;let s=Math.max(f,Math.round(h.e_*n)-a),e=s+_-1;e>f+v-1&&(e=f+v-1,s=e-_+1),t.fillRect(u+1,s,i-u,e-s+1)}}}uS(t){const i=Math.floor(t);return Math.max(i,Math.floor(function(t,i){return Math.floor(.3*t*i)}(u(this.qt).ml,t)))}}class Ke extends Ds{constructor(t,i){super(t,i,!1)}Bg(t,i){return Ps(this.kg,this.Tg,t,i,this.le.Et().ml(),this.ae.N().hitTestTolerance,((t,i)=>{i[0]=t.n_,i[1]=t.s_}))}Og(t,i,n){i.Ic(this.kg,b(this.Tg)),t.t_(this.kg,n,b(this.Tg))}fS(t,i,n){return{wt:t,jr:i.Wt[0],qr:i.Wt[1],Yr:i.Wt[2],Kr:i.Wt[3],_t:NaN,i_:NaN,n_:NaN,s_:NaN,e_:NaN}}Lg(){const t=this.ae.Sa();this.kg=this.ae.Ua().Bh().map((i=>this.Rb(i.$n,i,t)))}}class Ge extends Ke{constructor(){super(...arguments),this.Vg=new Ye}Rb(t,i,n){return{...this.fS(t,i,n),...n.Sh(t)}}Ng(){const t=this.ae.N();this.Vg.ht({Un:this.kg,ml:this.le.Et().ml(),dS:t.openVisible,cS:t.thinBars,lt:this.Tg})}}const Ze={type:\"Bar\",isBuiltIn:!0,defaultOptions:{upColor:\"#26a69a\",downColor:\"#ef5350\",openVisible:!0,thinBars:!0},mb:(t,i)=>new Ge(t,i)};class Xe extends R{constructor(){super(...arguments),this.qt=null,this.oS=0}ht(t){this.qt=t}et(t){if(null===this.qt||0===this.qt.Un.length||null===this.qt.lt)return;const{horizontalPixelRatio:i}=t;if(this.oS=function(t,i){if(t>=2.5&&t<=4)return Math.floor(3*i);const n=1-.2*Math.atan(Math.max(4,t)-4)/(.5*Math.PI),s=Math.floor(t*n*i),e=Math.floor(t*i),r=Math.min(s,e);return Math.max(Math.floor(i),r)}(this.qt.ml,i),this.oS>=2){Math.floor(i)%2!=this.oS%2&&this.oS--}const n=this.qt.Un;this.qt.pS&&this.vS(t,n,this.qt.lt),this.qt.gi&&this.Vm(t,n,this.qt.lt);const s=this.mS(i);(!this.qt.gi||this.oS>2*s)&&this.wS(t,n,this.qt.lt)}vS(t,i,n){if(null===this.qt)return;const{context:s,horizontalPixelRatio:e,verticalPixelRatio:r}=t;let h=\"\",a=Math.min(Math.floor(e),Math.floor(this.qt.ml*e));a=Math.max(Math.floor(e),Math.min(a,this.oS));const l=Math.floor(.5*a);let o=null;for(let t=n.from;t<n.to;t++){const n=i[t];n.rh!==h&&(s.fillStyle=n.rh,h=n.rh);const _=Math.round(Math.min(n.i_,n.e_)*r),u=Math.round(Math.max(n.i_,n.e_)*r),c=Math.round(n.n_*r),d=Math.round(n.s_*r);let f=Math.round(e*n._t)-l;const p=f+a-1;null!==o&&(f=Math.max(o+1,f),f=Math.min(f,p));const v=p-f+1;s.fillRect(f,c,v,_-c),s.fillRect(f,u+1,v,d-u),o=p}}mS(t){let i=Math.floor(1*t);this.oS<=2*i&&(i=Math.floor(.5*(this.oS-1)));const n=Math.max(Math.floor(t),i);return this.oS<=2*n?Math.max(Math.floor(t),Math.floor(1*t)):n}Vm(t,i,n){if(null===this.qt)return;const{context:s,horizontalPixelRatio:e,verticalPixelRatio:r}=t;let h=\"\";const a=this.mS(e);let l=null;for(let t=n.from;t<n.to;t++){const n=i[t];n.eh!==h&&(s.fillStyle=n.eh,h=n.eh);let o=Math.round(n._t*e)-Math.floor(.5*this.oS);const _=o+this.oS-1,u=Math.round(Math.min(n.i_,n.e_)*r),c=Math.round(Math.max(n.i_,n.e_)*r);if(null!==l&&(o=Math.max(l+1,o),o=Math.min(o,_)),this.qt.ml*e>2*a)L(s,o,u,_-o+1,c-u+1,a);else{const t=_-o+1;s.fillRect(o,u,t,c-u+1)}l=_}}wS(t,i,n){if(null===this.qt)return;const{context:s,horizontalPixelRatio:e,verticalPixelRatio:r}=t;let h=\"\";const a=this.mS(e);for(let t=n.from;t<n.to;t++){const n=i[t];let l=Math.round(Math.min(n.i_,n.e_)*r),o=Math.round(Math.max(n.i_,n.e_)*r),_=Math.round(n._t*e)-Math.floor(.5*this.oS),u=_+this.oS-1;if(n.sh!==h){const t=n.sh;s.fillStyle=t,h=t}this.qt.gi&&(_+=a,l+=a,u-=a,o-=a),l>o||s.fillRect(_,l,u-_+1,o-l+1)}}}class Je extends Ke{constructor(){super(...arguments),this.Vg=new Xe}Rb(t,i,n){return{...this.fS(t,i,n),...n.Sh(t)}}Ng(){const t=this.ae.N();this.Vg.ht({Un:this.kg,ml:this.le.Et().ml(),pS:t.wickVisible,gi:t.borderVisible,lt:this.Tg})}}const Qe={type:\"Candlestick\",isBuiltIn:!0,defaultOptions:{upColor:\"#26a69a\",downColor:\"#ef5350\",wickVisible:!0,borderVisible:!0,borderColor:\"#378658\",borderUpColor:\"#26a69a\",borderDownColor:\"#ef5350\",wickColor:\"#737375\",wickUpColor:\"#26a69a\",wickDownColor:\"#ef5350\"},mb:(t,i)=>new Je(t,i)};class tr extends R{constructor(){super(...arguments),this.qt=null,this.MS=[]}ht(t){this.qt=t,this.MS=[]}et({context:t,horizontalPixelRatio:i,verticalPixelRatio:n}){if(null===this.qt||0===this.qt.ot.length||null===this.qt.lt)return;this.MS.length||this.gS(i);const s=Math.max(1,Math.floor(n)),e=Math.round(this.qt.bS*n)-Math.floor(s/2),r=e+s;for(let i=this.qt.lt.from;i<this.qt.lt.to;i++){const h=this.qt.ot[i],a=this.MS[i-this.qt.lt.from],l=Math.round(h.ut*n);let o,_;t.fillStyle=h.sh,l<=e?(o=l,_=r):(o=e,_=l-Math.floor(s/2)+s),t.fillRect(a.Na,o,a.bi-a.Na+1,_-o)}}gS(t){if(null===this.qt||0===this.qt.ot.length||null===this.qt.lt)return void(this.MS=[]);const i=Math.ceil(this.qt.ml*t)<=1?0:Math.max(1,Math.floor(t)),n=Math.round(this.qt.ml*t)-i;this.MS=new Array(this.qt.lt.to-this.qt.lt.from);for(let i=this.qt.lt.from;i<this.qt.lt.to;i++){const s=this.qt.ot[i],e=Math.round(s._t*t);let r,h;if(n%2){const t=(n-1)/2;r=e-t,h=e+t}else{const t=n/2;r=e-t,h=e+t-1}this.MS[i-this.qt.lt.from]={Na:r,bi:h,SS:e,ce:s._t*t,wt:s.wt}}for(let t=this.qt.lt.from+1;t<this.qt.lt.to;t++){const n=this.MS[t-this.qt.lt.from],s=this.MS[t-this.qt.lt.from-1];n.wt===s.wt+1&&(n.Na-s.bi!==i+1&&(s.SS>s.ce?s.bi=n.Na-i-1:n.Na=s.bi+i+1))}let s=Math.ceil(this.qt.ml*t);for(let t=this.qt.lt.from;t<this.qt.lt.to;t++){const i=this.MS[t-this.qt.lt.from];i.bi<i.Na&&(i.bi=i.Na);const n=i.bi-i.Na+1;s=Math.min(n,s)}if(i>0&&s<4)for(let t=this.qt.lt.from;t<this.qt.lt.to;t++){const i=this.MS[t-this.qt.lt.from];i.bi-i.Na+1>s&&(i.SS>i.ce?i.bi-=1:i.Na+=1)}}}class ir extends Se{constructor(){super(...arguments),this.Vg=new tr}Bg(t,i){const n=this.ae.Ft().Nt(this.ae.N().base,u(this.ae.Lt()).Wt);return null===n?null:Ps(this.kg,this.Tg,t,i,this.le.Et().ml(),this.ae.N().hitTestTolerance,((t,i)=>{i[0]=t.ut,i[1]=n}))}Rb(t,i,n){return{...this.Tb(t,i),...n.Sh(t)}}Ng(){const t={ot:this.kg,ml:this.le.Et().ml(),lt:this.Tg,bS:this.ae.Ft().Nt(this.ae.N().base,u(this.ae.Lt()).Wt)};this.Vg.ht(t)}}const nr={type:\"Histogram\",isBuiltIn:!0,defaultOptions:{color:\"#26a69a\",base:0},mb:(t,i)=>new ir(t,i)};class sr{constructor(t,i){this.yt=t,this.xS=i,this.CS()}detach(){this.yt.detachPrimitive(this.xS)}getPane(){return this.yt}applyOptions(t){this.xS.vr?.(t)}CS(){this.yt.attachPrimitive(this.xS)}}const er={visible:!0,horzAlign:\"center\",vertAlign:\"center\",lines:[]},rr={color:\"rgba(0, 0, 0, 0.5)\",fontSize:48,fontFamily:S,fontStyle:\"\",text:\"\"};class hr{constructor(t){this.yS=new Map,this.qt=t}draw(t){t.useMediaCoordinateSpace((t=>{if(!this.qt.visible)return;const{context:i,mediaSize:n}=t;let s=0;for(const t of this.qt.lines){if(0===t.text.length)continue;i.font=t.k;const e=this.PS(i,t.text);e>n.width?t.Uc=n.width/e:t.Uc=1,s+=t.lineHeight*t.Uc}let e=0;switch(this.qt.vertAlign){case\"top\":e=0;break;case\"center\":e=Math.max((n.height-s)/2,0);break;case\"bottom\":e=Math.max(n.height-s,0)}for(const t of this.qt.lines){i.save(),i.fillStyle=t.color;let s=0;switch(this.qt.horzAlign){case\"left\":i.textAlign=\"left\",s=t.lineHeight/2;break;case\"center\":i.textAlign=\"center\",s=n.width/2;break;case\"right\":i.textAlign=\"right\",s=n.width-1-t.lineHeight/2}i.translate(s,e),i.textBaseline=\"top\",i.font=t.k,i.scale(t.Uc,t.Uc),i.fillText(t.text,0,t.kS),i.restore(),e+=t.lineHeight*t.Uc}}))}PS(t,i){const n=this.TS(t.font);let s=n.get(i);return void 0===s&&(s=t.measureText(i).width,n.set(i,s)),s}TS(t){let i=this.yS.get(t);return void 0===i&&(i=new Map,this.yS.set(t,i)),i}}class ar{constructor(t){this.yn=or(t)}Pt(t){this.yn=or(t)}renderer(){return new hr(this.yn)}}function lr(t){return{...t,k:x(t.fontSize,t.fontFamily,t.fontStyle),lineHeight:t.lineHeight||1.2*t.fontSize,kS:0,Uc:0}}function or(t){return{...t,lines:t.lines.map(lr)}}function _r(t){return{...rr,...t}}function ur(t){return{...er,...t,lines:t.lines?.map(_r)??[]}}class cr{constructor(t){this.yn=ur(t),this.RS=[new ar(this.yn)]}updateAllViews(){this.RS.forEach((t=>t.Pt(this.yn)))}paneViews(){return this.RS}attached({requestUpdate:t}){this.DS=t}detached(){this.DS=void 0}vr(t){this.yn=ur({...this.yn,...t}),this.DS&&this.DS()}}function dr(t,i){return new sr(t,new cr(i))}const fr={alpha:1,padding:0};class pr{constructor(t){this.qt=t}draw(t){t.useMediaCoordinateSpace((t=>{const i=t.context,n=this.IS(this.qt,t.mediaSize);n&&this.qt.VS&&(i.globalAlpha=this.qt.alpha??1,i.drawImage(this.qt.VS,n._t,n.ut,n.nn,n.$t))}))}IS(t,i){const{maxHeight:n,maxWidth:s,BS:e,ES:r,padding:h}=t,a=Math.round(i.width/2),l=Math.round(i.height/2),o=h??0;let _=i.width-2*o,u=i.height-2*o;n&&(u=Math.min(u,n)),s&&(_=Math.min(_,s));const c=_/r,d=u/e,f=Math.min(c,d),p=r*f,v=e*f;return{_t:a-.5*p,ut:l-.5*v,$t:v,nn:p}}}class vr{constructor(t){this.AS=null,this.LS=0,this.zS=0,this.yn=t,this.M=mr(this.yn,this.AS,this.LS,this.zS)}OS(t){void 0!==t.NS&&(this.LS=t.NS),void 0!==t.FS&&(this.zS=t.FS),void 0!==t.WS&&(this.AS=t.WS),this.Pt()}HS(t){this.yn=t,this.Pt()}zOrder(){return\"bottom\"}Pt(){this.M=mr(this.yn,this.AS,this.LS,this.zS)}renderer(){return new pr(this.M)}}function mr(t,i,n,s){return{...t,VS:i,ES:n,BS:s}}function wr(t){return{...fr,...t}}class Mr{constructor(t,i){this.US=null,this.$S=t,this.yn=wr(i),this.RS=[new vr(this.yn)]}updateAllViews(){this.RS.forEach((t=>t.Pt()))}paneViews(){return this.RS}attached(t){const{requestUpdate:i}=t;this.jS=i,this.US=new Image,this.US.onload=()=>{const t=this.US?.naturalHeight??1,i=this.US?.naturalWidth??1;this.RS.forEach((n=>n.OS({FS:t,NS:i,WS:this.US}))),this.jS&&this.jS()},this.US.src=this.$S}detached(){this.jS=void 0,this.US=null}vr(t){this.yn=wr({...this.yn,...t}),this.qS(),this.DS&&this.DS()}DS(){this.jS&&this.jS()}qS(){this.RS.forEach((t=>t.HS(this.yn)))}}function gr(t,i,n){return new sr(t,new Mr(i,n))}class br{constructor(t,i){this.ae=t,this.Jh=i,this.CS()}detach(){this.ae.detachPrimitive(this.Jh)}getSeries(){return this.ae}applyOptions(t){this.Jh&&this.Jh.vr&&this.Jh.vr(t)}CS(){this.ae.attachPrimitive(this.Jh)}}const Sr={autoScale:!0,zOrder:\"normal\"};function xr(t,i){return ei(Math.min(Math.max(t,12),30)*i)}function Cr(t,i){const n=\"circle\"===t?.8:\"square\"===t?.7:1;return ei(Math.max(i,12)*n)}function yr(t){return function(t){const i=Math.ceil(t);return i%2!=0?i-1:i}(xr(t,1))}function Pr(t){return Math.max(xr(t,.1),3)}function kr(t,i,n){return i?t:n?Math.ceil(t/2):0}function Tr(t,i,n,s){const e=(Cr(\"arrowUp\",s)-1)/2*n.YS,r=(ei(s/2)-1)/2*n.YS;i.beginPath(),t?(i.moveTo(n._t-e,n.ut),i.lineTo(n._t,n.ut-e),i.lineTo(n._t+e,n.ut),i.lineTo(n._t+r,n.ut),i.lineTo(n._t+r,n.ut+e),i.lineTo(n._t-r,n.ut+e),i.lineTo(n._t-r,n.ut)):(i.moveTo(n._t-e,n.ut),i.lineTo(n._t,n.ut+e),i.lineTo(n._t+e,n.ut),i.lineTo(n._t+r,n.ut),i.lineTo(n._t+r,n.ut-e),i.lineTo(n._t-r,n.ut-e),i.lineTo(n._t-r,n.ut)),i.fill()}function Rr(t,i,n,s,e,r){const h=(Cr(\"arrowUp\",s)-1)/2,a=(ei(s/2)-1)/2;if(e>=i-a-2&&e<=i+a+2&&r>=(t?n:n-h)-2&&r<=(t?n+h:n)+2)return!0;return(()=>{if(e<i-h-3||e>i+h+3||r<(t?n-h-3:n)||r>(t?n:n+h+3))return!1;const s=Math.abs(e-i);return Math.abs(r-n)+3>=s/2})()}class Dr{constructor(){this.qt=null,this.$s=new rt,this.F=-1,this.W=\"\",this.hm=\"\",this.KS=\"normal\"}ht(t){this.qt=t}js(t,i,n){this.F===t&&this.W===i||(this.F=t,this.W=i,this.hm=x(t,i),this.$s.Os()),this.KS=n}Qs(t,i){if(null===this.qt||null===this.qt.lt)return null;for(let n=this.qt.lt.from;n<this.qt.lt.to;n++){const s=this.qt.ot[n];if(s&&Vr(s,t,i))return{zOrder:\"normal\",externalId:s.te??\"\",itemType:\"marker\"}}return null}draw(t){\"aboveSeries\"!==this.KS&&t.useBitmapCoordinateSpace((t=>{this.et(t)}))}drawBackground(t){\"aboveSeries\"===this.KS&&t.useBitmapCoordinateSpace((t=>{this.et(t)}))}et({context:t,horizontalPixelRatio:i,verticalPixelRatio:n}){if(null!==this.qt&&null!==this.qt.lt){t.textBaseline=\"middle\",t.font=this.hm;for(let s=this.qt.lt.from;s<this.qt.lt.to;s++){const e=this.qt.ot[s];void 0!==e.ri&&(e.ri.nn=this.$s.Ii(t,e.ri.GS),e.ri.$t=this.F,e.ri._t=e._t-e.ri.nn/2),Ir(e,t,i,n)}}}}function Ir(t,i,n,s){i.fillStyle=t.R,void 0!==t.ri&&function(t,i,n,s,e,r){t.save(),t.scale(e,r),t.fillText(i,n,s),t.restore()}(i,t.ri.GS,t.ri._t,t.ri.ut,n,s),function(t,i,n){if(0===t.Th)return;switch(t.ZS){case\"arrowDown\":return void Tr(!1,i,n,t.Th);case\"arrowUp\":return void Tr(!0,i,n,t.Th);case\"circle\":return void function(t,i,n){const s=(Cr(\"circle\",n)-1)/2;t.beginPath(),t.arc(i._t,i.ut,s*i.YS,0,2*Math.PI,!1),t.fill()}(i,n,t.Th);case\"square\":return void function(t,i,n){const s=Cr(\"square\",n),e=(s-1)*i.YS/2,r=i._t-e,h=i.ut-e;t.fillRect(r,h,s*i.YS,s*i.YS)}(i,n,t.Th)}t.ZS}(t,i,function(t,i,n){const s=Math.max(1,Math.floor(i))%2/2;return{_t:Math.round(t._t*i)+s,ut:t.ut*n,YS:i}}(t,n,s))}function Vr(t,i,n){return!(void 0===t.ri||!function(t,i,n,s,e,r){const h=s/2;return e>=t&&e<=t+n&&r>=i-h&&r<=i+h}(t.ri._t,t.ri.ut,t.ri.nn,t.ri.$t,i,n))||function(t,i,n){if(0===t.Th)return!1;switch(t.ZS){case\"arrowDown\":return Rr(!0,t._t,t.ut,t.Th,i,n);case\"arrowUp\":return Rr(!1,t._t,t.ut,t.Th,i,n);case\"circle\":return function(t,i,n,s,e){const r=2+Cr(\"circle\",n)/2,h=t-s,a=i-e;return Math.sqrt(h*h+a*a)<=r}(t._t,t.ut,t.Th,i,n);case\"square\":return function(t,i,n,s,e){const r=Cr(\"square\",n),h=(r-1)/2,a=t-h,l=i-h;return s>=a&&s<=a+r&&e>=l&&e<=l+r}(t._t,t.ut,t.Th,i,n)}}(t,i,n)}function Br(t){return\"atPriceTop\"===t||\"atPriceBottom\"===t||\"atPriceMiddle\"===t}function Er(t,i,n,s,e,r,h,a){const l=function(t,i,n){if(Br(i.position)&&void 0!==i.price)return i.price;if(\"value\"in(s=t)&&\"number\"==typeof s.value)return t.value;var s;if(function(t){return\"open\"in t&&\"high\"in t&&\"low\"in t&&\"close\"in t}(t)){if(\"inBar\"===i.position)return t.close;if(\"aboveBar\"===i.position)return n?t.low:t.high;if(\"belowBar\"===i.position)return n?t.high:t.low}}(n,i,h.priceScale().options().invertScale);if(void 0===l)return;const o=Br(i.position),_=a.timeScale(),c=p(i.size)?Math.max(i.size,0):1,d=yr(_.options().barSpacing)*c,f=d/2;t.Th=d;switch(i.position){case\"inBar\":case\"atPriceMiddle\":return t.ut=u(h.priceToCoordinate(l)),void(void 0!==t.ri&&(t.ri.ut=t.ut+f+r+.6*e));case\"aboveBar\":case\"atPriceTop\":{const i=o?0:s.XS;return t.ut=u(h.priceToCoordinate(l))-f-i,void 0!==t.ri&&(t.ri.ut=t.ut-f-.6*e,s.XS+=1.2*e),void(o||(s.XS+=d+r))}case\"belowBar\":case\"atPriceBottom\":{const i=o?0:s.JS;return t.ut=u(h.priceToCoordinate(l))+f+i,void 0!==t.ri&&(t.ri.ut=t.ut+f+r+.6*e,s.JS+=1.2*e),void(o||(s.JS+=d+r))}}}class Ar{constructor(t,i,n){this.QS=[],this.xt=!0,this.tx=!0,this.Xt=new Dr,this.Te=t,this.Gv=i,this.qt={ot:[],lt:null},this.yn=n}renderer(){if(!this.Te.options().visible)return null;this.xt&&this.Ig();const t=this.Gv.options().layout;return this.Xt.js(t.fontSize,t.fontFamily,this.yn.zOrder),this.Xt.ht(this.qt),this.Xt}ix(t){this.QS=t,this.Pt(\"data\")}Pt(t){this.xt=!0,\"data\"===t&&(this.tx=!0)}nx(t){this.xt=!0,this.yn=t}zOrder(){return\"aboveSeries\"===this.yn.zOrder?\"top\":this.yn.zOrder}Ig(){const t=this.Gv.timeScale(),i=this.QS;this.tx&&(this.qt.ot=i.map((t=>({wt:t.time,_t:0,ut:0,Th:0,ZS:t.shape,R:t.color,te:t.id,sx:t.sx,ri:void 0}))),this.tx=!1);const n=this.Gv.options().layout;this.qt.lt=null;const s=t.getVisibleLogicalRange();if(null===s)return;const e=new Ai(Math.floor(s.from),Math.ceil(s.to));if(null===this.Te.dataByIndex(0,1))return;if(0===this.qt.ot.length)return;let r=NaN;const h=Pr(t.options().barSpacing),a={XS:h,JS:h};this.qt.lt=Rs(this.qt.ot,e,!0);for(let s=this.qt.lt.from;s<this.qt.lt.to;s++){const e=i[s];e.time!==r&&(a.XS=h,a.JS=h,r=e.time);const l=this.qt.ot[s];l._t=u(t.logicalToCoordinate(e.time)),void 0!==e.text&&e.text.length>0&&(l.ri={GS:e.text,_t:0,ut:0,nn:0,$t:0});const o=this.Te.dataByIndex(e.time,0);null!==o&&Er(l,e,o,a,n.fontSize,h,this.Te,this.Gv)}this.xt=!1}}function Lr(t){return{...Sr,...t}}class zr{constructor(t){this.Yh=null,this.QS=[],this.hx=[],this.lx=null,this.Te=null,this.Gv=null,this.ox=!0,this._x=null,this.ux=null,this.vx=null,this.mx=!0,this.yn=Lr(t)}attached(t){this.wx(),this.Gv=t.chart,this.Te=t.series,this.Yh=new Ar(this.Te,u(this.Gv),this.yn),this.jS=t.requestUpdate,this.Te.subscribeDataChanged((t=>this.Qg(t))),this.mx=!0,this.DS()}DS(){this.jS&&this.jS()}detached(){this.Te&&this.lx&&this.Te.unsubscribeDataChanged(this.lx),this.Gv=null,this.Te=null,this.Yh=null,this.lx=null}ix(t){this.mx=!0,this.QS=t,this.wx(),this.ox=!0,this.ux=null,this.DS()}Mx(){return this.QS}paneViews(){return this.Yh?[this.Yh]:[]}updateAllViews(){this.gx()}hitTest(t,i){return this.Yh?this.Yh.renderer()?.Qs(t,i)??null:null}autoscaleInfo(t,i){if(this.yn.autoScale&&this.Yh){const t=this.bx();if(t)return{priceRange:null,margins:t}}return null}vr(t){this.yn=Lr({...this.yn,...t}),this.DS&&this.DS()}bx(){const t=u(this.Gv).timeScale().options().barSpacing;if(this.ox||t!==this.vx){if(this.vx=t,this.QS.length>0){const i=Pr(t),n=1.5*yr(t)+2*i,s=this.Sx();this._x={above:kr(n,s.aboveBar,s.inBar),below:kr(n,s.belowBar,s.inBar)}}else this._x=null;this.ox=!1}return this._x}Sx(){return null===this.ux&&(this.ux=this.QS.reduce(((t,i)=>(t[i.position]||(t[i.position]=!0),t)),{inBar:!1,aboveBar:!1,belowBar:!1,atPriceTop:!1,atPriceBottom:!1,atPriceMiddle:!1})),this.ux}wx(){if(!this.mx||!this.Gv||!this.Te)return;const t=this.Gv.timeScale(),i=this.Te?.data();if(null==t.getVisibleLogicalRange()||!this.Te||0===i.length)return void(this.hx=[]);const n=t.timeToIndex(u(i[0].time),!0);this.hx=this.QS.map(((i,s)=>{const e=t.timeToIndex(i.time,!0),r=e<n?1:-1,h=u(this.Te).dataByIndex(e,r),a={time:t.timeToIndex(u(h).time,!1),position:i.position,shape:i.shape,color:i.color,id:i.id,sx:s,text:i.text,size:i.size,price:i.price,Qr:i.time};if(\"atPriceTop\"===i.position||\"atPriceBottom\"===i.position||\"atPriceMiddle\"===i.position){if(void 0===i.price)throw new Error(`Price is required for position ${i.position}`);return{...a,position:i.position,price:i.price}}return{...a,position:i.position,price:i.price}})),this.mx=!1}gx(t){this.Yh&&(this.wx(),this.Yh.ix(this.hx),this.Yh.nx(this.yn),this.Yh.Pt(t))}Qg(t){this.mx=!0,this.DS()}}class Or extends br{constructor(t,i,n){super(t,i),n&&this.setMarkers(n)}setMarkers(t){this.Jh.ix(t)}markers(){return this.Jh.Mx()}}function Nr(t,i,n){const s=new Or(t,new zr(n??{}));return i&&s.setMarkers(i),s}class Fr{constructor(t){this.QS=new Map,this.xx=t}Cx(t,i,n){if(this.yx(i),void 0!==n){const s=window.setTimeout((()=>{this.QS.delete(i),this.Px()}),n),e={...t,kx:s,Tx:Date.now()+n};this.QS.set(i,e)}else this.QS.set(i,{...t,kx:void 0,Tx:void 0});this.Px()}yx(t){const i=this.QS.get(t);i&&void 0!==i.kx&&window.clearTimeout(i.kx),this.QS.delete(t),this.Px()}Rx(){for(const[t]of this.QS)this.yx(t)}Dx(){const t=Date.now(),i=[];for(const[n,s]of this.QS)!s.Tx||s.Tx>t?i.push({time:s.time,sign:s.sign,value:s.value}):this.yx(n);return i}Ix(t){this.xx=t}Px(){this.xx&&this.xx()}}const Wr={positiveColor:\"#22AB94\",negativeColor:\"#F7525F\",updateVisibilityDuration:5e3};class Hr{constructor(t,i,n,s){this.qt=t,this.Vx=i,this.Bx=n,this.Ex=s}draw(t){t.useBitmapCoordinateSpace((t=>{const i=t.context,n=Math.max(1,Math.floor(t.horizontalPixelRatio))%2/2,s=4*t.verticalPixelRatio+n;this.qt.forEach((e=>{const r=Math.round(e._t*t.horizontalPixelRatio)+n;i.beginPath();const h=this.Ax(e.Lx);i.fillStyle=h,i.arc(r,e.ut*t.verticalPixelRatio,s,0,2*Math.PI,!1),i.fill(),e.Lx&&(i.strokeStyle=h,i.lineWidth=Math.floor(2*t.horizontalPixelRatio),i.beginPath(),i.moveTo((e._t-4.7)*t.horizontalPixelRatio+n,(e.ut-7*e.Lx)*t.verticalPixelRatio),i.lineTo(e._t*t.horizontalPixelRatio+n,(e.ut-7*e.Lx-7*e.Lx*.5)*t.verticalPixelRatio),i.lineTo((e._t+4.7)*t.horizontalPixelRatio+n,(e.ut-7*e.Lx)*t.verticalPixelRatio),i.stroke())}))}))}Ax(t){return 0===t?this.Vx:t>0?this.Ex:this.Bx}}class Ur{constructor(t,i,n){this.qt=[],this.Te=t,this.ia=i,this.yn=n}Pt(t){this.qt=t.map((t=>{const i=this.Te.priceToCoordinate(t.value);if(null===i)return null;return{_t:u(this.ia.timeToCoordinate(t.time)),ut:i,Lx:t.sign}})).filter(g)}renderer(){const t=function(t,i){return function(t,i){return\"Area\"===i}(0,i)?t.lineColor:t.color}(this.Te.options(),this.Te.seriesType());return new Hr(this.qt,t,this.yn.negativeColor,this.yn.positiveColor)}}function $r(t,i){return\"Line\"===i||\"Area\"===i}class jr{constructor(t){this.Gv=void 0,this.Te=void 0,this.RS=[],this.Pu=null,this.zx=new Map,this.Ox=new Fr((()=>this.DS())),this.yn={...Wr,...t}}vr(t){this.yn={...this.yn,...t},this.DS()}ix(t){this.Ox.Rx();const i=this.Pu;i&&t.forEach((t=>{this.Ox.Cx(t,i.key(t.time))}))}Mx(){return this.Ox.Dx()}DS(){this.jS?.()}attached(t){const{chart:i,series:n,requestUpdate:s,horzScaleBehavior:e}=t;this.Gv=i,this.Te=n,this.Pu=e;const r=this.Te.seriesType();if(\"Area\"!==r&&\"Line\"!==r)throw new Error(\"UpDownMarkersPrimitive is only supported for Area and Line series types\");this.RS=[new Ur(this.Te,this.Gv.timeScale(),this.yn)],this.jS=s,this.DS()}detached(){this.Gv=void 0,this.Te=void 0,this.jS=void 0}_m(){return _(this.Gv)}Y_(){return _(this.Te)}updateAllViews(){this.RS.forEach((t=>t.Pt(this.Mx())))}paneViews(){return this.RS}ht(t){if(!this.Te)throw new Error(\"Primitive not attached to series\");const i=this.Te.seriesType();this.zx.clear();const n=this.Pu;n&&t.forEach((t=>{ts(t)&&$r(0,i)&&this.zx.set(n.key(t.time),t.value)})),_(this.Te).setData(t)}Pt(t,i){if(!this.Te||!this.Pu)throw new Error(\"Primitive not attached to series\");const n=this.Te.seriesType(),s=this.Pu.key(t.time);if(Qn(t)&&this.zx.delete(s),ts(t)&&$r(0,n)){const i=this.zx.get(s);i&&this.Ox.Cx({time:t.time,value:t.value,sign:qr(t.value,i)},s,this.yn.updateVisibilityDuration)}_(this.Te).update(t,i)}Nx(){this.Ox.Rx()}}function qr(t,i){return t===i?0:t-i>0?1:-1}class Yr extends br{setData(t){return this.Jh.ht(t)}update(t,i){return this.Jh.Pt(t,i)}markers(){return this.Jh.Mx()}setMarkers(t){return this.Jh.ix(t)}clearMarkers(){return this.Jh.Nx()}}function Kr(t,i={}){return new Yr(t,new jr(i))}const Gr={...e,color:\"#2196f3\"};function Zr(){return\"5.2.1\"}export{qe as AreaSeries,Ze as BarSeries,Ue as BaselineSeries,Qe as CandlestickSeries,$i as ColorType,K as CrosshairMode,nr as HistogramSeries,Hi as LastPriceAnimationMode,ye as LineSeries,h as LineStyle,r as LineType,It as MismatchDirection,Ui as PriceLineSource,bi as PriceScaleMode,ji as TickMarkType,Wi as TrackingModeExitMode,le as createChart,ae as createChartEx,gr as createImageWatermark,Ee as createOptionsChart,Nr as createSeriesMarkers,dr as createTextWatermark,Kr as createUpDownMarkers,Ie as createYieldCurveChart,Gr as customSeriesDefaultOptions,oe as defaultHorzScaleBehavior,Ki as isBusinessDay,Gi as isUTCTimestamp,Zr as version};\n","//#region src/engine.ts\nconst DEFAULT_INITIAL_CAPITAL = 1e5;\nconst DEFAULT_FEE_RATE = .001;\nconst MS_PER_YEAR = 315576e5;\n/** 推断一年的 bar 根数(根据相邻 K 线平均时间间隔)。 */\nfunction estimateBarsPerYear(bars) {\n\tif (bars.length < 2) return 250;\n\tconst totalSpan = bars[bars.length - 1].openTime - bars[0].openTime;\n\tif (totalSpan <= 0) return 250;\n\tconst avgInterval = totalSpan / (bars.length - 1);\n\tif (avgInterval <= 0) return 250;\n\tconst barsPerYear = MS_PER_YEAR / avgInterval;\n\treturn Math.max(1, Math.min(barsPerYear, 525600));\n}\nfunction run(bars, strategy, paramsOverride = {}, options = {}) {\n\tconst initialCapital = options.initialCapital ?? DEFAULT_INITIAL_CAPITAL;\n\tconst feeRate = options.feeRate ?? DEFAULT_FEE_RATE;\n\tconst slippage = options.slippage ?? 0;\n\tif (!bars || bars.length === 0) return {\n\t\tsignals: [],\n\t\ttrades: [],\n\t\tequity: [],\n\t\tmetrics: {\n\t\t\ttotalReturn: 0,\n\t\t\tcagr: 0,\n\t\t\tmaxDrawdown: 0,\n\t\t\tsharpe: 0,\n\t\t\twinRate: 0,\n\t\t\tprofitFactor: 0,\n\t\t\ttradeCount: 0,\n\t\t\texposure: 0\n\t\t},\n\t\tinitialCapital,\n\t\tfinalCapital: initialCapital\n\t};\n\tconst resolvedParams = {};\n\tfor (const p of strategy.params) resolvedParams[p.key] = paramsOverride[p.key] ?? p.default;\n\tconst signals = strategy.compute(bars, resolvedParams);\n\tconst signalMap = /* @__PURE__ */ new Map();\n\tfor (const s of signals) if (s.index >= 0 && s.index < bars.length) signalMap.set(s.index, s);\n\tlet cash = initialCapital;\n\tlet shares = 0;\n\tlet position = \"flat\";\n\tlet entryIndex = -1;\n\tlet entryTime = 0;\n\tlet entryPrice = 0;\n\tlet entryCashCost = 0;\n\tlet totalHoldingBars = 0;\n\tconst trades = [];\n\tconst equityPoints = [];\n\tlet peakEquity = initialCapital;\n\tlet maxDrawdown = 0;\n\tfor (let i = 0; i < bars.length; i++) {\n\t\tconst currentBar = bars[i];\n\t\tif (i > 0) {\n\t\t\tconst prevSignal = signalMap.get(i - 1);\n\t\t\tif (prevSignal) {\n\t\t\t\tif (prevSignal.action === \"entry\" && position === \"flat\") {\n\t\t\t\t\tconst executedBuyPrice = currentBar.open * (1 + slippage);\n\t\t\t\t\tif (executedBuyPrice > 0) {\n\t\t\t\t\t\tconst costPerShare = executedBuyPrice * (1 + feeRate);\n\t\t\t\t\t\tshares = cash / costPerShare;\n\t\t\t\t\t\tentryCashCost = cash;\n\t\t\t\t\t\tcash = 0;\n\t\t\t\t\t\tposition = \"long\";\n\t\t\t\t\t\tentryIndex = i;\n\t\t\t\t\t\tentryTime = currentBar.openTime;\n\t\t\t\t\t\tentryPrice = executedBuyPrice;\n\t\t\t\t\t}\n\t\t\t\t} else if (prevSignal.action === \"exit\" && position === \"long\") {\n\t\t\t\t\tconst executedSellPrice = currentBar.open * (1 - slippage);\n\t\t\t\t\tconst netCash = shares * executedSellPrice * (1 - feeRate);\n\t\t\t\t\tconst profit = netCash - entryCashCost;\n\t\t\t\t\tconst returnPercent = (executedSellPrice / entryPrice * (1 - feeRate) / (1 + feeRate) - 1) * 100;\n\t\t\t\t\tconst holdingBars = i - entryIndex;\n\t\t\t\t\ttrades.push({\n\t\t\t\t\t\tentryIndex,\n\t\t\t\t\t\tentryTime,\n\t\t\t\t\t\tentryPrice,\n\t\t\t\t\t\texitIndex: i,\n\t\t\t\t\t\texitTime: currentBar.openTime,\n\t\t\t\t\t\texitPrice: executedSellPrice,\n\t\t\t\t\t\treturnPercent,\n\t\t\t\t\t\tprofit,\n\t\t\t\t\t\tholdingBars,\n\t\t\t\t\t\texitReason: prevSignal.reason,\n\t\t\t\t\t\t...prevSignal.reasonKey !== void 0 ? { exitReasonKey: prevSignal.reasonKey } : {},\n\t\t\t\t\t\t...prevSignal.reasonParams !== void 0 ? { exitReasonParams: prevSignal.reasonParams } : {}\n\t\t\t\t\t});\n\t\t\t\t\tcash = netCash;\n\t\t\t\t\tshares = 0;\n\t\t\t\t\tposition = \"flat\";\n\t\t\t\t\tentryIndex = -1;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tif (position === \"long\") totalHoldingBars += 1;\n\t\tlet currentEquity;\n\t\tif (position === \"long\") currentEquity = shares * currentBar.close * (1 - feeRate);\n\t\telse currentEquity = cash;\n\t\tif (currentEquity > peakEquity) peakEquity = currentEquity;\n\t\tconst currentDrawdown = peakEquity > 0 ? (currentEquity - peakEquity) / peakEquity * 100 : 0;\n\t\tif (currentDrawdown < maxDrawdown) maxDrawdown = currentDrawdown;\n\t\tequityPoints.push({\n\t\t\ttime: currentBar.openTime,\n\t\t\tequity: currentEquity,\n\t\t\tdrawdownPercent: currentDrawdown\n\t\t});\n\t}\n\tconst finalCapital = equityPoints[equityPoints.length - 1]?.equity ?? initialCapital;\n\tconst totalReturn = (finalCapital - initialCapital) / initialCapital * 100;\n\tconst tradeCount = trades.length;\n\tconst winningTrades = trades.filter((t) => t.profit > 0);\n\tconst winRate = tradeCount > 0 ? winningTrades.length / tradeCount * 100 : 0;\n\tconst totalWinAmount = trades.filter((t) => t.profit > 0).reduce((sum, t) => sum + t.profit, 0);\n\tconst totalLossAmount = trades.filter((t) => t.profit < 0).reduce((sum, t) => sum + Math.abs(t.profit), 0);\n\tlet profitFactor = 0;\n\tif (totalLossAmount === 0) profitFactor = totalWinAmount > 0 ? Infinity : 0;\n\telse profitFactor = totalWinAmount / totalLossAmount;\n\tconst exposure = bars.length > 0 ? totalHoldingBars / bars.length * 100 : 0;\n\tlet cagr = 0;\n\tif (bars.length > 1) {\n\t\tconst years = (bars[bars.length - 1].openTime - bars[0].openTime) / MS_PER_YEAR;\n\t\tif (years > .01 && finalCapital > 0) cagr = (Math.pow(finalCapital / initialCapital, 1 / years) - 1) * 100;\n\t\telse if (finalCapital <= 0) cagr = -100;\n\t}\n\tlet sharpe = 0;\n\tif (equityPoints.length > 1) {\n\t\tconst returns = [];\n\t\tfor (let k = 1; k < equityPoints.length; k++) {\n\t\t\tconst prev = equityPoints[k - 1].equity;\n\t\t\tconst curr = equityPoints[k].equity;\n\t\t\tif (prev > 0) returns.push((curr - prev) / prev);\n\t\t\telse returns.push(0);\n\t\t}\n\t\tif (returns.length > 1) {\n\t\t\tconst mean = returns.reduce((sum, r) => sum + r, 0) / returns.length;\n\t\t\tconst variance = returns.reduce((sum, r) => sum + Math.pow(r - mean, 2), 0) / (returns.length - 1);\n\t\t\tconst stdev = Math.sqrt(variance);\n\t\t\tif (stdev > 0) {\n\t\t\t\tconst annualFactor = Math.sqrt(estimateBarsPerYear(bars));\n\t\t\t\tsharpe = mean / stdev * annualFactor;\n\t\t\t}\n\t\t}\n\t}\n\treturn {\n\t\tsignals,\n\t\ttrades,\n\t\tequity: equityPoints,\n\t\tmetrics: {\n\t\t\ttotalReturn,\n\t\t\tcagr,\n\t\t\tmaxDrawdown,\n\t\t\tsharpe,\n\t\t\twinRate,\n\t\t\tprofitFactor,\n\t\t\ttradeCount,\n\t\t\texposure\n\t\t},\n\t\tinitialCapital,\n\t\tfinalCapital\n\t};\n}\n//#endregion\nexport { run };\n","//#region src/price-format.ts\n/**\n* 标的价格显示小数位(自适应,全局显示约定单一来源):\n* ≥1 默认 2 位;当 2 位舍入会丢失第 3 位有效小数(如港股 0.001 tick、\n* 低价权证/债券)时升到 3 位;<1 按量级 4/6 位(低价加密对)。\n* 1e-9 容差只滤浮点表示噪声——常规价位下它比第 3 位小数量级低多个数量级。\n*\n* client-ui-trading / client-ui-strategies 经本包复用同一规则;范式策略的\n* compute 因需自包含(compute.toString() 导出可编译源码)内联同式实现,\n* 两处改动必须同步。\n*/\nfunction priceDigits(value) {\n\tif (value === void 0 || !Number.isFinite(value)) return 2;\n\tconst abs = Math.abs(value);\n\tif (abs < 1) return abs >= .01 ? 4 : 6;\n\tconst rounded = Number(value.toFixed(2));\n\treturn Math.abs(rounded - value) < 1e-9 ? 2 : 3;\n}\n/** 价格文本:undefined/NaN → '—',否则按 priceDigits 定点舍入。 */\nfunction fmtPrice(value) {\n\tif (value === void 0 || !Number.isFinite(value)) return \"—\";\n\treturn value.toFixed(priceDigits(value));\n}\n//#endregion\nexport { fmtPrice, priceDigits };\n","//#region src/validate.ts\nconst ID_PATTERN = /^[a-z0-9_]{2,32}$/;\nconst PARAM_KEY_PATTERN = /^[a-zA-Z0-9_]{1,16}$/;\nconst MAX_SOURCE_LENGTH = 16384;\nconst MAX_PARAMS_COUNT = 8;\nconst RESERVED_IDS = /* @__PURE__ */ new Set([\n\t\"ma\",\n\t\"ema\",\n\t\"boll\",\n\t\"macd\",\n\t\"rsi\",\n\t\"kdj\"\n]);\n/**\n* 试算超时默认值(毫秒)。试算本身是 30 根 K 线的纯计算,正常耗时在微秒级;\n* 100ms 只作死循环熔断,不是性能阈值——issue #88:Windows CI(2 vCPU)上\n* `pnpm -r test` 全包并行时进程被抢占,墙钟偶发超过 100ms 导致合法指标被误判\n* 超时。入口(两个校验器 + validateCustomIndicatorNode + 两个工具工厂)\n* 可注入 trialTimeoutMs 放宽;死循环保护由显式用例覆盖,不依赖本默认值。\n*/\nconst DEFAULT_TRIAL_TIMEOUT_MS = 100;\n/**\n* Worker 启动兜底(毫秒)。WebKit 上新建 Worker + 编译 blob 脚本是几十到上百毫秒,\n* 且这段属于环境开销而不是指标代码的耗时——试算超时只从 Worker 报到 start 之后算,\n* 这里给启动本身留足余量,同时不让它无限挂着。\n*/\nconst WORKER_STARTUP_TIMEOUT_MS = 1e4;\n/** 生成特征测试 K 线序列。 */\nfunction createSampleBars() {\n\tconst baseTime = 17e11;\n\tconst minute = 6e4;\n\treturn {\n\t\tuptrend: Array.from({ length: 30 }, (_, i) => {\n\t\t\tconst open = 100 + i * 2;\n\t\t\tconst close = open + 1.5;\n\t\t\treturn {\n\t\t\t\topenTime: baseTime + i * minute,\n\t\t\t\topen,\n\t\t\t\thigh: close + 1,\n\t\t\t\tlow: open - .5,\n\t\t\t\tclose,\n\t\t\t\tvolume: 1e3 + i * 50\n\t\t\t};\n\t\t}),\n\t\tdowntrend: Array.from({ length: 30 }, (_, i) => {\n\t\t\tconst open = 200 - i * 2.5;\n\t\t\tconst close = open - 2;\n\t\t\treturn {\n\t\t\t\topenTime: baseTime + i * minute,\n\t\t\t\topen,\n\t\t\t\thigh: open + .5,\n\t\t\t\tlow: close - 1,\n\t\t\t\tclose,\n\t\t\t\tvolume: 2e3 - i * 30\n\t\t\t};\n\t\t}),\n\t\tflat: Array.from({ length: 30 }, (_, i) => {\n\t\t\tconst delta = (i % 2 === 0 ? 1 : -1) * (i % 3 === 0 ? .8 : .2);\n\t\t\tconst open = 150;\n\t\t\tconst close = open + delta;\n\t\t\treturn {\n\t\t\t\topenTime: baseTime + i * minute,\n\t\t\t\topen,\n\t\t\t\thigh: Math.max(open, close) + .5,\n\t\t\t\tlow: Math.min(open, close) - .5,\n\t\t\t\tclose,\n\t\t\t\tvolume: 1500\n\t\t\t};\n\t\t}),\n\t\tgap: Array.from({ length: 15 }, (_, i) => {\n\t\t\tconst jump = i === 7 ? 30 : 0;\n\t\t\tconst open = 100 + i * 2 + jump;\n\t\t\tconst close = open + 1;\n\t\t\treturn {\n\t\t\t\topenTime: baseTime + i * minute,\n\t\t\t\topen,\n\t\t\t\thigh: close + 2,\n\t\t\t\tlow: open - 1,\n\t\t\t\tclose,\n\t\t\t\tvolume: 3e3\n\t\t\t};\n\t\t}),\n\t\tshort: [\n\t\t\t{\n\t\t\t\topenTime: baseTime,\n\t\t\t\topen: 100,\n\t\t\t\thigh: 102,\n\t\t\t\tlow: 99,\n\t\t\t\tclose: 101,\n\t\t\t\tvolume: 500\n\t\t\t},\n\t\t\t{\n\t\t\t\topenTime: 170000006e4,\n\t\t\t\topen: 101,\n\t\t\t\thigh: 104,\n\t\t\t\tlow: 100,\n\t\t\t\tclose: 103,\n\t\t\t\tvolume: 600\n\t\t\t},\n\t\t\t{\n\t\t\t\topenTime: 170000012e4,\n\t\t\t\topen: 103,\n\t\t\t\thigh: 105,\n\t\t\t\tlow: 102,\n\t\t\t\tclose: 102,\n\t\t\t\tvolume: 550\n\t\t\t}\n\t\t]\n\t};\n}\n/** 将源码解析为可执行纯函数。 */\nfunction compileComputeSource(source) {\n\tconst trimmed = source.trim();\n\tif (/^(?:\\([a-zA-Z0-9_,\\s]*\\)|[a-zA-Z0-9_]+)\\s*=>/.test(trimmed) || /^function\\b/.test(trimmed)) return new Function(`\"use strict\"; return (${trimmed});`)();\n\treturn new Function(\"bars\", \"params\", `\"use strict\";\\n${trimmed}`);\n}\n/** 默认浏览器纯 JS runner。 */\nconst defaultJsRunner = (source, bars, params) => {\n\treturn compileComputeSource(source)(bars, params);\n};\n/**\n* blob Worker 内执行的编译+试算脚本(自包含,不依赖宿主任何模块)。\n* 与 compileComputeSource 同构的第三处实现——Worker 内无法 import,镜像不可避免;\n* 形态嗅探正则与编译语义改动必须同步本段(单一事实来源 = compileComputeSource)。\n*/\nconst WORKER_TRIAL_SCRIPT = `self.onmessage = (event) => {\n const { source, bars, params } = event.data\n try {\n // 先报一声\"开始算了\",主线程据此才起超时计时:Worker 的创建与脚本编译在 WebKit\n // 上是几十到上百毫秒,算作执行时间会把合法指标误判成死循环。\n self.postMessage({ phase: 'start' })\n const trimmed = String(source).trim()\n let fn\n if (/^(?:\\\\([a-zA-Z0-9_,\\\\s]*\\\\)|[a-zA-Z0-9_]+)\\\\s*=>/.test(trimmed) || /^function\\\\b/.test(trimmed)) {\n fn = (new Function('\"use strict\"; return (' + trimmed + ');'))()\n } else {\n fn = new Function('bars', 'params', '\"use strict\";\\\\n' + trimmed)\n }\n const result = fn(bars, params)\n self.postMessage({ ok: true, result })\n } catch (error) {\n self.postMessage({ ok: false, message: String((error && error.message) || error) })\n }\n}`;\n/**\n* 浏览器端 Worker 超时 runner(issue #31):compute 源码在 blob URL Worker 内\n* 编译执行,主线程超时即 terminate——补 new Function 裸执行「死循环卡死主线程」\n* 的缺口(策略校验与指标异步校验共用)。非浏览器环境(Node)回退同步直执行\n* (无熔断;Node 侧应传 vm 熔断 runner)。\n*/\nfunction workerComputeRunner(computeSource, bars, params, timeoutMs = 100) {\n\tif (typeof Worker === \"undefined\" || typeof Blob === \"undefined\" || typeof URL === \"undefined\") try {\n\t\tconst fn = compileComputeSource(computeSource);\n\t\treturn Promise.resolve(fn(bars, params));\n\t} catch (error) {\n\t\treturn Promise.reject(error);\n\t}\n\treturn new Promise((resolve, reject) => {\n\t\tconst blob = new Blob([WORKER_TRIAL_SCRIPT], { type: \"text/javascript\" });\n\t\tconst url = URL.createObjectURL(blob);\n\t\tconst worker = new Worker(url);\n\t\tlet settled = false;\n\t\t/** 当前生效的计时器:先是启动兜底,收到 Worker 的 start 后换成 compute 超时。 */\n\t\tlet timer;\n\t\tconst arm = (action, ms) => {\n\t\t\tif (timer !== void 0) clearTimeout(timer);\n\t\t\ttimer = setTimeout(action, ms);\n\t\t};\n\t\tconst finish = (action) => {\n\t\t\tif (settled) return;\n\t\t\tsettled = true;\n\t\t\tif (timer !== void 0) clearTimeout(timer);\n\t\t\tworker.terminate();\n\t\t\tURL.revokeObjectURL(url);\n\t\t\taction();\n\t\t};\n\t\tarm(() => {\n\t\t\tfinish(() => reject(/* @__PURE__ */ new Error(\"compute 试算环境没有起来(Worker 启动超时)\")));\n\t\t}, WORKER_STARTUP_TIMEOUT_MS);\n\t\tworker.onmessage = (event) => {\n\t\t\tconst data = event.data;\n\t\t\tif (data.phase === \"start\") {\n\t\t\t\tarm(() => {\n\t\t\t\t\tfinish(() => reject(/* @__PURE__ */ new Error(`compute 执行超时(超过 ${timeoutMs}ms),可能存在死循环(如 while/for 未退出)`)));\n\t\t\t\t}, timeoutMs);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tfinish(() => {\n\t\t\t\tif (data.ok) resolve(data.result);\n\t\t\t\telse reject(new Error(data.message ?? \"compute 执行失败\"));\n\t\t\t});\n\t\t};\n\t\tworker.onerror = (event) => {\n\t\t\tfinish(() => reject(new Error(String(event.message ?? \"worker 执行失败\"))));\n\t\t};\n\t\tworker.postMessage({\n\t\t\tsource: computeSource,\n\t\t\tbars: [...bars],\n\t\t\tparams: { ...params }\n\t\t});\n\t});\n}\n/**\n* 结构与语法校验(检查 1-6,无试算)——sync / async(Worker 熔断)校验器共用。\n*/\nfunction checkCustomIndicatorStructure(raw) {\n\tif (typeof raw !== \"object\" || raw === null) return {\n\t\tok: false,\n\t\treason: \"指标配置必须是一个非空对象\"\n\t};\n\tconst input = raw;\n\tconst id = typeof input.id === \"string\" ? input.id.trim().toLowerCase() : \"\";\n\tif (!id) return {\n\t\tok: false,\n\t\treason: \"缺少指标 id\"\n\t};\n\tif (!ID_PATTERN.test(id)) return {\n\t\tok: false,\n\t\treason: `指标 id \"${id}\" 不合法:必须由 2-32 位小写字母、数字或下划线组成`\n\t};\n\tif (RESERVED_IDS.has(id)) return {\n\t\tok: false,\n\t\treason: `指标 id \"${id}\" 是系统预置保留名称,请使用其他名称(如 custom_${id})`\n\t};\n\tconst title = typeof input.title === \"string\" ? input.title.trim() : \"\";\n\tif (!title || title.length > 32) return {\n\t\tok: false,\n\t\treason: \"指标 title 必须是 1-32 字符的非空字符串\"\n\t};\n\tconst pane = input.pane;\n\tif (pane !== \"main\" && pane !== \"sub\") return {\n\t\tok: false,\n\t\treason: `指标 pane 必须是 \"main\"(主图叠加)或 \"sub\"(副图),收到: ${JSON.stringify(input.pane)}`\n\t};\n\tconst params = [];\n\tif (input.params !== void 0) {\n\t\tif (!Array.isArray(input.params)) return {\n\t\t\tok: false,\n\t\t\treason: \"指标 params 必须是数组\"\n\t\t};\n\t\tif (input.params.length > MAX_PARAMS_COUNT) return {\n\t\t\tok: false,\n\t\t\treason: `指标 params 数量超出上限(至多 ${MAX_PARAMS_COUNT} 个参数)`\n\t\t};\n\t\tfor (let index = 0; index < input.params.length; index++) {\n\t\t\tconst p = input.params[index];\n\t\t\tif (typeof p !== \"object\" || p === null) return {\n\t\t\t\tok: false,\n\t\t\t\treason: `params[${index}] 必须是一个对象`\n\t\t\t};\n\t\t\tconst key = typeof p.key === \"string\" ? p.key.trim() : \"\";\n\t\t\tif (!PARAM_KEY_PATTERN.test(key)) return {\n\t\t\t\tok: false,\n\t\t\t\treason: `params[${index}].key \"${key}\" 不合法:必须是 1-16 位字母数字或下划线`\n\t\t\t};\n\t\t\tconst label = typeof p.label === \"string\" ? p.label.trim() : key;\n\t\t\tconst defVal = Number(p.default);\n\t\t\tconst minVal = Number(p.min);\n\t\t\tconst maxVal = Number(p.max);\n\t\t\tif (!Number.isFinite(defVal) || !Number.isFinite(minVal) || !Number.isFinite(maxVal)) return {\n\t\t\t\tok: false,\n\t\t\t\treason: `params[${index}] (${key}) 的 default、min、max 必须是有限数字`\n\t\t\t};\n\t\t\tif (minVal >= maxVal) return {\n\t\t\t\tok: false,\n\t\t\t\treason: `params[${index}] (${key}) 的 min (${minVal}) 必须严格小于 max (${maxVal})`\n\t\t\t};\n\t\t\tif (defVal < minVal || defVal > maxVal) return {\n\t\t\t\tok: false,\n\t\t\t\treason: `params[${index}] (${key}) 的 default (${defVal}) 必须在 [min, max] (${minVal}..${maxVal}) 范围内`\n\t\t\t};\n\t\t\tparams.push({\n\t\t\t\tkey,\n\t\t\t\tlabel,\n\t\t\t\tdefault: defVal,\n\t\t\t\tmin: minVal,\n\t\t\t\tmax: maxVal\n\t\t\t});\n\t\t}\n\t}\n\tconst computeSource = typeof input.computeSource === \"string\" ? input.computeSource.trim() : \"\";\n\tif (!computeSource) return {\n\t\tok: false,\n\t\treason: \"缺少 computeSource 源码\"\n\t};\n\tif (computeSource.length > MAX_SOURCE_LENGTH) return {\n\t\tok: false,\n\t\treason: `computeSource 源码长度 (${computeSource.length} B) 超出限制 (${MAX_SOURCE_LENGTH} B / 16KB)`\n\t};\n\ttry {\n\t\tcompileComputeSource(computeSource);\n\t} catch (error) {\n\t\treturn {\n\t\t\tok: false,\n\t\t\treason: `源码语法错误或无法编译: ${String(error?.message ?? error)}`\n\t\t};\n\t}\n\tconst defaultParamsMap = {};\n\tfor (const p of params) defaultParamsMap[p.key] = p.default;\n\treturn {\n\t\tok: true,\n\t\tid,\n\t\ttitle,\n\t\tpane,\n\t\tparams,\n\t\tcomputeSource,\n\t\tdefaultParamsMap,\n\t\tinput\n\t};\n}\n/** 试算输出的形状与逐点校验(sync/async 共用);返回 undefined = 通过。 */\nfunction checkIndicatorTrialOutputs(outputs, barsLength) {\n\tif (!Array.isArray(outputs)) return `compute 返回值必须是 IndicatorOutput[] 数组,实际返回类型为: ${typeof outputs}`;\n\tif (outputs.length === 0) return \"compute 返回的 IndicatorOutput[] 数组不能为空(至少需要一个输出系列)\";\n\tif (outputs.length > 8) return `compute 返回的输出系列过多 (${outputs.length} > 8)`;\n\tfor (let outIdx = 0; outIdx < outputs.length; outIdx++) {\n\t\tconst output = outputs[outIdx];\n\t\tif (typeof output !== \"object\" || output === null) return `outputs[${outIdx}] 必须是非空对象`;\n\t\tif (typeof output.key !== \"string\" || !output.key.trim()) return `outputs[${outIdx}].key 必须是非空字符串`;\n\t\tif (output.kind !== \"line\" && output.kind !== \"histogram\" && output.kind !== \"area\") return `outputs[${outIdx}].kind 必须是 \"line\"、\"histogram\" 或 \"area\"`;\n\t\tif (typeof output.color !== \"string\" || !output.color.trim()) return `outputs[${outIdx}].color 必须是非空颜色字符串`;\n\t\tif (!Array.isArray(output.values)) return `outputs[${outIdx}].values 必须是数组`;\n\t\tif (output.values.length !== barsLength) return `outputs[${outIdx}] (${output.key}) 的 values 长度 (${output.values.length}) 与输入的 bars 长度 (${barsLength}) 不一致(必须逐条对齐)`;\n\t\tfor (let valIdx = 0; valIdx < output.values.length; valIdx++) {\n\t\t\tconst v = output.values[valIdx];\n\t\t\tif (v === void 0) continue;\n\t\t\tif (typeof v !== \"number\" || !Number.isFinite(v)) return `outputs[${outIdx}] (${output.key}) 在下标 ${valIdx} 处包含非法数值: ${String(v)}(只允许有限数字或 undefined 作为 warm-up)`;\n\t\t}\n\t}\n}\nfunction validateCustomIndicator(raw, options) {\n\tconst checked = checkCustomIndicatorStructure(raw);\n\tif (!checked.ok) return checked;\n\tconst { id, title, pane, params, computeSource, defaultParamsMap, input } = checked;\n\tconst sampleScenarios = createSampleBars();\n\tconst scenarioNames = [\n\t\t\"uptrend\",\n\t\t\"downtrend\",\n\t\t\"flat\",\n\t\t\"gap\",\n\t\t\"short\"\n\t];\n\tconst runner = options?.runner ?? defaultJsRunner;\n\tconst trialTimeoutMs = options?.trialTimeoutMs ?? 100;\n\tfor (const scenario of scenarioNames) {\n\t\tconst bars = sampleScenarios[scenario];\n\t\tlet outputs;\n\t\ttry {\n\t\t\toutputs = runner(computeSource, bars, defaultParamsMap, trialTimeoutMs);\n\t\t} catch (error) {\n\t\t\treturn {\n\t\t\t\tok: false,\n\t\t\t\treason: `在 ${scenario} 样例数据上试算执行报错: ${String(error?.message ?? error)}`\n\t\t\t};\n\t\t}\n\t\tconst outputReason = checkIndicatorTrialOutputs(outputs, bars.length);\n\t\tif (outputReason !== void 0) return {\n\t\t\tok: false,\n\t\t\treason: outputReason\n\t\t};\n\t}\n\treturn {\n\t\tok: true,\n\t\tdefinition: {\n\t\t\tid,\n\t\t\ttitle,\n\t\t\tpane,\n\t\t\tparams,\n\t\t\tcompute: compileComputeSource(computeSource)\n\t\t},\n\t\trecord: {\n\t\t\tid,\n\t\t\ttitle,\n\t\t\tpane,\n\t\t\tparams,\n\t\t\tcomputeSource,\n\t\t\tcreatedAt: typeof input.createdAt === \"number\" ? input.createdAt : Date.now(),\n\t\t\tdescription: typeof input.description === \"string\" ? input.description.trim() : void 0\n\t\t}\n\t};\n}\n/**\n* 异步版校验器(issue #31):结构与语法校验与同步版同源(checkCustomIndicatorStructure),\n* 试算走可等待 runner——默认 Worker 超时熔断(workerComputeRunner),补浏览器端\n* new Function 裸执行「死循环卡死主线程」的既知缺口。Node 宿主侧继续用\n* validateCustomIndicatorNode(vm 熔断,同步语义)。\n*/\nasync function validateCustomIndicatorAsync(raw, options) {\n\tconst checked = checkCustomIndicatorStructure(raw);\n\tif (!checked.ok) return checked;\n\tconst { id, title, pane, params, computeSource, defaultParamsMap, input } = checked;\n\tconst sampleScenarios = createSampleBars();\n\tconst scenarioNames = [\n\t\t\"uptrend\",\n\t\t\"downtrend\",\n\t\t\"flat\",\n\t\t\"gap\",\n\t\t\"short\"\n\t];\n\tconst runner = options?.runner ?? workerComputeRunner;\n\tconst trialTimeoutMs = options?.trialTimeoutMs ?? 100;\n\tfor (const scenario of scenarioNames) {\n\t\tconst bars = sampleScenarios[scenario];\n\t\tlet outputs;\n\t\ttry {\n\t\t\toutputs = await runner(computeSource, bars, { ...defaultParamsMap }, trialTimeoutMs);\n\t\t} catch (error) {\n\t\t\treturn {\n\t\t\t\tok: false,\n\t\t\t\treason: `在 ${scenario} 样例数据上试算执行报错: ${String(error?.message ?? error)}`\n\t\t\t};\n\t\t}\n\t\tconst outputReason = checkIndicatorTrialOutputs(outputs, bars.length);\n\t\tif (outputReason !== void 0) return {\n\t\t\tok: false,\n\t\t\treason: outputReason\n\t\t};\n\t}\n\treturn {\n\t\tok: true,\n\t\tdefinition: {\n\t\t\tid,\n\t\t\ttitle,\n\t\t\tpane,\n\t\t\tparams,\n\t\t\tcompute: compileComputeSource(computeSource)\n\t\t},\n\t\trecord: {\n\t\t\tid,\n\t\t\ttitle,\n\t\t\tpane,\n\t\t\tparams,\n\t\t\tcomputeSource,\n\t\t\tcreatedAt: typeof input.createdAt === \"number\" ? input.createdAt : Date.now(),\n\t\t\tdescription: typeof input.description === \"string\" ? input.description.trim() : void 0\n\t\t}\n\t};\n}\n//#endregion\nexport { DEFAULT_TRIAL_TIMEOUT_MS, compileComputeSource, createSampleBars, validateCustomIndicator, validateCustomIndicatorAsync, workerComputeRunner };\n","import { compileComputeSource, createSampleBars, workerComputeRunner } from \"@dshtrading/indicators\";\n//#region src/validate.ts\n/**\n* 自定义策略安全校验器(issue #31 / P2)。浏览器端与宿主两侧共用(纯库,零 Node 依赖):\n*\n* 1. 结构校验:id / title / horizon / summary / paramsJson / computeSource\n* 2. 源码体积与编译检查(16KB 上限,语法必须可编译)\n* 3. 多场景样例试算(复用 indicators 的特征 K 线:上涨/下跌/平盘/缺口/极短)\n* 4. **信号序列专用校验**(不复用指标的等长断言——信号序列语义不同):\n* - index 为整数、落在 [0, bars.length) 且严格单调递增;\n* - time 与 bars[index].openTime 逐位一致;\n* - action ∈ {entry, exit}、direction ∈ {long, flat} 且与 action 配对\n* (entry→long、exit→flat);\n* - price 为有限数且等于 bars[index].close(i 收盘确认价,浮点容差);\n* - 序列可复算:从 flat 起步、entry/exit 严格交替(exit 时必须持仓、entry\n* 时必须空仓)——与回测引擎的成交语义一致(i 收盘确认、i+1 开盘成交)。\n* 5. 可插拔 runner:浏览器默认 Worker 超时熔断(indicators 的 workerComputeRunner),\n* Node 侧传 vm 熔断 runner(validate-node.ts)。\n*/\nconst ID_PATTERN = /^[a-z0-9_][a-z0-9_-]{1,31}$/;\nconst PARAM_KEY_PATTERN = /^[a-zA-Z0-9_]{1,16}$/;\nconst MAX_SOURCE_LENGTH = 16384;\nconst MAX_PARAMS_COUNT = 8;\nconst MAX_SUMMARY_LENGTH = 120;\nconst MAX_REASON_LENGTH = 200;\nconst HORIZONS = [\n\t\"short\",\n\t\"swing\",\n\t\"long\"\n];\nconst DEFAULT_TIMEOUT_MS = 100;\n/**\n* 将策略源码解析为可执行纯函数(浏览器端 new Function;Node 侧走 vm runner 试算)。\n* 编译语义(形态嗅探 + new Function 双形态)的单一来源是 @dshtrading/indicators 的\n* compileComputeSource——此处仅按策略信号类型收窄返回值(2026-09-09 收敛同体副本)。\n*/\nconst compileStrategySource = compileComputeSource;\n/**\n* 信号序列专用校验(引擎语义对齐:i 收盘确认、i+1 开盘成交可复算)。\n* 返回 undefined = 通过;否则返回人话诊断(模型与 UI 直接可读)。\n*/\nfunction validateSignalSequence(signals, bars) {\n\tlet position = \"flat\";\n\tlet prevIndex = -1;\n\tfor (let i = 0; i < signals.length; i++) {\n\t\tconst s = signals[i];\n\t\tif (typeof s !== \"object\" || s === null) return `signals[${i}] 必须是非空对象`;\n\t\tconst signal = s;\n\t\tif (typeof signal.index !== \"number\" || !Number.isInteger(signal.index) || signal.index < 0 || signal.index >= bars.length) return `signals[${i}].index 必须是落在 [0, ${bars.length - 1}] 的整数(bar 下标),收到: ${String(signal.index)}`;\n\t\tif (signal.index <= prevIndex) return `signals[${i}].index (${signal.index}) 必须严格大于前一个信号的 index (${prevIndex})——信号按 bar 下标单调递增`;\n\t\tprevIndex = signal.index;\n\t\tif (signal.time !== bars[signal.index].openTime) return `signals[${i}].time (${String(signal.time)}) 与 bars[${signal.index}].openTime (${String(bars[signal.index].openTime)}) 不一致——信号 time 必须等于确认 bar 的 openTime`;\n\t\tif (signal.action !== \"entry\" && signal.action !== \"exit\") return `signals[${i}].action 必须是 \"entry\" 或 \"exit\",收到: ${JSON.stringify(signal.action)}`;\n\t\tif (signal.direction !== \"long\" && signal.direction !== \"flat\") return `signals[${i}].direction 必须是 \"long\" 或 \"flat\",收到: ${JSON.stringify(signal.direction)}`;\n\t\tconst expectedDirection = signal.action === \"entry\" ? \"long\" : \"flat\";\n\t\tif (signal.direction !== expectedDirection) return `signals[${i}].direction (${signal.direction}) 与 action (${signal.action}) 不配对——entry 对应 long,exit 对应 flat`;\n\t\tif (typeof signal.price !== \"number\" || !Number.isFinite(signal.price)) return `signals[${i}].price 必须是有限数字(确认时收盘价),收到: ${String(signal.price)}`;\n\t\tconst close = bars[signal.index].close;\n\t\tif (Math.abs(signal.price - close) > Math.max(1e-9, Math.abs(close) * 1e-6)) return `signals[${i}].price (${signal.price}) 与确认 bar 收盘价 (${close}) 不一致——信号在 i 收盘确认,price 必须等于 bars[i].close`;\n\t\tif (typeof signal.reason !== \"string\" || !signal.reason.trim()) return `signals[${i}].reason 必须是非空字符串(人话解释)`;\n\t\tif (signal.reason.length > MAX_REASON_LENGTH) return `signals[${i}].reason 超长(${signal.reason.length} > ${MAX_REASON_LENGTH})`;\n\t\tif (signal.action === \"entry\" && position === \"long\") return `signals[${i}] 在已持仓(前一个 entry 尚未 exit)时再次 entry——引擎不会重复开仓,序列不可复算`;\n\t\tif (signal.action === \"exit\" && position === \"flat\") return `signals[${i}] 在空仓时 exit——没有可平的头寸,序列不可复算(首信号必须是 entry)`;\n\t\tposition = signal.action === \"entry\" ? \"long\" : \"flat\";\n\t}\n}\n/**\n* 参数规格数组解析(策略/选股器校验共用):JSON 解析 → StrategyParamSpec[],\n* 保留合法正值 step(内置覆盖保存后参数步进不失真)。\n*/\nfunction parseParamSpecs(paramsJson) {\n\tif (paramsJson === void 0) return {\n\t\tok: true,\n\t\tparams: []\n\t};\n\tif (typeof paramsJson !== \"string\") return {\n\t\tok: false,\n\t\treason: \"paramsJson 必须是字符串(StrategyParamSpec[] 的 JSON)\"\n\t};\n\tlet parsed;\n\ttry {\n\t\tparsed = JSON.parse(paramsJson);\n\t} catch (error) {\n\t\treturn {\n\t\t\tok: false,\n\t\t\treason: `paramsJson 不是合法 JSON: ${String(error?.message ?? error)}`\n\t\t};\n\t}\n\tif (!Array.isArray(parsed)) return {\n\t\tok: false,\n\t\treason: \"paramsJson 解析结果必须是数组(StrategyParamSpec[])\"\n\t};\n\tif (parsed.length > MAX_PARAMS_COUNT) return {\n\t\tok: false,\n\t\treason: `策略参数数量超出上限(至多 ${MAX_PARAMS_COUNT} 个)`\n\t};\n\tconst params = [];\n\tfor (let index = 0; index < parsed.length; index++) {\n\t\tconst p = parsed[index];\n\t\tif (typeof p !== \"object\" || p === null) return {\n\t\t\tok: false,\n\t\t\treason: `paramsJson[${index}] 必须是一个对象`\n\t\t};\n\t\tconst spec = p;\n\t\tconst key = typeof spec.key === \"string\" ? spec.key.trim() : \"\";\n\t\tif (!PARAM_KEY_PATTERN.test(key)) return {\n\t\t\tok: false,\n\t\t\treason: `paramsJson[${index}].key \"${key}\" 不合法:必须是 1-16 位字母数字或下划线`\n\t\t};\n\t\tconst label = typeof spec.label === \"string\" ? spec.label.trim() : key;\n\t\tconst defVal = Number(spec.default);\n\t\tconst minVal = Number(spec.min);\n\t\tconst maxVal = Number(spec.max);\n\t\tif (!Number.isFinite(defVal) || !Number.isFinite(minVal) || !Number.isFinite(maxVal)) return {\n\t\t\tok: false,\n\t\t\treason: `paramsJson[${index}] (${key}) 的 default、min、max 必须是有限数字`\n\t\t};\n\t\tif (minVal >= maxVal) return {\n\t\t\tok: false,\n\t\t\treason: `paramsJson[${index}] (${key}) 的 min (${minVal}) 必须严格小于 max (${maxVal})`\n\t\t};\n\t\tif (defVal < minVal || defVal > maxVal) return {\n\t\t\tok: false,\n\t\t\treason: `paramsJson[${index}] (${key}) 的 default (${defVal}) 必须在 [min, max] (${minVal}..${maxVal}) 范围内`\n\t\t};\n\t\tconst stepVal = Number(spec.step);\n\t\tconst step = Number.isFinite(stepVal) && stepVal > 0 ? stepVal : 1;\n\t\tparams.push({\n\t\t\tkey,\n\t\t\tlabel,\n\t\t\tdefault: defVal,\n\t\t\tmin: minVal,\n\t\t\tmax: maxVal,\n\t\t\tstep\n\t\t});\n\t}\n\treturn {\n\t\tok: true,\n\t\tparams\n\t};\n}\n/**\n* 结构校验(无试算)——browser/node 校验器共用。\n*/\nfunction checkCustomStrategyStructure(raw) {\n\tif (typeof raw !== \"object\" || raw === null) return {\n\t\tok: false,\n\t\treason: \"策略配置必须是一个非空对象\"\n\t};\n\tconst input = raw;\n\tconst id = typeof input.id === \"string\" ? input.id.trim().toLowerCase() : \"\";\n\tif (!id) return {\n\t\tok: false,\n\t\treason: \"缺少策略 id\"\n\t};\n\tif (!ID_PATTERN.test(id)) return {\n\t\tok: false,\n\t\treason: `策略 id \"${id}\" 不合法:必须由 2-32 位小写字母、数字、下划线或连字符组成`\n\t};\n\tconst title = typeof input.title === \"string\" ? input.title.trim() : \"\";\n\tif (!title || title.length > 32) return {\n\t\tok: false,\n\t\treason: \"策略 title 必须是 1-32 字符的非空字符串\"\n\t};\n\tconst horizon = input.horizon;\n\tif (!HORIZONS.includes(horizon)) return {\n\t\tok: false,\n\t\treason: `策略 horizon 必须是 \"short\"、\"swing\" 或 \"long\",收到: ${JSON.stringify(input.horizon)}`\n\t};\n\tconst summary = typeof input.summary === \"string\" ? input.summary.trim() : \"\";\n\tif (!summary || summary.length > MAX_SUMMARY_LENGTH) return {\n\t\tok: false,\n\t\treason: `策略 summary 必须是 1-${MAX_SUMMARY_LENGTH} 字符的非空字符串`\n\t};\n\tconst params = parseParamSpecs(input.paramsJson);\n\tif (!params.ok) return params;\n\tconst computeSource = typeof input.computeSource === \"string\" ? input.computeSource.trim() : \"\";\n\tif (!computeSource) return {\n\t\tok: false,\n\t\treason: \"缺少 computeSource 源码\"\n\t};\n\tif (computeSource.length > MAX_SOURCE_LENGTH) return {\n\t\tok: false,\n\t\treason: `computeSource 源码长度 (${computeSource.length} B) 超出限制 (${MAX_SOURCE_LENGTH} B / 16KB)`\n\t};\n\ttry {\n\t\tcompileStrategySource(computeSource);\n\t} catch (error) {\n\t\treturn {\n\t\t\tok: false,\n\t\t\treason: `源码语法错误或无法编译: ${String(error?.message ?? error)}`\n\t\t};\n\t}\n\treturn {\n\t\tok: true,\n\t\tid,\n\t\ttitle,\n\t\thorizon,\n\t\tsummary,\n\t\tparams: params.params,\n\t\tcomputeSource,\n\t\tinput\n\t};\n}\n/**\n* 自定义策略校验(异步——试算走可等待 runner,默认浏览器 Worker 超时熔断;\n* Node 宿主侧传 validate-node.ts 的 vm 熔断 runner)。\n*/\nasync function validateCustomStrategy(raw, options) {\n\tconst checked = checkCustomStrategyStructure(raw);\n\tif (!checked.ok) return checked;\n\tconst { id, title, horizon, summary, params, computeSource, input } = checked;\n\tconst sampleScenarios = createSampleBars();\n\tconst scenarioNames = [\n\t\t\"uptrend\",\n\t\t\"downtrend\",\n\t\t\"flat\",\n\t\t\"gap\",\n\t\t\"short\"\n\t];\n\tconst runner = options?.runner ?? workerComputeRunner;\n\tconst defaultParamsMap = {};\n\tfor (const p of params) defaultParamsMap[p.key] = p.default;\n\tfor (const scenario of scenarioNames) {\n\t\tconst bars = sampleScenarios[scenario];\n\t\tlet signals;\n\t\ttry {\n\t\t\tsignals = await runner(computeSource, bars, { ...defaultParamsMap }, DEFAULT_TIMEOUT_MS);\n\t\t} catch (error) {\n\t\t\treturn {\n\t\t\t\tok: false,\n\t\t\t\treason: `在 ${scenario} 样例数据上试算执行报错: ${String(error?.message ?? error)}`\n\t\t\t};\n\t\t}\n\t\tif (!Array.isArray(signals)) return {\n\t\t\tok: false,\n\t\t\treason: `compute 返回值必须是 StrategySignal[] 数组,${scenario} 场景实际返回类型为: ${typeof signals}`\n\t\t};\n\t\tconst sequenceReason = validateSignalSequence(signals, bars);\n\t\tif (sequenceReason !== void 0) return {\n\t\t\tok: false,\n\t\t\treason: `信号序列校验失败(${scenario} 场景): ${sequenceReason}`\n\t\t};\n\t}\n\treturn {\n\t\tok: true,\n\t\tdefinition: {\n\t\t\tid,\n\t\t\thorizon,\n\t\t\tname: title,\n\t\t\tsummary,\n\t\t\tparams,\n\t\t\tcompute: compileStrategySource(computeSource)\n\t\t},\n\t\trecord: {\n\t\t\tid,\n\t\t\ttitle,\n\t\t\thorizon,\n\t\t\tsummary,\n\t\t\tparamsJson: JSON.stringify(params),\n\t\t\tcomputeSource,\n\t\t\tcreatedAt: typeof input.createdAt === \"number\" ? input.createdAt : Date.now()\n\t\t}\n\t};\n}\n/** 选股器 id:强制 'scr.' 前缀与范式策略 id 空间隔离(内置 id 同形,可覆盖)。 */\nconst SCREENER_ID_PATTERN = /^scr\\.[a-z0-9_][a-z0-9_-]{1,31}$/;\nconst MAX_COLUMNS_COUNT = 8;\n/**\n* 结构校验(无试算):id / title / summary / paramsJson / columnsJson / evaluateSource。\n* evaluate 与 compute 同为 (bars, params) 纯函数,编译走同一 compileStrategySource。\n*/\nfunction checkCustomScreenerStructure(raw) {\n\tif (typeof raw !== \"object\" || raw === null) return {\n\t\tok: false,\n\t\treason: \"选股器配置必须是一个非空对象\"\n\t};\n\tconst input = raw;\n\tconst id = typeof input.id === \"string\" ? input.id.trim().toLowerCase() : \"\";\n\tif (!id) return {\n\t\tok: false,\n\t\treason: \"缺少选股器 id\"\n\t};\n\tif (!SCREENER_ID_PATTERN.test(id)) return {\n\t\tok: false,\n\t\treason: `选股器 id \"${id}\" 不合法:必须以 \"scr.\" 开头,后接 2-32 位小写字母、数字、下划线或连字符`\n\t};\n\tconst title = typeof input.title === \"string\" ? input.title.trim() : \"\";\n\tif (!title || title.length > 32) return {\n\t\tok: false,\n\t\treason: \"选股器 title 必须是 1-32 字符的非空字符串\"\n\t};\n\tconst summary = typeof input.summary === \"string\" ? input.summary.trim() : \"\";\n\tif (!summary || summary.length > MAX_SUMMARY_LENGTH) return {\n\t\tok: false,\n\t\treason: `选股器 summary 必须是 1-${MAX_SUMMARY_LENGTH} 字符的非空字符串`\n\t};\n\tconst params = parseParamSpecs(input.paramsJson);\n\tif (!params.ok) return params;\n\tlet columns = [];\n\tif (typeof input.columnsJson !== \"string\" || !input.columnsJson.trim()) return {\n\t\tok: false,\n\t\treason: \"缺少 columnsJson(ScreenerColumnSpec[] 的 JSON,至少 1 列)\"\n\t};\n\tlet parsedColumns;\n\ttry {\n\t\tparsedColumns = JSON.parse(input.columnsJson);\n\t} catch (error) {\n\t\treturn {\n\t\t\tok: false,\n\t\t\treason: `columnsJson 不是合法 JSON: ${String(error?.message ?? error)}`\n\t\t};\n\t}\n\tif (!Array.isArray(parsedColumns) || parsedColumns.length === 0) return {\n\t\tok: false,\n\t\treason: \"columnsJson 解析结果必须是非空数组(ScreenerColumnSpec[])\"\n\t};\n\tif (parsedColumns.length > MAX_COLUMNS_COUNT) return {\n\t\tok: false,\n\t\treason: `结果列数量超出上限(至多 ${MAX_COLUMNS_COUNT} 列)`\n\t};\n\tfor (let index = 0; index < parsedColumns.length; index++) {\n\t\tconst c = parsedColumns[index];\n\t\tif (typeof c !== \"object\" || c === null) return {\n\t\t\tok: false,\n\t\t\treason: `columnsJson[${index}] 必须是一个对象`\n\t\t};\n\t\tconst spec = c;\n\t\tconst key = typeof spec.key === \"string\" ? spec.key.trim() : \"\";\n\t\tif (!PARAM_KEY_PATTERN.test(key)) return {\n\t\t\tok: false,\n\t\t\treason: `columnsJson[${index}].key \"${key}\" 不合法:必须是 1-16 位字母数字或下划线`\n\t\t};\n\t\tconst label = typeof spec.label === \"string\" ? spec.label.trim() : key;\n\t\tconst format = spec.format === \"percent\" || spec.format === \"number\" ? spec.format : void 0;\n\t\tcolumns.push(format === void 0 ? {\n\t\t\tkey,\n\t\t\tlabel\n\t\t} : {\n\t\t\tkey,\n\t\t\tlabel,\n\t\t\tformat\n\t\t});\n\t}\n\tif (new Set(columns.map((c) => c.key)).size !== columns.length) return {\n\t\tok: false,\n\t\treason: \"columnsJson 存在重复的列 key\"\n\t};\n\tconst evaluateSource = typeof input.evaluateSource === \"string\" ? input.evaluateSource.trim() : \"\";\n\tif (!evaluateSource) return {\n\t\tok: false,\n\t\treason: \"缺少 evaluateSource 源码\"\n\t};\n\tif (evaluateSource.length > MAX_SOURCE_LENGTH) return {\n\t\tok: false,\n\t\treason: `evaluateSource 源码长度 (${evaluateSource.length} B) 超出限制 (${MAX_SOURCE_LENGTH} B / 16KB)`\n\t};\n\ttry {\n\t\tcompileStrategySource(evaluateSource);\n\t} catch (error) {\n\t\treturn {\n\t\t\tok: false,\n\t\t\treason: `源码语法错误或无法编译: ${String(error?.message ?? error)}`\n\t\t};\n\t}\n\treturn {\n\t\tok: true,\n\t\tid,\n\t\ttitle,\n\t\tsummary,\n\t\tparams: params.params,\n\t\tcolumns,\n\t\tevaluateSource,\n\t\tinput\n\t};\n}\n/** 单个命中结果校验(null = 未命中合法;其余必须符合 ScreenerMatch 形状)。 */\nfunction checkScreenerMatch(value, columns, scenario) {\n\tif (value === null || value === void 0) return void 0;\n\tif (typeof value !== \"object\" || Array.isArray(value)) return `evaluate 返回值必须是 ScreenerMatch 对象或 null,${scenario} 场景实际为: ${typeof value}`;\n\tconst match = value;\n\tif (typeof match.metrics !== \"object\" || match.metrics === null || Array.isArray(match.metrics)) return `ScreenerMatch.metrics 必须是 Record<string, number>(${scenario} 场景)`;\n\tconst columnKeys = new Set(columns.map((c) => c.key));\n\tfor (const [key, val] of Object.entries(match.metrics)) {\n\t\tif (!columnKeys.has(key)) return `metrics 键 \"${key}\" 未在 columns 中声明(${scenario} 场景)——动态列必须先声明再产出`;\n\t\tif (typeof val !== \"number\" || !Number.isFinite(val)) return `metrics[\"${key}\"] 必须是有限数字(${scenario} 场景),收到: ${String(val)}`;\n\t}\n\tif (typeof match.reason !== \"string\" || !match.reason.trim()) return `ScreenerMatch.reason 必须是非空字符串(${scenario} 场景)`;\n\tif (match.reason.length > MAX_REASON_LENGTH) return `reason 超长(${match.reason.length} > ${MAX_REASON_LENGTH},${scenario} 场景)`;\n}\n/**\n* 自定义选股器校验(异步——试算走可等待 runner,默认浏览器 Worker 超时熔断;\n* Node 宿主侧传 validate-node.ts 的 vm 熔断 runner)。\n*\n* 与策略校验的差异:evaluate 是「单时点截面判断」——无信号序列语义,\n* 返回 null(未命中/数据不足跳过)或 ScreenerMatch(metrics 键 ⊆ columns 声明、\n* 数值有限、reason 非空)。内置选股器 id 可覆盖(不再保留名)。\n*/\nasync function validateCustomScreener(raw, options) {\n\tconst checked = checkCustomScreenerStructure(raw);\n\tif (!checked.ok) return checked;\n\tconst { id, title, summary, params, columns, evaluateSource, input } = checked;\n\tconst sampleScenarios = createSampleBars();\n\tconst scenarioNames = [\n\t\t\"uptrend\",\n\t\t\"downtrend\",\n\t\t\"flat\",\n\t\t\"gap\",\n\t\t\"short\"\n\t];\n\tconst runner = options?.runner ?? workerComputeRunner;\n\tconst defaultParamsMap = {};\n\tfor (const p of params) defaultParamsMap[p.key] = p.default;\n\tconst longScenario = [];\n\tlet longPrice = 100;\n\tfor (let i = 0; i < 300; i++) {\n\t\tconst drift = i < 100 ? .6 : i < 200 ? -.5 : .55;\n\t\tlongPrice = Math.max(1, longPrice + drift);\n\t\tlongScenario.push({\n\t\t\topenTime: 17e11 + i * 864e5,\n\t\t\topen: longPrice - drift / 2,\n\t\t\thigh: longPrice + .4,\n\t\t\tlow: longPrice - .4,\n\t\t\tclose: longPrice,\n\t\t\tvolume: i % 7 === 5 ? 5e3 : 800\n\t\t});\n\t}\n\tconst scenarios = [...scenarioNames.map((name) => ({\n\t\tname,\n\t\tbars: sampleScenarios[name]\n\t})), {\n\t\tname: \"long\",\n\t\tbars: longScenario\n\t}];\n\tlet matchedScenario = false;\n\tfor (const { name: scenario, bars } of scenarios) {\n\t\tlet match;\n\t\ttry {\n\t\t\tmatch = await runner(evaluateSource, bars, { ...defaultParamsMap }, DEFAULT_TIMEOUT_MS);\n\t\t} catch (error) {\n\t\t\treturn {\n\t\t\t\tok: false,\n\t\t\t\treason: `在 ${scenario} 样例数据上试算执行报错: ${String(error?.message ?? error)}`\n\t\t\t};\n\t\t}\n\t\tconst matchReason = checkScreenerMatch(match, columns, scenario);\n\t\tif (matchReason !== void 0) return {\n\t\t\tok: false,\n\t\t\treason: matchReason\n\t\t};\n\t\tif (match !== null && match !== void 0) matchedScenario = true;\n\t}\n\tif (!matchedScenario) return {\n\t\tok: false,\n\t\treason: \"选股器在全部样例场景(上涨/下跌/震荡/跳空/短序列/300根长序列)上都返回 null——请检查入场条件(阈值方向、数据长度 guard),至少一个场景应命中\"\n\t};\n\treturn {\n\t\tok: true,\n\t\tdefinition: {\n\t\t\tid,\n\t\t\tname: title,\n\t\t\tsummary,\n\t\t\tparams,\n\t\t\tcolumns,\n\t\t\tevaluate: compileStrategySource(evaluateSource)\n\t\t},\n\t\trecord: {\n\t\t\tid,\n\t\t\ttitle,\n\t\t\thorizon: \"swing\",\n\t\t\tsummary,\n\t\t\tparamsJson: JSON.stringify(params),\n\t\t\tcolumnsJson: JSON.stringify(columns),\n\t\t\tevaluateSource,\n\t\t\tcreatedAt: typeof input.createdAt === \"number\" ? input.createdAt : Date.now()\n\t\t}\n\t};\n}\n//#endregion\nexport { compileStrategySource, validateCustomScreener, validateCustomStrategy, validateSignalSequence };\n","//#region src/paradigms/donchian-breakout.ts\nconst donchianBreakoutStrategy = {\n\tid: \"donchian-breakout\",\n\thorizon: \"short\",\n\tname: \"唐奇安通道突破\",\n\tsummary: \"收盘价突破前 N1 根最高价做多,跌破前 N2 根最低价离场(海龟经典简化版)\",\n\tparams: [{\n\t\tkey: \"lookbackEntry\",\n\t\tlabel: \"突破周期 (N1)\",\n\t\tdefault: 20,\n\t\tmin: 5,\n\t\tmax: 100,\n\t\tstep: 1\n\t}, {\n\t\tkey: \"lookbackExit\",\n\t\tlabel: \"离场周期 (N2)\",\n\t\tdefault: 10,\n\t\tmin: 2,\n\t\tmax: 50,\n\t\tstep: 1\n\t}],\n\tcompute(bars, params) {\n\t\tconst n1 = Math.max(2, Math.round(params.lookbackEntry ?? 20));\n\t\tconst n2 = Math.max(1, Math.round(params.lookbackExit ?? 10));\n\t\tconst fmtPrice = (value) => {\n\t\t\tif (!Number.isFinite(value)) return \"—\";\n\t\t\tconst abs = Math.abs(value);\n\t\t\tif (abs < 1) return value.toFixed(abs >= .01 ? 4 : 6);\n\t\t\treturn value.toFixed(Math.abs(Number(value.toFixed(2)) - value) < 1e-9 ? 2 : 3);\n\t\t};\n\t\tconst signals = [];\n\t\tlet inPosition = false;\n\t\tfor (let i = Math.max(n1, n2); i < bars.length; i++) {\n\t\t\tconst currentClose = bars[i].close;\n\t\t\tlet highestHigh = -Infinity;\n\t\t\tfor (let j = i - n1; j < i; j++) if (bars[j].high > highestHigh) highestHigh = bars[j].high;\n\t\t\tlet lowestLow = Infinity;\n\t\t\tfor (let j = i - n2; j < i; j++) if (bars[j].low < lowestLow) lowestLow = bars[j].low;\n\t\t\tif (!inPosition && currentClose > highestHigh) {\n\t\t\t\tsignals.push({\n\t\t\t\t\tindex: i,\n\t\t\t\t\ttime: bars[i].openTime,\n\t\t\t\t\taction: \"entry\",\n\t\t\t\t\tdirection: \"long\",\n\t\t\t\t\tprice: currentClose,\n\t\t\t\t\treason: `收盘价 (${fmtPrice(currentClose)}) 突破前 ${n1} 根最高价 (${fmtPrice(highestHigh)})`,\n\t\t\t\t\treasonKey: \"strat.donchian-breakout.reason.entry\",\n\t\t\t\t\treasonParams: {\n\t\t\t\t\t\tclose: fmtPrice(currentClose),\n\t\t\t\t\t\tn: n1,\n\t\t\t\t\t\thigh: fmtPrice(highestHigh)\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t\tinPosition = true;\n\t\t\t} else if (inPosition && currentClose < lowestLow) {\n\t\t\t\tsignals.push({\n\t\t\t\t\tindex: i,\n\t\t\t\t\ttime: bars[i].openTime,\n\t\t\t\t\taction: \"exit\",\n\t\t\t\t\tdirection: \"flat\",\n\t\t\t\t\tprice: currentClose,\n\t\t\t\t\treason: `收盘价 (${fmtPrice(currentClose)}) 跌破前 ${n2} 根最低价 (${fmtPrice(lowestLow)})`,\n\t\t\t\t\treasonKey: \"strat.donchian-breakout.reason.exit\",\n\t\t\t\t\treasonParams: {\n\t\t\t\t\t\tclose: fmtPrice(currentClose),\n\t\t\t\t\t\tn: n2,\n\t\t\t\t\t\tlow: fmtPrice(lowestLow)\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t\tinPosition = false;\n\t\t\t}\n\t\t}\n\t\treturn signals;\n\t}\n};\n//#endregion\nexport { donchianBreakoutStrategy };\n","//#region src/paradigms/rsi-reversion.ts\nconst rsiReversionStrategy = {\n\tid: \"rsi-reversion\",\n\thorizon: \"short\",\n\tname: \"RSI 短线极值回归\",\n\tsummary: \"短周期 RSI(2) 进入极端超卖区抄底,快速反弹后止盈(经典均值回归)\",\n\tparams: [\n\t\t{\n\t\t\tkey: \"rsiPeriod\",\n\t\t\tlabel: \"RSI 周期\",\n\t\t\tdefault: 2,\n\t\t\tmin: 2,\n\t\t\tmax: 14,\n\t\t\tstep: 1\n\t\t},\n\t\t{\n\t\t\tkey: \"entryThreshold\",\n\t\t\tlabel: \"入场超卖阈值\",\n\t\t\tdefault: 10,\n\t\t\tmin: 1,\n\t\t\tmax: 30,\n\t\t\tstep: 1\n\t\t},\n\t\t{\n\t\t\tkey: \"exitThreshold\",\n\t\t\tlabel: \"出场止盈阈值\",\n\t\t\tdefault: 60,\n\t\t\tmin: 50,\n\t\t\tmax: 95,\n\t\t\tstep: 1\n\t\t}\n\t],\n\tcompute(bars, params) {\n\t\tconst period = Math.max(2, Math.round(params.rsiPeriod ?? 2));\n\t\tconst enterThresh = Number(params.entryThreshold ?? 10);\n\t\tconst exitThresh = Number(params.exitThreshold ?? 60);\n\t\tconst rsiOf = (values, period) => {\n\t\t\tconst out = new Array(values.length).fill(void 0);\n\t\t\tif (!Number.isFinite(period) || period < 1 || values.length < period) return out;\n\t\t\tlet gain = 0;\n\t\t\tlet loss = 0;\n\t\t\tfor (let index = 1; index <= period; index++) {\n\t\t\t\tconst delta = values[index] - values[index - 1];\n\t\t\t\tif (delta >= 0) gain += delta;\n\t\t\t\telse loss -= delta;\n\t\t\t}\n\t\t\tgain /= period;\n\t\t\tloss /= period;\n\t\t\tout[period] = loss === 0 ? 100 : 100 - 100 / (1 + gain / loss);\n\t\t\tfor (let index = period + 1; index < values.length; index++) {\n\t\t\t\tconst delta = values[index] - values[index - 1];\n\t\t\t\tgain = (gain * (period - 1) + Math.max(delta, 0)) / period;\n\t\t\t\tloss = (loss * (period - 1) + Math.max(-delta, 0)) / period;\n\t\t\t\tout[index] = loss === 0 ? 100 : 100 - 100 / (1 + gain / loss);\n\t\t\t}\n\t\t\treturn out;\n\t\t};\n\t\tconst rsiValues = rsiOf(bars.map((b) => b.close), period);\n\t\tconst signals = [];\n\t\tlet inPosition = false;\n\t\tfor (let i = 0; i < bars.length; i++) {\n\t\t\tconst val = rsiValues[i];\n\t\t\tif (val === void 0 || Number.isNaN(val)) continue;\n\t\t\tif (!inPosition && val < enterThresh) {\n\t\t\t\tsignals.push({\n\t\t\t\t\tindex: i,\n\t\t\t\t\ttime: bars[i].openTime,\n\t\t\t\t\taction: \"entry\",\n\t\t\t\t\tdirection: \"long\",\n\t\t\t\t\tprice: bars[i].close,\n\t\t\t\t\treason: `RSI(${period}) 达到极端超卖值 (${val.toFixed(1)} < ${enterThresh}),触发反弹买入`,\n\t\t\t\t\treasonKey: \"strat.rsi-reversion.reason.entry\",\n\t\t\t\t\treasonParams: {\n\t\t\t\t\t\tperiod,\n\t\t\t\t\t\tval: val.toFixed(1),\n\t\t\t\t\t\tthresh: enterThresh\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t\tinPosition = true;\n\t\t\t} else if (inPosition && val > exitThresh) {\n\t\t\t\tsignals.push({\n\t\t\t\t\tindex: i,\n\t\t\t\t\ttime: bars[i].openTime,\n\t\t\t\t\taction: \"exit\",\n\t\t\t\t\tdirection: \"flat\",\n\t\t\t\t\tprice: bars[i].close,\n\t\t\t\t\treason: `RSI(${period}) 回升至目标位 (${val.toFixed(1)} > ${exitThresh}),止盈离场`,\n\t\t\t\t\treasonKey: \"strat.rsi-reversion.reason.exit\",\n\t\t\t\t\treasonParams: {\n\t\t\t\t\t\tperiod,\n\t\t\t\t\t\tval: val.toFixed(1),\n\t\t\t\t\t\tthresh: exitThresh\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t\tinPosition = false;\n\t\t\t}\n\t\t}\n\t\treturn signals;\n\t}\n};\n//#endregion\nexport { rsiReversionStrategy };\n","//#region src/paradigms/ema-crossover.ts\nconst emaCrossoverStrategy = {\n\tid: \"ema-crossover\",\n\thorizon: \"swing\",\n\tname: \"EMA 双均线趋势跟踪\",\n\tsummary: \"快线 EMA 上穿慢线 EMA 金叉做多,死叉平仓(经典中线波段趋势策略)\",\n\tparams: [{\n\t\tkey: \"fastPeriod\",\n\t\tlabel: \"快线周期 (Fast)\",\n\t\tdefault: 20,\n\t\tmin: 5,\n\t\tmax: 50,\n\t\tstep: 1\n\t}, {\n\t\tkey: \"slowPeriod\",\n\t\tlabel: \"慢线周期 (Slow)\",\n\t\tdefault: 60,\n\t\tmin: 20,\n\t\tmax: 200,\n\t\tstep: 1\n\t}],\n\tcompute(bars, params) {\n\t\tconst fastP = Math.max(2, Math.round(params.fastPeriod ?? 20));\n\t\tconst slowP = Math.max(fastP + 1, Math.round(params.slowPeriod ?? 60));\n\t\tconst fmtPrice = (value) => {\n\t\t\tif (!Number.isFinite(value)) return \"—\";\n\t\t\tconst abs = Math.abs(value);\n\t\t\tif (abs < 1) return value.toFixed(abs >= .01 ? 4 : 6);\n\t\t\treturn value.toFixed(Math.abs(Number(value.toFixed(2)) - value) < 1e-9 ? 2 : 3);\n\t\t};\n\t\tconst emaOf = (values, period) => {\n\t\t\tconst out = new Array(values.length).fill(void 0);\n\t\t\tif (!Number.isFinite(period) || period < 1 || values.length < period) return out;\n\t\t\tconst k = 2 / (period + 1);\n\t\t\tlet seed = 0;\n\t\t\tfor (let index = 0; index < period; index++) seed += values[index];\n\t\t\tlet prev = seed / period;\n\t\t\tout[period - 1] = prev;\n\t\t\tfor (let index = period; index < values.length; index++) {\n\t\t\t\tprev = values[index] * k + prev * (1 - k);\n\t\t\t\tout[index] = prev;\n\t\t\t}\n\t\t\treturn out;\n\t\t};\n\t\tconst closes = bars.map((b) => b.close);\n\t\tconst fastEma = emaOf(closes, fastP);\n\t\tconst slowEma = emaOf(closes, slowP);\n\t\tconst signals = [];\n\t\tlet inPosition = false;\n\t\tfor (let i = 1; i < bars.length; i++) {\n\t\t\tconst prevFast = fastEma[i - 1];\n\t\t\tconst prevSlow = slowEma[i - 1];\n\t\t\tconst currFast = fastEma[i];\n\t\t\tconst currSlow = slowEma[i];\n\t\t\tif (prevFast === void 0 || prevSlow === void 0 || currFast === void 0 || currSlow === void 0) continue;\n\t\t\tif (!inPosition && prevFast <= prevSlow && currFast > currSlow) {\n\t\t\t\tsignals.push({\n\t\t\t\t\tindex: i,\n\t\t\t\t\ttime: bars[i].openTime,\n\t\t\t\t\taction: \"entry\",\n\t\t\t\t\tdirection: \"long\",\n\t\t\t\t\tprice: bars[i].close,\n\t\t\t\t\treason: `EMA(${fastP}) (${fmtPrice(currFast)}) 上穿 EMA(${slowP}) (${fmtPrice(currSlow)}) 形成金叉`,\n\t\t\t\t\treasonKey: \"strat.ema-crossover.reason.entry\",\n\t\t\t\t\treasonParams: {\n\t\t\t\t\t\tfastP,\n\t\t\t\t\t\tfast: fmtPrice(currFast),\n\t\t\t\t\t\tslowP,\n\t\t\t\t\t\tslow: fmtPrice(currSlow)\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t\tinPosition = true;\n\t\t\t} else if (inPosition && prevFast >= prevSlow && currFast < currSlow) {\n\t\t\t\tsignals.push({\n\t\t\t\t\tindex: i,\n\t\t\t\t\ttime: bars[i].openTime,\n\t\t\t\t\taction: \"exit\",\n\t\t\t\t\tdirection: \"flat\",\n\t\t\t\t\tprice: bars[i].close,\n\t\t\t\t\treason: `EMA(${fastP}) (${fmtPrice(currFast)}) 下穿 EMA(${slowP}) (${fmtPrice(currSlow)}) 形成死叉`,\n\t\t\t\t\treasonKey: \"strat.ema-crossover.reason.exit\",\n\t\t\t\t\treasonParams: {\n\t\t\t\t\t\tfastP,\n\t\t\t\t\t\tfast: fmtPrice(currFast),\n\t\t\t\t\t\tslowP,\n\t\t\t\t\t\tslow: fmtPrice(currSlow)\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t\tinPosition = false;\n\t\t\t}\n\t\t}\n\t\treturn signals;\n\t}\n};\n//#endregion\nexport { emaCrossoverStrategy };\n","//#region src/paradigms/bollinger-reversion.ts\nconst bollingerReversionStrategy = {\n\tid: \"bollinger-reversion\",\n\thorizon: \"swing\",\n\tname: \"布林带下轨均值回归\",\n\tsummary: \"价格跌破布林线下轨时介入抄底,反弹至中轨(基准均线)时平仓(波段通道回归)\",\n\tparams: [{\n\t\tkey: \"period\",\n\t\tlabel: \"布林周期\",\n\t\tdefault: 20,\n\t\tmin: 5,\n\t\tmax: 50,\n\t\tstep: 1\n\t}, {\n\t\tkey: \"multiplier\",\n\t\tlabel: \"标准差倍数 (k)\",\n\t\tdefault: 2,\n\t\tmin: 1,\n\t\tmax: 4,\n\t\tstep: .5\n\t}],\n\tcompute(bars, params) {\n\t\tconst period = Math.max(5, Math.round(params.period ?? 20));\n\t\tconst k = Number(params.multiplier ?? 2);\n\t\tconst fmtPrice = (value) => {\n\t\t\tif (!Number.isFinite(value)) return \"—\";\n\t\t\tconst abs = Math.abs(value);\n\t\t\tif (abs < 1) return value.toFixed(abs >= .01 ? 4 : 6);\n\t\t\treturn value.toFixed(Math.abs(Number(value.toFixed(2)) - value) < 1e-9 ? 2 : 3);\n\t\t};\n\t\tconst smaOf = (values, period) => {\n\t\t\tconst out = new Array(values.length).fill(void 0);\n\t\t\tif (!Number.isFinite(period) || period < 1 || values.length < period) return out;\n\t\t\tlet sum = 0;\n\t\t\tfor (let index = 0; index < values.length; index++) {\n\t\t\t\tsum += values[index];\n\t\t\t\tif (index >= period) sum -= values[index - period];\n\t\t\t\tif (index >= period - 1) out[index] = sum / period;\n\t\t\t}\n\t\t\treturn out;\n\t\t};\n\t\tconst stdevOf = (values, period) => {\n\t\t\tconst out = new Array(values.length).fill(void 0);\n\t\t\tif (!Number.isFinite(period) || period < 1 || values.length < period) return out;\n\t\t\tfor (let index = period - 1; index < values.length; index++) {\n\t\t\t\tlet mean = 0;\n\t\t\t\tfor (let offset = 0; offset < period; offset++) mean += values[index - offset];\n\t\t\t\tmean /= period;\n\t\t\t\tlet variance = 0;\n\t\t\t\tfor (let offset = 0; offset < period; offset++) {\n\t\t\t\t\tconst delta = values[index - offset] - mean;\n\t\t\t\t\tvariance += delta * delta;\n\t\t\t\t}\n\t\t\t\tout[index] = Math.sqrt(variance / period);\n\t\t\t}\n\t\t\treturn out;\n\t\t};\n\t\tconst closes = bars.map((b) => b.close);\n\t\tconst mid = smaOf(closes, period);\n\t\tconst sd = stdevOf(closes, period);\n\t\tconst lower = closes.map((_, index) => {\n\t\t\tconst base = mid[index];\n\t\t\tconst dev = sd[index];\n\t\t\treturn base === void 0 || dev === void 0 ? void 0 : base - k * dev;\n\t\t});\n\t\tconst signals = [];\n\t\tlet inPosition = false;\n\t\tfor (let i = period - 1; i < bars.length; i++) {\n\t\t\tconst currentClose = bars[i].close;\n\t\t\tconst currentLower = lower[i];\n\t\t\tconst currentMid = mid[i];\n\t\t\tif (currentLower === void 0 || currentMid === void 0) continue;\n\t\t\tif (!inPosition && currentClose < currentLower) {\n\t\t\t\tsignals.push({\n\t\t\t\t\tindex: i,\n\t\t\t\t\ttime: bars[i].openTime,\n\t\t\t\t\taction: \"entry\",\n\t\t\t\t\tdirection: \"long\",\n\t\t\t\t\tprice: currentClose,\n\t\t\t\t\treason: `收盘价 (${fmtPrice(currentClose)}) 跌破布林下轨 (${fmtPrice(currentLower)}),触发波段均值回归`,\n\t\t\t\t\treasonKey: \"strat.bollinger-reversion.reason.entry\",\n\t\t\t\t\treasonParams: {\n\t\t\t\t\t\tclose: fmtPrice(currentClose),\n\t\t\t\t\t\tband: fmtPrice(currentLower)\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t\tinPosition = true;\n\t\t\t} else if (inPosition && currentClose >= currentMid) {\n\t\t\t\tsignals.push({\n\t\t\t\t\tindex: i,\n\t\t\t\t\ttime: bars[i].openTime,\n\t\t\t\t\taction: \"exit\",\n\t\t\t\t\tdirection: \"flat\",\n\t\t\t\t\tprice: currentClose,\n\t\t\t\t\treason: `收盘价 (${fmtPrice(currentClose)}) 成功回归至布林中轨 (${fmtPrice(currentMid)}),完成目标止盈`,\n\t\t\t\t\treasonKey: \"strat.bollinger-reversion.reason.exit\",\n\t\t\t\t\treasonParams: {\n\t\t\t\t\t\tclose: fmtPrice(currentClose),\n\t\t\t\t\t\tmid: fmtPrice(currentMid)\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t\tinPosition = false;\n\t\t\t}\n\t\t}\n\t\treturn signals;\n\t}\n};\n//#endregion\nexport { bollingerReversionStrategy };\n","//#region src/paradigms/sma-baseline.ts\nconst smaBaselineStrategy = {\n\tid: \"sma-baseline\",\n\thorizon: \"long\",\n\tname: \"200 日均线牛熊择时基线\",\n\tsummary: \"收盘价站上 SMA200 均线做多,跌破均线空仓避险(长线资产配置经典基线)\",\n\tparams: [{\n\t\tkey: \"period\",\n\t\tlabel: \"长期均线周期\",\n\t\tdefault: 200,\n\t\tmin: 50,\n\t\tmax: 300,\n\t\tstep: 10\n\t}],\n\tcompute(bars, params) {\n\t\tconst period = Math.max(10, Math.round(params.period ?? 200));\n\t\tconst fmtPrice = (value) => {\n\t\t\tif (!Number.isFinite(value)) return \"—\";\n\t\t\tconst abs = Math.abs(value);\n\t\t\tif (abs < 1) return value.toFixed(abs >= .01 ? 4 : 6);\n\t\t\treturn value.toFixed(Math.abs(Number(value.toFixed(2)) - value) < 1e-9 ? 2 : 3);\n\t\t};\n\t\tconst smaOf = (values, period) => {\n\t\t\tconst out = new Array(values.length).fill(void 0);\n\t\t\tif (!Number.isFinite(period) || period < 1 || values.length < period) return out;\n\t\t\tlet sum = 0;\n\t\t\tfor (let index = 0; index < values.length; index++) {\n\t\t\t\tsum += values[index];\n\t\t\t\tif (index >= period) sum -= values[index - period];\n\t\t\t\tif (index >= period - 1) out[index] = sum / period;\n\t\t\t}\n\t\t\treturn out;\n\t\t};\n\t\tconst smaValues = smaOf(bars.map((b) => b.close), period);\n\t\tconst signals = [];\n\t\tlet inPosition = false;\n\t\tfor (let i = period - 1; i < bars.length; i++) {\n\t\t\tconst currentClose = bars[i].close;\n\t\t\tconst currentSma = smaValues[i];\n\t\t\tif (currentSma === void 0) continue;\n\t\t\tif (!inPosition && currentClose > currentSma) {\n\t\t\t\tsignals.push({\n\t\t\t\t\tindex: i,\n\t\t\t\t\ttime: bars[i].openTime,\n\t\t\t\t\taction: \"entry\",\n\t\t\t\t\tdirection: \"long\",\n\t\t\t\t\tprice: currentClose,\n\t\t\t\t\treason: `收盘价 (${fmtPrice(currentClose)}) 站上长期基线 SMA(${period}) (${fmtPrice(currentSma)}),确立多头趋势`,\n\t\t\t\t\treasonKey: \"strat.sma-baseline.reason.entry\",\n\t\t\t\t\treasonParams: {\n\t\t\t\t\t\tclose: fmtPrice(currentClose),\n\t\t\t\t\t\tperiod,\n\t\t\t\t\t\tsma: fmtPrice(currentSma)\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t\tinPosition = true;\n\t\t\t} else if (inPosition && currentClose < currentSma) {\n\t\t\t\tsignals.push({\n\t\t\t\t\tindex: i,\n\t\t\t\t\ttime: bars[i].openTime,\n\t\t\t\t\taction: \"exit\",\n\t\t\t\t\tdirection: \"flat\",\n\t\t\t\t\tprice: currentClose,\n\t\t\t\t\treason: `收盘价 (${fmtPrice(currentClose)}) 跌破长期基线 SMA(${period}) (${fmtPrice(currentSma)}),转入防御避险`,\n\t\t\t\t\treasonKey: \"strat.sma-baseline.reason.exit\",\n\t\t\t\t\treasonParams: {\n\t\t\t\t\t\tclose: fmtPrice(currentClose),\n\t\t\t\t\t\tperiod,\n\t\t\t\t\t\tsma: fmtPrice(currentSma)\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t\tinPosition = false;\n\t\t\t}\n\t\t}\n\t\treturn signals;\n\t}\n};\n//#endregion\nexport { smaBaselineStrategy };\n","//#region src/paradigms/momentum-12m.ts\nconst momentum12mStrategy = {\n\tid: \"momentum-12m\",\n\thorizon: \"long\",\n\tname: \"12 个月动量择时\",\n\tsummary: \"近 12 个月动量为正且站上年线做多,动量转负或破位离场(低换手长线动量)\",\n\tparams: [{\n\t\tkey: \"lookbackBars\",\n\t\tlabel: \"动量回溯周期 (K线)\",\n\t\tdefault: 250,\n\t\tmin: 50,\n\t\tmax: 500,\n\t\tstep: 10\n\t}],\n\tcompute(bars, params) {\n\t\tconst lookback = Math.max(10, Math.round(params.lookbackBars ?? 250));\n\t\tconst fmtPrice = (value) => {\n\t\t\tif (!Number.isFinite(value)) return \"—\";\n\t\t\tconst abs = Math.abs(value);\n\t\t\tif (abs < 1) return value.toFixed(abs >= .01 ? 4 : 6);\n\t\t\treturn value.toFixed(Math.abs(Number(value.toFixed(2)) - value) < 1e-9 ? 2 : 3);\n\t\t};\n\t\tconst smaOf = (values, period) => {\n\t\t\tconst out = new Array(values.length).fill(void 0);\n\t\t\tif (!Number.isFinite(period) || period < 1 || values.length < period) return out;\n\t\t\tlet sum = 0;\n\t\t\tfor (let index = 0; index < values.length; index++) {\n\t\t\t\tsum += values[index];\n\t\t\t\tif (index >= period) sum -= values[index - period];\n\t\t\t\tif (index >= period - 1) out[index] = sum / period;\n\t\t\t}\n\t\t\treturn out;\n\t\t};\n\t\tconst smaValues = smaOf(bars.map((b) => b.close), lookback);\n\t\tconst signals = [];\n\t\tlet inPosition = false;\n\t\tfor (let i = lookback; i < bars.length; i++) {\n\t\t\tconst currentClose = bars[i].close;\n\t\t\tconst pastClose = bars[i - lookback].close;\n\t\t\tconst currentSma = smaValues[i];\n\t\t\tif (pastClose <= 0 || currentSma === void 0) continue;\n\t\t\tconst momentumReturn = (currentClose - pastClose) / pastClose;\n\t\t\tif (!inPosition && momentumReturn > 0 && currentClose > currentSma) {\n\t\t\t\tsignals.push({\n\t\t\t\t\tindex: i,\n\t\t\t\t\ttime: bars[i].openTime,\n\t\t\t\t\taction: \"entry\",\n\t\t\t\t\tdirection: \"long\",\n\t\t\t\t\tprice: currentClose,\n\t\t\t\t\treason: `近 ${lookback} 周期动量为正 (+${(momentumReturn * 100).toFixed(1)}%) 且位于均线 (${fmtPrice(currentSma)}) 之上,确认强动量`,\n\t\t\t\t\treasonKey: \"strat.momentum-12m.reason.entry\",\n\t\t\t\t\treasonParams: {\n\t\t\t\t\t\tn: lookback,\n\t\t\t\t\t\tpct: (momentumReturn * 100).toFixed(1),\n\t\t\t\t\t\tsma: fmtPrice(currentSma)\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t\tinPosition = true;\n\t\t\t} else if (inPosition && (momentumReturn <= 0 || currentClose < currentSma)) {\n\t\t\t\tconst exitCause = momentumReturn <= 0 ? \"动量转为负值\" : \"跌破基准均线\";\n\t\t\t\tsignals.push({\n\t\t\t\t\tindex: i,\n\t\t\t\t\ttime: bars[i].openTime,\n\t\t\t\t\taction: \"exit\",\n\t\t\t\t\tdirection: \"flat\",\n\t\t\t\t\tprice: currentClose,\n\t\t\t\t\treason: `${exitCause} (${(momentumReturn * 100).toFixed(1)}% / SMA ${fmtPrice(currentSma)}),动量衰减平仓`,\n\t\t\t\t\treasonKey: \"strat.momentum-12m.reason.exit\",\n\t\t\t\t\treasonParams: {\n\t\t\t\t\t\tcause: momentumReturn <= 0 ? \"momentumNegative\" : \"belowBaseline\",\n\t\t\t\t\t\tpct: (momentumReturn * 100).toFixed(1),\n\t\t\t\t\t\tsma: fmtPrice(currentSma)\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t\tinPosition = false;\n\t\t\t}\n\t\t}\n\t\treturn signals;\n\t}\n};\n//#endregion\nexport { momentum12mStrategy };\n","import { donchianBreakoutStrategy } from \"./donchian-breakout.js\";\nimport { rsiReversionStrategy } from \"./rsi-reversion.js\";\nimport { emaCrossoverStrategy } from \"./ema-crossover.js\";\nimport { bollingerReversionStrategy } from \"./bollinger-reversion.js\";\nimport { smaBaselineStrategy } from \"./sma-baseline.js\";\nimport { momentum12mStrategy } from \"./momentum-12m.js\";\n//#region src/paradigms/index.ts\n/**\n* 6 个经典策略参考范式汇聚。\n*/\nconst strategyParadigms = [\n\tdonchianBreakoutStrategy,\n\trsiReversionStrategy,\n\temaCrossoverStrategy,\n\tbollingerReversionStrategy,\n\tsmaBaselineStrategy,\n\tmomentum12mStrategy\n];\nfunction getStrategyById(id) {\n\treturn strategyParadigms.find((s) => s.id === id);\n}\n//#endregion\nexport { bollingerReversionStrategy, donchianBreakoutStrategy, emaCrossoverStrategy, getStrategyById, momentum12mStrategy, rsiReversionStrategy, smaBaselineStrategy, strategyParadigms };\n","//#region src/screeners/ma-bull-align.ts\nconst maBullAlignScreener = {\n\tid: \"scr.ma-bull-align\",\n\tname: \"均线多头排列\",\n\tsummary: \"现价站上三线且 SMA(短) > SMA(中) > SMA(长),筛选趋势结构完整的标的\",\n\tparams: [\n\t\t{\n\t\t\tkey: \"n1\",\n\t\t\tlabel: \"短期均线\",\n\t\t\tdefault: 20,\n\t\t\tmin: 5,\n\t\t\tmax: 120,\n\t\t\tstep: 5\n\t\t},\n\t\t{\n\t\t\tkey: \"n2\",\n\t\t\tlabel: \"中期均线\",\n\t\t\tdefault: 60,\n\t\t\tmin: 20,\n\t\t\tmax: 250,\n\t\t\tstep: 10\n\t\t},\n\t\t{\n\t\t\tkey: \"n3\",\n\t\t\tlabel: \"长期均线\",\n\t\t\tdefault: 120,\n\t\t\tmin: 50,\n\t\t\tmax: 300,\n\t\t\tstep: 10\n\t\t}\n\t],\n\tcolumns: [{\n\t\tkey: \"distLongPct\",\n\t\tlabel: \"距长期均线\",\n\t\tformat: \"percent\"\n\t}],\n\tevaluate(bars, params) {\n\t\tconst n1 = Math.max(5, Math.round(params.n1 ?? 20));\n\t\tconst n2 = Math.max(n1, Math.round(params.n2 ?? 60));\n\t\tconst n3 = Math.max(n2, Math.round(params.n3 ?? 120));\n\t\tconst i = bars.length - 1;\n\t\tif (i + 1 < n3) return null;\n\t\tconst smaOf = (values, period) => {\n\t\t\tconst out = new Array(values.length).fill(void 0);\n\t\t\tif (!Number.isFinite(period) || period < 1 || values.length < period) return out;\n\t\t\tlet sum = 0;\n\t\t\tfor (let index = 0; index < values.length; index++) {\n\t\t\t\tsum += values[index];\n\t\t\t\tif (index >= period) sum -= values[index - period];\n\t\t\t\tif (index >= period - 1) out[index] = sum / period;\n\t\t\t}\n\t\t\treturn out;\n\t\t};\n\t\tconst closes = bars.map((b) => b.close);\n\t\tconst s1 = smaOf(closes, n1)[i];\n\t\tconst s2 = smaOf(closes, n2)[i];\n\t\tconst s3 = smaOf(closes, n3)[i];\n\t\tif (s1 === void 0 || s2 === void 0 || s3 === void 0) return null;\n\t\tconst close = bars[i].close;\n\t\tif (!(close > s1 && s1 > s2 && s2 > s3)) return null;\n\t\treturn {\n\t\t\tmetrics: { distLongPct: (close - s3) / s3 * 100 },\n\t\t\treason: `现价站上三线且 SMA(${n1}) > SMA(${n2}) > SMA(${n3}),多头排列`,\n\t\t\treasonKey: \"scr.ma-bull-align.reason\",\n\t\t\treasonParams: {\n\t\t\t\tn1,\n\t\t\t\tn2,\n\t\t\t\tn3\n\t\t\t}\n\t\t};\n\t}\n};\n//#endregion\nexport { maBullAlignScreener };\n","//#region src/screeners/volume-breakout.ts\nconst volumeBreakoutScreener = {\n\tid: \"scr.volume-breakout\",\n\tname: \"放量突破\",\n\tsummary: \"收盘价创 N 日新高且成交量 ≥ 均量 M 倍,量价配合的突破筛选\",\n\tparams: [{\n\t\tkey: \"lookback\",\n\t\tlabel: \"突破窗口(日)\",\n\t\tdefault: 20,\n\t\tmin: 5,\n\t\tmax: 60,\n\t\tstep: 5\n\t}, {\n\t\tkey: \"volMultiple\",\n\t\tlabel: \"量能倍数\",\n\t\tdefault: 2,\n\t\tmin: 1,\n\t\tmax: 10,\n\t\tstep: .5\n\t}],\n\tcolumns: [{\n\t\tkey: \"volRatio\",\n\t\tlabel: \"量比(倍)\"\n\t}, {\n\t\tkey: \"breakoutPct\",\n\t\tlabel: \"突破幅度\",\n\t\tformat: \"percent\"\n\t}],\n\tevaluate(bars, params) {\n\t\tconst lookback = Math.max(5, Math.round(params.lookback ?? 20));\n\t\tconst volMultiple = Math.max(1, params.volMultiple ?? 2);\n\t\tconst i = bars.length - 1;\n\t\tif (i < lookback) return null;\n\t\tconst smaOf = (values, period) => {\n\t\t\tconst out = new Array(values.length).fill(void 0);\n\t\t\tif (!Number.isFinite(period) || period < 1 || values.length < period) return out;\n\t\t\tlet sum = 0;\n\t\t\tfor (let index = 0; index < values.length; index++) {\n\t\t\t\tsum += values[index];\n\t\t\t\tif (index >= period) sum -= values[index - period];\n\t\t\t\tif (index >= period - 1) out[index] = sum / period;\n\t\t\t}\n\t\t\treturn out;\n\t\t};\n\t\tconst window = bars.slice(i - lookback, i);\n\t\tconst priorHigh = Math.max(...window.map((b) => b.high));\n\t\tconst avgVolume = smaOf(bars.map((b) => b.volume), lookback)[i];\n\t\tif (avgVolume === void 0 || avgVolume <= 0) return null;\n\t\tconst close = bars[i].close;\n\t\tconst volume = bars[i].volume;\n\t\tif (!(close > priorHigh) || !(volume >= volMultiple * avgVolume)) return null;\n\t\tconst volRatio = volume / avgVolume;\n\t\treturn {\n\t\t\tmetrics: {\n\t\t\t\tvolRatio,\n\t\t\t\tbreakoutPct: (close - priorHigh) / priorHigh * 100\n\t\t\t},\n\t\t\treason: `放量 ${volRatio.toFixed(2)} 倍突破 ${lookback} 日高点`,\n\t\t\treasonKey: \"scr.volume-breakout.reason\",\n\t\t\treasonParams: {\n\t\t\t\tratio: volRatio.toFixed(2),\n\t\t\t\tn: lookback\n\t\t\t}\n\t\t};\n\t}\n};\n//#endregion\nexport { volumeBreakoutScreener };\n","//#region src/screeners/rsi-oversold.ts\nconst rsiOversoldScreener = {\n\tid: \"scr.rsi-oversold\",\n\tname: \"RSI 超卖\",\n\tsummary: \"RSI 跌入超卖区(默认 <30),筛选值得盯的反转候选(逆势信号)\",\n\tparams: [{\n\t\tkey: \"period\",\n\t\tlabel: \"RSI 周期\",\n\t\tdefault: 14,\n\t\tmin: 5,\n\t\tmax: 30,\n\t\tstep: 1\n\t}, {\n\t\tkey: \"threshold\",\n\t\tlabel: \"超卖阈值\",\n\t\tdefault: 30,\n\t\tmin: 10,\n\t\tmax: 50,\n\t\tstep: 5\n\t}],\n\tcolumns: [{\n\t\tkey: \"rsi\",\n\t\tlabel: \"RSI\"\n\t}],\n\tevaluate(bars, params) {\n\t\tconst period = Math.max(5, Math.round(params.period ?? 14));\n\t\tconst threshold = Math.min(50, Math.max(10, params.threshold ?? 30));\n\t\tconst i = bars.length - 1;\n\t\tif (i < period) return null;\n\t\tconst rsiOf = (values, period) => {\n\t\t\tconst out = new Array(values.length).fill(void 0);\n\t\t\tif (!Number.isFinite(period) || period < 1 || values.length < period) return out;\n\t\t\tlet gain = 0;\n\t\t\tlet loss = 0;\n\t\t\tfor (let index = 1; index <= period; index++) {\n\t\t\t\tconst delta = values[index] - values[index - 1];\n\t\t\t\tif (delta >= 0) gain += delta;\n\t\t\t\telse loss -= delta;\n\t\t\t}\n\t\t\tgain /= period;\n\t\t\tloss /= period;\n\t\t\tout[period] = loss === 0 ? 100 : 100 - 100 / (1 + gain / loss);\n\t\t\tfor (let index = period + 1; index < values.length; index++) {\n\t\t\t\tconst delta = values[index] - values[index - 1];\n\t\t\t\tgain = (gain * (period - 1) + Math.max(delta, 0)) / period;\n\t\t\t\tloss = (loss * (period - 1) + Math.max(-delta, 0)) / period;\n\t\t\t\tout[index] = loss === 0 ? 100 : 100 - 100 / (1 + gain / loss);\n\t\t\t}\n\t\t\treturn out;\n\t\t};\n\t\tconst value = rsiOf(bars.map((b) => b.close), period)[i];\n\t\tif (value === void 0) return null;\n\t\tif (!(value < threshold)) return null;\n\t\treturn {\n\t\t\tmetrics: { rsi: value },\n\t\t\treason: `RSI(${period}) = ${value.toFixed(1)},进入超卖区(逆势信号)`,\n\t\t\treasonKey: \"scr.rsi-oversold.reason\",\n\t\t\treasonParams: {\n\t\t\t\tperiod,\n\t\t\t\tval: value.toFixed(1)\n\t\t\t}\n\t\t};\n\t}\n};\n//#endregion\nexport { rsiOversoldScreener };\n","//#region src/screeners/near-high.ts\nconst nearHighScreener = {\n\tid: \"scr.near-high\",\n\tname: \"接近一年新高\",\n\tsummary: \"现价距 N 日最高价不超过 X%,强势整理/突破前夜的动量筛选\",\n\tparams: [{\n\t\tkey: \"window\",\n\t\tlabel: \"窗口(日)\",\n\t\tdefault: 250,\n\t\tmin: 60,\n\t\tmax: 500,\n\t\tstep: 10\n\t}, {\n\t\tkey: \"withinPct\",\n\t\tlabel: \"接近阈值(%)\",\n\t\tdefault: 5,\n\t\tmin: 1,\n\t\tmax: 30,\n\t\tstep: 1\n\t}],\n\tcolumns: [{\n\t\tkey: \"offHighPct\",\n\t\tlabel: \"距高点\",\n\t\tformat: \"percent\"\n\t}],\n\tevaluate(bars, params) {\n\t\tconst window = Math.max(60, Math.round(params.window ?? 250));\n\t\tconst withinPct = Math.max(1, params.withinPct ?? 5);\n\t\tconst i = bars.length - 1;\n\t\tif (i + 1 < window) return null;\n\t\tconst windowBars = bars.slice(i + 1 - window);\n\t\tconst highMax = Math.max(...windowBars.map((b) => b.high));\n\t\tif (!(highMax > 0)) return null;\n\t\tconst offHighPct = (highMax - bars[i].close) / highMax * 100;\n\t\tif (!(offHighPct >= 0 && offHighPct <= withinPct)) return null;\n\t\treturn {\n\t\t\tmetrics: { offHighPct },\n\t\t\treason: `距 ${window} 日高点仅 ${offHighPct.toFixed(2)}%,处于突破前夜`,\n\t\t\treasonKey: \"scr.near-high.reason\",\n\t\t\treasonParams: {\n\t\t\t\tn: window,\n\t\t\t\tpct: offHighPct.toFixed(2)\n\t\t\t}\n\t\t};\n\t}\n};\n//#endregion\nexport { nearHighScreener };\n","//#region src/screeners/above-ma.ts\nconst aboveMaScreener = {\n\tid: \"scr.above-ma\",\n\tname: \"站上牛熊线\",\n\tsummary: \"现价站上长期均线且均线斜率向上,筛选长线多头环境的标的\",\n\tparams: [{\n\t\tkey: \"period\",\n\t\tlabel: \"牛熊线周期\",\n\t\tdefault: 200,\n\t\tmin: 50,\n\t\tmax: 300,\n\t\tstep: 10\n\t}, {\n\t\tkey: \"slopeBars\",\n\t\tlabel: \"斜率窗口(日)\",\n\t\tdefault: 20,\n\t\tmin: 5,\n\t\tmax: 60,\n\t\tstep: 5\n\t}],\n\tcolumns: [{\n\t\tkey: \"aboveMaPct\",\n\t\tlabel: \"高于均线\",\n\t\tformat: \"percent\"\n\t}, {\n\t\tkey: \"maSlopePct\",\n\t\tlabel: \"均线斜率\",\n\t\tformat: \"percent\"\n\t}],\n\tevaluate(bars, params) {\n\t\tconst period = Math.max(50, Math.round(params.period ?? 200));\n\t\tconst slopeBars = Math.max(5, Math.round(params.slopeBars ?? 20));\n\t\tconst i = bars.length - 1;\n\t\tif (i < period + slopeBars - 1) return null;\n\t\tconst smaOf = (values, period) => {\n\t\t\tconst out = new Array(values.length).fill(void 0);\n\t\t\tif (!Number.isFinite(period) || period < 1 || values.length < period) return out;\n\t\t\tlet sum = 0;\n\t\t\tfor (let index = 0; index < values.length; index++) {\n\t\t\t\tsum += values[index];\n\t\t\t\tif (index >= period) sum -= values[index - period];\n\t\t\t\tif (index >= period - 1) out[index] = sum / period;\n\t\t\t}\n\t\t\treturn out;\n\t\t};\n\t\tconst maSeries = smaOf(bars.map((b) => b.close), period);\n\t\tconst ma = maSeries[i];\n\t\tconst maPrev = maSeries[i - slopeBars];\n\t\tif (ma === void 0 || maPrev === void 0 || !(maPrev > 0)) return null;\n\t\tconst close = bars[i].close;\n\t\tif (!(close > ma) || !(ma > maPrev)) return null;\n\t\tconst aboveMaPct = (close - ma) / ma * 100;\n\t\tconst maSlopePct = (ma - maPrev) / maPrev * 100;\n\t\treturn {\n\t\t\tmetrics: {\n\t\t\t\taboveMaPct,\n\t\t\t\tmaSlopePct\n\t\t\t},\n\t\t\treason: `现价高于 SMA(${period}) ${aboveMaPct.toFixed(2)}%,均线 ${slopeBars} 日斜率 +${maSlopePct.toFixed(2)}%`,\n\t\t\treasonKey: \"scr.above-ma.reason\",\n\t\t\treasonParams: {\n\t\t\t\tperiod,\n\t\t\t\tabove: aboveMaPct.toFixed(2),\n\t\t\t\tslope: slopeBars,\n\t\t\t\tslopePct: maSlopePct.toFixed(2)\n\t\t\t}\n\t\t};\n\t}\n};\n//#endregion\nexport { aboveMaScreener };\n","import { maBullAlignScreener } from \"./ma-bull-align.js\";\nimport { volumeBreakoutScreener } from \"./volume-breakout.js\";\nimport { rsiOversoldScreener } from \"./rsi-oversold.js\";\nimport { nearHighScreener } from \"./near-high.js\";\nimport { aboveMaScreener } from \"./above-ma.js\";\n//#region src/screeners/index.ts\nconst screenerParadigms = [\n\tmaBullAlignScreener,\n\tvolumeBreakoutScreener,\n\trsiOversoldScreener,\n\tnearHighScreener,\n\taboveMaScreener\n];\nfunction getScreenerById(id) {\n\treturn screenerParadigms.find((s) => s.id === id);\n}\n//#endregion\nexport { getScreenerById, screenerParadigms };\n","import { strategyParadigms } from \"./paradigms/index.js\";\nimport { screenerParadigms } from \"./screeners/index.js\";\n//#region src/management.ts\n/**\n* 策略管理名册合成与内置源码导出(策略管理,2026-09-07)。\n*\n* 覆盖 + 墓碑模型的唯一合成逻辑:内置范式(代码常量)为出厂默认层,\n* 自定义 store 中同 id 的记录是覆盖层,墓碑表是删除层。agent 侧\n* (resolveStrategyDefinition)与 GUI 侧(StrategyView)共用本模块,\n* 保证两侧名册一致。纯函数、零 Node 依赖,浏览器安全。\n*/\n/** 内置范式策略 id 集合(稳定词汇;选股器 id 带 'scr.' 前缀,不在此列)。 */\nconst BUILTIN_STRATEGY_IDS = new Set(strategyParadigms.map((d) => d.id));\n/** 内置选股器 id 集合('scr.' 前缀词汇)。 */\nconst BUILTIN_SCREENER_IDS = new Set(screenerParadigms.map((d) => d.id));\nfunction isBuiltinStrategyId(id) {\n\treturn BUILTIN_STRATEGY_IDS.has(id);\n}\nfunction isBuiltinScreenerId(id) {\n\treturn BUILTIN_SCREENER_IDS.has(id);\n}\n/**\n* 名册合成:内置 − 墓碑,覆盖记录原位替换同 id 内置,自定义按传入顺序追加。\n* @param paradigms 出厂默认名册(生产传 strategyParadigms,单测可传定制名册)\n* @param defs 自定义 store 校验后的定义(含覆盖内置的同 id 记录)\n* @param deletedIds 墓碑 id(内置删除标记;命中者从名册剔除)\n*/\nfunction applyStrategyManagement(paradigms, defs, deletedIds) {\n\tconst deleted = new Set(deletedIds);\n\tconst overrides = /* @__PURE__ */ new Map();\n\tconst customs = [];\n\tfor (const def of defs) if (BUILTIN_STRATEGY_IDS.has(def.id)) overrides.set(def.id, def);\n\telse customs.push(def);\n\tconst roster = [];\n\tfor (const builtin of paradigms) {\n\t\tif (deleted.has(builtin.id)) continue;\n\t\troster.push(overrides.get(builtin.id) ?? builtin);\n\t}\n\treturn [...roster, ...customs];\n}\n/**\n* 内置策略 compute 源码导出(GUI「编辑内置」预填用)。\n*\n* 前提:内置 compute 一律自包含(指标数学内联,不引用外部闭包),方法速记\n* 形态 `compute(bars, params) { ... }` 归一为箭头形态 `(bars, params) => { ... }`\n* ——后者是 compileStrategySource 直接接受的形状。打包器若改写为箭头/function\n* 形态则原样透传(同样被 compileStrategySource 支持)。\n*/\nfunction builtinStrategySource(def) {\n\tconst raw = def.compute.toString().trim();\n\tconst method = raw.match(/^compute\\s*\\(([^)]*)\\)\\s*\\{([\\s\\S]*)\\}$/);\n\tif (method !== null) return `(${method[1]}) => {${method[2]}}`;\n\treturn raw;\n}\n/**\n* 内置策略 → 可编辑记录预填(GUI 编辑器初值)。params 序列化保留 step,\n* 让覆盖保存后参数步进与出厂一致(校验器接受合法 step)。\n*/\nfunction builtinStrategyRecord(def) {\n\tconst params = def.params.map((p) => ({\n\t\tkey: p.key,\n\t\tlabel: p.label,\n\t\tdefault: p.default,\n\t\tmin: p.min,\n\t\tmax: p.max,\n\t\tstep: p.step\n\t}));\n\treturn {\n\t\tid: def.id,\n\t\ttitle: def.name,\n\t\thorizon: def.horizon,\n\t\tsummary: def.summary,\n\t\tparamsJson: JSON.stringify(params),\n\t\tcomputeSource: builtinStrategySource(def),\n\t\tcreatedAt: Date.now()\n\t};\n}\n/**\n* 选股器名册合成(覆盖 + 墓碑,与 applyStrategyManagement 同模型):\n* 内置 − 墓碑,覆盖记录原位替换同 id 内置,自定义按传入顺序追加。\n*/\nfunction applyScreenerManagement(builtins, defs, deletedIds) {\n\tconst deleted = new Set(deletedIds);\n\tconst overrides = /* @__PURE__ */ new Map();\n\tconst customs = [];\n\tfor (const def of defs) if (BUILTIN_SCREENER_IDS.has(def.id)) overrides.set(def.id, def);\n\telse customs.push(def);\n\tconst roster = [];\n\tfor (const builtin of builtins) {\n\t\tif (deleted.has(builtin.id)) continue;\n\t\troster.push(overrides.get(builtin.id) ?? builtin);\n\t}\n\treturn [...roster, ...customs];\n}\n/**\n* 内置选股器 evaluate 源码导出(GUI「编辑内置」预填用),归一化规则同\n* builtinStrategySource:方法速记 `evaluate(bars, params) { ... }` → 箭头形态。\n*/\nfunction builtinScreenerSource(def) {\n\tconst raw = def.evaluate.toString().trim();\n\tconst method = raw.match(/^evaluate\\s*\\(([^)]*)\\)\\s*\\{([\\s\\S]*)\\}$/);\n\tif (method !== null) return `(${method[1]}) => {${method[2]}}`;\n\treturn raw;\n}\n/** 内置选股器 → 可编辑记录预填(columns 序列化保真)。 */\nfunction builtinScreenerRecord(def) {\n\tconst params = def.params.map((p) => ({\n\t\tkey: p.key,\n\t\tlabel: p.label,\n\t\tdefault: p.default,\n\t\tmin: p.min,\n\t\tmax: p.max,\n\t\tstep: p.step\n\t}));\n\tconst columns = def.columns.map((c) => c.format === void 0 ? {\n\t\tkey: c.key,\n\t\tlabel: c.label\n\t} : {\n\t\tkey: c.key,\n\t\tlabel: c.label,\n\t\tformat: c.format\n\t});\n\treturn {\n\t\tid: def.id,\n\t\ttitle: def.name,\n\t\thorizon: \"swing\",\n\t\tsummary: def.summary,\n\t\tparamsJson: JSON.stringify(params),\n\t\tcolumnsJson: JSON.stringify(columns),\n\t\tevaluateSource: builtinScreenerSource(def),\n\t\tcreatedAt: Date.now()\n\t};\n}\n//#endregion\nexport { BUILTIN_SCREENER_IDS, BUILTIN_STRATEGY_IDS, applyScreenerManagement, applyStrategyManagement, builtinScreenerRecord, builtinScreenerSource, builtinStrategyRecord, builtinStrategySource, isBuiltinScreenerId, isBuiltinStrategyId };\n","/**\n * Shell 面(最小结构镜像):client-ui-strategies 不 import\n * client-ui-trading 的内部模块(插件间协作一律走 cordis 服务 inject),\n * 这里只镜像视图用到的纯类型/纯函数面——类型漂移的代价是编译期可见,\n * 行为面(fetch/SSE)全部经 tradingBridge 服务。\n *\n * readJson/writeJson 是 localStorage 纯工具(shell 同款实现,~20 行),\n * 镜像成本低于为此在服务面开洞。\n */\n\n/** shell selection store 的最小形状面(hook selector 的输入类型)。 */\nexport interface SelectionState {\n instrument: { market: string; symbol: string; name?: string } | null\n}\n\n/** localStorage read that survives unavailable storage (privacy mode) and corrupt JSON. */\nexport function readJson<T>(key: string, fallback: T): T {\n try {\n const raw = localStorage.getItem(key)\n if (raw === null) return fallback\n return JSON.parse(raw) as T\n } catch {\n return fallback\n }\n}\n\n/** localStorage write that survives unavailable storage. */\nexport function writeJson(key: string, value: unknown): void {\n try {\n localStorage.setItem(key, JSON.stringify(value))\n } catch {\n /* storage unavailable — session-only degradation */\n }\n}","/**\n * 视图包内联矢量图标(shell icons.tsx 同款 outline 风格;只带本视图用到的)。\n */\nimport type { ReactElement } from 'react'\n\n/** 策略回测图表/仪表盘图标。 */\nexport function IconStrategy({ size = 32 }: { size?: number }): ReactElement {\n return (\n <svg viewBox=\"0 0 24 24\" width={size} height={size} aria-hidden=\"true\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"1.5\" strokeLinecap=\"round\" strokeLinejoin=\"round\">\n <rect x=\"3\" y=\"3\" width=\"18\" height=\"18\" rx=\"3\" />\n <path d=\"M7 16l3.5-4.5 3 3L17 9\" />\n <circle cx=\"17\" cy=\"9\" r=\"1.2\" fill=\"currentColor\" />\n </svg>\n )\n}","/**\n * 策略页展示文案的词典查表 helper(PR #56 评审 L7 拆出):\n * 独立模块切断 ScreenerPane ↔ StrategyView 的模块环(两文件曾互引,\n * 渲染期调用下当前安全,但顶层消费在打包重排下会 TDZ——本仓已有前科\n * d82167a)。同时统一「t 单次调用 + miss 比对回退」形状,消除逐格\n * 2–4 次重复 t() 调用。\n *\n * 键约定 strat.<id>[.summary/.param.<key>/.reason.<kind>]/\n * scr.<id>[.summary/.param.<key>/.col.<key>/.reason]。\n * 词典优先,miss 回退定义自带值——自定义策略(用户 author,单语)自动走回退,\n * host 纯库(packages/strategies)零 locale 依赖。\n */\nimport type { StrategyLocaleKey } from './contract.ts'\n\n/** 查表 miss 判定:SDK t() 在键缺失时返回 key 本身(契约,见 locale-contract 测试)。 */\nfunction translateOr(\n key: StrategyLocaleKey,\n fallback: string,\n t: (key: StrategyLocaleKey, params?: Record<string, unknown>) => string,\n params?: Record<string, unknown>,\n): string {\n const translated = t(key, params)\n return translated !== key ? translated : fallback\n}\n\nexport function strategyName(def: { id: string; name: string }, t: (key: StrategyLocaleKey, params?: Record<string, unknown>) => string): string {\n return translateOr(`strat.${def.id}` as StrategyLocaleKey, def.name, t)\n}\n\nexport function strategySummary(def: { id: string; summary: string }, t: (key: StrategyLocaleKey, params?: Record<string, unknown>) => string): string {\n return translateOr(`strat.${def.id}.summary` as StrategyLocaleKey, def.summary, t)\n}\n\nexport function paramLabel(def: { id: string }, param: { key: string; label: string }, t: (key: StrategyLocaleKey, params?: Record<string, unknown>) => string): string {\n return translateOr(`strat.${def.id}.param.${param.key}` as StrategyLocaleKey, param.label, t)\n}\n\nexport function screenerName(def: { id: string; name: string }, t: (key: StrategyLocaleKey, params?: Record<string, unknown>) => string): string {\n return translateOr(def.id as StrategyLocaleKey, def.name, t)\n}\n\nexport function screenerSummary(def: { id: string; summary: string }, t: (key: StrategyLocaleKey, params?: Record<string, unknown>) => string): string {\n return translateOr(`${def.id}.summary` as StrategyLocaleKey, def.summary, t)\n}\n\nexport function screenerParamLabel(def: { id: string }, param: { key: string; label: string }, t: (key: StrategyLocaleKey, params?: Record<string, unknown>) => string): string {\n return translateOr(`${def.id}.param.${param.key}` as StrategyLocaleKey, param.label, t)\n}\n\nexport function screenerColumnLabel(def: { id: string }, col: { key: string; label: string }, t: (key: StrategyLocaleKey, params?: Record<string, unknown>) => string): string {\n return translateOr(`${def.id}.col.${col.key}` as StrategyLocaleKey, col.label, t)\n}\n\n/** 选股器命中原因:reasonKey 词典命中(带插值参数)优先,miss 回退 zh 原文。 */\nexport function screenerReason(\n row: { reason: string; reasonKey?: string; reasonParams?: Readonly<Record<string, string | number>> },\n t: (key: StrategyLocaleKey, params?: Record<string, unknown>) => string,\n): string {\n if (row.reasonKey === undefined) return row.reason\n return translateOr(row.reasonKey as StrategyLocaleKey, row.reason, t, { ...(row.reasonParams ?? {}) })\n}\n\n/** 交易流水的离场原因:词典键优先(内置范式,en 下走当语模板),回退 zh 原文\n * (自定义策略无 reasonKey)。momentum 的 {cause} 槽是稳定枚举键,先翻译成\n * 当语文案再进模板插值。 */\nexport function exitReasonText(\n tr: { exitReason: string; exitReasonKey?: string; exitReasonParams?: Readonly<Record<string, string | number>> },\n t: (key: StrategyLocaleKey, params?: Record<string, unknown>) => string,\n): string {\n if (tr.exitReasonKey === undefined) return tr.exitReason\n const params: Record<string, unknown> = { ...(tr.exitReasonParams ?? {}) }\n if (typeof params.cause === 'string' && ['momentumNegative', 'belowBaseline'].includes(params.cause)) {\n const causeKey = `strat.momentum-12m.cause.${params.cause}` as StrategyLocaleKey\n params.cause = t(causeKey) !== causeKey ? t(causeKey) : params.cause\n }\n return translateOr(tr.exitReasonKey as StrategyLocaleKey, tr.exitReason, t, params)\n}","/**\n * 选股器编辑器(选股器管理,2026-09-07):新建/编辑选股器的表单面板。\n *\n * 与 StrategyEditor 同构,差异:columns 行编辑(key/label/format)+ evaluate\n * 源码 textarea(单时点截面判断,无信号序列语义);无期限字段(记录恒 'swing')。\n * 「校验」走浏览器 Worker 版 validateCustomScreener,「保存」本地预校验后桥 PUT\n * (host vm 复校验)。编辑内置选股器时经 builtinScreenerRecord 预填自包含源码。\n */\nimport { useMemo, useState } from 'react'\nimport {\n BUILTIN_SCREENER_IDS,\n validateCustomScreener,\n type StrategyParamSpec,\n} from '@dshtrading/strategies'\nimport type { CustomScreenerRecord } from '@dshtrading/strategies'\nimport type { ScreenerColumnSpec } from '@dshtrading/strategies'\nimport type { StrategyLocaleKey } from './contract.ts'\nimport css from './StrategyEditor.module.css'\n\nexport interface ScreenerEditorSaveInput {\n id: string\n title: string\n summary: string\n paramsJson: string\n columnsJson: string\n evaluateSource: string\n overridesScreener: boolean\n}\n\nexport interface ScreenerEditorProps {\n t: (key: StrategyLocaleKey, params?: Record<string, unknown>) => string\n /** 编辑初值;null = 新建。 */\n initial: CustomScreenerRecord | null\n /** 保存回调(桥 PUT);返回 null = 桥不可达。 */\n onSave: (input: ScreenerEditorSaveInput) => Promise<{ ok: true } | { ok: false; reason: string } | null>\n onClose: () => void\n /** 保存成功后的额外动作(父组件刷新名册)。 */\n onSaved: () => void\n}\n\ninterface ParamRow {\n key: string\n label: string\n default: string\n min: string\n max: string\n step: string\n}\n\ninterface ColumnRow {\n key: string\n label: string\n format: '' | 'percent' | 'number'\n}\n\nfunction rowsFromParamsJson(paramsJson: string): ParamRow[] {\n try {\n const parsed = JSON.parse(paramsJson) as StrategyParamSpec[]\n if (!Array.isArray(parsed)) return []\n return parsed.map((p) => ({\n key: String(p.key ?? ''),\n label: String(p.label ?? ''),\n default: String(p.default ?? ''),\n min: String(p.min ?? ''),\n max: String(p.max ?? ''),\n step: String(p.step ?? 1),\n }))\n } catch {\n return []\n }\n}\n\nfunction rowsFromColumnsJson(columnsJson: string): ColumnRow[] {\n try {\n const parsed = JSON.parse(columnsJson) as ScreenerColumnSpec[]\n if (!Array.isArray(parsed)) return []\n return parsed.map((c) => ({\n key: String(c.key ?? ''),\n label: String(c.label ?? ''),\n format: c.format === 'percent' || c.format === 'number' ? c.format : '',\n }))\n } catch {\n return []\n }\n}\n\nexport function ScreenerEditor({ t, initial, onSave, onClose, onSaved }: ScreenerEditorProps) {\n const isEdit = initial !== null\n const [id, setId] = useState(initial?.id ?? '')\n const [title, setTitle] = useState(initial?.title ?? '')\n const [summary, setSummary] = useState(initial?.summary ?? '')\n const [rows, setRows] = useState<ParamRow[]>(() => rowsFromParamsJson(initial?.paramsJson ?? '[]'))\n const [cols, setCols] = useState<ColumnRow[]>(() => rowsFromColumnsJson(initial?.columnsJson ?? '[]'))\n const [source, setSource] = useState(initial?.evaluateSource ?? '')\n const [busy, setBusy] = useState<'' | 'validating' | 'saving'>('')\n const [notice, setNotice] = useState<{ kind: 'ok' | 'error'; text: string } | null>(null)\n\n const idIsBuiltin = useMemo(() => BUILTIN_SCREENER_IDS.has(id.trim().toLowerCase()), [id])\n\n const buildInput = (): ScreenerEditorSaveInput | { error: string } => {\n const trimmedId = id.trim().toLowerCase()\n if (!trimmedId) return { error: `${t('sv.mgmt.field.id')}: ${t('sv.mgmt.fieldRequired')}` }\n const params: StrategyParamSpec[] = []\n for (const row of rows) {\n const key = row.key.trim()\n if (!key) continue\n const def = Number(row.default)\n const min = Number(row.min)\n const max = Number(row.max)\n const step = Number(row.step)\n if (!Number.isFinite(def) || !Number.isFinite(min) || !Number.isFinite(max)) {\n return { error: `${t('sv.mgmt.field.params')} [${key}]: ${t('sv.mgmt.fieldRequired')}` }\n }\n params.push({\n key,\n label: row.label.trim() || key,\n default: def,\n min: min,\n max: max,\n step: Number.isFinite(step) && step > 0 ? step : 1,\n })\n }\n const columns: ScreenerColumnSpec[] = []\n for (const col of cols) {\n const key = col.key.trim()\n if (!key) continue\n columns.push(col.format === '' ? { key, label: col.label.trim() || key } : { key, label: col.label.trim() || key, format: col.format })\n }\n if (columns.length === 0) {\n return { error: `${t('sv.mgmt.field.columns')}: ${t('sv.mgmt.fieldRequired')}` }\n }\n return {\n id: trimmedId,\n title: title.trim(),\n summary: summary.trim(),\n paramsJson: JSON.stringify(params),\n columnsJson: JSON.stringify(columns),\n evaluateSource: source,\n overridesScreener: idIsBuiltin,\n }\n }\n\n const validateCurrent = async (): Promise<string | undefined> => {\n const input = buildInput()\n if ('error' in input) return input.error\n const result = await validateCustomScreener({\n id: input.id,\n title: input.title,\n horizon: 'swing',\n summary: input.summary,\n paramsJson: input.paramsJson,\n columnsJson: input.columnsJson,\n evaluateSource: input.evaluateSource,\n createdAt: initial?.createdAt ?? Date.now(),\n })\n return result.ok ? undefined : result.reason\n }\n\n const handleValidate = async () => {\n setBusy('validating')\n setNotice(null)\n try {\n const reason = await validateCurrent()\n setNotice(reason ? { kind: 'error', text: reason } : { kind: 'ok', text: t('sv.mgmt.validationOkScreener') })\n } finally {\n setBusy('')\n }\n }\n\n const handleSave = async () => {\n const input = buildInput()\n if ('error' in input) {\n setNotice({ kind: 'error', text: input.error })\n return\n }\n if (!isEdit && input.overridesScreener) {\n if (!window.confirm(t('sv.mgmt.confirmOverrideScreener'))) return\n }\n setBusy('saving')\n setNotice(null)\n try {\n const reason = await validateCurrent()\n if (reason !== undefined) {\n setNotice({ kind: 'error', text: reason })\n return\n }\n const result = await onSave(input)\n if (result === null) {\n setNotice({ kind: 'error', text: t('sv.mgmt.saveFailed') })\n return\n }\n if (!result.ok) {\n setNotice({ kind: 'error', text: `${t('sv.mgmt.saveFailed')}: ${result.reason}` })\n return\n }\n onSaved()\n onClose()\n } finally {\n setBusy('')\n }\n }\n\n const updateRow = (index: number, patch: Partial<ParamRow>) => {\n setRows((prev) => prev.map((row, i) => (i === index ? { ...row, ...patch } : row)))\n }\n const updateCol = (index: number, patch: Partial<ColumnRow>) => {\n setCols((prev) => prev.map((col, i) => (i === index ? { ...col, ...patch } : col)))\n }\n\n return (\n <div className={css.overlay} role=\"dialog\" aria-modal=\"true\">\n <div className={css.panel}>\n <div className={css.panelHeader}>\n <span className={css.panelTitle}>{t('sv.mgmt.editorTitleScreener')}{isEdit ? ` · ${initial!.id}` : ''}</span>\n <button type=\"button\" className={css.closeBtn} onClick={onClose}>✕</button>\n </div>\n\n <div className={css.formGrid}>\n <label className={css.field}>\n <span className={css.fieldLabel}>{t('sv.mgmt.field.id')}</span>\n <input\n className={css.fieldInput}\n value={id}\n disabled={isEdit}\n onChange={(e) => setId(e.target.value)}\n placeholder=\"scr.custom-momentum\"\n />\n </label>\n <label className={css.field}>\n <span className={css.fieldLabel}>{t('sv.mgmt.field.title')}</span>\n <input className={css.fieldInput} value={title} onChange={(e) => setTitle(e.target.value)} />\n </label>\n <span />\n </div>\n\n <label className={css.field}>\n <span className={css.fieldLabel}>{t('sv.mgmt.field.summary')}</span>\n <input className={css.fieldInput} value={summary} onChange={(e) => setSummary(e.target.value)} />\n </label>\n\n <div className={css.field}>\n <span className={css.fieldLabel}>{t('sv.mgmt.field.params')}</span>\n <div className={css.paramTable}>\n <div className={css.paramHeadRow}>\n <span>{t('sv.mgmt.param.key')}</span>\n <span>{t('sv.mgmt.param.label')}</span>\n <span>{t('sv.mgmt.param.default')}</span>\n <span>{t('sv.mgmt.param.min')}</span>\n <span>{t('sv.mgmt.param.max')}</span>\n <span>{t('sv.mgmt.param.step')}</span>\n <span />\n </div>\n {rows.map((row, index) => (\n <div key={index} className={css.paramRow}>\n <input className={css.paramCell} value={row.key} onChange={(e) => updateRow(index, { key: e.target.value })} />\n <input className={css.paramCell} value={row.label} onChange={(e) => updateRow(index, { label: e.target.value })} />\n <input className={css.paramCell} type=\"number\" value={row.default} onChange={(e) => updateRow(index, { default: e.target.value })} />\n <input className={css.paramCell} type=\"number\" value={row.min} onChange={(e) => updateRow(index, { min: e.target.value })} />\n <input className={css.paramCell} type=\"number\" value={row.max} onChange={(e) => updateRow(index, { max: e.target.value })} />\n <input className={css.paramCell} type=\"number\" value={row.step} onChange={(e) => updateRow(index, { step: e.target.value })} />\n <button\n type=\"button\"\n className={css.paramRemove}\n title={t('sv.mgmt.removeParam')}\n onClick={() => setRows((prev) => prev.filter((_, i) => i !== index))}\n >✕</button>\n </div>\n ))}\n <button\n type=\"button\"\n className={css.addParamBtn}\n onClick={() => setRows((prev) => [...prev, { key: '', label: '', default: '0', min: '0', max: '100', step: '1' }])}\n >+ {t('sv.mgmt.addParam')}</button>\n </div>\n </div>\n\n <div className={css.field}>\n <span className={css.fieldLabel}>{t('sv.mgmt.field.columns')}</span>\n <div className={css.paramTable}>\n <div className={css.columnHeadRow}>\n <span>{t('sv.mgmt.param.key')}</span>\n <span>{t('sv.mgmt.param.label')}</span>\n <span>{t('sv.mgmt.column.format')}</span>\n <span />\n </div>\n {cols.map((col, index) => (\n <div key={index} className={css.columnRow}>\n <input className={css.paramCell} value={col.key} onChange={(e) => updateCol(index, { key: e.target.value })} />\n <input className={css.paramCell} value={col.label} onChange={(e) => updateCol(index, { label: e.target.value })} />\n <select\n className={css.paramCell}\n value={col.format}\n onChange={(e) => updateCol(index, { format: e.target.value as ColumnRow['format'] })}\n >\n <option value=\"\">number</option>\n <option value=\"percent\">percent</option>\n </select>\n <button\n type=\"button\"\n className={css.paramRemove}\n title={t('sv.mgmt.removeParam')}\n onClick={() => setCols((prev) => prev.filter((_, i) => i !== index))}\n >✕</button>\n </div>\n ))}\n <button\n type=\"button\"\n className={css.addParamBtn}\n onClick={() => setCols((prev) => [...prev, { key: '', label: '', format: '' }])}\n >+ {t('sv.mgmt.addColumn')}</button>\n </div>\n </div>\n\n <label className={css.field}>\n <span className={css.fieldLabel}>{t('sv.mgmt.field.evaluate')}</span>\n <textarea\n className={css.sourceArea}\n value={source}\n spellCheck={false}\n onChange={(e) => setSource(e.target.value)}\n rows={12}\n />\n </label>\n\n {notice !== null && (\n <div className={notice.kind === 'ok' ? css.noticeOk : css.noticeError}>{notice.text}</div>\n )}\n\n <div className={css.actionBar}>\n <button type=\"button\" className={css.secondaryBtn} disabled={busy !== ''} onClick={() => { void handleValidate() }}>\n {busy === 'validating' ? t('sv.mgmt.validating') : t('sv.mgmt.validate')}\n </button>\n <div className={css.actionSpacer} />\n <button type=\"button\" className={css.secondaryBtn} onClick={onClose}>{t('sv.mgmt.cancel')}</button>\n <button type=\"button\" className={css.primaryBtn} disabled={busy !== ''} onClick={() => { void handleSave() }}>\n {busy === 'saving' ? t('sv.mgmt.validating') : t('sv.mgmt.save')}\n </button>\n </div>\n </div>\n </div>\n )\n}\n","/**\n * 选股策略面板(一级「选股策略」分区的内容视图):\n * 1. 选股器卡列表(内置 − 墓碑、覆盖原位替换、自定义追加;来源徽标 + 管理操作)\n * 2. 参数 + 扫描池上限 + 运行/停止条\n * 3. 扫描进度条 + 命中结果表(代码/名称/现价/动态指标列/信号说明)\n *\n * 扫描调度在本层:名册 fetchSymbols(桥 30min 缓存)→ 截断到扫描池上限 →\n * 受限并发逐标的拉 500 根日 K → 纯函数 evaluate。数据不足的标的由契约\n * 返回 null 静默跳过;单标的失败(含空 K 线响应)只计数不中断扫描。\n *\n * 选股器管理(2026-09-07):名册经 applyScreenerManagement 合成;桥拉取记录\n * 与墓碑,SSE 'strategies' 信号重拉;编辑器(ScreenerEditor)新建/编辑/覆盖。\n */\nimport { useEffect, useMemo, useRef, useState } from 'react'\nimport {\n screenerParadigms,\n validateCustomScreener,\n applyScreenerManagement,\n isBuiltinScreenerId,\n builtinScreenerRecord,\n workerComputeRunner,\n fmtPrice,\n type Kline,\n type ScreenerDefinition,\n type CustomScreenerRecord,\n} from '@dshtrading/strategies'\nimport { readJson, writeJson } from './shell-faces.ts'\nimport { screenerName, screenerSummary, screenerParamLabel, screenerColumnLabel, screenerReason } from './strategy-locale.ts'\nimport { ScreenerEditor, type ScreenerEditorSaveInput } from './ScreenerEditor.tsx'\nimport type { StrategyLocaleKey } from './contract.ts'\nimport css from './StrategyView.module.css'\n\ninterface ScreenerStateStored {\n screenerId: string\n paramsMap: Record<string, Record<string, number>>\n scanLimit: number\n}\n\nconst SCREENER_STORE_KEY = 'dshtrading.screener.v1'\n\n/** 自定义选股器扫描时的单符号 Worker 超时(真实 500 根 K 线,较校验样例放宽)。 */\nconst SCAN_EVAL_TIMEOUT_MS = 1000\n\nconst DEFAULT_STORED: ScreenerStateStored = {\n screenerId: 'scr.ma-bull-align',\n paramsMap: {},\n scanLimit: 300,\n}\n\n/** 扫描并发上限:保护公共数据源(每标的 1 次日 K 请求),不追求扫描速度。 */\nconst SCAN_CONCURRENCY = 5\n\nconst SCAN_LIMIT_MIN = 50\nconst SCAN_LIMIT_MAX = 800\n\n/**\n * 单次扫描的日 K 窗口。必须覆盖全部内置选股器在参数上限下的数据需求,\n * 否则 evaluate 对所有标的返回 null(数据不足),扫描会以「零命中」的\n * 假阴性收场:near-high 最长(window 上限 500),above-ma 次之\n * (period 300 + slopeBars 60 - 1 = 359)。\n */\nconst SCAN_KLINE_LIMIT = 500\n\ninterface ScanRow {\n readonly symbol: string\n readonly name?: string\n readonly price: number\n readonly metrics: Readonly<Record<string, number>>\n readonly reason: string\n readonly reasonKey?: string\n readonly reasonParams?: Readonly<Record<string, string | number>>\n}\n\nfunction formatMetric(val: number, format?: 'percent' | 'number'): string {\n if (!Number.isFinite(val)) return '--'\n return format === 'percent' ? `${val.toFixed(2)}%` : val.toFixed(2)\n}\n\nexport interface ScreenerPaneProps {\n t: (key: StrategyLocaleKey, params?: Record<string, unknown>) => string\n market: string\n bridge: {\n fetchKlines: (market: string, symbol: string, interval: string, limit: number) => Promise<Kline[]>\n fetchSymbols: (market: string) => Promise<Array<{ symbol: string; name?: string }>>\n subscribeTradingEvents?: ((handlers: { strategies?: () => void }) => () => void) | undefined\n fetchCustomScreeners?: (() => Promise<Array<Record<string, unknown>>>) | undefined\n saveCustomScreener?: ((input: ScreenerEditorSaveInput) => Promise<{ ok: true } | { ok: false; reason: string } | null>) | undefined\n deleteCustomScreener?: ((id: string) => Promise<boolean>) | undefined\n resetScreener?: ((id: string) => Promise<{ ok: boolean; changed: boolean } | null>) | undefined\n fetchStrategyTombstones?: (() => Promise<string[]>) | undefined\n }\n}\n\nexport function ScreenerPane({ t, market, bridge }: ScreenerPaneProps) {\n const [stored] = useState<ScreenerStateStored>(() => readJson<ScreenerStateStored>(SCREENER_STORE_KEY, DEFAULT_STORED))\n const [selectedId, setSelectedId] = useState<string>(stored.screenerId ?? DEFAULT_STORED.screenerId)\n const [paramsMap, setParamsMap] = useState<Record<string, Record<string, number>>>(stored.paramsMap ?? {})\n const [scanLimit, setScanLimit] = useState<number>(() => {\n const raw = stored.scanLimit\n if (typeof raw !== 'number' || !Number.isFinite(raw)) return DEFAULT_STORED.scanLimit\n return Math.min(SCAN_LIMIT_MAX, Math.max(SCAN_LIMIT_MIN, raw))\n })\n\n // 选股器管理名册:桥拉取记录 + 墓碑 → 校验 → applyScreenerManagement 合成;\n // SSE 'strategies' 信号重拉(screener_* 工具/桥写入即时上榜)。\n const [customDefs, setCustomDefs] = useState<ScreenerDefinition[]>([])\n const [records, setRecords] = useState<CustomScreenerRecord[]>([])\n const [tombstones, setTombstones] = useState<string[]>([])\n const [reloadKey, setReloadKey] = useState(0)\n const bridgeRef = useRef(bridge)\n if (bridgeRef.current === null) bridgeRef.current = bridge\n const stableBridge = bridgeRef.current\n const hasManagement = stableBridge.fetchCustomScreeners !== undefined\n && stableBridge.saveCustomScreener !== undefined\n && stableBridge.deleteCustomScreener !== undefined\n && stableBridge.resetScreener !== undefined\n\n useEffect(() => {\n if (!hasManagement || stableBridge === undefined) return\n let cancelled = false\n // generation 令牌:SSE 突发时同一 effect 内会并发起多个 load(),后完成的\n // 旧响应不得覆盖新状态——只允许最新一代落 setState(与 StrategyView 同款)。\n let generation = 0\n const load = async () => {\n const gen = ++generation\n try {\n const rawRecords = await stableBridge.fetchCustomScreeners!()\n const defs: ScreenerDefinition[] = []\n const validRecords: CustomScreenerRecord[] = []\n for (const record of rawRecords) {\n const result = await validateCustomScreener(record as never)\n if (result.ok) {\n defs.push(result.definition)\n validRecords.push(result.record)\n }\n }\n const deleted = stableBridge.fetchStrategyTombstones !== undefined\n ? await stableBridge.fetchStrategyTombstones()\n : []\n if (cancelled || gen !== generation) return\n setCustomDefs(defs)\n setRecords(validRecords)\n setTombstones(deleted)\n } catch (e) {\n console.warn('[dsh-trading] failed to load custom screeners:', e)\n }\n }\n void load()\n const unsubscribe = stableBridge.subscribeTradingEvents?.({ strategies: () => { void load() } })\n return () => { cancelled = true; unsubscribe?.() }\n }, [stableBridge, hasManagement, reloadKey])\n\n // 名册 = 内置 − 墓碑,覆盖原位替换,自定义追加(无管理面 = 内置原样,旧行为)。\n const roster = useMemo<ScreenerDefinition[]>(() => (\n hasManagement ? applyScreenerManagement(screenerParadigms, customDefs, tombstones) : [...screenerParadigms]\n ), [customDefs, tombstones, hasManagement])\n\n const modifiedIds = useMemo(\n () => new Set(records.map((r) => r.id).filter((id) => isBuiltinScreenerId(id))),\n [records],\n )\n\n const tombstonedScreeners = useMemo<ScreenerDefinition[]>(() => {\n if (!hasManagement) return []\n return screenerParadigms.filter((d) => tombstones.includes(d.id))\n }, [tombstones, hasManagement])\n\n const currentScreener = useMemo<ScreenerDefinition | null>(() => {\n // 全部内置已删且无自定义时名册可为空(选股器管理边界):返回 null 走空态。\n return roster.find((s) => s.id === selectedId) ?? roster[0] ?? null\n }, [roster, selectedId])\n\n const currentParams = useMemo<Record<string, number>>(() => {\n if (currentScreener === null) return {}\n const custom = paramsMap[currentScreener.id] ?? {}\n const res: Record<string, number> = {}\n for (const p of currentScreener.params) {\n res[p.key] = custom[p.key] ?? p.default\n }\n return res\n }, [currentScreener, paramsMap])\n\n // 同步持久化\n const persist = (next: ScreenerStateStored) => {\n writeJson(SCREENER_STORE_KEY, next)\n }\n\n const handleParamChange = (key: string, value: number) => {\n if (currentScreener === null) return\n const nextMap = {\n ...paramsMap,\n [currentScreener.id]: { ...(paramsMap[currentScreener.id] ?? {}), [key]: value },\n }\n setParamsMap(nextMap)\n persist({ screenerId: selectedId, paramsMap: nextMap, scanLimit })\n }\n\n const handleScanLimitChange = (value: number) => {\n if (!Number.isFinite(value)) return\n const clamped = Math.min(SCAN_LIMIT_MAX, Math.max(SCAN_LIMIT_MIN, Math.round(value)))\n setScanLimit(clamped)\n persist({ screenerId: selectedId, paramsMap, scanLimit: clamped })\n }\n\n /* ---------------- 选股器管理动作(2026-09-07) ---------------- */\n\n const forgetLocalParams = (id: string) => {\n setParamsMap((prev) => {\n if (prev[id] === undefined) return prev\n const next = { ...prev }\n delete next[id]\n return next\n })\n }\n\n const handleDeleteScreener = async (screener: ScreenerDefinition) => {\n if (stableBridge.deleteCustomScreener === undefined) return\n if (!window.confirm(t('sv.mgmt.confirmDelete'))) return\n await stableBridge.deleteCustomScreener(screener.id)\n forgetLocalParams(screener.id)\n if (selectedId === screener.id) setSelectedId('')\n }\n\n const handleRestoreScreener = async (id: string) => {\n if (stableBridge.resetScreener === undefined) return\n // 已修改内置 = 覆盖记录将被清除且不可恢复(出厂代码不受影响),需显式确认。\n if (modifiedIds.has(id) && !window.confirm(t('sv.mgmt.confirmRestore'))) return\n const result = await stableBridge.resetScreener(id)\n if (result !== null && result.ok) forgetLocalParams(id)\n }\n\n const handleEditScreener = (screener: ScreenerDefinition) => {\n // 内置/已修改内置:从代码定义导出自包含源码预填;自定义:用 store 原记录。\n const record = modifiedIds.has(screener.id) || !isBuiltinScreenerId(screener.id)\n ? records.find((r) => r.id === screener.id) ?? null\n : builtinScreenerRecord(screener)\n if (record !== null) setEditor({ initial: record })\n }\n\n const handleSaveFromEditor = async (input: ScreenerEditorSaveInput) => {\n if (stableBridge.saveCustomScreener === undefined) return null\n return stableBridge.saveCustomScreener(input)\n }\n\n // 编辑器状态:null = 关闭;record = null 新建,否则编辑预填。\n const [editor, setEditor] = useState<{ initial: CustomScreenerRecord | null } | null>(null)\n\n // 扫描状态;runId 作为取消/过期令牌(自增即作废上一轮,worker 循环自查)。\n // scanScreener:扫描开始时冻结的选股器定义——SSE 名册重载可中途换 currentScreener,\n // 结果表(表头列 + 行数据)必须按同一份定义渲染,否则列错位(2026-09-07 审查)。\n const runIdRef = useRef(0)\n const [scanning, setScanning] = useState(false)\n const [scanScreener, setScanScreener] = useState<ScreenerDefinition | null>(null)\n const [progress, setProgress] = useState({ done: 0, total: 0, hits: 0, failed: 0 })\n const [universeSize, setUniverseSize] = useState<number | null>(null)\n const [rows, setRows] = useState<ScanRow[]>([])\n const [errorMsg, setErrorMsg] = useState<string | null>(null)\n\n const handleStop = () => {\n runIdRef.current += 1\n setScanning(false)\n }\n\n const handleRun = async () => {\n if (currentScreener === null) return\n const runId = runIdRef.current + 1\n runIdRef.current = runId\n setScanning(true)\n setScanScreener(currentScreener)\n setRows([])\n setErrorMsg(null)\n setProgress({ done: 0, total: 0, hits: 0, failed: 0 })\n setUniverseSize(null)\n try {\n // 能力预检:宿主 tradingBridge 提供方若为旧版(无 fetchSymbols),\n // 落到「名册不可用」的诚实降级文案,而非泛化的 TypeError 报错。\n if (typeof bridge.fetchSymbols !== 'function') {\n setErrorMsg(t('sv.screener.noUniverse'))\n setScanning(false)\n return\n }\n const universe = await bridge.fetchSymbols(market)\n if (runIdRef.current !== runId) return\n if (!universe || universe.length === 0) {\n setErrorMsg(t('sv.screener.noUniverse'))\n setScanning(false)\n return\n }\n const capped = universe.slice(0, scanLimit)\n setUniverseSize(universe.length)\n setProgress({ done: 0, total: capped.length, hits: 0, failed: 0 })\n\n const hits: ScanRow[] = []\n let done = 0\n let failed = 0\n let cursor = 0\n\n // 自定义选股器 = 用户源码 → 扫描时走 Worker 超时熔断(1000ms/符号,\n // 远高于校验样例的 100ms:真实 500 根 K 线计算量更大)。源码从名册\n // 合成时的 store 记录取(builtinScreenerRecord 仅用于编辑预填,不在扫描面)。\n // 内置选股器 = 代码常量(可信任,且无源码形态)→ 维持同步直调用(旧行为)。\n const evaluateSourceById = new Map(records.map((r) => [r.id, r.evaluateSource] as const))\n const evalOne = async (bars: Kline[]): Promise<ReturnType<ScreenerDefinition['evaluate']>> => {\n const source = evaluateSourceById.get(currentScreener.id)\n if (source === undefined) return currentScreener.evaluate(bars, currentParams)\n return (await workerComputeRunner(source, bars, currentParams, SCAN_EVAL_TIMEOUT_MS)) as never\n }\n\n const worker = async () => {\n while (cursor < capped.length && runIdRef.current === runId) {\n const inst = capped[cursor]!\n cursor += 1\n try {\n const bars = await bridge.fetchKlines(market, inst.symbol, '1d', SCAN_KLINE_LIMIT)\n if (runIdRef.current !== runId) return\n if (bars && bars.length > 0) {\n const match = await evalOne(bars)\n if (match) {\n hits.push({\n symbol: inst.symbol,\n ...(inst.name ? { name: inst.name } : {}),\n price: bars[bars.length - 1]!.close,\n metrics: match.metrics,\n reason: match.reason,\n ...(match.reasonKey !== undefined ? { reasonKey: match.reasonKey } : {}),\n ...(match.reasonParams !== undefined ? { reasonParams: match.reasonParams } : {}),\n })\n }\n } else {\n // 空响应(如上游静默返回 [])也按失败计:否则整体断供会被\n // 误报成「扫描成功、零命中」。\n failed += 1\n }\n } catch {\n failed += 1\n }\n done += 1\n if (runIdRef.current !== runId) return\n setProgress({ done, total: capped.length, hits: hits.length, failed })\n setRows([...hits])\n }\n }\n\n await Promise.all(Array.from({ length: Math.min(SCAN_CONCURRENCY, capped.length) }, () => worker()))\n if (runIdRef.current !== runId) return\n // 有失败就明示(含空响应计数),不再被「已有命中」掩盖——命中与失败\n // 并存时用户仍需知道覆盖面有缺口。\n if (failed > 0) {\n setErrorMsg(`${t('sv.error.failed')} (${failed}/${capped.length})`)\n }\n } catch (e) {\n if (runIdRef.current !== runId) return\n setErrorMsg(`${t('sv.error.failed')}: ${String((e as Error)?.message ?? e)}`)\n } finally {\n if (runIdRef.current === runId) setScanning(false)\n }\n }\n\n if (currentScreener === null && tombstonedScreeners.length === 0 && !hasManagement) {\n // 无管理面的老壳 + 空名册:理论不可达(内置名册静态非空),保守空态。\n return (\n <div className={css.emptyState}>\n <div>{t('sv.screener.rosterEmpty')}</div>\n </div>\n )\n }\n\n return (\n <>\n {/* 工具行:新建选股器(管理面可用时) */}\n {hasManagement && (\n <div className={css.mgmtRow}>\n <span />\n <button type=\"button\" className={css.newStrategyBtn} onClick={() => setEditor({ initial: null })}>\n + {t('sv.mgmt.newScreener')}\n </button>\n </div>\n )}\n\n {/* 选股器卡片(来源徽标 + 管理操作;扫描中锁定:行数据按运行时捕获的\n 选股器评估,中途切换会造成表头/指标列/信号说明与行内容错位) */}\n <div className={css.strategyCards}>\n {roster.map((screener) => {\n const modified = modifiedIds.has(screener.id)\n const builtin = isBuiltinScreenerId(screener.id)\n return (\n <div\n key={screener.id}\n className={css.strategyCard}\n data-active={screener.id === selectedId ? 'true' : undefined}\n data-disabled={scanning ? 'true' : undefined}\n onClick={() => { if (!scanning) setSelectedId(screener.id) }}\n >\n <div className={css.cardTitleRow}>\n <span className={css.cardTitle}>{screenerName(screener, t)}</span>\n <span\n className={css.cardBadge}\n data-kind={modified ? 'modified' : builtin ? 'builtin' : 'custom'}\n >\n {t(modified ? 'sv.mgmt.badge.modified' : builtin ? 'sv.mgmt.badge.builtin' : 'sv.mgmt.badge.custom')}\n </span>\n </div>\n <div className={css.cardSummary}>{screenerSummary(screener, t)}</div>\n {hasManagement && !scanning && (\n <div className={css.cardActions} onClick={(e) => e.stopPropagation()}>\n <button type=\"button\" className={css.cardActionBtn} onClick={() => handleEditScreener(screener)}>\n {t('sv.mgmt.edit')}\n </button>\n {builtin && modified && (\n <button type=\"button\" className={css.cardActionBtn} onClick={() => { void handleRestoreScreener(screener.id) }}>\n {t('sv.mgmt.restore')}\n </button>\n )}\n <button\n type=\"button\"\n className={css.cardActionBtn}\n data-danger=\"true\"\n onClick={() => { void handleDeleteScreener(screener) }}\n >\n {t('sv.mgmt.delete')}\n </button>\n </div>\n )}\n </div>\n )\n })}\n {tombstonedScreeners.map((screener) => (\n <div key={screener.id} className={css.strategyCard} data-deleted=\"true\">\n <div className={css.cardTitleRow}>\n <span className={css.cardTitle}>{screenerName(screener, t)}</span>\n <span className={css.cardBadge} data-kind=\"deleted\">{t('sv.mgmt.deleted')}</span>\n </div>\n <div className={css.cardSummary}>{screenerSummary(screener, t)}</div>\n <div className={css.cardActions} onClick={(e) => e.stopPropagation()}>\n <button type=\"button\" className={css.cardActionBtn} onClick={() => { void handleRestoreScreener(screener.id) }}>\n {t('sv.mgmt.restore')}\n </button>\n </div>\n </div>\n ))}\n </div>\n\n {currentScreener === null ? (\n /* 名册为空(全部内置已删且无自定义,选股器管理边界)→ 空态 */\n <div className={css.emptyState}>\n <div>{t('sv.screener.rosterEmpty')}</div>\n </div>\n ) : (\n <>\n {/* 参数 + 扫描池上限 + 运行条 */}\n <div className={css.configBar}>\n {currentScreener.params.map((p) => (\n <div key={p.key} className={css.paramGroup}>\n <label className={css.paramLabel}>{screenerParamLabel(currentScreener, p, t)}:</label>\n <input\n type=\"number\"\n className={css.paramInput}\n min={p.min}\n max={p.max}\n step={p.step}\n disabled={scanning}\n value={currentParams[p.key] ?? p.default}\n onChange={(e) => {\n const numVal = parseFloat(e.target.value)\n if (!Number.isNaN(numVal)) handleParamChange(p.key, numVal)\n }}\n />\n </div>\n ))}\n\n <div className={css.paramGroup}>\n <label className={css.paramLabel}>{t('sv.screener.scanLimit')}:</label>\n <input\n type=\"number\"\n className={css.paramInput}\n min={SCAN_LIMIT_MIN}\n max={SCAN_LIMIT_MAX}\n step={50}\n disabled={scanning}\n value={scanLimit}\n onChange={(e) => {\n const numVal = parseFloat(e.target.value)\n if (!Number.isNaN(numVal)) handleScanLimitChange(numVal)\n }}\n />\n </div>\n\n {scanning ? (\n <button type=\"button\" className={css.runBtn} onClick={handleStop}>\n {t('sv.screener.stop')}\n </button>\n ) : (\n <button type=\"button\" className={css.runBtn} onClick={() => { void handleRun() }}>\n {t('sv.screener.run')}\n </button>\n )}\n </div>\n\n {/* 进度与名册信息 */}\n {(scanning || universeSize !== null) && (\n <div className={css.scanMeta}>\n <span>\n {t('sv.screener.universePrefix')} {universeSize ?? '--'} · {t('sv.screener.scanned')}{' '}\n {progress.done}/{progress.total} · {t('sv.screener.hits')} {progress.hits} ·{' '}\n {t('sv.screener.failed')} {progress.failed}\n </span>\n <div className={css.progressWrap}>\n <div\n className={css.progressFill}\n style={{ width: progress.total > 0 ? `${(progress.done / progress.total) * 100}%` : '0%' }}\n />\n </div>\n </div>\n )}\n\n {errorMsg && <div className={css.errorMessage}>{errorMsg}</div>}\n\n {/* 命中结果表(表头按 scanScreener 冻结定义渲染,避免扫描中 SSE 名册\n 重载换列后列与行数据错位;非扫描态回落 currentScreener) */}\n <div className={css.tableSection}>\n <div className={css.tableTitle}>\n {t('sv.screener.hits')} ({rows.length})\n </div>\n <div className={css.tradesTableWrapper}>\n <table className={css.tradesTable}>\n <thead>\n <tr>\n <th>{t('sv.screener.col.symbol')}</th>\n <th>{t('sv.screener.col.name')}</th>\n <th>{t('sv.screener.col.price')}</th>\n {(scanning ? scanScreener : currentScreener)?.columns.map((col) => (\n <th key={col.key}>{screenerColumnLabel(scanning ? scanScreener! : currentScreener, col, t)}</th>\n ))}\n <th>{t('sv.screener.col.reason')}</th>\n </tr>\n </thead>\n <tbody>\n {rows.length === 0 ? (\n <tr>\n <td colSpan={4 + (scanning ? scanScreener : currentScreener)!.columns.length} className={css.tableEmptyCell}>\n {scanning\n ? t('sv.screener.scanning')\n : progress.total > 0 && progress.failed === 0\n ? t('sv.screener.noHits')\n : t('sv.screener.emptyHint')}\n </td>\n </tr>\n ) : (\n rows.map((row) => (\n <tr key={row.symbol}>\n <td>{row.symbol}</td>\n <td className={css.nameCell}>{row.name ?? '--'}</td>\n <td>{fmtPrice(row.price)}</td>\n {(scanning ? scanScreener : currentScreener)!.columns.map((col) => (\n <td key={col.key}>{formatMetric(row.metrics[col.key] ?? NaN, col.format)}</td>\n ))}\n <td className={css.reasonCell}>{screenerReason(row, t)}</td>\n </tr>\n ))\n )}\n </tbody>\n </table>\n </div>\n </div>\n </>\n )}\n\n {/* 选股器编辑器(新建/编辑/覆盖内置;模态覆盖层) */}\n {editor !== null && (\n <ScreenerEditor\n t={t}\n initial={editor.initial}\n onSave={handleSaveFromEditor}\n onSaved={() => setReloadKey((k) => k + 1)}\n onClose={() => setEditor(null)}\n />\n )}\n </>\n )\n}\n","/**\n * 策略编辑器(策略管理,2026-09-07):新建/编辑策略的表单面板。\n *\n * - 元数据(id/title/horizon/summary)+ 参数规格行编辑 + compute 源码 textarea。\n * - 「校验」走浏览器 Worker 版 validateCustomStrategy(多场景试算 + 信号序列),\n * 即时反馈不落盘;「保存」先本地预校验再交桥 PUT(host 侧 vm 沙箱复校验,\n * 通过才落盘)——两侧校验器同源(validate.ts),结果一致。\n * - 新建时 id 撞内置范式 → confirm 确认后带 overridesBuiltin 提交(桥的\n * TRADING_STRATEGY_OVERRIDE_CONFIRM 闸门要求显式确认位);编辑内置同理。\n */\nimport { useMemo, useState } from 'react'\nimport {\n BUILTIN_STRATEGY_IDS,\n validateCustomStrategy,\n type StrategyHorizon,\n type StrategyParamSpec,\n} from '@dshtrading/strategies'\nimport type { CustomStrategyRecord } from '@dshtrading/strategies'\nimport type { StrategyLocaleKey } from './contract.ts'\nimport css from './StrategyEditor.module.css'\n\nexport interface StrategyEditorSaveInput {\n id: string\n title: string\n horizon: StrategyHorizon\n summary: string\n paramsJson: string\n computeSource: string\n overridesBuiltin: boolean\n}\n\nexport interface StrategyEditorProps {\n t: (key: StrategyLocaleKey, params?: Record<string, unknown>) => string\n /** 编辑初值;null = 新建。 */\n initial: CustomStrategyRecord | null\n /** 保存回调(桥 PUT);返回 null = 桥不可达。 */\n onSave: (input: StrategyEditorSaveInput) => Promise<{ ok: true } | { ok: false; reason: string } | null>\n onClose: () => void\n /** 保存成功后的额外动作(父组件刷新名册)。 */\n onSaved: () => void\n}\n\nconst HORIZONS: readonly StrategyHorizon[] = ['short', 'swing', 'long']\n\ninterface ParamRow {\n key: string\n label: string\n default: string\n min: string\n max: string\n step: string\n}\n\nfunction rowsFromParamsJson(paramsJson: string): ParamRow[] {\n try {\n const parsed = JSON.parse(paramsJson) as StrategyParamSpec[]\n if (!Array.isArray(parsed)) return []\n return parsed.map((p) => ({\n key: String(p.key ?? ''),\n label: String(p.label ?? ''),\n default: String(p.default ?? ''),\n min: String(p.min ?? ''),\n max: String(p.max ?? ''),\n step: String(p.step ?? 1),\n }))\n } catch {\n return []\n }\n}\n\nexport function StrategyEditor({ t, initial, onSave, onClose, onSaved }: StrategyEditorProps) {\n const isEdit = initial !== null\n const [id, setId] = useState(initial?.id ?? '')\n const [title, setTitle] = useState(initial?.title ?? '')\n const [horizon, setHorizon] = useState<StrategyHorizon>(initial?.horizon ?? 'short')\n const [summary, setSummary] = useState(initial?.summary ?? '')\n const [rows, setRows] = useState<ParamRow[]>(() => rowsFromParamsJson(initial?.paramsJson ?? '[]'))\n const [source, setSource] = useState(initial?.computeSource ?? '')\n const [busy, setBusy] = useState<'' | 'validating' | 'saving'>('')\n const [notice, setNotice] = useState<{ kind: 'ok' | 'error'; text: string } | null>(null)\n\n const idIsBuiltin = useMemo(() => BUILTIN_STRATEGY_IDS.has(id.trim().toLowerCase()), [id])\n\n const buildInput = (): StrategyEditorSaveInput | { error: string } => {\n const trimmedId = id.trim().toLowerCase()\n if (!trimmedId) return { error: `${t('sv.mgmt.field.id')}: ${t('sv.mgmt.fieldRequired')}` }\n const params: StrategyParamSpec[] = []\n for (const row of rows) {\n const key = row.key.trim()\n if (!key) continue\n const def = Number(row.default)\n const min = Number(row.min)\n const max = Number(row.max)\n const step = Number(row.step)\n if (!Number.isFinite(def) || !Number.isFinite(min) || !Number.isFinite(max)) {\n return { error: `${t('sv.mgmt.field.params')} [${key}]: ${t('sv.mgmt.fieldRequired')}` }\n }\n params.push({\n key,\n label: row.label.trim() || key,\n default: def,\n min: min,\n max: max,\n step: Number.isFinite(step) && step > 0 ? step : 1,\n })\n }\n return {\n id: trimmedId,\n title: title.trim(),\n horizon,\n summary: summary.trim(),\n paramsJson: JSON.stringify(params),\n computeSource: source,\n // 编辑内置 = 覆盖语义;新建撞内置 = 显式确认后覆盖。\n overridesBuiltin: idIsBuiltin,\n }\n }\n\n const handleValidate = async () => {\n const input = buildInput()\n if ('error' in input) {\n setNotice({ kind: 'error', text: input.error })\n return\n }\n setBusy('validating')\n setNotice(null)\n try {\n const result = await validateCustomStrategy({\n id: input.id,\n title: input.title,\n horizon: input.horizon,\n summary: input.summary,\n paramsJson: input.paramsJson,\n computeSource: input.computeSource,\n createdAt: initial?.createdAt ?? Date.now(),\n })\n setNotice(\n result.ok\n ? { kind: 'ok', text: t('sv.mgmt.validationOk') }\n : { kind: 'error', text: result.reason },\n )\n } finally {\n setBusy('')\n }\n }\n\n const handleSave = async () => {\n const input = buildInput()\n if ('error' in input) {\n setNotice({ kind: 'error', text: input.error })\n return\n }\n if (!isEdit && input.overridesBuiltin) {\n if (!window.confirm(t('sv.mgmt.confirmOverride'))) return\n }\n // 本地预校验(Worker 试算)先行,给出即时反馈;host 侧保存时还会 vm 复校验。\n setBusy('saving')\n setNotice(null)\n try {\n const pre = await validateCustomStrategy({\n id: input.id,\n title: input.title,\n horizon: input.horizon,\n summary: input.summary,\n paramsJson: input.paramsJson,\n computeSource: input.computeSource,\n createdAt: initial?.createdAt ?? Date.now(),\n })\n if (!pre.ok) {\n setNotice({ kind: 'error', text: pre.reason })\n return\n }\n const result = await onSave(input)\n if (result === null) {\n setNotice({ kind: 'error', text: t('sv.mgmt.saveFailed') })\n return\n }\n if (!result.ok) {\n setNotice({ kind: 'error', text: `${t('sv.mgmt.saveFailed')}: ${result.reason}` })\n return\n }\n onSaved()\n onClose()\n } finally {\n setBusy('')\n }\n }\n\n const updateRow = (index: number, patch: Partial<ParamRow>) => {\n setRows((prev) => prev.map((row, i) => (i === index ? { ...row, ...patch } : row)))\n }\n\n return (\n <div className={css.overlay} role=\"dialog\" aria-modal=\"true\">\n <div className={css.panel}>\n <div className={css.panelHeader}>\n <span className={css.panelTitle}>{t('sv.mgmt.editorTitle')}{isEdit ? ` · ${initial!.id}` : ''}</span>\n <button type=\"button\" className={css.closeBtn} onClick={onClose}>✕</button>\n </div>\n\n <div className={css.formGrid}>\n <label className={css.field}>\n <span className={css.fieldLabel}>{t('sv.mgmt.field.id')}</span>\n <input\n className={css.fieldInput}\n value={id}\n disabled={isEdit}\n onChange={(e) => setId(e.target.value)}\n placeholder=\"ema-stop-takeprofit\"\n />\n </label>\n <label className={css.field}>\n <span className={css.fieldLabel}>{t('sv.mgmt.field.title')}</span>\n <input className={css.fieldInput} value={title} onChange={(e) => setTitle(e.target.value)} />\n </label>\n <label className={css.field}>\n <span className={css.fieldLabel}>{t('sv.mgmt.field.horizon')}</span>\n <select\n className={css.fieldInput}\n value={horizon}\n onChange={(e) => setHorizon(e.target.value as StrategyHorizon)}\n >\n {HORIZONS.map((h) => (\n <option key={h} value={h}>{t(`sv.horizon.${h}` as StrategyLocaleKey)}</option>\n ))}\n </select>\n </label>\n </div>\n\n <label className={css.field}>\n <span className={css.fieldLabel}>{t('sv.mgmt.field.summary')}</span>\n <input className={css.fieldInput} value={summary} onChange={(e) => setSummary(e.target.value)} />\n </label>\n\n <div className={css.field}>\n <span className={css.fieldLabel}>{t('sv.mgmt.field.params')}</span>\n <div className={css.paramTable}>\n <div className={css.paramHeadRow}>\n <span>{t('sv.mgmt.param.key')}</span>\n <span>{t('sv.mgmt.param.label')}</span>\n <span>{t('sv.mgmt.param.default')}</span>\n <span>{t('sv.mgmt.param.min')}</span>\n <span>{t('sv.mgmt.param.max')}</span>\n <span>{t('sv.mgmt.param.step')}</span>\n <span />\n </div>\n {rows.map((row, index) => (\n <div key={index} className={css.paramRow}>\n <input className={css.paramCell} value={row.key} onChange={(e) => updateRow(index, { key: e.target.value })} />\n <input className={css.paramCell} value={row.label} onChange={(e) => updateRow(index, { label: e.target.value })} />\n <input className={css.paramCell} type=\"number\" value={row.default} onChange={(e) => updateRow(index, { default: e.target.value })} />\n <input className={css.paramCell} type=\"number\" value={row.min} onChange={(e) => updateRow(index, { min: e.target.value })} />\n <input className={css.paramCell} type=\"number\" value={row.max} onChange={(e) => updateRow(index, { max: e.target.value })} />\n <input className={css.paramCell} type=\"number\" value={row.step} onChange={(e) => updateRow(index, { step: e.target.value })} />\n <button\n type=\"button\"\n className={css.paramRemove}\n title={t('sv.mgmt.removeParam')}\n onClick={() => setRows((prev) => prev.filter((_, i) => i !== index))}\n >✕</button>\n </div>\n ))}\n <button\n type=\"button\"\n className={css.addParamBtn}\n onClick={() => setRows((prev) => [...prev, { key: '', label: '', default: '0', min: '0', max: '100', step: '1' }])}\n >+ {t('sv.mgmt.addParam')}</button>\n </div>\n </div>\n\n <label className={css.field}>\n <span className={css.fieldLabel}>{t('sv.mgmt.field.source')}</span>\n <textarea\n className={css.sourceArea}\n value={source}\n spellCheck={false}\n onChange={(e) => setSource(e.target.value)}\n rows={12}\n />\n </label>\n\n {notice !== null && (\n <div className={notice.kind === 'ok' ? css.noticeOk : css.noticeError}>{notice.text}</div>\n )}\n\n <div className={css.actionBar}>\n <button type=\"button\" className={css.secondaryBtn} disabled={busy !== ''} onClick={() => { void handleValidate() }}>\n {busy === 'validating' ? t('sv.mgmt.validating') : t('sv.mgmt.validate')}\n </button>\n <div className={css.actionSpacer} />\n <button type=\"button\" className={css.secondaryBtn} onClick={onClose}>{t('sv.mgmt.cancel')}</button>\n <button type=\"button\" className={css.primaryBtn} disabled={busy !== ''} onClick={() => { void handleSave() }}>\n {busy === 'saving' ? t('sv.mgmt.validating') : t('sv.mgmt.save')}\n </button>\n </div>\n </div>\n </div>\n )\n}\n","/**\n * 策略板块主视图(对齐 docs/design/strategy-tab.md §3.4 与 Review 规范)。\n *\n * 结构(自上而下,两级分区):\n * 1. 分区分段控件(选股策略 | 量化策略)\n * 2a. 选股策略 → ScreenerPane(内置选股器卡 + 参数/扫描池 + 进度 + 命中表)\n * 2b. 量化策略 → 周期分段控件(短线 | 波段 | 长线)+ 策略卡列表\n * + 参数配置与回测控制栏(参数输入 + 标的周期 + 运行回测)\n * + 结果区:8 指标卡 + 权益曲线 (lightweight-charts) + 交易明细流水表\n */\nimport { useEffect, useMemo, useRef, useState } from 'react'\nimport { createChart, ColorType, AreaSeries, type IChartApi, type ISeriesApi } from 'lightweight-charts'\nimport {\n strategyParadigms,\n run,\n validateCustomStrategy,\n applyStrategyManagement,\n isBuiltinStrategyId,\n builtinStrategyRecord,\n fmtPrice,\n type StrategyHorizon,\n type StrategyDefinition,\n type BacktestResult,\n type CustomStrategyRecord,\n type Kline,\n} from '@dshtrading/strategies'\nimport { readJson, writeJson, type SelectionState } from './shell-faces.ts'\nimport { IconStrategy } from './icons.tsx'\nimport { ScreenerPane } from './ScreenerPane.tsx'\nimport { StrategyEditor, type StrategyEditorSaveInput } from './StrategyEditor.tsx'\nimport type { StrategyLocaleKey } from './contract.ts'\nimport {\n strategyName, strategySummary, paramLabel,\n exitReasonText,\n} from './strategy-locale.ts'\nexport { strategyName, strategySummary, paramLabel, exitReasonText } from './strategy-locale.ts'\nimport css from './StrategyView.module.css'\n\ntype StrategySection = 'screener' | 'quant'\n\ninterface StrategyStateStored {\n section?: StrategySection\n strategyId: string\n paramsMap: Record<string, Record<string, number>>\n horizon: StrategyHorizon\n}\n\nconst STRATEGY_STORE_KEY = 'dshtrading.strategy.v1'\n\nconst DEFAULT_STORED: StrategyStateStored = {\n strategyId: 'donchian-breakout',\n paramsMap: {},\n horizon: 'short',\n}\n\nfunction formatPercent(val: number, plus = false): string {\n if (!Number.isFinite(val)) return '--'\n const sign = val > 0 && plus ? '+' : ''\n return `${sign}${val.toFixed(2)}%`\n}\n\nfunction formatNum(val: number, decimals = 2): string {\n if (val === Infinity) return '∞'\n if (!Number.isFinite(val)) return '--'\n return val.toFixed(decimals)\n}\n\nfunction formatDate(timestamp: number): string {\n const d = new Date(timestamp)\n const y = d.getFullYear()\n const m = String(d.getMonth() + 1).padStart(2, '0')\n const day = String(d.getDate()).padStart(2, '0')\n return `${y}-${m}-${day}`\n}\n\nexport type UseStoreState<TState> = <TSelected>(selector: (state: TState) => TSelected) => TSelected\n\nexport interface StrategyViewProps {\n t: (key: StrategyLocaleKey, params?: Record<string, unknown>) => string\n /** 中栏活动视图 id(tradingStageViews.render 透传;本视图固定 strategy,未用)。 */\n view?: string\n /** 桥面(shell 的 tradingBridge 服务;未注入时空跑——视图静默空态)。\n * 管理方法(策略管理,2026-09-07)为可选:老 shell 缺席时管理动作降级隐藏。 */\n bridge: {\n fetchKlines: (market: string, symbol: string, interval: string, limit: number) => Promise<Kline[]>\n fetchCustomStrategies: () => Promise<Array<{ id: string; title: string; horizon: string; summary: string; paramsJson: string; computeSource: string }>>\n fetchSymbols: (market: string) => Promise<Array<{ symbol: string; name?: string }>>\n subscribeTradingEvents: (handlers: { strategies?: () => void }) => () => void\n saveCustomStrategy?: ((input: StrategyEditorSaveInput) => Promise<{ ok: true } | { ok: false; reason: string } | null>) | undefined\n deleteCustomStrategy?: ((id: string) => Promise<boolean>) | undefined\n resetStrategy?: ((id: string) => Promise<{ ok: boolean; changed: boolean } | null>) | undefined\n fetchStrategyTombstones?: (() => Promise<string[]>) | undefined\n }\n useSelection?: UseStoreState<SelectionState>\n}\n\nexport function StrategyView({ t, bridge, useSelection }: StrategyViewProps) {\n const instrument = useSelection ? useSelection((s) => s.instrument) : null\n const market = instrument?.market ?? 'crypto'\n const symbol = instrument?.symbol ?? 'BTCUSDT'\n\n // 1. 本地存储持久化状态\n const [stored] = useState<StrategyStateStored>(() => {\n return readJson<StrategyStateStored>(STRATEGY_STORE_KEY, DEFAULT_STORED)\n })\n\n // section 白名单:旧存档缺省 quant;手改出的脏值回落 quant,避免渲染出\n // 「头部选择器隐藏但量化内容还在」的半套 UI\n const [section, setSection] = useState<StrategySection>(stored.section === 'screener' ? 'screener' : 'quant')\n const [horizon, setHorizon] = useState<StrategyHorizon>(stored.horizon ?? 'short')\n const [selectedId, setSelectedId] = useState<string>(stored.strategyId ?? 'donchian-breakout')\n const [paramsMap, setParamsMap] = useState<Record<string, Record<string, number>>>(stored.paramsMap ?? {})\n\n // 2. 自定义策略名册(issue #31 / P2)+ 策略管理(2026-09-07):桥拉取记录与\n // 墓碑 → 校验(Worker 熔断)→ applyStrategyManagement 合成名册(内置 − 墓碑、\n // 覆盖记录原位替换、自定义追加);SSE 'strategies' 信号到达时重拉。\n // 桥来自 shell 的 tradingBridge 服务(未注入时跳过拉取,视图空态)。\n const [customDefs, setCustomDefs] = useState<StrategyDefinition[]>([])\n const [records, setRecords] = useState<CustomStrategyRecord[]>([])\n const [tombstones, setTombstones] = useState<string[]>([])\n // 桥引用稳定化(防御):上游若每次 render 传新 bridge 字面量,[bridge] 依赖会\n // 自激振荡(每帧 loadCards → setState → 新 bridge → …,实证 fetch 风暴)。\n // 锁定首见引用;真换桥实例需重挂视图,语义可接受。\n const bridgeRef = useRef(bridge)\n if (bridgeRef.current === null) bridgeRef.current = bridge\n const stableBridge = bridgeRef.current\n // 编辑器保存后的立即重拉触发器(SSE 缺席的老宿主也能即时上榜)。\n const [reloadKey, setReloadKey] = useState(0)\n useEffect(() => {\n if (stableBridge === undefined) return\n let cancelled = false\n // generation 令牌:SSE 突发时同一 effect 内会并发起多个 load(),后完成的\n // 旧响应不得覆盖新状态——只允许最新一代落 setState。\n let generation = 0\n const load = async () => {\n const gen = ++generation\n try {\n const rawRecords = await stableBridge.fetchCustomStrategies()\n const defs: StrategyDefinition[] = []\n const validRecords: CustomStrategyRecord[] = []\n for (const record of rawRecords) {\n const result = await validateCustomStrategy(record as never)\n if (result.ok) {\n defs.push(result.definition)\n validRecords.push(result.record)\n }\n }\n const deleted = stableBridge.fetchStrategyTombstones !== undefined\n ? await stableBridge.fetchStrategyTombstones()\n : []\n if (cancelled || gen !== generation) return\n setCustomDefs(defs)\n setRecords(validRecords)\n setTombstones(deleted)\n } catch (e) {\n console.warn('[dsh-trading] failed to load custom strategies:', e)\n }\n }\n void load()\n const unsubscribe = stableBridge.subscribeTradingEvents({ strategies: () => { void load() } })\n return () => { cancelled = true; unsubscribe() }\n }, [stableBridge, reloadKey])\n\n // 名册 = 内置 − 墓碑,覆盖记录原位替换,自定义追加(策略管理统一合成)。\n const allStrategies = useMemo<StrategyDefinition[]>(\n () => applyStrategyManagement(strategyParadigms, customDefs, tombstones),\n [customDefs, tombstones],\n )\n\n // 来源徽标词汇:已修改内置(store 有同 id 覆盖记录)/ 自定义。\n const modifiedIds = useMemo(\n () => new Set(records.map((r) => r.id).filter((id) => isBuiltinStrategyId(id))),\n [records],\n )\n\n // 编辑器状态:null = 关闭;record = null 新建,否则编辑预填(内置经\n // builtinStrategyRecord 导出自包含源码)。\n const [editor, setEditor] = useState<{ initial: CustomStrategyRecord | null } | null>(null)\n\n const currentStrategy = useMemo<StrategyDefinition | null>(() => {\n // 全部内置被删且无自定义时名册可为空(策略管理边界):返回 null 走空态。\n return allStrategies.find((s) => s.id === selectedId) ?? allStrategies[0] ?? null\n }, [allStrategies, selectedId])\n\n // 当前策略对应的参数\n const currentParams = useMemo<Record<string, number>>(() => {\n if (currentStrategy === null) return {}\n const custom = paramsMap[currentStrategy.id] ?? {}\n const res: Record<string, number> = {}\n for (const p of currentStrategy.params) {\n res[p.key] = custom[p.key] ?? p.default\n }\n return res\n }, [currentStrategy, paramsMap])\n\n // 3. 回测运行状态\n const [loading, setLoading] = useState(false)\n const [result, setResult] = useState<BacktestResult | null>(null)\n const [errorMsg, setErrorMsg] = useState<string | null>(null)\n\n // 4. 图表容器 ref\n const chartContainerRef = useRef<HTMLDivElement | null>(null)\n const chartApiRef = useRef<IChartApi | null>(null)\n const seriesApiRef = useRef<ISeriesApi<'Area'> | null>(null)\n\n // 同步持久化\n useEffect(() => {\n const nextState: StrategyStateStored = { section, strategyId: selectedId, paramsMap, horizon }\n writeJson(STRATEGY_STORE_KEY, nextState)\n }, [section, selectedId, paramsMap, horizon])\n\n // 切换 horizon 时自动选择该分类下的第一个策略\n const switchHorizon = (h: StrategyHorizon) => {\n setHorizon(h)\n const firstInHorizon = allStrategies.find((s) => s.horizon === h)\n if (firstInHorizon) {\n setSelectedId(firstInHorizon.id)\n }\n }\n\n const handleParamChange = (key: string, value: number) => {\n if (currentStrategy === null) return\n setParamsMap((prev) => ({\n ...prev,\n [currentStrategy.id]: {\n ...(prev[currentStrategy.id] ?? {}),\n [key]: value,\n },\n }))\n }\n\n /* ---------------- 策略管理动作(2026-09-07) ----------------\n 老壳(桥无管理方法)时按钮不渲染(管理面缺席降级),动作函数不做兜底。 */\n\n const forgetLocalParams = (id: string) => {\n setParamsMap((prev) => {\n if (prev[id] === undefined) return prev\n const next = { ...prev }\n delete next[id]\n return next\n })\n }\n\n const handleDeleteStrategy = async (strat: StrategyDefinition) => {\n if (stableBridge.deleteCustomStrategy === undefined) return\n if (!window.confirm(t('sv.mgmt.confirmDelete'))) return\n await stableBridge.deleteCustomStrategy(strat.id)\n forgetLocalParams(strat.id)\n // 删除对象正被选中 → 回落到名册第一个可用策略(墓碑生效后 currentStrategy 兜底)。\n if (selectedId === strat.id) setSelectedId('')\n }\n\n const handleRestoreStrategy = async (id: string) => {\n if (stableBridge.resetStrategy === undefined) return\n // 已修改内置 = 覆盖记录将被清除且不可恢复(出厂代码不受影响),需显式确认。\n if (modifiedIds.has(id) && !window.confirm(t('sv.mgmt.confirmRestore'))) return\n const result = await stableBridge.resetStrategy(id)\n if (result !== null && result.ok) forgetLocalParams(id)\n }\n\n const handleEditStrategy = (strat: StrategyDefinition) => {\n // 内置/已修改内置:从代码定义导出自包含源码预填;自定义:用 store 原记录。\n const record = modifiedIds.has(strat.id) || !isBuiltinStrategyId(strat.id)\n ? records.find((r) => r.id === strat.id) ?? null\n : builtinStrategyRecord(strat)\n if (record !== null) setEditor({ initial: record })\n }\n\n const handleSaveFromEditor = async (input: StrategyEditorSaveInput) => {\n if (stableBridge.saveCustomStrategy === undefined) return null\n return stableBridge.saveCustomStrategy(input)\n }\n\n // 运行回测(拉取 300 根日 K,对齐各主流交易所如 OKX 单次 300 根上限,并保障 250 根长线策略有充足样本窗口)\n const handleRunBacktest = async () => {\n if (currentStrategy === null) return\n setLoading(true)\n setErrorMsg(null)\n try {\n const barsRaw = await stableBridge.fetchKlines(market, symbol, '1d', 300)\n if (!barsRaw || barsRaw.length === 0) {\n setErrorMsg(t('sv.error.noKlines'))\n setResult(null)\n return\n }\n const klines: Kline[] = barsRaw.map((b) => ({\n openTime: b.openTime,\n open: b.open,\n high: b.high,\n low: b.low,\n close: b.close,\n volume: b.volume,\n }))\n const backtestResult = run(klines, currentStrategy, currentParams)\n setResult(backtestResult)\n } catch (e) {\n setErrorMsg(`${t('sv.error.failed')}: ${String((e as Error)?.message ?? e)}`)\n setResult(null)\n } finally {\n setLoading(false)\n }\n }\n\n // 挂载与更新权益曲线图表\n useEffect(() => {\n if (!chartContainerRef.current || !result || result.equity.length === 0) {\n return\n }\n\n const container = chartContainerRef.current\n if (chartApiRef.current) {\n chartApiRef.current.remove()\n chartApiRef.current = null\n }\n\n const chart = createChart(container, {\n width: container.clientWidth,\n height: container.clientHeight,\n layout: {\n background: { type: ColorType.Solid, color: 'transparent' },\n textColor: '#8e95a3',\n fontSize: 11,\n },\n grid: {\n vertLines: { color: 'rgba(0, 0, 0, 0.04)' },\n horzLines: { color: 'rgba(0, 0, 0, 0.04)' },\n },\n timeScale: {\n borderColor: '#e3e6ea',\n timeVisible: false,\n },\n rightPriceScale: {\n borderColor: '#e3e6ea',\n },\n })\n\n const isPositive = result.metrics.totalReturn >= 0\n const areaSeries = chart.addSeries(AreaSeries, {\n topColor: isPositive ? 'rgba(230, 69, 69, 0.35)' : 'rgba(43, 164, 113, 0.35)',\n bottomColor: isPositive ? 'rgba(230, 69, 69, 0.02)' : 'rgba(43, 164, 113, 0.02)',\n lineColor: isPositive ? '#e64545' : '#2ba471',\n lineWidth: 2,\n })\n\n const chartData = result.equity.map((pt) => ({\n time: Math.floor(pt.time / 1000) as unknown as string,\n value: pt.equity,\n }))\n\n areaSeries.setData(chartData as never)\n chart.timeScale().fitContent()\n\n chartApiRef.current = chart\n seriesApiRef.current = areaSeries\n\n const handleResize = () => {\n if (chartContainerRef.current && chartApiRef.current) {\n chartApiRef.current.applyOptions({\n width: chartContainerRef.current.clientWidth,\n height: chartContainerRef.current.clientHeight,\n })\n }\n }\n window.addEventListener('resize', handleResize)\n\n return () => {\n window.removeEventListener('resize', handleResize)\n chart.remove()\n chartApiRef.current = null\n seriesApiRef.current = null\n }\n // 依赖含 section:图表容器在量化分支内,切到选股分区会卸载容器。\n // 不跟随 section 的话,切回量化后挂载的是新容器而 effect 不重跑——\n // result 还在、权益曲线却空白,旧 chart 实例还挂在 ref 上失联。\n }, [result, section])\n\n const horizonStrategies = useMemo(() => {\n return allStrategies.filter((s) => s.horizon === horizon)\n }, [allStrategies, horizon])\n\n // 管理面可用性(老壳无桥管理方法 → 整组管理动作降级隐藏)。\n const mgmtAvailable = stableBridge.deleteCustomStrategy !== undefined\n && stableBridge.saveCustomStrategy !== undefined\n && stableBridge.resetStrategy !== undefined\n\n // 已删内置(墓碑):灰卡 + 恢复入口(可发现性——不展示则用户无从知道可恢复)。\n const tombstonedStrategies = useMemo<StrategyDefinition[]>(() => {\n if (!mgmtAvailable) return []\n return strategyParadigms.filter((d) => tombstones.includes(d.id))\n }, [tombstones, mgmtAvailable])\n\n return (\n <div className={css.root} data-dshtrading-strategy-view=\"\">\n {/* 1. 分区分段控件(选股策略 | 量化策略) */}\n <div className={css.header}>\n <div className={css.horizonSelector} role=\"tablist\">\n <button\n type=\"button\"\n className={css.horizonBtn}\n data-active={section === 'screener' ? 'true' : undefined}\n onClick={() => setSection('screener')}\n >\n {t('sv.section.screener')}\n </button>\n <button\n type=\"button\"\n className={css.horizonBtn}\n data-active={section === 'quant' ? 'true' : undefined}\n onClick={() => setSection('quant')}\n >\n {t('sv.section.quant')}\n </button>\n </div>\n\n {section === 'quant' && (\n <>\n {/* 2b-1. 周期分段 + 新建策略 */}\n <div className={css.mgmtRow}>\n <div className={css.horizonSelector} role=\"tablist\">\n <button\n type=\"button\"\n className={css.horizonBtn}\n data-active={horizon === 'short' ? 'true' : undefined}\n onClick={() => switchHorizon('short')}\n >\n {t('sv.horizon.short')}\n </button>\n <button\n type=\"button\"\n className={css.horizonBtn}\n data-active={horizon === 'swing' ? 'true' : undefined}\n onClick={() => switchHorizon('swing')}\n >\n {t('sv.horizon.swing')}\n </button>\n <button\n type=\"button\"\n className={css.horizonBtn}\n data-active={horizon === 'long' ? 'true' : undefined}\n onClick={() => switchHorizon('long')}\n >\n {t('sv.horizon.long')}\n </button>\n </div>\n {mgmtAvailable && (\n <button type=\"button\" className={css.newStrategyBtn} onClick={() => setEditor({ initial: null })}>\n + {t('sv.mgmt.new')}\n </button>\n )}\n </div>\n\n {/* 策略卡片(来源徽标 + 管理操作) */}\n <div className={css.strategyCards}>\n {horizonStrategies.map((strat) => {\n const modified = modifiedIds.has(strat.id)\n const builtin = isBuiltinStrategyId(strat.id)\n return (\n <div\n key={strat.id}\n className={css.strategyCard}\n data-active={strat.id === selectedId ? 'true' : undefined}\n onClick={() => setSelectedId(strat.id)}\n >\n <div className={css.cardTitleRow}>\n <span className={css.cardTitle}>{strategyName(strat, t)}</span>\n <span\n className={css.cardBadge}\n data-kind={modified ? 'modified' : builtin ? 'builtin' : 'custom'}\n >\n {t(modified ? 'sv.mgmt.badge.modified' : builtin ? 'sv.mgmt.badge.builtin' : 'sv.mgmt.badge.custom')}\n </span>\n </div>\n <div className={css.cardSummary}>{strategySummary(strat, t)}</div>\n {mgmtAvailable && (\n <div className={css.cardActions} onClick={(e) => e.stopPropagation()}>\n <button type=\"button\" className={css.cardActionBtn} onClick={() => handleEditStrategy(strat)}>\n {t('sv.mgmt.edit')}\n </button>\n {builtin && modified && (\n <button type=\"button\" className={css.cardActionBtn} onClick={() => { void handleRestoreStrategy(strat.id) }}>\n {t('sv.mgmt.restore')}\n </button>\n )}\n <button\n type=\"button\"\n className={css.cardActionBtn}\n data-danger=\"true\"\n onClick={() => { void handleDeleteStrategy(strat) }}\n >\n {t('sv.mgmt.delete')}\n </button>\n </div>\n )}\n </div>\n )\n })}\n {tombstonedStrategies.map((strat) => (\n <div key={strat.id} className={css.strategyCard} data-deleted=\"true\">\n <div className={css.cardTitleRow}>\n <span className={css.cardTitle}>{strategyName(strat, t)}</span>\n <span className={css.cardBadge} data-kind=\"deleted\">{t('sv.mgmt.deleted')}</span>\n </div>\n <div className={css.cardSummary}>{strategySummary(strat, t)}</div>\n <div className={css.cardActions} onClick={(e) => e.stopPropagation()}>\n <button type=\"button\" className={css.cardActionBtn} onClick={() => { void handleRestoreStrategy(strat.id) }}>\n {t('sv.mgmt.restore')}\n </button>\n </div>\n </div>\n ))}\n </div>\n </>\n )}\n </div>\n\n {section === 'screener' ? (\n /* 2a. 选股策略面板 */\n <ScreenerPane t={t} market={market} bridge={stableBridge} />\n ) : currentStrategy === null ? (\n /* 名册为空(全部内置已删且无自定义,策略管理边界)→ 空态 */\n <div className={css.emptyState}>\n <div className={css.emptyIcon}>\n <IconStrategy size={36} />\n </div>\n <div>{t('sv.mgmt.rosterEmpty')}</div>\n </div>\n ) : (\n <>\n {/* 2b-2. 参数调节与运行条 */}\n <div className={css.configBar}>\n {currentStrategy.params.map((p) => (\n <div key={p.key} className={css.paramGroup}>\n <label className={css.paramLabel}>{paramLabel(currentStrategy, p, t)}:</label>\n <input\n type=\"number\"\n className={css.paramInput}\n min={p.min}\n max={p.max}\n step={p.step}\n value={currentParams[p.key] ?? p.default}\n onChange={(e) => {\n const numVal = parseFloat(e.target.value)\n if (!Number.isNaN(numVal)) {\n handleParamChange(p.key, numVal)\n }\n }}\n />\n </div>\n ))}\n\n <div className={css.paramGroup}>\n <span className={css.paramLabel}>{t('sv.symbolLabel')}</span>\n <span className={css.symbolValue}>\n {symbol} {t('sv.intervalDaily')}\n </span>\n </div>\n\n <button\n type=\"button\"\n className={css.runBtn}\n disabled={loading}\n onClick={handleRunBacktest}\n >\n {loading ? t('sv.running') : t('sv.run')}\n </button>\n </div>\n\n {errorMsg && (\n <div className={css.errorMessage}>\n {errorMsg}\n </div>\n )}\n\n {/* 3. 回测结果展示区 */}\n {result ? (\n <>\n {/* 8 指标卡 */}\n <div className={css.metricsGrid}>\n <div className={css.metricCard}>\n <span className={css.metricLabel}>{t('sv.metrics.totalReturn')}</span>\n <span\n className={`${css.metricValue} ${result.metrics.totalReturn >= 0 ? css.trendUp : css.trendDown}`}\n >\n {formatPercent(result.metrics.totalReturn, true)}\n </span>\n </div>\n\n <div className={css.metricCard}>\n <span className={css.metricLabel}>{t('sv.metrics.cagr')}</span>\n <span\n className={`${css.metricValue} ${result.metrics.cagr >= 0 ? css.trendUp : css.trendDown}`}\n >\n {formatPercent(result.metrics.cagr, true)}\n </span>\n </div>\n\n <div className={css.metricCard}>\n <span className={css.metricLabel}>{t('sv.metrics.maxDrawdown')}</span>\n <span className={`${css.metricValue} ${css.trendDown}`}>\n {formatPercent(result.metrics.maxDrawdown)}\n </span>\n </div>\n\n <div className={css.metricCard}>\n <span className={css.metricLabel}>{t('sv.metrics.sharpe')}</span>\n <span className={css.metricValue}>{formatNum(result.metrics.sharpe)}</span>\n </div>\n\n <div className={css.metricCard}>\n <span className={css.metricLabel}>{t('sv.metrics.winRate')}</span>\n <span className={css.metricValue}>{formatPercent(result.metrics.winRate)}</span>\n </div>\n\n <div className={css.metricCard}>\n <span className={css.metricLabel}>{t('sv.metrics.profitFactor')}</span>\n <span className={css.metricValue}>{formatNum(result.metrics.profitFactor)}</span>\n </div>\n\n <div className={css.metricCard}>\n <span className={css.metricLabel}>{t('sv.metrics.tradeCount')}</span>\n <span className={css.metricValue}>\n {result.metrics.tradeCount} {t('sv.metrics.tradeUnit')}\n </span>\n </div>\n\n <div className={css.metricCard}>\n <span className={css.metricLabel}>{t('sv.metrics.exposure')}</span>\n <span className={css.metricValue}>{formatPercent(result.metrics.exposure)}</span>\n </div>\n </div>\n\n {/* 权益曲线 */}\n <div className={css.chartContainer}>\n <div ref={chartContainerRef} className={css.chartWrapper} />\n </div>\n\n {/* 交易明细流水表 */}\n <div className={css.tableSection}>\n <div className={css.tableTitle}>\n {t('sv.trades.title')} ({result.trades.length} {t('sv.metrics.tradeUnit')})\n </div>\n <div className={css.tradesTableWrapper}>\n <table className={css.tradesTable}>\n <thead>\n <tr>\n <th>{t('sv.trades.entryTime')}</th>\n <th>{t('sv.trades.exitTime')}</th>\n <th>{t('sv.trades.entryPrice')}</th>\n <th>{t('sv.trades.exitPrice')}</th>\n <th>{t('sv.trades.holdingBars')}</th>\n <th>{t('sv.trades.netReturn')}</th>\n <th>{t('sv.trades.exitReason')}</th>\n </tr>\n </thead>\n <tbody>\n {result.trades.length === 0 ? (\n <tr>\n <td colSpan={7} className={css.tableEmptyCell}>\n {t('sv.trades.empty')}\n </td>\n </tr>\n ) : (\n result.trades.map((tr, idx) => (\n <tr key={idx}>\n <td>{formatDate(tr.entryTime)}</td>\n <td>{formatDate(tr.exitTime)}</td>\n <td>{fmtPrice(tr.entryPrice)}</td>\n <td>{fmtPrice(tr.exitPrice)}</td>\n <td>{tr.holdingBars}</td>\n <td className={tr.returnPercent >= 0 ? css.trendUp : css.trendDown}>\n {formatPercent(tr.returnPercent, true)}\n </td>\n <td className={css.reasonCell}>{exitReasonText(tr, t)}</td>\n </tr>\n ))\n )}\n </tbody>\n </table>\n </div>\n </div>\n </>\n ) : (\n <div className={css.emptyState}>\n <div className={css.emptyIcon}>\n <IconStrategy size={36} />\n </div>\n <div>{t('sv.empty.hint')}</div>\n </div>\n )}\n </>\n )}\n\n {/* 策略编辑器(新建/编辑/覆盖内置;模态覆盖层) */}\n {editor !== null && (\n <StrategyEditor\n t={t}\n initial={editor.initial}\n onSave={handleSaveFromEditor}\n onSaved={() => setReloadKey((k) => k + 1)}\n onClose={() => setEditor(null)}\n />\n )}\n </div>\n )\n}\n\n","/**\n * toolview 富卡片的数据解析(issue #34 / P5 §5.5)。\n *\n * 工具输出面(host 半 strategies/plugin):\n * - strategy_backtest → JSON 串(ok/strategy/market/symbol/interval/metrics/\n * trades/equity/initialCapital/finalCapital);\n * - strategy_author → 人读文本(成功「[strategy_author] Successfully authored…」\n * 或失败「[strategy_author] Validation failed: …」)。\n *\n * 解析全部防御式:call 块来自 wire,字段可能缺失/类型漂移——失败返回 null,\n * 卡片回落到通用工具行(keyed slot 返回 null 时不接管渲染)。\n */\n\n/** strategy_backtest 输出的 metrics 面(数值可能缺失)。 */\nexport interface BacktestMetricsLike {\n totalReturn?: unknown\n cagr?: unknown\n maxDrawdown?: unknown\n sharpe?: unknown\n winRate?: unknown\n profitFactor?: unknown\n tradeCount?: unknown\n exposure?: unknown\n}\n\nexport interface BacktestPayloadLike {\n ok?: unknown\n strategy?: { id?: unknown; name?: unknown; horizon?: unknown }\n market?: unknown\n symbol?: unknown\n interval?: unknown\n barsTested?: unknown\n metrics?: BacktestMetricsLike\n equity?: Array<{ time?: unknown; equity?: unknown }>\n initialCapital?: unknown\n finalCapital?: unknown\n}\n\nexport interface ParsedBacktestCard {\n name: string\n symbol: string\n market: string\n interval: string\n barsTested: number | null\n totalReturn: number | null\n cagr: number | null\n maxDrawdown: number | null\n sharpe: number | null\n winRate: number | null\n profitFactor: number | null\n tradeCount: number | null\n exposure: number | null\n /** 权益曲线数值序列(sparkline 输入;坏点剔除)。 */\n equityValues: number[]\n isPositive: boolean\n}\n\nfunction asNumber(value: unknown): number | null {\n return typeof value === 'number' && Number.isFinite(value) ? value : null\n}\n\nfunction asString(value: unknown, fallback = ''): string {\n return typeof value === 'string' ? value : fallback\n}\n\n/** 从 ToolCallBlock(settled tool-result)取文本输出并解析 backtest 载荷。 */\nexport function parseStrategyBacktestPayload(raw: unknown): ParsedBacktestCard | null {\n if (typeof raw !== 'string' || raw.length === 0) return null\n let wire: BacktestPayloadLike\n try {\n wire = JSON.parse(raw) as BacktestPayloadLike\n } catch {\n return null\n }\n if (wire === null || typeof wire !== 'object' || wire.ok !== true) return null\n const metrics = (wire.metrics ?? {}) as BacktestMetricsLike\n const equityValues: number[] = []\n if (Array.isArray(wire.equity)) {\n for (const point of wire.equity) {\n const value = asNumber((point as { equity?: unknown })?.equity)\n if (value !== null) equityValues.push(value)\n }\n }\n const totalReturn = asNumber(metrics.totalReturn)\n return {\n name: asString((wire.strategy as { name?: unknown } | undefined)?.name, '—'),\n symbol: asString(wire.symbol, '—'),\n market: asString(wire.market, '—'),\n interval: asString(wire.interval, '1d'),\n barsTested: asNumber(wire.barsTested),\n totalReturn,\n cagr: asNumber(metrics.cagr),\n maxDrawdown: asNumber(metrics.maxDrawdown),\n sharpe: asNumber(metrics.sharpe),\n winRate: asNumber(metrics.winRate),\n profitFactor: asNumber(metrics.profitFactor),\n tradeCount: asNumber(metrics.tradeCount),\n exposure: asNumber(metrics.exposure),\n equityValues,\n isPositive: totalReturn === null ? false : totalReturn >= 0,\n }\n}\n\nexport interface ParsedAuthorCard {\n ok: boolean\n /** 策略标题(成功时从文本提取)。 */\n title: string\n /** 策略 id。 */\n id: string\n horizon: string\n /** 参数摘要(fast=20, slow=60 形态)。 */\n params: string\n /** 失败原因(失败时)。 */\n reason: string\n}\n\n/**\n * strategy_author 输出是人读文本(host 半刻意如此——失败原因要直接喂模型)。\n * 成功形态:\n * [strategy_author] Successfully authored strategy \"双均线\" (id: my-id, horizon: short, params: fast=20). …\n * 失败形态:\n * [strategy_author] Validation failed: <reason>…\n */\nexport function parseStrategyAuthorText(raw: unknown): ParsedAuthorCard | null {\n if (typeof raw !== 'string' || raw.length === 0) return null\n const okMatch = /^\\[strategy_author\\] Successfully authored strategy \"([^\"]*)\" \\(id:\\s*([^,]+),\\s*horizon:\\s*([^,)]+)(?:,\\s*params:\\s*([^)]*))?\\)/.exec(raw)\n if (okMatch !== null) {\n return {\n ok: true,\n title: okMatch[1] ?? '—',\n id: (okMatch[2] ?? '').trim(),\n horizon: (okMatch[3] ?? '').trim(),\n params: (okMatch[4] ?? '').trim(),\n reason: '',\n }\n }\n const failMatch = /^\\[strategy_author\\] Validation failed:\\s*([\\s\\S]+)$/.exec(raw)\n if (failMatch !== null) {\n return {\n ok: false,\n title: '—',\n id: '',\n horizon: '',\n params: '',\n reason: (failMatch[1] ?? '').trim(),\n }\n }\n return null\n}","/**\n * 对话内富卡片(issue #34 / P5 §5.5):tool.call.toolview keyed slot 视图。\n *\n * - StrategyBacktestCard(key = strategy_backtest):权益曲线 sparkline +\n * 8 指标 mini 卡 + 标的/区间摘要;\n * - StrategyAuthorCard(key = strategy_author):校验结果(成功=参数摘要,\n * 失败=原因高亮)。\n *\n * 契约:settled 前返回 null(回落通用工具行);解析失败同样返回 null——\n * keyed slot 不接管时官方 ToolRow 原样渲染,卡片坏了不吞工具结果。\n */\nimport type { ToolCallOwnerProps } from '@deepseek-ai/dsh-client-ui-tool/client'\nimport { parseStrategyBacktestPayload, parseStrategyAuthorText, type ParsedBacktestCard } from './toolview-parse.ts'\nimport type { StrategyLocaleKey } from './contract.ts'\nimport css from './toolview.module.css'\n\n/** 卡片文案 t(keyed slot 声明 locale: NS 后由框架注入 owner props)。 */\ntype CardProps = ToolCallOwnerProps & { t?: (key: StrategyLocaleKey) => string }\n\n/** 从 owner.block 取(argsRaw, result 文本)。RunningToolCall 无 result → null。 */\nfunction readCall(block: ToolCallOwnerProps['block']): { argsRaw: string; resultText: string | null; isError: boolean } {\n if (block.kind === 'tool-result') {\n const text = block.content\n .map(part => (typeof part === 'object' && part !== null && 'text' in part ? String((part as { text?: unknown }).text ?? '') : ''))\n .join('')\n return { argsRaw: block.call?.argsRaw ?? '', resultText: text, isError: block.isError }\n }\n return { argsRaw: block.argsRaw ?? '', resultText: null, isError: false }\n}\n\nfunction fmt(value: number | null, suffix = '', plus = false): string {\n if (value === null) return '--'\n const sign = value > 0 && plus ? '+' : ''\n return `${sign}${value.toFixed(2)}${suffix}`\n}\n\n/** 迷你权益曲线:纯 SVG polyline(卡片场景免 lightweight-charts 重量)。 */\nfunction EquitySparkline({ values, isPositive }: { values: number[]; isPositive: boolean }) {\n if (values.length < 2) return null\n let min = values[0] as number\n let max = values[0] as number\n for (const value of values) {\n if (value < min) min = value\n if (value > max) max = value\n }\n const width = 560\n const height = 72\n const span = max - min\n const step = width / (values.length - 1)\n const points = values\n .map((value, index) => {\n const x = index * step\n const y = span === 0 ? height / 2 : (1 - (value - min) / span) * (height - 6) + 3\n return `${x.toFixed(1)},${y.toFixed(1)}`\n })\n .join(' ')\n const stroke = isPositive ? 'var(--dsv-up, #e64545)' : 'var(--dsv-down, #2ba471)'\n return (\n <svg className={css.spark} viewBox={`0 0 ${width} ${height}`} preserveAspectRatio=\"none\" aria-hidden=\"true\">\n <polyline points={points} fill=\"none\" stroke={stroke} strokeWidth=\"1.6\" strokeLinecap=\"round\" strokeLinejoin=\"round\" />\n </svg>\n )\n}\n\nconst METRIC_CELL: ReadonlyArray<{ key: keyof ParsedBacktestCard; labelKey: StrategyLocaleKey; suffix?: string; plus?: boolean }> = [\n { key: 'totalReturn', labelKey: 'sv.metrics.totalReturn', suffix: '%', plus: true },\n { key: 'cagr', labelKey: 'sv.metrics.cagr', suffix: '%', plus: true },\n { key: 'maxDrawdown', labelKey: 'sv.metrics.maxDrawdown', suffix: '%' },\n { key: 'sharpe', labelKey: 'sv.metrics.sharpe' },\n { key: 'winRate', labelKey: 'sv.metrics.winRate', suffix: '%' },\n { key: 'profitFactor', labelKey: 'sv.metrics.profitFactor' },\n { key: 'tradeCount', labelKey: 'sv.metrics.tradeCount' },\n { key: 'exposure', labelKey: 'sv.metrics.exposure', suffix: '%' },\n]\n\n/** strategy_backtest 卡:头部(策略名 + 标的 + 区间)+ sparkline + 8 指标 mini 网格。 */\nexport function StrategyBacktestCard(props: CardProps) {\n const { block, t } = props\n const call = readCall(block)\n if (call.isError || call.resultText === null) return null\n const payload = parseStrategyBacktestPayload(call.resultText)\n if (payload === null) return null\n\n return (\n <div className={css.card} data-dshtrading-toolview=\"strategy-backtest\">\n <div className={css.head}>\n <span className={css.title}>{payload.name}</span>\n <span className={css.chip}>{payload.symbol}</span>\n <span className={css.chip}>{payload.market}</span>\n <span className={css.chip}>{payload.interval}</span>\n {payload.barsTested !== null && <span className={css.meta}>{payload.barsTested} bars</span>}\n </div>\n <EquitySparkline values={payload.equityValues} isPositive={payload.isPositive} />\n <div className={css.metrics}>\n {METRIC_CELL.map(cell => (\n <div key={cell.key} className={css.metric}>\n <span className={css.metricLabel}>{t !== undefined ? t(cell.labelKey) : cell.labelKey}</span>\n <span\n className={css.metricValue}\n data-tone={cell.key === 'totalReturn' || cell.key === 'cagr' ? (payload[cell.key] as number | null) >= 0 ? 'up' : 'down' : undefined}\n >\n {fmt(payload[cell.key] as number | null, cell.suffix ?? '', cell.plus === true)}\n </span>\n </div>\n ))}\n </div>\n </div>\n )\n}\n\n/** strategy_author 卡:成功 = 标题 + id/horizon/参数摘要;失败 = 原因高亮。 */\nexport function StrategyAuthorCard({ block, t }: CardProps) {\n const call = readCall(block)\n if (call.resultText === null) return null\n const parsed = parseStrategyAuthorText(call.resultText)\n if (parsed === null) return null\n\n if (!parsed.ok) {\n return (\n <div className={css.card} data-dshtrading-toolview=\"strategy-author\" data-ok=\"false\">\n <div className={css.head}>\n <span className={css.title}>{t !== undefined ? t('sv.author.failed') : 'Validation failed'}</span>\n </div>\n <div className={css.reason}>{parsed.reason}</div>\n </div>\n )\n }\n return (\n <div className={css.card} data-dshtrading-toolview=\"strategy-author\" data-ok=\"true\">\n <div className={css.head}>\n <span className={css.title}>{parsed.title}</span>\n <span className={css.chip}>{parsed.id}</span>\n <span className={css.chip}>{parsed.horizon}</span>\n </div>\n {parsed.params !== '' && <div className={css.params}>{parsed.params}</div>}\n </div>\n )\n}","/**\n * client-ui-strategies client 词典(纯数据模块:零运行时依赖)。\n *\n * 单一来源:本包 client apply 注册 zh/en(typed register 编译期校验键位);\n * packages/dsh-i18n 语言包构建期 import 本模块注册 zh-CN;scripts/i18n-audit.mjs\n * 静态加载本模块做 zh/en 键对齐与占位符对齐门禁。\n */\nimport type { StrategyLocaleKey } from './contract.ts'\n\nexport const zh: Record<StrategyLocaleKey, string> = {\n 'sv.section.screener': '选股策略',\n 'sv.section.quant': '量化策略',\n 'sv.horizon.short': '短线交易',\n 'sv.horizon.swing': '波段操作',\n 'sv.horizon.long': '长线投资',\n 'sv.run': '运行回测',\n 'sv.running': '回测计算中...',\n 'sv.symbolLabel': '标的:',\n 'sv.intervalDaily': '(日K)',\n 'sv.error.noKlines': '未能获取到该标的的 K 线数据,无法执行回测',\n 'sv.error.failed': '策略计算异常',\n 'sv.metrics.totalReturn': '累计收益率',\n 'sv.metrics.cagr': '年化复合增长率 (CAGR)',\n 'sv.metrics.maxDrawdown': '最大回撤 (MDD)',\n 'sv.metrics.sharpe': '夏普比率 (Sharpe)',\n 'sv.metrics.winRate': '胜率 (Win Rate)',\n 'sv.metrics.profitFactor': '盈亏比 (Profit Factor)',\n 'sv.metrics.tradeCount': '交易笔数',\n 'sv.metrics.tradeUnit': '笔',\n 'sv.metrics.exposure': '市场暴露度 (Exposure)',\n 'sv.trades.title': '交易明细流水',\n 'sv.trades.empty': '回测区间内未触发交易信号',\n 'sv.trades.entryTime': '开仓时间',\n 'sv.trades.exitTime': '平仓时间',\n 'sv.trades.entryPrice': '开仓均价',\n 'sv.trades.exitPrice': '平仓均价',\n 'sv.trades.holdingBars': '持仓根数',\n 'sv.trades.netReturn': '单笔净收益率',\n 'sv.trades.exitReason': '离场原因',\n 'sv.empty.hint': '选择上方策略与参数后,点击「运行回测」查看绩效与权益曲线',\n 'sv.screener.run': '运行选股',\n 'sv.screener.stop': '停止',\n 'sv.screener.scanLimit': '扫描池上限',\n 'sv.screener.universePrefix': '标的名册',\n 'sv.screener.scanned': '已扫描',\n 'sv.screener.hits': '命中',\n 'sv.screener.failed': '失败',\n 'sv.screener.noUniverse': '当前数据源未提供标的全集,选股功能不可用(Binance/OKX 等提供名册的连接器可用)',\n 'sv.screener.noHits': '扫描完成:没有标的满足当前条件',\n 'sv.screener.scanning': '扫描中,命中将实时出现在下方...',\n 'sv.screener.emptyHint': '选择上方选股器与参数后,点击「运行选股」扫描全市场标的',\n 'sv.screener.col.symbol': '代码',\n 'sv.screener.col.name': '名称',\n 'sv.screener.col.price': '现价',\n 'sv.screener.col.reason': '信号说明',\n 'sv.author.failed': '策略校验未通过',\n 'sv.mgmt.new': '新建策略',\n 'sv.mgmt.edit': '编辑',\n 'sv.mgmt.delete': '删除',\n 'sv.mgmt.restore': '恢复默认',\n 'sv.mgmt.deleted': '已删除',\n 'sv.mgmt.badge.builtin': '内置',\n 'sv.mgmt.badge.modified': '已修改',\n 'sv.mgmt.badge.custom': '自定义',\n 'sv.mgmt.confirmDelete': '确定删除该策略?内置策略删除后可「恢复默认」找回出厂代码;你对内置策略的修改和自定义策略的删除不可恢复。',\n 'sv.mgmt.confirmOverride': '该 ID 与内置策略同名,保存将覆盖内置策略(可随时恢复出厂代码;本次修改保存后删除/恢复将不可找回)。继续?',\n 'sv.mgmt.confirmRestore': '恢复出厂将清除该内置策略的全部修改(不可恢复),出厂代码会找回。继续?',\n 'sv.mgmt.editorTitle': '策略编辑器',\n 'sv.mgmt.field.id': 'ID',\n 'sv.mgmt.field.title': '名称',\n 'sv.mgmt.field.horizon': '期限',\n 'sv.mgmt.field.summary': '一句话思路',\n 'sv.mgmt.field.params': '参数规格',\n 'sv.mgmt.field.source': '策略源码 compute(bars, params)',\n 'sv.mgmt.fieldRequired': '必填字段缺失或数值非法',\n 'sv.mgmt.param.key': '键',\n 'sv.mgmt.param.label': '名称',\n 'sv.mgmt.param.default': '默认',\n 'sv.mgmt.param.min': '最小',\n 'sv.mgmt.param.max': '最大',\n 'sv.mgmt.param.step': '步进',\n 'sv.mgmt.addParam': '添加参数',\n 'sv.mgmt.removeParam': '移除',\n 'sv.mgmt.validate': '校验',\n 'sv.mgmt.validating': '计算中…',\n 'sv.mgmt.validationOk': '校验通过:5 场景试算 + 信号序列可复算',\n 'sv.mgmt.save': '保存',\n 'sv.mgmt.cancel': '取消',\n 'sv.mgmt.saveFailed': '保存失败',\n 'sv.mgmt.rosterEmpty': '名册为空:全部内置策略已删除且无自定义策略,可新建策略或恢复内置默认',\n 'sv.mgmt.newScreener': '新建选股器',\n 'sv.mgmt.editorTitleScreener': '选股器编辑器',\n 'sv.mgmt.field.columns': '结果列',\n 'sv.mgmt.field.evaluate': '选股器源码 evaluate(bars, params)',\n 'sv.mgmt.column.format': '格式',\n 'sv.mgmt.addColumn': '添加列',\n 'sv.mgmt.confirmOverrideScreener': '该 ID 与内置选股器同名,保存将覆盖内置选股器(可随时恢复出厂代码;本次修改保存后删除/恢复将不可找回)。继续?',\n 'sv.mgmt.validationOkScreener': '校验通过:5 场景试算,命中形状合法',\n 'sv.screener.rosterEmpty': '选股器名册为空:全部内置选股器已删除且无自定义选股器,可新建或恢复内置默认',\n 'strat.donchian-breakout': \"唐奇安通道突破\",\n 'strat.donchian-breakout.summary': \"收盘价突破前 N1 根最高价做多,跌破前 N2 根最低价离场(海龟经典简化版)\",\n 'strat.donchian-breakout.param.lookbackEntry': \"突破周期 (N1)\",\n 'strat.donchian-breakout.param.lookbackExit': \"离场周期 (N2)\",\n 'strat.donchian-breakout.reason.entry': \"收盘价 ({close}) 突破前 {n} 根最高价 ({high})\",\n 'strat.donchian-breakout.reason.exit': \"收盘价 ({close}) 跌破前 {n} 根最低价 ({low})\",\n 'strat.rsi-reversion': \"RSI 短线极值回归\",\n 'strat.rsi-reversion.summary': \"短周期 RSI(2) 进入极端超卖区抄底,快速反弹后止盈(经典均值回归)\",\n 'strat.rsi-reversion.param.rsiPeriod': \"RSI 周期\",\n 'strat.rsi-reversion.param.entryThreshold': \"入场超卖阈值\",\n 'strat.rsi-reversion.param.exitThreshold': \"出场止盈阈值\",\n 'strat.rsi-reversion.reason.entry': \"RSI({period}) 达到极端超卖值 ({val} < {thresh}),触发反弹买入\",\n 'strat.rsi-reversion.reason.exit': \"RSI({period}) 回升至目标位 ({val} > {thresh}),止盈离场\",\n 'strat.ema-crossover': \"EMA 双均线趋势跟踪\",\n 'strat.ema-crossover.summary': \"快线 EMA 上穿慢线 EMA 金叉做多,死叉平仓(经典中线波段趋势策略)\",\n 'strat.ema-crossover.param.fastPeriod': \"快线周期 (Fast)\",\n 'strat.ema-crossover.param.slowPeriod': \"慢线周期 (Slow)\",\n 'strat.ema-crossover.reason.entry': \"EMA({fastP}) ({fast}) 上穿 EMA({slowP}) ({slow}) 形成金叉\",\n 'strat.ema-crossover.reason.exit': \"EMA({fastP}) ({fast}) 下穿 EMA({slowP}) ({slow}) 形成死叉\",\n 'strat.bollinger-reversion': \"布林带下轨均值回归\",\n 'strat.bollinger-reversion.summary': \"价格跌破布林线下轨时介入抄底,反弹至中轨(基准均线)时平仓(波段通道回归)\",\n 'strat.bollinger-reversion.param.period': \"布林周期\",\n 'strat.bollinger-reversion.param.multiplier': \"标准差倍数 (k)\",\n 'strat.bollinger-reversion.reason.entry': \"收盘价 ({close}) 跌破布林下轨 ({band}),触发波段均值回归\",\n 'strat.bollinger-reversion.reason.exit': \"收盘价 ({close}) 成功回归至布林中轨 ({mid}),完成目标止盈\",\n 'strat.sma-baseline': \"200 日均线牛熊择时基线\",\n 'strat.sma-baseline.summary': \"收盘价站上 SMA200 均线做多,跌破均线空仓避险(长线资产配置经典基线)\",\n 'strat.sma-baseline.param.period': \"长期均线周期\",\n 'strat.sma-baseline.reason.entry': \"收盘价 ({close}) 站上长期基线 SMA({period}) ({sma}),确立多头趋势\",\n 'strat.sma-baseline.reason.exit': \"收盘价 ({close}) 跌破长期基线 SMA({period}) ({sma}),转入防御避险\",\n 'strat.momentum-12m': \"12 个月动量择时\",\n 'strat.momentum-12m.summary': \"近 12 个月动量为正且站上年线做多,动量转负或破位离场(低换手长线动量)\",\n 'strat.momentum-12m.param.lookbackBars': \"动量回溯周期 (K线)\",\n 'strat.momentum-12m.reason.entry': \"近 {n} 周期动量为正 (+{pct}%) 且位于均线 ({sma}) 之上,确认强动量\",\n 'strat.momentum-12m.reason.exit': \"{cause} ({pct}% / SMA {sma}),动量衰减平仓\",\n 'scr.ma-bull-align': \"均线多头排列\",\n 'scr.ma-bull-align.summary': \"现价站上三线且 SMA(短) > SMA(中) > SMA(长),筛选趋势结构完整的标的\",\n 'scr.ma-bull-align.param.n1': \"短期均线\",\n 'scr.ma-bull-align.param.n2': \"中期均线\",\n 'scr.ma-bull-align.param.n3': \"长期均线\",\n 'scr.ma-bull-align.col.distLongPct': \"距长期均线\",\n 'scr.ma-bull-align.reason': \"现价站上三线且 SMA({n1}) > SMA({n2}) > SMA({n3}),多头排列\",\n 'scr.volume-breakout': \"放量突破\",\n 'scr.volume-breakout.summary': \"收盘价创 N 日新高且成交量 ≥ 均量 M 倍,量价配合的突破筛选\",\n 'scr.volume-breakout.param.lookback': \"突破窗口(日)\",\n 'scr.volume-breakout.param.volMultiple': \"量能倍数\",\n 'scr.volume-breakout.col.volRatio': \"量比(倍)\",\n 'scr.volume-breakout.col.breakoutPct': \"突破幅度\",\n 'scr.volume-breakout.reason': \"放量 {ratio} 倍突破 {n} 日高点\",\n 'scr.rsi-oversold': \"RSI 超卖\",\n 'scr.rsi-oversold.summary': \"RSI 跌入超卖区(默认 <30),筛选值得盯的反转候选(逆势信号)\",\n 'scr.rsi-oversold.param.period': \"RSI 周期\",\n 'scr.rsi-oversold.param.threshold': \"超卖阈值\",\n 'scr.rsi-oversold.col.rsi': \"RSI\",\n 'scr.rsi-oversold.reason': \"RSI({period}) = {val},进入超卖区(逆势信号)\",\n 'scr.near-high': \"接近一年新高\",\n 'scr.near-high.summary': \"现价距 N 日最高价不超过 X%,强势整理/突破前夜的动量筛选\",\n 'scr.near-high.param.window': \"窗口(日)\",\n 'scr.near-high.param.withinPct': \"接近阈值(%)\",\n 'scr.near-high.col.offHighPct': \"距高点\",\n 'scr.near-high.reason': \"距 {n} 日高点仅 {pct}%,处于突破前夜\",\n 'scr.above-ma': \"站上牛熊线\",\n 'scr.above-ma.summary': \"现价站上长期均线且均线斜率向上,筛选长线多头环境的标的\",\n 'scr.above-ma.param.period': \"牛熊线周期\",\n 'scr.above-ma.param.slopeBars': \"斜率窗口(日)\",\n 'scr.above-ma.col.aboveMaPct': \"高于均线\",\n 'scr.above-ma.col.maSlopePct': \"均线斜率\",\n 'scr.above-ma.reason': \"现价高于 SMA({period}) {above}%,均线 {slope} 日斜率 +{slopePct}%\",\n 'strat.momentum-12m.cause.momentumNegative': \"动量转为负值\",\n 'strat.momentum-12m.cause.belowBaseline': \"跌破基准均线\",\n}\n\nexport const en: Record<StrategyLocaleKey, string> = {\n 'sv.section.screener': 'Screener',\n 'sv.section.quant': 'Quantitative',\n 'sv.horizon.short': 'Short-term',\n 'sv.horizon.swing': 'Swing',\n 'sv.horizon.long': 'Long-term',\n 'sv.run': 'Run Backtest',\n 'sv.running': 'Running...',\n 'sv.symbolLabel': 'Symbol & Interval:',\n 'sv.intervalDaily': '(Daily)',\n 'sv.error.noKlines': 'Failed to fetch klines for this symbol, cannot run backtest',\n 'sv.error.failed': 'Strategy compute error',\n 'sv.metrics.totalReturn': 'Total Return',\n 'sv.metrics.cagr': 'CAGR',\n 'sv.metrics.maxDrawdown': 'Max Drawdown',\n 'sv.metrics.sharpe': 'Sharpe Ratio',\n 'sv.metrics.winRate': 'Win Rate',\n 'sv.metrics.profitFactor': 'Profit Factor',\n 'sv.metrics.tradeCount': 'Trades',\n 'sv.metrics.tradeUnit': 'trades',\n 'sv.metrics.exposure': 'Market Exposure',\n 'sv.trades.title': 'Trade Log',\n 'sv.trades.empty': 'No trades generated in the backtest period',\n 'sv.trades.entryTime': 'Entry Time',\n 'sv.trades.exitTime': 'Exit Time',\n 'sv.trades.entryPrice': 'Entry Price',\n 'sv.trades.exitPrice': 'Exit Price',\n 'sv.trades.holdingBars': 'Holding Bars',\n 'sv.trades.netReturn': 'Net Return',\n 'sv.trades.exitReason': 'Exit Reason',\n 'sv.empty.hint': 'Select a strategy and parameters above, then click \"Run Backtest\"',\n 'sv.screener.run': 'Scan',\n 'sv.screener.stop': 'Stop',\n 'sv.screener.scanLimit': 'Scan Cap',\n 'sv.screener.universePrefix': 'Universe',\n 'sv.screener.scanned': 'Scanned',\n 'sv.screener.hits': 'Hits',\n 'sv.screener.failed': 'Failed',\n 'sv.screener.noUniverse': 'This data source does not provide a symbol universe; screening is unavailable (connectors like Binance/OKX do)',\n 'sv.screener.noHits': 'Scan finished: no symbols match the current criteria',\n 'sv.screener.scanning': 'Scanning, hits appear below in real time...',\n 'sv.screener.emptyHint': 'Pick a screener and parameters above, then click \"Scan\" to screen the market',\n 'sv.screener.col.symbol': 'Symbol',\n 'sv.screener.col.name': 'Name',\n 'sv.screener.col.price': 'Price',\n 'sv.screener.col.reason': 'Signal',\n 'sv.author.failed': 'Validation failed',\n 'sv.mgmt.new': 'New Strategy',\n 'sv.mgmt.edit': 'Edit',\n 'sv.mgmt.delete': 'Delete',\n 'sv.mgmt.restore': 'Restore',\n 'sv.mgmt.deleted': 'Deleted',\n 'sv.mgmt.badge.builtin': 'Built-in',\n 'sv.mgmt.badge.modified': 'Modified',\n 'sv.mgmt.badge.custom': 'Custom',\n 'sv.mgmt.confirmDelete': 'Delete this strategy? Deleted built-ins can be restored to factory code via \"Restore\"; your modifications to a built-in and deleted custom strategies cannot be recovered.',\n 'sv.mgmt.confirmOverride': 'This ID collides with a built-in strategy. Saving will override it (factory code stays restorable; once saved, this modification is unrecoverable on delete/restore). Continue?',\n 'sv.mgmt.confirmRestore': 'Restoring factory default will permanently discard all modifications to this built-in strategy (unrecoverable). The factory code will be restored. Continue?',\n 'sv.mgmt.editorTitle': 'Strategy Editor',\n 'sv.mgmt.field.id': 'ID',\n 'sv.mgmt.field.title': 'Title',\n 'sv.mgmt.field.horizon': 'Horizon',\n 'sv.mgmt.field.summary': 'Summary',\n 'sv.mgmt.field.params': 'Parameters',\n 'sv.mgmt.field.source': 'Strategy source compute(bars, params)',\n 'sv.mgmt.fieldRequired': 'Required field missing or invalid number',\n 'sv.mgmt.param.key': 'Key',\n 'sv.mgmt.param.label': 'Label',\n 'sv.mgmt.param.default': 'Default',\n 'sv.mgmt.param.min': 'Min',\n 'sv.mgmt.param.max': 'Max',\n 'sv.mgmt.param.step': 'Step',\n 'sv.mgmt.addParam': 'Add Parameter',\n 'sv.mgmt.removeParam': 'Remove',\n 'sv.mgmt.validate': 'Validate',\n 'sv.mgmt.validating': 'Computing…',\n 'sv.mgmt.validationOk': 'Validation passed: 5 scenarios + replayable signal sequence',\n 'sv.mgmt.save': 'Save',\n 'sv.mgmt.cancel': 'Cancel',\n 'sv.mgmt.saveFailed': 'Save failed',\n 'sv.mgmt.rosterEmpty': 'Roster is empty: all built-in strategies deleted and no custom strategies. Create one or restore built-ins.',\n 'sv.mgmt.newScreener': 'New Screener',\n 'sv.mgmt.editorTitleScreener': 'Screener Editor',\n 'sv.mgmt.field.columns': 'Columns',\n 'sv.mgmt.field.evaluate': 'Screener source evaluate(bars, params)',\n 'sv.mgmt.column.format': 'Format',\n 'sv.mgmt.addColumn': 'Add Column',\n 'sv.mgmt.confirmOverrideScreener': 'This ID collides with a built-in screener. Saving will override it (factory code stays restorable; once saved, this modification is unrecoverable on delete/restore). Continue?',\n 'sv.mgmt.validationOkScreener': 'Validation passed: 5 scenarios, match shape valid',\n 'sv.screener.rosterEmpty': 'Screener roster is empty: all built-ins deleted and no custom screeners. Create one or restore built-ins.',\n 'strat.donchian-breakout': \"Donchian breakout\",\n 'strat.donchian-breakout.summary': \"Go long when close breaks the N1-bar high; exit below the N2-bar low (classic turtle, simplified)\",\n 'strat.donchian-breakout.param.lookbackEntry': \"Breakout lookback (N1)\",\n 'strat.donchian-breakout.param.lookbackExit': \"Exit lookback (N2)\",\n 'strat.donchian-breakout.reason.entry': \"Close ({close}) breaks the {n}-bar high ({high})\",\n 'strat.donchian-breakout.reason.exit': \"Close ({close}) falls below the {n}-bar low ({low})\",\n 'strat.rsi-reversion': \"RSI short-term reversion\",\n 'strat.rsi-reversion.summary': \"Buy when short-period RSI(2) reaches extreme oversold; take profit on the quick bounce (classic mean reversion)\",\n 'strat.rsi-reversion.param.rsiPeriod': \"RSI period\",\n 'strat.rsi-reversion.param.entryThreshold': \"Entry oversold threshold\",\n 'strat.rsi-reversion.param.exitThreshold': \"Exit take-profit threshold\",\n 'strat.rsi-reversion.reason.entry': \"RSI({period}) at extreme oversold ({val} < {thresh}); bounce buy\",\n 'strat.rsi-reversion.reason.exit': \"RSI({period}) recovered to target ({val} > {thresh}); take profit\",\n 'strat.ema-crossover': \"EMA dual-MA trend following\",\n 'strat.ema-crossover.summary': \"Long on fast-EMA/slow-EMA golden cross, flat on death cross (classic swing trend strategy)\",\n 'strat.ema-crossover.param.fastPeriod': \"Fast period\",\n 'strat.ema-crossover.param.slowPeriod': \"Slow period\",\n 'strat.ema-crossover.reason.entry': \"EMA({fastP}) ({fast}) crosses above EMA({slowP}) ({slow}) — golden cross\",\n 'strat.ema-crossover.reason.exit': \"EMA({fastP}) ({fast}) crosses below EMA({slowP}) ({slow}) — death cross\",\n 'strat.bollinger-reversion': \"Bollinger lower-band reversion\",\n 'strat.bollinger-reversion.summary': \"Buy when price pierces the lower band; exit at the middle band (swing channel reversion)\",\n 'strat.bollinger-reversion.param.period': \"Bollinger period\",\n 'strat.bollinger-reversion.param.multiplier': \"Std-dev multiple (k)\",\n 'strat.bollinger-reversion.reason.entry': \"Close ({close}) pierces the lower band ({band}); swing reversion entry\",\n 'strat.bollinger-reversion.reason.exit': \"Close ({close}) reverted to the middle band ({mid}); target profit taken\",\n 'strat.sma-baseline': \"200-day SMA bull/bear baseline\",\n 'strat.sma-baseline.summary': \"Long above SMA200, in cash below it (classic long-term allocation baseline)\",\n 'strat.sma-baseline.param.period': \"Long MA period\",\n 'strat.sma-baseline.reason.entry': \"Close ({close}) above the long baseline SMA({period}) ({sma}); bull trend established\",\n 'strat.sma-baseline.reason.exit': \"Close ({close}) below the long baseline SMA({period}) ({sma}); defensive exit\",\n 'strat.momentum-12m': \"12-month momentum timing\",\n 'strat.momentum-12m.summary': \"Long when 12-month momentum is positive and price is above the yearly MA; exit on momentum decay (low-turnover long momentum)\",\n 'strat.momentum-12m.param.lookbackBars': \"Momentum lookback (bars)\",\n 'strat.momentum-12m.reason.entry': \"Positive {n}-bar momentum (+{pct}%) with price above the MA ({sma}); strong momentum confirmed\",\n 'strat.momentum-12m.reason.exit': \"{cause} ({pct}% / SMA {sma}); momentum-decay exit\",\n 'scr.ma-bull-align': \"MA bull alignment\",\n 'scr.ma-bull-align.summary': \"Price above all three MAs with SMA(short) > SMA(mid) > SMA(long); screens intact uptrends\",\n 'scr.ma-bull-align.param.n1': \"Short MA\",\n 'scr.ma-bull-align.param.n2': \"Mid MA\",\n 'scr.ma-bull-align.param.n3': \"Long MA\",\n 'scr.ma-bull-align.col.distLongPct': \"Distance to long MA\",\n 'scr.ma-bull-align.reason': \"Price above all three MAs, SMA({n1}) > SMA({n2}) > SMA({n3}) — bull alignment\",\n 'scr.volume-breakout': \"Volume breakout\",\n 'scr.volume-breakout.summary': \"Close at an N-bar high with volume ≥ M× average; volume-confirmed breakouts\",\n 'scr.volume-breakout.param.lookback': \"Breakout window (bars)\",\n 'scr.volume-breakout.param.volMultiple': \"Volume multiple\",\n 'scr.volume-breakout.col.volRatio': \"Volume ratio (x)\",\n 'scr.volume-breakout.col.breakoutPct': \"Breakout magnitude\",\n 'scr.volume-breakout.reason': \"{ratio}x volume breakout of the {n}-bar high\",\n 'scr.rsi-oversold': \"RSI oversold\",\n 'scr.rsi-oversold.summary': \"RSI in oversold territory (default <30); reversal candidates to watch (contrarian)\",\n 'scr.rsi-oversold.param.period': \"RSI period\",\n 'scr.rsi-oversold.param.threshold': \"Oversold threshold\",\n 'scr.rsi-oversold.col.rsi': \"RSI\",\n 'scr.rsi-oversold.reason': \"RSI({period}) = {val}; oversold (contrarian)\",\n 'scr.near-high': \"Near 52-week high\",\n 'scr.near-high.summary': \"Price within X% of the N-bar high; consolidation / pre-breakout momentum\",\n 'scr.near-high.param.window': \"Window (bars)\",\n 'scr.near-high.param.withinPct': \"Proximity threshold (%)\",\n 'scr.near-high.col.offHighPct': \"Off high\",\n 'scr.near-high.reason': \"Within {pct}% of the {n}-bar high; pre-breakout\",\n 'scr.above-ma': \"Above bull/bear line\",\n 'scr.above-ma.summary': \"Price above the long MA with rising slope; screens long-term bull regimes\",\n 'scr.above-ma.param.period': \"Bull/bear MA period\",\n 'scr.above-ma.param.slopeBars': \"Slope window (bars)\",\n 'scr.above-ma.col.aboveMaPct': \"Above MA\",\n 'scr.above-ma.col.maSlopePct': \"MA slope\",\n 'scr.above-ma.reason': \"Price {above}% above SMA({period}); {slope}-bar slope +{slopePct}%\",\n 'strat.momentum-12m.cause.momentumNegative': \"momentum turned negative\",\n 'strat.momentum-12m.cause.belowBaseline': \"fell below the baseline MA\",\n}\n","/**\n * client-ui-strategies, browser half (issue #34 / P5 拆包).\n *\n * 接入面(一切皆插件):ctx.inject(['tradingStageViews']) 把「策略」视图注册进\n * 中栏注册表;桥与 SSE 经 tradingBridge 服务(shell 提供)inject 进视图 props。\n * shell 未安装时两个 inject 回调都不触发,本插件静默无 UI(可选依赖语义)。\n *\n * 额外注册 tool.call.toolview keyed slot(key = strategy_backtest / strategy_author):\n * 对话内富卡片——回测 8 指标 mini 卡 + 权益曲线 sparkline;author 校验结果摘要。\n */\nimport type { Context as ClientContext } from '@deepseek-ai/cordis'\nimport type { ComponentType } from 'react'\nimport type { ToolCallOwnerProps } from '@deepseek-ai/dsh-client-ui-tool/client'\nimport { StrategyView } from './StrategyView.tsx'\nimport { StrategyBacktestCard, StrategyAuthorCard } from './toolview.tsx'\nimport type { StrategyEditorSaveInput } from './StrategyEditor.tsx'\nimport type { ScreenerEditorSaveInput } from './ScreenerEditor.tsx'\nimport './contract.ts'\n\nimport { en, zh } from './locales.ts'\nconst NS = 'dshtrading.strategies'\n\n/** Required services:slot/locale 官方服务 + 视图注册面 + 桥面(后两者由\n * client-ui-trading client 半 provide;本插件 apply 同步访问 ctx.locale/ctx.slots,\n * 故必须声明;tradingStageViews/tradingBridge 在 apply 内 ctx.inject 异步等待,\n * 不进静态名单——shell 未安装时挂起无害,可选依赖语义)。 */\nexport const inject = ['slots', 'locale']\n\n/** tradingStageViews / tradingBridge 的最小结构面(避免对 shell 包类型依赖)。 */\ninterface StageViewsService {\n register(definition: {\n id: string\n titleKey: string\n order?: number\n render: ComponentType<{ t: (key: string) => string; view: string }>\n }): void\n}\ninterface BridgeService {\n fetchKlines(market: string, symbol: string, interval: string, limit: number): Promise<unknown[]>\n fetchCustomStrategies(): Promise<Array<Record<string, unknown>>>\n fetchSymbols(market: string): Promise<Array<{ symbol: string; name?: string }>>\n subscribeTradingEvents(handlers: Record<string, () => void>): () => void\n // 策略管理面(2026-09-07;老 shell 缺席 → 视图管理动作降级隐藏)。\n saveCustomStrategy?(input: StrategyEditorSaveInput): Promise<{ ok: true } | { ok: false; reason: string } | null>\n deleteCustomStrategy?(id: string): Promise<boolean>\n resetStrategy?(id: string): Promise<{ ok: boolean; changed: boolean } | null>\n fetchStrategyTombstones?(): Promise<string[]>\n // 选股器管理面(选股器管理;老 shell 缺席 → ScreenerPane 管理动作降级隐藏)。\n fetchCustomScreeners?(): Promise<Array<Record<string, unknown>>>\n saveCustomScreener?(input: ScreenerEditorSaveInput): Promise<{ ok: true } | { ok: false; reason: string } | null>\n deleteCustomScreener?(id: string): Promise<boolean>\n resetScreener?(id: string): Promise<{ ok: boolean; changed: boolean } | null>\n}\n\nexport function apply(ctx: ClientContext): void {\n const t = ctx.locale.bind(NS)\n ctx.effect(() => ctx.locale.register(NS, { zh, en }), 'dsh-trading-strategies-view: dictionaries')\n\n // 中栏「策略」tab:视图组件在 render 闭包里捕获 t 与桥(服务就绪后注册,\n // 依赖时序由 cordis inject 解析保证)。\n // bridge/t 必须 apply 期只建一次(引用稳定):render 闭包里每次新建字面量会让\n // 视图 useEffect([bridge]) 自激振荡——每帧重拉数据(2026-09-01 实证 fetch 风暴)。\n ctx.inject(['tradingStageViews', 'tradingBridge'] as never, (scope) => {\n const faces = scope as unknown as { tradingStageViews: StageViewsService; tradingBridge: BridgeService }\n const bridge = {\n fetchKlines: (market, symbol, interval, limit) =>\n faces.tradingBridge.fetchKlines(market, symbol, interval, limit) as never,\n fetchCustomStrategies: () =>\n faces.tradingBridge.fetchCustomStrategies() as never,\n fetchSymbols: (market) =>\n faces.tradingBridge.fetchSymbols(market) as never,\n subscribeTradingEvents: (handlers) => faces.tradingBridge.subscribeTradingEvents(handlers),\n // 管理面透传(可选:老 shell 缺席时方法为 undefined,视图据此降级)。\n saveCustomStrategy: faces.tradingBridge.saveCustomStrategy?.bind(faces.tradingBridge),\n deleteCustomStrategy: faces.tradingBridge.deleteCustomStrategy?.bind(faces.tradingBridge),\n resetStrategy: faces.tradingBridge.resetStrategy?.bind(faces.tradingBridge),\n fetchStrategyTombstones: faces.tradingBridge.fetchStrategyTombstones?.bind(faces.tradingBridge),\n // 选股器管理面透传。\n fetchCustomScreeners: faces.tradingBridge.fetchCustomScreeners?.bind(faces.tradingBridge),\n saveCustomScreener: faces.tradingBridge.saveCustomScreener?.bind(faces.tradingBridge),\n deleteCustomScreener: faces.tradingBridge.deleteCustomScreener?.bind(faces.tradingBridge),\n resetScreener: faces.tradingBridge.resetScreener?.bind(faces.tradingBridge),\n }\n faces.tradingStageViews.register({\n id: 'strategy',\n titleKey: 'stage.strategy',\n order: 10,\n render: (props) => StrategyView({\n // shell 词典的 stage.tab 文案由宿主 t(dshtrading.market)渲染——这里\n // 只收本包词典;tab 条的 t 由 MiddleStage 自己出。视图内 t 走本包 NS。\n t: t as unknown as (key: string) => string,\n view: props.view,\n bridge,\n }),\n })\n })\n\n // 对话内富卡片(§5.5):strategy_backtest 权益曲线 + 8 指标 mini 卡;\n // strategy_author 校验结果 + 参数摘要。keyed slot,key = 工具名。\n ctx.slots.inject('tool.call.toolview', () => ctx.slots.register({\n name: 'tool.call.toolview',\n key: 'strategy_backtest',\n locale: NS,\n }, StrategyBacktestCard as unknown as ComponentType<ToolCallOwnerProps & { t: (key: string) => string }>))\n ctx.slots.inject('tool.call.toolview', () => ctx.slots.register({\n name: 'tool.call.toolview',\n key: 'strategy_author',\n locale: NS,\n }, StrategyAuthorCard as unknown as ComponentType<ToolCallOwnerProps & { t: (key: string) => string }>))\n}\n"],"x_google_ignoreList":[0,1,2,3,4],"mappings":"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"}
|