funhi-chart 1.3.0 → 1.3.2
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/dist/dts/adapters/CandleStorageAdapter.d.ts +14 -0
- package/dist/dts/components/FunhiChart.d.ts +4 -0
- package/dist/dts/components/FunhiChartOOP.d.ts +8 -0
- package/dist/dts/core/CandleManager.d.ts +73 -0
- package/dist/dts/core/ChartRenderer.d.ts +46 -0
- package/dist/dts/core/FunhiChartController.d.ts +61 -0
- package/dist/dts/core/TimeframeManager.d.ts +42 -0
- package/dist/dts/core/index.d.ts +8 -0
- package/dist/dts/core/types.d.ts +33 -0
- package/dist/dts/handlers/RealTimeUpdateHandler.d.ts +29 -0
- package/dist/dts/validators/CandleValidator.d.ts +38 -0
- package/dist/index.d.ts +4 -0
- package/dist/index.esm.js +2 -2
- package/dist/index.esm.js.map +1 -1
- package/dist/index.js +2 -2
- package/dist/index.js.map +1 -1
- package/package.json +10 -2
package/dist/index.esm.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.esm.js","sources":["../node_modules/fancy-canvas/size.mjs","../node_modules/fancy-canvas/device-pixel-ratio.mjs","../node_modules/fancy-canvas/canvas-element-bitmap-size.mjs","../node_modules/fancy-canvas/canvas-rendering-target.mjs","../node_modules/lightweight-charts/dist/lightweight-charts.production.mjs","../src/hooks/useSocket.ts","../src/hooks/useOptimizedTokenAnalytics.ts","../node_modules/axios/lib/helpers/bind.js","../node_modules/axios/lib/utils.js","../node_modules/axios/lib/core/AxiosError.js","../node_modules/axios/lib/helpers/toFormData.js","../node_modules/axios/lib/helpers/AxiosURLSearchParams.js","../node_modules/axios/lib/helpers/buildURL.js","../node_modules/axios/lib/core/InterceptorManager.js","../node_modules/axios/lib/defaults/transitional.js","../node_modules/axios/lib/platform/browser/index.js","../node_modules/axios/lib/platform/browser/classes/URLSearchParams.js","../node_modules/axios/lib/platform/browser/classes/FormData.js","../node_modules/axios/lib/platform/browser/classes/Blob.js","../node_modules/axios/lib/platform/common/utils.js","../node_modules/axios/lib/platform/index.js","../node_modules/axios/lib/helpers/formDataToJSON.js","../node_modules/axios/lib/defaults/index.js","../node_modules/axios/lib/helpers/toURLEncodedForm.js","../node_modules/axios/lib/helpers/parseHeaders.js","../node_modules/axios/lib/core/AxiosHeaders.js","../node_modules/axios/lib/core/transformData.js","../node_modules/axios/lib/cancel/isCancel.js","../node_modules/axios/lib/cancel/CanceledError.js","../node_modules/axios/lib/core/settle.js","../node_modules/axios/lib/helpers/progressEventReducer.js","../node_modules/axios/lib/helpers/speedometer.js","../node_modules/axios/lib/helpers/throttle.js","../node_modules/axios/lib/helpers/isURLSameOrigin.js","../node_modules/axios/lib/helpers/cookies.js","../node_modules/axios/lib/core/buildFullPath.js","../node_modules/axios/lib/helpers/isAbsoluteURL.js","../node_modules/axios/lib/helpers/combineURLs.js","../node_modules/axios/lib/core/mergeConfig.js","../node_modules/axios/lib/helpers/resolveConfig.js","../node_modules/axios/lib/adapters/xhr.js","../node_modules/axios/lib/helpers/parseProtocol.js","../node_modules/axios/lib/helpers/composeSignals.js","../node_modules/axios/lib/helpers/trackStream.js","../node_modules/axios/lib/adapters/fetch.js","../node_modules/axios/lib/adapters/adapters.js","../node_modules/axios/lib/helpers/null.js","../node_modules/axios/lib/core/dispatchRequest.js","../node_modules/axios/lib/env/data.js","../node_modules/axios/lib/helpers/validator.js","../node_modules/axios/lib/core/Axios.js","../node_modules/axios/lib/helpers/HttpStatusCode.js","../node_modules/axios/lib/axios.js","../node_modules/axios/lib/cancel/CancelToken.js","../node_modules/axios/lib/helpers/spread.js","../node_modules/axios/lib/helpers/isAxiosError.js","../node_modules/axios/index.js","../src/config/environment.ts","../src/services/candleStorage.ts","../src/components/FunhiChart.tsx","../src/utils/candleAggregation.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™ v4.2.3\n * Copyright (c) 2025 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={upColor:\"#26a69a\",downColor:\"#ef5350\",wickVisible:!0,borderVisible:!0,borderColor:\"#378658\",borderUpColor:\"#26a69a\",borderDownColor:\"#ef5350\",wickColor:\"#737375\",wickUpColor:\"#26a69a\",wickDownColor:\"#ef5350\"},r={upColor:\"#26a69a\",downColor:\"#ef5350\",openVisible:!0,thinBars:!0},h={color:\"#2196f3\",lineStyle:0,lineWidth:3,lineType:0,lineVisible:!0,crosshairMarkerVisible:!0,crosshairMarkerRadius:4,crosshairMarkerBorderColor:\"\",crosshairMarkerBorderWidth:2,crosshairMarkerBackgroundColor:\"\",lastPriceAnimation:0,pointMarkersVisible:!1},l={topColor:\"rgba( 46, 220, 135, 0.4)\",bottomColor:\"rgba( 40, 221, 100, 0)\",invertFilledArea:!1,lineColor:\"#33D778\",lineStyle:0,lineWidth:3,lineType:0,lineVisible:!0,crosshairMarkerVisible:!0,crosshairMarkerRadius:4,crosshairMarkerBorderColor:\"\",crosshairMarkerBorderWidth:2,crosshairMarkerBackgroundColor:\"\",lastPriceAnimation:0,pointMarkersVisible:!1},a={baseValue:{type:\"price\",price:0},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},o={color:\"#26a69a\",base:0},_={color:\"#2196f3\"},u={title:\"\",visible:!0,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 c,d;function f(t,i){const n={0:[],1:[t.lineWidth,t.lineWidth],2:[2*t.lineWidth,2*t.lineWidth],3:[6*t.lineWidth,6*t.lineWidth],4:[t.lineWidth,4*t.lineWidth]}[i];t.setLineDash(n)}function v(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 p(t,i){if(!t)throw new Error(\"Assertion failed\"+(i?\": \"+i:\"\"))}function m(t){if(void 0===t)throw new Error(\"Value is undefined\");return t}function b(t){if(null===t)throw new Error(\"Value is null\");return t}function w(t){return b(m(t))}!function(t){t[t.Simple=0]=\"Simple\",t[t.WithSteps=1]=\"WithSteps\",t[t.Curved=2]=\"Curved\"}(c||(c={})),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\"}(d||(d={}));const g={khaki:\"#f0e68c\",azure:\"#f0ffff\",aliceblue:\"#f0f8ff\",ghostwhite:\"#f8f8ff\",gold:\"#ffd700\",goldenrod:\"#daa520\",gainsboro:\"#dcdcdc\",gray:\"#808080\",green:\"#008000\",honeydew:\"#f0fff0\",floralwhite:\"#fffaf0\",lightblue:\"#add8e6\",lightcoral:\"#f08080\",lemonchiffon:\"#fffacd\",hotpink:\"#ff69b4\",lightyellow:\"#ffffe0\",greenyellow:\"#adff2f\",lightgoldenrodyellow:\"#fafad2\",limegreen:\"#32cd32\",linen:\"#faf0e6\",lightcyan:\"#e0ffff\",magenta:\"#f0f\",maroon:\"#800000\",olive:\"#808000\",orange:\"#ffa500\",oldlace:\"#fdf5e6\",mediumblue:\"#0000cd\",transparent:\"#0000\",lime:\"#0f0\",lightpink:\"#ffb6c1\",mistyrose:\"#ffe4e1\",moccasin:\"#ffe4b5\",midnightblue:\"#191970\",orchid:\"#da70d6\",mediumorchid:\"#ba55d3\",mediumturquoise:\"#48d1cc\",orangered:\"#ff4500\",royalblue:\"#4169e1\",powderblue:\"#b0e0e6\",red:\"#f00\",coral:\"#ff7f50\",turquoise:\"#40e0d0\",white:\"#fff\",whitesmoke:\"#f5f5f5\",wheat:\"#f5deb3\",teal:\"#008080\",steelblue:\"#4682b4\",bisque:\"#ffe4c4\",aquamarine:\"#7fffd4\",aqua:\"#0ff\",sienna:\"#a0522d\",silver:\"#c0c0c0\",springgreen:\"#00ff7f\",antiquewhite:\"#faebd7\",burlywood:\"#deb887\",brown:\"#a52a2a\",beige:\"#f5f5dc\",chocolate:\"#d2691e\",chartreuse:\"#7fff00\",cornflowerblue:\"#6495ed\",cornsilk:\"#fff8dc\",crimson:\"#dc143c\",cadetblue:\"#5f9ea0\",tomato:\"#ff6347\",fuchsia:\"#f0f\",blue:\"#00f\",salmon:\"#fa8072\",blanchedalmond:\"#ffebcd\",slateblue:\"#6a5acd\",slategray:\"#708090\",thistle:\"#d8bfd8\",tan:\"#d2b48c\",cyan:\"#0ff\",darkblue:\"#00008b\",darkcyan:\"#008b8b\",darkgoldenrod:\"#b8860b\",darkgray:\"#a9a9a9\",blueviolet:\"#8a2be2\",black:\"#000\",darkmagenta:\"#8b008b\",darkslateblue:\"#483d8b\",darkkhaki:\"#bdb76b\",darkorchid:\"#9932cc\",darkorange:\"#ff8c00\",darkgreen:\"#006400\",darkred:\"#8b0000\",dodgerblue:\"#1e90ff\",darkslategray:\"#2f4f4f\",dimgray:\"#696969\",deepskyblue:\"#00bfff\",firebrick:\"#b22222\",forestgreen:\"#228b22\",indigo:\"#4b0082\",ivory:\"#fffff0\",lavenderblush:\"#fff0f5\",feldspar:\"#d19275\",indianred:\"#cd5c5c\",lightgreen:\"#90ee90\",lightgrey:\"#d3d3d3\",lightskyblue:\"#87cefa\",lightslategray:\"#789\",lightslateblue:\"#8470ff\",snow:\"#fffafa\",lightseagreen:\"#20b2aa\",lightsalmon:\"#ffa07a\",darksalmon:\"#e9967a\",darkviolet:\"#9400d3\",mediumpurple:\"#9370d8\",mediumaquamarine:\"#66cdaa\",skyblue:\"#87ceeb\",lavender:\"#e6e6fa\",lightsteelblue:\"#b0c4de\",mediumvioletred:\"#c71585\",mintcream:\"#f5fffa\",navajowhite:\"#ffdead\",navy:\"#000080\",olivedrab:\"#6b8e23\",palevioletred:\"#d87093\",violetred:\"#d02090\",yellow:\"#ff0\",yellowgreen:\"#9acd32\",lawngreen:\"#7cfc00\",pink:\"#ffc0cb\",paleturquoise:\"#afeeee\",palegoldenrod:\"#eee8aa\",darkolivegreen:\"#556b2f\",darkseagreen:\"#8fbc8f\",darkturquoise:\"#00ced1\",peachpuff:\"#ffdab9\",deeppink:\"#ff1493\",violet:\"#ee82ee\",palegreen:\"#98fb98\",mediumseagreen:\"#3cb371\",peru:\"#cd853f\",saddlebrown:\"#8b4513\",sandybrown:\"#f4a460\",rosybrown:\"#bc8f8f\",purple:\"#800080\",seagreen:\"#2e8b57\",seashell:\"#fff5ee\",papayawhip:\"#ffefd5\",mediumslateblue:\"#7b68ee\",plum:\"#dda0dd\",mediumspringgreen:\"#00fa9a\"};function M(t){return t<0?0:t>255?255:Math.round(t)||0}function x(t){return t<=0||t>1?Math.min(Math.max(t,0),1):Math.round(1e4*t)/1e4}const S=/^#([0-9a-f])([0-9a-f])([0-9a-f])([0-9a-f])?$/i,k=/^#([0-9a-f]{2})([0-9a-f]{2})([0-9a-f]{2})([0-9a-f]{2})?$/i,y=/^rgb\\(\\s*(-?\\d{1,10})\\s*,\\s*(-?\\d{1,10})\\s*,\\s*(-?\\d{1,10})\\s*\\)$/,C=/^rgba\\(\\s*(-?\\d{1,10})\\s*,\\s*(-?\\d{1,10})\\s*,\\s*(-?\\d{1,10})\\s*,\\s*(-?\\d*\\.?\\d+)\\s*\\)$/;function T(t){(t=t.toLowerCase())in g&&(t=g[t]);{const i=C.exec(t)||y.exec(t);if(i)return[M(parseInt(i[1],10)),M(parseInt(i[2],10)),M(parseInt(i[3],10)),x(i.length<5?1:parseFloat(i[4]))]}{const i=k.exec(t);if(i)return[M(parseInt(i[1],16)),M(parseInt(i[2],16)),M(parseInt(i[3],16)),1]}{const i=S.exec(t);if(i)return[M(17*parseInt(i[1],16)),M(17*parseInt(i[2],16)),M(17*parseInt(i[3],16)),1]}throw new Error(`Cannot parse color: ${t}`)}function P(t){return.199*t[0]+.687*t[1]+.114*t[2]}function R(t){const i=T(t);return{t:`rgb(${i[0]}, ${i[1]}, ${i[2]})`,i:P(i)>160?\"black\":\"white\"}}class D{constructor(){this.h=[]}l(t,i,n){const s={o:t,_:i,u:!0===n};this.h.push(s)}v(t){const i=this.h.findIndex((i=>t===i.o));i>-1&&this.h.splice(i,1)}p(t){this.h=this.h.filter((i=>i._!==t))}m(t,i,n){const s=[...this.h];this.h=this.h.filter((t=>!t.u)),s.forEach((s=>s.o(t,i,n)))}M(){return this.h.length>0}S(){this.h=[]}}function V(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]:V(t[i],n[i]));return t}function O(t){return\"number\"==typeof t&&isFinite(t)}function B(t){return\"number\"==typeof t&&t%1==0}function A(t){return\"string\"==typeof t}function I(t){return\"boolean\"==typeof t}function z(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?z(e):e);return n}function L(t){return null!==t}function E(t){return null===t?void 0:t}const N=\"-apple-system, BlinkMacSystemFont, 'Trebuchet MS', Roboto, Ubuntu, sans-serif\";function F(t,i,n){return void 0===i&&(i=N),`${n=void 0!==n?`${n} `:\"\"}${t}px ${i}`}class W{constructor(t){this.k={C:1,T:5,P:NaN,R:\"\",D:\"\",V:\"\",O:\"\",B:0,A:0,I:0,L:0,N:0},this.F=t}W(){const t=this.k,i=this.j(),n=this.H();return t.P===i&&t.D===n||(t.P=i,t.D=n,t.R=F(i,n),t.L=2.5/12*i,t.B=t.L,t.A=i/12*t.T,t.I=i/12*t.T,t.N=0),t.V=this.$(),t.O=this.U(),this.k}$(){return this.F.W().layout.textColor}U(){return this.F.q()}j(){return this.F.W().layout.fontSize}H(){return this.F.W().layout.fontFamily}}class j{constructor(){this.Y=[]}Z(t){this.Y=t}X(t,i,n){this.Y.forEach((s=>{s.X(t,i,n)}))}}class H{X(t,i,n){t.useBitmapCoordinateSpace((t=>this.K(t,i,n)))}}class $ extends H{constructor(){super(...arguments),this.G=null}J(t){this.G=t}K({context:t,horizontalPixelRatio:i,verticalPixelRatio:n}){if(null===this.G||null===this.G.tt)return;const s=this.G.tt,e=this.G,r=Math.max(1,Math.floor(i))%2/2,h=h=>{t.beginPath();for(let l=s.to-1;l>=s.from;--l){const s=e.it[l],a=Math.round(s.nt*i)+r,o=s.st*n,_=h*n+r;t.moveTo(a,o),t.arc(a,o,_,0,2*Math.PI)}t.fill()};e.et>0&&(t.fillStyle=e.rt,h(e.ht+e.et)),t.fillStyle=e.lt,h(e.ht)}}function U(){return{it:[{nt:0,st:0,ot:0,_t:0}],lt:\"\",rt:\"\",ht:0,et:0,tt:null}}const q={from:0,to:1};class Y{constructor(t,i){this.ut=new j,this.ct=[],this.dt=[],this.ft=!0,this.F=t,this.vt=i,this.ut.Z(this.ct)}bt(t){const i=this.F.wt();i.length!==this.ct.length&&(this.dt=i.map(U),this.ct=this.dt.map((t=>{const i=new $;return i.J(t),i})),this.ut.Z(this.ct)),this.ft=!0}gt(){return this.ft&&(this.Mt(),this.ft=!1),this.ut}Mt(){const t=2===this.vt.W().mode,i=this.F.wt(),n=this.vt.xt(),s=this.F.St();i.forEach(((i,e)=>{var r;const h=this.dt[e],l=i.kt(n);if(t||null===l||!i.yt())return void(h.tt=null);const a=b(i.Ct());h.lt=l.Tt,h.ht=l.ht,h.et=l.Pt,h.it[0]._t=l._t,h.it[0].st=i.Dt().Rt(l._t,a.Vt),h.rt=null!==(r=l.Ot)&&void 0!==r?r:this.F.Bt(h.it[0].st/i.Dt().At()),h.it[0].ot=n,h.it[0].nt=s.It(n),h.tt=q}))}}class Z extends H{constructor(t){super(),this.zt=t}K({context:t,bitmapSize:i,horizontalPixelRatio:n,verticalPixelRatio:s}){if(null===this.zt)return;const e=this.zt.Lt.yt,r=this.zt.Et.yt;if(!e&&!r)return;const h=Math.round(this.zt.nt*n),l=Math.round(this.zt.st*s);t.lineCap=\"butt\",e&&h>=0&&(t.lineWidth=Math.floor(this.zt.Lt.et*n),t.strokeStyle=this.zt.Lt.V,t.fillStyle=this.zt.Lt.V,f(t,this.zt.Lt.Nt),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&&l>=0&&(t.lineWidth=Math.floor(this.zt.Et.et*s),t.strokeStyle=this.zt.Et.V,t.fillStyle=this.zt.Et.V,f(t,this.zt.Et.Nt),v(t,l,0,i.width))}}class X{constructor(t){this.ft=!0,this.Ft={Lt:{et:1,Nt:0,V:\"\",yt:!1},Et:{et:1,Nt:0,V:\"\",yt:!1},nt:0,st:0},this.Wt=new Z(this.Ft),this.jt=t}bt(){this.ft=!0}gt(){return this.ft&&(this.Mt(),this.ft=!1),this.Wt}Mt(){const t=this.jt.yt(),i=b(this.jt.Ht()),n=i.$t().W().crosshair,s=this.Ft;if(2===n.mode)return s.Et.yt=!1,void(s.Lt.yt=!1);s.Et.yt=t&&this.jt.Ut(i),s.Lt.yt=t&&this.jt.qt(),s.Et.et=n.horzLine.width,s.Et.Nt=n.horzLine.style,s.Et.V=n.horzLine.color,s.Lt.et=n.vertLine.width,s.Lt.Nt=n.vertLine.style,s.Lt.V=n.vertLine.color,s.nt=this.jt.Yt(),s.st=this.jt.Zt()}}function K(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 G(t,i,n,s,e,r){t.save(),t.globalCompositeOperation=\"copy\",t.fillStyle=r,t.fillRect(i,n,s,e),t.restore()}function J(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 Q(t,i,n,s,e,r,h=0,l=[0,0,0,0],a=\"\"){if(t.save(),!h||!a||a===r)return J(t,i,n,s,e,l),t.fillStyle=r,t.fill(),void t.restore();const o=h/2;var _;J(t,i+o,n+o,s-h,e-h,(_=-o,l.map((t=>0===t?t:t+_)))),\"transparent\"!==r&&(t.fillStyle=r,t.fill()),\"transparent\"!==a&&(t.lineWidth=h,t.strokeStyle=a,t.closePath(),t.stroke()),t.restore()}function tt(t,i,n,s,e,r,h){t.save(),t.globalCompositeOperation=\"copy\";const l=t.createLinearGradient(0,0,0,e);l.addColorStop(0,r),l.addColorStop(1,h),t.fillStyle=l,t.fillRect(i,n,s,e),t.restore()}class it{constructor(t,i){this.J(t,i)}J(t,i){this.zt=t,this.Xt=i}At(t,i){return this.zt.yt?t.P+t.L+t.B:0}X(t,i,n,s){if(!this.zt.yt||0===this.zt.Kt.length)return;const e=this.zt.V,r=this.Xt.t,h=t.useBitmapCoordinateSpace((t=>{const h=t.context;h.font=i.R;const l=this.Gt(t,i,n,s),a=l.Jt;return l.Qt?Q(h,a.ti,a.ii,a.ni,a.si,r,a.ei,[a.ht,0,0,a.ht],r):Q(h,a.ri,a.ii,a.ni,a.si,r,a.ei,[0,a.ht,a.ht,0],r),this.zt.hi&&(h.fillStyle=e,h.fillRect(a.ri,a.li,a.ai-a.ri,a.oi)),this.zt._i&&(h.fillStyle=i.O,h.fillRect(l.Qt?a.ui-a.ei:0,a.ii,a.ei,a.ci-a.ii)),l}));t.useMediaCoordinateSpace((({context:t})=>{const n=h.di;t.font=i.R,t.textAlign=h.Qt?\"right\":\"left\",t.textBaseline=\"middle\",t.fillStyle=e,t.fillText(this.zt.Kt,n.fi,(n.ii+n.ci)/2+n.pi)}))}Gt(t,i,n,s){var e;const{context:r,bitmapSize:h,mediaSize:l,horizontalPixelRatio:a,verticalPixelRatio:o}=t,_=this.zt.hi||!this.zt.mi?i.T:0,u=this.zt.bi?i.C:0,c=i.L+this.Xt.wi,d=i.B+this.Xt.gi,f=i.A,v=i.I,p=this.zt.Kt,m=i.P,b=n.Mi(r,p),w=Math.ceil(n.xi(r,p)),g=m+c+d,M=i.C+f+v+w+_,x=Math.max(1,Math.floor(o));let S=Math.round(g*o);S%2!=x%2&&(S+=1);const k=u>0?Math.max(1,Math.floor(u*a)):0,y=Math.round(M*a),C=Math.round(_*a),T=null!==(e=this.Xt.Si)&&void 0!==e?e:this.Xt.ki,P=Math.round(T*o)-Math.floor(.5*o),R=Math.floor(P+x/2-S/2),D=R+S,V=\"right\"===s,O=V?l.width-u:u,B=V?h.width-k:k;let A,I,z;return V?(A=B-y,I=B-C,z=O-_-f-u):(A=B+y,I=B+C,z=O+_+f),{Qt:V,Jt:{ii:R,li:P,ci:D,ni:y,si:S,ht:2*a,ei:k,ti:A,ri:B,ai:I,oi:x,ui:h.width},di:{ii:R/o,ci:D/o,fi:z,pi:b}}}}class nt{constructor(t){this.yi={ki:0,t:\"#000\",gi:0,wi:0},this.Ci={Kt:\"\",yt:!1,hi:!0,mi:!1,Ot:\"\",V:\"#FFF\",_i:!1,bi:!1},this.Ti={Kt:\"\",yt:!1,hi:!1,mi:!0,Ot:\"\",V:\"#FFF\",_i:!0,bi:!0},this.ft=!0,this.Pi=new(t||it)(this.Ci,this.yi),this.Ri=new(t||it)(this.Ti,this.yi)}Kt(){return this.Di(),this.Ci.Kt}ki(){return this.Di(),this.yi.ki}bt(){this.ft=!0}At(t,i=!1){return Math.max(this.Pi.At(t,i),this.Ri.At(t,i))}Vi(){return this.yi.Si||0}Oi(t){this.yi.Si=t}Bi(){return this.Di(),this.Ci.yt||this.Ti.yt}Ai(){return this.Di(),this.Ci.yt}gt(t){return this.Di(),this.Ci.hi=this.Ci.hi&&t.W().ticksVisible,this.Ti.hi=this.Ti.hi&&t.W().ticksVisible,this.Pi.J(this.Ci,this.yi),this.Ri.J(this.Ti,this.yi),this.Pi}Ii(){return this.Di(),this.Pi.J(this.Ci,this.yi),this.Ri.J(this.Ti,this.yi),this.Ri}Di(){this.ft&&(this.Ci.hi=!0,this.Ti.hi=!1,this.zi(this.Ci,this.Ti,this.yi))}}class st extends nt{constructor(t,i,n){super(),this.jt=t,this.Li=i,this.Ei=n}zi(t,i,n){if(t.yt=!1,2===this.jt.W().mode)return;const s=this.jt.W().horzLine;if(!s.labelVisible)return;const e=this.Li.Ct();if(!this.jt.yt()||this.Li.Ni()||null===e)return;const r=R(s.labelBackgroundColor);n.t=r.t,t.V=r.i;const h=2/12*this.Li.P();n.wi=h,n.gi=h;const l=this.Ei(this.Li);n.ki=l.ki,t.Kt=this.Li.Fi(l._t,e),t.yt=!0}}const et=/[1-9]/g;class rt{constructor(){this.zt=null}J(t){this.zt=t}X(t,i){if(null===this.zt||!1===this.zt.yt||0===this.zt.Kt.length)return;const n=t.useMediaCoordinateSpace((({context:t})=>(t.font=i.R,Math.round(i.Wi.xi(t,b(this.zt).Kt,et)))));if(n<=0)return;const s=i.ji,e=n+2*s,r=e/2,h=this.zt.Hi;let l=this.zt.ki,a=Math.floor(l-r)+.5;a<0?(l+=Math.abs(0-a),a=Math.floor(l-r)+.5):a+e>h&&(l-=Math.abs(h-(a+e)),a=Math.floor(l-r)+.5);const o=a+e,_=Math.ceil(0+i.C+i.T+i.L+i.P+i.B);t.useBitmapCoordinateSpace((({context:t,horizontalPixelRatio:n,verticalPixelRatio:s})=>{const e=b(this.zt);t.fillStyle=e.t;const r=Math.round(a*n),h=Math.round(0*s),l=Math.round(o*n),u=Math.round(_*s),c=Math.round(2*n);if(t.beginPath(),t.moveTo(r,h),t.lineTo(r,u-c),t.arcTo(r,u,r+c,u,c),t.lineTo(l-c,u),t.arcTo(l,u,l,u-c,c),t.lineTo(l,h),t.fill(),e.hi){const r=Math.round(e.ki*n),l=h,a=Math.round((l+i.T)*s);t.fillStyle=e.V;const o=Math.max(1,Math.floor(n)),_=Math.floor(.5*n);t.fillRect(r-_,l,o,a-l)}})),t.useMediaCoordinateSpace((({context:t})=>{const n=b(this.zt),e=0+i.C+i.T+i.L+i.P/2;t.font=i.R,t.textAlign=\"left\",t.textBaseline=\"middle\",t.fillStyle=n.V;const r=i.Wi.Mi(t,\"Apr0\");t.translate(a+s,e+r),t.fillText(n.Kt,0,0)}))}}class ht{constructor(t,i,n){this.ft=!0,this.Wt=new rt,this.Ft={yt:!1,t:\"#4c525e\",V:\"white\",Kt:\"\",Hi:0,ki:NaN,hi:!0},this.vt=t,this.$i=i,this.Ei=n}bt(){this.ft=!0}gt(){return this.ft&&(this.Mt(),this.ft=!1),this.Wt.J(this.Ft),this.Wt}Mt(){const t=this.Ft;if(t.yt=!1,2===this.vt.W().mode)return;const i=this.vt.W().vertLine;if(!i.labelVisible)return;const n=this.$i.St();if(n.Ni())return;t.Hi=n.Hi();const s=this.Ei();if(null===s)return;t.ki=s.ki;const e=n.Ui(this.vt.xt());t.Kt=n.qi(b(e)),t.yt=!0;const r=R(i.labelBackgroundColor);t.t=r.t,t.V=r.i,t.hi=n.W().ticksVisible}}class lt{constructor(){this.Yi=null,this.Zi=0}Xi(){return this.Zi}Ki(t){this.Zi=t}Dt(){return this.Yi}Gi(t){this.Yi=t}Ji(t){return[]}Qi(){return[]}yt(){return!0}}var at;!function(t){t[t.Normal=0]=\"Normal\",t[t.Magnet=1]=\"Magnet\",t[t.Hidden=2]=\"Hidden\"}(at||(at={}));class ot extends lt{constructor(t,i){super(),this.tn=null,this.nn=NaN,this.sn=0,this.en=!0,this.rn=new Map,this.hn=!1,this.ln=NaN,this.an=NaN,this._n=NaN,this.un=NaN,this.$i=t,this.cn=i,this.dn=new Y(t,this);this.fn=((t,i)=>n=>{const s=i(),e=t();if(n===b(this.tn).vn())return{_t:e,ki:s};{const t=b(n.Ct());return{_t:n.pn(s,t),ki:s}}})((()=>this.nn),(()=>this.an));const n=((t,i)=>()=>{const n=this.$i.St().mn(t()),s=i();return n&&Number.isFinite(s)?{ot:n,ki:s}:null})((()=>this.sn),(()=>this.Yt()));this.bn=new ht(this,t,n),this.wn=new X(this)}W(){return this.cn}gn(t,i){this._n=t,this.un=i}Mn(){this._n=NaN,this.un=NaN}xn(){return this._n}Sn(){return this.un}kn(t,i,n){this.hn||(this.hn=!0),this.en=!0,this.yn(t,i,n)}xt(){return this.sn}Yt(){return this.ln}Zt(){return this.an}yt(){return this.en}Cn(){this.en=!1,this.Tn(),this.nn=NaN,this.ln=NaN,this.an=NaN,this.tn=null,this.Mn()}Pn(t){return null!==this.tn?[this.wn,this.dn]:[]}Ut(t){return t===this.tn&&this.cn.horzLine.visible}qt(){return this.cn.vertLine.visible}Rn(t,i){this.en&&this.tn===t||this.rn.clear();const n=[];return this.tn===t&&n.push(this.Dn(this.rn,i,this.fn)),n}Qi(){return this.en?[this.bn]:[]}Ht(){return this.tn}Vn(){this.wn.bt(),this.rn.forEach((t=>t.bt())),this.bn.bt(),this.dn.bt()}On(t){return t&&!t.vn().Ni()?t.vn():null}yn(t,i,n){this.Bn(t,i,n)&&this.Vn()}Bn(t,i,n){const s=this.ln,e=this.an,r=this.nn,h=this.sn,l=this.tn,a=this.On(n);this.sn=t,this.ln=isNaN(t)?NaN:this.$i.St().It(t),this.tn=n;const o=null!==a?a.Ct():null;return null!==a&&null!==o?(this.nn=i,this.an=a.Rt(i,o)):(this.nn=NaN,this.an=NaN),s!==this.ln||e!==this.an||h!==this.sn||r!==this.nn||l!==this.tn}Tn(){const t=this.$i.wt().map((t=>t.In().An())).filter(L),i=0===t.length?null:Math.max(...t);this.sn=null!==i?i:NaN}Dn(t,i,n){let s=t.get(i);return void 0===s&&(s=new st(this,i,n),t.set(i,s)),s}}function _t(t){return\"left\"===t||\"right\"===t}class ut{constructor(t){this.zn=new Map,this.Ln=[],this.En=t}Nn(t,i){const n=function(t,i){return void 0===t?i:{Fn:Math.max(t.Fn,i.Fn),Wn:t.Wn||i.Wn}}(this.zn.get(t),i);this.zn.set(t,n)}jn(){return this.En}Hn(t){const i=this.zn.get(t);return void 0===i?{Fn:this.En}:{Fn:Math.max(this.En,i.Fn),Wn:i.Wn}}$n(){this.Un(),this.Ln=[{qn:0}]}Yn(t){this.Un(),this.Ln=[{qn:1,Vt:t}]}Zn(t){this.Xn(),this.Ln.push({qn:5,Vt:t})}Un(){this.Xn(),this.Ln.push({qn:6})}Kn(){this.Un(),this.Ln=[{qn:4}]}Gn(t){this.Un(),this.Ln.push({qn:2,Vt:t})}Jn(t){this.Un(),this.Ln.push({qn:3,Vt:t})}Qn(){return this.Ln}ts(t){for(const i of t.Ln)this.ns(i);this.En=Math.max(this.En,t.En),t.zn.forEach(((t,i)=>{this.Nn(i,t)}))}static ss(){return new ut(2)}static es(){return new ut(3)}ns(t){switch(t.qn){case 0:this.$n();break;case 1:this.Yn(t.Vt);break;case 2:this.Gn(t.Vt);break;case 3:this.Jn(t.Vt);break;case 4:this.Kn();break;case 5:this.Zn(t.Vt);break;case 6:this.Xn()}}Xn(){const t=this.Ln.findIndex((t=>5===t.qn));-1!==t&&this.Ln.splice(t,1)}}const ct=\".\";function dt(t,i){if(!O(t))return\"n/a\";if(!B(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 ft{constructor(t,i){if(i||(i=1),O(t)&&B(t)||(t=100),t<0)throw new TypeError(\"invalid base\");this.Li=t,this.rs=i,this.hs()}format(t){const i=t<0?\"−\":\"\";return t=Math.abs(t),i+this.ls(t)}hs(){if(this._s=0,this.Li>0&&this.rs>0){let t=this.Li;for(;t>1;)t/=10,this._s++}}ls(t){const i=this.Li/this.rs;let n=Math.floor(t),s=\"\";const e=void 0!==this._s?this._s:NaN;if(i>1){let r=+(Math.round(t*i)-n*i).toFixed(this._s);r>=i&&(r-=i,n+=1),s=ct+dt(+r.toFixed(this._s)*this.rs,e)}else n=Math.round(n*i)/i,e>0&&(s=ct+dt(0,e));return n.toFixed(0)+s}}class vt extends ft{constructor(t=100){super(t)}format(t){return`${super.format(t)}%`}}class pt{constructor(t){this.us=t}format(t){let i=\"\";return t<0&&(i=\"-\",t=-t),t<995?i+this.cs(t):t<999995?i+this.cs(t/1e3)+\"K\":t<999999995?(t=1e3*Math.round(t/1e3),i+this.cs(t/1e6)+\"M\"):(t=1e6*Math.round(t/1e6),i+this.cs(t/1e9)+\"B\")}cs(t){let i;const n=Math.pow(10,this.us);return i=(t=Math.round(t*n)/n)>=1e-15&&t<1?t.toFixed(this.us).replace(/\\.?0+$/,\"\"):String(t),i.replace(/(\\.[1-9]*)0+$/,((t,i)=>i))}}function mt(t,i,n,s,e,r,h){if(0===i.length||s.from>=i.length||s.to<=0)return;const{context:l,horizontalPixelRatio:a,verticalPixelRatio:o}=t,_=i[s.from];let u=r(t,_),c=_;if(s.to-s.from<2){const i=e/2;l.beginPath();const n={nt:_.nt-i,st:_.st},s={nt:_.nt+i,st:_.st};l.moveTo(n.nt*a,n.st*o),l.lineTo(s.nt*a,s.st*o),h(t,u,n,s)}else{const e=(i,n)=>{h(t,u,c,n),l.beginPath(),u=i,c=n};let d=c;l.beginPath(),l.moveTo(_.nt*a,_.st*o);for(let h=s.from+1;h<s.to;++h){d=i[h];const s=r(t,d);switch(n){case 0:l.lineTo(d.nt*a,d.st*o);break;case 1:l.lineTo(d.nt*a,i[h-1].st*o),s!==u&&(e(s,d),l.lineTo(d.nt*a,i[h-1].st*o)),l.lineTo(d.nt*a,d.st*o);break;case 2:{const[t,n]=Mt(i,h-1,h);l.bezierCurveTo(t.nt*a,t.st*o,n.nt*a,n.st*o,d.nt*a,d.st*o);break}}1!==n&&s!==u&&(e(s,d),l.moveTo(d.nt*a,d.st*o))}(c!==d||c===d&&1===n)&&h(t,u,c,d)}}const bt=6;function wt(t,i){return{nt:t.nt-i.nt,st:t.st-i.st}}function gt(t,i){return{nt:t.nt/i,st:t.st/i}}function Mt(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=gt(wt(t[n],t[s]),bt),{nt:r.nt+h.nt,st:r.st+h.st}),wt(t[n],gt(wt(t[e],t[i]),bt))]}function xt(t,i,n,s,e){const{context:r,horizontalPixelRatio:h,verticalPixelRatio:l}=i;r.lineTo(e.nt*h,t*l),r.lineTo(s.nt*h,t*l),r.closePath(),r.fillStyle=n,r.fill()}class St extends H{constructor(){super(...arguments),this.G=null}J(t){this.G=t}K(t){var i;if(null===this.G)return;const{it:n,tt:s,ds:e,et:r,Nt:h,fs:l}=this.G,a=null!==(i=this.G.vs)&&void 0!==i?i:this.G.ps?0:t.mediaSize.height;if(null===s)return;const o=t.context;o.lineCap=\"butt\",o.lineJoin=\"round\",o.lineWidth=r,f(o,h),o.lineWidth=1,mt(t,n,l,s,e,this.bs.bind(this),xt.bind(null,a))}}function kt(t,i,n){return Math.min(Math.max(t,i),n)}function yt(t,i,n){return i-t<=n}function Ct(t){const i=Math.ceil(t);return i%2==0?i-1:i}class Tt{ws(t,i){const n=this.gs,{Ms:s,xs:e,Ss:r,ks:h,ys:l,vs:a}=i;if(void 0===this.Cs||void 0===n||n.Ms!==s||n.xs!==e||n.Ss!==r||n.ks!==h||n.vs!==a||n.ys!==l){const n=t.context.createLinearGradient(0,0,0,l);if(n.addColorStop(0,s),null!=a){const i=kt(a*t.verticalPixelRatio/l,0,1);n.addColorStop(i,e),n.addColorStop(i,r)}n.addColorStop(1,h),this.Cs=n,this.gs=i}return this.Cs}}class Pt extends St{constructor(){super(...arguments),this.Ts=new Tt}bs(t,i){return this.Ts.ws(t,{Ms:i.Ps,xs:\"\",Ss:\"\",ks:i.Rs,ys:t.bitmapSize.height})}}function Rt(t,i){const n=t.context;n.strokeStyle=i,n.stroke()}class Dt extends H{constructor(){super(...arguments),this.G=null}J(t){this.G=t}K(t){if(null===this.G)return;const{it:i,tt:n,ds:s,fs:e,et:r,Nt:h,Ds:l}=this.G;if(null===n)return;const a=t.context;a.lineCap=\"butt\",a.lineWidth=r*t.verticalPixelRatio,f(a,h),a.lineJoin=\"round\";const o=this.Vs.bind(this);void 0!==e&&mt(t,i,e,n,s,o,Rt),l&&function(t,i,n,s,e){const{horizontalPixelRatio:r,verticalPixelRatio:h,context:l}=t;let a=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!==a&&(l.beginPath(),null!==a&&l.fill(),l.fillStyle=i,a=i);const n=Math.round(s.nt*r)+o,u=s.st*h;l.moveTo(n,u),l.arc(n,u,_,0,2*Math.PI)}}l.fill()}(t,i,l,n,o)}}class Vt extends Dt{Vs(t,i){return i.lt}}function Ot(t,i,n,s,e=0,r=i.length){let h=r-e;for(;0<h;){const r=h>>1,l=e+r;s(i[l],n)===t?(e=l+1,h-=r+1):h=r}return e}const Bt=Ot.bind(null,!0),At=Ot.bind(null,!1);function It(t,i){return t.ot<i}function zt(t,i){return i<t.ot}function Lt(t,i,n){const s=i.Os(),e=i.ui(),r=Bt(t,s,It),h=At(t,e,zt);if(!n)return{from:r,to:h};let l=r,a=h;return r>0&&r<t.length&&t[r].ot>=s&&(l=r-1),h>0&&h<t.length&&t[h-1].ot<=e&&(a=h+1),{from:l,to:a}}class Et{constructor(t,i,n){this.Bs=!0,this.As=!0,this.Is=!0,this.zs=[],this.Ls=null,this.Es=t,this.Ns=i,this.Fs=n}bt(t){this.Bs=!0,\"data\"===t&&(this.As=!0),\"options\"===t&&(this.Is=!0)}gt(){return this.Es.yt()?(this.Ws(),null===this.Ls?null:this.js):null}Hs(){this.zs=this.zs.map((t=>Object.assign(Object.assign({},t),this.Es.Us().$s(t.ot))))}qs(){this.Ls=null}Ws(){this.As&&(this.Ys(),this.As=!1),this.Is&&(this.Hs(),this.Is=!1),this.Bs&&(this.Zs(),this.Bs=!1)}Zs(){const t=this.Es.Dt(),i=this.Ns.St();if(this.qs(),i.Ni()||t.Ni())return;const n=i.Xs();if(null===n)return;if(0===this.Es.In().Ks())return;const s=this.Es.Ct();null!==s&&(this.Ls=Lt(this.zs,n,this.Fs),this.Gs(t,i,s.Vt),this.Js())}}class Nt extends Et{constructor(t,i){super(t,i,!0)}Gs(t,i,n){i.Qs(this.zs,E(this.Ls)),t.te(this.zs,n,E(this.Ls))}ie(t,i){return{ot:t,_t:i,nt:NaN,st:NaN}}Ys(){const t=this.Es.Us();this.zs=this.Es.In().ne().map((i=>{const n=i.Vt[3];return this.se(i.ee,n,t)}))}}class Ft extends Nt{constructor(t,i){super(t,i),this.js=new j,this.re=new Pt,this.he=new Vt,this.js.Z([this.re,this.he])}se(t,i,n){return Object.assign(Object.assign({},this.ie(t,i)),n.$s(t))}Js(){const t=this.Es.W();this.re.J({fs:t.lineType,it:this.zs,Nt:t.lineStyle,et:t.lineWidth,vs:null,ps:t.invertFilledArea,tt:this.Ls,ds:this.Ns.St().le()}),this.he.J({fs:t.lineVisible?t.lineType:void 0,it:this.zs,Nt:t.lineStyle,et:t.lineWidth,tt:this.Ls,ds:this.Ns.St().le(),Ds:t.pointMarkersVisible?t.pointMarkersRadius||t.lineWidth/2+2:void 0})}}class Wt extends H{constructor(){super(...arguments),this.zt=null,this.ae=0,this.oe=0}J(t){this.zt=t}K({context:t,horizontalPixelRatio:i,verticalPixelRatio:n}){if(null===this.zt||0===this.zt.In.length||null===this.zt.tt)return;if(this.ae=this._e(i),this.ae>=2){Math.max(1,Math.floor(i))%2!=this.ae%2&&this.ae--}this.oe=this.zt.ue?Math.min(this.ae,Math.floor(i)):this.ae;let s=null;const e=this.oe<=this.ae&&this.zt.le>=Math.floor(1.5*i);for(let r=this.zt.tt.from;r<this.zt.tt.to;++r){const h=this.zt.In[r];s!==h.ce&&(t.fillStyle=h.ce,s=h.ce);const l=Math.floor(.5*this.oe),a=Math.round(h.nt*i),o=a-l,_=this.oe,u=o+_-1,c=Math.min(h.de,h.fe),d=Math.max(h.de,h.fe),f=Math.round(c*n)-l,v=Math.round(d*n)+l,p=Math.max(v-f,this.oe);t.fillRect(o,f,_,p);const m=Math.ceil(1.5*this.ae);if(e){if(this.zt.ve){const i=a-m;let s=Math.max(f,Math.round(h.pe*n)-l),e=s+_-1;e>f+p-1&&(e=f+p-1,s=e-_+1),t.fillRect(i,s,o-i,e-s+1)}const i=a+m;let s=Math.max(f,Math.round(h.me*n)-l),e=s+_-1;e>f+p-1&&(e=f+p-1,s=e-_+1),t.fillRect(u+1,s,i-u,e-s+1)}}}_e(t){const i=Math.floor(t);return Math.max(i,Math.floor(function(t,i){return Math.floor(.3*t*i)}(b(this.zt).le,t)))}}class jt extends Et{constructor(t,i){super(t,i,!1)}Gs(t,i,n){i.Qs(this.zs,E(this.Ls)),t.be(this.zs,n,E(this.Ls))}we(t,i,n){return{ot:t,ge:i.Vt[0],Me:i.Vt[1],xe:i.Vt[2],Se:i.Vt[3],nt:NaN,pe:NaN,de:NaN,fe:NaN,me:NaN}}Ys(){const t=this.Es.Us();this.zs=this.Es.In().ne().map((i=>this.se(i.ee,i,t)))}}class Ht extends jt{constructor(){super(...arguments),this.js=new Wt}se(t,i,n){return Object.assign(Object.assign({},this.we(t,i,n)),n.$s(t))}Js(){const t=this.Es.W();this.js.J({In:this.zs,le:this.Ns.St().le(),ve:t.openVisible,ue:t.thinBars,tt:this.Ls})}}class $t extends St{constructor(){super(...arguments),this.Ts=new Tt}bs(t,i){const n=this.G;return this.Ts.ws(t,{Ms:i.ke,xs:i.ye,Ss:i.Ce,ks:i.Te,ys:t.bitmapSize.height,vs:n.vs})}}class Ut extends Dt{constructor(){super(...arguments),this.Pe=new Tt}Vs(t,i){const n=this.G;return this.Pe.ws(t,{Ms:i.Re,xs:i.Re,Ss:i.De,ks:i.De,ys:t.bitmapSize.height,vs:n.vs})}}class qt extends Nt{constructor(t,i){super(t,i),this.js=new j,this.Ve=new $t,this.Oe=new Ut,this.js.Z([this.Ve,this.Oe])}se(t,i,n){return Object.assign(Object.assign({},this.ie(t,i)),n.$s(t))}Js(){const t=this.Es.Ct();if(null===t)return;const i=this.Es.W(),n=this.Es.Dt().Rt(i.baseValue.price,t.Vt),s=this.Ns.St().le();this.Ve.J({it:this.zs,et:i.lineWidth,Nt:i.lineStyle,fs:i.lineType,vs:n,ps:!1,tt:this.Ls,ds:s}),this.Oe.J({it:this.zs,et:i.lineWidth,Nt:i.lineStyle,fs:i.lineVisible?i.lineType:void 0,Ds:i.pointMarkersVisible?i.pointMarkersRadius||i.lineWidth/2+2:void 0,vs:n,tt:this.Ls,ds:s})}}class Yt extends H{constructor(){super(...arguments),this.zt=null,this.ae=0}J(t){this.zt=t}K(t){if(null===this.zt||0===this.zt.In.length||null===this.zt.tt)return;const{horizontalPixelRatio:i}=t;if(this.ae=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.zt.le,i),this.ae>=2){Math.floor(i)%2!=this.ae%2&&this.ae--}const n=this.zt.In;this.zt.Be&&this.Ae(t,n,this.zt.tt),this.zt._i&&this.Ie(t,n,this.zt.tt);const s=this.ze(i);(!this.zt._i||this.ae>2*s)&&this.Le(t,n,this.zt.tt)}Ae(t,i,n){if(null===this.zt)return;const{context:s,horizontalPixelRatio:e,verticalPixelRatio:r}=t;let h=\"\",l=Math.min(Math.floor(e),Math.floor(this.zt.le*e));l=Math.max(Math.floor(e),Math.min(l,this.ae));const a=Math.floor(.5*l);let o=null;for(let t=n.from;t<n.to;t++){const n=i[t];n.Ee!==h&&(s.fillStyle=n.Ee,h=n.Ee);const _=Math.round(Math.min(n.pe,n.me)*r),u=Math.round(Math.max(n.pe,n.me)*r),c=Math.round(n.de*r),d=Math.round(n.fe*r);let f=Math.round(e*n.nt)-a;const v=f+l-1;null!==o&&(f=Math.max(o+1,f),f=Math.min(f,v));const p=v-f+1;s.fillRect(f,c,p,_-c),s.fillRect(f,u+1,p,d-u),o=v}}ze(t){let i=Math.floor(1*t);this.ae<=2*i&&(i=Math.floor(.5*(this.ae-1)));const n=Math.max(Math.floor(t),i);return this.ae<=2*n?Math.max(Math.floor(t),Math.floor(1*t)):n}Ie(t,i,n){if(null===this.zt)return;const{context:s,horizontalPixelRatio:e,verticalPixelRatio:r}=t;let h=\"\";const l=this.ze(e);let a=null;for(let t=n.from;t<n.to;t++){const n=i[t];n.Ne!==h&&(s.fillStyle=n.Ne,h=n.Ne);let o=Math.round(n.nt*e)-Math.floor(.5*this.ae);const _=o+this.ae-1,u=Math.round(Math.min(n.pe,n.me)*r),c=Math.round(Math.max(n.pe,n.me)*r);if(null!==a&&(o=Math.max(a+1,o),o=Math.min(o,_)),this.zt.le*e>2*l)K(s,o,u,_-o+1,c-u+1,l);else{const t=_-o+1;s.fillRect(o,u,t,c-u+1)}a=_}}Le(t,i,n){if(null===this.zt)return;const{context:s,horizontalPixelRatio:e,verticalPixelRatio:r}=t;let h=\"\";const l=this.ze(e);for(let t=n.from;t<n.to;t++){const n=i[t];let a=Math.round(Math.min(n.pe,n.me)*r),o=Math.round(Math.max(n.pe,n.me)*r),_=Math.round(n.nt*e)-Math.floor(.5*this.ae),u=_+this.ae-1;if(n.ce!==h){const t=n.ce;s.fillStyle=t,h=t}this.zt._i&&(_+=l,a+=l,u-=l,o-=l),a>o||s.fillRect(_,a,u-_+1,o-a+1)}}}class Zt extends jt{constructor(){super(...arguments),this.js=new Yt}se(t,i,n){return Object.assign(Object.assign({},this.we(t,i,n)),n.$s(t))}Js(){const t=this.Es.W();this.js.J({In:this.zs,le:this.Ns.St().le(),Be:t.wickVisible,_i:t.borderVisible,tt:this.Ls})}}class Xt{constructor(t,i){this.Fe=t,this.Li=i}X(t,i,n){this.Fe.draw(t,this.Li,i,n)}}class Kt extends Et{constructor(t,i,n){super(t,i,!1),this.wn=n,this.js=new Xt(this.wn.renderer(),(i=>{const n=t.Ct();return null===n?null:t.Dt().Rt(i,n.Vt)}))}We(t){return this.wn.priceValueBuilder(t)}je(t){return this.wn.isWhitespace(t)}Ys(){const t=this.Es.Us();this.zs=this.Es.In().ne().map((i=>Object.assign(Object.assign({ot:i.ee,nt:NaN},t.$s(i.ee)),{He:i.$e})))}Gs(t,i){i.Qs(this.zs,E(this.Ls))}Js(){this.wn.update({bars:this.zs.map(Gt),barSpacing:this.Ns.St().le(),visibleRange:this.Ls},this.Es.W())}}function Gt(t){return{x:t.nt,time:t.ot,originalData:t.He,barColor:t.ce}}class Jt extends H{constructor(){super(...arguments),this.zt=null,this.Ue=[]}J(t){this.zt=t,this.Ue=[]}K({context:t,horizontalPixelRatio:i,verticalPixelRatio:n}){if(null===this.zt||0===this.zt.it.length||null===this.zt.tt)return;this.Ue.length||this.qe(i);const s=Math.max(1,Math.floor(n)),e=Math.round(this.zt.Ye*n)-Math.floor(s/2),r=e+s;for(let i=this.zt.tt.from;i<this.zt.tt.to;i++){const h=this.zt.it[i],l=this.Ue[i-this.zt.tt.from],a=Math.round(h.st*n);let o,_;t.fillStyle=h.ce,a<=e?(o=a,_=r):(o=e,_=a-Math.floor(s/2)+s),t.fillRect(l.Os,o,l.ui-l.Os+1,_-o)}}qe(t){if(null===this.zt||0===this.zt.it.length||null===this.zt.tt)return void(this.Ue=[]);const i=Math.ceil(this.zt.le*t)<=1?0:Math.max(1,Math.floor(t)),n=Math.round(this.zt.le*t)-i;this.Ue=new Array(this.zt.tt.to-this.zt.tt.from);for(let i=this.zt.tt.from;i<this.zt.tt.to;i++){const s=this.zt.it[i],e=Math.round(s.nt*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.Ue[i-this.zt.tt.from]={Os:r,ui:h,Ze:e,Xe:s.nt*t,ot:s.ot}}for(let t=this.zt.tt.from+1;t<this.zt.tt.to;t++){const n=this.Ue[t-this.zt.tt.from],s=this.Ue[t-this.zt.tt.from-1];n.ot===s.ot+1&&(n.Os-s.ui!==i+1&&(s.Ze>s.Xe?s.ui=n.Os-i-1:n.Os=s.ui+i+1))}let s=Math.ceil(this.zt.le*t);for(let t=this.zt.tt.from;t<this.zt.tt.to;t++){const i=this.Ue[t-this.zt.tt.from];i.ui<i.Os&&(i.ui=i.Os);const n=i.ui-i.Os+1;s=Math.min(n,s)}if(i>0&&s<4)for(let t=this.zt.tt.from;t<this.zt.tt.to;t++){const i=this.Ue[t-this.zt.tt.from];i.ui-i.Os+1>s&&(i.Ze>i.Xe?i.ui-=1:i.Os+=1)}}}class Qt extends Nt{constructor(){super(...arguments),this.js=new Jt}se(t,i,n){return Object.assign(Object.assign({},this.ie(t,i)),n.$s(t))}Js(){const t={it:this.zs,le:this.Ns.St().le(),tt:this.Ls,Ye:this.Es.Dt().Rt(this.Es.W().base,b(this.Es.Ct()).Vt)};this.js.J(t)}}class ti extends Nt{constructor(){super(...arguments),this.js=new Vt}se(t,i,n){return Object.assign(Object.assign({},this.ie(t,i)),n.$s(t))}Js(){const t=this.Es.W(),i={it:this.zs,Nt:t.lineStyle,fs:t.lineVisible?t.lineType:void 0,et:t.lineWidth,Ds:t.pointMarkersVisible?t.pointMarkersRadius||t.lineWidth/2+2:void 0,tt:this.Ls,ds:this.Ns.St().le()};this.js.J(i)}}const ii=/[2-9]/g;class ni{constructor(t=50){this.Ke=0,this.Ge=1,this.Je=1,this.Qe={},this.tr=new Map,this.ir=t}nr(){this.Ke=0,this.tr.clear(),this.Ge=1,this.Je=1,this.Qe={}}xi(t,i,n){return this.sr(t,i,n).width}Mi(t,i,n){const s=this.sr(t,i,n);return((s.actualBoundingBoxAscent||0)-(s.actualBoundingBoxDescent||0))/2}sr(t,i,n){const s=n||ii,e=String(i).replace(s,\"0\");if(this.tr.has(e))return m(this.tr.get(e)).er;if(this.Ke===this.ir){const t=this.Qe[this.Je];delete this.Qe[this.Je],this.tr.delete(t),this.Je++,this.Ke--}t.save(),t.textBaseline=\"middle\";const r=t.measureText(e);return t.restore(),0===r.width&&i.length||(this.tr.set(e,{er:r,rr:this.Ge}),this.Qe[this.Ge]=e,this.Ke++,this.Ge++),r}}class si{constructor(t){this.hr=null,this.k=null,this.lr=\"right\",this.ar=t}_r(t,i,n){this.hr=t,this.k=i,this.lr=n}X(t){null!==this.k&&null!==this.hr&&this.hr.X(t,this.k,this.ar,this.lr)}}class ei{constructor(t,i,n){this.ur=t,this.ar=new ni(50),this.cr=i,this.F=n,this.j=-1,this.Wt=new si(this.ar)}gt(){const t=this.F.dr(this.cr);if(null===t)return null;const i=t.vr(this.cr)?t.pr():this.cr.Dt();if(null===i)return null;const n=t.mr(i);if(\"overlay\"===n)return null;const s=this.F.br();return s.P!==this.j&&(this.j=s.P,this.ar.nr()),this.Wt._r(this.ur.Ii(),s,n),this.Wt}}class ri extends H{constructor(){super(...arguments),this.zt=null}J(t){this.zt=t}wr(t,i){var n;if(!(null===(n=this.zt)||void 0===n?void 0:n.yt))return null;const{st:s,et:e,gr:r}=this.zt;return i>=s-e-7&&i<=s+e+7?{Mr:this.zt,gr:r}:null}K({context:t,bitmapSize:i,horizontalPixelRatio:n,verticalPixelRatio:s}){if(null===this.zt)return;if(!1===this.zt.yt)return;const e=Math.round(this.zt.st*s);e<0||e>i.height||(t.lineCap=\"butt\",t.strokeStyle=this.zt.V,t.lineWidth=Math.floor(this.zt.et*n),f(t,this.zt.Nt),v(t,e,0,i.width))}}class hi{constructor(t){this.Sr={st:0,V:\"rgba(0, 0, 0, 0)\",et:1,Nt:0,yt:!1},this.kr=new ri,this.ft=!0,this.Es=t,this.Ns=t.$t(),this.kr.J(this.Sr)}bt(){this.ft=!0}gt(){return this.Es.yt()?(this.ft&&(this.yr(),this.ft=!1),this.kr):null}}class li extends hi{constructor(t){super(t)}yr(){this.Sr.yt=!1;const t=this.Es.Dt(),i=t.Cr().Cr;if(2!==i&&3!==i)return;const n=this.Es.W();if(!n.baseLineVisible||!this.Es.yt())return;const s=this.Es.Ct();null!==s&&(this.Sr.yt=!0,this.Sr.st=t.Rt(s.Vt,s.Vt),this.Sr.V=n.baseLineColor,this.Sr.et=n.baseLineWidth,this.Sr.Nt=n.baseLineStyle)}}class ai extends H{constructor(){super(...arguments),this.zt=null}J(t){this.zt=t}$e(){return this.zt}K({context:t,horizontalPixelRatio:i,verticalPixelRatio:n}){const s=this.zt;if(null===s)return;const e=Math.max(1,Math.floor(i)),r=e%2/2,h=Math.round(s.Xe.x*i)+r,l=s.Xe.y*n;t.fillStyle=s.Tr,t.beginPath();const a=Math.max(2,1.5*s.Pr)*i;t.arc(h,l,a,0,2*Math.PI,!1),t.fill(),t.fillStyle=s.Rr,t.beginPath(),t.arc(h,l,s.ht*i,0,2*Math.PI,!1),t.fill(),t.lineWidth=e,t.strokeStyle=s.Dr,t.beginPath(),t.arc(h,l,s.ht*i+e/2,0,2*Math.PI,!1),t.stroke()}}const oi=[{Vr:0,Or:.25,Br:4,Ar:10,Ir:.25,zr:0,Lr:.4,Er:.8},{Vr:.25,Or:.525,Br:10,Ar:14,Ir:0,zr:0,Lr:.8,Er:0},{Vr:.525,Or:1,Br:14,Ar:14,Ir:0,zr:0,Lr:0,Er:0}];function _i(t,i,n,s){return function(t,i){if(\"transparent\"===t)return t;const n=T(t),s=n[3];return`rgba(${n[0]}, ${n[1]}, ${n[2]}, ${i*s})`}(t,n+(s-n)*i)}function ui(t,i){const n=t%2600/2600;let s;for(const t of oi)if(n>=t.Vr&&n<=t.Or){s=t;break}p(void 0!==s,\"Last price animation internal logic error\");const e=(n-s.Vr)/(s.Or-s.Vr);return{Rr:_i(i,e,s.Ir,s.zr),Dr:_i(i,e,s.Lr,s.Er),ht:(r=e,h=s.Br,l=s.Ar,h+(l-h)*r)};var r,h,l}class ci{constructor(t){this.Wt=new ai,this.ft=!0,this.Nr=!0,this.Fr=performance.now(),this.Wr=this.Fr-1,this.jr=t}Hr(){this.Wr=this.Fr-1,this.bt()}$r(){if(this.bt(),2===this.jr.W().lastPriceAnimation){const t=performance.now(),i=this.Wr-t;if(i>0)return void(i<650&&(this.Wr+=2600));this.Fr=t,this.Wr=t+2600}}bt(){this.ft=!0}Ur(){this.Nr=!0}yt(){return 0!==this.jr.W().lastPriceAnimation}qr(){switch(this.jr.W().lastPriceAnimation){case 0:return!1;case 1:return!0;case 2:return performance.now()<=this.Wr}}gt(){return this.ft?(this.Mt(),this.ft=!1,this.Nr=!1):this.Nr&&(this.Yr(),this.Nr=!1),this.Wt}Mt(){this.Wt.J(null);const t=this.jr.$t().St(),i=t.Xs(),n=this.jr.Ct();if(null===i||null===n)return;const s=this.jr.Zr(!0);if(s.Xr||!i.Kr(s.ee))return;const e={x:t.It(s.ee),y:this.jr.Dt().Rt(s._t,n.Vt)},r=s.V,h=this.jr.W().lineWidth,l=ui(this.Gr(),r);this.Wt.J({Tr:r,Pr:h,Rr:l.Rr,Dr:l.Dr,ht:l.ht,Xe:e})}Yr(){const t=this.Wt.$e();if(null!==t){const i=ui(this.Gr(),t.Tr);t.Rr=i.Rr,t.Dr=i.Dr,t.ht=i.ht}}Gr(){return this.qr()?performance.now()-this.Fr:2599}}function di(t,i){return Ct(Math.min(Math.max(t,12),30)*i)}function fi(t,i){switch(t){case\"arrowDown\":case\"arrowUp\":return di(i,1);case\"circle\":return di(i,.8);case\"square\":return di(i,.7)}}function vi(t){return function(t){const i=Math.ceil(t);return i%2!=0?i-1:i}(di(t,1))}function pi(t){return Math.max(di(t,.1),3)}function mi(t,i,n){return i?t:n?Math.ceil(t/2):0}function bi(t,i,n,s,e){const r=fi(\"square\",n),h=(r-1)/2,l=t-h,a=i-h;return s>=l&&s<=l+r&&e>=a&&e<=a+r}function wi(t,i,n,s){const e=(fi(\"arrowUp\",s)-1)/2*n.Jr,r=(Ct(s/2)-1)/2*n.Jr;i.beginPath(),t?(i.moveTo(n.nt-e,n.st),i.lineTo(n.nt,n.st-e),i.lineTo(n.nt+e,n.st),i.lineTo(n.nt+r,n.st),i.lineTo(n.nt+r,n.st+e),i.lineTo(n.nt-r,n.st+e),i.lineTo(n.nt-r,n.st)):(i.moveTo(n.nt-e,n.st),i.lineTo(n.nt,n.st+e),i.lineTo(n.nt+e,n.st),i.lineTo(n.nt+r,n.st),i.lineTo(n.nt+r,n.st-e),i.lineTo(n.nt-r,n.st-e),i.lineTo(n.nt-r,n.st)),i.fill()}function gi(t,i,n,s,e,r){return bi(i,n,s,e,r)}class Mi extends H{constructor(){super(...arguments),this.zt=null,this.ar=new ni,this.j=-1,this.H=\"\",this.Qr=\"\"}J(t){this.zt=t}_r(t,i){this.j===t&&this.H===i||(this.j=t,this.H=i,this.Qr=F(t,i),this.ar.nr())}wr(t,i){if(null===this.zt||null===this.zt.tt)return null;for(let n=this.zt.tt.from;n<this.zt.tt.to;n++){const s=this.zt.it[n];if(Si(s,t,i))return{Mr:s.th,gr:s.gr}}return null}K({context:t,horizontalPixelRatio:i,verticalPixelRatio:n},s,e){if(null!==this.zt&&null!==this.zt.tt){t.textBaseline=\"middle\",t.font=this.Qr;for(let s=this.zt.tt.from;s<this.zt.tt.to;s++){const e=this.zt.it[s];void 0!==e.Kt&&(e.Kt.Hi=this.ar.xi(t,e.Kt.ih),e.Kt.At=this.j,e.Kt.nt=e.nt-e.Kt.Hi/2),xi(e,t,i,n)}}}}function xi(t,i,n,s){i.fillStyle=t.V,void 0!==t.Kt&&function(t,i,n,s,e,r){t.save(),t.scale(e,r),t.fillText(i,n,s),t.restore()}(i,t.Kt.ih,t.Kt.nt,t.Kt.st,n,s),function(t,i,n){if(0===t.Ks)return;switch(t.nh){case\"arrowDown\":return void wi(!1,i,n,t.Ks);case\"arrowUp\":return void wi(!0,i,n,t.Ks);case\"circle\":return void function(t,i,n){const s=(fi(\"circle\",n)-1)/2;t.beginPath(),t.arc(i.nt,i.st,s*i.Jr,0,2*Math.PI,!1),t.fill()}(i,n,t.Ks);case\"square\":return void function(t,i,n){const s=fi(\"square\",n),e=(s-1)*i.Jr/2,r=i.nt-e,h=i.st-e;t.fillRect(r,h,s*i.Jr,s*i.Jr)}(i,n,t.Ks)}t.nh}(t,i,function(t,i,n){const s=Math.max(1,Math.floor(i))%2/2;return{nt:Math.round(t.nt*i)+s,st:t.st*n,Jr:i}}(t,n,s))}function Si(t,i,n){return!(void 0===t.Kt||!function(t,i,n,s,e,r){const h=s/2;return e>=t&&e<=t+n&&r>=i-h&&r<=i+h}(t.Kt.nt,t.Kt.st,t.Kt.Hi,t.Kt.At,i,n))||function(t,i,n){if(0===t.Ks)return!1;switch(t.nh){case\"arrowDown\":case\"arrowUp\":return gi(0,t.nt,t.st,t.Ks,i,n);case\"circle\":return function(t,i,n,s,e){const r=2+fi(\"circle\",n)/2,h=t-s,l=i-e;return Math.sqrt(h*h+l*l)<=r}(t.nt,t.st,t.Ks,i,n);case\"square\":return bi(t.nt,t.st,t.Ks,i,n)}}(t,i,n)}function ki(t,i,n,s,e,r,h,l,a){const o=O(n)?n:n.Se,_=O(n)?n:n.Me,u=O(n)?n:n.xe,c=O(i.size)?Math.max(i.size,0):1,d=vi(l.le())*c,f=d/2;switch(t.Ks=d,i.position){case\"inBar\":return t.st=h.Rt(o,a),void(void 0!==t.Kt&&(t.Kt.st=t.st+f+r+.6*e));case\"aboveBar\":return t.st=h.Rt(_,a)-f-s.sh,void 0!==t.Kt&&(t.Kt.st=t.st-f-.6*e,s.sh+=1.2*e),void(s.sh+=d+r);case\"belowBar\":return t.st=h.Rt(u,a)+f+s.eh,void 0!==t.Kt&&(t.Kt.st=t.st+f+r+.6*e,s.eh+=1.2*e),void(s.eh+=d+r)}i.position}class yi{constructor(t,i){this.ft=!0,this.rh=!0,this.hh=!0,this.ah=null,this.oh=null,this.Wt=new Mi,this.jr=t,this.$i=i,this.zt={it:[],tt:null}}bt(t){this.ft=!0,this.hh=!0,\"data\"===t&&(this.rh=!0,this.oh=null)}gt(t){if(!this.jr.yt())return null;this.ft&&this._h();const i=this.$i.W().layout;return this.Wt._r(i.fontSize,i.fontFamily),this.Wt.J(this.zt),this.Wt}uh(){if(this.hh){if(this.jr.dh().length>0){const t=this.$i.St().le(),i=pi(t),n=1.5*vi(t)+2*i,s=this.fh();this.ah={above:mi(n,s.aboveBar,s.inBar),below:mi(n,s.belowBar,s.inBar)}}else this.ah=null;this.hh=!1}return this.ah}fh(){return null===this.oh&&(this.oh=this.jr.dh().reduce(((t,i)=>(t[i.position]||(t[i.position]=!0),t)),{inBar:!1,aboveBar:!1,belowBar:!1})),this.oh}_h(){const t=this.jr.Dt(),i=this.$i.St(),n=this.jr.dh();this.rh&&(this.zt.it=n.map((t=>({ot:t.time,nt:0,st:0,Ks:0,nh:t.shape,V:t.color,th:t.th,gr:t.id,Kt:void 0}))),this.rh=!1);const s=this.$i.W().layout;this.zt.tt=null;const e=i.Xs();if(null===e)return;const r=this.jr.Ct();if(null===r)return;if(0===this.zt.it.length)return;let h=NaN;const l=pi(i.le()),a={sh:l,eh:l};this.zt.tt=Lt(this.zt.it,e,!0);for(let e=this.zt.tt.from;e<this.zt.tt.to;e++){const o=n[e];o.time!==h&&(a.sh=l,a.eh=l,h=o.time);const _=this.zt.it[e];_.nt=i.It(o.time),void 0!==o.text&&o.text.length>0&&(_.Kt={ih:o.text,nt:0,st:0,Hi:0,At:0});const u=this.jr.ph(o.time);null!==u&&ki(_,o,u,a,s.fontSize,l,t,i,r.Vt)}this.ft=!1}}class Ci extends hi{constructor(t){super(t)}yr(){const t=this.Sr;t.yt=!1;const i=this.Es.W();if(!i.priceLineVisible||!this.Es.yt())return;const n=this.Es.Zr(0===i.priceLineSource);n.Xr||(t.yt=!0,t.st=n.ki,t.V=this.Es.mh(n.V),t.et=i.priceLineWidth,t.Nt=i.priceLineStyle)}}class Ti extends nt{constructor(t){super(),this.jt=t}zi(t,i,n){t.yt=!1,i.yt=!1;const s=this.jt;if(!s.yt())return;const e=s.W(),r=e.lastValueVisible,h=\"\"!==s.bh(),l=0===e.seriesLastValueMode,a=s.Zr(!1);if(a.Xr)return;r&&(t.Kt=this.wh(a,r,l),t.yt=0!==t.Kt.length),(h||l)&&(i.Kt=this.gh(a,r,h,l),i.yt=i.Kt.length>0);const o=s.mh(a.V),_=R(o);n.t=_.t,n.ki=a.ki,i.Ot=s.$t().Bt(a.ki/s.Dt().At()),t.Ot=o,t.V=_.i,i.V=_.i}gh(t,i,n,s){let e=\"\";const r=this.jt.bh();return n&&0!==r.length&&(e+=`${r} `),i&&s&&(e+=this.jt.Dt().Mh()?t.xh:t.Sh),e.trim()}wh(t,i,n){return i?n?this.jt.Dt().Mh()?t.Sh:t.xh:t.Kt:\"\"}}function Pi(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 Ri{constructor(t,i){this.kh=t,this.yh=i}Ch(t){return null!==t&&(this.kh===t.kh&&this.yh===t.yh)}Th(){return new Ri(this.kh,this.yh)}Ph(){return this.kh}Rh(){return this.yh}Dh(){return this.yh-this.kh}Ni(){return this.yh===this.kh||Number.isNaN(this.yh)||Number.isNaN(this.kh)}ts(t){return null===t?this:new Ri(Pi(Math.min,this.Ph(),t.Ph(),-1/0),Pi(Math.max,this.Rh(),t.Rh(),1/0))}Vh(t){if(!O(t))return;if(0===this.yh-this.kh)return;const i=.5*(this.yh+this.kh);let n=this.yh-i,s=this.kh-i;n*=t,s*=t,this.yh=i+n,this.kh=i+s}Oh(t){O(t)&&(this.yh+=t,this.kh+=t)}Bh(){return{minValue:this.kh,maxValue:this.yh}}static Ah(t){return null===t?null:new Ri(t.minValue,t.maxValue)}}class Di{constructor(t,i){this.Ih=t,this.zh=i||null}Lh(){return this.Ih}Eh(){return this.zh}Bh(){return null===this.Ih?null:{priceRange:this.Ih.Bh(),margins:this.zh||void 0}}static Ah(t){return null===t?null:new Di(Ri.Ah(t.priceRange),t.margins)}}class Vi extends hi{constructor(t,i){super(t),this.Nh=i}yr(){const t=this.Sr;t.yt=!1;const i=this.Nh.W();if(!this.Es.yt()||!i.lineVisible)return;const n=this.Nh.Fh();null!==n&&(t.yt=!0,t.st=n,t.V=i.color,t.et=i.lineWidth,t.Nt=i.lineStyle,t.gr=this.Nh.W().id)}}class Oi extends nt{constructor(t,i){super(),this.jr=t,this.Nh=i}zi(t,i,n){t.yt=!1,i.yt=!1;const s=this.Nh.W(),e=s.axisLabelVisible,r=\"\"!==s.title,h=this.jr;if(!e||!h.yt())return;const l=this.Nh.Fh();if(null===l)return;r&&(i.Kt=s.title,i.yt=!0),i.Ot=h.$t().Bt(l/h.Dt().At()),t.Kt=this.Wh(s.price),t.yt=!0;const a=R(s.axisLabelColor||s.color);n.t=a.t;const o=s.axisLabelTextColor||a.i;t.V=o,i.V=o,n.ki=l}Wh(t){const i=this.jr.Ct();return null===i?\"\":this.jr.Dt().Fi(t,i.Vt)}}class Bi{constructor(t,i){this.jr=t,this.cn=i,this.jh=new Vi(t,this),this.ur=new Oi(t,this),this.Hh=new ei(this.ur,t,t.$t())}$h(t){V(this.cn,t),this.bt(),this.jr.$t().Uh()}W(){return this.cn}qh(){return this.jh}Yh(){return this.Hh}Zh(){return this.ur}bt(){this.jh.bt(),this.ur.bt()}Fh(){const t=this.jr,i=t.Dt();if(t.$t().St().Ni()||i.Ni())return null;const n=t.Ct();return null===n?null:i.Rt(this.cn.price,n.Vt)}}class Ai extends lt{constructor(t){super(),this.$i=t}$t(){return this.$i}}const Ii={Bar:(t,i,n,s)=>{var e;const r=i.upColor,h=i.downColor,l=b(t(n,s)),a=w(l.Vt[0])<=w(l.Vt[3]);return{ce:null!==(e=l.V)&&void 0!==e?e:a?r:h}},Candlestick:(t,i,n,s)=>{var e,r,h;const l=i.upColor,a=i.downColor,o=i.borderUpColor,_=i.borderDownColor,u=i.wickUpColor,c=i.wickDownColor,d=b(t(n,s)),f=w(d.Vt[0])<=w(d.Vt[3]);return{ce:null!==(e=d.V)&&void 0!==e?e:f?l:a,Ne:null!==(r=d.Ot)&&void 0!==r?r:f?o:_,Ee:null!==(h=d.Xh)&&void 0!==h?h:f?u:c}},Custom:(t,i,n,s)=>{var e;return{ce:null!==(e=b(t(n,s)).V)&&void 0!==e?e:i.color}},Area:(t,i,n,s)=>{var e,r,h,l;const a=b(t(n,s));return{ce:null!==(e=a.lt)&&void 0!==e?e:i.lineColor,lt:null!==(r=a.lt)&&void 0!==r?r:i.lineColor,Ps:null!==(h=a.Ps)&&void 0!==h?h:i.topColor,Rs:null!==(l=a.Rs)&&void 0!==l?l:i.bottomColor}},Baseline:(t,i,n,s)=>{var e,r,h,l,a,o;const _=b(t(n,s));return{ce:_.Vt[3]>=i.baseValue.price?i.topLineColor:i.bottomLineColor,Re:null!==(e=_.Re)&&void 0!==e?e:i.topLineColor,De:null!==(r=_.De)&&void 0!==r?r:i.bottomLineColor,ke:null!==(h=_.ke)&&void 0!==h?h:i.topFillColor1,ye:null!==(l=_.ye)&&void 0!==l?l:i.topFillColor2,Ce:null!==(a=_.Ce)&&void 0!==a?a:i.bottomFillColor1,Te:null!==(o=_.Te)&&void 0!==o?o:i.bottomFillColor2}},Line:(t,i,n,s)=>{var e,r;const h=b(t(n,s));return{ce:null!==(e=h.V)&&void 0!==e?e:i.color,lt:null!==(r=h.V)&&void 0!==r?r:i.color}},Histogram:(t,i,n,s)=>{var e;return{ce:null!==(e=b(t(n,s)).V)&&void 0!==e?e:i.color}}};class zi{constructor(t){this.Kh=(t,i)=>void 0!==i?i.Vt:this.jr.In().Gh(t),this.jr=t,this.Jh=Ii[t.Qh()]}$s(t,i){return this.Jh(this.Kh,this.jr.W(),t,i)}}var Li;!function(t){t[t.NearestLeft=-1]=\"NearestLeft\",t[t.None=0]=\"None\",t[t.NearestRight=1]=\"NearestRight\"}(Li||(Li={}));const Ei=30;class Ni{constructor(){this.tl=[],this.il=new Map,this.nl=new Map}sl(){return this.Ks()>0?this.tl[this.tl.length-1]:null}el(){return this.Ks()>0?this.rl(0):null}An(){return this.Ks()>0?this.rl(this.tl.length-1):null}Ks(){return this.tl.length}Ni(){return 0===this.Ks()}Kr(t){return null!==this.hl(t,0)}Gh(t){return this.ll(t)}ll(t,i=0){const n=this.hl(t,i);return null===n?null:Object.assign(Object.assign({},this.al(n)),{ee:this.rl(n)})}ne(){return this.tl}ol(t,i,n){if(this.Ni())return null;let s=null;for(const e of n){s=Fi(s,this._l(t,i,e))}return s}J(t){this.nl.clear(),this.il.clear(),this.tl=t}rl(t){return this.tl[t].ee}al(t){return this.tl[t]}hl(t,i){const n=this.ul(t);if(null===n&&0!==i)switch(i){case-1:return this.cl(t);case 1:return this.dl(t);default:throw new TypeError(\"Unknown search mode\")}return n}cl(t){let i=this.fl(t);return i>0&&(i-=1),i!==this.tl.length&&this.rl(i)<t?i:null}dl(t){const i=this.vl(t);return i!==this.tl.length&&t<this.rl(i)?i:null}ul(t){const i=this.fl(t);return i===this.tl.length||t<this.tl[i].ee?null:i}fl(t){return Bt(this.tl,t,((t,i)=>t.ee<i))}vl(t){return At(this.tl,t,((t,i)=>t.ee>i))}pl(t,i,n){let s=null;for(let e=t;e<i;e++){const t=this.tl[e].Vt[n];Number.isNaN(t)||(null===s?s={ml:t,bl:t}:(t<s.ml&&(s.ml=t),t>s.bl&&(s.bl=t)))}return s}_l(t,i,n){if(this.Ni())return null;let s=null;const e=b(this.el()),r=b(this.An()),h=Math.max(t,e),l=Math.min(i,r),a=Math.ceil(h/Ei)*Ei,o=Math.max(a,Math.floor(l/Ei)*Ei);{const t=this.fl(h),e=this.vl(Math.min(l,a,i));s=Fi(s,this.pl(t,e,n))}let _=this.il.get(n);void 0===_&&(_=new Map,this.il.set(n,_));for(let t=Math.max(a+1,h);t<o;t+=Ei){const i=Math.floor(t/Ei);let e=_.get(i);if(void 0===e){const t=this.fl(i*Ei),s=this.vl((i+1)*Ei-1);e=this.pl(t,s,n),_.set(i,e)}s=Fi(s,e)}{const t=this.fl(o),i=this.vl(l);s=Fi(s,this.pl(t,i,n))}return s}}function Fi(t,i){if(null===t)return i;if(null===i)return t;return{ml:Math.min(t.ml,i.ml),bl:Math.max(t.bl,i.bl)}}class Wi{constructor(t){this.wl=t}X(t,i,n){this.wl.draw(t)}gl(t,i,n){var s,e;null===(e=(s=this.wl).drawBackground)||void 0===e||e.call(s,t)}}class ji{constructor(t){this.tr=null,this.wn=t}gt(){var t;const i=this.wn.renderer();if(null===i)return null;if((null===(t=this.tr)||void 0===t?void 0:t.Ml)===i)return this.tr.xl;const n=new Wi(i);return this.tr={Ml:i,xl:n},n}Sl(){var t,i,n;return null!==(n=null===(i=(t=this.wn).zOrder)||void 0===i?void 0:i.call(t))&&void 0!==n?n:\"normal\"}}function Hi(t){var i,n,s,e,r;return{Kt:t.text(),ki:t.coordinate(),Si:null===(i=t.fixedCoordinate)||void 0===i?void 0:i.call(t),V:t.textColor(),t:t.backColor(),yt:null===(s=null===(n=t.visible)||void 0===n?void 0:n.call(t))||void 0===s||s,hi:null===(r=null===(e=t.tickVisible)||void 0===e?void 0:e.call(t))||void 0===r||r}}class $i{constructor(t,i){this.Wt=new rt,this.kl=t,this.yl=i}gt(){return this.Wt.J(Object.assign({Hi:this.yl.Hi()},Hi(this.kl))),this.Wt}}class Ui extends nt{constructor(t,i){super(),this.kl=t,this.Li=i}zi(t,i,n){const s=Hi(this.kl);n.t=s.t,t.V=s.V;const e=2/12*this.Li.P();n.wi=e,n.gi=e,n.ki=s.ki,n.Si=s.Si,t.Kt=s.Kt,t.yt=s.yt,t.hi=s.hi}}class qi{constructor(t,i){this.Cl=null,this.Tl=null,this.Pl=null,this.Rl=null,this.Dl=null,this.Vl=t,this.jr=i}Ol(){return this.Vl}Vn(){var t,i;null===(i=(t=this.Vl).updateAllViews)||void 0===i||i.call(t)}Pn(){var t,i,n,s;const e=null!==(n=null===(i=(t=this.Vl).paneViews)||void 0===i?void 0:i.call(t))&&void 0!==n?n:[];if((null===(s=this.Cl)||void 0===s?void 0:s.Ml)===e)return this.Cl.xl;const r=e.map((t=>new ji(t)));return this.Cl={Ml:e,xl:r},r}Qi(){var t,i,n,s;const e=null!==(n=null===(i=(t=this.Vl).timeAxisViews)||void 0===i?void 0:i.call(t))&&void 0!==n?n:[];if((null===(s=this.Tl)||void 0===s?void 0:s.Ml)===e)return this.Tl.xl;const r=this.jr.$t().St(),h=e.map((t=>new $i(t,r)));return this.Tl={Ml:e,xl:h},h}Rn(){var t,i,n,s;const e=null!==(n=null===(i=(t=this.Vl).priceAxisViews)||void 0===i?void 0:i.call(t))&&void 0!==n?n:[];if((null===(s=this.Pl)||void 0===s?void 0:s.Ml)===e)return this.Pl.xl;const r=this.jr.Dt(),h=e.map((t=>new Ui(t,r)));return this.Pl={Ml:e,xl:h},h}Bl(){var t,i,n,s;const e=null!==(n=null===(i=(t=this.Vl).priceAxisPaneViews)||void 0===i?void 0:i.call(t))&&void 0!==n?n:[];if((null===(s=this.Rl)||void 0===s?void 0:s.Ml)===e)return this.Rl.xl;const r=e.map((t=>new ji(t)));return this.Rl={Ml:e,xl:r},r}Al(){var t,i,n,s;const e=null!==(n=null===(i=(t=this.Vl).timeAxisPaneViews)||void 0===i?void 0:i.call(t))&&void 0!==n?n:[];if((null===(s=this.Dl)||void 0===s?void 0:s.Ml)===e)return this.Dl.xl;const r=e.map((t=>new ji(t)));return this.Dl={Ml:e,xl:r},r}Il(t,i){var n,s,e;return null!==(e=null===(s=(n=this.Vl).autoscaleInfo)||void 0===s?void 0:s.call(n,t,i))&&void 0!==e?e:null}wr(t,i){var n,s,e;return null!==(e=null===(s=(n=this.Vl).hitTest)||void 0===s?void 0:s.call(n,t,i))&&void 0!==e?e:null}}function Yi(t,i,n,s){t.forEach((t=>{i(t).forEach((t=>{t.Sl()===n&&s.push(t)}))}))}function Zi(t){return t.Pn()}function Xi(t){return t.Bl()}function Ki(t){return t.Al()}class Gi extends Ai{constructor(t,i,n,s,e){super(t),this.zt=new Ni,this.jh=new Ci(this),this.zl=[],this.Ll=new li(this),this.El=null,this.Nl=null,this.Fl=[],this.Wl=[],this.jl=null,this.Hl=[],this.cn=i,this.$l=n;const r=new Ti(this);this.rn=[r],this.Hh=new ei(r,this,t),\"Area\"!==n&&\"Line\"!==n&&\"Baseline\"!==n||(this.El=new ci(this)),this.Ul(),this.ql(e)}S(){null!==this.jl&&clearTimeout(this.jl)}mh(t){return this.cn.priceLineColor||t}Zr(t){const i={Xr:!0},n=this.Dt();if(this.$t().St().Ni()||n.Ni()||this.zt.Ni())return i;const s=this.$t().St().Xs(),e=this.Ct();if(null===s||null===e)return i;let r,h;if(t){const t=this.zt.sl();if(null===t)return i;r=t,h=t.ee}else{const t=this.zt.ll(s.ui(),-1);if(null===t)return i;if(r=this.zt.Gh(t.ee),null===r)return i;h=t.ee}const l=r.Vt[3],a=this.Us().$s(h,{Vt:r}),o=n.Rt(l,e.Vt);return{Xr:!1,_t:l,Kt:n.Fi(l,e.Vt),xh:n.Yl(l),Sh:n.Zl(l,e.Vt),V:a.ce,ki:o,ee:h}}Us(){return null!==this.Nl||(this.Nl=new zi(this)),this.Nl}W(){return this.cn}$h(t){const i=t.priceScaleId;void 0!==i&&i!==this.cn.priceScaleId&&this.$t().Xl(this,i),V(this.cn,t),void 0!==t.priceFormat&&(this.Ul(),this.$t().Kl()),this.$t().Gl(this),this.$t().Jl(),this.wn.bt(\"options\")}J(t,i){this.zt.J(t),this.Ql(),this.wn.bt(\"data\"),this.dn.bt(\"data\"),null!==this.El&&(i&&i.ta?this.El.$r():0===t.length&&this.El.Hr());const n=this.$t().dr(this);this.$t().ia(n),this.$t().Gl(this),this.$t().Jl(),this.$t().Uh()}na(t){this.Fl=t,this.Ql();const i=this.$t().dr(this);this.dn.bt(\"data\"),this.$t().ia(i),this.$t().Gl(this),this.$t().Jl(),this.$t().Uh()}sa(){return this.Fl}dh(){return this.Wl}ea(t){const i=new Bi(this,t);return this.zl.push(i),this.$t().Gl(this),i}ra(t){const i=this.zl.indexOf(t);-1!==i&&this.zl.splice(i,1),this.$t().Gl(this)}Qh(){return this.$l}Ct(){const t=this.ha();return null===t?null:{Vt:t.Vt[3],la:t.ot}}ha(){const t=this.$t().St().Xs();if(null===t)return null;const i=t.Os();return this.zt.ll(i,1)}In(){return this.zt}ph(t){const i=this.zt.Gh(t);return null===i?null:\"Bar\"===this.$l||\"Candlestick\"===this.$l||\"Custom\"===this.$l?{ge:i.Vt[0],Me:i.Vt[1],xe:i.Vt[2],Se:i.Vt[3]}:i.Vt[3]}aa(t){const i=[];Yi(this.Hl,Zi,\"top\",i);const n=this.El;return null!==n&&n.yt()?(null===this.jl&&n.qr()&&(this.jl=setTimeout((()=>{this.jl=null,this.$t().oa()}),0)),n.Ur(),i.unshift(n),i):i}Pn(){const t=[];this._a()||t.push(this.Ll),t.push(this.wn,this.jh,this.dn);const i=this.zl.map((t=>t.qh()));return t.push(...i),Yi(this.Hl,Zi,\"normal\",t),t}ua(){return this.ca(Zi,\"bottom\")}da(t){return this.ca(Xi,t)}fa(t){return this.ca(Ki,t)}va(t,i){return this.Hl.map((n=>n.wr(t,i))).filter((t=>null!==t))}Ji(t){return[this.Hh,...this.zl.map((t=>t.Yh()))]}Rn(t,i){if(i!==this.Yi&&!this._a())return[];const n=[...this.rn];for(const t of this.zl)n.push(t.Zh());return this.Hl.forEach((t=>{n.push(...t.Rn())})),n}Qi(){const t=[];return this.Hl.forEach((i=>{t.push(...i.Qi())})),t}Il(t,i){if(void 0!==this.cn.autoscaleInfoProvider){const n=this.cn.autoscaleInfoProvider((()=>{const n=this.pa(t,i);return null===n?null:n.Bh()}));return Di.Ah(n)}return this.pa(t,i)}ma(){return this.cn.priceFormat.minMove}ba(){return this.wa}Vn(){var t;this.wn.bt(),this.dn.bt();for(const t of this.rn)t.bt();for(const t of this.zl)t.bt();this.jh.bt(),this.Ll.bt(),null===(t=this.El)||void 0===t||t.bt(),this.Hl.forEach((t=>t.Vn()))}Dt(){return b(super.Dt())}kt(t){if(!((\"Line\"===this.$l||\"Area\"===this.$l||\"Baseline\"===this.$l)&&this.cn.crosshairMarkerVisible))return null;const i=this.zt.Gh(t);if(null===i)return null;return{_t:i.Vt[3],ht:this.ga(),Ot:this.Ma(),Pt:this.xa(),Tt:this.Sa(t)}}bh(){return this.cn.title}yt(){return this.cn.visible}ka(t){this.Hl.push(new qi(t,this))}ya(t){this.Hl=this.Hl.filter((i=>i.Ol()!==t))}Ca(){if(this.wn instanceof Kt!=!1)return t=>this.wn.We(t)}Ta(){if(this.wn instanceof Kt!=!1)return t=>this.wn.je(t)}_a(){return!_t(this.Dt().Pa())}pa(t,i){if(!B(t)||!B(i)||this.zt.Ni())return null;const n=\"Line\"===this.$l||\"Area\"===this.$l||\"Baseline\"===this.$l||\"Histogram\"===this.$l?[3]:[2,1],s=this.zt.ol(t,i,n);let e=null!==s?new Ri(s.ml,s.bl):null;if(\"Histogram\"===this.Qh()){const t=this.cn.base,i=new Ri(t,t);e=null!==e?e.ts(i):i}let r=this.dn.uh();return this.Hl.forEach((n=>{const s=n.Il(t,i);if(null==s?void 0:s.priceRange){const t=new Ri(s.priceRange.minValue,s.priceRange.maxValue);e=null!==e?e.ts(t):t}var h,l,a,o;(null==s?void 0:s.margins)&&(h=r,l=s.margins,r={above:Math.max(null!==(a=null==h?void 0:h.above)&&void 0!==a?a:0,l.above),below:Math.max(null!==(o=null==h?void 0:h.below)&&void 0!==o?o:0,l.below)})})),new Di(e,r)}ga(){switch(this.$l){case\"Line\":case\"Area\":case\"Baseline\":return this.cn.crosshairMarkerRadius}return 0}Ma(){switch(this.$l){case\"Line\":case\"Area\":case\"Baseline\":{const t=this.cn.crosshairMarkerBorderColor;if(0!==t.length)return t}}return null}xa(){switch(this.$l){case\"Line\":case\"Area\":case\"Baseline\":return this.cn.crosshairMarkerBorderWidth}return 0}Sa(t){switch(this.$l){case\"Line\":case\"Area\":case\"Baseline\":{const t=this.cn.crosshairMarkerBackgroundColor;if(0!==t.length)return t}}return this.Us().$s(t).ce}Ul(){switch(this.cn.priceFormat.type){case\"custom\":this.wa={format:this.cn.priceFormat.formatter};break;case\"volume\":this.wa=new pt(this.cn.priceFormat.precision);break;case\"percent\":this.wa=new vt(this.cn.priceFormat.precision);break;default:{const t=Math.pow(10,this.cn.priceFormat.precision);this.wa=new ft(t,this.cn.priceFormat.minMove*t)}}null!==this.Yi&&this.Yi.Ra()}Ql(){const t=this.$t().St();if(!t.Da()||this.zt.Ni())return void(this.Wl=[]);const i=b(this.zt.el());this.Wl=this.Fl.map(((n,s)=>{const e=b(t.Va(n.time,!0)),r=e<i?1:-1;return{time:b(this.zt.ll(e,r)).ee,position:n.position,shape:n.shape,color:n.color,id:n.id,th:s,text:n.text,size:n.size,originalTime:n.originalTime}}))}ql(t){switch(this.dn=new yi(this,this.$t()),this.$l){case\"Bar\":this.wn=new Ht(this,this.$t());break;case\"Candlestick\":this.wn=new Zt(this,this.$t());break;case\"Line\":this.wn=new ti(this,this.$t());break;case\"Custom\":this.wn=new Kt(this,this.$t(),m(t));break;case\"Area\":this.wn=new Ft(this,this.$t());break;case\"Baseline\":this.wn=new qt(this,this.$t());break;case\"Histogram\":this.wn=new Qt(this,this.$t());break;default:throw Error(\"Unknown chart style assigned: \"+this.$l)}}ca(t,i){const n=[];return Yi(this.Hl,t,i,n),n}}class Ji{constructor(t){this.cn=t}Oa(t,i,n){let s=t;if(0===this.cn.mode)return s;const e=n.vn(),r=e.Ct();if(null===r)return s;const h=e.Rt(t,r),l=n.Ba().filter((t=>t instanceof Gi)).reduce(((t,s)=>{if(n.vr(s)||!s.yt())return t;const e=s.Dt(),r=s.In();if(e.Ni()||!r.Kr(i))return t;const h=r.Gh(i);if(null===h)return t;const l=w(s.Ct());return t.concat([e.Rt(h.Vt[3],l.Vt)])}),[]);if(0===l.length)return s;l.sort(((t,i)=>Math.abs(t-h)-Math.abs(i-h)));const a=l[0];return s=e.pn(a,r),s}}class Qi extends H{constructor(){super(...arguments),this.zt=null}J(t){this.zt=t}K({context:t,bitmapSize:i,horizontalPixelRatio:n,verticalPixelRatio:s}){if(null===this.zt)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=b(this.zt);if(r.Aa){t.strokeStyle=r.Ia,f(t,r.za),t.beginPath();for(const s of r.La){const r=Math.round(s.Ea*n);t.moveTo(r,-e),t.lineTo(r,i.height+e)}t.stroke()}if(r.Na){t.strokeStyle=r.Fa,f(t,r.Wa),t.beginPath();for(const n of r.ja){const r=Math.round(n.Ea*s);t.moveTo(-e,r),t.lineTo(i.width+e,r)}t.stroke()}}))}}class tn{constructor(t){this.Wt=new Qi,this.ft=!0,this.tn=t}bt(){this.ft=!0}gt(){if(this.ft){const t=this.tn.$t().W().grid,i={Na:t.horzLines.visible,Aa:t.vertLines.visible,Fa:t.horzLines.color,Ia:t.vertLines.color,Wa:t.horzLines.style,za:t.vertLines.style,ja:this.tn.vn().Ha(),La:(this.tn.$t().St().Ha()||[]).map((t=>({Ea:t.coord})))};this.Wt.J(i),this.ft=!1}return this.Wt}}class nn{constructor(t){this.wn=new tn(t)}qh(){return this.wn}}const sn={$a:4,Ua:1e-4};function en(t,i){const n=100*(t-i)/i;return i<0?-n:n}function rn(t,i){const n=en(t.Ph(),i),s=en(t.Rh(),i);return new Ri(n,s)}function hn(t,i){const n=100*(t-i)/i+100;return i<0?-n:n}function ln(t,i){const n=hn(t.Ph(),i),s=hn(t.Rh(),i);return new Ri(n,s)}function an(t,i){const n=Math.abs(t);if(n<1e-15)return 0;const s=Math.log10(n+i.Ua)+i.$a;return t<0?-s:s}function on(t,i){const n=Math.abs(t);if(n<1e-15)return 0;const s=Math.pow(10,n-i.$a)-i.Ua;return t<0?-s:s}function _n(t,i){if(null===t)return null;const n=an(t.Ph(),i),s=an(t.Rh(),i);return new Ri(n,s)}function un(t,i){if(null===t)return null;const n=on(t.Ph(),i),s=on(t.Rh(),i);return new Ri(n,s)}function cn(t){if(null===t)return sn;const i=Math.abs(t.Rh()-t.Ph());if(i>=1||i<1e-15)return sn;const n=Math.ceil(Math.abs(Math.log10(i))),s=sn.$a+n;return{$a:s,Ua:1/Math.pow(10,s)}}class dn{constructor(t,i){if(this.qa=t,this.Ya=i,function(t){if(t<0)return!1;for(let i=t;i>1;i/=10)if(i%10!=0)return!1;return!0}(this.qa))this.Za=[2,2.5,2];else{this.Za=[];for(let t=this.qa;1!==t;){if(t%2==0)this.Za.push(2),t/=2;else{if(t%5!=0)throw new Error(\"unexpected base\");this.Za.push(2,2.5),t/=5}if(this.Za.length>100)throw new Error(\"something wrong with base\")}}}Xa(t,i,n){const s=0===this.qa?0:1/this.qa;let e=Math.pow(10,Math.max(0,Math.ceil(Math.log10(t-i)))),r=0,h=this.Ya[0];for(;;){const t=yt(e,s,1e-14)&&e>s+1e-14,i=yt(e,n*h,1e-14),l=yt(e,1,1e-14);if(!(t&&i&&l))break;e/=h,h=this.Ya[++r%this.Ya.length]}if(e<=s+1e-14&&(e=s),e=Math.max(1,e),this.Za.length>0&&(l=e,a=1,o=1e-14,Math.abs(l-a)<o))for(r=0,h=this.Za[0];yt(e,n*h,1e-14)&&e>s+1e-14;)e/=h,h=this.Za[++r%this.Za.length];var l,a,o;return e}}class fn{constructor(t,i,n,s){this.Ka=[],this.Li=t,this.qa=i,this.Ga=n,this.Ja=s}Xa(t,i){if(t<i)throw new Error(\"high < low\");const n=this.Li.At(),s=(t-i)*this.Qa()/n,e=new dn(this.qa,[2,2.5,2]),r=new dn(this.qa,[2,2,2.5]),h=new dn(this.qa,[2.5,2,2]),l=[];return l.push(e.Xa(t,i,s),r.Xa(t,i,s),h.Xa(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}(l)}io(){const t=this.Li,i=t.Ct();if(null===i)return void(this.Ka=[]);const n=t.At(),s=this.Ga(n-1,i),e=this.Ga(0,i),r=this.Li.W().entireTextOnly?this.no()/2:0,h=r,l=n-1-r,a=Math.max(s,e),o=Math.min(s,e);if(a===o)return void(this.Ka=[]);let _=this.Xa(a,o),u=a%_;u+=u<0?_:0;const c=a>=o?1:-1;let d=null,f=0;for(let n=a-u;n>o;n-=_){const s=this.Ja(n,i,!0);null!==d&&Math.abs(s-d)<this.Qa()||(s<h||s>l||(f<this.Ka.length?(this.Ka[f].Ea=s,this.Ka[f].so=t.eo(n)):this.Ka.push({Ea:s,so:t.eo(n)}),f++,d=s,t.ro()&&(_=this.Xa(n*c,o))))}this.Ka.length=f}Ha(){return this.Ka}no(){return this.Li.P()}Qa(){return Math.ceil(2.5*this.no())}}function vn(t){return t.slice().sort(((t,i)=>b(t.Xi())-b(i.Xi())))}var pn;!function(t){t[t.Normal=0]=\"Normal\",t[t.Logarithmic=1]=\"Logarithmic\",t[t.Percentage=2]=\"Percentage\",t[t.IndexedTo100=3]=\"IndexedTo100\"}(pn||(pn={}));const mn=new vt,bn=new ft(100,1);class wn{constructor(t,i,n,s){this.ho=0,this.lo=null,this.Ih=null,this.ao=null,this.oo={_o:!1,uo:null},this.co=0,this.do=0,this.fo=new D,this.vo=new D,this.po=[],this.mo=null,this.bo=null,this.wo=null,this.Mo=null,this.wa=bn,this.xo=cn(null),this.So=t,this.cn=i,this.ko=n,this.yo=s,this.Co=new fn(this,100,this.To.bind(this),this.Po.bind(this))}Pa(){return this.So}W(){return this.cn}$h(t){if(V(this.cn,t),this.Ra(),void 0!==t.mode&&this.Ro({Cr:t.mode}),void 0!==t.scaleMargins){const i=m(t.scaleMargins.top),n=m(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.Do(),this.bo=null}}Vo(){return this.cn.autoScale}ro(){return 1===this.cn.mode}Mh(){return 2===this.cn.mode}Oo(){return 3===this.cn.mode}Cr(){return{Wn:this.cn.autoScale,Bo:this.cn.invertScale,Cr:this.cn.mode}}Ro(t){const i=this.Cr();let n=null;void 0!==t.Wn&&(this.cn.autoScale=t.Wn),void 0!==t.Cr&&(this.cn.mode=t.Cr,2!==t.Cr&&3!==t.Cr||(this.cn.autoScale=!0),this.oo._o=!1),1===i.Cr&&t.Cr!==i.Cr&&(!function(t,i){if(null===t)return!1;const n=on(t.Ph(),i),s=on(t.Rh(),i);return isFinite(n)&&isFinite(s)}(this.Ih,this.xo)?this.cn.autoScale=!0:(n=un(this.Ih,this.xo),null!==n&&this.Ao(n))),1===t.Cr&&t.Cr!==i.Cr&&(n=_n(this.Ih,this.xo),null!==n&&this.Ao(n));const s=i.Cr!==this.cn.mode;s&&(2===i.Cr||this.Mh())&&this.Ra(),s&&(3===i.Cr||this.Oo())&&this.Ra(),void 0!==t.Bo&&i.Bo!==t.Bo&&(this.cn.invertScale=t.Bo,this.Io()),this.vo.m(i,this.Cr())}zo(){return this.vo}P(){return this.ko.fontSize}At(){return this.ho}Lo(t){this.ho!==t&&(this.ho=t,this.Do(),this.bo=null)}Eo(){if(this.lo)return this.lo;const t=this.At()-this.No()-this.Fo();return this.lo=t,t}Lh(){return this.Wo(),this.Ih}Ao(t,i){const n=this.Ih;(i||null===n&&null!==t||null!==n&&!n.Ch(t))&&(this.bo=null,this.Ih=t)}Ni(){return this.Wo(),0===this.ho||!this.Ih||this.Ih.Ni()}jo(t){return this.Bo()?t:this.At()-1-t}Rt(t,i){return this.Mh()?t=en(t,i):this.Oo()&&(t=hn(t,i)),this.Po(t,i)}te(t,i,n){this.Wo();const s=this.Fo(),e=b(this.Lh()),r=e.Ph(),h=e.Rh(),l=this.Eo()-1,a=this.Bo(),o=l/(h-r),_=void 0===n?0:n.from,u=void 0===n?t.length:n.to,c=this.Ho();for(let n=_;n<u;n++){const e=t[n],h=e._t;if(isNaN(h))continue;let l=h;null!==c&&(l=c(e._t,i));const _=s+o*(l-r),u=a?_:this.ho-1-_;e.st=u}}be(t,i,n){this.Wo();const s=this.Fo(),e=b(this.Lh()),r=e.Ph(),h=e.Rh(),l=this.Eo()-1,a=this.Bo(),o=l/(h-r),_=void 0===n?0:n.from,u=void 0===n?t.length:n.to,c=this.Ho();for(let n=_;n<u;n++){const e=t[n];let h=e.ge,l=e.Me,_=e.xe,u=e.Se;null!==c&&(h=c(e.ge,i),l=c(e.Me,i),_=c(e.xe,i),u=c(e.Se,i));let d=s+o*(h-r),f=a?d:this.ho-1-d;e.pe=f,d=s+o*(l-r),f=a?d:this.ho-1-d,e.de=f,d=s+o*(_-r),f=a?d:this.ho-1-d,e.fe=f,d=s+o*(u-r),f=a?d:this.ho-1-d,e.me=f}}pn(t,i){const n=this.To(t,i);return this.$o(n,i)}$o(t,i){let n=t;return this.Mh()?n=function(t,i){return i<0&&(t=-t),t/100*i+i}(n,i):this.Oo()&&(n=function(t,i){return t-=100,i<0&&(t=-t),t/100*i+i}(n,i)),n}Ba(){return this.po}Uo(){if(this.mo)return this.mo;let t=[];for(let i=0;i<this.po.length;i++){const n=this.po[i];null===n.Xi()&&n.Ki(i+1),t.push(n)}return t=vn(t),this.mo=t,this.mo}qo(t){-1===this.po.indexOf(t)&&(this.po.push(t),this.Ra(),this.Yo())}Zo(t){const i=this.po.indexOf(t);if(-1===i)throw new Error(\"source is not attached to scale\");this.po.splice(i,1),0===this.po.length&&(this.Ro({Wn:!0}),this.Ao(null)),this.Ra(),this.Yo()}Ct(){let t=null;for(const i of this.po){const n=i.Ct();null!==n&&((null===t||n.la<t.la)&&(t=n))}return null===t?null:t.Vt}Bo(){return this.cn.invertScale}Ha(){const t=null===this.Ct();if(null!==this.bo&&(t||this.bo.Xo===t))return this.bo.Ha;this.Co.io();const i=this.Co.Ha();return this.bo={Ha:i,Xo:t},this.fo.m(),i}Ko(){return this.fo}Go(t){this.Mh()||this.Oo()||null===this.wo&&null===this.ao&&(this.Ni()||(this.wo=this.ho-t,this.ao=b(this.Lh()).Th()))}Jo(t){if(this.Mh()||this.Oo())return;if(null===this.wo)return;this.Ro({Wn:!1}),(t=this.ho-t)<0&&(t=0);let i=(this.wo+.2*(this.ho-1))/(t+.2*(this.ho-1));const n=b(this.ao).Th();i=Math.max(i,.1),n.Vh(i),this.Ao(n)}Qo(){this.Mh()||this.Oo()||(this.wo=null,this.ao=null)}t_(t){this.Vo()||null===this.Mo&&null===this.ao&&(this.Ni()||(this.Mo=t,this.ao=b(this.Lh()).Th()))}i_(t){if(this.Vo())return;if(null===this.Mo)return;const i=b(this.Lh()).Dh()/(this.Eo()-1);let n=t-this.Mo;this.Bo()&&(n*=-1);const s=n*i,e=b(this.ao).Th();e.Oh(s),this.Ao(e,!0),this.bo=null}n_(){this.Vo()||null!==this.Mo&&(this.Mo=null,this.ao=null)}ba(){return this.wa||this.Ra(),this.wa}Fi(t,i){switch(this.cn.mode){case 2:return this.s_(en(t,i));case 3:return this.ba().format(hn(t,i));default:return this.Wh(t)}}eo(t){switch(this.cn.mode){case 2:return this.s_(t);case 3:return this.ba().format(t);default:return this.Wh(t)}}Yl(t){return this.Wh(t,b(this.e_()).ba())}Zl(t,i){return t=en(t,i),this.s_(t,mn)}r_(){return this.po}h_(t){this.oo={uo:t,_o:!1}}Vn(){this.po.forEach((t=>t.Vn()))}Ra(){this.bo=null;const t=this.e_();let i=100;null!==t&&(i=Math.round(1/t.ma())),this.wa=bn,this.Mh()?(this.wa=mn,i=100):this.Oo()?(this.wa=new ft(100,1),i=100):null!==t&&(this.wa=t.ba()),this.Co=new fn(this,i,this.To.bind(this),this.Po.bind(this)),this.Co.io()}Yo(){this.mo=null}e_(){return this.po[0]||null}No(){return this.Bo()?this.cn.scaleMargins.bottom*this.At()+this.do:this.cn.scaleMargins.top*this.At()+this.co}Fo(){return this.Bo()?this.cn.scaleMargins.top*this.At()+this.co:this.cn.scaleMargins.bottom*this.At()+this.do}Wo(){this.oo._o||(this.oo._o=!0,this.l_())}Do(){this.lo=null}Po(t,i){if(this.Wo(),this.Ni())return 0;t=this.ro()&&t?an(t,this.xo):t;const n=b(this.Lh()),s=this.Fo()+(this.Eo()-1)*(t-n.Ph())/n.Dh();return this.jo(s)}To(t,i){if(this.Wo(),this.Ni())return 0;const n=this.jo(t),s=b(this.Lh()),e=s.Ph()+s.Dh()*((n-this.Fo())/(this.Eo()-1));return this.ro()?on(e,this.xo):e}Io(){this.bo=null,this.Co.io()}l_(){const t=this.oo.uo;if(null===t)return;let i=null;const n=this.r_();let s=0,e=0;for(const r of n){if(!r.yt())continue;const n=r.Ct();if(null===n)continue;const h=r.Il(t.Os(),t.ui());let l=h&&h.Lh();if(null!==l){switch(this.cn.mode){case 1:l=_n(l,this.xo);break;case 2:l=rn(l,n.Vt);break;case 3:l=ln(l,n.Vt)}if(i=null===i?l:i.ts(b(l)),null!==h){const t=h.Eh();null!==t&&(s=Math.max(s,t.above),e=Math.max(e,t.below))}}}if(s===this.co&&e===this.do||(this.co=s,this.do=e,this.bo=null,this.Do()),null!==i){if(i.Ph()===i.Rh()){const t=this.e_(),n=5*(null===t||this.Mh()||this.Oo()?1:t.ma());this.ro()&&(i=un(i,this.xo)),i=new Ri(i.Ph()-n,i.Rh()+n),this.ro()&&(i=_n(i,this.xo))}if(this.ro()){const t=un(i,this.xo),n=cn(t);if(r=n,h=this.xo,r.$a!==h.$a||r.Ua!==h.Ua){const s=null!==this.ao?un(this.ao,this.xo):null;this.xo=n,i=_n(t,n),null!==s&&(this.ao=_n(s,n))}}this.Ao(i)}else null===this.Ih&&(this.Ao(new Ri(-.5,.5)),this.xo=cn(null));var r,h;this.oo._o=!0}Ho(){return this.Mh()?en:this.Oo()?hn:this.ro()?t=>an(t,this.xo):null}a_(t,i,n){return void 0===i?(void 0===n&&(n=this.ba()),n.format(t)):i(t)}Wh(t,i){return this.a_(t,this.yo.priceFormatter,i)}s_(t,i){return this.a_(t,this.yo.percentageFormatter,i)}}class gn{constructor(t,i){this.po=[],this.o_=new Map,this.ho=0,this.__=0,this.u_=1e3,this.mo=null,this.c_=new D,this.yl=t,this.$i=i,this.d_=new nn(this);const n=i.W();this.f_=this.v_(\"left\",n.leftPriceScale),this.p_=this.v_(\"right\",n.rightPriceScale),this.f_.zo().l(this.m_.bind(this,this.f_),this),this.p_.zo().l(this.m_.bind(this,this.p_),this),this.b_(n)}b_(t){if(t.leftPriceScale&&this.f_.$h(t.leftPriceScale),t.rightPriceScale&&this.p_.$h(t.rightPriceScale),t.localization&&(this.f_.Ra(),this.p_.Ra()),t.overlayPriceScales){const i=Array.from(this.o_.values());for(const n of i){const i=b(n[0].Dt());i.$h(t.overlayPriceScales),t.localization&&i.Ra()}}}w_(t){switch(t){case\"left\":return this.f_;case\"right\":return this.p_}return this.o_.has(t)?m(this.o_.get(t))[0].Dt():null}S(){this.$t().g_().p(this),this.f_.zo().p(this),this.p_.zo().p(this),this.po.forEach((t=>{t.S&&t.S()})),this.c_.m()}M_(){return this.u_}x_(t){this.u_=t}$t(){return this.$i}Hi(){return this.__}At(){return this.ho}S_(t){this.__=t,this.k_()}Lo(t){this.ho=t,this.f_.Lo(t),this.p_.Lo(t),this.po.forEach((i=>{if(this.vr(i)){const n=i.Dt();null!==n&&n.Lo(t)}})),this.k_()}Ba(){return this.po}vr(t){const i=t.Dt();return null===i||this.f_!==i&&this.p_!==i}qo(t,i,n){const s=void 0!==n?n:this.C_().y_+1;this.T_(t,i,s)}Zo(t){const i=this.po.indexOf(t);p(-1!==i,\"removeDataSource: invalid data source\"),this.po.splice(i,1);const n=b(t.Dt()).Pa();if(this.o_.has(n)){const i=m(this.o_.get(n)),s=i.indexOf(t);-1!==s&&(i.splice(s,1),0===i.length&&this.o_.delete(n))}const s=t.Dt();s&&s.Ba().indexOf(t)>=0&&s.Zo(t),null!==s&&(s.Yo(),this.P_(s)),this.mo=null}mr(t){return t===this.f_?\"left\":t===this.p_?\"right\":\"overlay\"}R_(){return this.f_}D_(){return this.p_}V_(t,i){t.Go(i)}O_(t,i){t.Jo(i),this.k_()}B_(t){t.Qo()}A_(t,i){t.t_(i)}I_(t,i){t.i_(i),this.k_()}z_(t){t.n_()}k_(){this.po.forEach((t=>{t.Vn()}))}vn(){let t=null;return this.$i.W().rightPriceScale.visible&&0!==this.p_.Ba().length?t=this.p_:this.$i.W().leftPriceScale.visible&&0!==this.f_.Ba().length?t=this.f_:0!==this.po.length&&(t=this.po[0].Dt()),null===t&&(t=this.p_),t}pr(){let t=null;return this.$i.W().rightPriceScale.visible?t=this.p_:this.$i.W().leftPriceScale.visible&&(t=this.f_),t}P_(t){null!==t&&t.Vo()&&this.L_(t)}E_(t){const i=this.yl.Xs();t.Ro({Wn:!0}),null!==i&&t.h_(i),this.k_()}N_(){this.L_(this.f_),this.L_(this.p_)}F_(){this.P_(this.f_),this.P_(this.p_),this.po.forEach((t=>{this.vr(t)&&this.P_(t.Dt())})),this.k_(),this.$i.Uh()}Uo(){return null===this.mo&&(this.mo=vn(this.po)),this.mo}W_(){return this.c_}j_(){return this.d_}L_(t){const i=t.r_();if(i&&i.length>0&&!this.yl.Ni()){const i=this.yl.Xs();null!==i&&t.h_(i)}t.Vn()}C_(){const t=this.Uo();if(0===t.length)return{H_:0,y_:0};let i=0,n=0;for(let s=0;s<t.length;s++){const e=t[s].Xi();null!==e&&(e<i&&(i=e),e>n&&(n=e))}return{H_:i,y_:n}}T_(t,i,n){let s=this.w_(i);if(null===s&&(s=this.v_(i,this.$i.W().overlayPriceScales)),this.po.push(t),!_t(i)){const n=this.o_.get(i)||[];n.push(t),this.o_.set(i,n)}s.qo(t),t.Gi(s),t.Ki(n),this.P_(s),this.mo=null}m_(t,i,n){i.Cr!==n.Cr&&this.L_(t)}v_(t,i){const n=Object.assign({visible:!0,autoScale:!0},z(i)),s=new wn(t,n,this.$i.W().layout,this.$i.W().localization);return s.Lo(this.At()),s}}class Mn{constructor(t,i,n=50){this.Ke=0,this.Ge=1,this.Je=1,this.tr=new Map,this.Qe=new Map,this.U_=t,this.q_=i,this.ir=n}Y_(t){const i=t.time,n=this.q_.cacheKey(i),s=this.tr.get(n);if(void 0!==s)return s.Z_;if(this.Ke===this.ir){const t=this.Qe.get(this.Je);this.Qe.delete(this.Je),this.tr.delete(m(t)),this.Je++,this.Ke--}const e=this.U_(t);return this.tr.set(n,{Z_:e,rr:this.Ge}),this.Qe.set(this.Ge,n),this.Ke++,this.Ge++,e}}class xn{constructor(t,i){p(t<=i,\"right should be >= left\"),this.X_=t,this.K_=i}Os(){return this.X_}ui(){return this.K_}G_(){return this.K_-this.X_+1}Kr(t){return this.X_<=t&&t<=this.K_}Ch(t){return this.X_===t.Os()&&this.K_===t.ui()}}function Sn(t,i){return null===t||null===i?t===i:t.Ch(i)}class kn{constructor(){this.J_=new Map,this.tr=null,this.Q_=!1}tu(t){this.Q_=t,this.tr=null}iu(t,i){this.nu(i),this.tr=null;for(let n=i;n<t.length;++n){const i=t[n];let s=this.J_.get(i.timeWeight);void 0===s&&(s=[],this.J_.set(i.timeWeight,s)),s.push({index:n,time:i.time,weight:i.timeWeight,originalTime:i.originalTime})}}su(t,i){const n=Math.ceil(i/t);return null!==this.tr&&this.tr.eu===n||(this.tr={Ha:this.ru(n),eu:n}),this.tr.Ha}nu(t){if(0===t)return void this.J_.clear();const i=[];this.J_.forEach(((n,s)=>{t<=n[0].index?i.push(s):n.splice(Bt(n,t,(i=>i.index<t)),1/0)}));for(const t of i)this.J_.delete(t)}ru(t){let i=[];for(const n of Array.from(this.J_.keys()).sort(((t,i)=>i-t))){if(!this.J_.get(n))continue;const s=i;i=[];const e=s.length;let r=0;const h=m(this.J_.get(n)),l=h.length;let a=1/0,o=-1/0;for(let n=0;n<l;n++){const l=h[n],_=l.index;for(;r<e;){const t=s[r],n=t.index;if(!(n<_)){a=n;break}r++,i.push(t),o=n,a=1/0}if(a-_>=t&&_-o>=t)i.push(l),o=_;else if(this.Q_)return s}for(;r<e;r++)i.push(s[r])}return i}}class yn{constructor(t){this.hu=t}lu(){return null===this.hu?null:new xn(Math.floor(this.hu.Os()),Math.ceil(this.hu.ui()))}au(){return this.hu}static ou(){return new yn(null)}}function Cn(t,i){return t.weight>i.weight?t:i}class Tn{constructor(t,i,n,s){this.__=0,this._u=null,this.uu=[],this.Mo=null,this.wo=null,this.cu=new kn,this.du=new Map,this.fu=yn.ou(),this.vu=!0,this.pu=new D,this.mu=new D,this.bu=new D,this.wu=null,this.gu=null,this.Mu=[],this.cn=i,this.yo=n,this.xu=i.rightOffset,this.Su=i.barSpacing,this.$i=t,this.q_=s,this.ku(),this.cu.tu(i.uniformDistribution)}W(){return this.cn}yu(t){V(this.yo,t),this.Cu(),this.ku()}$h(t,i){var n;V(this.cn,t),this.cn.fixLeftEdge&&this.Tu(),this.cn.fixRightEdge&&this.Pu(),void 0!==t.barSpacing&&this.$i.Gn(t.barSpacing),void 0!==t.rightOffset&&this.$i.Jn(t.rightOffset),void 0!==t.minBarSpacing&&this.$i.Gn(null!==(n=t.barSpacing)&&void 0!==n?n:this.Su),this.Cu(),this.ku(),this.bu.m()}mn(t){var i,n;return null!==(n=null===(i=this.uu[t])||void 0===i?void 0:i.time)&&void 0!==n?n:null}Ui(t){var i;return null!==(i=this.uu[t])&&void 0!==i?i:null}Va(t,i){if(this.uu.length<1)return null;if(this.q_.key(t)>this.q_.key(this.uu[this.uu.length-1].time))return i?this.uu.length-1:null;const n=Bt(this.uu,this.q_.key(t),((t,i)=>this.q_.key(t.time)<i));return this.q_.key(t)<this.q_.key(this.uu[n].time)?i?n:null:n}Ni(){return 0===this.__||0===this.uu.length||null===this._u}Da(){return this.uu.length>0}Xs(){return this.Ru(),this.fu.lu()}Du(){return this.Ru(),this.fu.au()}Vu(){const t=this.Xs();if(null===t)return null;const i={from:t.Os(),to:t.ui()};return this.Ou(i)}Ou(t){const i=Math.round(t.from),n=Math.round(t.to),s=b(this.Bu()),e=b(this.Au());return{from:b(this.Ui(Math.max(s,i))),to:b(this.Ui(Math.min(e,n)))}}Iu(t){return{from:b(this.Va(t.from,!0)),to:b(this.Va(t.to,!0))}}Hi(){return this.__}S_(t){if(!isFinite(t)||t<=0)return;if(this.__===t)return;const i=this.Du(),n=this.__;if(this.__=t,this.vu=!0,this.cn.lockVisibleTimeRangeOnResize&&0!==n){const i=this.Su*t/n;this.Su=i}if(this.cn.fixLeftEdge&&null!==i&&i.Os()<=0){const i=n-t;this.xu-=Math.round(i/this.Su)+1,this.vu=!0}this.zu(),this.Lu()}It(t){if(this.Ni()||!B(t))return 0;const i=this.Eu()+this.xu-t;return this.__-(i+.5)*this.Su-1}Qs(t,i){const n=this.Eu(),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].ot,e=n+this.xu-s,r=this.__-(e+.5)*this.Su-1;t[i].nt=r}}Nu(t){return Math.ceil(this.Fu(t))}Jn(t){this.vu=!0,this.xu=t,this.Lu(),this.$i.Wu(),this.$i.Uh()}le(){return this.Su}Gn(t){this.ju(t),this.Lu(),this.$i.Wu(),this.$i.Uh()}Hu(){return this.xu}Ha(){if(this.Ni())return null;if(null!==this.gu)return this.gu;const t=this.Su,i=5*(this.$i.W().layout.fontSize+4)/8*(this.cn.tickMarkMaxCharacterLength||8),n=Math.round(i/t),s=b(this.Xs()),e=Math.max(s.Os(),s.Os()-n),r=Math.max(s.ui(),s.ui()-n),h=this.cu.su(t,i),l=this.Bu()+n,a=this.Au()-n,o=this.$u(),_=this.cn.fixLeftEdge||o,u=this.cn.fixRightEdge||o;let c=0;for(const t of h){if(!(e<=t.index&&t.index<=r))continue;let n;c<this.Mu.length?(n=this.Mu[c],n.coord=this.It(t.index),n.label=this.Uu(t),n.weight=t.weight):(n={needAlignCoordinate:!1,coord:this.It(t.index),label:this.Uu(t),weight:t.weight},this.Mu.push(n)),this.Su>i/2&&!o?n.needAlignCoordinate=!1:n.needAlignCoordinate=_&&t.index<=l||u&&t.index>=a,c++}return this.Mu.length=c,this.gu=this.Mu,this.Mu}qu(){this.vu=!0,this.Gn(this.cn.barSpacing),this.Jn(this.cn.rightOffset)}Yu(t){this.vu=!0,this._u=t,this.Lu(),this.Tu()}Zu(t,i){const n=this.Fu(t),s=this.le(),e=s+i*(s/10);this.Gn(e),this.cn.rightBarStaysOnScroll||this.Jn(this.Hu()+(n-this.Fu(t)))}Go(t){this.Mo&&this.n_(),null===this.wo&&null===this.wu&&(this.Ni()||(this.wo=t,this.Xu()))}Jo(t){if(null===this.wu)return;const i=kt(this.__-t,0,this.__),n=kt(this.__-b(this.wo),0,this.__);0!==i&&0!==n&&this.Gn(this.wu.le*i/n)}Qo(){null!==this.wo&&(this.wo=null,this.Ku())}t_(t){null===this.Mo&&null===this.wu&&(this.Ni()||(this.Mo=t,this.Xu()))}i_(t){if(null===this.Mo)return;const i=(this.Mo-t)/this.le();this.xu=b(this.wu).Hu+i,this.vu=!0,this.Lu()}n_(){null!==this.Mo&&(this.Mo=null,this.Ku())}Gu(){this.Ju(this.cn.rightOffset)}Ju(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.xu,s=performance.now();this.$i.Zn({Qu:t=>(t-s)/i>=1,tc:e=>{const r=(e-s)/i;return r>=1?t:n+(t-n)*r}})}bt(t,i){this.vu=!0,this.uu=t,this.cu.iu(t,i),this.Lu()}nc(){return this.pu}sc(){return this.mu}ec(){return this.bu}Eu(){return this._u||0}rc(t){const i=t.G_();this.ju(this.__/i),this.xu=t.ui()-this.Eu(),this.Lu(),this.vu=!0,this.$i.Wu(),this.$i.Uh()}hc(){const t=this.Bu(),i=this.Au();null!==t&&null!==i&&this.rc(new xn(t,i+this.cn.rightOffset))}lc(t){const i=new xn(t.from,t.to);this.rc(i)}qi(t){return void 0!==this.yo.timeFormatter?this.yo.timeFormatter(t.originalTime):this.q_.formatHorzItem(t.time)}$u(){const{handleScroll:t,handleScale:i}=this.$i.W();return!(t.horzTouchDrag||t.mouseWheel||t.pressedMouseMove||t.vertTouchDrag||i.axisDoubleClickReset.time||i.axisPressedMouseMove.time||i.mouseWheel||i.pinch)}Bu(){return 0===this.uu.length?null:0}Au(){return 0===this.uu.length?null:this.uu.length-1}ac(t){return(this.__-1-t)/this.Su}Fu(t){const i=this.ac(t),n=this.Eu()+this.xu-i;return Math.round(1e6*n)/1e6}ju(t){const i=this.Su;this.Su=t,this.zu(),i!==this.Su&&(this.vu=!0,this.oc())}Ru(){if(!this.vu)return;if(this.vu=!1,this.Ni())return void this._c(yn.ou());const t=this.Eu(),i=this.__/this.Su,n=this.xu+t,s=new xn(n-i+1,n);this._c(new yn(s))}zu(){const t=this.uc();if(this.Su<t&&(this.Su=t,this.vu=!0),0!==this.__){const t=.5*this.__;this.Su>t&&(this.Su=t,this.vu=!0)}}uc(){return this.cn.fixLeftEdge&&this.cn.fixRightEdge&&0!==this.uu.length?this.__/this.uu.length:this.cn.minBarSpacing}Lu(){const t=this.cc();null!==t&&this.xu<t&&(this.xu=t,this.vu=!0);const i=this.dc();this.xu>i&&(this.xu=i,this.vu=!0)}cc(){const t=this.Bu(),i=this._u;if(null===t||null===i)return null;return t-i-1+(this.cn.fixLeftEdge?this.__/this.Su:Math.min(2,this.uu.length))}dc(){return this.cn.fixRightEdge?0:this.__/this.Su-Math.min(2,this.uu.length)}Xu(){this.wu={le:this.le(),Hu:this.Hu()}}Ku(){this.wu=null}Uu(t){let i=this.du.get(t.weight);return void 0===i&&(i=new Mn((t=>this.fc(t)),this.q_),this.du.set(t.weight,i)),i.Y_(t)}fc(t){return this.q_.formatTickmark(t,this.yo)}_c(t){const i=this.fu;this.fu=t,Sn(i.lu(),this.fu.lu())||this.pu.m(),Sn(i.au(),this.fu.au())||this.mu.m(),this.oc()}oc(){this.gu=null}Cu(){this.oc(),this.du.clear()}ku(){this.q_.updateFormatter(this.yo)}Tu(){if(!this.cn.fixLeftEdge)return;const t=this.Bu();if(null===t)return;const i=this.Xs();if(null===i)return;const n=i.Os()-t;if(n<0){const t=this.xu-n-1;this.Jn(t)}this.zu()}Pu(){this.Lu(),this.zu()}}class Pn{X(t,i,n){t.useMediaCoordinateSpace((t=>this.K(t,i,n)))}gl(t,i,n){t.useMediaCoordinateSpace((t=>this.vc(t,i,n)))}vc(t,i,n){}}class Rn extends Pn{constructor(t){super(),this.mc=new Map,this.zt=t}K(t){}vc(t){if(!this.zt.yt)return;const{context:i,mediaSize:n}=t;let s=0;for(const t of this.zt.bc){if(0===t.Kt.length)continue;i.font=t.R;const e=this.wc(i,t.Kt);e>n.width?t.Zu=n.width/e:t.Zu=1,s+=t.gc*t.Zu}let e=0;switch(this.zt.Mc){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)}i.fillStyle=this.zt.V;for(const t of this.zt.bc){i.save();let s=0;switch(this.zt.xc){case\"left\":i.textAlign=\"left\",s=t.gc/2;break;case\"center\":i.textAlign=\"center\",s=n.width/2;break;case\"right\":i.textAlign=\"right\",s=n.width-1-t.gc/2}i.translate(s,e),i.textBaseline=\"top\",i.font=t.R,i.scale(t.Zu,t.Zu),i.fillText(t.Kt,0,t.Sc),i.restore(),e+=t.gc*t.Zu}}wc(t,i){const n=this.kc(t.font);let s=n.get(i);return void 0===s&&(s=t.measureText(i).width,n.set(i,s)),s}kc(t){let i=this.mc.get(t);return void 0===i&&(i=new Map,this.mc.set(t,i)),i}}class Dn{constructor(t){this.ft=!0,this.Ft={yt:!1,V:\"\",bc:[],Mc:\"center\",xc:\"center\"},this.Wt=new Rn(this.Ft),this.jt=t}bt(){this.ft=!0}gt(){return this.ft&&(this.Mt(),this.ft=!1),this.Wt}Mt(){const t=this.jt.W(),i=this.Ft;i.yt=t.visible,i.yt&&(i.V=t.color,i.xc=t.horzAlign,i.Mc=t.vertAlign,i.bc=[{Kt:t.text,R:F(t.fontSize,t.fontFamily,t.fontStyle),gc:1.2*t.fontSize,Sc:0,Zu:0}])}}class Vn extends lt{constructor(t,i){super(),this.cn=i,this.wn=new Dn(this)}Rn(){return[]}Pn(){return[this.wn]}W(){return this.cn}Vn(){this.wn.bt()}}var On,Bn,An,In,zn;!function(t){t[t.OnTouchEnd=0]=\"OnTouchEnd\",t[t.OnNextTap=1]=\"OnNextTap\"}(On||(On={}));class Ln{constructor(t,i,n){this.yc=[],this.Cc=[],this.__=0,this.Tc=null,this.Pc=new D,this.Rc=new D,this.Dc=null,this.Vc=t,this.cn=i,this.q_=n,this.Oc=new W(this),this.yl=new Tn(this,i.timeScale,this.cn.localization,n),this.vt=new ot(this,i.crosshair),this.Bc=new Ji(i.crosshair),this.Ac=new Vn(this,i.watermark),this.Ic(),this.yc[0].x_(2e3),this.zc=this.Lc(0),this.Ec=this.Lc(1)}Kl(){this.Nc(ut.es())}Uh(){this.Nc(ut.ss())}oa(){this.Nc(new ut(1))}Gl(t){const i=this.Fc(t);this.Nc(i)}Wc(){return this.Tc}jc(t){const i=this.Tc;this.Tc=t,null!==i&&this.Gl(i.Hc),null!==t&&this.Gl(t.Hc)}W(){return this.cn}$h(t){V(this.cn,t),this.yc.forEach((i=>i.b_(t))),void 0!==t.timeScale&&this.yl.$h(t.timeScale),void 0!==t.localization&&this.yl.yu(t.localization),(t.leftPriceScale||t.rightPriceScale)&&this.Pc.m(),this.zc=this.Lc(0),this.Ec=this.Lc(1),this.Kl()}$c(t,i){if(\"left\"===t)return void this.$h({leftPriceScale:i});if(\"right\"===t)return void this.$h({rightPriceScale:i});const n=this.Uc(t);null!==n&&(n.Dt.$h(i),this.Pc.m())}Uc(t){for(const i of this.yc){const n=i.w_(t);if(null!==n)return{Ht:i,Dt:n}}return null}St(){return this.yl}qc(){return this.yc}Yc(){return this.Ac}Zc(){return this.vt}Xc(){return this.Rc}Kc(t,i){t.Lo(i),this.Wu()}S_(t){this.__=t,this.yl.S_(this.__),this.yc.forEach((i=>i.S_(t))),this.Wu()}Ic(t){const i=new gn(this.yl,this);void 0!==t?this.yc.splice(t,0,i):this.yc.push(i);const n=void 0===t?this.yc.length-1:t,s=ut.es();return s.Nn(n,{Fn:0,Wn:!0}),this.Nc(s),i}V_(t,i,n){t.V_(i,n)}O_(t,i,n){t.O_(i,n),this.Jl(),this.Nc(this.Gc(t,2))}B_(t,i){t.B_(i),this.Nc(this.Gc(t,2))}A_(t,i,n){i.Vo()||t.A_(i,n)}I_(t,i,n){i.Vo()||(t.I_(i,n),this.Jl(),this.Nc(this.Gc(t,2)))}z_(t,i){i.Vo()||(t.z_(i),this.Nc(this.Gc(t,2)))}E_(t,i){t.E_(i),this.Nc(this.Gc(t,2))}Jc(t){this.yl.Go(t)}Qc(t,i){const n=this.St();if(n.Ni()||0===i)return;const s=n.Hi();t=Math.max(1,Math.min(t,s)),n.Zu(t,i),this.Wu()}td(t){this.nd(0),this.sd(t),this.ed()}rd(t){this.yl.Jo(t),this.Wu()}hd(){this.yl.Qo(),this.Uh()}nd(t){this.yl.t_(t)}sd(t){this.yl.i_(t),this.Wu()}ed(){this.yl.n_(),this.Uh()}wt(){return this.Cc}ld(t,i,n,s,e){this.vt.gn(t,i);let r=NaN,h=this.yl.Nu(t);const l=this.yl.Xs();null!==l&&(h=Math.min(Math.max(l.Os(),h),l.ui()));const a=s.vn(),o=a.Ct();null!==o&&(r=a.pn(i,o)),r=this.Bc.Oa(r,h,s),this.vt.kn(h,r,s),this.oa(),e||this.Rc.m(this.vt.xt(),{x:t,y:i},n)}ad(t,i,n){const s=n.vn(),e=s.Ct(),r=s.Rt(t,b(e)),h=this.yl.Va(i,!0),l=this.yl.It(b(h));this.ld(l,r,null,n,!0)}od(t){this.Zc().Cn(),this.oa(),t||this.Rc.m(null,null,null)}Jl(){const t=this.vt.Ht();if(null!==t){const i=this.vt.xn(),n=this.vt.Sn();this.ld(i,n,null,t)}this.vt.Vn()}_d(t,i,n){const s=this.yl.mn(0);void 0!==i&&void 0!==n&&this.yl.bt(i,n);const e=this.yl.mn(0),r=this.yl.Eu(),h=this.yl.Xs();if(null!==h&&null!==s&&null!==e){const i=h.Kr(r),l=this.q_.key(s)>this.q_.key(e),a=null!==t&&t>r&&!l,o=this.yl.W().allowShiftVisibleRangeOnWhitespaceReplacement,_=i&&(!(void 0===n)||o)&&this.yl.W().shiftVisibleRangeOnNewBar;if(a&&!_){const i=t-r;this.yl.Jn(this.yl.Hu()-i)}}this.yl.Yu(t)}ia(t){null!==t&&t.F_()}dr(t){const i=this.yc.find((i=>i.Uo().includes(t)));return void 0===i?null:i}Wu(){this.Ac.Vn(),this.yc.forEach((t=>t.F_())),this.Jl()}S(){this.yc.forEach((t=>t.S())),this.yc.length=0,this.cn.localization.priceFormatter=void 0,this.cn.localization.percentageFormatter=void 0,this.cn.localization.timeFormatter=void 0}ud(){return this.Oc}br(){return this.Oc.W()}g_(){return this.Pc}dd(t,i,n){const s=this.yc[0],e=this.fd(i,t,s,n);return this.Cc.push(e),1===this.Cc.length?this.Kl():this.Uh(),e}vd(t){const i=this.dr(t),n=this.Cc.indexOf(t);p(-1!==n,\"Series not found\"),this.Cc.splice(n,1),b(i).Zo(t),t.S&&t.S()}Xl(t,i){const n=b(this.dr(t));n.Zo(t);const s=this.Uc(i);if(null===s){const s=t.Xi();n.qo(t,i,s)}else{const e=s.Ht===n?t.Xi():void 0;s.Ht.qo(t,i,e)}}hc(){const t=ut.ss();t.$n(),this.Nc(t)}pd(t){const i=ut.ss();i.Yn(t),this.Nc(i)}Kn(){const t=ut.ss();t.Kn(),this.Nc(t)}Gn(t){const i=ut.ss();i.Gn(t),this.Nc(i)}Jn(t){const i=ut.ss();i.Jn(t),this.Nc(i)}Zn(t){const i=ut.ss();i.Zn(t),this.Nc(i)}Un(){const t=ut.ss();t.Un(),this.Nc(t)}md(){return this.cn.rightPriceScale.visible?\"right\":\"left\"}bd(){return this.Ec}q(){return this.zc}Bt(t){const i=this.Ec,n=this.zc;if(i===n)return i;if(t=Math.max(0,Math.min(100,Math.round(100*t))),null===this.Dc||this.Dc.Ps!==n||this.Dc.Rs!==i)this.Dc={Ps:n,Rs:i,wd:new Map};else{const i=this.Dc.wd.get(t);if(void 0!==i)return i}const s=function(t,i,n){const[s,e,r,h]=T(t),[l,a,o,_]=T(i),u=[M(s+n*(l-s)),M(e+n*(a-e)),M(r+n*(o-r)),x(h+n*(_-h))];return`rgba(${u[0]}, ${u[1]}, ${u[2]}, ${u[3]})`}(n,i,t/100);return this.Dc.wd.set(t,s),s}Gc(t,i){const n=new ut(i);if(null!==t){const s=this.yc.indexOf(t);n.Nn(s,{Fn:i})}return n}Fc(t,i){return void 0===i&&(i=2),this.Gc(this.dr(t),i)}Nc(t){this.Vc&&this.Vc(t),this.yc.forEach((t=>t.j_().qh().bt()))}fd(t,i,n,s){const e=new Gi(this,t,i,n,s),r=void 0!==t.priceScaleId?t.priceScaleId:this.md();return n.qo(e,r),_t(r)||e.$h(t),e}Lc(t){const i=this.cn.layout;return\"gradient\"===i.background.type?0===t?i.background.topColor:i.background.bottomColor:i.background.color}}function En(t){return!O(t)&&!A(t)}function Nn(t){return O(t)}!function(t){t[t.Disabled=0]=\"Disabled\",t[t.Continuous=1]=\"Continuous\",t[t.OnDataUpdate=2]=\"OnDataUpdate\"}(Bn||(Bn={})),function(t){t[t.LastBar=0]=\"LastBar\",t[t.LastVisible=1]=\"LastVisible\"}(An||(An={})),function(t){t.Solid=\"solid\",t.VerticalGradient=\"gradient\"}(In||(In={})),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\"}(zn||(zn={}));const Fn=t=>t.getUTCFullYear();function Wn(t,i,n){return i.replace(/yyyy/g,(t=>dt(Fn(t),4))(t)).replace(/yy/g,(t=>dt(Fn(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=>dt((t=>t.getUTCMonth()+1)(t),2))(t)).replace(/dd/g,(t=>dt((t=>t.getUTCDate())(t),2))(t))}class jn{constructor(t=\"yyyy-MM-dd\",i=\"default\"){this.gd=t,this.Md=i}Y_(t){return Wn(t,this.gd,this.Md)}}class Hn{constructor(t){this.xd=t||\"%h:%m:%s\"}Y_(t){return this.xd.replace(\"%h\",dt(t.getUTCHours(),2)).replace(\"%m\",dt(t.getUTCMinutes(),2)).replace(\"%s\",dt(t.getUTCSeconds(),2))}}const $n={Sd:\"yyyy-MM-dd\",kd:\"%h:%m:%s\",yd:\" \",Cd:\"default\"};class Un{constructor(t={}){const i=Object.assign(Object.assign({},$n),t);this.Td=new jn(i.Sd,i.Cd),this.Pd=new Hn(i.kd),this.Rd=i.yd}Y_(t){return`${this.Td.Y_(t)}${this.Rd}${this.Pd.Y_(t)}`}}function qn(t){return 60*t*60*1e3}function Yn(t){return 60*t*1e3}const Zn=[{Dd:(Xn=1,1e3*Xn),Vd:10},{Dd:Yn(1),Vd:20},{Dd:Yn(5),Vd:21},{Dd:Yn(30),Vd:22},{Dd:qn(1),Vd:30},{Dd:qn(3),Vd:31},{Dd:qn(6),Vd:32},{Dd:qn(12),Vd:33}];var Xn;function Kn(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=Zn.length-1;n>=0;--n)if(Math.floor(i.getTime()/Zn[n].Dd)!==Math.floor(t.getTime()/Zn[n].Dd))return Zn[n].Vd;return 0}function Gn(t){let i=t;if(A(t)&&(i=Qn(t)),!En(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{Od:Math.round(n.getTime()/1e3),Bd:i}}function Jn(t){if(!Nn(t))throw new Error(\"time must be of type isUTCTimestamp\");return{Od:t}}function Qn(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 ts(t){A(t.time)&&(t.time=Qn(t.time))}class is{options(){return this.cn}setOptions(t){this.cn=t,this.updateFormatter(t.localization)}preprocessData(t){Array.isArray(t)?function(t){t.forEach(ts)}(t):ts(t)}createConverterToInternalObj(t){return b(function(t){return 0===t.length?null:En(t[0].time)||A(t[0].time)?Gn:Jn}(t))}key(t){return\"object\"==typeof t&&\"Od\"in t?t.Od:this.key(this.convertHorzItemToInternal(t))}cacheKey(t){const i=t;return void 0===i.Bd?new Date(1e3*i.Od).getTime():new Date(Date.UTC(i.Bd.year,i.Bd.month-1,i.Bd.day)).getTime()}convertHorzItemToInternal(t){return Nn(i=t)?Jn(i):En(i)?Gn(i):Gn(Qn(i));var i}updateFormatter(t){if(!this.cn)return;const i=t.dateFormat;this.cn.timeScale.timeVisible?this.Ad=new Un({Sd:i,kd:this.cn.timeScale.secondsVisible?\"%h:%m:%s\":\"%h:%m\",yd:\" \",Cd:t.locale}):this.Ad=new jn(i,t.locale)}formatHorzItem(t){const i=t;return this.Ad.Y_(new Date(1e3*i.Od))}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.cn.timeScale.timeVisible,this.cn.timeScale.secondsVisible),s=this.cn.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.Bd?new Date(1e3*t.Od):new Date(Date.UTC(t.Bd.year,t.Bd.month-1,t.Bd.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(Cn,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.Od,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.Od);null!==s&&(i.timeWeight=Kn(h,s)),e+=i.time.Od-(n||i.time.Od),n=i.time.Od,s=h}if(0===i&&t.length>1){const i=Math.ceil(e/(t.length-1)),n=new Date(1e3*(t[0].time.Od-i));t[0].timeWeight=Kn(new Date(1e3*t[0].time.Od),n)}}(t,i)}static Id(t){return V({localization:{dateFormat:\"dd MMM 'yy\"}},null!=t?t:{})}}const ns=\"undefined\"!=typeof window;function ss(){return!!ns&&window.navigator.userAgent.toLowerCase().indexOf(\"firefox\")>-1}function es(){return!!ns&&/iPhone|iPad|iPod/.test(window.navigator.platform)}function rs(t){return t+t%2}function hs(t,i){return t.zd-i.zd}function ls(t,i,n){const s=(t.zd-i.zd)/(t.ot-i.ot);return Math.sign(s)*Math.min(Math.abs(s),n)}class as{constructor(t,i,n,s){this.Ld=null,this.Ed=null,this.Nd=null,this.Fd=null,this.Wd=null,this.jd=0,this.Hd=0,this.$d=t,this.Ud=i,this.qd=n,this.rs=s}Yd(t,i){if(null!==this.Ld){if(this.Ld.ot===i)return void(this.Ld.zd=t);if(Math.abs(this.Ld.zd-t)<this.rs)return}this.Fd=this.Nd,this.Nd=this.Ed,this.Ed=this.Ld,this.Ld={ot:i,zd:t}}Vr(t,i){if(null===this.Ld||null===this.Ed)return;if(i-this.Ld.ot>50)return;let n=0;const s=ls(this.Ld,this.Ed,this.Ud),e=hs(this.Ld,this.Ed),r=[s],h=[e];if(n+=e,null!==this.Nd){const t=ls(this.Ed,this.Nd,this.Ud);if(Math.sign(t)===Math.sign(s)){const i=hs(this.Ed,this.Nd);if(r.push(t),h.push(i),n+=i,null!==this.Fd){const t=ls(this.Nd,this.Fd,this.Ud);if(Math.sign(t)===Math.sign(s)){const i=hs(this.Nd,this.Fd);r.push(t),h.push(i),n+=i}}}}let l=0;for(let t=0;t<r.length;++t)l+=h[t]/n*r[t];Math.abs(l)<this.$d||(this.Wd={zd:t,ot:i},this.Hd=l,this.jd=function(t,i){const n=Math.log(i);return Math.log(1*n/-t)/n}(Math.abs(l),this.qd))}tc(t){const i=b(this.Wd),n=t-i.ot;return i.zd+this.Hd*(Math.pow(this.qd,n)-1)/Math.log(this.qd)}Qu(t){return null===this.Wd||this.Zd(t)===this.jd}Zd(t){const i=t-b(this.Wd).ot;return Math.min(i,this.jd)}}class os{constructor(t,i){this.Xd=void 0,this.Kd=void 0,this.Gd=void 0,this.en=!1,this.Jd=t,this.Qd=i,this.tf()}bt(){this.tf()}if(){this.Xd&&this.Jd.removeChild(this.Xd),this.Kd&&this.Jd.removeChild(this.Kd),this.Xd=void 0,this.Kd=void 0}nf(){return this.en!==this.sf()||this.Gd!==this.ef()}ef(){return P(T(this.Qd.W().layout.textColor))>160?\"dark\":\"light\"}sf(){return this.Qd.W().layout.attributionLogo}rf(){const t=new URL(location.href);return t.hostname?\"&utm_source=\"+t.hostname+t.pathname:\"\"}tf(){this.nf()&&(this.if(),this.en=this.sf(),this.en&&(this.Gd=this.ef(),this.Kd=document.createElement(\"style\"),this.Kd.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.Xd=document.createElement(\"a\"),this.Xd.href=`https://www.tradingview.com/?utm_medium=lwc-link&utm_campaign=lwc-chart${this.rf()}`,this.Xd.title=\"Charting by TradingView\",this.Xd.id=\"tv-attr-logo\",this.Xd.target=\"_blank\",this.Xd.innerHTML='<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 35 19\" 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.Xd.toggleAttribute(\"data-dark\",\"dark\"===this.Gd),this.Jd.appendChild(this.Kd),this.Jd.appendChild(this.Xd)))}}function _s(t,n){const s=b(t.ownerDocument).createElement(\"canvas\");t.appendChild(s);const e=i(s,{type:\"device-pixel-content-box\",options:{allowResizeObserver:!1},transform:(t,i)=>({width:Math.max(t.width,i.width),height:Math.max(t.height,i.height)})});return e.resizeCanvasElement(n),e}function us(t){var i;t.width=1,t.height=1,null===(i=t.getContext(\"2d\"))||void 0===i||i.clearRect(0,0,1,1)}function cs(t,i,n,s){t.gl&&t.gl(i,n,s)}function ds(t,i,n,s){t.X(i,n,s)}function fs(t,i,n,s){const e=t(n,s);for(const t of e){const n=t.gt();null!==n&&i(n)}}function vs(t){ns&&void 0!==window.chrome&&t.addEventListener(\"mousedown\",(t=>{if(1===t.button)return t.preventDefault(),!1}))}class ps{constructor(t,i,n){this.hf=0,this.lf=null,this.af={nt:Number.NEGATIVE_INFINITY,st:Number.POSITIVE_INFINITY},this._f=0,this.uf=null,this.cf={nt:Number.NEGATIVE_INFINITY,st:Number.POSITIVE_INFINITY},this.df=null,this.ff=!1,this.vf=null,this.pf=null,this.mf=!1,this.bf=!1,this.wf=!1,this.gf=null,this.Mf=null,this.xf=null,this.Sf=null,this.kf=null,this.yf=null,this.Cf=null,this.Tf=0,this.Pf=!1,this.Rf=!1,this.Df=!1,this.Vf=0,this.Of=null,this.Bf=!es(),this.Af=t=>{this.If(t)},this.zf=t=>{if(this.Lf(t)){const i=this.Ef(t);if(++this._f,this.uf&&this._f>1){const{Nf:n}=this.Ff(ws(t),this.cf);n<30&&!this.wf&&this.Wf(i,this.Hf.jf),this.$f()}}else{const i=this.Ef(t);if(++this.hf,this.lf&&this.hf>1){const{Nf:n}=this.Ff(ws(t),this.af);n<5&&!this.bf&&this.Uf(i,this.Hf.qf),this.Yf()}}},this.Zf=t,this.Hf=i,this.cn=n,this.Xf()}S(){null!==this.gf&&(this.gf(),this.gf=null),null!==this.Mf&&(this.Mf(),this.Mf=null),null!==this.Sf&&(this.Sf(),this.Sf=null),null!==this.kf&&(this.kf(),this.kf=null),null!==this.yf&&(this.yf(),this.yf=null),null!==this.xf&&(this.xf(),this.xf=null),this.Kf(),this.Yf()}Gf(t){this.Sf&&this.Sf();const i=this.Jf.bind(this);if(this.Sf=()=>{this.Zf.removeEventListener(\"mousemove\",i)},this.Zf.addEventListener(\"mousemove\",i),this.Lf(t))return;const n=this.Ef(t);this.Uf(n,this.Hf.Qf),this.Bf=!0}Yf(){null!==this.lf&&clearTimeout(this.lf),this.hf=0,this.lf=null,this.af={nt:Number.NEGATIVE_INFINITY,st:Number.POSITIVE_INFINITY}}$f(){null!==this.uf&&clearTimeout(this.uf),this._f=0,this.uf=null,this.cf={nt:Number.NEGATIVE_INFINITY,st:Number.POSITIVE_INFINITY}}Jf(t){if(this.Df||null!==this.pf)return;if(this.Lf(t))return;const i=this.Ef(t);this.Uf(i,this.Hf.tv),this.Bf=!0}iv(t){const i=Ms(t.changedTouches,b(this.Of));if(null===i)return;if(this.Vf=gs(t),null!==this.Cf)return;if(this.Rf)return;this.Pf=!0;const n=this.Ff(ws(i),b(this.pf)),{nv:s,sv:e,Nf:r}=n;if(this.mf||!(r<5)){if(!this.mf){const t=.5*s,i=e>=t&&!this.cn.ev(),n=t>e&&!this.cn.rv();i||n||(this.Rf=!0),this.mf=!0,this.wf=!0,this.Kf(),this.$f()}if(!this.Rf){const n=this.Ef(t,i);this.Wf(n,this.Hf.hv),bs(t)}}}lv(t){if(0!==t.button)return;const i=this.Ff(ws(t),b(this.vf)),{Nf:n}=i;if(n>=5&&(this.bf=!0,this.Yf()),this.bf){const i=this.Ef(t);this.Uf(i,this.Hf.av)}}Ff(t,i){const n=Math.abs(i.nt-t.nt),s=Math.abs(i.st-t.st);return{nv:n,sv:s,Nf:n+s}}ov(t){let i=Ms(t.changedTouches,b(this.Of));if(null===i&&0===t.touches.length&&(i=t.changedTouches[0]),null===i)return;this.Of=null,this.Vf=gs(t),this.Kf(),this.pf=null,this.yf&&(this.yf(),this.yf=null);const n=this.Ef(t,i);if(this.Wf(n,this.Hf._v),++this._f,this.uf&&this._f>1){const{Nf:t}=this.Ff(ws(i),this.cf);t<30&&!this.wf&&this.Wf(n,this.Hf.jf),this.$f()}else this.wf||(this.Wf(n,this.Hf.uv),this.Hf.uv&&bs(t));0===this._f&&bs(t),0===t.touches.length&&this.ff&&(this.ff=!1,bs(t))}If(t){if(0!==t.button)return;const i=this.Ef(t);if(this.vf=null,this.Df=!1,this.kf&&(this.kf(),this.kf=null),ss()){this.Zf.ownerDocument.documentElement.removeEventListener(\"mouseleave\",this.Af)}if(!this.Lf(t))if(this.Uf(i,this.Hf.cv),++this.hf,this.lf&&this.hf>1){const{Nf:n}=this.Ff(ws(t),this.af);n<5&&!this.bf&&this.Uf(i,this.Hf.qf),this.Yf()}else this.bf||this.Uf(i,this.Hf.dv)}Kf(){null!==this.df&&(clearTimeout(this.df),this.df=null)}fv(t){if(null!==this.Of)return;const i=t.changedTouches[0];this.Of=i.identifier,this.Vf=gs(t);const n=this.Zf.ownerDocument.documentElement;this.wf=!1,this.mf=!1,this.Rf=!1,this.pf=ws(i),this.yf&&(this.yf(),this.yf=null);{const i=this.iv.bind(this),s=this.ov.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.Kf(),this.df=setTimeout(this.vv.bind(this,t),240)}const s=this.Ef(t,i);this.Wf(s,this.Hf.pv),this.uf||(this._f=0,this.uf=setTimeout(this.$f.bind(this),500),this.cf=ws(i))}mv(t){if(0!==t.button)return;const i=this.Zf.ownerDocument.documentElement;ss()&&i.addEventListener(\"mouseleave\",this.Af),this.bf=!1,this.vf=ws(t),this.kf&&(this.kf(),this.kf=null);{const t=this.lv.bind(this),n=this.If.bind(this);this.kf=()=>{i.removeEventListener(\"mousemove\",t),i.removeEventListener(\"mouseup\",n)},i.addEventListener(\"mousemove\",t),i.addEventListener(\"mouseup\",n)}if(this.Df=!0,this.Lf(t))return;const n=this.Ef(t);this.Uf(n,this.Hf.bv),this.lf||(this.hf=0,this.lf=setTimeout(this.Yf.bind(this),500),this.af=ws(t))}Xf(){this.Zf.addEventListener(\"mouseenter\",this.Gf.bind(this)),this.Zf.addEventListener(\"touchcancel\",this.Kf.bind(this));{const t=this.Zf.ownerDocument,i=t=>{this.Hf.wv&&(t.composed&&this.Zf.contains(t.composedPath()[0])||t.target&&this.Zf.contains(t.target)||this.Hf.wv())};this.Mf=()=>{t.removeEventListener(\"touchstart\",i)},this.gf=()=>{t.removeEventListener(\"mousedown\",i)},t.addEventListener(\"mousedown\",i),t.addEventListener(\"touchstart\",i,{passive:!0})}es()&&(this.xf=()=>{this.Zf.removeEventListener(\"dblclick\",this.zf)},this.Zf.addEventListener(\"dblclick\",this.zf)),this.Zf.addEventListener(\"mouseleave\",this.gv.bind(this)),this.Zf.addEventListener(\"touchstart\",this.fv.bind(this),{passive:!0}),vs(this.Zf),this.Zf.addEventListener(\"mousedown\",this.mv.bind(this)),this.Mv(),this.Zf.addEventListener(\"touchmove\",(()=>{}),{passive:!1})}Mv(){void 0===this.Hf.xv&&void 0===this.Hf.Sv&&void 0===this.Hf.kv||(this.Zf.addEventListener(\"touchstart\",(t=>this.yv(t.touches)),{passive:!0}),this.Zf.addEventListener(\"touchmove\",(t=>{if(2===t.touches.length&&null!==this.Cf&&void 0!==this.Hf.Sv){const i=ms(t.touches[0],t.touches[1])/this.Tf;this.Hf.Sv(this.Cf,i),bs(t)}}),{passive:!1}),this.Zf.addEventListener(\"touchend\",(t=>{this.yv(t.touches)})))}yv(t){1===t.length&&(this.Pf=!1),2!==t.length||this.Pf||this.ff?this.Cv():this.Tv(t)}Tv(t){const i=this.Zf.getBoundingClientRect()||{left:0,top:0};this.Cf={nt:(t[0].clientX-i.left+(t[1].clientX-i.left))/2,st:(t[0].clientY-i.top+(t[1].clientY-i.top))/2},this.Tf=ms(t[0],t[1]),void 0!==this.Hf.xv&&this.Hf.xv(),this.Kf()}Cv(){null!==this.Cf&&(this.Cf=null,void 0!==this.Hf.kv&&this.Hf.kv())}gv(t){if(this.Sf&&this.Sf(),this.Lf(t))return;if(!this.Bf)return;const i=this.Ef(t);this.Uf(i,this.Hf.Pv),this.Bf=!es()}vv(t){const i=Ms(t.touches,b(this.Of));if(null===i)return;const n=this.Ef(t,i);this.Wf(n,this.Hf.Rv),this.wf=!0,this.ff=!0}Lf(t){return t.sourceCapabilities&&void 0!==t.sourceCapabilities.firesTouchEvents?t.sourceCapabilities.firesTouchEvents:gs(t)<this.Vf+500}Wf(t,i){i&&i.call(this.Hf,t)}Uf(t,i){i&&i.call(this.Hf,t)}Ef(t,i){const n=i||t,s=this.Zf.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,Dv:!t.type.startsWith(\"mouse\")&&\"contextmenu\"!==t.type&&\"click\"!==t.type,Vv:t.type,Ov:n.target,Bv:t.view,Av:()=>{\"touchstart\"!==t.type&&bs(t)}}}}function ms(t,i){const n=t.clientX-i.clientX,s=t.clientY-i.clientY;return Math.sqrt(n*n+s*s)}function bs(t){t.cancelable&&t.preventDefault()}function ws(t){return{nt:t.pageX,st:t.pageY}}function gs(t){return t.timeStamp||performance.now()}function Ms(t,i){for(let n=0;n<t.length;++n)if(t[n].identifier===i)return t[n];return null}function xs(t){return{Hc:t.Hc,Iv:{gr:t.zv.externalId},Lv:t.zv.cursorStyle}}function Ss(t,i,n){for(const s of t){const t=s.gt();if(null!==t&&t.wr){const e=t.wr(i,n);if(null!==e)return{Bv:s,Iv:e}}}return null}function ks(t,i){return n=>{var s,e,r,h;return(null!==(e=null===(s=n.Dt())||void 0===s?void 0:s.Pa())&&void 0!==e?e:\"\")!==i?[]:null!==(h=null===(r=n.da)||void 0===r?void 0:r.call(n,t))&&void 0!==h?h:[]}}function ys(t,i,n,s){if(!t.length)return;let e=0;const r=n/2,h=t[0].At(s,!0);let l=1===i?r-(t[0].Vi()-h/2):t[0].Vi()-h/2-r;l=Math.max(0,l);for(let r=1;r<t.length;r++){const h=t[r],a=t[r-1],o=a.At(s,!1),_=h.Vi(),u=a.Vi();if(1===i?_>u-o:_<u+o){const s=u-o*i;h.Oi(s);const r=s-i*o/2;if((1===i?r<0:r>n)&&l>0){const s=1===i?-1-r:r-n,h=Math.min(s,l);for(let n=e;n<t.length;n++)t[n].Oi(t[n].Vi()+i*h);l-=h}}else e=r,l=1===i?u-o-_:_-(u+o)}}class Cs{constructor(i,n,s,e){this.Li=null,this.Ev=null,this.Nv=!1,this.Fv=new ni(200),this.Qr=null,this.Wv=0,this.jv=!1,this.Hv=()=>{this.jv||this.tn.$v().$t().Uh()},this.Uv=()=>{this.jv||this.tn.$v().$t().Uh()},this.tn=i,this.cn=n,this.ko=n.layout,this.Oc=s,this.qv=\"left\"===e,this.Yv=ks(\"normal\",e),this.Zv=ks(\"top\",e),this.Xv=ks(\"bottom\",e),this.Kv=document.createElement(\"div\"),this.Kv.style.height=\"100%\",this.Kv.style.overflow=\"hidden\",this.Kv.style.width=\"25px\",this.Kv.style.left=\"0\",this.Kv.style.position=\"relative\",this.Gv=_s(this.Kv,t({width:16,height:16})),this.Gv.subscribeSuggestedBitmapSizeChanged(this.Hv);const r=this.Gv.canvasElement;r.style.position=\"absolute\",r.style.zIndex=\"1\",r.style.left=\"0\",r.style.top=\"0\",this.Jv=_s(this.Kv,t({width:16,height:16})),this.Jv.subscribeSuggestedBitmapSizeChanged(this.Uv);const h=this.Jv.canvasElement;h.style.position=\"absolute\",h.style.zIndex=\"2\",h.style.left=\"0\",h.style.top=\"0\";const l={bv:this.Qv.bind(this),pv:this.Qv.bind(this),av:this.tp.bind(this),hv:this.tp.bind(this),wv:this.ip.bind(this),cv:this.np.bind(this),_v:this.np.bind(this),qf:this.sp.bind(this),jf:this.sp.bind(this),Qf:this.ep.bind(this),Pv:this.rp.bind(this)};this.hp=new ps(this.Jv.canvasElement,l,{ev:()=>!this.cn.handleScroll.vertTouchDrag,rv:()=>!0})}S(){this.hp.S(),this.Jv.unsubscribeSuggestedBitmapSizeChanged(this.Uv),us(this.Jv.canvasElement),this.Jv.dispose(),this.Gv.unsubscribeSuggestedBitmapSizeChanged(this.Hv),us(this.Gv.canvasElement),this.Gv.dispose(),null!==this.Li&&this.Li.Ko().p(this),this.Li=null}lp(){return this.Kv}P(){return this.ko.fontSize}ap(){const t=this.Oc.W();return this.Qr!==t.R&&(this.Fv.nr(),this.Qr=t.R),t}op(){if(null===this.Li)return 0;let t=0;const i=this.ap(),n=b(this.Gv.canvasElement.getContext(\"2d\"));n.save();const s=this.Li.Ha();n.font=this._p(),s.length>0&&(t=Math.max(this.Fv.xi(n,s[0].so),this.Fv.xi(n,s[s.length-1].so)));const e=this.up();for(let i=e.length;i--;){const s=this.Fv.xi(n,e[i].Kt());s>t&&(t=s)}const r=this.Li.Ct();if(null!==r&&null!==this.Ev&&(2!==(h=this.cn.crosshair).mode&&h.horzLine.visible&&h.horzLine.labelVisible)){const i=this.Li.pn(1,r),s=this.Li.pn(this.Ev.height-2,r);t=Math.max(t,this.Fv.xi(n,this.Li.Fi(Math.floor(Math.min(i,s))+.11111111111111,r)),this.Fv.xi(n,this.Li.Fi(Math.ceil(Math.max(i,s))-.11111111111111,r)))}var h;n.restore();const l=t||34;return rs(Math.ceil(i.C+i.T+i.A+i.I+5+l))}cp(t){null!==this.Ev&&n(this.Ev,t)||(this.Ev=t,this.jv=!0,this.Gv.resizeCanvasElement(t),this.Jv.resizeCanvasElement(t),this.jv=!1,this.Kv.style.width=`${t.width}px`,this.Kv.style.height=`${t.height}px`)}dp(){return b(this.Ev).width}Gi(t){this.Li!==t&&(null!==this.Li&&this.Li.Ko().p(this),this.Li=t,t.Ko().l(this.fo.bind(this),this))}Dt(){return this.Li}nr(){const t=this.tn.fp();this.tn.$v().$t().E_(t,b(this.Dt()))}vp(t){if(null===this.Ev)return;if(1!==t){this.pp(),this.Gv.applySuggestedBitmapSize();const t=s(this.Gv);null!==t&&(t.useBitmapCoordinateSpace((t=>{this.mp(t),this.Ie(t)})),this.tn.bp(t,this.Xv),this.wp(t),this.tn.bp(t,this.Yv),this.gp(t))}this.Jv.applySuggestedBitmapSize();const i=s(this.Jv);null!==i&&(i.useBitmapCoordinateSpace((({context:t,bitmapSize:i})=>{t.clearRect(0,0,i.width,i.height)})),this.Mp(i),this.tn.bp(i,this.Zv))}xp(){return this.Gv.bitmapSize}Sp(t,i,n){const s=this.xp();s.width>0&&s.height>0&&t.drawImage(this.Gv.canvasElement,i,n)}bt(){var t;null===(t=this.Li)||void 0===t||t.Ha()}Qv(t){if(null===this.Li||this.Li.Ni()||!this.cn.handleScale.axisPressedMouseMove.price)return;const i=this.tn.$v().$t(),n=this.tn.fp();this.Nv=!0,i.V_(n,this.Li,t.localY)}tp(t){if(null===this.Li||!this.cn.handleScale.axisPressedMouseMove.price)return;const i=this.tn.$v().$t(),n=this.tn.fp(),s=this.Li;i.O_(n,s,t.localY)}ip(){if(null===this.Li||!this.cn.handleScale.axisPressedMouseMove.price)return;const t=this.tn.$v().$t(),i=this.tn.fp(),n=this.Li;this.Nv&&(this.Nv=!1,t.B_(i,n))}np(t){if(null===this.Li||!this.cn.handleScale.axisPressedMouseMove.price)return;const i=this.tn.$v().$t(),n=this.tn.fp();this.Nv=!1,i.B_(n,this.Li)}sp(t){this.cn.handleScale.axisDoubleClickReset.price&&this.nr()}ep(t){if(null===this.Li)return;!this.tn.$v().$t().W().handleScale.axisPressedMouseMove.price||this.Li.Mh()||this.Li.Oo()||this.kp(1)}rp(t){this.kp(0)}up(){const t=[],i=null===this.Li?void 0:this.Li;return(n=>{for(let s=0;s<n.length;++s){const e=n[s].Rn(this.tn.fp(),i);for(let i=0;i<e.length;i++)t.push(e[i])}})(this.tn.fp().Uo()),t}mp({context:t,bitmapSize:i}){const{width:n,height:s}=i,e=this.tn.fp().$t(),r=e.q(),h=e.bd();r===h?G(t,0,0,n,s,r):tt(t,0,0,n,s,r,h)}Ie({context:t,bitmapSize:i,horizontalPixelRatio:n}){if(null===this.Ev||null===this.Li||!this.Li.W().borderVisible)return;t.fillStyle=this.Li.W().borderColor;const s=Math.max(1,Math.floor(this.ap().C*n));let e;e=this.qv?i.width-s:0,t.fillRect(e,0,s,i.height)}wp(t){if(null===this.Ev||null===this.Li)return;const i=this.Li.Ha(),n=this.Li.W(),s=this.ap(),e=this.qv?this.Ev.width-s.T:0;n.borderVisible&&n.ticksVisible&&t.useBitmapCoordinateSpace((({context:t,horizontalPixelRatio:r,verticalPixelRatio:h})=>{t.fillStyle=n.borderColor;const l=Math.max(1,Math.floor(h)),a=Math.floor(.5*h),o=Math.round(s.T*r);t.beginPath();for(const n of i)t.rect(Math.floor(e*r),Math.round(n.Ea*h)-a,o,l);t.fill()})),t.useMediaCoordinateSpace((({context:t})=>{var r;t.font=this._p(),t.fillStyle=null!==(r=n.textColor)&&void 0!==r?r:this.ko.textColor,t.textAlign=this.qv?\"right\":\"left\",t.textBaseline=\"middle\";const h=this.qv?Math.round(e-s.A):Math.round(e+s.T+s.A),l=i.map((i=>this.Fv.Mi(t,i.so)));for(let n=i.length;n--;){const s=i[n];t.fillText(s.so,h,s.Ea+l[n])}}))}pp(){if(null===this.Ev||null===this.Li)return;const t=[],i=this.Li.Uo().slice(),n=this.tn.fp(),s=this.ap();this.Li===n.pr()&&this.tn.fp().Uo().forEach((t=>{n.vr(t)&&i.push(t)}));const e=this.Li;i.forEach((i=>{i.Rn(n,e).forEach((i=>{i.Oi(null),i.Bi()&&t.push(i)}))})),t.forEach((t=>t.Oi(t.ki())));this.Li.W().alignLabels&&this.yp(t,s)}yp(t,i){if(null===this.Ev)return;const n=this.Ev.height/2,s=t.filter((t=>t.ki()<=n)),e=t.filter((t=>t.ki()>n));s.sort(((t,i)=>i.ki()-t.ki())),e.sort(((t,i)=>t.ki()-i.ki()));for(const n of t){const t=Math.floor(n.At(i)/2),s=n.ki();s>-t&&s<t&&n.Oi(t),s>this.Ev.height-t&&s<this.Ev.height+t&&n.Oi(this.Ev.height-t)}ys(s,1,this.Ev.height,i),ys(e,-1,this.Ev.height,i)}gp(t){if(null===this.Ev)return;const i=this.up(),n=this.ap(),s=this.qv?\"right\":\"left\";i.forEach((i=>{if(i.Ai()){i.gt(b(this.Li)).X(t,n,this.Fv,s)}}))}Mp(t){if(null===this.Ev||null===this.Li)return;const i=this.tn.$v().$t(),n=[],s=this.tn.fp(),e=i.Zc().Rn(s,this.Li);e.length&&n.push(e);const r=this.ap(),h=this.qv?\"right\":\"left\";n.forEach((i=>{i.forEach((i=>{i.gt(b(this.Li)).X(t,r,this.Fv,h)}))}))}kp(t){this.Kv.style.cursor=1===t?\"ns-resize\":\"default\"}fo(){const t=this.op();this.Wv<t&&this.tn.$v().$t().Kl(),this.Wv=t}_p(){return F(this.ko.fontSize,this.ko.fontFamily)}}function Ts(t,i){var n,s;return null!==(s=null===(n=t.ua)||void 0===n?void 0:n.call(t,i))&&void 0!==s?s:[]}function Ps(t,i){var n,s;return null!==(s=null===(n=t.Pn)||void 0===n?void 0:n.call(t,i))&&void 0!==s?s:[]}function Rs(t,i){var n,s;return null!==(s=null===(n=t.Ji)||void 0===n?void 0:n.call(t,i))&&void 0!==s?s:[]}function Ds(t,i){var n,s;return null!==(s=null===(n=t.aa)||void 0===n?void 0:n.call(t,i))&&void 0!==s?s:[]}class Vs{constructor(i,n){this.Ev=t({width:0,height:0}),this.Cp=null,this.Tp=null,this.Pp=null,this.Rp=null,this.Dp=!1,this.Vp=new D,this.Op=new D,this.Bp=0,this.Ap=!1,this.Ip=null,this.zp=!1,this.Lp=null,this.Ep=null,this.jv=!1,this.Hv=()=>{this.jv||null===this.Np||this.$i().Uh()},this.Uv=()=>{this.jv||null===this.Np||this.$i().Uh()},this.Qd=i,this.Np=n,this.Np.W_().l(this.Fp.bind(this),this,!0),this.Wp=document.createElement(\"td\"),this.Wp.style.padding=\"0\",this.Wp.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.jp=document.createElement(\"td\"),this.jp.style.padding=\"0\",this.Hp=document.createElement(\"td\"),this.Hp.style.padding=\"0\",this.Wp.appendChild(s),this.Gv=_s(s,t({width:16,height:16})),this.Gv.subscribeSuggestedBitmapSizeChanged(this.Hv);const e=this.Gv.canvasElement;e.style.position=\"absolute\",e.style.zIndex=\"1\",e.style.left=\"0\",e.style.top=\"0\",this.Jv=_s(s,t({width:16,height:16})),this.Jv.subscribeSuggestedBitmapSizeChanged(this.Uv);const r=this.Jv.canvasElement;r.style.position=\"absolute\",r.style.zIndex=\"2\",r.style.left=\"0\",r.style.top=\"0\",this.$p=document.createElement(\"tr\"),this.$p.appendChild(this.jp),this.$p.appendChild(this.Wp),this.$p.appendChild(this.Hp),this.Up(),this.hp=new ps(this.Jv.canvasElement,this,{ev:()=>null===this.Ip&&!this.Qd.W().handleScroll.vertTouchDrag,rv:()=>null===this.Ip&&!this.Qd.W().handleScroll.horzTouchDrag})}S(){null!==this.Cp&&this.Cp.S(),null!==this.Tp&&this.Tp.S(),this.Pp=null,this.Jv.unsubscribeSuggestedBitmapSizeChanged(this.Uv),us(this.Jv.canvasElement),this.Jv.dispose(),this.Gv.unsubscribeSuggestedBitmapSizeChanged(this.Hv),us(this.Gv.canvasElement),this.Gv.dispose(),null!==this.Np&&this.Np.W_().p(this),this.hp.S()}fp(){return b(this.Np)}qp(t){var i,n;null!==this.Np&&this.Np.W_().p(this),this.Np=t,null!==this.Np&&this.Np.W_().l(Vs.prototype.Fp.bind(this),this,!0),this.Up(),this.Qd.Yp().indexOf(this)===this.Qd.Yp().length-1?(this.Pp=null!==(i=this.Pp)&&void 0!==i?i:new os(this.Wp,this.Qd),this.Pp.bt()):(null===(n=this.Pp)||void 0===n||n.if(),this.Pp=null)}$v(){return this.Qd}lp(){return this.$p}Up(){if(null!==this.Np&&(this.Zp(),0!==this.$i().wt().length)){if(null!==this.Cp){const t=this.Np.R_();this.Cp.Gi(b(t))}if(null!==this.Tp){const t=this.Np.D_();this.Tp.Gi(b(t))}}}Xp(){null!==this.Cp&&this.Cp.bt(),null!==this.Tp&&this.Tp.bt()}M_(){return null!==this.Np?this.Np.M_():0}x_(t){this.Np&&this.Np.x_(t)}Qf(t){if(!this.Np)return;this.Kp();const i=t.localX,n=t.localY;this.Gp(i,n,t)}bv(t){this.Kp(),this.Jp(),this.Gp(t.localX,t.localY,t)}tv(t){var i;if(!this.Np)return;this.Kp();const n=t.localX,s=t.localY;this.Gp(n,s,t);const e=this.wr(n,s);this.Qd.Qp(null!==(i=null==e?void 0:e.Lv)&&void 0!==i?i:null),this.$i().jc(e&&{Hc:e.Hc,Iv:e.Iv})}dv(t){null!==this.Np&&(this.Kp(),this.tm(t))}qf(t){null!==this.Np&&this.im(this.Op,t)}jf(t){this.qf(t)}av(t){this.Kp(),this.nm(t),this.Gp(t.localX,t.localY,t)}cv(t){null!==this.Np&&(this.Kp(),this.Ap=!1,this.sm(t))}uv(t){null!==this.Np&&this.tm(t)}Rv(t){if(this.Ap=!0,null===this.Ip){const i={x:t.localX,y:t.localY};this.rm(i,i,t)}}Pv(t){null!==this.Np&&(this.Kp(),this.Np.$t().jc(null),this.hm())}lm(){return this.Vp}am(){return this.Op}xv(){this.Bp=1,this.$i().Un()}Sv(t,i){if(!this.Qd.W().handleScale.pinch)return;const n=5*(i-this.Bp);this.Bp=i,this.$i().Qc(t.nt,n)}pv(t){this.Ap=!1,this.zp=null!==this.Ip,this.Jp();const i=this.$i().Zc();null!==this.Ip&&i.yt()&&(this.Lp={x:i.Yt(),y:i.Zt()},this.Ip={x:t.localX,y:t.localY})}hv(t){if(null===this.Np)return;const i=t.localX,n=t.localY;if(null===this.Ip)this.nm(t);else{this.zp=!1;const s=b(this.Lp),e=s.x+(i-this.Ip.x),r=s.y+(n-this.Ip.y);this.Gp(e,r,t)}}_v(t){0===this.$v().W().trackingMode.exitMode&&(this.zp=!0),this.om(),this.sm(t)}wr(t,i){const n=this.Np;return null===n?null:function(t,i,n){const s=t.Uo(),e=function(t,i,n){var s,e;let r,h;for(const o of t){const t=null!==(e=null===(s=o.va)||void 0===s?void 0:s.call(o,i,n))&&void 0!==e?e:[];for(const i of t)l=i.zOrder,(!(a=null==r?void 0:r.zOrder)||\"top\"===l&&\"top\"!==a||\"normal\"===l&&\"bottom\"===a)&&(r=i,h=o)}var l,a;return r&&h?{zv:r,Hc:h}:null}(s,i,n);if(\"top\"===(null==e?void 0:e.zv.zOrder))return xs(e);for(const r of s){if(e&&e.Hc===r&&\"bottom\"!==e.zv.zOrder&&!e.zv.isBackground)return xs(e);const s=Ss(r.Pn(t),i,n);if(null!==s)return{Hc:r,Bv:s.Bv,Iv:s.Iv};if(e&&e.Hc===r&&\"bottom\"!==e.zv.zOrder&&e.zv.isBackground)return xs(e)}return(null==e?void 0:e.zv)?xs(e):null}(n,t,i)}_m(i,n){b(\"left\"===n?this.Cp:this.Tp).cp(t({width:i,height:this.Ev.height}))}um(){return this.Ev}cp(t){n(this.Ev,t)||(this.Ev=t,this.jv=!0,this.Gv.resizeCanvasElement(t),this.Jv.resizeCanvasElement(t),this.jv=!1,this.Wp.style.width=t.width+\"px\",this.Wp.style.height=t.height+\"px\")}dm(){const t=b(this.Np);t.P_(t.R_()),t.P_(t.D_());for(const i of t.Ba())if(t.vr(i)){const n=i.Dt();null!==n&&t.P_(n),i.Vn()}}xp(){return this.Gv.bitmapSize}Sp(t,i,n){const s=this.xp();s.width>0&&s.height>0&&t.drawImage(this.Gv.canvasElement,i,n)}vp(t){if(0===t)return;if(null===this.Np)return;if(t>1&&this.dm(),null!==this.Cp&&this.Cp.vp(t),null!==this.Tp&&this.Tp.vp(t),1!==t){this.Gv.applySuggestedBitmapSize();const t=s(this.Gv);null!==t&&(t.useBitmapCoordinateSpace((t=>{this.mp(t)})),this.Np&&(this.fm(t,Ts),this.vm(t),this.pm(t),this.fm(t,Ps),this.fm(t,Rs)))}this.Jv.applySuggestedBitmapSize();const i=s(this.Jv);null!==i&&(i.useBitmapCoordinateSpace((({context:t,bitmapSize:i})=>{t.clearRect(0,0,i.width,i.height)})),this.bm(i),this.fm(i,Ds))}wm(){return this.Cp}gm(){return this.Tp}bp(t,i){this.fm(t,i)}Fp(){null!==this.Np&&this.Np.W_().p(this),this.Np=null}tm(t){this.im(this.Vp,t)}im(t,i){const n=i.localX,s=i.localY;t.M()&&t.m(this.$i().St().Nu(n),{x:n,y:s},i)}mp({context:t,bitmapSize:i}){const{width:n,height:s}=i,e=this.$i(),r=e.q(),h=e.bd();r===h?G(t,0,0,n,s,h):tt(t,0,0,n,s,r,h)}vm(t){const i=b(this.Np).j_().qh().gt();null!==i&&i.X(t,!1)}pm(t){const i=this.$i().Yc();this.Mm(t,Ps,cs,i),this.Mm(t,Ps,ds,i)}bm(t){this.Mm(t,Ps,ds,this.$i().Zc())}fm(t,i){const n=b(this.Np).Uo();for(const s of n)this.Mm(t,i,cs,s);for(const s of n)this.Mm(t,i,ds,s)}Mm(t,i,n,s){const e=b(this.Np),r=e.$t().Wc(),h=null!==r&&r.Hc===s,l=null!==r&&h&&void 0!==r.Iv?r.Iv.Mr:void 0;fs(i,(i=>n(i,t,h,l)),s,e)}Zp(){if(null===this.Np)return;const t=this.Qd,i=this.Np.R_().W().visible,n=this.Np.D_().W().visible;i||null===this.Cp||(this.jp.removeChild(this.Cp.lp()),this.Cp.S(),this.Cp=null),n||null===this.Tp||(this.Hp.removeChild(this.Tp.lp()),this.Tp.S(),this.Tp=null);const s=t.$t().ud();i&&null===this.Cp&&(this.Cp=new Cs(this,t.W(),s,\"left\"),this.jp.appendChild(this.Cp.lp())),n&&null===this.Tp&&(this.Tp=new Cs(this,t.W(),s,\"right\"),this.Hp.appendChild(this.Tp.lp()))}xm(t){return t.Dv&&this.Ap||null!==this.Ip}Sm(t){return Math.max(0,Math.min(t,this.Ev.width-1))}km(t){return Math.max(0,Math.min(t,this.Ev.height-1))}Gp(t,i,n){this.$i().ld(this.Sm(t),this.km(i),n,b(this.Np))}hm(){this.$i().od()}om(){this.zp&&(this.Ip=null,this.hm())}rm(t,i,n){this.Ip=t,this.zp=!1,this.Gp(i.x,i.y,n);const s=this.$i().Zc();this.Lp={x:s.Yt(),y:s.Zt()}}$i(){return this.Qd.$t()}sm(t){if(!this.Dp)return;const i=this.$i(),n=this.fp();if(i.z_(n,n.vn()),this.Rp=null,this.Dp=!1,i.ed(),null!==this.Ep){const t=performance.now(),n=i.St();this.Ep.Vr(n.Hu(),t),this.Ep.Qu(t)||i.Zn(this.Ep)}}Kp(){this.Ip=null}Jp(){if(!this.Np)return;if(this.$i().Un(),document.activeElement!==document.body&&document.activeElement!==document.documentElement)b(document.activeElement).blur();else{const t=document.getSelection();null!==t&&t.removeAllRanges()}!this.Np.vn().Ni()&&this.$i().St().Ni()}nm(t){if(null===this.Np)return;const i=this.$i(),n=i.St();if(n.Ni())return;const s=this.Qd.W(),e=s.handleScroll,r=s.kineticScroll;if((!e.pressedMouseMove||t.Dv)&&(!e.horzTouchDrag&&!e.vertTouchDrag||!t.Dv))return;const h=this.Np.vn(),l=performance.now();if(null!==this.Rp||this.xm(t)||(this.Rp={x:t.clientX,y:t.clientY,Od:l,ym:t.localX,Cm:t.localY}),null!==this.Rp&&!this.Dp&&(this.Rp.x!==t.clientX||this.Rp.y!==t.clientY)){if(t.Dv&&r.touch||!t.Dv&&r.mouse){const t=n.le();this.Ep=new as(.2/t,7/t,.997,15/t),this.Ep.Yd(n.Hu(),this.Rp.Od)}else this.Ep=null;h.Ni()||i.A_(this.Np,h,t.localY),i.nd(t.localX),this.Dp=!0}this.Dp&&(h.Ni()||i.I_(this.Np,h,t.localY),i.sd(t.localX),null!==this.Ep&&this.Ep.Yd(n.Hu(),l))}}class Os{constructor(i,n,s,e,r){this.ft=!0,this.Ev=t({width:0,height:0}),this.Hv=()=>this.vp(3),this.qv=\"left\"===i,this.Oc=s.ud,this.cn=n,this.Tm=e,this.Pm=r,this.Kv=document.createElement(\"div\"),this.Kv.style.width=\"25px\",this.Kv.style.height=\"100%\",this.Kv.style.overflow=\"hidden\",this.Gv=_s(this.Kv,t({width:16,height:16})),this.Gv.subscribeSuggestedBitmapSizeChanged(this.Hv)}S(){this.Gv.unsubscribeSuggestedBitmapSizeChanged(this.Hv),us(this.Gv.canvasElement),this.Gv.dispose()}lp(){return this.Kv}um(){return this.Ev}cp(t){n(this.Ev,t)||(this.Ev=t,this.Gv.resizeCanvasElement(t),this.Kv.style.width=`${t.width}px`,this.Kv.style.height=`${t.height}px`,this.ft=!0)}vp(t){if(t<3&&!this.ft)return;if(0===this.Ev.width||0===this.Ev.height)return;this.ft=!1,this.Gv.applySuggestedBitmapSize();const i=s(this.Gv);null!==i&&i.useBitmapCoordinateSpace((t=>{this.mp(t),this.Ie(t)}))}xp(){return this.Gv.bitmapSize}Sp(t,i,n){const s=this.xp();s.width>0&&s.height>0&&t.drawImage(this.Gv.canvasElement,i,n)}Ie({context:t,bitmapSize:i,horizontalPixelRatio:n,verticalPixelRatio:s}){if(!this.Tm())return;t.fillStyle=this.cn.timeScale.borderColor;const e=Math.floor(this.Oc.W().C*n),r=Math.floor(this.Oc.W().C*s),h=this.qv?i.width-e:0;t.fillRect(h,0,e,r)}mp({context:t,bitmapSize:i}){G(t,0,0,i.width,i.height,this.Pm())}}function Bs(t){return i=>{var n,s;return null!==(s=null===(n=i.fa)||void 0===n?void 0:n.call(i,t))&&void 0!==s?s:[]}}const As=Bs(\"normal\"),Is=Bs(\"top\"),zs=Bs(\"bottom\");class Ls{constructor(i,n){this.Rm=null,this.Dm=null,this.k=null,this.Vm=!1,this.Ev=t({width:0,height:0}),this.Om=new D,this.Fv=new ni(5),this.jv=!1,this.Hv=()=>{this.jv||this.Qd.$t().Uh()},this.Uv=()=>{this.jv||this.Qd.$t().Uh()},this.Qd=i,this.q_=n,this.cn=i.W().layout,this.Xd=document.createElement(\"tr\"),this.Bm=document.createElement(\"td\"),this.Bm.style.padding=\"0\",this.Am=document.createElement(\"td\"),this.Am.style.padding=\"0\",this.Kv=document.createElement(\"td\"),this.Kv.style.height=\"25px\",this.Kv.style.padding=\"0\",this.Im=document.createElement(\"div\"),this.Im.style.width=\"100%\",this.Im.style.height=\"100%\",this.Im.style.position=\"relative\",this.Im.style.overflow=\"hidden\",this.Kv.appendChild(this.Im),this.Gv=_s(this.Im,t({width:16,height:16})),this.Gv.subscribeSuggestedBitmapSizeChanged(this.Hv);const s=this.Gv.canvasElement;s.style.position=\"absolute\",s.style.zIndex=\"1\",s.style.left=\"0\",s.style.top=\"0\",this.Jv=_s(this.Im,t({width:16,height:16})),this.Jv.subscribeSuggestedBitmapSizeChanged(this.Uv);const e=this.Jv.canvasElement;e.style.position=\"absolute\",e.style.zIndex=\"2\",e.style.left=\"0\",e.style.top=\"0\",this.Xd.appendChild(this.Bm),this.Xd.appendChild(this.Kv),this.Xd.appendChild(this.Am),this.zm(),this.Qd.$t().g_().l(this.zm.bind(this),this),this.hp=new ps(this.Jv.canvasElement,this,{ev:()=>!0,rv:()=>!this.Qd.W().handleScroll.horzTouchDrag})}S(){this.hp.S(),null!==this.Rm&&this.Rm.S(),null!==this.Dm&&this.Dm.S(),this.Jv.unsubscribeSuggestedBitmapSizeChanged(this.Uv),us(this.Jv.canvasElement),this.Jv.dispose(),this.Gv.unsubscribeSuggestedBitmapSizeChanged(this.Hv),us(this.Gv.canvasElement),this.Gv.dispose()}lp(){return this.Xd}Lm(){return this.Rm}Em(){return this.Dm}bv(t){if(this.Vm)return;this.Vm=!0;const i=this.Qd.$t();!i.St().Ni()&&this.Qd.W().handleScale.axisPressedMouseMove.time&&i.Jc(t.localX)}pv(t){this.bv(t)}wv(){const t=this.Qd.$t();!t.St().Ni()&&this.Vm&&(this.Vm=!1,this.Qd.W().handleScale.axisPressedMouseMove.time&&t.hd())}av(t){const i=this.Qd.$t();!i.St().Ni()&&this.Qd.W().handleScale.axisPressedMouseMove.time&&i.rd(t.localX)}hv(t){this.av(t)}cv(){this.Vm=!1;const t=this.Qd.$t();t.St().Ni()&&!this.Qd.W().handleScale.axisPressedMouseMove.time||t.hd()}_v(){this.cv()}qf(){this.Qd.W().handleScale.axisDoubleClickReset.time&&this.Qd.$t().Kn()}jf(){this.qf()}Qf(){this.Qd.$t().W().handleScale.axisPressedMouseMove.time&&this.kp(1)}Pv(){this.kp(0)}um(){return this.Ev}Nm(){return this.Om}Fm(i,s,e){n(this.Ev,i)||(this.Ev=i,this.jv=!0,this.Gv.resizeCanvasElement(i),this.Jv.resizeCanvasElement(i),this.jv=!1,this.Kv.style.width=`${i.width}px`,this.Kv.style.height=`${i.height}px`,this.Om.m(i)),null!==this.Rm&&this.Rm.cp(t({width:s,height:i.height})),null!==this.Dm&&this.Dm.cp(t({width:e,height:i.height}))}Wm(){const t=this.jm();return Math.ceil(t.C+t.T+t.P+t.L+t.B+t.Hm)}bt(){this.Qd.$t().St().Ha()}xp(){return this.Gv.bitmapSize}Sp(t,i,n){const s=this.xp();s.width>0&&s.height>0&&t.drawImage(this.Gv.canvasElement,i,n)}vp(t){if(0===t)return;if(1!==t){this.Gv.applySuggestedBitmapSize();const i=s(this.Gv);null!==i&&(i.useBitmapCoordinateSpace((t=>{this.mp(t),this.Ie(t),this.$m(i,zs)})),this.wp(i),this.$m(i,As)),null!==this.Rm&&this.Rm.vp(t),null!==this.Dm&&this.Dm.vp(t)}this.Jv.applySuggestedBitmapSize();const i=s(this.Jv);null!==i&&(i.useBitmapCoordinateSpace((({context:t,bitmapSize:i})=>{t.clearRect(0,0,i.width,i.height)})),this.Um([...this.Qd.$t().wt(),this.Qd.$t().Zc()],i),this.$m(i,Is))}$m(t,i){const n=this.Qd.$t().wt();for(const s of n)fs(i,(i=>cs(i,t,!1,void 0)),s,void 0);for(const s of n)fs(i,(i=>ds(i,t,!1,void 0)),s,void 0)}mp({context:t,bitmapSize:i}){G(t,0,0,i.width,i.height,this.Qd.$t().bd())}Ie({context:t,bitmapSize:i,verticalPixelRatio:n}){if(this.Qd.W().timeScale.borderVisible){t.fillStyle=this.qm();const s=Math.max(1,Math.floor(this.jm().C*n));t.fillRect(0,0,i.width,s)}}wp(t){const i=this.Qd.$t().St(),n=i.Ha();if(!n||0===n.length)return;const s=this.q_.maxTickMarkWeight(n),e=this.jm(),r=i.W();r.borderVisible&&r.ticksVisible&&t.useBitmapCoordinateSpace((({context:t,horizontalPixelRatio:i,verticalPixelRatio:s})=>{t.strokeStyle=this.qm(),t.fillStyle=this.qm();const r=Math.max(1,Math.floor(i)),h=Math.floor(.5*i);t.beginPath();const l=Math.round(e.T*s);for(let s=n.length;s--;){const e=Math.round(n[s].coord*i);t.rect(e-h,0,r,l)}t.fill()})),t.useMediaCoordinateSpace((({context:t})=>{const i=e.C+e.T+e.L+e.P/2;t.textAlign=\"center\",t.textBaseline=\"middle\",t.fillStyle=this.$(),t.font=this._p();for(const e of n)if(e.weight<s){const n=e.needAlignCoordinate?this.Ym(t,e.coord,e.label):e.coord;t.fillText(e.label,n,i)}this.Qd.W().timeScale.allowBoldLabels&&(t.font=this.Zm());for(const e of n)if(e.weight>=s){const n=e.needAlignCoordinate?this.Ym(t,e.coord,e.label):e.coord;t.fillText(e.label,n,i)}}))}Ym(t,i,n){const s=this.Fv.xi(t,n),e=s/2,r=Math.floor(i-e)+.5;return r<0?i+=Math.abs(0-r):r+s>this.Ev.width&&(i-=Math.abs(this.Ev.width-(r+s))),i}Um(t,i){const n=this.jm();for(const s of t)for(const t of s.Qi())t.gt().X(i,n)}qm(){return this.Qd.W().timeScale.borderColor}$(){return this.cn.textColor}j(){return this.cn.fontSize}_p(){return F(this.j(),this.cn.fontFamily)}Zm(){return F(this.j(),this.cn.fontFamily,\"bold\")}jm(){null===this.k&&(this.k={C:1,N:NaN,L:NaN,B:NaN,ji:NaN,T:5,P:NaN,R:\"\",Wi:new ni,Hm:0});const t=this.k,i=this._p();if(t.R!==i){const n=this.j();t.P=n,t.R=i,t.L=3*n/12,t.B=3*n/12,t.ji=9*n/12,t.N=0,t.Hm=4*n/12,t.Wi.nr()}return this.k}kp(t){this.Kv.style.cursor=1===t?\"ew-resize\":\"default\"}zm(){const t=this.Qd.$t(),i=t.W();i.leftPriceScale.visible||null===this.Rm||(this.Bm.removeChild(this.Rm.lp()),this.Rm.S(),this.Rm=null),i.rightPriceScale.visible||null===this.Dm||(this.Am.removeChild(this.Dm.lp()),this.Dm.S(),this.Dm=null);const n={ud:this.Qd.$t().ud()},s=()=>i.leftPriceScale.borderVisible&&t.St().W().borderVisible,e=()=>t.bd();i.leftPriceScale.visible&&null===this.Rm&&(this.Rm=new Os(\"left\",i,n,s,e),this.Bm.appendChild(this.Rm.lp())),i.rightPriceScale.visible&&null===this.Dm&&(this.Dm=new Os(\"right\",i,n,s,e),this.Am.appendChild(this.Dm.lp()))}}const Es=!!ns&&!!navigator.userAgentData&&navigator.userAgentData.brands.some((t=>t.brand.includes(\"Chromium\")))&&!!ns&&((null===(Ns=null===navigator||void 0===navigator?void 0:navigator.userAgentData)||void 0===Ns?void 0:Ns.platform)?\"Windows\"===navigator.userAgentData.platform:navigator.userAgent.toLowerCase().indexOf(\"win\")>=0);var Ns;class Fs{constructor(t,i,n){var s;this.Xm=[],this.Km=0,this.ho=0,this.__=0,this.Gm=0,this.Jm=0,this.Qm=null,this.tb=!1,this.Vp=new D,this.Op=new D,this.Rc=new D,this.ib=null,this.nb=null,this.Jd=t,this.cn=i,this.q_=n,this.Xd=document.createElement(\"div\"),this.Xd.classList.add(\"tv-lightweight-charts\"),this.Xd.style.overflow=\"hidden\",this.Xd.style.direction=\"ltr\",this.Xd.style.width=\"100%\",this.Xd.style.height=\"100%\",(s=this.Xd).style.userSelect=\"none\",s.style.webkitUserSelect=\"none\",s.style.msUserSelect=\"none\",s.style.MozUserSelect=\"none\",s.style.webkitTapHighlightColor=\"transparent\",this.sb=document.createElement(\"table\"),this.sb.setAttribute(\"cellspacing\",\"0\"),this.Xd.appendChild(this.sb),this.eb=this.rb.bind(this),Ws(this.cn)&&this.hb(!0),this.$i=new Ln(this.Vc.bind(this),this.cn,n),this.$t().Xc().l(this.lb.bind(this),this),this.ab=new Ls(this,this.q_),this.sb.appendChild(this.ab.lp());const e=i.autoSize&&this.ob();let r=this.cn.width,h=this.cn.height;if(e||0===r||0===h){const i=t.getBoundingClientRect();r=r||i.width,h=h||i.height}this._b(r,h),this.ub(),t.appendChild(this.Xd),this.cb(),this.$i.St().ec().l(this.$i.Kl.bind(this.$i),this),this.$i.g_().l(this.$i.Kl.bind(this.$i),this)}$t(){return this.$i}W(){return this.cn}Yp(){return this.Xm}fb(){return this.ab}S(){this.hb(!1),0!==this.Km&&window.cancelAnimationFrame(this.Km),this.$i.Xc().p(this),this.$i.St().ec().p(this),this.$i.g_().p(this),this.$i.S();for(const t of this.Xm)this.sb.removeChild(t.lp()),t.lm().p(this),t.am().p(this),t.S();this.Xm=[],b(this.ab).S(),null!==this.Xd.parentElement&&this.Xd.parentElement.removeChild(this.Xd),this.Rc.S(),this.Vp.S(),this.Op.S(),this.pb()}_b(i,n,s=!1){if(this.ho===n&&this.__===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.ho=e.height,this.__=e.width;const r=this.ho+\"px\",h=this.__+\"px\";b(this.Xd).style.height=r,b(this.Xd).style.width=h,this.sb.style.height=r,this.sb.style.width=h,s?this.mb(ut.es(),performance.now()):this.$i.Kl()}vp(t){void 0===t&&(t=ut.es());for(let i=0;i<this.Xm.length;i++)this.Xm[i].vp(t.Hn(i).Fn);this.cn.timeScale.visible&&this.ab.vp(t.jn())}$h(t){const i=Ws(this.cn);this.$i.$h(t);const n=Ws(this.cn);n!==i&&this.hb(n),this.cb(),this.bb(t)}lm(){return this.Vp}am(){return this.Op}Xc(){return this.Rc}wb(){null!==this.Qm&&(this.mb(this.Qm,performance.now()),this.Qm=null);const t=this.gb(null),i=document.createElement(\"canvas\");i.width=t.width,i.height=t.height;const n=b(i.getContext(\"2d\"));return this.gb(n),i}Mb(t){if(\"left\"===t&&!this.xb())return 0;if(\"right\"===t&&!this.Sb())return 0;if(0===this.Xm.length)return 0;return b(\"left\"===t?this.Xm[0].wm():this.Xm[0].gm()).dp()}kb(){return this.cn.autoSize&&null!==this.ib}yb(){return this.Xd}Qp(t){this.nb=t,this.nb?this.yb().style.setProperty(\"cursor\",t):this.yb().style.removeProperty(\"cursor\")}Cb(){return this.nb}Tb(){return m(this.Xm[0]).um()}bb(t){(void 0!==t.autoSize||!this.ib||void 0===t.width&&void 0===t.height)&&(t.autoSize&&!this.ib&&this.ob(),!1===t.autoSize&&null!==this.ib&&this.pb(),t.autoSize||void 0===t.width&&void 0===t.height||this._b(t.width||this.__,t.height||this.ho))}gb(i){let n=0,s=0;const e=this.Xm[0],r=(t,n)=>{let s=0;for(let e=0;e<this.Xm.length;e++){const r=this.Xm[e],h=b(\"left\"===t?r.wm():r.gm()),l=h.xp();null!==i&&h.Sp(i,n,s),s+=l.height}};if(this.xb()){r(\"left\",0);n+=b(e.wm()).xp().width}for(let t=0;t<this.Xm.length;t++){const e=this.Xm[t],r=e.xp();null!==i&&e.Sp(i,n,s),s+=r.height}if(n+=e.xp().width,this.Sb()){r(\"right\",n);n+=b(e.gm()).xp().width}const h=(t,n,s)=>{b(\"left\"===t?this.ab.Lm():this.ab.Em()).Sp(b(i),n,s)};if(this.cn.timeScale.visible){const t=this.ab.xp();if(null!==i){let n=0;this.xb()&&(h(\"left\",n,s),n=b(e.wm()).xp().width),this.ab.Sp(i,n,s),n+=t.width,this.Sb()&&h(\"right\",n,s)}s+=t.height}return t({width:n,height:s})}Pb(){let i=0,n=0,s=0;for(const t of this.Xm)this.xb()&&(n=Math.max(n,b(t.wm()).op(),this.cn.leftPriceScale.minimumWidth)),this.Sb()&&(s=Math.max(s,b(t.gm()).op(),this.cn.rightPriceScale.minimumWidth)),i+=t.M_();n=rs(n),s=rs(s);const e=this.__,r=this.ho,h=Math.max(e-n-s,0),l=this.cn.timeScale.visible;let a=l?Math.max(this.ab.Wm(),this.cn.timeScale.minimumHeight):0;var o;a=(o=a)+o%2;const _=0+a,u=r<_?0:r-_,c=u/i;let d=0;for(let i=0;i<this.Xm.length;++i){const e=this.Xm[i];e.qp(this.$i.qc()[i]);let r=0,l=0;l=i===this.Xm.length-1?u-d:Math.round(e.M_()*c),r=Math.max(l,2),d+=r,e.cp(t({width:h,height:r})),this.xb()&&e._m(n,\"left\"),this.Sb()&&e._m(s,\"right\"),e.fp()&&this.$i.Kc(e.fp(),r)}this.ab.Fm(t({width:l?h:0,height:a}),l?n:0,l?s:0),this.$i.S_(h),this.Gm!==n&&(this.Gm=n),this.Jm!==s&&(this.Jm=s)}hb(t){t?this.Xd.addEventListener(\"wheel\",this.eb,{passive:!1}):this.Xd.removeEventListener(\"wheel\",this.eb)}Rb(t){switch(t.deltaMode){case t.DOM_DELTA_PAGE:return 120;case t.DOM_DELTA_LINE:return 32}return Es?1/window.devicePixelRatio:1}rb(t){if(!(0!==t.deltaX&&this.cn.handleScroll.mouseWheel||0!==t.deltaY&&this.cn.handleScale.mouseWheel))return;const i=this.Rb(t),n=i*t.deltaX/100,s=-i*t.deltaY/100;if(t.cancelable&&t.preventDefault(),0!==s&&this.cn.handleScale.mouseWheel){const i=Math.sign(s)*Math.min(1,Math.abs(s)),n=t.clientX-this.Xd.getBoundingClientRect().left;this.$t().Qc(n,i)}0!==n&&this.cn.handleScroll.mouseWheel&&this.$t().td(-80*n)}mb(t,i){var n;const s=t.jn();3===s&&this.Db(),3!==s&&2!==s||(this.Vb(t),this.Ob(t,i),this.ab.bt(),this.Xm.forEach((t=>{t.Xp()})),3===(null===(n=this.Qm)||void 0===n?void 0:n.jn())&&(this.Qm.ts(t),this.Db(),this.Vb(this.Qm),this.Ob(this.Qm,i),t=this.Qm,this.Qm=null)),this.vp(t)}Ob(t,i){for(const n of t.Qn())this.ns(n,i)}Vb(t){const i=this.$i.qc();for(let n=0;n<i.length;n++)t.Hn(n).Wn&&i[n].N_()}ns(t,i){const n=this.$i.St();switch(t.qn){case 0:n.hc();break;case 1:n.lc(t.Vt);break;case 2:n.Gn(t.Vt);break;case 3:n.Jn(t.Vt);break;case 4:n.qu();break;case 5:t.Vt.Qu(i)||n.Jn(t.Vt.tc(i))}}Vc(t){null!==this.Qm?this.Qm.ts(t):this.Qm=t,this.tb||(this.tb=!0,this.Km=window.requestAnimationFrame((t=>{if(this.tb=!1,this.Km=0,null!==this.Qm){const i=this.Qm;this.Qm=null,this.mb(i,t);for(const n of i.Qn())if(5===n.qn&&!n.Vt.Qu(t)){this.$t().Zn(n.Vt);break}}})))}Db(){this.ub()}ub(){const t=this.$i.qc(),i=t.length,n=this.Xm.length;for(let t=i;t<n;t++){const t=m(this.Xm.pop());this.sb.removeChild(t.lp()),t.lm().p(this),t.am().p(this),t.S()}for(let s=n;s<i;s++){const i=new Vs(this,t[s]);i.lm().l(this.Bb.bind(this),this),i.am().l(this.Ab.bind(this),this),this.Xm.push(i),this.sb.insertBefore(i.lp(),this.ab.lp())}for(let n=0;n<i;n++){const i=t[n],s=this.Xm[n];s.fp()!==i?s.qp(i):s.Up()}this.cb(),this.Pb()}Ib(t,i,n){var s;const e=new Map;if(null!==t){this.$i.wt().forEach((i=>{const n=i.In().ll(t);null!==n&&e.set(i,n)}))}let r;if(null!==t){const i=null===(s=this.$i.St().Ui(t))||void 0===s?void 0:s.originalTime;void 0!==i&&(r=i)}const h=this.$t().Wc(),l=null!==h&&h.Hc instanceof Gi?h.Hc:void 0,a=null!==h&&void 0!==h.Iv?h.Iv.gr:void 0;return{zb:r,ee:null!=t?t:void 0,Lb:null!=i?i:void 0,Eb:l,Nb:e,Fb:a,Wb:null!=n?n:void 0}}Bb(t,i,n){this.Vp.m((()=>this.Ib(t,i,n)))}Ab(t,i,n){this.Op.m((()=>this.Ib(t,i,n)))}lb(t,i,n){this.Rc.m((()=>this.Ib(t,i,n)))}cb(){const t=this.cn.timeScale.visible?\"\":\"none\";this.ab.lp().style.display=t}xb(){return this.Xm[0].fp().R_().W().visible}Sb(){return this.Xm[0].fp().D_().W().visible}ob(){return\"ResizeObserver\"in window&&(this.ib=new ResizeObserver((t=>{const i=t.find((t=>t.target===this.Jd));i&&this._b(i.contentRect.width,i.contentRect.height)})),this.ib.observe(this.Jd,{box:\"border-box\"}),!0)}pb(){null!==this.ib&&this.ib.disconnect(),this.ib=null}}function Ws(t){return Boolean(t.handleScroll.mouseWheel||t.handleScale.mouseWheel)}function js(t){return function(t){return void 0!==t.open}(t)||function(t){return void 0!==t.value}(t)}function Hs(t,i){var n={};for(var s in t)Object.prototype.hasOwnProperty.call(t,s)&&i.indexOf(s)<0&&(n[s]=t[s]);if(null!=t&&\"function\"==typeof Object.getOwnPropertySymbols){var e=0;for(s=Object.getOwnPropertySymbols(t);e<s.length;e++)i.indexOf(s[e])<0&&Object.prototype.propertyIsEnumerable.call(t,s[e])&&(n[s[e]]=t[s[e]])}return n}function $s(t,i,n,s){const e=n.value,r={ee:i,ot:t,Vt:[e,e,e,e],zb:s};return void 0!==n.color&&(r.V=n.color),r}function Us(t,i,n,s){const e=n.value,r={ee:i,ot:t,Vt:[e,e,e,e],zb:s};return void 0!==n.lineColor&&(r.lt=n.lineColor),void 0!==n.topColor&&(r.Ps=n.topColor),void 0!==n.bottomColor&&(r.Rs=n.bottomColor),r}function qs(t,i,n,s){const e=n.value,r={ee:i,ot:t,Vt:[e,e,e,e],zb:s};return void 0!==n.topLineColor&&(r.Re=n.topLineColor),void 0!==n.bottomLineColor&&(r.De=n.bottomLineColor),void 0!==n.topFillColor1&&(r.ke=n.topFillColor1),void 0!==n.topFillColor2&&(r.ye=n.topFillColor2),void 0!==n.bottomFillColor1&&(r.Ce=n.bottomFillColor1),void 0!==n.bottomFillColor2&&(r.Te=n.bottomFillColor2),r}function Ys(t,i,n,s){const e={ee:i,ot:t,Vt:[n.open,n.high,n.low,n.close],zb:s};return void 0!==n.color&&(e.V=n.color),e}function Zs(t,i,n,s){const e={ee:i,ot:t,Vt:[n.open,n.high,n.low,n.close],zb:s};return void 0!==n.color&&(e.V=n.color),void 0!==n.borderColor&&(e.Ot=n.borderColor),void 0!==n.wickColor&&(e.Xh=n.wickColor),e}function Xs(t,i,n,s,e){const r=m(e)(n),h=Math.max(...r),l=Math.min(...r),a=r[r.length-1],o=[a,h,l,a],_=n,{time:u,color:c}=_;return{ee:i,ot:t,Vt:o,zb:s,$e:Hs(_,[\"time\",\"color\"]),V:c}}function Ks(t){return void 0!==t.Vt}function Gs(t,i){return void 0!==i.customValues&&(t.jb=i.customValues),t}function Js(t){return(i,n,s,e,r,h)=>function(t,i){return i?i(t):void 0===(n=t).open&&void 0===n.value;var n}(s,h)?Gs({ot:i,ee:n,zb:e},s):Gs(t(i,n,s,e,r),s)}function Qs(t){return{Candlestick:Js(Zs),Bar:Js(Ys),Area:Js(Us),Baseline:Js(qs),Histogram:Js($s),Line:Js($s),Custom:Js(Xs)}[t]}function te(t){return{ee:0,Hb:new Map,la:t}}function ie(t,i){if(void 0!==t&&0!==t.length)return{$b:i.key(t[0].ot),Ub:i.key(t[t.length-1].ot)}}function ne(t){let i;return t.forEach((t=>{void 0===i&&(i=t.zb)})),m(i)}class se{constructor(t){this.qb=new Map,this.Yb=new Map,this.Zb=new Map,this.Xb=[],this.q_=t}S(){this.qb.clear(),this.Yb.clear(),this.Zb.clear(),this.Xb=[]}Kb(t,i){let n=0!==this.qb.size,s=!1;const e=this.Yb.get(t);if(void 0!==e)if(1===this.Yb.size)n=!1,s=!0,this.qb.clear();else for(const i of this.Xb)i.pointData.Hb.delete(t)&&(s=!0);let r=[];if(0!==i.length){const n=i.map((t=>t.time)),e=this.q_.createConverterToInternalObj(i),h=Qs(t.Qh()),l=t.Ca(),a=t.Ta();r=i.map(((i,r)=>{const o=e(i.time),_=this.q_.key(o);let u=this.qb.get(_);void 0===u&&(u=te(o),this.qb.set(_,u),s=!0);const c=h(o,u.ee,i,n[r],l,a);return u.Hb.set(t,c),c}))}n&&this.Gb(),this.Jb(t,r);let h=-1;if(s){const t=[];this.qb.forEach((i=>{t.push({timeWeight:0,time:i.la,pointData:i,originalTime:ne(i.Hb)})})),t.sort(((t,i)=>this.q_.key(t.time)-this.q_.key(i.time))),h=this.Qb(t)}return this.tw(t,h,function(t,i,n){const s=ie(t,n),e=ie(i,n);if(void 0!==s&&void 0!==e)return{ta:s.Ub>=e.Ub&&s.$b>=e.$b}}(this.Yb.get(t),e,this.q_))}vd(t){return this.Kb(t,[])}iw(t,i){const n=i;!function(t){void 0===t.zb&&(t.zb=t.time)}(n),this.q_.preprocessData(i);const s=this.q_.createConverterToInternalObj([i])(i.time),e=this.Zb.get(t);if(void 0!==e&&this.q_.key(s)<this.q_.key(e))throw new Error(`Cannot update oldest data, last time=${e}, new time=${s}`);let r=this.qb.get(this.q_.key(s));const h=void 0===r;void 0===r&&(r=te(s),this.qb.set(this.q_.key(s),r));const l=Qs(t.Qh()),a=t.Ca(),o=t.Ta(),_=l(s,r.ee,i,n.zb,a,o);r.Hb.set(t,_),this.nw(t,_);const u={ta:Ks(_)};if(!h)return this.tw(t,-1,u);const c={timeWeight:0,time:r.la,pointData:r,originalTime:ne(r.Hb)},d=Bt(this.Xb,this.q_.key(c.time),((t,i)=>this.q_.key(t.time)<i));this.Xb.splice(d,0,c);for(let t=d;t<this.Xb.length;++t)ee(this.Xb[t].pointData,t);return this.q_.fillWeightsForPoints(this.Xb,d),this.tw(t,d,u)}nw(t,i){let n=this.Yb.get(t);void 0===n&&(n=[],this.Yb.set(t,n));const s=0!==n.length?n[n.length-1]:null;null===s||this.q_.key(i.ot)>this.q_.key(s.ot)?Ks(i)&&n.push(i):Ks(i)?n[n.length-1]=i:n.splice(-1,1),this.Zb.set(t,i.ot)}Jb(t,i){0!==i.length?(this.Yb.set(t,i.filter(Ks)),this.Zb.set(t,i[i.length-1].ot)):(this.Yb.delete(t),this.Zb.delete(t))}Gb(){for(const t of this.Xb)0===t.pointData.Hb.size&&this.qb.delete(this.q_.key(t.time))}Qb(t){let i=-1;for(let n=0;n<this.Xb.length&&n<t.length;++n){const s=this.Xb[n],e=t[n];if(this.q_.key(s.time)!==this.q_.key(e.time)){i=n;break}e.timeWeight=s.timeWeight,ee(e.pointData,n)}if(-1===i&&this.Xb.length!==t.length&&(i=Math.min(this.Xb.length,t.length)),-1===i)return-1;for(let n=i;n<t.length;++n)ee(t[n].pointData,n);return this.q_.fillWeightsForPoints(t,i),this.Xb=t,i}sw(){if(0===this.Yb.size)return null;let t=0;return this.Yb.forEach((i=>{0!==i.length&&(t=Math.max(t,i[i.length-1].ee))})),t}tw(t,i,n){const s={ew:new Map,St:{Eu:this.sw()}};if(-1!==i)this.Yb.forEach(((i,e)=>{s.ew.set(e,{$e:i,rw:e===t?n:void 0})})),this.Yb.has(t)||s.ew.set(t,{$e:[],rw:n}),s.St.hw=this.Xb,s.St.lw=i;else{const i=this.Yb.get(t);s.ew.set(t,{$e:i||[],rw:n})}return s}}function ee(t,i){t.ee=i,t.Hb.forEach((t=>{t.ee=i}))}function re(t){const i={value:t.Vt[3],time:t.zb};return void 0!==t.jb&&(i.customValues=t.jb),i}function he(t){const i=re(t);return void 0!==t.V&&(i.color=t.V),i}function le(t){const i=re(t);return void 0!==t.lt&&(i.lineColor=t.lt),void 0!==t.Ps&&(i.topColor=t.Ps),void 0!==t.Rs&&(i.bottomColor=t.Rs),i}function ae(t){const i=re(t);return void 0!==t.Re&&(i.topLineColor=t.Re),void 0!==t.De&&(i.bottomLineColor=t.De),void 0!==t.ke&&(i.topFillColor1=t.ke),void 0!==t.ye&&(i.topFillColor2=t.ye),void 0!==t.Ce&&(i.bottomFillColor1=t.Ce),void 0!==t.Te&&(i.bottomFillColor2=t.Te),i}function oe(t){const i={open:t.Vt[0],high:t.Vt[1],low:t.Vt[2],close:t.Vt[3],time:t.zb};return void 0!==t.jb&&(i.customValues=t.jb),i}function _e(t){const i=oe(t);return void 0!==t.V&&(i.color=t.V),i}function ue(t){const i=oe(t),{V:n,Ot:s,Xh:e}=t;return void 0!==n&&(i.color=n),void 0!==s&&(i.borderColor=s),void 0!==e&&(i.wickColor=e),i}function ce(t){return{Area:le,Line:he,Baseline:ae,Histogram:he,Bar:_e,Candlestick:ue,Custom:de}[t]}function de(t){const i=t.zb;return Object.assign(Object.assign({},t.$e),{time:i})}const fe={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},ve={vertLines:{color:\"#D6DCDE\",style:0,visible:!0},horzLines:{color:\"#D6DCDE\",style:0,visible:!0}},pe={background:{type:\"solid\",color:\"#FFFFFF\"},textColor:\"#191919\",fontSize:12,fontFamily:N,attributionLogo:!0},me={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},be={rightOffset:0,barSpacing:6,minBarSpacing:.5,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},we={color:\"rgba(0, 0, 0, 0)\",visible:!1,fontSize:48,fontFamily:N,fontStyle:\"\",text:\"\",horzAlign:\"center\",vertAlign:\"center\"};function ge(){return{width:0,height:0,autoSize:!1,layout:pe,crosshair:fe,grid:ve,overlayPriceScales:Object.assign({},me),leftPriceScale:Object.assign(Object.assign({},me),{visible:!1}),rightPriceScale:Object.assign(Object.assign({},me),{visible:!0}),timeScale:be,watermark:we,localization:{locale:ns?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 Me{constructor(t,i){this.aw=t,this.ow=i}applyOptions(t){this.aw.$t().$c(this.ow,t)}options(){return this.Li().W()}width(){return _t(this.ow)?this.aw.Mb(this.ow):0}Li(){return b(this.aw.$t().Uc(this.ow)).Dt}}function xe(t,i,n){const s=Hs(t,[\"time\",\"originalTime\"]),e=Object.assign({time:i},s);return void 0!==n&&(e.originalTime=n),e}const Se={color:\"#FF0000\",price:0,lineStyle:2,lineWidth:1,lineVisible:!0,axisLabelVisible:!0,title:\"\",axisLabelColor:\"\",axisLabelTextColor:\"\"};class ke{constructor(t){this.Nh=t}applyOptions(t){this.Nh.$h(t)}options(){return this.Nh.W()}_w(){return this.Nh}}class ye{constructor(t,i,n,s,e){this.uw=new D,this.Es=t,this.cw=i,this.dw=n,this.q_=e,this.fw=s}S(){this.uw.S()}priceFormatter(){return this.Es.ba()}priceToCoordinate(t){const i=this.Es.Ct();return null===i?null:this.Es.Dt().Rt(t,i.Vt)}coordinateToPrice(t){const i=this.Es.Ct();return null===i?null:this.Es.Dt().pn(t,i.Vt)}barsInLogicalRange(t){if(null===t)return null;const i=new yn(new xn(t.from,t.to)).lu(),n=this.Es.In();if(n.Ni())return null;const s=n.ll(i.Os(),1),e=n.ll(i.ui(),-1),r=b(n.el()),h=b(n.An());if(null!==s&&null!==e&&s.ee>e.ee)return{barsBefore:t.from-r,barsAfter:h-t.to};const l={barsBefore:null===s||s.ee===r?t.from-r:s.ee-r,barsAfter:null===e||e.ee===h?h-t.to:h-e.ee};return null!==s&&null!==e&&(l.from=s.zb,l.to=e.zb),l}setData(t){this.q_,this.Es.Qh(),this.cw.pw(this.Es,t),this.mw(\"full\")}update(t){this.Es.Qh(),this.cw.bw(this.Es,t),this.mw(\"update\")}dataByIndex(t,i){const n=this.Es.In().ll(t,i);if(null===n)return null;return ce(this.seriesType())(n)}data(){const t=ce(this.seriesType());return this.Es.In().ne().map((i=>t(i)))}subscribeDataChanged(t){this.uw.l(t)}unsubscribeDataChanged(t){this.uw.v(t)}setMarkers(t){this.q_;const i=t.map((t=>xe(t,this.q_.convertHorzItemToInternal(t.time),t.time)));this.Es.na(i)}markers(){return this.Es.sa().map((t=>xe(t,t.originalTime,void 0)))}applyOptions(t){this.Es.$h(t)}options(){return z(this.Es.W())}priceScale(){return this.dw.priceScale(this.Es.Dt().Pa())}createPriceLine(t){const i=V(z(Se),t),n=this.Es.ea(i);return new ke(n)}removePriceLine(t){this.Es.ra(t._w())}seriesType(){return this.Es.Qh()}attachPrimitive(t){this.Es.ka(t),t.attached&&t.attached({chart:this.fw,series:this,requestUpdate:()=>this.Es.$t().Kl()})}detachPrimitive(t){this.Es.ya(t),t.detached&&t.detached()}mw(t){this.uw.M()&&this.uw.m(t)}}class Ce{constructor(t,i,n){this.ww=new D,this.mu=new D,this.Om=new D,this.$i=t,this.yl=t.St(),this.ab=i,this.yl.nc().l(this.gw.bind(this)),this.yl.sc().l(this.Mw.bind(this)),this.ab.Nm().l(this.xw.bind(this)),this.q_=n}S(){this.yl.nc().p(this),this.yl.sc().p(this),this.ab.Nm().p(this),this.ww.S(),this.mu.S(),this.Om.S()}scrollPosition(){return this.yl.Hu()}scrollToPosition(t,i){i?this.yl.Ju(t,1e3):this.$i.Jn(t)}scrollToRealTime(){this.yl.Gu()}getVisibleRange(){const t=this.yl.Vu();return null===t?null:{from:t.from.originalTime,to:t.to.originalTime}}setVisibleRange(t){const i={from:this.q_.convertHorzItemToInternal(t.from),to:this.q_.convertHorzItemToInternal(t.to)},n=this.yl.Iu(i);this.$i.pd(n)}getVisibleLogicalRange(){const t=this.yl.Du();return null===t?null:{from:t.Os(),to:t.ui()}}setVisibleLogicalRange(t){p(t.from<=t.to,\"The from index cannot be after the to index.\"),this.$i.pd(t)}resetTimeScale(){this.$i.Kn()}fitContent(){this.$i.hc()}logicalToCoordinate(t){const i=this.$i.St();return i.Ni()?null:i.It(t)}coordinateToLogical(t){return this.yl.Ni()?null:this.yl.Nu(t)}timeToCoordinate(t){const i=this.q_.convertHorzItemToInternal(t),n=this.yl.Va(i,!1);return null===n?null:this.yl.It(n)}coordinateToTime(t){const i=this.$i.St(),n=i.Nu(t),s=i.Ui(n);return null===s?null:s.originalTime}width(){return this.ab.um().width}height(){return this.ab.um().height}subscribeVisibleTimeRangeChange(t){this.ww.l(t)}unsubscribeVisibleTimeRangeChange(t){this.ww.v(t)}subscribeVisibleLogicalRangeChange(t){this.mu.l(t)}unsubscribeVisibleLogicalRangeChange(t){this.mu.v(t)}subscribeSizeChange(t){this.Om.l(t)}unsubscribeSizeChange(t){this.Om.v(t)}applyOptions(t){this.yl.$h(t)}options(){return Object.assign(Object.assign({},z(this.yl.W())),{barSpacing:this.yl.le()})}gw(){this.ww.M()&&this.ww.m(this.getVisibleRange())}Mw(){this.mu.M()&&this.mu.m(this.getVisibleLogicalRange())}xw(t){this.Om.m(t.width,t.height)}}function Te(t){if(void 0===t||\"custom\"===t.type)return;const i=t;void 0!==i.minMove&&void 0===i.precision&&(i.precision=function(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}(i.minMove))}function Pe(t){return function(t){if(I(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;I(i)&&(t.handleScale.axisPressedMouseMove={time:i,price:i}),I(n)&&(t.handleScale.axisDoubleClickReset={time:n,price:n})}const i=t.handleScroll;I(i)&&(t.handleScroll={horzTouchDrag:i,vertTouchDrag:i,mouseWheel:i,pressedMouseMove:i})}(t),t}class Re{constructor(t,i,n){this.Sw=new Map,this.kw=new Map,this.yw=new D,this.Cw=new D,this.Tw=new D,this.Pw=new se(i);const s=void 0===n?z(ge()):V(z(ge()),Pe(n));this.q_=i,this.aw=new Fs(t,s,i),this.aw.lm().l((t=>{this.yw.M()&&this.yw.m(this.Rw(t()))}),this),this.aw.am().l((t=>{this.Cw.M()&&this.Cw.m(this.Rw(t()))}),this),this.aw.Xc().l((t=>{this.Tw.M()&&this.Tw.m(this.Rw(t()))}),this);const e=this.aw.$t();this.Dw=new Ce(e,this.aw.fb(),this.q_)}remove(){this.aw.lm().p(this),this.aw.am().p(this),this.aw.Xc().p(this),this.Dw.S(),this.aw.S(),this.Sw.clear(),this.kw.clear(),this.yw.S(),this.Cw.S(),this.Tw.S(),this.Pw.S()}resize(t,i,n){this.autoSizeActive()||this.aw._b(t,i,n)}addCustomSeries(t,i){const n=w(t),s=Object.assign(Object.assign({},_),n.defaultOptions());return this.Vw(\"Custom\",s,i,n)}addAreaSeries(t){return this.Vw(\"Area\",l,t)}addBaselineSeries(t){return this.Vw(\"Baseline\",a,t)}addBarSeries(t){return this.Vw(\"Bar\",r,t)}addCandlestickSeries(t={}){return 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)}(t),this.Vw(\"Candlestick\",e,t)}addHistogramSeries(t){return this.Vw(\"Histogram\",o,t)}addLineSeries(t){return this.Vw(\"Line\",h,t)}removeSeries(t){const i=m(this.Sw.get(t)),n=this.Pw.vd(i);this.aw.$t().vd(i),this.Ow(n),this.Sw.delete(t),this.kw.delete(i)}pw(t,i){this.Ow(this.Pw.Kb(t,i))}bw(t,i){this.Ow(this.Pw.iw(t,i))}subscribeClick(t){this.yw.l(t)}unsubscribeClick(t){this.yw.v(t)}subscribeCrosshairMove(t){this.Tw.l(t)}unsubscribeCrosshairMove(t){this.Tw.v(t)}subscribeDblClick(t){this.Cw.l(t)}unsubscribeDblClick(t){this.Cw.v(t)}priceScale(t){return new Me(this.aw,t)}timeScale(){return this.Dw}applyOptions(t){this.aw.$h(Pe(t))}options(){return this.aw.W()}takeScreenshot(){return this.aw.wb()}autoSizeActive(){return this.aw.kb()}chartElement(){return this.aw.yb()}paneSize(){const t=this.aw.Tb();return{height:t.height,width:t.width}}setCrosshairPosition(t,i,n){const s=this.Sw.get(n);if(void 0===s)return;const e=this.aw.$t().dr(s);null!==e&&this.aw.$t().ad(t,i,e)}clearCrosshairPosition(){this.aw.$t().od(!0)}Vw(t,i,n={},s){Te(n.priceFormat);const e=V(z(u),z(i),n),r=this.aw.$t().dd(t,e,s),h=new ye(r,this,this,this,this.q_);return this.Sw.set(h,r),this.kw.set(r,h),h}Ow(t){const i=this.aw.$t();i._d(t.St.Eu,t.St.hw,t.St.lw),t.ew.forEach(((t,i)=>i.J(t.$e,t.rw))),i.Wu()}Bw(t){return m(this.kw.get(t))}Rw(t){const i=new Map;t.Nb.forEach(((t,n)=>{const s=n.Qh(),e=ce(s)(t);if(\"Custom\"!==s)p(js(e));else{const t=n.Ta();p(!t||!1===t(e))}i.set(this.Bw(n),e)}));const n=void 0!==t.Eb&&this.kw.has(t.Eb)?this.Bw(t.Eb):void 0;return{time:t.zb,logical:t.ee,point:t.Lb,hoveredSeries:n,hoveredObjectId:t.Fb,seriesData:i,sourceEvent:t.Wb}}}function De(t,i,n){let s;if(A(t)){const i=document.getElementById(t);p(null!==i,`Cannot find element in DOM with id=${t}`),s=i}else s=t;const e=new Re(s,i,n);return i.setOptions(e.options()),e}function Ve(t,i){return De(t,new is,is.Id(i))}function Oe(){return is}const Be=Object.assign(Object.assign({},u),_);function Ae(){return\"4.2.3\"}export{In as ColorType,at as CrosshairMode,Bn as LastPriceAnimationMode,d as LineStyle,c as LineType,Li as MismatchDirection,An as PriceLineSource,pn as PriceScaleMode,zn as TickMarkType,On as TrackingModeExitMode,Ve as createChart,De as createChartEx,Be as customSeriesDefaultOptions,Oe as defaultHorzScaleBehavior,En as isBusinessDay,Nn as isUTCTimestamp,Ae as version};\n","import { useCallback, useState, useEffect } from 'react';\r\nimport { Socket } from 'socket.io-client';\r\n\r\ninterface OHLCVCandle {\r\n time: number;\r\n open: number;\r\n high: number;\r\n low: number;\r\n close: number;\r\n volume: number;\r\n}\r\n\r\ninterface OHLCVInitialData {\r\n mint: string;\r\n timeFrame: number;\r\n data: OHLCVCandle[];\r\n timestamp: number;\r\n error?: string;\r\n}\r\n\r\ninterface OHLCVUpdateData {\r\n mint: string;\r\n timeFrame: number;\r\n candle: OHLCVCandle;\r\n timestamp: number;\r\n}\r\n\r\ninterface OHLCVNewCandleData {\r\n mint: string;\r\n timeFrame: number;\r\n candle: OHLCVCandle;\r\n timestamp: number;\r\n}\r\n\r\n/**\r\n * Hook to manage socket connection\r\n * This is a simplified version for the NPM package\r\n * Users should provide their own socket instance via props\r\n */\r\nexport const useSocket = (socketInstance?: Socket | null) => {\r\n const [socket] = useState<Socket | null>(socketInstance || null);\r\n const [isConnected, setIsConnected] = useState(false);\r\n const [isConnecting, setIsConnecting] = useState(false);\r\n\r\n // Track connection state\r\n useEffect(() => {\r\n if (!socket) {\r\n setIsConnected(false);\r\n setIsConnecting(false);\r\n return;\r\n }\r\n\r\n setIsConnecting(true);\r\n\r\n const handleConnect = () => {\r\n console.log('✅ [useSocket] Connected to Socket.IO server');\r\n setIsConnected(true);\r\n setIsConnecting(false);\r\n };\r\n\r\n const handleDisconnect = () => {\r\n console.log('🔌 [useSocket] Disconnected from Socket.IO server');\r\n setIsConnected(false);\r\n setIsConnecting(false);\r\n };\r\n\r\n const handleConnectError = (error: any) => {\r\n console.error('❌ [useSocket] Connection error:', error);\r\n setIsConnecting(false);\r\n };\r\n\r\n // Set initial state\r\n if (socket.connected) {\r\n setIsConnected(true);\r\n setIsConnecting(false);\r\n }\r\n\r\n // Add event listeners\r\n socket.on('connect', handleConnect);\r\n socket.on('disconnect', handleDisconnect);\r\n socket.on('connect_error', handleConnectError);\r\n\r\n return () => {\r\n socket.off('connect', handleConnect);\r\n socket.off('disconnect', handleDisconnect);\r\n socket.off('connect_error', handleConnectError);\r\n };\r\n }, [socket]);\r\n\r\n // Connect function (no-op since connection is managed by provider)\r\n const connect = useCallback(() => {\r\n console.log('🔍 [useSocket] Connect called - connection managed by provider');\r\n }, []);\r\n\r\n // Disconnect function (no-op since connection is managed by provider)\r\n const disconnect = useCallback(() => {\r\n console.log('🔍 [useSocket] Disconnect called - connection managed by provider');\r\n }, []);\r\n\r\n // Subscribe to OHLCV updates\r\n const subscribeToOHLCV = useCallback((\r\n mint: string, \r\n timeFrame: number = 60,\r\n onInitialData?: (data: OHLCVInitialData) => void,\r\n onUpdate?: (data: OHLCVUpdateData) => void,\r\n onNewCandle?: (data: OHLCVNewCandleData) => void\r\n ) => {\r\n if (!socket?.connected) {\r\n console.warn('⚠️ [useSocket] Socket not connected, cannot subscribe');\r\n return false;\r\n }\r\n\r\n try {\r\n // Subscribe to OHLCV updates\r\n socket.emit('ohlcv:subscribe', { mint, timeFrame });\r\n\r\n // Listen for initial data\r\n if (onInitialData) {\r\n socket.on('ohlcv:initial', onInitialData);\r\n }\r\n\r\n // Listen for updates\r\n if (onUpdate) {\r\n socket.on('ohlcv:update', onUpdate);\r\n }\r\n\r\n // Listen for new candles\r\n if (onNewCandle) {\r\n socket.on('ohlcv:newCandle', onNewCandle);\r\n }\r\n\r\n console.log(`📊 [useSocket] Subscribed to OHLCV updates for ${mint} (${timeFrame}s)`);\r\n return true;\r\n\r\n } catch (error) {\r\n console.error('❌ [useSocket] Failed to subscribe to OHLCV:', error);\r\n return false;\r\n }\r\n }, [socket]);\r\n\r\n // Unsubscribe from OHLCV updates\r\n const unsubscribeFromOHLCV = useCallback((\r\n mint: string, \r\n timeFrame: number = 60,\r\n onInitialData?: (data: OHLCVInitialData) => void,\r\n onUpdate?: (data: OHLCVUpdateData) => void,\r\n onNewCandle?: (data: OHLCVNewCandleData) => void\r\n ) => {\r\n if (!socket?.connected) return false;\r\n\r\n try {\r\n // Unsubscribe from OHLCV updates\r\n socket.emit('ohlcv:unsubscribe', { mint, timeFrame });\r\n\r\n // Remove listeners\r\n if (onInitialData) {\r\n socket.off('ohlcv:initial', onInitialData);\r\n }\r\n if (onUpdate) {\r\n socket.off('ohlcv:update', onUpdate);\r\n }\r\n if (onNewCandle) {\r\n socket.off('ohlcv:newCandle', onNewCandle);\r\n }\r\n\r\n console.log(`📊 [useSocket] Unsubscribed from OHLCV updates for ${mint} (${timeFrame}s)`);\r\n return true;\r\n\r\n } catch (error) {\r\n console.error('❌ [useSocket] Failed to unsubscribe from OHLCV:', error);\r\n return false;\r\n }\r\n }, [socket]);\r\n\r\n // Subscribe to price updates\r\n const subscribeToPrice = useCallback((\r\n mint: string,\r\n onPriceUpdate?: (data: any) => void\r\n ) => {\r\n if (!socket?.connected) {\r\n console.warn('⚠️ [useSocket] Socket not connected, cannot subscribe');\r\n return false;\r\n }\r\n\r\n try {\r\n // Subscribe to price updates\r\n socket.emit('price:subscribe', { mint });\r\n\r\n // Listen for price updates\r\n if (onPriceUpdate) {\r\n socket.on('price:update', onPriceUpdate);\r\n }\r\n\r\n console.log(`💰 [useSocket] Subscribed to price updates for ${mint}`);\r\n return true;\r\n\r\n } catch (error) {\r\n console.error('❌ [useSocket] Failed to subscribe to price:', error);\r\n return false;\r\n }\r\n }, [socket]);\r\n\r\n // Unsubscribe from price updates\r\n const unsubscribeFromPrice = useCallback((\r\n mint: string,\r\n onPriceUpdate?: (data: any) => void\r\n ) => {\r\n if (!socket?.connected) return false;\r\n\r\n try {\r\n // Unsubscribe from price updates\r\n socket.emit('price:unsubscribe', { mint });\r\n\r\n // Remove listener\r\n if (onPriceUpdate) {\r\n socket.off('price:update', onPriceUpdate);\r\n }\r\n\r\n console.log(`💰 [useSocket] Unsubscribed from price updates for ${mint}`);\r\n return true;\r\n\r\n } catch (error) {\r\n console.error('❌ [useSocket] Failed to unsubscribe from price:', error);\r\n return false;\r\n }\r\n }, [socket]);\r\n\r\n // Test socket connection\r\n const testConnection = useCallback((message: string) => {\r\n if (!socket?.connected) {\r\n console.warn('⚠️ [useSocket] Socket not connected, cannot send test message');\r\n return false;\r\n }\r\n\r\n try {\r\n socket.emit('test-message', {\r\n message,\r\n timestamp: Date.now()\r\n });\r\n\r\n // Listen for test response\r\n socket.once('test-response', (response) => {\r\n console.log('🧪 [useSocket] Test response received:', response);\r\n });\r\n\r\n return true;\r\n } catch (error) {\r\n console.error('❌ [useSocket] Failed to send test message:', error);\r\n return false;\r\n }\r\n }, [socket]);\r\n\r\n return {\r\n socket,\r\n isConnected,\r\n isConnecting,\r\n connect,\r\n disconnect,\r\n subscribeToOHLCV,\r\n unsubscribeFromOHLCV,\r\n subscribeToPrice,\r\n unsubscribeFromPrice,\r\n testConnection,\r\n };\r\n};\r\n\r\n","import { useState, useEffect, useCallback, useMemo } from 'react';\r\n\r\ninterface ComprehensiveAnalytics {\r\n // Performance metrics\r\n performance: {\r\n '24H': { gain: number; percentage: string; isPositive: boolean };\r\n '7D': { gain: number; percentage: string; isPositive: boolean };\r\n '1M': { gain: number; percentage: string; isPositive: boolean };\r\n 'All Time': { gain: number; percentage: string; isPositive: boolean };\r\n };\r\n \r\n // Market data\r\n market: {\r\n marketValue: string;\r\n price: string;\r\n marketCap: string;\r\n circulating: string;\r\n totalSupply: string;\r\n };\r\n \r\n // 24H statistics\r\n '24H': {\r\n high: string;\r\n low: string;\r\n volume: string;\r\n return: string;\r\n };\r\n \r\n // Volume data\r\n volume: {\r\n current: string;\r\n '24h': string;\r\n unit: string;\r\n };\r\n \r\n // Blockchain data\r\n blockchain: {\r\n currentRealSol: string;\r\n realSolReserves: number;\r\n virtualSolReserves: number;\r\n tokenReserves: number;\r\n };\r\n \r\n // Additional data\r\n additional: {\r\n solUsdPrice: string;\r\n timestamp: number;\r\n };\r\n}\r\n\r\ninterface EnhancedTokenAnalytics {\r\n // Real-time analytics from backend\r\n analytics: ComprehensiveAnalytics | null;\r\n \r\n // Current market data\r\n currentPrice: number;\r\n currentMarketCap: number;\r\n currentVolume: number;\r\n \r\n // Performance metrics (formatted for display)\r\n performance24h: { value: string; isPositive: boolean; raw: number };\r\n performance7d: { value: string; isPositive: boolean; raw: number };\r\n performance1m: { value: string; isPositive: boolean; raw: number };\r\n performanceAllTime: { value: string; isPositive: boolean; raw: number };\r\n \r\n // 24H statistics\r\n high24h: number;\r\n low24h: number;\r\n volume24h: number;\r\n return24h: number;\r\n \r\n // Loading and error states\r\n loading: boolean;\r\n error: string | null;\r\n \r\n // Connection status\r\n connected: boolean;\r\n \r\n // Last update timestamp\r\n lastUpdate: number | null;\r\n \r\n // Helper functions\r\n isRealVolume: (volume: number) => boolean;\r\n}\r\n\r\n/**\r\n * Simplified hook for token analytics\r\n * This is a stub version for the NPM package\r\n * Users should provide their own analytics data or implement their own hook\r\n */\r\nexport function useOptimizedTokenAnalytics(\r\n mint: string | undefined,\r\n analyticsData?: any\r\n): EnhancedTokenAnalytics {\r\n const [analytics, setAnalytics] = useState<ComprehensiveAnalytics | null>(null);\r\n const [loading, setLoading] = useState(false);\r\n const [error, setError] = useState<string | null>(null);\r\n const [lastUpdate, setLastUpdate] = useState<number | null>(null);\r\n const [connected, setConnected] = useState(false);\r\n\r\n // Update analytics when provided\r\n useEffect(() => {\r\n if (analyticsData) {\r\n setAnalytics(analyticsData);\r\n setLastUpdate(Date.now());\r\n setConnected(true);\r\n setLoading(false);\r\n }\r\n }, [analyticsData]);\r\n\r\n // Calculate derived values from analytics data\r\n const derivedValues = useMemo(() => {\r\n if (!analytics || !analytics.market) {\r\n return {\r\n currentPrice: 0,\r\n currentMarketCap: 0,\r\n currentVolume: 0,\r\n performance24h: { value: '0.00%', isPositive: false, raw: 0 },\r\n performance7d: { value: '0.00%', isPositive: false, raw: 0 },\r\n performance1m: { value: '0.00%', isPositive: false, raw: 0 },\r\n performanceAllTime: { value: '0.00%', isPositive: false, raw: 0 },\r\n high24h: 0,\r\n low24h: 0,\r\n volume24h: 0,\r\n return24h: 0\r\n };\r\n }\r\n\r\n // Extract current values with safe access\r\n const currentPrice = parseFloat(analytics.market?.price || '0') || 0;\r\n const currentMarketCap = parseFloat(analytics.market?.marketCap || '0') || 0;\r\n \r\n // CRITICAL: Only use real volume, filter out fake 0.01 values\r\n let currentVolume = parseFloat(analytics.volume?.current || '0') || 0;\r\n if (currentVolume <= 0.01) {\r\n // Use current real SOL reserves instead of fake volume\r\n currentVolume = parseFloat(analytics.blockchain?.currentRealSol || '0') || 0;\r\n }\r\n\r\n // Extract performance metrics with safe access\r\n const performance24h = {\r\n value: analytics.performance?.['24H']?.percentage || '0.00%',\r\n isPositive: analytics.performance?.['24H']?.isPositive || false,\r\n raw: analytics.performance?.['24H']?.gain || 0\r\n };\r\n\r\n const performance7d = {\r\n value: analytics.performance?.['7D']?.percentage || '0.00%',\r\n isPositive: analytics.performance?.['7D']?.isPositive || false,\r\n raw: analytics.performance?.['7D']?.gain || 0\r\n };\r\n\r\n const performance1m = {\r\n value: analytics.performance?.['1M']?.percentage || '0.00%',\r\n isPositive: analytics.performance?.['1M']?.isPositive || false,\r\n raw: analytics.performance?.['1M']?.gain || 0\r\n };\r\n\r\n const performanceAllTime = {\r\n value: analytics.performance?.['All Time']?.percentage || '0.00%',\r\n isPositive: analytics.performance?.['All Time']?.isPositive || false,\r\n raw: analytics.performance?.['All Time']?.gain || 0\r\n };\r\n\r\n // Extract 24H statistics with safe access\r\n const high24h = parseFloat(analytics['24H']?.high || '0') || 0;\r\n const low24h = parseFloat(analytics['24H']?.low || '0') || 0;\r\n \r\n // CRITICAL: Only use real volume, filter out fake 0.01 values\r\n let volume24h = parseFloat(analytics.volume?.['24h'] || '0') || 0;\r\n if (volume24h <= 0.01) {\r\n // Use current real SOL reserves instead of fake volume\r\n volume24h = parseFloat(analytics.blockchain?.currentRealSol || '0') || 0;\r\n }\r\n \r\n const return24h = parseFloat(analytics['24H']?.return || '0') || 0;\r\n\r\n return {\r\n currentPrice,\r\n currentMarketCap,\r\n currentVolume,\r\n performance24h,\r\n performance7d,\r\n performance1m,\r\n performanceAllTime,\r\n high24h,\r\n low24h,\r\n volume24h,\r\n return24h\r\n };\r\n }, [analytics]);\r\n\r\n // Helper function to check if volume is real (not fake 0.01)\r\n const isRealVolume = useCallback((volume: number) => volume > 0.01, []);\r\n\r\n const result = {\r\n // Raw analytics data from backend\r\n analytics,\r\n \r\n // Derived values for easy consumption\r\n ...derivedValues,\r\n \r\n // Helper functions\r\n isRealVolume,\r\n \r\n // State management\r\n loading,\r\n error,\r\n connected,\r\n lastUpdate\r\n };\r\n \r\n return result;\r\n}\r\n\r\n","'use strict';\n\nexport default function bind(fn, thisArg) {\n return function wrap() {\n return fn.apply(thisArg, arguments);\n };\n}\n","'use strict';\n\nimport bind from './helpers/bind.js';\n\n// utils is a library of generic helper functions non-specific to axios\n\nconst {toString} = Object.prototype;\nconst {getPrototypeOf} = Object;\nconst {iterator, toStringTag} = Symbol;\n\nconst kindOf = (cache => thing => {\n const str = toString.call(thing);\n return cache[str] || (cache[str] = str.slice(8, -1).toLowerCase());\n})(Object.create(null));\n\nconst kindOfTest = (type) => {\n type = type.toLowerCase();\n return (thing) => kindOf(thing) === type\n}\n\nconst typeOfTest = type => thing => typeof thing === type;\n\n/**\n * Determine if a value is an Array\n *\n * @param {Object} val The value to test\n *\n * @returns {boolean} True if value is an Array, otherwise false\n */\nconst {isArray} = Array;\n\n/**\n * Determine if a value is undefined\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if the value is undefined, otherwise false\n */\nconst isUndefined = typeOfTest('undefined');\n\n/**\n * Determine if a value is a Buffer\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Buffer, otherwise false\n */\nfunction isBuffer(val) {\n return val !== null && !isUndefined(val) && val.constructor !== null && !isUndefined(val.constructor)\n && isFunction(val.constructor.isBuffer) && val.constructor.isBuffer(val);\n}\n\n/**\n * Determine if a value is an ArrayBuffer\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is an ArrayBuffer, otherwise false\n */\nconst isArrayBuffer = kindOfTest('ArrayBuffer');\n\n\n/**\n * Determine if a value is a view on an ArrayBuffer\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a view on an ArrayBuffer, otherwise false\n */\nfunction isArrayBufferView(val) {\n let result;\n if ((typeof ArrayBuffer !== 'undefined') && (ArrayBuffer.isView)) {\n result = ArrayBuffer.isView(val);\n } else {\n result = (val) && (val.buffer) && (isArrayBuffer(val.buffer));\n }\n return result;\n}\n\n/**\n * Determine if a value is a String\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a String, otherwise false\n */\nconst isString = typeOfTest('string');\n\n/**\n * Determine if a value is a Function\n *\n * @param {*} val The value to test\n * @returns {boolean} True if value is a Function, otherwise false\n */\nconst isFunction = typeOfTest('function');\n\n/**\n * Determine if a value is a Number\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Number, otherwise false\n */\nconst isNumber = typeOfTest('number');\n\n/**\n * Determine if a value is an Object\n *\n * @param {*} thing The value to test\n *\n * @returns {boolean} True if value is an Object, otherwise false\n */\nconst isObject = (thing) => thing !== null && typeof thing === 'object';\n\n/**\n * Determine if a value is a Boolean\n *\n * @param {*} thing The value to test\n * @returns {boolean} True if value is a Boolean, otherwise false\n */\nconst isBoolean = thing => thing === true || thing === false;\n\n/**\n * Determine if a value is a plain Object\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a plain Object, otherwise false\n */\nconst isPlainObject = (val) => {\n if (kindOf(val) !== 'object') {\n return false;\n }\n\n const prototype = getPrototypeOf(val);\n return (prototype === null || prototype === Object.prototype || Object.getPrototypeOf(prototype) === null) && !(toStringTag in val) && !(iterator in val);\n}\n\n/**\n * Determine if a value is an empty object (safely handles Buffers)\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is an empty object, otherwise false\n */\nconst isEmptyObject = (val) => {\n // Early return for non-objects or Buffers to prevent RangeError\n if (!isObject(val) || isBuffer(val)) {\n return false;\n }\n\n try {\n return Object.keys(val).length === 0 && Object.getPrototypeOf(val) === Object.prototype;\n } catch (e) {\n // Fallback for any other objects that might cause RangeError with Object.keys()\n return false;\n }\n}\n\n/**\n * Determine if a value is a Date\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Date, otherwise false\n */\nconst isDate = kindOfTest('Date');\n\n/**\n * Determine if a value is a File\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a File, otherwise false\n */\nconst isFile = kindOfTest('File');\n\n/**\n * Determine if a value is a Blob\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Blob, otherwise false\n */\nconst isBlob = kindOfTest('Blob');\n\n/**\n * Determine if a value is a FileList\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a File, otherwise false\n */\nconst isFileList = kindOfTest('FileList');\n\n/**\n * Determine if a value is a Stream\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Stream, otherwise false\n */\nconst isStream = (val) => isObject(val) && isFunction(val.pipe);\n\n/**\n * Determine if a value is a FormData\n *\n * @param {*} thing The value to test\n *\n * @returns {boolean} True if value is an FormData, otherwise false\n */\nconst isFormData = (thing) => {\n let kind;\n return thing && (\n (typeof FormData === 'function' && thing instanceof FormData) || (\n isFunction(thing.append) && (\n (kind = kindOf(thing)) === 'formdata' ||\n // detect form-data instance\n (kind === 'object' && isFunction(thing.toString) && thing.toString() === '[object FormData]')\n )\n )\n )\n}\n\n/**\n * Determine if a value is a URLSearchParams object\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a URLSearchParams object, otherwise false\n */\nconst isURLSearchParams = kindOfTest('URLSearchParams');\n\nconst [isReadableStream, isRequest, isResponse, isHeaders] = ['ReadableStream', 'Request', 'Response', 'Headers'].map(kindOfTest);\n\n/**\n * Trim excess whitespace off the beginning and end of a string\n *\n * @param {String} str The String to trim\n *\n * @returns {String} The String freed of excess whitespace\n */\nconst trim = (str) => str.trim ?\n str.trim() : str.replace(/^[\\s\\uFEFF\\xA0]+|[\\s\\uFEFF\\xA0]+$/g, '');\n\n/**\n * Iterate over an Array or an Object invoking a function for each item.\n *\n * If `obj` is an Array callback will be called passing\n * the value, index, and complete array for each item.\n *\n * If 'obj' is an Object callback will be called passing\n * the value, key, and complete object for each property.\n *\n * @param {Object|Array} obj The object to iterate\n * @param {Function} fn The callback to invoke for each item\n *\n * @param {Boolean} [allOwnKeys = false]\n * @returns {any}\n */\nfunction forEach(obj, fn, {allOwnKeys = false} = {}) {\n // Don't bother if no value provided\n if (obj === null || typeof obj === 'undefined') {\n return;\n }\n\n let i;\n let l;\n\n // Force an array if not already something iterable\n if (typeof obj !== 'object') {\n /*eslint no-param-reassign:0*/\n obj = [obj];\n }\n\n if (isArray(obj)) {\n // Iterate over array values\n for (i = 0, l = obj.length; i < l; i++) {\n fn.call(null, obj[i], i, obj);\n }\n } else {\n // Buffer check\n if (isBuffer(obj)) {\n return;\n }\n\n // Iterate over object keys\n const keys = allOwnKeys ? Object.getOwnPropertyNames(obj) : Object.keys(obj);\n const len = keys.length;\n let key;\n\n for (i = 0; i < len; i++) {\n key = keys[i];\n fn.call(null, obj[key], key, obj);\n }\n }\n}\n\nfunction findKey(obj, key) {\n if (isBuffer(obj)){\n return null;\n }\n\n key = key.toLowerCase();\n const keys = Object.keys(obj);\n let i = keys.length;\n let _key;\n while (i-- > 0) {\n _key = keys[i];\n if (key === _key.toLowerCase()) {\n return _key;\n }\n }\n return null;\n}\n\nconst _global = (() => {\n /*eslint no-undef:0*/\n if (typeof globalThis !== \"undefined\") return globalThis;\n return typeof self !== \"undefined\" ? self : (typeof window !== 'undefined' ? window : global)\n})();\n\nconst isContextDefined = (context) => !isUndefined(context) && context !== _global;\n\n/**\n * Accepts varargs expecting each argument to be an object, then\n * immutably merges the properties of each object and returns result.\n *\n * When multiple objects contain the same key the later object in\n * the arguments list will take precedence.\n *\n * Example:\n *\n * ```js\n * var result = merge({foo: 123}, {foo: 456});\n * console.log(result.foo); // outputs 456\n * ```\n *\n * @param {Object} obj1 Object to merge\n *\n * @returns {Object} Result of all merge properties\n */\nfunction merge(/* obj1, obj2, obj3, ... */) {\n const {caseless, skipUndefined} = isContextDefined(this) && this || {};\n const result = {};\n const assignValue = (val, key) => {\n const targetKey = caseless && findKey(result, key) || key;\n if (isPlainObject(result[targetKey]) && isPlainObject(val)) {\n result[targetKey] = merge(result[targetKey], val);\n } else if (isPlainObject(val)) {\n result[targetKey] = merge({}, val);\n } else if (isArray(val)) {\n result[targetKey] = val.slice();\n } else if (!skipUndefined || !isUndefined(val)) {\n result[targetKey] = val;\n }\n }\n\n for (let i = 0, l = arguments.length; i < l; i++) {\n arguments[i] && forEach(arguments[i], assignValue);\n }\n return result;\n}\n\n/**\n * Extends object a by mutably adding to it the properties of object b.\n *\n * @param {Object} a The object to be extended\n * @param {Object} b The object to copy properties from\n * @param {Object} thisArg The object to bind function to\n *\n * @param {Boolean} [allOwnKeys]\n * @returns {Object} The resulting value of object a\n */\nconst extend = (a, b, thisArg, {allOwnKeys}= {}) => {\n forEach(b, (val, key) => {\n if (thisArg && isFunction(val)) {\n a[key] = bind(val, thisArg);\n } else {\n a[key] = val;\n }\n }, {allOwnKeys});\n return a;\n}\n\n/**\n * Remove byte order marker. This catches EF BB BF (the UTF-8 BOM)\n *\n * @param {string} content with BOM\n *\n * @returns {string} content value without BOM\n */\nconst stripBOM = (content) => {\n if (content.charCodeAt(0) === 0xFEFF) {\n content = content.slice(1);\n }\n return content;\n}\n\n/**\n * Inherit the prototype methods from one constructor into another\n * @param {function} constructor\n * @param {function} superConstructor\n * @param {object} [props]\n * @param {object} [descriptors]\n *\n * @returns {void}\n */\nconst inherits = (constructor, superConstructor, props, descriptors) => {\n constructor.prototype = Object.create(superConstructor.prototype, descriptors);\n constructor.prototype.constructor = constructor;\n Object.defineProperty(constructor, 'super', {\n value: superConstructor.prototype\n });\n props && Object.assign(constructor.prototype, props);\n}\n\n/**\n * Resolve object with deep prototype chain to a flat object\n * @param {Object} sourceObj source object\n * @param {Object} [destObj]\n * @param {Function|Boolean} [filter]\n * @param {Function} [propFilter]\n *\n * @returns {Object}\n */\nconst toFlatObject = (sourceObj, destObj, filter, propFilter) => {\n let props;\n let i;\n let prop;\n const merged = {};\n\n destObj = destObj || {};\n // eslint-disable-next-line no-eq-null,eqeqeq\n if (sourceObj == null) return destObj;\n\n do {\n props = Object.getOwnPropertyNames(sourceObj);\n i = props.length;\n while (i-- > 0) {\n prop = props[i];\n if ((!propFilter || propFilter(prop, sourceObj, destObj)) && !merged[prop]) {\n destObj[prop] = sourceObj[prop];\n merged[prop] = true;\n }\n }\n sourceObj = filter !== false && getPrototypeOf(sourceObj);\n } while (sourceObj && (!filter || filter(sourceObj, destObj)) && sourceObj !== Object.prototype);\n\n return destObj;\n}\n\n/**\n * Determines whether a string ends with the characters of a specified string\n *\n * @param {String} str\n * @param {String} searchString\n * @param {Number} [position= 0]\n *\n * @returns {boolean}\n */\nconst endsWith = (str, searchString, position) => {\n str = String(str);\n if (position === undefined || position > str.length) {\n position = str.length;\n }\n position -= searchString.length;\n const lastIndex = str.indexOf(searchString, position);\n return lastIndex !== -1 && lastIndex === position;\n}\n\n\n/**\n * Returns new array from array like object or null if failed\n *\n * @param {*} [thing]\n *\n * @returns {?Array}\n */\nconst toArray = (thing) => {\n if (!thing) return null;\n if (isArray(thing)) return thing;\n let i = thing.length;\n if (!isNumber(i)) return null;\n const arr = new Array(i);\n while (i-- > 0) {\n arr[i] = thing[i];\n }\n return arr;\n}\n\n/**\n * Checking if the Uint8Array exists and if it does, it returns a function that checks if the\n * thing passed in is an instance of Uint8Array\n *\n * @param {TypedArray}\n *\n * @returns {Array}\n */\n// eslint-disable-next-line func-names\nconst isTypedArray = (TypedArray => {\n // eslint-disable-next-line func-names\n return thing => {\n return TypedArray && thing instanceof TypedArray;\n };\n})(typeof Uint8Array !== 'undefined' && getPrototypeOf(Uint8Array));\n\n/**\n * For each entry in the object, call the function with the key and value.\n *\n * @param {Object<any, any>} obj - The object to iterate over.\n * @param {Function} fn - The function to call for each entry.\n *\n * @returns {void}\n */\nconst forEachEntry = (obj, fn) => {\n const generator = obj && obj[iterator];\n\n const _iterator = generator.call(obj);\n\n let result;\n\n while ((result = _iterator.next()) && !result.done) {\n const pair = result.value;\n fn.call(obj, pair[0], pair[1]);\n }\n}\n\n/**\n * It takes a regular expression and a string, and returns an array of all the matches\n *\n * @param {string} regExp - The regular expression to match against.\n * @param {string} str - The string to search.\n *\n * @returns {Array<boolean>}\n */\nconst matchAll = (regExp, str) => {\n let matches;\n const arr = [];\n\n while ((matches = regExp.exec(str)) !== null) {\n arr.push(matches);\n }\n\n return arr;\n}\n\n/* Checking if the kindOfTest function returns true when passed an HTMLFormElement. */\nconst isHTMLForm = kindOfTest('HTMLFormElement');\n\nconst toCamelCase = str => {\n return str.toLowerCase().replace(/[-_\\s]([a-z\\d])(\\w*)/g,\n function replacer(m, p1, p2) {\n return p1.toUpperCase() + p2;\n }\n );\n};\n\n/* Creating a function that will check if an object has a property. */\nconst hasOwnProperty = (({hasOwnProperty}) => (obj, prop) => hasOwnProperty.call(obj, prop))(Object.prototype);\n\n/**\n * Determine if a value is a RegExp object\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a RegExp object, otherwise false\n */\nconst isRegExp = kindOfTest('RegExp');\n\nconst reduceDescriptors = (obj, reducer) => {\n const descriptors = Object.getOwnPropertyDescriptors(obj);\n const reducedDescriptors = {};\n\n forEach(descriptors, (descriptor, name) => {\n let ret;\n if ((ret = reducer(descriptor, name, obj)) !== false) {\n reducedDescriptors[name] = ret || descriptor;\n }\n });\n\n Object.defineProperties(obj, reducedDescriptors);\n}\n\n/**\n * Makes all methods read-only\n * @param {Object} obj\n */\n\nconst freezeMethods = (obj) => {\n reduceDescriptors(obj, (descriptor, name) => {\n // skip restricted props in strict mode\n if (isFunction(obj) && ['arguments', 'caller', 'callee'].indexOf(name) !== -1) {\n return false;\n }\n\n const value = obj[name];\n\n if (!isFunction(value)) return;\n\n descriptor.enumerable = false;\n\n if ('writable' in descriptor) {\n descriptor.writable = false;\n return;\n }\n\n if (!descriptor.set) {\n descriptor.set = () => {\n throw Error('Can not rewrite read-only method \\'' + name + '\\'');\n };\n }\n });\n}\n\nconst toObjectSet = (arrayOrString, delimiter) => {\n const obj = {};\n\n const define = (arr) => {\n arr.forEach(value => {\n obj[value] = true;\n });\n }\n\n isArray(arrayOrString) ? define(arrayOrString) : define(String(arrayOrString).split(delimiter));\n\n return obj;\n}\n\nconst noop = () => {}\n\nconst toFiniteNumber = (value, defaultValue) => {\n return value != null && Number.isFinite(value = +value) ? value : defaultValue;\n}\n\n\n\n/**\n * If the thing is a FormData object, return true, otherwise return false.\n *\n * @param {unknown} thing - The thing to check.\n *\n * @returns {boolean}\n */\nfunction isSpecCompliantForm(thing) {\n return !!(thing && isFunction(thing.append) && thing[toStringTag] === 'FormData' && thing[iterator]);\n}\n\nconst toJSONObject = (obj) => {\n const stack = new Array(10);\n\n const visit = (source, i) => {\n\n if (isObject(source)) {\n if (stack.indexOf(source) >= 0) {\n return;\n }\n\n //Buffer check\n if (isBuffer(source)) {\n return source;\n }\n\n if(!('toJSON' in source)) {\n stack[i] = source;\n const target = isArray(source) ? [] : {};\n\n forEach(source, (value, key) => {\n const reducedValue = visit(value, i + 1);\n !isUndefined(reducedValue) && (target[key] = reducedValue);\n });\n\n stack[i] = undefined;\n\n return target;\n }\n }\n\n return source;\n }\n\n return visit(obj, 0);\n}\n\nconst isAsyncFn = kindOfTest('AsyncFunction');\n\nconst isThenable = (thing) =>\n thing && (isObject(thing) || isFunction(thing)) && isFunction(thing.then) && isFunction(thing.catch);\n\n// original code\n// https://github.com/DigitalBrainJS/AxiosPromise/blob/16deab13710ec09779922131f3fa5954320f83ab/lib/utils.js#L11-L34\n\nconst _setImmediate = ((setImmediateSupported, postMessageSupported) => {\n if (setImmediateSupported) {\n return setImmediate;\n }\n\n return postMessageSupported ? ((token, callbacks) => {\n _global.addEventListener(\"message\", ({source, data}) => {\n if (source === _global && data === token) {\n callbacks.length && callbacks.shift()();\n }\n }, false);\n\n return (cb) => {\n callbacks.push(cb);\n _global.postMessage(token, \"*\");\n }\n })(`axios@${Math.random()}`, []) : (cb) => setTimeout(cb);\n})(\n typeof setImmediate === 'function',\n isFunction(_global.postMessage)\n);\n\nconst asap = typeof queueMicrotask !== 'undefined' ?\n queueMicrotask.bind(_global) : ( typeof process !== 'undefined' && process.nextTick || _setImmediate);\n\n// *********************\n\n\nconst isIterable = (thing) => thing != null && isFunction(thing[iterator]);\n\n\nexport default {\n isArray,\n isArrayBuffer,\n isBuffer,\n isFormData,\n isArrayBufferView,\n isString,\n isNumber,\n isBoolean,\n isObject,\n isPlainObject,\n isEmptyObject,\n isReadableStream,\n isRequest,\n isResponse,\n isHeaders,\n isUndefined,\n isDate,\n isFile,\n isBlob,\n isRegExp,\n isFunction,\n isStream,\n isURLSearchParams,\n isTypedArray,\n isFileList,\n forEach,\n merge,\n extend,\n trim,\n stripBOM,\n inherits,\n toFlatObject,\n kindOf,\n kindOfTest,\n endsWith,\n toArray,\n forEachEntry,\n matchAll,\n isHTMLForm,\n hasOwnProperty,\n hasOwnProp: hasOwnProperty, // an alias to avoid ESLint no-prototype-builtins detection\n reduceDescriptors,\n freezeMethods,\n toObjectSet,\n toCamelCase,\n noop,\n toFiniteNumber,\n findKey,\n global: _global,\n isContextDefined,\n isSpecCompliantForm,\n toJSONObject,\n isAsyncFn,\n isThenable,\n setImmediate: _setImmediate,\n asap,\n isIterable\n};\n","'use strict';\n\nimport utils from '../utils.js';\n\n/**\n * Create an Error with the specified message, config, error code, request and response.\n *\n * @param {string} message The error message.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [config] The config.\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n *\n * @returns {Error} The created error.\n */\nfunction AxiosError(message, code, config, request, response) {\n Error.call(this);\n\n if (Error.captureStackTrace) {\n Error.captureStackTrace(this, this.constructor);\n } else {\n this.stack = (new Error()).stack;\n }\n\n this.message = message;\n this.name = 'AxiosError';\n code && (this.code = code);\n config && (this.config = config);\n request && (this.request = request);\n if (response) {\n this.response = response;\n this.status = response.status ? response.status : null;\n }\n}\n\nutils.inherits(AxiosError, Error, {\n toJSON: function toJSON() {\n return {\n // Standard\n message: this.message,\n name: this.name,\n // Microsoft\n description: this.description,\n number: this.number,\n // Mozilla\n fileName: this.fileName,\n lineNumber: this.lineNumber,\n columnNumber: this.columnNumber,\n stack: this.stack,\n // Axios\n config: utils.toJSONObject(this.config),\n code: this.code,\n status: this.status\n };\n }\n});\n\nconst prototype = AxiosError.prototype;\nconst descriptors = {};\n\n[\n 'ERR_BAD_OPTION_VALUE',\n 'ERR_BAD_OPTION',\n 'ECONNABORTED',\n 'ETIMEDOUT',\n 'ERR_NETWORK',\n 'ERR_FR_TOO_MANY_REDIRECTS',\n 'ERR_DEPRECATED',\n 'ERR_BAD_RESPONSE',\n 'ERR_BAD_REQUEST',\n 'ERR_CANCELED',\n 'ERR_NOT_SUPPORT',\n 'ERR_INVALID_URL'\n// eslint-disable-next-line func-names\n].forEach(code => {\n descriptors[code] = {value: code};\n});\n\nObject.defineProperties(AxiosError, descriptors);\nObject.defineProperty(prototype, 'isAxiosError', {value: true});\n\n// eslint-disable-next-line func-names\nAxiosError.from = (error, code, config, request, response, customProps) => {\n const axiosError = Object.create(prototype);\n\n utils.toFlatObject(error, axiosError, function filter(obj) {\n return obj !== Error.prototype;\n }, prop => {\n return prop !== 'isAxiosError';\n });\n\n const msg = error && error.message ? error.message : 'Error';\n\n // Prefer explicit code; otherwise copy the low-level error's code (e.g. ECONNREFUSED)\n const errCode = code == null && error ? error.code : code;\n AxiosError.call(axiosError, msg, errCode, config, request, response);\n\n // Chain the original error on the standard field; non-enumerable to avoid JSON noise\n if (error && axiosError.cause == null) {\n Object.defineProperty(axiosError, 'cause', { value: error, configurable: true });\n }\n\n axiosError.name = (error && error.name) || 'Error';\n\n customProps && Object.assign(axiosError, customProps);\n\n return axiosError;\n};\n\nexport default AxiosError;\n","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosError from '../core/AxiosError.js';\n// temporary hotfix to avoid circular references until AxiosURLSearchParams is refactored\nimport PlatformFormData from '../platform/node/classes/FormData.js';\n\n/**\n * Determines if the given thing is a array or js object.\n *\n * @param {string} thing - The object or array to be visited.\n *\n * @returns {boolean}\n */\nfunction isVisitable(thing) {\n return utils.isPlainObject(thing) || utils.isArray(thing);\n}\n\n/**\n * It removes the brackets from the end of a string\n *\n * @param {string} key - The key of the parameter.\n *\n * @returns {string} the key without the brackets.\n */\nfunction removeBrackets(key) {\n return utils.endsWith(key, '[]') ? key.slice(0, -2) : key;\n}\n\n/**\n * It takes a path, a key, and a boolean, and returns a string\n *\n * @param {string} path - The path to the current key.\n * @param {string} key - The key of the current object being iterated over.\n * @param {string} dots - If true, the key will be rendered with dots instead of brackets.\n *\n * @returns {string} The path to the current key.\n */\nfunction renderKey(path, key, dots) {\n if (!path) return key;\n return path.concat(key).map(function each(token, i) {\n // eslint-disable-next-line no-param-reassign\n token = removeBrackets(token);\n return !dots && i ? '[' + token + ']' : token;\n }).join(dots ? '.' : '');\n}\n\n/**\n * If the array is an array and none of its elements are visitable, then it's a flat array.\n *\n * @param {Array<any>} arr - The array to check\n *\n * @returns {boolean}\n */\nfunction isFlatArray(arr) {\n return utils.isArray(arr) && !arr.some(isVisitable);\n}\n\nconst predicates = utils.toFlatObject(utils, {}, null, function filter(prop) {\n return /^is[A-Z]/.test(prop);\n});\n\n/**\n * Convert a data object to FormData\n *\n * @param {Object} obj\n * @param {?Object} [formData]\n * @param {?Object} [options]\n * @param {Function} [options.visitor]\n * @param {Boolean} [options.metaTokens = true]\n * @param {Boolean} [options.dots = false]\n * @param {?Boolean} [options.indexes = false]\n *\n * @returns {Object}\n **/\n\n/**\n * It converts an object into a FormData object\n *\n * @param {Object<any, any>} obj - The object to convert to form data.\n * @param {string} formData - The FormData object to append to.\n * @param {Object<string, any>} options\n *\n * @returns\n */\nfunction toFormData(obj, formData, options) {\n if (!utils.isObject(obj)) {\n throw new TypeError('target must be an object');\n }\n\n // eslint-disable-next-line no-param-reassign\n formData = formData || new (PlatformFormData || FormData)();\n\n // eslint-disable-next-line no-param-reassign\n options = utils.toFlatObject(options, {\n metaTokens: true,\n dots: false,\n indexes: false\n }, false, function defined(option, source) {\n // eslint-disable-next-line no-eq-null,eqeqeq\n return !utils.isUndefined(source[option]);\n });\n\n const metaTokens = options.metaTokens;\n // eslint-disable-next-line no-use-before-define\n const visitor = options.visitor || defaultVisitor;\n const dots = options.dots;\n const indexes = options.indexes;\n const _Blob = options.Blob || typeof Blob !== 'undefined' && Blob;\n const useBlob = _Blob && utils.isSpecCompliantForm(formData);\n\n if (!utils.isFunction(visitor)) {\n throw new TypeError('visitor must be a function');\n }\n\n function convertValue(value) {\n if (value === null) return '';\n\n if (utils.isDate(value)) {\n return value.toISOString();\n }\n\n if (utils.isBoolean(value)) {\n return value.toString();\n }\n\n if (!useBlob && utils.isBlob(value)) {\n throw new AxiosError('Blob is not supported. Use a Buffer instead.');\n }\n\n if (utils.isArrayBuffer(value) || utils.isTypedArray(value)) {\n return useBlob && typeof Blob === 'function' ? new Blob([value]) : Buffer.from(value);\n }\n\n return value;\n }\n\n /**\n * Default visitor.\n *\n * @param {*} value\n * @param {String|Number} key\n * @param {Array<String|Number>} path\n * @this {FormData}\n *\n * @returns {boolean} return true to visit the each prop of the value recursively\n */\n function defaultVisitor(value, key, path) {\n let arr = value;\n\n if (value && !path && typeof value === 'object') {\n if (utils.endsWith(key, '{}')) {\n // eslint-disable-next-line no-param-reassign\n key = metaTokens ? key : key.slice(0, -2);\n // eslint-disable-next-line no-param-reassign\n value = JSON.stringify(value);\n } else if (\n (utils.isArray(value) && isFlatArray(value)) ||\n ((utils.isFileList(value) || utils.endsWith(key, '[]')) && (arr = utils.toArray(value))\n )) {\n // eslint-disable-next-line no-param-reassign\n key = removeBrackets(key);\n\n arr.forEach(function each(el, index) {\n !(utils.isUndefined(el) || el === null) && formData.append(\n // eslint-disable-next-line no-nested-ternary\n indexes === true ? renderKey([key], index, dots) : (indexes === null ? key : key + '[]'),\n convertValue(el)\n );\n });\n return false;\n }\n }\n\n if (isVisitable(value)) {\n return true;\n }\n\n formData.append(renderKey(path, key, dots), convertValue(value));\n\n return false;\n }\n\n const stack = [];\n\n const exposedHelpers = Object.assign(predicates, {\n defaultVisitor,\n convertValue,\n isVisitable\n });\n\n function build(value, path) {\n if (utils.isUndefined(value)) return;\n\n if (stack.indexOf(value) !== -1) {\n throw Error('Circular reference detected in ' + path.join('.'));\n }\n\n stack.push(value);\n\n utils.forEach(value, function each(el, key) {\n const result = !(utils.isUndefined(el) || el === null) && visitor.call(\n formData, el, utils.isString(key) ? key.trim() : key, path, exposedHelpers\n );\n\n if (result === true) {\n build(el, path ? path.concat(key) : [key]);\n }\n });\n\n stack.pop();\n }\n\n if (!utils.isObject(obj)) {\n throw new TypeError('data must be an object');\n }\n\n build(obj);\n\n return formData;\n}\n\nexport default toFormData;\n","'use strict';\n\nimport toFormData from './toFormData.js';\n\n/**\n * It encodes a string by replacing all characters that are not in the unreserved set with\n * their percent-encoded equivalents\n *\n * @param {string} str - The string to encode.\n *\n * @returns {string} The encoded string.\n */\nfunction encode(str) {\n const charMap = {\n '!': '%21',\n \"'\": '%27',\n '(': '%28',\n ')': '%29',\n '~': '%7E',\n '%20': '+',\n '%00': '\\x00'\n };\n return encodeURIComponent(str).replace(/[!'()~]|%20|%00/g, function replacer(match) {\n return charMap[match];\n });\n}\n\n/**\n * It takes a params object and converts it to a FormData object\n *\n * @param {Object<string, any>} params - The parameters to be converted to a FormData object.\n * @param {Object<string, any>} options - The options object passed to the Axios constructor.\n *\n * @returns {void}\n */\nfunction AxiosURLSearchParams(params, options) {\n this._pairs = [];\n\n params && toFormData(params, this, options);\n}\n\nconst prototype = AxiosURLSearchParams.prototype;\n\nprototype.append = function append(name, value) {\n this._pairs.push([name, value]);\n};\n\nprototype.toString = function toString(encoder) {\n const _encode = encoder ? function(value) {\n return encoder.call(this, value, encode);\n } : encode;\n\n return this._pairs.map(function each(pair) {\n return _encode(pair[0]) + '=' + _encode(pair[1]);\n }, '').join('&');\n};\n\nexport default AxiosURLSearchParams;\n","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosURLSearchParams from '../helpers/AxiosURLSearchParams.js';\n\n/**\n * It replaces all instances of the characters `:`, `$`, `,`, `+`, `[`, and `]` with their\n * URI encoded counterparts\n *\n * @param {string} val The value to be encoded.\n *\n * @returns {string} The encoded value.\n */\nfunction encode(val) {\n return encodeURIComponent(val).\n replace(/%3A/gi, ':').\n replace(/%24/g, '$').\n replace(/%2C/gi, ',').\n replace(/%20/g, '+');\n}\n\n/**\n * Build a URL by appending params to the end\n *\n * @param {string} url The base of the url (e.g., http://www.google.com)\n * @param {object} [params] The params to be appended\n * @param {?(object|Function)} options\n *\n * @returns {string} The formatted url\n */\nexport default function buildURL(url, params, options) {\n /*eslint no-param-reassign:0*/\n if (!params) {\n return url;\n }\n \n const _encode = options && options.encode || encode;\n\n if (utils.isFunction(options)) {\n options = {\n serialize: options\n };\n } \n\n const serializeFn = options && options.serialize;\n\n let serializedParams;\n\n if (serializeFn) {\n serializedParams = serializeFn(params, options);\n } else {\n serializedParams = utils.isURLSearchParams(params) ?\n params.toString() :\n new AxiosURLSearchParams(params, options).toString(_encode);\n }\n\n if (serializedParams) {\n const hashmarkIndex = url.indexOf(\"#\");\n\n if (hashmarkIndex !== -1) {\n url = url.slice(0, hashmarkIndex);\n }\n url += (url.indexOf('?') === -1 ? '?' : '&') + serializedParams;\n }\n\n return url;\n}\n","'use strict';\n\nimport utils from './../utils.js';\n\nclass InterceptorManager {\n constructor() {\n this.handlers = [];\n }\n\n /**\n * Add a new interceptor to the stack\n *\n * @param {Function} fulfilled The function to handle `then` for a `Promise`\n * @param {Function} rejected The function to handle `reject` for a `Promise`\n *\n * @return {Number} An ID used to remove interceptor later\n */\n use(fulfilled, rejected, options) {\n this.handlers.push({\n fulfilled,\n rejected,\n synchronous: options ? options.synchronous : false,\n runWhen: options ? options.runWhen : null\n });\n return this.handlers.length - 1;\n }\n\n /**\n * Remove an interceptor from the stack\n *\n * @param {Number} id The ID that was returned by `use`\n *\n * @returns {Boolean} `true` if the interceptor was removed, `false` otherwise\n */\n eject(id) {\n if (this.handlers[id]) {\n this.handlers[id] = null;\n }\n }\n\n /**\n * Clear all interceptors from the stack\n *\n * @returns {void}\n */\n clear() {\n if (this.handlers) {\n this.handlers = [];\n }\n }\n\n /**\n * Iterate over all the registered interceptors\n *\n * This method is particularly useful for skipping over any\n * interceptors that may have become `null` calling `eject`.\n *\n * @param {Function} fn The function to call for each interceptor\n *\n * @returns {void}\n */\n forEach(fn) {\n utils.forEach(this.handlers, function forEachHandler(h) {\n if (h !== null) {\n fn(h);\n }\n });\n }\n}\n\nexport default InterceptorManager;\n","'use strict';\n\nexport default {\n silentJSONParsing: true,\n forcedJSONParsing: true,\n clarifyTimeoutError: false\n};\n","import URLSearchParams from './classes/URLSearchParams.js'\nimport FormData from './classes/FormData.js'\nimport Blob from './classes/Blob.js'\n\nexport default {\n isBrowser: true,\n classes: {\n URLSearchParams,\n FormData,\n Blob\n },\n protocols: ['http', 'https', 'file', 'blob', 'url', 'data']\n};\n","'use strict';\n\nimport AxiosURLSearchParams from '../../../helpers/AxiosURLSearchParams.js';\nexport default typeof URLSearchParams !== 'undefined' ? URLSearchParams : AxiosURLSearchParams;\n","'use strict';\n\nexport default typeof FormData !== 'undefined' ? FormData : null;\n","'use strict'\n\nexport default typeof Blob !== 'undefined' ? Blob : null\n","const hasBrowserEnv = typeof window !== 'undefined' && typeof document !== 'undefined';\n\nconst _navigator = typeof navigator === 'object' && navigator || undefined;\n\n/**\n * Determine if we're running in a standard browser environment\n *\n * This allows axios to run in a web worker, and react-native.\n * Both environments support XMLHttpRequest, but not fully standard globals.\n *\n * web workers:\n * typeof window -> undefined\n * typeof document -> undefined\n *\n * react-native:\n * navigator.product -> 'ReactNative'\n * nativescript\n * navigator.product -> 'NativeScript' or 'NS'\n *\n * @returns {boolean}\n */\nconst hasStandardBrowserEnv = hasBrowserEnv &&\n (!_navigator || ['ReactNative', 'NativeScript', 'NS'].indexOf(_navigator.product) < 0);\n\n/**\n * Determine if we're running in a standard browser webWorker environment\n *\n * Although the `isStandardBrowserEnv` method indicates that\n * `allows axios to run in a web worker`, the WebWorker will still be\n * filtered out due to its judgment standard\n * `typeof window !== 'undefined' && typeof document !== 'undefined'`.\n * This leads to a problem when axios post `FormData` in webWorker\n */\nconst hasStandardBrowserWebWorkerEnv = (() => {\n return (\n typeof WorkerGlobalScope !== 'undefined' &&\n // eslint-disable-next-line no-undef\n self instanceof WorkerGlobalScope &&\n typeof self.importScripts === 'function'\n );\n})();\n\nconst origin = hasBrowserEnv && window.location.href || 'http://localhost';\n\nexport {\n hasBrowserEnv,\n hasStandardBrowserWebWorkerEnv,\n hasStandardBrowserEnv,\n _navigator as navigator,\n origin\n}\n","import platform from './node/index.js';\nimport * as utils from './common/utils.js';\n\nexport default {\n ...utils,\n ...platform\n}\n","'use strict';\n\nimport utils from '../utils.js';\n\n/**\n * It takes a string like `foo[x][y][z]` and returns an array like `['foo', 'x', 'y', 'z']\n *\n * @param {string} name - The name of the property to get.\n *\n * @returns An array of strings.\n */\nfunction parsePropPath(name) {\n // foo[x][y][z]\n // foo.x.y.z\n // foo-x-y-z\n // foo x y z\n return utils.matchAll(/\\w+|\\[(\\w*)]/g, name).map(match => {\n return match[0] === '[]' ? '' : match[1] || match[0];\n });\n}\n\n/**\n * Convert an array to an object.\n *\n * @param {Array<any>} arr - The array to convert to an object.\n *\n * @returns An object with the same keys and values as the array.\n */\nfunction arrayToObject(arr) {\n const obj = {};\n const keys = Object.keys(arr);\n let i;\n const len = keys.length;\n let key;\n for (i = 0; i < len; i++) {\n key = keys[i];\n obj[key] = arr[key];\n }\n return obj;\n}\n\n/**\n * It takes a FormData object and returns a JavaScript object\n *\n * @param {string} formData The FormData object to convert to JSON.\n *\n * @returns {Object<string, any> | null} The converted object.\n */\nfunction formDataToJSON(formData) {\n function buildPath(path, value, target, index) {\n let name = path[index++];\n\n if (name === '__proto__') return true;\n\n const isNumericKey = Number.isFinite(+name);\n const isLast = index >= path.length;\n name = !name && utils.isArray(target) ? target.length : name;\n\n if (isLast) {\n if (utils.hasOwnProp(target, name)) {\n target[name] = [target[name], value];\n } else {\n target[name] = value;\n }\n\n return !isNumericKey;\n }\n\n if (!target[name] || !utils.isObject(target[name])) {\n target[name] = [];\n }\n\n const result = buildPath(path, value, target[name], index);\n\n if (result && utils.isArray(target[name])) {\n target[name] = arrayToObject(target[name]);\n }\n\n return !isNumericKey;\n }\n\n if (utils.isFormData(formData) && utils.isFunction(formData.entries)) {\n const obj = {};\n\n utils.forEachEntry(formData, (name, value) => {\n buildPath(parsePropPath(name), value, obj, 0);\n });\n\n return obj;\n }\n\n return null;\n}\n\nexport default formDataToJSON;\n","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosError from '../core/AxiosError.js';\nimport transitionalDefaults from './transitional.js';\nimport toFormData from '../helpers/toFormData.js';\nimport toURLEncodedForm from '../helpers/toURLEncodedForm.js';\nimport platform from '../platform/index.js';\nimport formDataToJSON from '../helpers/formDataToJSON.js';\n\n/**\n * It takes a string, tries to parse it, and if it fails, it returns the stringified version\n * of the input\n *\n * @param {any} rawValue - The value to be stringified.\n * @param {Function} parser - A function that parses a string into a JavaScript object.\n * @param {Function} encoder - A function that takes a value and returns a string.\n *\n * @returns {string} A stringified version of the rawValue.\n */\nfunction stringifySafely(rawValue, parser, encoder) {\n if (utils.isString(rawValue)) {\n try {\n (parser || JSON.parse)(rawValue);\n return utils.trim(rawValue);\n } catch (e) {\n if (e.name !== 'SyntaxError') {\n throw e;\n }\n }\n }\n\n return (encoder || JSON.stringify)(rawValue);\n}\n\nconst defaults = {\n\n transitional: transitionalDefaults,\n\n adapter: ['xhr', 'http', 'fetch'],\n\n transformRequest: [function transformRequest(data, headers) {\n const contentType = headers.getContentType() || '';\n const hasJSONContentType = contentType.indexOf('application/json') > -1;\n const isObjectPayload = utils.isObject(data);\n\n if (isObjectPayload && utils.isHTMLForm(data)) {\n data = new FormData(data);\n }\n\n const isFormData = utils.isFormData(data);\n\n if (isFormData) {\n return hasJSONContentType ? JSON.stringify(formDataToJSON(data)) : data;\n }\n\n if (utils.isArrayBuffer(data) ||\n utils.isBuffer(data) ||\n utils.isStream(data) ||\n utils.isFile(data) ||\n utils.isBlob(data) ||\n utils.isReadableStream(data)\n ) {\n return data;\n }\n if (utils.isArrayBufferView(data)) {\n return data.buffer;\n }\n if (utils.isURLSearchParams(data)) {\n headers.setContentType('application/x-www-form-urlencoded;charset=utf-8', false);\n return data.toString();\n }\n\n let isFileList;\n\n if (isObjectPayload) {\n if (contentType.indexOf('application/x-www-form-urlencoded') > -1) {\n return toURLEncodedForm(data, this.formSerializer).toString();\n }\n\n if ((isFileList = utils.isFileList(data)) || contentType.indexOf('multipart/form-data') > -1) {\n const _FormData = this.env && this.env.FormData;\n\n return toFormData(\n isFileList ? {'files[]': data} : data,\n _FormData && new _FormData(),\n this.formSerializer\n );\n }\n }\n\n if (isObjectPayload || hasJSONContentType ) {\n headers.setContentType('application/json', false);\n return stringifySafely(data);\n }\n\n return data;\n }],\n\n transformResponse: [function transformResponse(data) {\n const transitional = this.transitional || defaults.transitional;\n const forcedJSONParsing = transitional && transitional.forcedJSONParsing;\n const JSONRequested = this.responseType === 'json';\n\n if (utils.isResponse(data) || utils.isReadableStream(data)) {\n return data;\n }\n\n if (data && utils.isString(data) && ((forcedJSONParsing && !this.responseType) || JSONRequested)) {\n const silentJSONParsing = transitional && transitional.silentJSONParsing;\n const strictJSONParsing = !silentJSONParsing && JSONRequested;\n\n try {\n return JSON.parse(data, this.parseReviver);\n } catch (e) {\n if (strictJSONParsing) {\n if (e.name === 'SyntaxError') {\n throw AxiosError.from(e, AxiosError.ERR_BAD_RESPONSE, this, null, this.response);\n }\n throw e;\n }\n }\n }\n\n return data;\n }],\n\n /**\n * A timeout in milliseconds to abort a request. If set to 0 (default) a\n * timeout is not created.\n */\n timeout: 0,\n\n xsrfCookieName: 'XSRF-TOKEN',\n xsrfHeaderName: 'X-XSRF-TOKEN',\n\n maxContentLength: -1,\n maxBodyLength: -1,\n\n env: {\n FormData: platform.classes.FormData,\n Blob: platform.classes.Blob\n },\n\n validateStatus: function validateStatus(status) {\n return status >= 200 && status < 300;\n },\n\n headers: {\n common: {\n 'Accept': 'application/json, text/plain, */*',\n 'Content-Type': undefined\n }\n }\n};\n\nutils.forEach(['delete', 'get', 'head', 'post', 'put', 'patch'], (method) => {\n defaults.headers[method] = {};\n});\n\nexport default defaults;\n","'use strict';\n\nimport utils from '../utils.js';\nimport toFormData from './toFormData.js';\nimport platform from '../platform/index.js';\n\nexport default function toURLEncodedForm(data, options) {\n return toFormData(data, new platform.classes.URLSearchParams(), {\n visitor: function(value, key, path, helpers) {\n if (platform.isNode && utils.isBuffer(value)) {\n this.append(key, value.toString('base64'));\n return false;\n }\n\n return helpers.defaultVisitor.apply(this, arguments);\n },\n ...options\n });\n}\n","'use strict';\n\nimport utils from './../utils.js';\n\n// RawAxiosHeaders whose duplicates are ignored by node\n// c.f. https://nodejs.org/api/http.html#http_message_headers\nconst ignoreDuplicateOf = utils.toObjectSet([\n 'age', 'authorization', 'content-length', 'content-type', 'etag',\n 'expires', 'from', 'host', 'if-modified-since', 'if-unmodified-since',\n 'last-modified', 'location', 'max-forwards', 'proxy-authorization',\n 'referer', 'retry-after', 'user-agent'\n]);\n\n/**\n * Parse headers into an object\n *\n * ```\n * Date: Wed, 27 Aug 2014 08:58:49 GMT\n * Content-Type: application/json\n * Connection: keep-alive\n * Transfer-Encoding: chunked\n * ```\n *\n * @param {String} rawHeaders Headers needing to be parsed\n *\n * @returns {Object} Headers parsed into an object\n */\nexport default rawHeaders => {\n const parsed = {};\n let key;\n let val;\n let i;\n\n rawHeaders && rawHeaders.split('\\n').forEach(function parser(line) {\n i = line.indexOf(':');\n key = line.substring(0, i).trim().toLowerCase();\n val = line.substring(i + 1).trim();\n\n if (!key || (parsed[key] && ignoreDuplicateOf[key])) {\n return;\n }\n\n if (key === 'set-cookie') {\n if (parsed[key]) {\n parsed[key].push(val);\n } else {\n parsed[key] = [val];\n }\n } else {\n parsed[key] = parsed[key] ? parsed[key] + ', ' + val : val;\n }\n });\n\n return parsed;\n};\n","'use strict';\n\nimport utils from '../utils.js';\nimport parseHeaders from '../helpers/parseHeaders.js';\n\nconst $internals = Symbol('internals');\n\nfunction normalizeHeader(header) {\n return header && String(header).trim().toLowerCase();\n}\n\nfunction normalizeValue(value) {\n if (value === false || value == null) {\n return value;\n }\n\n return utils.isArray(value) ? value.map(normalizeValue) : String(value);\n}\n\nfunction parseTokens(str) {\n const tokens = Object.create(null);\n const tokensRE = /([^\\s,;=]+)\\s*(?:=\\s*([^,;]+))?/g;\n let match;\n\n while ((match = tokensRE.exec(str))) {\n tokens[match[1]] = match[2];\n }\n\n return tokens;\n}\n\nconst isValidHeaderName = (str) => /^[-_a-zA-Z0-9^`|~,!#$%&'*+.]+$/.test(str.trim());\n\nfunction matchHeaderValue(context, value, header, filter, isHeaderNameFilter) {\n if (utils.isFunction(filter)) {\n return filter.call(this, value, header);\n }\n\n if (isHeaderNameFilter) {\n value = header;\n }\n\n if (!utils.isString(value)) return;\n\n if (utils.isString(filter)) {\n return value.indexOf(filter) !== -1;\n }\n\n if (utils.isRegExp(filter)) {\n return filter.test(value);\n }\n}\n\nfunction formatHeader(header) {\n return header.trim()\n .toLowerCase().replace(/([a-z\\d])(\\w*)/g, (w, char, str) => {\n return char.toUpperCase() + str;\n });\n}\n\nfunction buildAccessors(obj, header) {\n const accessorName = utils.toCamelCase(' ' + header);\n\n ['get', 'set', 'has'].forEach(methodName => {\n Object.defineProperty(obj, methodName + accessorName, {\n value: function(arg1, arg2, arg3) {\n return this[methodName].call(this, header, arg1, arg2, arg3);\n },\n configurable: true\n });\n });\n}\n\nclass AxiosHeaders {\n constructor(headers) {\n headers && this.set(headers);\n }\n\n set(header, valueOrRewrite, rewrite) {\n const self = this;\n\n function setHeader(_value, _header, _rewrite) {\n const lHeader = normalizeHeader(_header);\n\n if (!lHeader) {\n throw new Error('header name must be a non-empty string');\n }\n\n const key = utils.findKey(self, lHeader);\n\n if(!key || self[key] === undefined || _rewrite === true || (_rewrite === undefined && self[key] !== false)) {\n self[key || _header] = normalizeValue(_value);\n }\n }\n\n const setHeaders = (headers, _rewrite) =>\n utils.forEach(headers, (_value, _header) => setHeader(_value, _header, _rewrite));\n\n if (utils.isPlainObject(header) || header instanceof this.constructor) {\n setHeaders(header, valueOrRewrite)\n } else if(utils.isString(header) && (header = header.trim()) && !isValidHeaderName(header)) {\n setHeaders(parseHeaders(header), valueOrRewrite);\n } else if (utils.isObject(header) && utils.isIterable(header)) {\n let obj = {}, dest, key;\n for (const entry of header) {\n if (!utils.isArray(entry)) {\n throw TypeError('Object iterator must return a key-value pair');\n }\n\n obj[key = entry[0]] = (dest = obj[key]) ?\n (utils.isArray(dest) ? [...dest, entry[1]] : [dest, entry[1]]) : entry[1];\n }\n\n setHeaders(obj, valueOrRewrite)\n } else {\n header != null && setHeader(valueOrRewrite, header, rewrite);\n }\n\n return this;\n }\n\n get(header, parser) {\n header = normalizeHeader(header);\n\n if (header) {\n const key = utils.findKey(this, header);\n\n if (key) {\n const value = this[key];\n\n if (!parser) {\n return value;\n }\n\n if (parser === true) {\n return parseTokens(value);\n }\n\n if (utils.isFunction(parser)) {\n return parser.call(this, value, key);\n }\n\n if (utils.isRegExp(parser)) {\n return parser.exec(value);\n }\n\n throw new TypeError('parser must be boolean|regexp|function');\n }\n }\n }\n\n has(header, matcher) {\n header = normalizeHeader(header);\n\n if (header) {\n const key = utils.findKey(this, header);\n\n return !!(key && this[key] !== undefined && (!matcher || matchHeaderValue(this, this[key], key, matcher)));\n }\n\n return false;\n }\n\n delete(header, matcher) {\n const self = this;\n let deleted = false;\n\n function deleteHeader(_header) {\n _header = normalizeHeader(_header);\n\n if (_header) {\n const key = utils.findKey(self, _header);\n\n if (key && (!matcher || matchHeaderValue(self, self[key], key, matcher))) {\n delete self[key];\n\n deleted = true;\n }\n }\n }\n\n if (utils.isArray(header)) {\n header.forEach(deleteHeader);\n } else {\n deleteHeader(header);\n }\n\n return deleted;\n }\n\n clear(matcher) {\n const keys = Object.keys(this);\n let i = keys.length;\n let deleted = false;\n\n while (i--) {\n const key = keys[i];\n if(!matcher || matchHeaderValue(this, this[key], key, matcher, true)) {\n delete this[key];\n deleted = true;\n }\n }\n\n return deleted;\n }\n\n normalize(format) {\n const self = this;\n const headers = {};\n\n utils.forEach(this, (value, header) => {\n const key = utils.findKey(headers, header);\n\n if (key) {\n self[key] = normalizeValue(value);\n delete self[header];\n return;\n }\n\n const normalized = format ? formatHeader(header) : String(header).trim();\n\n if (normalized !== header) {\n delete self[header];\n }\n\n self[normalized] = normalizeValue(value);\n\n headers[normalized] = true;\n });\n\n return this;\n }\n\n concat(...targets) {\n return this.constructor.concat(this, ...targets);\n }\n\n toJSON(asStrings) {\n const obj = Object.create(null);\n\n utils.forEach(this, (value, header) => {\n value != null && value !== false && (obj[header] = asStrings && utils.isArray(value) ? value.join(', ') : value);\n });\n\n return obj;\n }\n\n [Symbol.iterator]() {\n return Object.entries(this.toJSON())[Symbol.iterator]();\n }\n\n toString() {\n return Object.entries(this.toJSON()).map(([header, value]) => header + ': ' + value).join('\\n');\n }\n\n getSetCookie() {\n return this.get(\"set-cookie\") || [];\n }\n\n get [Symbol.toStringTag]() {\n return 'AxiosHeaders';\n }\n\n static from(thing) {\n return thing instanceof this ? thing : new this(thing);\n }\n\n static concat(first, ...targets) {\n const computed = new this(first);\n\n targets.forEach((target) => computed.set(target));\n\n return computed;\n }\n\n static accessor(header) {\n const internals = this[$internals] = (this[$internals] = {\n accessors: {}\n });\n\n const accessors = internals.accessors;\n const prototype = this.prototype;\n\n function defineAccessor(_header) {\n const lHeader = normalizeHeader(_header);\n\n if (!accessors[lHeader]) {\n buildAccessors(prototype, _header);\n accessors[lHeader] = true;\n }\n }\n\n utils.isArray(header) ? header.forEach(defineAccessor) : defineAccessor(header);\n\n return this;\n }\n}\n\nAxiosHeaders.accessor(['Content-Type', 'Content-Length', 'Accept', 'Accept-Encoding', 'User-Agent', 'Authorization']);\n\n// reserved names hotfix\nutils.reduceDescriptors(AxiosHeaders.prototype, ({value}, key) => {\n let mapped = key[0].toUpperCase() + key.slice(1); // map `set` => `Set`\n return {\n get: () => value,\n set(headerValue) {\n this[mapped] = headerValue;\n }\n }\n});\n\nutils.freezeMethods(AxiosHeaders);\n\nexport default AxiosHeaders;\n","'use strict';\n\nimport utils from './../utils.js';\nimport defaults from '../defaults/index.js';\nimport AxiosHeaders from '../core/AxiosHeaders.js';\n\n/**\n * Transform the data for a request or a response\n *\n * @param {Array|Function} fns A single function or Array of functions\n * @param {?Object} response The response object\n *\n * @returns {*} The resulting transformed data\n */\nexport default function transformData(fns, response) {\n const config = this || defaults;\n const context = response || config;\n const headers = AxiosHeaders.from(context.headers);\n let data = context.data;\n\n utils.forEach(fns, function transform(fn) {\n data = fn.call(config, data, headers.normalize(), response ? response.status : undefined);\n });\n\n headers.normalize();\n\n return data;\n}\n","'use strict';\n\nexport default function isCancel(value) {\n return !!(value && value.__CANCEL__);\n}\n","'use strict';\n\nimport AxiosError from '../core/AxiosError.js';\nimport utils from '../utils.js';\n\n/**\n * A `CanceledError` is an object that is thrown when an operation is canceled.\n *\n * @param {string=} message The message.\n * @param {Object=} config The config.\n * @param {Object=} request The request.\n *\n * @returns {CanceledError} The created error.\n */\nfunction CanceledError(message, config, request) {\n // eslint-disable-next-line no-eq-null,eqeqeq\n AxiosError.call(this, message == null ? 'canceled' : message, AxiosError.ERR_CANCELED, config, request);\n this.name = 'CanceledError';\n}\n\nutils.inherits(CanceledError, AxiosError, {\n __CANCEL__: true\n});\n\nexport default CanceledError;\n","'use strict';\n\nimport AxiosError from './AxiosError.js';\n\n/**\n * Resolve or reject a Promise based on response status.\n *\n * @param {Function} resolve A function that resolves the promise.\n * @param {Function} reject A function that rejects the promise.\n * @param {object} response The response.\n *\n * @returns {object} The response.\n */\nexport default function settle(resolve, reject, response) {\n const validateStatus = response.config.validateStatus;\n if (!response.status || !validateStatus || validateStatus(response.status)) {\n resolve(response);\n } else {\n reject(new AxiosError(\n 'Request failed with status code ' + response.status,\n [AxiosError.ERR_BAD_REQUEST, AxiosError.ERR_BAD_RESPONSE][Math.floor(response.status / 100) - 4],\n response.config,\n response.request,\n response\n ));\n }\n}\n","import speedometer from \"./speedometer.js\";\nimport throttle from \"./throttle.js\";\nimport utils from \"../utils.js\";\n\nexport const progressEventReducer = (listener, isDownloadStream, freq = 3) => {\n let bytesNotified = 0;\n const _speedometer = speedometer(50, 250);\n\n return throttle(e => {\n const loaded = e.loaded;\n const total = e.lengthComputable ? e.total : undefined;\n const progressBytes = loaded - bytesNotified;\n const rate = _speedometer(progressBytes);\n const inRange = loaded <= total;\n\n bytesNotified = loaded;\n\n const data = {\n loaded,\n total,\n progress: total ? (loaded / total) : undefined,\n bytes: progressBytes,\n rate: rate ? rate : undefined,\n estimated: rate && total && inRange ? (total - loaded) / rate : undefined,\n event: e,\n lengthComputable: total != null,\n [isDownloadStream ? 'download' : 'upload']: true\n };\n\n listener(data);\n }, freq);\n}\n\nexport const progressEventDecorator = (total, throttled) => {\n const lengthComputable = total != null;\n\n return [(loaded) => throttled[0]({\n lengthComputable,\n total,\n loaded\n }), throttled[1]];\n}\n\nexport const asyncDecorator = (fn) => (...args) => utils.asap(() => fn(...args));\n","'use strict';\n\n/**\n * Calculate data maxRate\n * @param {Number} [samplesCount= 10]\n * @param {Number} [min= 1000]\n * @returns {Function}\n */\nfunction speedometer(samplesCount, min) {\n samplesCount = samplesCount || 10;\n const bytes = new Array(samplesCount);\n const timestamps = new Array(samplesCount);\n let head = 0;\n let tail = 0;\n let firstSampleTS;\n\n min = min !== undefined ? min : 1000;\n\n return function push(chunkLength) {\n const now = Date.now();\n\n const startedAt = timestamps[tail];\n\n if (!firstSampleTS) {\n firstSampleTS = now;\n }\n\n bytes[head] = chunkLength;\n timestamps[head] = now;\n\n let i = tail;\n let bytesCount = 0;\n\n while (i !== head) {\n bytesCount += bytes[i++];\n i = i % samplesCount;\n }\n\n head = (head + 1) % samplesCount;\n\n if (head === tail) {\n tail = (tail + 1) % samplesCount;\n }\n\n if (now - firstSampleTS < min) {\n return;\n }\n\n const passed = startedAt && now - startedAt;\n\n return passed ? Math.round(bytesCount * 1000 / passed) : undefined;\n };\n}\n\nexport default speedometer;\n","/**\n * Throttle decorator\n * @param {Function} fn\n * @param {Number} freq\n * @return {Function}\n */\nfunction throttle(fn, freq) {\n let timestamp = 0;\n let threshold = 1000 / freq;\n let lastArgs;\n let timer;\n\n const invoke = (args, now = Date.now()) => {\n timestamp = now;\n lastArgs = null;\n if (timer) {\n clearTimeout(timer);\n timer = null;\n }\n fn(...args);\n }\n\n const throttled = (...args) => {\n const now = Date.now();\n const passed = now - timestamp;\n if ( passed >= threshold) {\n invoke(args, now);\n } else {\n lastArgs = args;\n if (!timer) {\n timer = setTimeout(() => {\n timer = null;\n invoke(lastArgs)\n }, threshold - passed);\n }\n }\n }\n\n const flush = () => lastArgs && invoke(lastArgs);\n\n return [throttled, flush];\n}\n\nexport default throttle;\n","import platform from '../platform/index.js';\n\nexport default platform.hasStandardBrowserEnv ? ((origin, isMSIE) => (url) => {\n url = new URL(url, platform.origin);\n\n return (\n origin.protocol === url.protocol &&\n origin.host === url.host &&\n (isMSIE || origin.port === url.port)\n );\n})(\n new URL(platform.origin),\n platform.navigator && /(msie|trident)/i.test(platform.navigator.userAgent)\n) : () => true;\n","import utils from './../utils.js';\nimport platform from '../platform/index.js';\n\nexport default platform.hasStandardBrowserEnv ?\n\n // Standard browser envs support document.cookie\n {\n write(name, value, expires, path, domain, secure) {\n const cookie = [name + '=' + encodeURIComponent(value)];\n\n utils.isNumber(expires) && cookie.push('expires=' + new Date(expires).toGMTString());\n\n utils.isString(path) && cookie.push('path=' + path);\n\n utils.isString(domain) && cookie.push('domain=' + domain);\n\n secure === true && cookie.push('secure');\n\n document.cookie = cookie.join('; ');\n },\n\n read(name) {\n const match = document.cookie.match(new RegExp('(^|;\\\\s*)(' + name + ')=([^;]*)'));\n return (match ? decodeURIComponent(match[3]) : null);\n },\n\n remove(name) {\n this.write(name, '', Date.now() - 86400000);\n }\n }\n\n :\n\n // Non-standard browser env (web workers, react-native) lack needed support.\n {\n write() {},\n read() {\n return null;\n },\n remove() {}\n };\n\n","'use strict';\n\nimport isAbsoluteURL from '../helpers/isAbsoluteURL.js';\nimport combineURLs from '../helpers/combineURLs.js';\n\n/**\n * Creates a new URL by combining the baseURL with the requestedURL,\n * only when the requestedURL is not already an absolute URL.\n * If the requestURL is absolute, this function returns the requestedURL untouched.\n *\n * @param {string} baseURL The base URL\n * @param {string} requestedURL Absolute or relative URL to combine\n *\n * @returns {string} The combined full path\n */\nexport default function buildFullPath(baseURL, requestedURL, allowAbsoluteUrls) {\n let isRelativeUrl = !isAbsoluteURL(requestedURL);\n if (baseURL && (isRelativeUrl || allowAbsoluteUrls == false)) {\n return combineURLs(baseURL, requestedURL);\n }\n return requestedURL;\n}\n","'use strict';\n\n/**\n * Determines whether the specified URL is absolute\n *\n * @param {string} url The URL to test\n *\n * @returns {boolean} True if the specified URL is absolute, otherwise false\n */\nexport default function isAbsoluteURL(url) {\n // A URL is considered absolute if it begins with \"<scheme>://\" or \"//\" (protocol-relative URL).\n // RFC 3986 defines scheme name as a sequence of characters beginning with a letter and followed\n // by any combination of letters, digits, plus, period, or hyphen.\n return /^([a-z][a-z\\d+\\-.]*:)?\\/\\//i.test(url);\n}\n","'use strict';\n\n/**\n * Creates a new URL by combining the specified URLs\n *\n * @param {string} baseURL The base URL\n * @param {string} relativeURL The relative URL\n *\n * @returns {string} The combined URL\n */\nexport default function combineURLs(baseURL, relativeURL) {\n return relativeURL\n ? baseURL.replace(/\\/?\\/$/, '') + '/' + relativeURL.replace(/^\\/+/, '')\n : baseURL;\n}\n","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosHeaders from \"./AxiosHeaders.js\";\n\nconst headersToObject = (thing) => thing instanceof AxiosHeaders ? { ...thing } : thing;\n\n/**\n * Config-specific merge-function which creates a new config-object\n * by merging two configuration objects together.\n *\n * @param {Object} config1\n * @param {Object} config2\n *\n * @returns {Object} New object resulting from merging config2 to config1\n */\nexport default function mergeConfig(config1, config2) {\n // eslint-disable-next-line no-param-reassign\n config2 = config2 || {};\n const config = {};\n\n function getMergedValue(target, source, prop, caseless) {\n if (utils.isPlainObject(target) && utils.isPlainObject(source)) {\n return utils.merge.call({caseless}, target, source);\n } else if (utils.isPlainObject(source)) {\n return utils.merge({}, source);\n } else if (utils.isArray(source)) {\n return source.slice();\n }\n return source;\n }\n\n // eslint-disable-next-line consistent-return\n function mergeDeepProperties(a, b, prop , caseless) {\n if (!utils.isUndefined(b)) {\n return getMergedValue(a, b, prop , caseless);\n } else if (!utils.isUndefined(a)) {\n return getMergedValue(undefined, a, prop , caseless);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function valueFromConfig2(a, b) {\n if (!utils.isUndefined(b)) {\n return getMergedValue(undefined, b);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function defaultToConfig2(a, b) {\n if (!utils.isUndefined(b)) {\n return getMergedValue(undefined, b);\n } else if (!utils.isUndefined(a)) {\n return getMergedValue(undefined, a);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function mergeDirectKeys(a, b, prop) {\n if (prop in config2) {\n return getMergedValue(a, b);\n } else if (prop in config1) {\n return getMergedValue(undefined, a);\n }\n }\n\n const mergeMap = {\n url: valueFromConfig2,\n method: valueFromConfig2,\n data: valueFromConfig2,\n baseURL: defaultToConfig2,\n transformRequest: defaultToConfig2,\n transformResponse: defaultToConfig2,\n paramsSerializer: defaultToConfig2,\n timeout: defaultToConfig2,\n timeoutMessage: defaultToConfig2,\n withCredentials: defaultToConfig2,\n withXSRFToken: defaultToConfig2,\n adapter: defaultToConfig2,\n responseType: defaultToConfig2,\n xsrfCookieName: defaultToConfig2,\n xsrfHeaderName: defaultToConfig2,\n onUploadProgress: defaultToConfig2,\n onDownloadProgress: defaultToConfig2,\n decompress: defaultToConfig2,\n maxContentLength: defaultToConfig2,\n maxBodyLength: defaultToConfig2,\n beforeRedirect: defaultToConfig2,\n transport: defaultToConfig2,\n httpAgent: defaultToConfig2,\n httpsAgent: defaultToConfig2,\n cancelToken: defaultToConfig2,\n socketPath: defaultToConfig2,\n responseEncoding: defaultToConfig2,\n validateStatus: mergeDirectKeys,\n headers: (a, b , prop) => mergeDeepProperties(headersToObject(a), headersToObject(b),prop, true)\n };\n\n utils.forEach(Object.keys({...config1, ...config2}), function computeConfigValue(prop) {\n const merge = mergeMap[prop] || mergeDeepProperties;\n const configValue = merge(config1[prop], config2[prop], prop);\n (utils.isUndefined(configValue) && merge !== mergeDirectKeys) || (config[prop] = configValue);\n });\n\n return config;\n}\n","import platform from \"../platform/index.js\";\nimport utils from \"../utils.js\";\nimport isURLSameOrigin from \"./isURLSameOrigin.js\";\nimport cookies from \"./cookies.js\";\nimport buildFullPath from \"../core/buildFullPath.js\";\nimport mergeConfig from \"../core/mergeConfig.js\";\nimport AxiosHeaders from \"../core/AxiosHeaders.js\";\nimport buildURL from \"./buildURL.js\";\n\nexport default (config) => {\n const newConfig = mergeConfig({}, config);\n\n let { data, withXSRFToken, xsrfHeaderName, xsrfCookieName, headers, auth } = newConfig;\n\n newConfig.headers = headers = AxiosHeaders.from(headers);\n\n newConfig.url = buildURL(buildFullPath(newConfig.baseURL, newConfig.url, newConfig.allowAbsoluteUrls), config.params, config.paramsSerializer);\n\n // HTTP basic authentication\n if (auth) {\n headers.set('Authorization', 'Basic ' +\n btoa((auth.username || '') + ':' + (auth.password ? unescape(encodeURIComponent(auth.password)) : ''))\n );\n }\n\n if (utils.isFormData(data)) {\n if (platform.hasStandardBrowserEnv || platform.hasStandardBrowserWebWorkerEnv) {\n headers.setContentType(undefined); // browser handles it\n } else if (utils.isFunction(data.getHeaders)) {\n // Node.js FormData (like form-data package)\n const formHeaders = data.getHeaders();\n // Only set safe headers to avoid overwriting security headers\n const allowedHeaders = ['content-type', 'content-length'];\n Object.entries(formHeaders).forEach(([key, val]) => {\n if (allowedHeaders.includes(key.toLowerCase())) {\n headers.set(key, val);\n }\n });\n }\n } \n\n // Add xsrf header\n // This is only done if running in a standard browser environment.\n // Specifically not if we're in a web worker, or react-native.\n\n if (platform.hasStandardBrowserEnv) {\n withXSRFToken && utils.isFunction(withXSRFToken) && (withXSRFToken = withXSRFToken(newConfig));\n\n if (withXSRFToken || (withXSRFToken !== false && isURLSameOrigin(newConfig.url))) {\n // Add xsrf header\n const xsrfValue = xsrfHeaderName && xsrfCookieName && cookies.read(xsrfCookieName);\n\n if (xsrfValue) {\n headers.set(xsrfHeaderName, xsrfValue);\n }\n }\n }\n\n return newConfig;\n}\n\n","import utils from './../utils.js';\nimport settle from './../core/settle.js';\nimport transitionalDefaults from '../defaults/transitional.js';\nimport AxiosError from '../core/AxiosError.js';\nimport CanceledError from '../cancel/CanceledError.js';\nimport parseProtocol from '../helpers/parseProtocol.js';\nimport platform from '../platform/index.js';\nimport AxiosHeaders from '../core/AxiosHeaders.js';\nimport {progressEventReducer} from '../helpers/progressEventReducer.js';\nimport resolveConfig from \"../helpers/resolveConfig.js\";\n\nconst isXHRAdapterSupported = typeof XMLHttpRequest !== 'undefined';\n\nexport default isXHRAdapterSupported && function (config) {\n return new Promise(function dispatchXhrRequest(resolve, reject) {\n const _config = resolveConfig(config);\n let requestData = _config.data;\n const requestHeaders = AxiosHeaders.from(_config.headers).normalize();\n let {responseType, onUploadProgress, onDownloadProgress} = _config;\n let onCanceled;\n let uploadThrottled, downloadThrottled;\n let flushUpload, flushDownload;\n\n function done() {\n flushUpload && flushUpload(); // flush events\n flushDownload && flushDownload(); // flush events\n\n _config.cancelToken && _config.cancelToken.unsubscribe(onCanceled);\n\n _config.signal && _config.signal.removeEventListener('abort', onCanceled);\n }\n\n let request = new XMLHttpRequest();\n\n request.open(_config.method.toUpperCase(), _config.url, true);\n\n // Set the request timeout in MS\n request.timeout = _config.timeout;\n\n function onloadend() {\n if (!request) {\n return;\n }\n // Prepare the response\n const responseHeaders = AxiosHeaders.from(\n 'getAllResponseHeaders' in request && request.getAllResponseHeaders()\n );\n const responseData = !responseType || responseType === 'text' || responseType === 'json' ?\n request.responseText : request.response;\n const response = {\n data: responseData,\n status: request.status,\n statusText: request.statusText,\n headers: responseHeaders,\n config,\n request\n };\n\n settle(function _resolve(value) {\n resolve(value);\n done();\n }, function _reject(err) {\n reject(err);\n done();\n }, response);\n\n // Clean up request\n request = null;\n }\n\n if ('onloadend' in request) {\n // Use onloadend if available\n request.onloadend = onloadend;\n } else {\n // Listen for ready state to emulate onloadend\n request.onreadystatechange = function handleLoad() {\n if (!request || request.readyState !== 4) {\n return;\n }\n\n // The request errored out and we didn't get a response, this will be\n // handled by onerror instead\n // With one exception: request that using file: protocol, most browsers\n // will return status as 0 even though it's a successful request\n if (request.status === 0 && !(request.responseURL && request.responseURL.indexOf('file:') === 0)) {\n return;\n }\n // readystate handler is calling before onerror or ontimeout handlers,\n // so we should call onloadend on the next 'tick'\n setTimeout(onloadend);\n };\n }\n\n // Handle browser request cancellation (as opposed to a manual cancellation)\n request.onabort = function handleAbort() {\n if (!request) {\n return;\n }\n\n reject(new AxiosError('Request aborted', AxiosError.ECONNABORTED, config, request));\n\n // Clean up request\n request = null;\n };\n\n // Handle low level network errors\n request.onerror = function handleError(event) {\n // Browsers deliver a ProgressEvent in XHR onerror\n // (message may be empty; when present, surface it)\n // See https://developer.mozilla.org/docs/Web/API/XMLHttpRequest/error_event\n const msg = event && event.message ? event.message : 'Network Error';\n const err = new AxiosError(msg, AxiosError.ERR_NETWORK, config, request);\n // attach the underlying event for consumers who want details\n err.event = event || null;\n reject(err);\n request = null;\n };\n \n // Handle timeout\n request.ontimeout = function handleTimeout() {\n let timeoutErrorMessage = _config.timeout ? 'timeout of ' + _config.timeout + 'ms exceeded' : 'timeout exceeded';\n const transitional = _config.transitional || transitionalDefaults;\n if (_config.timeoutErrorMessage) {\n timeoutErrorMessage = _config.timeoutErrorMessage;\n }\n reject(new AxiosError(\n timeoutErrorMessage,\n transitional.clarifyTimeoutError ? AxiosError.ETIMEDOUT : AxiosError.ECONNABORTED,\n config,\n request));\n\n // Clean up request\n request = null;\n };\n\n // Remove Content-Type if data is undefined\n requestData === undefined && requestHeaders.setContentType(null);\n\n // Add headers to the request\n if ('setRequestHeader' in request) {\n utils.forEach(requestHeaders.toJSON(), function setRequestHeader(val, key) {\n request.setRequestHeader(key, val);\n });\n }\n\n // Add withCredentials to request if needed\n if (!utils.isUndefined(_config.withCredentials)) {\n request.withCredentials = !!_config.withCredentials;\n }\n\n // Add responseType to request if needed\n if (responseType && responseType !== 'json') {\n request.responseType = _config.responseType;\n }\n\n // Handle progress if needed\n if (onDownloadProgress) {\n ([downloadThrottled, flushDownload] = progressEventReducer(onDownloadProgress, true));\n request.addEventListener('progress', downloadThrottled);\n }\n\n // Not all browsers support upload events\n if (onUploadProgress && request.upload) {\n ([uploadThrottled, flushUpload] = progressEventReducer(onUploadProgress));\n\n request.upload.addEventListener('progress', uploadThrottled);\n\n request.upload.addEventListener('loadend', flushUpload);\n }\n\n if (_config.cancelToken || _config.signal) {\n // Handle cancellation\n // eslint-disable-next-line func-names\n onCanceled = cancel => {\n if (!request) {\n return;\n }\n reject(!cancel || cancel.type ? new CanceledError(null, config, request) : cancel);\n request.abort();\n request = null;\n };\n\n _config.cancelToken && _config.cancelToken.subscribe(onCanceled);\n if (_config.signal) {\n _config.signal.aborted ? onCanceled() : _config.signal.addEventListener('abort', onCanceled);\n }\n }\n\n const protocol = parseProtocol(_config.url);\n\n if (protocol && platform.protocols.indexOf(protocol) === -1) {\n reject(new AxiosError('Unsupported protocol ' + protocol + ':', AxiosError.ERR_BAD_REQUEST, config));\n return;\n }\n\n\n // Send the request\n request.send(requestData || null);\n });\n}\n","'use strict';\n\nexport default function parseProtocol(url) {\n const match = /^([-+\\w]{1,25})(:?\\/\\/|:)/.exec(url);\n return match && match[1] || '';\n}\n","import CanceledError from \"../cancel/CanceledError.js\";\nimport AxiosError from \"../core/AxiosError.js\";\nimport utils from '../utils.js';\n\nconst composeSignals = (signals, timeout) => {\n const {length} = (signals = signals ? signals.filter(Boolean) : []);\n\n if (timeout || length) {\n let controller = new AbortController();\n\n let aborted;\n\n const onabort = function (reason) {\n if (!aborted) {\n aborted = true;\n unsubscribe();\n const err = reason instanceof Error ? reason : this.reason;\n controller.abort(err instanceof AxiosError ? err : new CanceledError(err instanceof Error ? err.message : err));\n }\n }\n\n let timer = timeout && setTimeout(() => {\n timer = null;\n onabort(new AxiosError(`timeout ${timeout} of ms exceeded`, AxiosError.ETIMEDOUT))\n }, timeout)\n\n const unsubscribe = () => {\n if (signals) {\n timer && clearTimeout(timer);\n timer = null;\n signals.forEach(signal => {\n signal.unsubscribe ? signal.unsubscribe(onabort) : signal.removeEventListener('abort', onabort);\n });\n signals = null;\n }\n }\n\n signals.forEach((signal) => signal.addEventListener('abort', onabort));\n\n const {signal} = controller;\n\n signal.unsubscribe = () => utils.asap(unsubscribe);\n\n return signal;\n }\n}\n\nexport default composeSignals;\n","\nexport const streamChunk = function* (chunk, chunkSize) {\n let len = chunk.byteLength;\n\n if (!chunkSize || len < chunkSize) {\n yield chunk;\n return;\n }\n\n let pos = 0;\n let end;\n\n while (pos < len) {\n end = pos + chunkSize;\n yield chunk.slice(pos, end);\n pos = end;\n }\n}\n\nexport const readBytes = async function* (iterable, chunkSize) {\n for await (const chunk of readStream(iterable)) {\n yield* streamChunk(chunk, chunkSize);\n }\n}\n\nconst readStream = async function* (stream) {\n if (stream[Symbol.asyncIterator]) {\n yield* stream;\n return;\n }\n\n const reader = stream.getReader();\n try {\n for (;;) {\n const {done, value} = await reader.read();\n if (done) {\n break;\n }\n yield value;\n }\n } finally {\n await reader.cancel();\n }\n}\n\nexport const trackStream = (stream, chunkSize, onProgress, onFinish) => {\n const iterator = readBytes(stream, chunkSize);\n\n let bytes = 0;\n let done;\n let _onFinish = (e) => {\n if (!done) {\n done = true;\n onFinish && onFinish(e);\n }\n }\n\n return new ReadableStream({\n async pull(controller) {\n try {\n const {done, value} = await iterator.next();\n\n if (done) {\n _onFinish();\n controller.close();\n return;\n }\n\n let len = value.byteLength;\n if (onProgress) {\n let loadedBytes = bytes += len;\n onProgress(loadedBytes);\n }\n controller.enqueue(new Uint8Array(value));\n } catch (err) {\n _onFinish(err);\n throw err;\n }\n },\n cancel(reason) {\n _onFinish(reason);\n return iterator.return();\n }\n }, {\n highWaterMark: 2\n })\n}\n","import platform from \"../platform/index.js\";\nimport utils from \"../utils.js\";\nimport AxiosError from \"../core/AxiosError.js\";\nimport composeSignals from \"../helpers/composeSignals.js\";\nimport {trackStream} from \"../helpers/trackStream.js\";\nimport AxiosHeaders from \"../core/AxiosHeaders.js\";\nimport {progressEventReducer, progressEventDecorator, asyncDecorator} from \"../helpers/progressEventReducer.js\";\nimport resolveConfig from \"../helpers/resolveConfig.js\";\nimport settle from \"../core/settle.js\";\n\nconst DEFAULT_CHUNK_SIZE = 64 * 1024;\n\nconst {isFunction} = utils;\n\nconst globalFetchAPI = (({Request, Response}) => ({\n Request, Response\n}))(utils.global);\n\nconst {\n ReadableStream, TextEncoder\n} = utils.global;\n\n\nconst test = (fn, ...args) => {\n try {\n return !!fn(...args);\n } catch (e) {\n return false\n }\n}\n\nconst factory = (env) => {\n env = utils.merge.call({\n skipUndefined: true\n }, globalFetchAPI, env);\n\n const {fetch: envFetch, Request, Response} = env;\n const isFetchSupported = envFetch ? isFunction(envFetch) : typeof fetch === 'function';\n const isRequestSupported = isFunction(Request);\n const isResponseSupported = isFunction(Response);\n\n if (!isFetchSupported) {\n return false;\n }\n\n const isReadableStreamSupported = isFetchSupported && isFunction(ReadableStream);\n\n const encodeText = isFetchSupported && (typeof TextEncoder === 'function' ?\n ((encoder) => (str) => encoder.encode(str))(new TextEncoder()) :\n async (str) => new Uint8Array(await new Request(str).arrayBuffer())\n );\n\n const supportsRequestStream = isRequestSupported && isReadableStreamSupported && test(() => {\n let duplexAccessed = false;\n\n const hasContentType = new Request(platform.origin, {\n body: new ReadableStream(),\n method: 'POST',\n get duplex() {\n duplexAccessed = true;\n return 'half';\n },\n }).headers.has('Content-Type');\n\n return duplexAccessed && !hasContentType;\n });\n\n const supportsResponseStream = isResponseSupported && isReadableStreamSupported &&\n test(() => utils.isReadableStream(new Response('').body));\n\n const resolvers = {\n stream: supportsResponseStream && ((res) => res.body)\n };\n\n isFetchSupported && ((() => {\n ['text', 'arrayBuffer', 'blob', 'formData', 'stream'].forEach(type => {\n !resolvers[type] && (resolvers[type] = (res, config) => {\n let method = res && res[type];\n\n if (method) {\n return method.call(res);\n }\n\n throw new AxiosError(`Response type '${type}' is not supported`, AxiosError.ERR_NOT_SUPPORT, config);\n })\n });\n })());\n\n const getBodyLength = async (body) => {\n if (body == null) {\n return 0;\n }\n\n if (utils.isBlob(body)) {\n return body.size;\n }\n\n if (utils.isSpecCompliantForm(body)) {\n const _request = new Request(platform.origin, {\n method: 'POST',\n body,\n });\n return (await _request.arrayBuffer()).byteLength;\n }\n\n if (utils.isArrayBufferView(body) || utils.isArrayBuffer(body)) {\n return body.byteLength;\n }\n\n if (utils.isURLSearchParams(body)) {\n body = body + '';\n }\n\n if (utils.isString(body)) {\n return (await encodeText(body)).byteLength;\n }\n }\n\n const resolveBodyLength = async (headers, body) => {\n const length = utils.toFiniteNumber(headers.getContentLength());\n\n return length == null ? getBodyLength(body) : length;\n }\n\n return async (config) => {\n let {\n url,\n method,\n data,\n signal,\n cancelToken,\n timeout,\n onDownloadProgress,\n onUploadProgress,\n responseType,\n headers,\n withCredentials = 'same-origin',\n fetchOptions\n } = resolveConfig(config);\n\n let _fetch = envFetch || fetch;\n\n responseType = responseType ? (responseType + '').toLowerCase() : 'text';\n\n let composedSignal = composeSignals([signal, cancelToken && cancelToken.toAbortSignal()], timeout);\n\n let request = null;\n\n const unsubscribe = composedSignal && composedSignal.unsubscribe && (() => {\n composedSignal.unsubscribe();\n });\n\n let requestContentLength;\n\n try {\n if (\n onUploadProgress && supportsRequestStream && method !== 'get' && method !== 'head' &&\n (requestContentLength = await resolveBodyLength(headers, data)) !== 0\n ) {\n let _request = new Request(url, {\n method: 'POST',\n body: data,\n duplex: \"half\"\n });\n\n let contentTypeHeader;\n\n if (utils.isFormData(data) && (contentTypeHeader = _request.headers.get('content-type'))) {\n headers.setContentType(contentTypeHeader)\n }\n\n if (_request.body) {\n const [onProgress, flush] = progressEventDecorator(\n requestContentLength,\n progressEventReducer(asyncDecorator(onUploadProgress))\n );\n\n data = trackStream(_request.body, DEFAULT_CHUNK_SIZE, onProgress, flush);\n }\n }\n\n if (!utils.isString(withCredentials)) {\n withCredentials = withCredentials ? 'include' : 'omit';\n }\n\n // Cloudflare Workers throws when credentials are defined\n // see https://github.com/cloudflare/workerd/issues/902\n const isCredentialsSupported = isRequestSupported && \"credentials\" in Request.prototype;\n\n const resolvedOptions = {\n ...fetchOptions,\n signal: composedSignal,\n method: method.toUpperCase(),\n headers: headers.normalize().toJSON(),\n body: data,\n duplex: \"half\",\n credentials: isCredentialsSupported ? withCredentials : undefined\n };\n\n request = isRequestSupported && new Request(url, resolvedOptions);\n\n let response = await (isRequestSupported ? _fetch(request, fetchOptions) : _fetch(url, resolvedOptions));\n\n const isStreamResponse = supportsResponseStream && (responseType === 'stream' || responseType === 'response');\n\n if (supportsResponseStream && (onDownloadProgress || (isStreamResponse && unsubscribe))) {\n const options = {};\n\n ['status', 'statusText', 'headers'].forEach(prop => {\n options[prop] = response[prop];\n });\n\n const responseContentLength = utils.toFiniteNumber(response.headers.get('content-length'));\n\n const [onProgress, flush] = onDownloadProgress && progressEventDecorator(\n responseContentLength,\n progressEventReducer(asyncDecorator(onDownloadProgress), true)\n ) || [];\n\n response = new Response(\n trackStream(response.body, DEFAULT_CHUNK_SIZE, onProgress, () => {\n flush && flush();\n unsubscribe && unsubscribe();\n }),\n options\n );\n }\n\n responseType = responseType || 'text';\n\n let responseData = await resolvers[utils.findKey(resolvers, responseType) || 'text'](response, config);\n\n !isStreamResponse && unsubscribe && unsubscribe();\n\n return await new Promise((resolve, reject) => {\n settle(resolve, reject, {\n data: responseData,\n headers: AxiosHeaders.from(response.headers),\n status: response.status,\n statusText: response.statusText,\n config,\n request\n })\n })\n } catch (err) {\n unsubscribe && unsubscribe();\n\n if (err && err.name === 'TypeError' && /Load failed|fetch/i.test(err.message)) {\n throw Object.assign(\n new AxiosError('Network Error', AxiosError.ERR_NETWORK, config, request),\n {\n cause: err.cause || err\n }\n )\n }\n\n throw AxiosError.from(err, err && err.code, config, request);\n }\n }\n}\n\nconst seedCache = new Map();\n\nexport const getFetch = (config) => {\n let env = config ? config.env : {};\n const {fetch, Request, Response} = env;\n const seeds = [\n Request, Response, fetch\n ];\n\n let len = seeds.length, i = len,\n seed, target, map = seedCache;\n\n while (i--) {\n seed = seeds[i];\n target = map.get(seed);\n\n target === undefined && map.set(seed, target = (i ? new Map() : factory(env)))\n\n map = target;\n }\n\n return target;\n};\n\nconst adapter = getFetch();\n\nexport default adapter;\n","import utils from '../utils.js';\nimport httpAdapter from './http.js';\nimport xhrAdapter from './xhr.js';\nimport * as fetchAdapter from './fetch.js';\nimport AxiosError from \"../core/AxiosError.js\";\n\nconst knownAdapters = {\n http: httpAdapter,\n xhr: xhrAdapter,\n fetch: {\n get: fetchAdapter.getFetch,\n }\n}\n\nutils.forEach(knownAdapters, (fn, value) => {\n if (fn) {\n try {\n Object.defineProperty(fn, 'name', {value});\n } catch (e) {\n // eslint-disable-next-line no-empty\n }\n Object.defineProperty(fn, 'adapterName', {value});\n }\n});\n\nconst renderReason = (reason) => `- ${reason}`;\n\nconst isResolvedHandle = (adapter) => utils.isFunction(adapter) || adapter === null || adapter === false;\n\nexport default {\n getAdapter: (adapters, config) => {\n adapters = utils.isArray(adapters) ? adapters : [adapters];\n\n const {length} = adapters;\n let nameOrAdapter;\n let adapter;\n\n const rejectedReasons = {};\n\n for (let i = 0; i < length; i++) {\n nameOrAdapter = adapters[i];\n let id;\n\n adapter = nameOrAdapter;\n\n if (!isResolvedHandle(nameOrAdapter)) {\n adapter = knownAdapters[(id = String(nameOrAdapter)).toLowerCase()];\n\n if (adapter === undefined) {\n throw new AxiosError(`Unknown adapter '${id}'`);\n }\n }\n\n if (adapter && (utils.isFunction(adapter) || (adapter = adapter.get(config)))) {\n break;\n }\n\n rejectedReasons[id || '#' + i] = adapter;\n }\n\n if (!adapter) {\n\n const reasons = Object.entries(rejectedReasons)\n .map(([id, state]) => `adapter ${id} ` +\n (state === false ? 'is not supported by the environment' : 'is not available in the build')\n );\n\n let s = length ?\n (reasons.length > 1 ? 'since :\\n' + reasons.map(renderReason).join('\\n') : ' ' + renderReason(reasons[0])) :\n 'as no adapter specified';\n\n throw new AxiosError(\n `There is no suitable adapter to dispatch the request ` + s,\n 'ERR_NOT_SUPPORT'\n );\n }\n\n return adapter;\n },\n adapters: knownAdapters\n}\n","// eslint-disable-next-line strict\nexport default null;\n","'use strict';\n\nimport transformData from './transformData.js';\nimport isCancel from '../cancel/isCancel.js';\nimport defaults from '../defaults/index.js';\nimport CanceledError from '../cancel/CanceledError.js';\nimport AxiosHeaders from '../core/AxiosHeaders.js';\nimport adapters from \"../adapters/adapters.js\";\n\n/**\n * Throws a `CanceledError` if cancellation has been requested.\n *\n * @param {Object} config The config that is to be used for the request\n *\n * @returns {void}\n */\nfunction throwIfCancellationRequested(config) {\n if (config.cancelToken) {\n config.cancelToken.throwIfRequested();\n }\n\n if (config.signal && config.signal.aborted) {\n throw new CanceledError(null, config);\n }\n}\n\n/**\n * Dispatch a request to the server using the configured adapter.\n *\n * @param {object} config The config that is to be used for the request\n *\n * @returns {Promise} The Promise to be fulfilled\n */\nexport default function dispatchRequest(config) {\n throwIfCancellationRequested(config);\n\n config.headers = AxiosHeaders.from(config.headers);\n\n // Transform request data\n config.data = transformData.call(\n config,\n config.transformRequest\n );\n\n if (['post', 'put', 'patch'].indexOf(config.method) !== -1) {\n config.headers.setContentType('application/x-www-form-urlencoded', false);\n }\n\n const adapter = adapters.getAdapter(config.adapter || defaults.adapter, config);\n\n return adapter(config).then(function onAdapterResolution(response) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n response.data = transformData.call(\n config,\n config.transformResponse,\n response\n );\n\n response.headers = AxiosHeaders.from(response.headers);\n\n return response;\n }, function onAdapterRejection(reason) {\n if (!isCancel(reason)) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n if (reason && reason.response) {\n reason.response.data = transformData.call(\n config,\n config.transformResponse,\n reason.response\n );\n reason.response.headers = AxiosHeaders.from(reason.response.headers);\n }\n }\n\n return Promise.reject(reason);\n });\n}\n","export const VERSION = \"1.12.2\";","'use strict';\n\nimport {VERSION} from '../env/data.js';\nimport AxiosError from '../core/AxiosError.js';\n\nconst validators = {};\n\n// eslint-disable-next-line func-names\n['object', 'boolean', 'number', 'function', 'string', 'symbol'].forEach((type, i) => {\n validators[type] = function validator(thing) {\n return typeof thing === type || 'a' + (i < 1 ? 'n ' : ' ') + type;\n };\n});\n\nconst deprecatedWarnings = {};\n\n/**\n * Transitional option validator\n *\n * @param {function|boolean?} validator - set to false if the transitional option has been removed\n * @param {string?} version - deprecated version / removed since version\n * @param {string?} message - some message with additional info\n *\n * @returns {function}\n */\nvalidators.transitional = function transitional(validator, version, message) {\n function formatMessage(opt, desc) {\n return '[Axios v' + VERSION + '] Transitional option \\'' + opt + '\\'' + desc + (message ? '. ' + message : '');\n }\n\n // eslint-disable-next-line func-names\n return (value, opt, opts) => {\n if (validator === false) {\n throw new AxiosError(\n formatMessage(opt, ' has been removed' + (version ? ' in ' + version : '')),\n AxiosError.ERR_DEPRECATED\n );\n }\n\n if (version && !deprecatedWarnings[opt]) {\n deprecatedWarnings[opt] = true;\n // eslint-disable-next-line no-console\n console.warn(\n formatMessage(\n opt,\n ' has been deprecated since v' + version + ' and will be removed in the near future'\n )\n );\n }\n\n return validator ? validator(value, opt, opts) : true;\n };\n};\n\nvalidators.spelling = function spelling(correctSpelling) {\n return (value, opt) => {\n // eslint-disable-next-line no-console\n console.warn(`${opt} is likely a misspelling of ${correctSpelling}`);\n return true;\n }\n};\n\n/**\n * Assert object's properties type\n *\n * @param {object} options\n * @param {object} schema\n * @param {boolean?} allowUnknown\n *\n * @returns {object}\n */\n\nfunction assertOptions(options, schema, allowUnknown) {\n if (typeof options !== 'object') {\n throw new AxiosError('options must be an object', AxiosError.ERR_BAD_OPTION_VALUE);\n }\n const keys = Object.keys(options);\n let i = keys.length;\n while (i-- > 0) {\n const opt = keys[i];\n const validator = schema[opt];\n if (validator) {\n const value = options[opt];\n const result = value === undefined || validator(value, opt, options);\n if (result !== true) {\n throw new AxiosError('option ' + opt + ' must be ' + result, AxiosError.ERR_BAD_OPTION_VALUE);\n }\n continue;\n }\n if (allowUnknown !== true) {\n throw new AxiosError('Unknown option ' + opt, AxiosError.ERR_BAD_OPTION);\n }\n }\n}\n\nexport default {\n assertOptions,\n validators\n};\n","'use strict';\n\nimport utils from './../utils.js';\nimport buildURL from '../helpers/buildURL.js';\nimport InterceptorManager from './InterceptorManager.js';\nimport dispatchRequest from './dispatchRequest.js';\nimport mergeConfig from './mergeConfig.js';\nimport buildFullPath from './buildFullPath.js';\nimport validator from '../helpers/validator.js';\nimport AxiosHeaders from './AxiosHeaders.js';\n\nconst validators = validator.validators;\n\n/**\n * Create a new instance of Axios\n *\n * @param {Object} instanceConfig The default config for the instance\n *\n * @return {Axios} A new instance of Axios\n */\nclass Axios {\n constructor(instanceConfig) {\n this.defaults = instanceConfig || {};\n this.interceptors = {\n request: new InterceptorManager(),\n response: new InterceptorManager()\n };\n }\n\n /**\n * Dispatch a request\n *\n * @param {String|Object} configOrUrl The config specific for this request (merged with this.defaults)\n * @param {?Object} config\n *\n * @returns {Promise} The Promise to be fulfilled\n */\n async request(configOrUrl, config) {\n try {\n return await this._request(configOrUrl, config);\n } catch (err) {\n if (err instanceof Error) {\n let dummy = {};\n\n Error.captureStackTrace ? Error.captureStackTrace(dummy) : (dummy = new Error());\n\n // slice off the Error: ... line\n const stack = dummy.stack ? dummy.stack.replace(/^.+\\n/, '') : '';\n try {\n if (!err.stack) {\n err.stack = stack;\n // match without the 2 top stack lines\n } else if (stack && !String(err.stack).endsWith(stack.replace(/^.+\\n.+\\n/, ''))) {\n err.stack += '\\n' + stack\n }\n } catch (e) {\n // ignore the case where \"stack\" is an un-writable property\n }\n }\n\n throw err;\n }\n }\n\n _request(configOrUrl, config) {\n /*eslint no-param-reassign:0*/\n // Allow for axios('example/url'[, config]) a la fetch API\n if (typeof configOrUrl === 'string') {\n config = config || {};\n config.url = configOrUrl;\n } else {\n config = configOrUrl || {};\n }\n\n config = mergeConfig(this.defaults, config);\n\n const {transitional, paramsSerializer, headers} = config;\n\n if (transitional !== undefined) {\n validator.assertOptions(transitional, {\n silentJSONParsing: validators.transitional(validators.boolean),\n forcedJSONParsing: validators.transitional(validators.boolean),\n clarifyTimeoutError: validators.transitional(validators.boolean)\n }, false);\n }\n\n if (paramsSerializer != null) {\n if (utils.isFunction(paramsSerializer)) {\n config.paramsSerializer = {\n serialize: paramsSerializer\n }\n } else {\n validator.assertOptions(paramsSerializer, {\n encode: validators.function,\n serialize: validators.function\n }, true);\n }\n }\n\n // Set config.allowAbsoluteUrls\n if (config.allowAbsoluteUrls !== undefined) {\n // do nothing\n } else if (this.defaults.allowAbsoluteUrls !== undefined) {\n config.allowAbsoluteUrls = this.defaults.allowAbsoluteUrls;\n } else {\n config.allowAbsoluteUrls = true;\n }\n\n validator.assertOptions(config, {\n baseUrl: validators.spelling('baseURL'),\n withXsrfToken: validators.spelling('withXSRFToken')\n }, true);\n\n // Set config.method\n config.method = (config.method || this.defaults.method || 'get').toLowerCase();\n\n // Flatten headers\n let contextHeaders = headers && utils.merge(\n headers.common,\n headers[config.method]\n );\n\n headers && utils.forEach(\n ['delete', 'get', 'head', 'post', 'put', 'patch', 'common'],\n (method) => {\n delete headers[method];\n }\n );\n\n config.headers = AxiosHeaders.concat(contextHeaders, headers);\n\n // filter out skipped interceptors\n const requestInterceptorChain = [];\n let synchronousRequestInterceptors = true;\n this.interceptors.request.forEach(function unshiftRequestInterceptors(interceptor) {\n if (typeof interceptor.runWhen === 'function' && interceptor.runWhen(config) === false) {\n return;\n }\n\n synchronousRequestInterceptors = synchronousRequestInterceptors && interceptor.synchronous;\n\n requestInterceptorChain.unshift(interceptor.fulfilled, interceptor.rejected);\n });\n\n const responseInterceptorChain = [];\n this.interceptors.response.forEach(function pushResponseInterceptors(interceptor) {\n responseInterceptorChain.push(interceptor.fulfilled, interceptor.rejected);\n });\n\n let promise;\n let i = 0;\n let len;\n\n if (!synchronousRequestInterceptors) {\n const chain = [dispatchRequest.bind(this), undefined];\n chain.unshift(...requestInterceptorChain);\n chain.push(...responseInterceptorChain);\n len = chain.length;\n\n promise = Promise.resolve(config);\n\n while (i < len) {\n promise = promise.then(chain[i++], chain[i++]);\n }\n\n return promise;\n }\n\n len = requestInterceptorChain.length;\n\n let newConfig = config;\n\n while (i < len) {\n const onFulfilled = requestInterceptorChain[i++];\n const onRejected = requestInterceptorChain[i++];\n try {\n newConfig = onFulfilled(newConfig);\n } catch (error) {\n onRejected.call(this, error);\n break;\n }\n }\n\n try {\n promise = dispatchRequest.call(this, newConfig);\n } catch (error) {\n return Promise.reject(error);\n }\n\n i = 0;\n len = responseInterceptorChain.length;\n\n while (i < len) {\n promise = promise.then(responseInterceptorChain[i++], responseInterceptorChain[i++]);\n }\n\n return promise;\n }\n\n getUri(config) {\n config = mergeConfig(this.defaults, config);\n const fullPath = buildFullPath(config.baseURL, config.url, config.allowAbsoluteUrls);\n return buildURL(fullPath, config.params, config.paramsSerializer);\n }\n}\n\n// Provide aliases for supported request methods\nutils.forEach(['delete', 'get', 'head', 'options'], function forEachMethodNoData(method) {\n /*eslint func-names:0*/\n Axios.prototype[method] = function(url, config) {\n return this.request(mergeConfig(config || {}, {\n method,\n url,\n data: (config || {}).data\n }));\n };\n});\n\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n /*eslint func-names:0*/\n\n function generateHTTPMethod(isForm) {\n return function httpMethod(url, data, config) {\n return this.request(mergeConfig(config || {}, {\n method,\n headers: isForm ? {\n 'Content-Type': 'multipart/form-data'\n } : {},\n url,\n data\n }));\n };\n }\n\n Axios.prototype[method] = generateHTTPMethod();\n\n Axios.prototype[method + 'Form'] = generateHTTPMethod(true);\n});\n\nexport default Axios;\n","const HttpStatusCode = {\n Continue: 100,\n SwitchingProtocols: 101,\n Processing: 102,\n EarlyHints: 103,\n Ok: 200,\n Created: 201,\n Accepted: 202,\n NonAuthoritativeInformation: 203,\n NoContent: 204,\n ResetContent: 205,\n PartialContent: 206,\n MultiStatus: 207,\n AlreadyReported: 208,\n ImUsed: 226,\n MultipleChoices: 300,\n MovedPermanently: 301,\n Found: 302,\n SeeOther: 303,\n NotModified: 304,\n UseProxy: 305,\n Unused: 306,\n TemporaryRedirect: 307,\n PermanentRedirect: 308,\n BadRequest: 400,\n Unauthorized: 401,\n PaymentRequired: 402,\n Forbidden: 403,\n NotFound: 404,\n MethodNotAllowed: 405,\n NotAcceptable: 406,\n ProxyAuthenticationRequired: 407,\n RequestTimeout: 408,\n Conflict: 409,\n Gone: 410,\n LengthRequired: 411,\n PreconditionFailed: 412,\n PayloadTooLarge: 413,\n UriTooLong: 414,\n UnsupportedMediaType: 415,\n RangeNotSatisfiable: 416,\n ExpectationFailed: 417,\n ImATeapot: 418,\n MisdirectedRequest: 421,\n UnprocessableEntity: 422,\n Locked: 423,\n FailedDependency: 424,\n TooEarly: 425,\n UpgradeRequired: 426,\n PreconditionRequired: 428,\n TooManyRequests: 429,\n RequestHeaderFieldsTooLarge: 431,\n UnavailableForLegalReasons: 451,\n InternalServerError: 500,\n NotImplemented: 501,\n BadGateway: 502,\n ServiceUnavailable: 503,\n GatewayTimeout: 504,\n HttpVersionNotSupported: 505,\n VariantAlsoNegotiates: 506,\n InsufficientStorage: 507,\n LoopDetected: 508,\n NotExtended: 510,\n NetworkAuthenticationRequired: 511,\n};\n\nObject.entries(HttpStatusCode).forEach(([key, value]) => {\n HttpStatusCode[value] = key;\n});\n\nexport default HttpStatusCode;\n","'use strict';\n\nimport utils from './utils.js';\nimport bind from './helpers/bind.js';\nimport Axios from './core/Axios.js';\nimport mergeConfig from './core/mergeConfig.js';\nimport defaults from './defaults/index.js';\nimport formDataToJSON from './helpers/formDataToJSON.js';\nimport CanceledError from './cancel/CanceledError.js';\nimport CancelToken from './cancel/CancelToken.js';\nimport isCancel from './cancel/isCancel.js';\nimport {VERSION} from './env/data.js';\nimport toFormData from './helpers/toFormData.js';\nimport AxiosError from './core/AxiosError.js';\nimport spread from './helpers/spread.js';\nimport isAxiosError from './helpers/isAxiosError.js';\nimport AxiosHeaders from \"./core/AxiosHeaders.js\";\nimport adapters from './adapters/adapters.js';\nimport HttpStatusCode from './helpers/HttpStatusCode.js';\n\n/**\n * Create an instance of Axios\n *\n * @param {Object} defaultConfig The default config for the instance\n *\n * @returns {Axios} A new instance of Axios\n */\nfunction createInstance(defaultConfig) {\n const context = new Axios(defaultConfig);\n const instance = bind(Axios.prototype.request, context);\n\n // Copy axios.prototype to instance\n utils.extend(instance, Axios.prototype, context, {allOwnKeys: true});\n\n // Copy context to instance\n utils.extend(instance, context, null, {allOwnKeys: true});\n\n // Factory for creating new instances\n instance.create = function create(instanceConfig) {\n return createInstance(mergeConfig(defaultConfig, instanceConfig));\n };\n\n return instance;\n}\n\n// Create the default instance to be exported\nconst axios = createInstance(defaults);\n\n// Expose Axios class to allow class inheritance\naxios.Axios = Axios;\n\n// Expose Cancel & CancelToken\naxios.CanceledError = CanceledError;\naxios.CancelToken = CancelToken;\naxios.isCancel = isCancel;\naxios.VERSION = VERSION;\naxios.toFormData = toFormData;\n\n// Expose AxiosError class\naxios.AxiosError = AxiosError;\n\n// alias for CanceledError for backward compatibility\naxios.Cancel = axios.CanceledError;\n\n// Expose all/spread\naxios.all = function all(promises) {\n return Promise.all(promises);\n};\n\naxios.spread = spread;\n\n// Expose isAxiosError\naxios.isAxiosError = isAxiosError;\n\n// Expose mergeConfig\naxios.mergeConfig = mergeConfig;\n\naxios.AxiosHeaders = AxiosHeaders;\n\naxios.formToJSON = thing => formDataToJSON(utils.isHTMLForm(thing) ? new FormData(thing) : thing);\n\naxios.getAdapter = adapters.getAdapter;\n\naxios.HttpStatusCode = HttpStatusCode;\n\naxios.default = axios;\n\n// this module should only have a default export\nexport default axios\n","'use strict';\n\nimport CanceledError from './CanceledError.js';\n\n/**\n * A `CancelToken` is an object that can be used to request cancellation of an operation.\n *\n * @param {Function} executor The executor function.\n *\n * @returns {CancelToken}\n */\nclass CancelToken {\n constructor(executor) {\n if (typeof executor !== 'function') {\n throw new TypeError('executor must be a function.');\n }\n\n let resolvePromise;\n\n this.promise = new Promise(function promiseExecutor(resolve) {\n resolvePromise = resolve;\n });\n\n const token = this;\n\n // eslint-disable-next-line func-names\n this.promise.then(cancel => {\n if (!token._listeners) return;\n\n let i = token._listeners.length;\n\n while (i-- > 0) {\n token._listeners[i](cancel);\n }\n token._listeners = null;\n });\n\n // eslint-disable-next-line func-names\n this.promise.then = onfulfilled => {\n let _resolve;\n // eslint-disable-next-line func-names\n const promise = new Promise(resolve => {\n token.subscribe(resolve);\n _resolve = resolve;\n }).then(onfulfilled);\n\n promise.cancel = function reject() {\n token.unsubscribe(_resolve);\n };\n\n return promise;\n };\n\n executor(function cancel(message, config, request) {\n if (token.reason) {\n // Cancellation has already been requested\n return;\n }\n\n token.reason = new CanceledError(message, config, request);\n resolvePromise(token.reason);\n });\n }\n\n /**\n * Throws a `CanceledError` if cancellation has been requested.\n */\n throwIfRequested() {\n if (this.reason) {\n throw this.reason;\n }\n }\n\n /**\n * Subscribe to the cancel signal\n */\n\n subscribe(listener) {\n if (this.reason) {\n listener(this.reason);\n return;\n }\n\n if (this._listeners) {\n this._listeners.push(listener);\n } else {\n this._listeners = [listener];\n }\n }\n\n /**\n * Unsubscribe from the cancel signal\n */\n\n unsubscribe(listener) {\n if (!this._listeners) {\n return;\n }\n const index = this._listeners.indexOf(listener);\n if (index !== -1) {\n this._listeners.splice(index, 1);\n }\n }\n\n toAbortSignal() {\n const controller = new AbortController();\n\n const abort = (err) => {\n controller.abort(err);\n };\n\n this.subscribe(abort);\n\n controller.signal.unsubscribe = () => this.unsubscribe(abort);\n\n return controller.signal;\n }\n\n /**\n * Returns an object that contains a new `CancelToken` and a function that, when called,\n * cancels the `CancelToken`.\n */\n static source() {\n let cancel;\n const token = new CancelToken(function executor(c) {\n cancel = c;\n });\n return {\n token,\n cancel\n };\n }\n}\n\nexport default CancelToken;\n","'use strict';\n\n/**\n * Syntactic sugar for invoking a function and expanding an array for arguments.\n *\n * Common use case would be to use `Function.prototype.apply`.\n *\n * ```js\n * function f(x, y, z) {}\n * var args = [1, 2, 3];\n * f.apply(null, args);\n * ```\n *\n * With `spread` this example can be re-written.\n *\n * ```js\n * spread(function(x, y, z) {})([1, 2, 3]);\n * ```\n *\n * @param {Function} callback\n *\n * @returns {Function}\n */\nexport default function spread(callback) {\n return function wrap(arr) {\n return callback.apply(null, arr);\n };\n}\n","'use strict';\n\nimport utils from './../utils.js';\n\n/**\n * Determines whether the payload is an error thrown by Axios\n *\n * @param {*} payload The value to test\n *\n * @returns {boolean} True if the payload is an error thrown by Axios, otherwise false\n */\nexport default function isAxiosError(payload) {\n return utils.isObject(payload) && (payload.isAxiosError === true);\n}\n","import axios from './lib/axios.js';\n\n// This module is intended to unwrap Axios default export as named.\n// Keep top-level export same with static properties\n// so that it can keep same with es module or cjs\nconst {\n Axios,\n AxiosError,\n CanceledError,\n isCancel,\n CancelToken,\n VERSION,\n all,\n Cancel,\n isAxiosError,\n spread,\n toFormData,\n AxiosHeaders,\n HttpStatusCode,\n formToJSON,\n getAdapter,\n mergeConfig\n} = axios;\n\nexport {\n axios as default,\n Axios,\n AxiosError,\n CanceledError,\n isCancel,\n CancelToken,\n VERSION,\n all,\n Cancel,\n isAxiosError,\n spread,\n toFormData,\n AxiosHeaders,\n HttpStatusCode,\n formToJSON,\n getAdapter,\n mergeConfig\n}\n","/**\r\n * Environment Configuration for Funhi Chart\r\n * \r\n * This file provides configuration for the chart component\r\n * Users can override these values by passing them as props\r\n */\r\n\r\nexport const API_CONFIG = {\r\n // Backend API base URL - users should provide this\r\n BASE_URL: typeof window !== 'undefined' && (window as any).FUNHI_CHART_API_URL \r\n ? (window as any).FUNHI_CHART_API_URL \r\n : process.env.NEXT_PUBLIC_BACKEND_URL || '',\r\n\r\n // API request timeout in milliseconds\r\n TIMEOUT: 10000,\r\n\r\n // Retry configuration\r\n MAX_RETRIES: 3,\r\n RETRY_DELAY: 1000,\r\n} as const;\r\n\r\n","/**\r\n * Candle Storage Service\r\n * Handles saving and retrieving candles from database via API\r\n * Replaces localStorage with database storage for persistent candle data\r\n */\r\n\r\nimport axios from 'axios';\r\nimport { API_CONFIG } from '../config/environment';\r\n\r\nexport interface CandleData {\r\n time: number; // Unix timestamp in seconds\r\n open: number;\r\n high: number;\r\n low: number;\r\n close: number;\r\n volume: number;\r\n}\r\n\r\nexport interface SaveCandlesRequest {\r\n mint: string;\r\n candles: CandleData[];\r\n timeFrame?: number; // in seconds, defaults to 60 (1 minute)\r\n}\r\n\r\nexport interface GetCandlesRequest {\r\n mint: string;\r\n timeFrame?: number; // in seconds, defaults to 60 (1 minute)\r\n limit?: number; // max number of candles to retrieve, defaults to 200\r\n}\r\n\r\nexport interface SaveCandleRequest {\r\n mint: string;\r\n candle: CandleData;\r\n timeFrame?: number; // in seconds, defaults to 60 (1 minute)\r\n}\r\n\r\nclass CandleStorageService {\r\n private readonly baseURL = `${API_CONFIG.BASE_URL}/api/ohlcv`;\r\n private savingQueue: Map<string, { candles: CandleData[], timeout: ReturnType<typeof setTimeout> }> = new Map();\r\n private readonly BATCH_DELAY = 5000; // 5 seconds - batch candles before saving\r\n private readonly BATCH_SIZE = 50; // Save when we reach this many candles\r\n\r\n /**\r\n * Save multiple candles to database\r\n * Uses batching to reduce API calls\r\n */\r\n async saveCandles(request: SaveCandlesRequest): Promise<boolean> {\r\n try {\r\n const { mint, candles, timeFrame = 60 } = request;\r\n\r\n if (!mint || !candles || candles.length === 0) {\r\n console.warn('⚠️ [CandleStorage] Invalid save request:', request);\r\n return false;\r\n }\r\n\r\n const response = await axios.post(`${this.baseURL}/candles/save`, {\r\n mint,\r\n candles,\r\n timeFrame\r\n });\r\n\r\n if (response.data.success) {\r\n console.log(`💾 [CandleStorage] Saved ${candles.length} candles for ${mint}`);\r\n return true;\r\n }\r\n\r\n return false;\r\n } catch (error) {\r\n console.error('❌ [CandleStorage] Error saving candles:', error);\r\n return false;\r\n }\r\n }\r\n\r\n /**\r\n * Save a single candle to database\r\n * Batches candles to reduce API calls\r\n */\r\n async saveCandle(request: SaveCandleRequest): Promise<boolean> {\r\n try {\r\n const { mint, candle, timeFrame = 60 } = request;\r\n\r\n if (!mint || !candle) {\r\n console.warn('⚠️ [CandleStorage] Invalid save request:', request);\r\n return false;\r\n }\r\n\r\n // Add to batching queue\r\n const queueKey = `${mint}_${timeFrame}`;\r\n const existingQueue = this.savingQueue.get(queueKey);\r\n\r\n if (existingQueue) {\r\n // Clear existing timeout\r\n clearTimeout(existingQueue.timeout);\r\n \r\n // Add candle to queue\r\n existingQueue.candles.push(candle);\r\n\r\n // If we've reached batch size, save immediately\r\n if (existingQueue.candles.length >= this.BATCH_SIZE) {\r\n await this.flushQueue(queueKey, mint, timeFrame);\r\n } else {\r\n // Otherwise, set new timeout\r\n existingQueue.timeout = setTimeout(() => {\r\n this.flushQueue(queueKey, mint, timeFrame);\r\n }, this.BATCH_DELAY);\r\n }\r\n } else {\r\n // Create new queue entry\r\n const timeout = setTimeout(() => {\r\n this.flushQueue(queueKey, mint, timeFrame);\r\n }, this.BATCH_DELAY);\r\n\r\n this.savingQueue.set(queueKey, {\r\n candles: [candle],\r\n timeout\r\n });\r\n }\r\n\r\n return true;\r\n } catch (error) {\r\n console.error('❌ [CandleStorage] Error queuing candle:', error);\r\n return false;\r\n }\r\n }\r\n\r\n /**\r\n * Flush the batching queue and save to database\r\n */\r\n private async flushQueue(queueKey: string, mint: string, timeFrame: number): Promise<void> {\r\n const queue = this.savingQueue.get(queueKey);\r\n \r\n if (!queue || queue.candles.length === 0) {\r\n return;\r\n }\r\n\r\n // Remove from queue\r\n this.savingQueue.delete(queueKey);\r\n\r\n // Save to database\r\n await this.saveCandles({\r\n mint,\r\n candles: queue.candles,\r\n timeFrame\r\n });\r\n }\r\n\r\n /**\r\n * Get candles from database\r\n */\r\n async getCandles(request: GetCandlesRequest): Promise<CandleData[]> {\r\n try {\r\n const { mint, timeFrame = 60, limit = 50000 } = request;\r\n\r\n if (!mint) {\r\n console.warn('⚠️ [CandleStorage] Invalid get request:', request);\r\n return [];\r\n }\r\n\r\n const response = await axios.get(`${this.baseURL}/candles/${mint}`, {\r\n params: {\r\n timeFrame,\r\n limit\r\n },\r\n // Add timeout to prevent hanging requests\r\n timeout: 8000, // 8 seconds\r\n // Validate response status\r\n validateStatus: (status) => status >= 200 && status < 500\r\n });\r\n\r\n if (response.data.success && response.data.data && response.data.data.candles) {\r\n const candleCount = response.data.data.candles.length;\r\n if (candleCount > 0) {\r\n console.log(`✅ [CandleStorage] Retrieved ${candleCount} candles for ${mint}`);\r\n } else {\r\n console.log(`ℹ️ [CandleStorage] No candles found for ${mint} in database`);\r\n }\r\n return response.data.data.candles;\r\n }\r\n\r\n // Handle warning from backend\r\n if (response.data.warning) {\r\n console.warn(`⚠️ [CandleStorage] ${response.data.warning}`);\r\n }\r\n\r\n return [];\r\n } catch (error: any) {\r\n // Log more detailed error information\r\n if (error.code === 'ECONNABORTED') {\r\n console.error('❌ [CandleStorage] Request timeout getting candles for', request.mint);\r\n } else if (error.response) {\r\n console.error('❌ [CandleStorage] Server error getting candles:', error.response.status, error.response.data);\r\n } else if (error.request) {\r\n console.error('❌ [CandleStorage] Network error getting candles - no response received');\r\n } else {\r\n console.error('❌ [CandleStorage] Error getting candles:', error.message);\r\n }\r\n return [];\r\n }\r\n }\r\n\r\n /**\r\n * Flush all pending queues before component unmount\r\n */\r\n async flushAll(): Promise<void> {\r\n const flushPromises: Promise<void>[] = [];\r\n\r\n for (const [queueKey, queue] of this.savingQueue.entries()) {\r\n clearTimeout(queue.timeout);\r\n const [mint, timeFrameStr] = queueKey.split('_');\r\n const timeFrame = parseInt(timeFrameStr);\r\n flushPromises.push(this.flushQueue(queueKey, mint, timeFrame));\r\n }\r\n\r\n await Promise.all(flushPromises);\r\n }\r\n}\r\n\r\n// Export singleton instance\r\nexport const candleStorageService = new CandleStorageService();\r\n\r\n","\"use client\";\n\nimport React, { useEffect, useRef, useState, useCallback, useMemo } from 'react';\nimport { createChart, IChartApi, ISeriesApi, CrosshairMode, Time } from 'lightweight-charts';\nimport { useSocket } from '../hooks/useSocket';\nimport { useOptimizedTokenAnalytics } from '../hooks/useOptimizedTokenAnalytics';\nimport { candleStorageService } from '../services/candleStorage';\n\n// Types\ninterface CandleData {\n time: number;\n open: number;\n high: number;\n low: number;\n close: number;\n volume: number;\n}\n\ninterface TimeFrame {\n label: string;\n value: string;\n seconds: number;\n}\n\nexport interface ChartProps {\n mint: string;\n ticker?: string;\n tokenName?: string;\n socket?: any;\n isConnected?: boolean;\n currentMarketCap?: number;\n analyticsConnected?: boolean;\n analyticsLoading?: boolean;\n}\n\n// Funhi Chart Isolated - Each timeframe works independently (NO AGGREGATION)\nconst FunhiChart: React.FC<ChartProps> = ({ \n mint, \n ticker, \n tokenName,\n socket: externalSocket,\n isConnected: externalIsConnected,\n currentMarketCap: externalMarketCap,\n analyticsConnected: externalAnalyticsConnected,\n analyticsLoading: externalAnalyticsLoading\n}) => {\n // Refs\n const chartContainerRef = useRef<HTMLDivElement>(null);\n const chartRef = useRef<IChartApi | null>(null);\n const seriesRef = useRef<ISeriesApi<\"Candlestick\"> | null>(null);\n \n // Refs for candle state to prevent infinite loops\n const candles1mRef = useRef<CandleData[]>([]);\n const candles5mRef = useRef<CandleData[]>([]);\n const candles15mRef = useRef<CandleData[]>([]);\n const candles1hRef = useRef<CandleData[]>([]);\n const candles4hRef = useRef<CandleData[]>([]);\n const candles1dRef = useRef<CandleData[]>([]);\n \n const currentCandle1mRef = useRef<CandleData | null>(null);\n const currentCandle5mRef = useRef<CandleData | null>(null);\n const currentCandle15mRef = useRef<CandleData | null>(null);\n const currentCandle1hRef = useRef<CandleData | null>(null);\n const currentCandle4hRef = useRef<CandleData | null>(null);\n const currentCandle1dRef = useRef<CandleData | null>(null);\n \n const lastCandleTime1mRef = useRef<number>(0);\n const lastCandleTime5mRef = useRef<number>(0);\n const lastCandleTime15mRef = useRef<number>(0);\n const lastCandleTime1hRef = useRef<number>(0);\n const lastCandleTime4hRef = useRef<number>(0);\n const lastCandleTime1dRef = useRef<number>(0);\n \n const currentTimeFrameRef = useRef<TimeFrame | null>(null);\n \n // ===================================================================\n // STATE - ISOLATED FOR EACH TIMEFRAME (copy of working 1m logic)\n // ===================================================================\n \n // 1m timeframe\n const [candles1m, setCandles1m] = useState<CandleData[]>([]);\n const [currentCandle1m, setCurrentCandle1m] = useState<CandleData | null>(null);\n const [lastCandleTime1m, setLastCandleTime1m] = useState<number>(0);\n \n // 5m timeframe\n const [candles5m, setCandles5m] = useState<CandleData[]>([]);\n const [currentCandle5m, setCurrentCandle5m] = useState<CandleData | null>(null);\n const [lastCandleTime5m, setLastCandleTime5m] = useState<number>(0);\n \n // 15m timeframe\n const [candles15m, setCandles15m] = useState<CandleData[]>([]);\n const [currentCandle15m, setCurrentCandle15m] = useState<CandleData | null>(null);\n const [lastCandleTime15m, setLastCandleTime15m] = useState<number>(0);\n \n // 1h timeframe\n const [candles1h, setCandles1h] = useState<CandleData[]>([]);\n const [currentCandle1h, setCurrentCandle1h] = useState<CandleData | null>(null);\n const [lastCandleTime1h, setLastCandleTime1h] = useState<number>(0);\n \n // 4h timeframe\n const [candles4h, setCandles4h] = useState<CandleData[]>([]);\n const [currentCandle4h, setCurrentCandle4h] = useState<CandleData | null>(null);\n const [lastCandleTime4h, setLastCandleTime4h] = useState<number>(0);\n \n // 1d timeframe\n const [candles1d, setCandles1d] = useState<CandleData[]>([]);\n const [currentCandle1d, setCurrentCandle1d] = useState<CandleData | null>(null);\n const [lastCandleTime1d, setLastCandleTime1d] = useState<number>(0);\n \n // General state\n const [currentMarketCap, setCurrentMarketCap] = useState<number>(0);\n const [loading, setLoading] = useState<boolean>(true);\n const [timeframeLoading, setTimeframeLoading] = useState<boolean>(false);\n const [loadingTimeframe, setLoadingTimeframe] = useState<string | null>(null);\n const [error, setError] = useState<string | null>(null);\n \n // Refs\n const currentMarketCapRef = useRef<number>(0);\n const lastProcessedTimestampRef = useRef<number>(0);\n \n // Socket\n const internalSocketData = useSocket();\n const socket = externalSocket || internalSocketData.socket;\n const isConnected = externalIsConnected !== undefined ? externalIsConnected : internalSocketData.isConnected;\n \n // Analytics\n const internalAnalytics = useOptimizedTokenAnalytics(mint);\n const realTimeMarketCap = externalMarketCap !== undefined ? externalMarketCap : internalAnalytics.currentMarketCap;\n const analyticsConnected = externalAnalyticsConnected !== undefined ? externalAnalyticsConnected : internalAnalytics.connected;\n const analyticsLoading = externalAnalyticsLoading !== undefined ? externalAnalyticsLoading : internalAnalytics.loading;\n \n // Time frames\n const timeFrames: TimeFrame[] = useMemo(() => [\n { label: '1m', value: '1m', seconds: 60 },\n { label: '5m', value: '5m', seconds: 300 },\n { label: '15m', value: '15m', seconds: 900 },\n { label: '1h', value: '1h', seconds: 3600 },\n { label: '4h', value: '4h', seconds: 14400 },\n { label: '1d', value: '1d', seconds: 86400 }\n ], []);\n \n const [currentTimeFrame, setCurrentTimeFrame] = useState<TimeFrame>(timeFrames[0]);\n \n // Helper: Get candles for current timeframe (using refs to prevent recreating on every candle update)\n const getCurrentCandles = useCallback((): CandleData[] => {\n switch (currentTimeFrame.seconds) {\n case 60: return candles1mRef.current;\n case 300: return candles5mRef.current;\n case 900: return candles15mRef.current;\n case 3600: return candles1hRef.current;\n case 14400: return candles4hRef.current;\n case 86400: return candles1dRef.current;\n default: return candles1mRef.current;\n }\n }, [currentTimeFrame.seconds]);\n \n // Format large numbers\n const formatMarketCap = useCallback((value: number): string => {\n if (value >= 1_000_000_000) {\n return `$${(value / 1_000_000_000).toFixed(value >= 10_000_000_000 ? 2 : 3)}B`;\n } else if (value >= 1_000_000) {\n return `$${(value / 1_000_000).toFixed(value >= 10_000_000 ? 2 : 3)}M`;\n } else if (value >= 10_000) {\n return `$${(value / 1_000).toFixed(value >= 100_000 ? 1 : 2)}K`;\n } else if (value >= 1_000) {\n return `$${(value / 1_000).toFixed(2)}K`;\n } else if (value >= 1) {\n return `$${value.toFixed(2)}`;\n }\n return `$${value.toFixed(4)}`;\n }, []);\n\n // Load candles from database for a specific timeframe\n const loadCandles = useCallback(async (timeframeSeconds: number, limit?: number): Promise<CandleData[]> => {\n const timeframeLabel = timeFrames.find(tf => tf.seconds === timeframeSeconds)?.label || `${timeframeSeconds}s`;\n \n try {\n const limitText = limit ? `${limit} candles` : 'all available candles';\n console.log(`📊 [Chart-${timeframeLabel}] Loading ${limitText} from database`);\n \n // Use a very large number for unlimited candles (Number.MAX_SAFE_INTEGER = 2^53 - 1)\n const effectiveLimit = limit ?? Number.MAX_SAFE_INTEGER;\n \n const candles = await candleStorageService.getCandles({\n mint,\n timeFrame: timeframeSeconds,\n limit: effectiveLimit\n });\n \n // Remove duplicates and validate/enforce minimum body size\n const uniqueCandles = candles.reduce((acc, candle) => {\n // CRITICAL FIX: Ensure loaded candles have visible bodies\n const minBodySize = Math.max(candle.open * 0.0001, 0.01);\n const priceDiff = Math.abs(candle.open - candle.close);\n let validatedCandle = { ...candle };\n \n // If body would be invisible, preserve minimum body size\n if (priceDiff < minBodySize && candle.open > 0) {\n const direction = candle.close >= candle.open ? 1 : -1;\n validatedCandle.close = candle.open + (direction * minBodySize);\n validatedCandle.high = Math.max(candle.high || candle.open, validatedCandle.close);\n validatedCandle.low = Math.min(candle.low || candle.open, validatedCandle.close);\n }\n \n const existingIndex = acc.findIndex(c => c.time === validatedCandle.time);\n if (existingIndex >= 0) {\n acc[existingIndex] = validatedCandle;\n } else {\n acc.push(validatedCandle);\n }\n return acc;\n }, [] as CandleData[]);\n \n const sorted = uniqueCandles.sort((a, b) => a.time - b.time);\n console.log(`✅ [Chart-${timeframeLabel}] Loaded ${sorted.length} candles`);\n return sorted;\n \n } catch (error: any) {\n console.error(`❌ [Chart-${timeframeLabel}] Error loading candles:`, error);\n return [];\n }\n }, [mint, timeFrames]);\n\n // ===================================================================\n // ISOLATED CREATE/UPDATE FUNCTIONS FOR EACH TIMEFRAME\n // ===================================================================\n \n // 1m - Improved logic with better debouncing and validation\n const createOrUpdate1m = useCallback((price: number, timestamp: number) => {\n const currentTime = Math.floor(timestamp / 1000);\n const bucketStart = Math.floor(currentTime / 60) * 60;\n \n // Enhanced debouncing - prevent rapid updates within same bucket\n const now = Date.now();\n if (lastProcessedTimestampRef.current && (now - lastProcessedTimestampRef.current) < 50) {\n return null;\n }\n lastProcessedTimestampRef.current = now;\n \n // Validate price data\n if (!price || price <= 0 || !isFinite(price)) {\n console.warn(`⚠️ [Chart-1m] Invalid price data: ${price}`);\n return null;\n }\n \n if (bucketStart !== lastCandleTime1mRef.current) {\n // CRITICAL: Capture previous candle's close price and direction BEFORE finalizing it\n // This ensures we have the correct open price for the new candle even during rapid price movements\n let previousCandleClose: number | null = null;\n let previousCandleDirection: number = 1; // 1 for bullish, -1 for bearish\n \n // CRITICAL FIX: The key difference from ProfessionalTradingChartRedux is that we MUST capture\n // the previous candle's close BEFORE any state updates, and we need to check MULTIPLE sources\n \n // Method 1: Get from current candle ref if it's the previous bucket\n if (currentCandle1mRef.current && \n currentCandle1mRef.current.close > 0 && \n isFinite(currentCandle1mRef.current.close)) {\n // Check if it's actually from the previous bucket (not current)\n if (currentCandle1mRef.current.time < bucketStart) {\n previousCandleClose = currentCandle1mRef.current.close;\n if (currentCandle1mRef.current.open > 0) {\n previousCandleDirection = currentCandle1mRef.current.close >= currentCandle1mRef.current.open ? 1 : -1;\n }\n console.log(`✅ [Chart-1m] Method 1: Using currentCandle ref close (${currentCandle1mRef.current.time}) as new candle open: $${previousCandleClose.toFixed(2)}`);\n } else if (currentCandle1mRef.current.time === bucketStart) {\n // This is the CURRENT bucket (shouldn't happen but handle it)\n console.warn(`⚠️ [Chart-1m] Current candle ref is already for new bucket ${bucketStart}, skipping`);\n }\n }\n \n // Method 2: If ref doesn't have it, get it from the candles array (sorted descending)\n if (previousCandleClose === null) {\n const candlesArray = candles1mRef.current || [];\n if (candlesArray.length > 0) {\n // Sort descending and find the most recent completed candle BEFORE bucketStart\n const sortedCandles = [...candlesArray].sort((a, b) => b.time - a.time);\n const lastCandle = sortedCandles.find(c => c.time < bucketStart && c.close > 0 && isFinite(c.close));\n \n if (lastCandle) {\n previousCandleClose = lastCandle.close;\n if (lastCandle.open > 0) {\n previousCandleDirection = lastCandle.close >= lastCandle.open ? 1 : -1;\n }\n console.log(`✅ [Chart-1m] Method 2: Using last completed candle from array (${lastCandle.time}) as new candle open: $${previousCandleClose.toFixed(2)}`);\n }\n\n }\n }\n \n // CRITICAL: Capture from currentCandle ref BEFORE finalizing (this is the PRIMARY source)\n // This matches how ProfessionalTradingChartRedux does it - it uses currentMinuteCandle?.close\n if (previousCandleClose === null && currentCandle1mRef.current) {\n // Even if time check failed, if ref exists and has close, use it (it's the previous candle)\n if (currentCandle1mRef.current.close > 0 && isFinite(currentCandle1mRef.current.close)) {\n previousCandleClose = currentCandle1mRef.current.close;\n if (currentCandle1mRef.current.open > 0) {\n previousCandleDirection = currentCandle1mRef.current.close >= currentCandle1mRef.current.open ? 1 : -1;\n }\n console.log(`✅ [Chart-1m] Method 3 (PRIMARY): Using currentCandle ref close (${currentCandle1mRef.current.time}) as new candle open: $${previousCandleClose.toFixed(2)}`);\n }\n }\n \n // Finalize previous candle if exists and has valid data\n if (currentCandle1mRef.current && \n currentCandle1mRef.current.open > 0 && \n currentCandle1mRef.current.high > 0 && \n currentCandle1mRef.current.low > 0 && \n currentCandle1mRef.current.close > 0) {\n \n const finalizedCandle: CandleData = { ...currentCandle1mRef.current };\n \n // CRITICAL: If we still don't have previousCandleClose at this point, use the finalized candle\n // This is the SAME approach as ProfessionalTradingChartRedux\n if (previousCandleClose === null) {\n previousCandleClose = finalizedCandle.close;\n if (finalizedCandle.open > 0) {\n previousCandleDirection = finalizedCandle.close >= finalizedCandle.open ? 1 : -1;\n }\n console.log(`✅ [Chart-1m] Method 4: Using finalized candle close (${finalizedCandle.time}) as new candle open: $${previousCandleClose.toFixed(2)}`);\n }\n \n // Ensure OHLC data integrity\n finalizedCandle.high = Math.max(finalizedCandle.open, finalizedCandle.high, finalizedCandle.close);\n finalizedCandle.low = Math.min(finalizedCandle.open, finalizedCandle.low, finalizedCandle.close);\n \n setCandles1m(prev => {\n const existingIndex = prev.findIndex(c => c.time === finalizedCandle.time);\n if (existingIndex >= 0) {\n const updated = [...prev];\n updated[existingIndex] = finalizedCandle;\n candles1mRef.current = updated;\n return updated;\n }\n const newData = [...prev, finalizedCandle].sort((a, b) => a.time - b.time);\n candles1mRef.current = newData;\n return newData;\n });\n }\n \n // Create new candle with validated data\n // CRITICAL: Use captured previous candle's close as open price to ensure proper candle body visibility\n // This prevents invisible candles when price moves fast at the start of a new bucket\n // This matches ProfessionalTradingChartRedux behavior: newCandle.open = lastKnownPrice (from previous candle)\n if (previousCandleClose === null) {\n console.error(`❌ [Chart-1m] CRITICAL: No previous candle close found after all attempts! This should not happen.`);\n console.error(` - currentCandle1mRef.current:`, currentCandle1mRef.current);\n console.error(` - candles1mRef.current length:`, candles1mRef.current?.length || 0);\n console.error(` - bucketStart:`, bucketStart, `(${new Date(bucketStart * 1000).toLocaleTimeString()})`);\n console.error(` - Using current price as last resort: $${price.toFixed(2)}`);\n previousCandleClose = price; // Last resort only\n }\n \n // CRITICAL: openPrice MUST be from previous candle's close, NOT current market cap\n // This is the key difference - ProfessionalTradingChartRedux uses currentMinuteCandle?.close\n const openPrice = previousCandleClose;\n \n console.log(`🕯️ [Chart-1m] Creating new candle at ${new Date(bucketStart * 1000).toLocaleTimeString()}: open=$${openPrice.toFixed(2)} (from previous close), current price=$${price.toFixed(2)}`);\n \n // CRITICAL FIX: Always ensure minimum body size for new candles at bucket boundaries\n // This prevents invisible bodies when price equals or is very close to previous close at exact bucket transition\n let closePrice = price;\n const priceDiff = Math.abs(openPrice - price);\n const minBodySize = Math.max(openPrice * 0.0001, 0.01); // 0.01% minimum body size, or $0.01 minimum\n \n // ALWAYS enforce minimum body size for new candles to ensure they're visible\n // This handles edge cases at exact bucket boundary transitions (e.g., 4:52:59 -> 4:53:00)\n if (priceDiff < minBodySize) {\n // Use the NEW price direction (relative to open) to determine body direction\n // If price equals open exactly, use previous direction as fallback\n let newPriceDirection: number;\n if (priceDiff === 0 || Math.abs(price - openPrice) < 0.0001) {\n // Price equals open exactly - use previous candle direction or default to up\n newPriceDirection = previousCandleDirection !== null ? previousCandleDirection : 1;\n } else {\n newPriceDirection = price >= openPrice ? 1 : -1;\n }\n closePrice = openPrice + (newPriceDirection * minBodySize);\n }\n \n // Additional safety: Verify body size is actually visible after calculation\n // This double-checks that the body is visible even if initial calculation had edge cases\n const finalBodySize = Math.abs(closePrice - openPrice);\n if (finalBodySize < minBodySize && openPrice > 0) {\n // Force minimum body size with direction from price or previous candle\n const direction = (price >= openPrice) || (previousCandleDirection !== null && previousCandleDirection === 1) ? 1 : -1;\n closePrice = openPrice + (direction * minBodySize);\n }\n \n const newCandle: CandleData = {\n time: bucketStart,\n open: openPrice,\n high: Math.max(openPrice, closePrice, price), // Ensure high includes all prices\n low: Math.min(openPrice, closePrice, price), // Ensure low includes all prices\n close: closePrice,\n volume: 0\n };\n \n // Update refs first to prevent race conditions\n currentCandle1mRef.current = newCandle;\n lastCandleTime1mRef.current = bucketStart;\n \n // Update state\n setCurrentCandle1m(newCandle);\n setLastCandleTime1m(bucketStart);\n \n // Add new candle to array with validation\n setCandles1m(prev => {\n const existingIndex = prev.findIndex(c => c.time === newCandle.time);\n if (existingIndex >= 0) {\n // Update existing candle instead of creating duplicate\n const updated = [...prev];\n updated[existingIndex] = newCandle;\n candles1mRef.current = updated;\n return updated;\n }\n const newData = [...prev, newCandle].sort((a, b) => a.time - b.time);\n candles1mRef.current = newData;\n return newData;\n });\n \n console.log(`🆕 [Chart-1m] New candle: $${price.toFixed(2)}`);\n return newCandle;\n } else if (currentCandle1mRef.current) {\n // CRITICAL: Verify this is actually the current candle (not a historical one)\n // Only update if the candle time matches the current bucket\n // Use the timestamp parameter for consistency, not Date.now()\n const currentTime = Math.floor(timestamp / 1000);\n const currentBucket = Math.floor(currentTime / 60) * 60;\n \n // STRICT CHECK: Only update if the candle time EXACTLY matches the current bucket\n if (currentCandle1mRef.current.time !== currentBucket) {\n // This is a historical candle, don't update it\n console.warn(`⚠️ [Chart-1m] Skipping update for historical candle (time: ${currentCandle1mRef.current.time}, current: ${currentBucket})`);\n return null;\n }\n \n // Update existing candle with validation\n const currentCandle = currentCandle1mRef.current;\n \n // Ensure we have valid existing candle data\n if (currentCandle.open <= 0 || currentCandle.high <= 0 || currentCandle.low <= 0 || currentCandle.close <= 0) {\n console.warn(`⚠️ [Chart-1m] Invalid existing candle data, recreating`);\n // Recreate candle with current price\n const recreatedCandle: CandleData = {\n time: currentCandle.time,\n open: price,\n high: price,\n low: price,\n close: price,\n volume: 0\n };\n \n currentCandle1mRef.current = recreatedCandle;\n setCurrentCandle1m(recreatedCandle);\n \n setCandles1m(prev => {\n const existingIndex = prev.findIndex(c => c.time === recreatedCandle.time && c.time === currentBucket);\n if (existingIndex >= 0) {\n const arr = [...prev];\n arr[existingIndex] = recreatedCandle;\n candles1mRef.current = arr;\n return arr;\n }\n return prev;\n });\n \n return recreatedCandle;\n }\n \n // Normal update with validation\n // CRITICAL FIX: Preserve minimum body size when updating close price\n // This prevents body from disappearing when price equals or is very close to open\n const minBodySize = Math.max(currentCandle.open * 0.0001, 0.01); // 0.01% minimum body size\n const priceDiff = Math.abs(currentCandle.open - price);\n \n // AGGRESSIVE CHECK: Accept ANY body size > 0 up to 10x minimum to catch newly created candles\n // This prevents the body from being lost when rapid updates come after creation\n const currentBodySize = Math.abs(currentCandle.close - currentCandle.open);\n const hasMinimumBody = currentBodySize > 0 && currentBodySize <= minBodySize * 10.0;\n \n let closePrice = price;\n \n // CRITICAL: If candle has ANY body size, ALWAYS preserve minimum body unless price moves VERY significantly (100x)\n // This ensures the body NEVER disappears during rapid updates right after creation\n if (hasMinimumBody && currentCandle.open > 0) {\n // AGGRESSIVE: Only update if price moved MORE than 100x the minimum body size\n // This prevents the body from disappearing even during moderate price movements\n if (priceDiff < minBodySize * 100) {\n // PRESERVE minimum body size BUT use CURRENT price direction (not old direction)\n // This ensures bearish candles stay bearish when price goes down\n const currentPriceDirection = price >= currentCandle.open ? 1 : -1;\n closePrice = currentCandle.open + (currentPriceDirection * minBodySize);\n console.log(`🛡️ [Chart-1m] PRESERVING body: open=$${currentCandle.open.toFixed(2)}, close=$${closePrice.toFixed(2)}, bodySize=$${minBodySize.toFixed(4)}, priceDiff=$${priceDiff.toFixed(4)}, direction=${currentPriceDirection > 0 ? 'UP' : 'DOWN'}, price=$${price.toFixed(2)}`);\n } else {\n // Price moved VERY significantly - use actual price but STILL ensure minimum body size\n closePrice = price;\n const finalBodySize = Math.abs(closePrice - currentCandle.open);\n if (finalBodySize < minBodySize) {\n const newPriceDirection = price >= currentCandle.open ? 1 : -1;\n closePrice = currentCandle.open + (newPriceDirection * minBodySize);\n }\n }\n } else if (priceDiff < minBodySize && currentCandle.open > 0) {\n // Candle doesn't have minimum body, but new price would make it invisible\n const newPriceDirection = price >= currentCandle.open ? 1 : -1;\n closePrice = currentCandle.open + (newPriceDirection * minBodySize);\n }\n \n // FINAL CRITICAL SAFETY: ALWAYS ensure body is at least minimum size - NO EXCEPTIONS\n // This is the absolute last guard against disappearing bodies\n // CRITICAL FIX: Use the ACTUAL price direction to determine body direction, not the OR logic\n const finalBodySize = Math.abs(closePrice - currentCandle.open);\n if (finalBodySize < minBodySize && currentCandle.open > 0) {\n // Determine direction based on actual price movement (more reliable than closePrice which might be stale)\n // Priority: current price > existing close > fallback to upward\n let direction: number;\n if (price !== currentCandle.open && Math.abs(price - currentCandle.open) > 0.0001) {\n // Use current price direction (most accurate for current movement)\n direction = price >= currentCandle.open ? 1 : -1;\n } else if (currentCandle.close !== currentCandle.open && Math.abs(currentCandle.close - currentCandle.open) > 0.0001) {\n // Fallback to existing candle direction\n direction = currentCandle.close >= currentCandle.open ? 1 : -1;\n } else {\n // Last resort: default to upward\n direction = 1;\n }\n \n const enforcedClosePrice = currentCandle.open + (direction * minBodySize);\n if (Math.abs(enforcedClosePrice - closePrice) > 0.0001) {\n console.log(`🔒 [Chart-1m] ENFORCING minimum body: was $${closePrice.toFixed(2)}, now $${enforcedClosePrice.toFixed(2)}, direction=${direction > 0 ? 'UP' : 'DOWN'}, price=$${price.toFixed(2)}`);\n closePrice = enforcedClosePrice;\n }\n }\n \n const updated: CandleData = {\n ...currentCandle,\n high: Math.max(currentCandle.high, price, closePrice),\n low: Math.min(currentCandle.low, price, closePrice),\n close: closePrice\n };\n \n // Final validation of OHLC data\n updated.high = Math.max(updated.open, updated.high, updated.close);\n updated.low = Math.min(updated.open, updated.low, updated.close);\n \n currentCandle1mRef.current = updated;\n setCurrentCandle1m(updated);\n \n // CRITICAL: Only update the candle in array if it's the current candle (matching currentBucket)\n // This prevents accidentally overwriting historical candles\n // STRICT CHECK: Only proceed if updated.time matches currentBucket\n if (updated.time !== currentBucket) {\n console.warn(`⚠️ [Chart-1m] Prevented update of historical candle: time=${updated.time}, currentBucket=${currentBucket}`);\n return updated; // Return updated candle but don't update array\n }\n \n setCandles1m(prev => {\n // Find candle by time AND verify it matches current bucket\n const existingIndex = prev.findIndex(c => c.time === currentBucket);\n if (existingIndex >= 0) {\n // Verify it's actually the current bucket candle before updating\n if (prev[existingIndex].time === currentBucket) {\n const arr = [...prev];\n arr[existingIndex] = updated;\n candles1mRef.current = arr;\n return arr;\n }\n }\n // If not found, add it only if it matches current bucket (should always be true here)\n if (updated.time === currentBucket) {\n const newData = [...prev, updated].sort((a, b) => a.time - b.time);\n candles1mRef.current = newData;\n return newData;\n }\n return prev;\n });\n \n return updated;\n }\n return null;\n }, []);\n \n // 5m - Improved logic with better debouncing and validation\n const createOrUpdate5m = useCallback((price: number, timestamp: number) => {\n const currentTime = Math.floor(timestamp / 1000);\n const bucketStart = Math.floor(currentTime / 300) * 300;\n \n // Enhanced debouncing - prevent rapid updates within same bucket\n const now = Date.now();\n if (lastProcessedTimestampRef.current && (now - lastProcessedTimestampRef.current) < 50) {\n return null;\n }\n lastProcessedTimestampRef.current = now;\n \n // Validate price data\n if (!price || price <= 0 || !isFinite(price)) {\n console.warn(`⚠️ [Chart-5m] Invalid price data: ${price}`);\n return null;\n }\n \n if (bucketStart !== lastCandleTime5mRef.current) {\n // CRITICAL: Capture previous candle's close price and direction BEFORE finalizing it\n // This ensures we have the correct open price for the new candle even during rapid price movements\n let previousCandleClose: number | null = null;\n let previousCandleDirection: number = 1; // 1 for bullish, -1 for bearish\n \n // CRITICAL FIX: Check BOTH ref AND array to get the previous candle's close\n // The ref might be null during rapid updates, so we need to check the array too\n \n // First, try to get close from current candle ref\n if (currentCandle5mRef.current && \n currentCandle5mRef.current.close > 0 && \n isFinite(currentCandle5mRef.current.close) &&\n currentCandle5mRef.current.time < bucketStart) { // Ensure it's actually the previous candle\n previousCandleClose = currentCandle5mRef.current.close;\n // Capture direction before finalizing\n if (currentCandle5mRef.current.open > 0) {\n previousCandleDirection = currentCandle5mRef.current.close >= currentCandle5mRef.current.open ? 1 : -1;\n }\n console.log(`✅ [Chart-5m] Using currentCandle ref close (${currentCandle5mRef.current.time}) as new candle open: $${previousCandleClose.toFixed(2)}`);\n }\n \n // FALLBACK: If ref doesn't have it, get it from the candles array\n // This handles cases where rapid updates happen before the ref is properly set\n if (previousCandleClose === null) {\n const candlesArray = candles5mRef.current || [];\n if (candlesArray.length > 0) {\n // Get candles sorted by time and find the most recent one BEFORE bucketStart\n const sortedCandles = [...candlesArray].sort((a, b) => b.time - a.time); // Sort descending\n const lastCandle = sortedCandles.find(c => c.time < bucketStart);\n \n if (lastCandle && lastCandle.close > 0 && isFinite(lastCandle.close)) {\n previousCandleClose = lastCandle.close;\n if (lastCandle.open > 0) {\n previousCandleDirection = lastCandle.close >= lastCandle.open ? 1 : -1;\n }\n console.log(`🔄 [Chart-5m] Using last completed candle close from array (${lastCandle.time}) as new candle open: $${previousCandleClose.toFixed(2)}`);\n }\n\n }\n }\n \n // CRITICAL: Capture from currentCandle ref BEFORE finalizing (this is the PRIMARY source)\n // This matches how ProfessionalTradingChartRedux does it - it uses currentMinuteCandle?.close\n if (previousCandleClose === null && currentCandle5mRef.current) {\n if (currentCandle5mRef.current.close > 0 && isFinite(currentCandle5mRef.current.close)) {\n previousCandleClose = currentCandle5mRef.current.close;\n if (currentCandle5mRef.current.open > 0) {\n previousCandleDirection = currentCandle5mRef.current.close >= currentCandle5mRef.current.open ? 1 : -1;\n }\n console.log(`✅ [Chart-5m] Method 3 (PRIMARY): Using currentCandle ref close (${currentCandle5mRef.current.time}) as new candle open: $${previousCandleClose.toFixed(2)}`);\n }\n }\n \n // Finalize previous candle if exists and has valid data\n if (currentCandle5mRef.current && \n currentCandle5mRef.current.open > 0 && \n currentCandle5mRef.current.high > 0 && \n currentCandle5mRef.current.low > 0 && \n currentCandle5mRef.current.close > 0) {\n \n const finalizedCandle: CandleData = { ...currentCandle5mRef.current };\n \n // CRITICAL: If we still don't have previousCandleClose at this point, use the finalized candle\n // This is the SAME approach as ProfessionalTradingChartRedux\n if (previousCandleClose === null) {\n previousCandleClose = finalizedCandle.close;\n if (finalizedCandle.open > 0) {\n previousCandleDirection = finalizedCandle.close >= finalizedCandle.open ? 1 : -1;\n }\n console.log(`✅ [Chart-5m] Method 4: Using finalized candle close (${finalizedCandle.time}) as new candle open: $${previousCandleClose.toFixed(2)}`);\n }\n \n // Ensure OHLC data integrity\n finalizedCandle.high = Math.max(finalizedCandle.open, finalizedCandle.high, finalizedCandle.close);\n finalizedCandle.low = Math.min(finalizedCandle.open, finalizedCandle.low, finalizedCandle.close);\n \n setCandles5m(prev => {\n const existingIndex = prev.findIndex(c => c.time === finalizedCandle.time);\n if (existingIndex >= 0) {\n const updated = [...prev];\n updated[existingIndex] = finalizedCandle;\n candles5mRef.current = updated;\n return updated;\n }\n const newData = [...prev, finalizedCandle].sort((a, b) => a.time - b.time);\n candles5mRef.current = newData;\n return newData;\n });\n }\n \n // Create new candle with validated data\n // CRITICAL: Use captured previous candle's close as open price to ensure proper candle body visibility\n // This matches ProfessionalTradingChartRedux behavior: newCandle.open = lastKnownPrice (from previous candle)\n if (previousCandleClose === null) {\n console.error(`❌ [Chart-5m] CRITICAL: No previous candle close found after all attempts!`);\n previousCandleClose = price; // Last resort only\n }\n \n // CRITICAL: openPrice MUST be from previous candle's close, NOT current market cap\n const openPrice = previousCandleClose;\n console.log(`🕯️ [Chart-5m] Creating new candle: open=$${openPrice.toFixed(2)} (from previous close), current price=$${price.toFixed(2)}`);\n \n // CRITICAL FIX: Always ensure minimum body size for new candles at bucket boundaries\n // This prevents invisible bodies when price equals or is very close to previous close at exact bucket transition\n let closePrice = price;\n const priceDiff = Math.abs(openPrice - price);\n const minBodySize = Math.max(openPrice * 0.0001, 0.01); // 0.01% minimum body size, or $0.01 minimum\n \n // ALWAYS enforce minimum body size for new candles to ensure they're visible\n // This handles edge cases at exact bucket boundary transitions (e.g., 4:52:59 -> 4:53:00)\n if (priceDiff < minBodySize) {\n // Use the NEW price direction (relative to open) to determine body direction\n // If price equals open exactly, use previous direction as fallback\n let newPriceDirection: number;\n if (priceDiff === 0 || Math.abs(price - openPrice) < 0.0001) {\n // Price equals open exactly - use previous candle direction or default to up\n newPriceDirection = previousCandleDirection !== null ? previousCandleDirection : 1;\n } else {\n newPriceDirection = price >= openPrice ? 1 : -1;\n }\n closePrice = openPrice + (newPriceDirection * minBodySize);\n }\n \n // Additional safety: Verify body size is actually visible after calculation\n // This double-checks that the body is visible even if initial calculation had edge cases\n const finalBodySize = Math.abs(closePrice - openPrice);\n if (finalBodySize < minBodySize && openPrice > 0) {\n // Force minimum body size with direction from price or previous candle\n const direction = (price >= openPrice) || (previousCandleDirection !== null && previousCandleDirection === 1) ? 1 : -1;\n closePrice = openPrice + (direction * minBodySize);\n }\n \n const newCandle: CandleData = {\n time: bucketStart,\n open: openPrice,\n high: Math.max(openPrice, closePrice, price), // Ensure high includes all prices\n low: Math.min(openPrice, closePrice, price), // Ensure low includes all prices\n close: closePrice,\n volume: 0\n };\n \n // Update refs first to prevent race conditions\n currentCandle5mRef.current = newCandle;\n lastCandleTime5mRef.current = bucketStart;\n \n // Update state\n setCurrentCandle5m(newCandle);\n setLastCandleTime5m(bucketStart);\n \n // Add new candle to array with validation\n setCandles5m(prev => {\n const existingIndex = prev.findIndex(c => c.time === newCandle.time);\n if (existingIndex >= 0) {\n // Update existing candle instead of creating duplicate\n const updated = [...prev];\n updated[existingIndex] = newCandle;\n candles5mRef.current = updated;\n return updated;\n }\n const newData = [...prev, newCandle].sort((a, b) => a.time - b.time);\n candles5mRef.current = newData;\n return newData;\n });\n \n console.log(`🆕 [Chart-5m] New candle: $${price.toFixed(2)}`);\n return newCandle;\n } else if (currentCandle5mRef.current) {\n // CRITICAL: Verify this is actually the current candle (not a historical one)\n // Only update if the candle time matches the current bucket\n // Use the timestamp parameter for consistency, not Date.now()\n const currentTime = Math.floor(timestamp / 1000);\n const currentBucket = Math.floor(currentTime / 300) * 300;\n \n // STRICT CHECK: Only update if the candle time EXACTLY matches the current bucket\n if (currentCandle5mRef.current.time !== currentBucket) {\n // This is a historical candle, don't update it\n console.warn(`⚠️ [Chart-5m] Skipping update for historical candle (time: ${currentCandle5mRef.current.time}, current: ${currentBucket})`);\n return null;\n }\n \n // Update existing candle with validation\n const currentCandle = currentCandle5mRef.current;\n \n // Ensure we have valid existing candle data\n if (currentCandle.open <= 0 || currentCandle.high <= 0 || currentCandle.low <= 0 || currentCandle.close <= 0) {\n console.warn(`⚠️ [Chart-5m] Invalid existing candle data, recreating`);\n // Recreate candle with current price\n const recreatedCandle: CandleData = {\n time: currentCandle.time,\n open: price,\n high: price,\n low: price,\n close: price,\n volume: 0\n };\n \n currentCandle5mRef.current = recreatedCandle;\n setCurrentCandle5m(recreatedCandle);\n \n setCandles5m(prev => {\n const existingIndex = prev.findIndex(c => c.time === recreatedCandle.time && c.time === currentBucket);\n if (existingIndex >= 0) {\n const arr = [...prev];\n arr[existingIndex] = recreatedCandle;\n candles5mRef.current = arr;\n return arr;\n }\n return prev;\n });\n \n return recreatedCandle;\n }\n \n // Normal update with validation\n // CRITICAL FIX: Preserve minimum body size when updating close price\n // This prevents body from disappearing when price equals or is very close to open\n const minBodySize = Math.max(currentCandle.open * 0.0001, 0.01); // 0.01% minimum body size\n const priceDiff = Math.abs(currentCandle.open - price);\n \n // Check if candle already has a minimum body size (was just created with min body)\n // This prevents overwriting the body when rapid updates come right after candle creation\n const currentBodySize = Math.abs(currentCandle.close - currentCandle.open);\n // AGGRESSIVE CHECK: Accept ANY body size > 0 up to 10x minimum to catch newly created candles\n const hasMinimumBody = currentBodySize > 0 && currentBodySize <= minBodySize * 10.0;\n \n let closePrice = price;\n \n // CRITICAL: If candle has ANY body, ALWAYS preserve minimum body unless price moves VERY significantly (100x)\n if (hasMinimumBody && currentCandle.open > 0) {\n // AGGRESSIVE: Only update if price moved MORE than 100x the minimum body size\n if (priceDiff < minBodySize * 100) {\n // Preserve minimum body size BUT use CURRENT price direction (fixes bearish disappearing)\n const currentPriceDirection = price >= currentCandle.open ? 1 : -1;\n closePrice = currentCandle.open + (currentPriceDirection * minBodySize);\n } else {\n // Price moved significantly - use actual price but ensure minimum body size\n closePrice = price;\n const finalBodySize = Math.abs(closePrice - currentCandle.open);\n if (finalBodySize < minBodySize) {\n const newPriceDirection = price >= currentCandle.open ? 1 : -1;\n closePrice = currentCandle.open + (newPriceDirection * minBodySize);\n }\n }\n } else if (priceDiff < minBodySize && currentCandle.open > 0) {\n // Candle doesn't have minimum body, but new price would make it invisible\n // Use the NEW price direction (relative to open) to determine body direction\n const newPriceDirection = price >= currentCandle.open ? 1 : -1;\n closePrice = currentCandle.open + (newPriceDirection * minBodySize);\n }\n \n // Additional safety: ALWAYS ensure body is at least minimum size\n // CRITICAL FIX: Use actual price direction, not OR logic (fixes bearish candle disappearing)\n const finalBodySize = Math.abs(closePrice - currentCandle.open);\n if (finalBodySize < minBodySize && currentCandle.open > 0) {\n // Determine direction based on actual price movement (prioritize current price)\n let direction: number;\n if (price !== currentCandle.open && Math.abs(price - currentCandle.open) > 0.0001) {\n direction = price >= currentCandle.open ? 1 : -1;\n } else if (currentCandle.close !== currentCandle.open && Math.abs(currentCandle.close - currentCandle.open) > 0.0001) {\n direction = currentCandle.close >= currentCandle.open ? 1 : -1;\n } else {\n direction = 1; // Default upward\n }\n closePrice = currentCandle.open + (direction * minBodySize);\n }\n \n const updated: CandleData = {\n ...currentCandle,\n high: Math.max(currentCandle.high, price, closePrice),\n low: Math.min(currentCandle.low, price, closePrice),\n close: closePrice\n };\n \n // Final validation of OHLC data\n updated.high = Math.max(updated.open, updated.high, updated.close);\n updated.low = Math.min(updated.open, updated.low, updated.close);\n \n currentCandle5mRef.current = updated;\n setCurrentCandle5m(updated);\n \n // CRITICAL: Only update the candle in array if it's the current candle (matching currentBucket)\n // This prevents accidentally overwriting historical candles\n // STRICT CHECK: Only proceed if updated.time matches currentBucket\n if (updated.time !== currentBucket) {\n console.warn(`⚠️ [Chart-5m] Prevented update of historical candle: time=${updated.time}, currentBucket=${currentBucket}`);\n return updated; // Return updated candle but don't update array\n }\n \n setCandles5m(prev => {\n // Find candle by time AND verify it matches current bucket\n const existingIndex = prev.findIndex(c => c.time === currentBucket);\n if (existingIndex >= 0) {\n // Verify it's actually the current bucket candle before updating\n if (prev[existingIndex].time === currentBucket) {\n const arr = [...prev];\n arr[existingIndex] = updated;\n candles5mRef.current = arr;\n return arr;\n }\n }\n // If not found, add it only if it matches current bucket (should always be true here)\n if (updated.time === currentBucket) {\n const newData = [...prev, updated].sort((a, b) => a.time - b.time);\n candles5mRef.current = newData;\n return newData;\n }\n return prev;\n });\n \n return updated;\n }\n return null;\n }, []);\n \n // 15m - Improved logic with better debouncing and validation\n const createOrUpdate15m = useCallback((price: number, timestamp: number) => {\n const currentTime = Math.floor(timestamp / 1000);\n const bucketStart = Math.floor(currentTime / 900) * 900;\n \n // Enhanced debouncing - prevent rapid updates within same bucket\n const now = Date.now();\n if (lastProcessedTimestampRef.current && (now - lastProcessedTimestampRef.current) < 50) {\n return null;\n }\n lastProcessedTimestampRef.current = now;\n \n // Validate price data\n if (!price || price <= 0 || !isFinite(price)) {\n console.warn(`⚠️ [Chart-15m] Invalid price data: ${price}`);\n return null;\n }\n \n if (bucketStart !== lastCandleTime15mRef.current) {\n // CRITICAL: Capture previous candle's close price and direction BEFORE finalizing it\n // This ensures we have the correct open price for the new candle even during rapid price movements\n let previousCandleClose: number | null = null;\n let previousCandleDirection: number = 1; // 1 for bullish, -1 for bearish\n \n // CRITICAL FIX: Check BOTH ref AND array to get the previous candle's close\n // The ref might be null during rapid updates, so we need to check the array too\n \n // First, try to get close from current candle ref\n if (currentCandle15mRef.current && \n currentCandle15mRef.current.close > 0 && \n isFinite(currentCandle15mRef.current.close) &&\n currentCandle15mRef.current.time < bucketStart) { // Ensure it's actually the previous candle\n previousCandleClose = currentCandle15mRef.current.close;\n // Capture direction before finalizing\n if (currentCandle15mRef.current.open > 0) {\n previousCandleDirection = currentCandle15mRef.current.close >= currentCandle15mRef.current.open ? 1 : -1;\n }\n console.log(`✅ [Chart-15m] Using currentCandle ref close (${currentCandle15mRef.current.time}) as new candle open: $${previousCandleClose.toFixed(2)}`);\n }\n \n // FALLBACK: If ref doesn't have it, get it from the candles array\n // This handles cases where rapid updates happen before the ref is properly set\n if (previousCandleClose === null) {\n const candlesArray = candles15mRef.current || [];\n if (candlesArray.length > 0) {\n // Get candles sorted by time and find the most recent one BEFORE bucketStart\n const sortedCandles = [...candlesArray].sort((a, b) => b.time - a.time); // Sort descending\n const lastCandle = sortedCandles.find(c => c.time < bucketStart);\n \n if (lastCandle && lastCandle.close > 0 && isFinite(lastCandle.close)) {\n previousCandleClose = lastCandle.close;\n if (lastCandle.open > 0) {\n previousCandleDirection = lastCandle.close >= lastCandle.open ? 1 : -1;\n }\n console.log(`🔄 [Chart-15m] Using last completed candle close from array (${lastCandle.time}) as new candle open: $${previousCandleClose.toFixed(2)}`);\n }\n\n }\n }\n \n // CRITICAL: Capture from currentCandle ref BEFORE finalizing (this is the PRIMARY source)\n if (previousCandleClose === null && currentCandle15mRef.current) {\n if (currentCandle15mRef.current.close > 0 && isFinite(currentCandle15mRef.current.close)) {\n previousCandleClose = currentCandle15mRef.current.close;\n if (currentCandle15mRef.current.open > 0) {\n previousCandleDirection = currentCandle15mRef.current.close >= currentCandle15mRef.current.open ? 1 : -1;\n }\n console.log(`✅ [Chart-15m] Method 3 (PRIMARY): Using currentCandle ref close (${currentCandle15mRef.current.time}) as new candle open: $${previousCandleClose.toFixed(2)}`);\n }\n }\n \n // Finalize previous candle if exists and has valid data\n if (currentCandle15mRef.current && \n currentCandle15mRef.current.open > 0 && \n currentCandle15mRef.current.high > 0 && \n currentCandle15mRef.current.low > 0 && \n currentCandle15mRef.current.close > 0) {\n \n const finalizedCandle: CandleData = { ...currentCandle15mRef.current };\n \n // Ensure OHLC data integrity\n finalizedCandle.high = Math.max(finalizedCandle.open, finalizedCandle.high, finalizedCandle.close);\n finalizedCandle.low = Math.min(finalizedCandle.open, finalizedCandle.low, finalizedCandle.close);\n \n setCandles15m(prev => {\n const existingIndex = prev.findIndex(c => c.time === finalizedCandle.time);\n if (existingIndex >= 0) {\n const updated = [...prev];\n updated[existingIndex] = finalizedCandle;\n candles15mRef.current = updated;\n return updated;\n }\n const newData = [...prev, finalizedCandle].sort((a, b) => a.time - b.time);\n candles15mRef.current = newData;\n return newData;\n });\n \n // CRITICAL: If we still don't have previousCandleClose at this point, use the finalized candle\n if (previousCandleClose === null) {\n previousCandleClose = finalizedCandle.close;\n if (finalizedCandle.open > 0) {\n previousCandleDirection = finalizedCandle.close >= finalizedCandle.open ? 1 : -1;\n }\n console.log(`✅ [Chart-15m] Method 4: Using finalized candle close (${finalizedCandle.time}) as new candle open: $${previousCandleClose.toFixed(2)}`);\n }\n }\n \n // Create new candle with validated data\n // CRITICAL: Use captured previous candle's close as open price to ensure proper candle body visibility\n // This matches ProfessionalTradingChartRedux behavior: newCandle.open = lastKnownPrice (from previous candle)\n if (previousCandleClose === null) {\n console.error(`❌ [Chart-15m] CRITICAL: No previous candle close found after all attempts!`);\n previousCandleClose = price; // Last resort only\n }\n \n // CRITICAL: openPrice MUST be from previous candle's close, NOT current market cap\n const openPrice = previousCandleClose;\n console.log(`🕯️ [Chart-15m] Creating new candle: open=$${openPrice.toFixed(2)} (from previous close), current price=$${price.toFixed(2)}`);\n \n // CRITICAL FIX: Always ensure minimum body size for new candles at bucket boundaries\n // This prevents invisible bodies when price equals or is very close to previous close at exact bucket transition\n let closePrice = price;\n const priceDiff = Math.abs(openPrice - price);\n const minBodySize = Math.max(openPrice * 0.0001, 0.01); // 0.01% minimum body size, or $0.01 minimum\n \n // ALWAYS enforce minimum body size for new candles to ensure they're visible\n // This handles edge cases at exact bucket boundary transitions (e.g., 4:52:59 -> 4:53:00)\n if (priceDiff < minBodySize) {\n // Use the NEW price direction (relative to open) to determine body direction\n // If price equals open exactly, use previous direction as fallback\n let newPriceDirection: number;\n if (priceDiff === 0 || Math.abs(price - openPrice) < 0.0001) {\n // Price equals open exactly - use previous candle direction or default to up\n newPriceDirection = previousCandleDirection !== null ? previousCandleDirection : 1;\n } else {\n newPriceDirection = price >= openPrice ? 1 : -1;\n }\n closePrice = openPrice + (newPriceDirection * minBodySize);\n }\n \n // Additional safety: Verify body size is actually visible after calculation\n // This double-checks that the body is visible even if initial calculation had edge cases\n const finalBodySize = Math.abs(closePrice - openPrice);\n if (finalBodySize < minBodySize && openPrice > 0) {\n // Force minimum body size with direction from price or previous candle\n const direction = (price >= openPrice) || (previousCandleDirection !== null && previousCandleDirection === 1) ? 1 : -1;\n closePrice = openPrice + (direction * minBodySize);\n }\n \n const newCandle: CandleData = {\n time: bucketStart,\n open: openPrice,\n high: Math.max(openPrice, closePrice, price), // Ensure high includes all prices\n low: Math.min(openPrice, closePrice, price), // Ensure low includes all prices\n close: closePrice,\n volume: 0\n };\n \n // Update refs first to prevent race conditions\n currentCandle15mRef.current = newCandle;\n lastCandleTime15mRef.current = bucketStart;\n \n // Update state\n setCurrentCandle15m(newCandle);\n setLastCandleTime15m(bucketStart);\n \n // Add new candle to array with validation\n setCandles15m(prev => {\n const existingIndex = prev.findIndex(c => c.time === newCandle.time);\n if (existingIndex >= 0) {\n // Update existing candle instead of creating duplicate\n const updated = [...prev];\n updated[existingIndex] = newCandle;\n candles15mRef.current = updated;\n return updated;\n }\n const newData = [...prev, newCandle].sort((a, b) => a.time - b.time);\n candles15mRef.current = newData;\n return newData;\n });\n \n console.log(`🆕 [Chart-15m] New candle: $${price.toFixed(2)}`);\n return newCandle;\n } else if (currentCandle15mRef.current) {\n // CRITICAL: Verify this is actually the current candle (not a historical one)\n // Only update if the candle time matches the current bucket\n // Use the timestamp parameter for consistency, not Date.now()\n const currentTime = Math.floor(timestamp / 1000);\n const currentBucket = Math.floor(currentTime / 900) * 900;\n \n // STRICT CHECK: Only update if the candle time EXACTLY matches the current bucket\n if (currentCandle15mRef.current.time !== currentBucket) {\n // This is a historical candle, don't update it\n console.warn(`⚠️ [Chart-15m] Skipping update for historical candle (time: ${currentCandle15mRef.current.time}, current: ${currentBucket})`);\n return null;\n }\n \n // Update existing candle with validation\n const currentCandle = currentCandle15mRef.current;\n \n // Ensure we have valid existing candle data\n if (currentCandle.open <= 0 || currentCandle.high <= 0 || currentCandle.low <= 0 || currentCandle.close <= 0) {\n console.warn(`⚠️ [Chart-15m] Invalid existing candle data, recreating`);\n // Recreate candle with current price\n const recreatedCandle: CandleData = {\n time: currentCandle.time,\n open: price,\n high: price,\n low: price,\n close: price,\n volume: 0\n };\n \n currentCandle15mRef.current = recreatedCandle;\n setCurrentCandle15m(recreatedCandle);\n \n setCandles15m(prev => {\n const existingIndex = prev.findIndex(c => c.time === recreatedCandle.time && c.time === currentBucket);\n if (existingIndex >= 0) {\n const arr = [...prev];\n arr[existingIndex] = recreatedCandle;\n candles15mRef.current = arr;\n return arr;\n }\n return prev;\n });\n \n return recreatedCandle;\n }\n \n // Normal update with validation\n // CRITICAL FIX: Preserve minimum body size when updating close price\n // This prevents body from disappearing when price equals or is very close to open\n const minBodySize = Math.max(currentCandle.open * 0.0001, 0.01); // 0.01% minimum body size\n const priceDiff = Math.abs(currentCandle.open - price);\n \n // Check if candle already has a minimum body size (was just created with min body)\n // This prevents overwriting the body when rapid updates come right after candle creation\n const currentBodySize = Math.abs(currentCandle.close - currentCandle.open);\n // AGGRESSIVE CHECK: Accept ANY body size > 0 up to 10x minimum to catch newly created candles\n const hasMinimumBody = currentBodySize > 0 && currentBodySize <= minBodySize * 10.0;\n \n let closePrice = price;\n \n // CRITICAL: If candle has ANY body, ALWAYS preserve minimum body unless price moves VERY significantly (100x)\n if (hasMinimumBody && currentCandle.open > 0) {\n // AGGRESSIVE: Only update if price moved MORE than 100x the minimum body size\n if (priceDiff < minBodySize * 100) {\n // Preserve minimum body size BUT use CURRENT price direction (fixes bearish disappearing)\n const currentPriceDirection = price >= currentCandle.open ? 1 : -1;\n closePrice = currentCandle.open + (currentPriceDirection * minBodySize);\n } else {\n // Price moved significantly - use actual price but ensure minimum body size\n closePrice = price;\n const finalBodySize = Math.abs(closePrice - currentCandle.open);\n if (finalBodySize < minBodySize) {\n const newPriceDirection = price >= currentCandle.open ? 1 : -1;\n closePrice = currentCandle.open + (newPriceDirection * minBodySize);\n }\n }\n } else if (priceDiff < minBodySize && currentCandle.open > 0) {\n // Candle doesn't have minimum body, but new price would make it invisible\n // Use the NEW price direction (relative to open) to determine body direction\n const newPriceDirection = price >= currentCandle.open ? 1 : -1;\n closePrice = currentCandle.open + (newPriceDirection * minBodySize);\n }\n \n // Additional safety: ALWAYS ensure body is at least minimum size\n // CRITICAL FIX: Use actual price direction, not OR logic (fixes bearish candle disappearing)\n const finalBodySize = Math.abs(closePrice - currentCandle.open);\n if (finalBodySize < minBodySize && currentCandle.open > 0) {\n // Determine direction based on actual price movement (prioritize current price)\n let direction: number;\n if (price !== currentCandle.open && Math.abs(price - currentCandle.open) > 0.0001) {\n direction = price >= currentCandle.open ? 1 : -1;\n } else if (currentCandle.close !== currentCandle.open && Math.abs(currentCandle.close - currentCandle.open) > 0.0001) {\n direction = currentCandle.close >= currentCandle.open ? 1 : -1;\n } else {\n direction = 1; // Default upward\n }\n closePrice = currentCandle.open + (direction * minBodySize);\n }\n \n const updated: CandleData = {\n ...currentCandle,\n high: Math.max(currentCandle.high, price, closePrice),\n low: Math.min(currentCandle.low, price, closePrice),\n close: closePrice\n };\n \n // Final validation of OHLC data\n updated.high = Math.max(updated.open, updated.high, updated.close);\n updated.low = Math.min(updated.open, updated.low, updated.close);\n \n currentCandle15mRef.current = updated;\n setCurrentCandle15m(updated);\n \n // CRITICAL: Only update the candle in array if it's the current candle (matching currentBucket)\n // This prevents accidentally overwriting historical candles\n // STRICT CHECK: Only proceed if updated.time matches currentBucket\n if (updated.time !== currentBucket) {\n console.warn(`⚠️ [Chart-15m] Prevented update of historical candle: time=${updated.time}, currentBucket=${currentBucket}`);\n return updated; // Return updated candle but don't update array\n }\n \n setCandles15m(prev => {\n // Find candle by time AND verify it matches current bucket\n const existingIndex = prev.findIndex(c => c.time === currentBucket);\n if (existingIndex >= 0) {\n // Verify it's actually the current bucket candle before updating\n if (prev[existingIndex].time === currentBucket) {\n const arr = [...prev];\n arr[existingIndex] = updated;\n candles15mRef.current = arr;\n return arr;\n }\n }\n // If not found, add it only if it matches current bucket (should always be true here)\n if (updated.time === currentBucket) {\n const newData = [...prev, updated].sort((a, b) => a.time - b.time);\n candles15mRef.current = newData;\n return newData;\n }\n return prev;\n });\n \n return updated;\n }\n return null;\n }, []);\n \n // 1h - Improved logic with better debouncing and validation\n const createOrUpdate1h = useCallback((price: number, timestamp: number) => {\n const currentTime = Math.floor(timestamp / 1000);\n const bucketStart = Math.floor(currentTime / 3600) * 3600;\n \n // Enhanced debouncing - prevent rapid updates within same bucket\n const now = Date.now();\n if (lastProcessedTimestampRef.current && (now - lastProcessedTimestampRef.current) < 50) {\n return null;\n }\n lastProcessedTimestampRef.current = now;\n \n // Validate price data\n if (!price || price <= 0 || !isFinite(price)) {\n console.warn(`⚠️ [Chart-1h] Invalid price data: ${price}`);\n return null;\n }\n \n if (bucketStart !== lastCandleTime1hRef.current) {\n // CRITICAL: Capture previous candle's close price and direction BEFORE finalizing it\n // This ensures we have the correct open price for the new candle even during rapid price movements\n let previousCandleClose: number | null = null;\n let previousCandleDirection: number = 1; // 1 for bullish, -1 for bearish\n \n // CRITICAL FIX: Check BOTH ref AND array to get the previous candle's close\n // The ref might be null during rapid updates, so we need to check the array too\n \n // First, try to get close from current candle ref\n if (currentCandle1hRef.current && \n currentCandle1hRef.current.close > 0 && \n isFinite(currentCandle1hRef.current.close) &&\n currentCandle1hRef.current.time < bucketStart) { // Ensure it's actually the previous candle\n previousCandleClose = currentCandle1hRef.current.close;\n // Capture direction before finalizing\n if (currentCandle1hRef.current.open > 0) {\n previousCandleDirection = currentCandle1hRef.current.close >= currentCandle1hRef.current.open ? 1 : -1;\n }\n console.log(`✅ [Chart-1h] Using currentCandle ref close (${currentCandle1hRef.current.time}) as new candle open: $${previousCandleClose.toFixed(2)}`);\n }\n \n // FALLBACK: If ref doesn't have it, get it from the candles array\n // This handles cases where rapid updates happen before the ref is properly set\n if (previousCandleClose === null) {\n const candlesArray = candles1hRef.current || [];\n if (candlesArray.length > 0) {\n // Get candles sorted by time and find the most recent one BEFORE bucketStart\n const sortedCandles = [...candlesArray].sort((a, b) => b.time - a.time); // Sort descending\n const lastCandle = sortedCandles.find(c => c.time < bucketStart);\n \n if (lastCandle && lastCandle.close > 0 && isFinite(lastCandle.close)) {\n previousCandleClose = lastCandle.close;\n if (lastCandle.open > 0) {\n previousCandleDirection = lastCandle.close >= lastCandle.open ? 1 : -1;\n }\n console.log(`🔄 [Chart-1h] Using last completed candle close from array (${lastCandle.time}) as new candle open: $${previousCandleClose.toFixed(2)}`);\n }\n\n }\n }\n \n // CRITICAL: Capture from currentCandle ref BEFORE finalizing (this is the PRIMARY source)\n if (previousCandleClose === null && currentCandle1hRef.current) {\n if (currentCandle1hRef.current.close > 0 && isFinite(currentCandle1hRef.current.close)) {\n previousCandleClose = currentCandle1hRef.current.close;\n if (currentCandle1hRef.current.open > 0) {\n previousCandleDirection = currentCandle1hRef.current.close >= currentCandle1hRef.current.open ? 1 : -1;\n }\n console.log(`✅ [Chart-1h] Method 3 (PRIMARY): Using currentCandle ref close (${currentCandle1hRef.current.time}) as new candle open: $${previousCandleClose.toFixed(2)}`);\n }\n }\n \n // Finalize previous candle if exists and has valid data\n if (currentCandle1hRef.current && \n currentCandle1hRef.current.open > 0 && \n currentCandle1hRef.current.high > 0 && \n currentCandle1hRef.current.low > 0 && \n currentCandle1hRef.current.close > 0) {\n \n const finalizedCandle: CandleData = { ...currentCandle1hRef.current };\n \n // CRITICAL: If we still don't have previousCandleClose at this point, use the finalized candle\n if (previousCandleClose === null) {\n previousCandleClose = finalizedCandle.close;\n if (finalizedCandle.open > 0) {\n previousCandleDirection = finalizedCandle.close >= finalizedCandle.open ? 1 : -1;\n }\n console.log(`✅ [Chart-1h] Method 4: Using finalized candle close (${finalizedCandle.time}) as new candle open: $${previousCandleClose.toFixed(2)}`);\n }\n \n // Ensure OHLC data integrity\n finalizedCandle.high = Math.max(finalizedCandle.open, finalizedCandle.high, finalizedCandle.close);\n finalizedCandle.low = Math.min(finalizedCandle.open, finalizedCandle.low, finalizedCandle.close);\n \n setCandles1h(prev => {\n const existingIndex = prev.findIndex(c => c.time === finalizedCandle.time);\n if (existingIndex >= 0) {\n const updated = [...prev];\n updated[existingIndex] = finalizedCandle;\n candles1hRef.current = updated;\n return updated;\n }\n const newData = [...prev, finalizedCandle].sort((a, b) => a.time - b.time);\n candles1hRef.current = newData;\n return newData;\n });\n }\n \n // Create new candle with validated data\n // CRITICAL: Use captured previous candle's close as open price to ensure proper candle body visibility\n // This matches ProfessionalTradingChartRedux behavior: newCandle.open = lastKnownPrice (from previous candle)\n if (previousCandleClose === null) {\n console.error(`❌ [Chart-1h] CRITICAL: No previous candle close found after all attempts!`);\n previousCandleClose = price; // Last resort only\n }\n \n // CRITICAL: openPrice MUST be from previous candle's close, NOT current market cap\n const openPrice = previousCandleClose;\n console.log(`🕯️ [Chart-1h] Creating new candle: open=$${openPrice.toFixed(2)} (from previous close), current price=$${price.toFixed(2)}`);\n \n // CRITICAL FIX: Always ensure minimum body size for new candles at bucket boundaries\n // This prevents invisible bodies when price equals or is very close to previous close at exact bucket transition\n let closePrice = price;\n const priceDiff = Math.abs(openPrice - price);\n const minBodySize = Math.max(openPrice * 0.0001, 0.01); // 0.01% minimum body size, or $0.01 minimum\n \n // ALWAYS enforce minimum body size for new candles to ensure they're visible\n // This handles edge cases at exact bucket boundary transitions (e.g., 4:52:59 -> 4:53:00)\n if (priceDiff < minBodySize) {\n // Use the NEW price direction (relative to open) to determine body direction\n // If price equals open exactly, use previous direction as fallback\n let newPriceDirection: number;\n if (priceDiff === 0 || Math.abs(price - openPrice) < 0.0001) {\n // Price equals open exactly - use previous candle direction or default to up\n newPriceDirection = previousCandleDirection !== null ? previousCandleDirection : 1;\n } else {\n newPriceDirection = price >= openPrice ? 1 : -1;\n }\n closePrice = openPrice + (newPriceDirection * minBodySize);\n }\n \n // Additional safety: Verify body size is actually visible after calculation\n // This double-checks that the body is visible even if initial calculation had edge cases\n const finalBodySize = Math.abs(closePrice - openPrice);\n if (finalBodySize < minBodySize && openPrice > 0) {\n // Force minimum body size with direction from price or previous candle\n const direction = (price >= openPrice) || (previousCandleDirection !== null && previousCandleDirection === 1) ? 1 : -1;\n closePrice = openPrice + (direction * minBodySize);\n }\n \n const newCandle: CandleData = {\n time: bucketStart,\n open: openPrice,\n high: Math.max(openPrice, closePrice, price), // Ensure high includes all prices\n low: Math.min(openPrice, closePrice, price), // Ensure low includes all prices\n close: closePrice,\n volume: 0\n };\n \n // Update refs first to prevent race conditions\n currentCandle1hRef.current = newCandle;\n lastCandleTime1hRef.current = bucketStart;\n \n // Update state\n setCurrentCandle1h(newCandle);\n setLastCandleTime1h(bucketStart);\n \n // Add new candle to array with validation\n setCandles1h(prev => {\n const existingIndex = prev.findIndex(c => c.time === newCandle.time);\n if (existingIndex >= 0) {\n // Update existing candle instead of creating duplicate\n const updated = [...prev];\n updated[existingIndex] = newCandle;\n candles1hRef.current = updated;\n return updated;\n }\n const newData = [...prev, newCandle].sort((a, b) => a.time - b.time);\n candles1hRef.current = newData;\n return newData;\n });\n \n console.log(`🆕 [Chart-1h] New candle: $${price.toFixed(2)}`);\n return newCandle;\n } else if (currentCandle1hRef.current) {\n // CRITICAL: Verify this is actually the current candle (not a historical one)\n // Only update if the candle time matches the current bucket\n // Use the timestamp parameter for consistency, not Date.now()\n const currentTime = Math.floor(timestamp / 1000);\n const currentBucket = Math.floor(currentTime / 3600) * 3600;\n \n // STRICT CHECK: Only update if the candle time EXACTLY matches the current bucket\n if (currentCandle1hRef.current.time !== currentBucket) {\n // This is a historical candle, don't update it\n console.warn(`⚠️ [Chart-1h] Skipping update for historical candle (time: ${currentCandle1hRef.current.time}, current: ${currentBucket})`);\n return null;\n }\n \n // Update existing candle with validation\n const currentCandle = currentCandle1hRef.current;\n \n // Ensure we have valid existing candle data\n if (currentCandle.open <= 0 || currentCandle.high <= 0 || currentCandle.low <= 0 || currentCandle.close <= 0) {\n console.warn(`⚠️ [Chart-1h] Invalid existing candle data, recreating`);\n // Recreate candle with current price\n const recreatedCandle: CandleData = {\n time: currentCandle.time,\n open: price,\n high: price,\n low: price,\n close: price,\n volume: 0\n };\n \n currentCandle1hRef.current = recreatedCandle;\n setCurrentCandle1h(recreatedCandle);\n \n setCandles1h(prev => {\n const existingIndex = prev.findIndex(c => c.time === recreatedCandle.time && c.time === currentBucket);\n if (existingIndex >= 0) {\n const arr = [...prev];\n arr[existingIndex] = recreatedCandle;\n candles1hRef.current = arr;\n return arr;\n }\n return prev;\n });\n \n return recreatedCandle;\n }\n \n // Normal update with validation\n // CRITICAL FIX: Preserve minimum body size when updating close price\n // This prevents body from disappearing when price equals or is very close to open\n const minBodySize = Math.max(currentCandle.open * 0.0001, 0.01); // 0.01% minimum body size\n const priceDiff = Math.abs(currentCandle.open - price);\n \n // Check if candle already has a minimum body size (was just created with min body)\n // This prevents overwriting the body when rapid updates come right after candle creation\n const currentBodySize = Math.abs(currentCandle.close - currentCandle.open);\n // AGGRESSIVE CHECK: Accept ANY body size > 0 up to 10x minimum to catch newly created candles\n const hasMinimumBody = currentBodySize > 0 && currentBodySize <= minBodySize * 10.0;\n \n let closePrice = price;\n \n // CRITICAL: If candle has ANY body, ALWAYS preserve minimum body unless price moves VERY significantly (100x)\n if (hasMinimumBody && currentCandle.open > 0) {\n // AGGRESSIVE: Only update if price moved MORE than 100x the minimum body size\n if (priceDiff < minBodySize * 100) {\n // Preserve minimum body size BUT use CURRENT price direction (fixes bearish disappearing)\n const currentPriceDirection = price >= currentCandle.open ? 1 : -1;\n closePrice = currentCandle.open + (currentPriceDirection * minBodySize);\n } else {\n // Price moved significantly - use actual price but ensure minimum body size\n closePrice = price;\n const finalBodySize = Math.abs(closePrice - currentCandle.open);\n if (finalBodySize < minBodySize) {\n const newPriceDirection = price >= currentCandle.open ? 1 : -1;\n closePrice = currentCandle.open + (newPriceDirection * minBodySize);\n }\n }\n } else if (priceDiff < minBodySize && currentCandle.open > 0) {\n // Candle doesn't have minimum body, but new price would make it invisible\n // Use the NEW price direction (relative to open) to determine body direction\n const newPriceDirection = price >= currentCandle.open ? 1 : -1;\n closePrice = currentCandle.open + (newPriceDirection * minBodySize);\n }\n \n // Additional safety: ALWAYS ensure body is at least minimum size\n // CRITICAL FIX: Use actual price direction, not OR logic (fixes bearish candle disappearing)\n const finalBodySize = Math.abs(closePrice - currentCandle.open);\n if (finalBodySize < minBodySize && currentCandle.open > 0) {\n // Determine direction based on actual price movement (prioritize current price)\n let direction: number;\n if (price !== currentCandle.open && Math.abs(price - currentCandle.open) > 0.0001) {\n direction = price >= currentCandle.open ? 1 : -1;\n } else if (currentCandle.close !== currentCandle.open && Math.abs(currentCandle.close - currentCandle.open) > 0.0001) {\n direction = currentCandle.close >= currentCandle.open ? 1 : -1;\n } else {\n direction = 1; // Default upward\n }\n closePrice = currentCandle.open + (direction * minBodySize);\n }\n \n const updated: CandleData = {\n ...currentCandle,\n high: Math.max(currentCandle.high, price, closePrice),\n low: Math.min(currentCandle.low, price, closePrice),\n close: closePrice\n };\n \n // Final validation of OHLC data\n updated.high = Math.max(updated.open, updated.high, updated.close);\n updated.low = Math.min(updated.open, updated.low, updated.close);\n \n currentCandle1hRef.current = updated;\n setCurrentCandle1h(updated);\n \n // CRITICAL: Only update the candle in array if it's the current candle (matching currentBucket)\n // This prevents accidentally overwriting historical candles\n // STRICT CHECK: Only proceed if updated.time matches currentBucket\n if (updated.time !== currentBucket) {\n console.warn(`⚠️ [Chart-1h] Prevented update of historical candle: time=${updated.time}, currentBucket=${currentBucket}`);\n return updated; // Return updated candle but don't update array\n }\n \n setCandles1h(prev => {\n // Find candle by time AND verify it matches current bucket\n const existingIndex = prev.findIndex(c => c.time === currentBucket);\n if (existingIndex >= 0) {\n // Verify it's actually the current bucket candle before updating\n if (prev[existingIndex].time === currentBucket) {\n const arr = [...prev];\n arr[existingIndex] = updated;\n candles1hRef.current = arr;\n return arr;\n }\n }\n // If not found, add it only if it matches current bucket (should always be true here)\n if (updated.time === currentBucket) {\n const newData = [...prev, updated].sort((a, b) => a.time - b.time);\n candles1hRef.current = newData;\n return newData;\n }\n return prev;\n });\n \n return updated;\n }\n return null;\n }, []);\n \n // 4h - Improved logic with better debouncing and validation\n const createOrUpdate4h = useCallback((price: number, timestamp: number) => {\n const currentTime = Math.floor(timestamp / 1000);\n const bucketStart = Math.floor(currentTime / 14400) * 14400;\n \n // Enhanced debouncing - prevent rapid updates within same bucket\n const now = Date.now();\n if (lastProcessedTimestampRef.current && (now - lastProcessedTimestampRef.current) < 50) {\n return null;\n }\n lastProcessedTimestampRef.current = now;\n \n // Validate price data\n if (!price || price <= 0 || !isFinite(price)) {\n console.warn(`⚠️ [Chart-4h] Invalid price data: ${price}`);\n return null;\n }\n \n if (bucketStart !== lastCandleTime4hRef.current) {\n // CRITICAL: Capture previous candle's close price and direction BEFORE finalizing it\n // This ensures we have the correct open price for the new candle even during rapid price movements\n let previousCandleClose: number | null = null;\n let previousCandleDirection: number = 1; // 1 for bullish, -1 for bearish\n \n // CRITICAL FIX: Check BOTH ref AND array to get the previous candle's close\n // The ref might be null during rapid updates, so we need to check the array too\n \n // First, try to get close from current candle ref\n if (currentCandle4hRef.current && \n currentCandle4hRef.current.close > 0 && \n isFinite(currentCandle4hRef.current.close) &&\n currentCandle4hRef.current.time < bucketStart) { // Ensure it's actually the previous candle\n previousCandleClose = currentCandle4hRef.current.close;\n // Capture direction before finalizing\n if (currentCandle4hRef.current.open > 0) {\n previousCandleDirection = currentCandle4hRef.current.close >= currentCandle4hRef.current.open ? 1 : -1;\n }\n console.log(`✅ [Chart-4h] Using currentCandle ref close (${currentCandle4hRef.current.time}) as new candle open: $${previousCandleClose.toFixed(2)}`);\n }\n \n // FALLBACK: If ref doesn't have it, get it from the candles array\n // This handles cases where rapid updates happen before the ref is properly set\n if (previousCandleClose === null) {\n const candlesArray = candles4hRef.current || [];\n if (candlesArray.length > 0) {\n // Get candles sorted by time and find the most recent one BEFORE bucketStart\n const sortedCandles = [...candlesArray].sort((a, b) => b.time - a.time); // Sort descending\n const lastCandle = sortedCandles.find(c => c.time < bucketStart);\n \n if (lastCandle && lastCandle.close > 0 && isFinite(lastCandle.close)) {\n previousCandleClose = lastCandle.close;\n if (lastCandle.open > 0) {\n previousCandleDirection = lastCandle.close >= lastCandle.open ? 1 : -1;\n }\n console.log(`🔄 [Chart-4h] Using last completed candle close from array (${lastCandle.time}) as new candle open: $${previousCandleClose.toFixed(2)}`);\n }\n\n }\n }\n \n // CRITICAL: Capture from currentCandle ref BEFORE finalizing (this is the PRIMARY source)\n if (previousCandleClose === null && currentCandle4hRef.current) {\n if (currentCandle4hRef.current.close > 0 && isFinite(currentCandle4hRef.current.close)) {\n previousCandleClose = currentCandle4hRef.current.close;\n if (currentCandle4hRef.current.open > 0) {\n previousCandleDirection = currentCandle4hRef.current.close >= currentCandle4hRef.current.open ? 1 : -1;\n }\n console.log(`✅ [Chart-4h] Method 3 (PRIMARY): Using currentCandle ref close (${currentCandle4hRef.current.time}) as new candle open: $${previousCandleClose.toFixed(2)}`);\n }\n }\n \n // Finalize previous candle if exists and has valid data\n if (currentCandle4hRef.current && \n currentCandle4hRef.current.open > 0 && \n currentCandle4hRef.current.high > 0 && \n currentCandle4hRef.current.low > 0 && \n currentCandle4hRef.current.close > 0) {\n \n const finalizedCandle: CandleData = { ...currentCandle4hRef.current };\n \n // CRITICAL: If we still don't have previousCandleClose at this point, use the finalized candle\n if (previousCandleClose === null) {\n previousCandleClose = finalizedCandle.close;\n if (finalizedCandle.open > 0) {\n previousCandleDirection = finalizedCandle.close >= finalizedCandle.open ? 1 : -1;\n }\n console.log(`✅ [Chart-4h] Method 4: Using finalized candle close (${finalizedCandle.time}) as new candle open: $${previousCandleClose.toFixed(2)}`);\n }\n \n // Ensure OHLC data integrity\n finalizedCandle.high = Math.max(finalizedCandle.open, finalizedCandle.high, finalizedCandle.close);\n finalizedCandle.low = Math.min(finalizedCandle.open, finalizedCandle.low, finalizedCandle.close);\n \n setCandles4h(prev => {\n const existingIndex = prev.findIndex(c => c.time === finalizedCandle.time);\n if (existingIndex >= 0) {\n const updated = [...prev];\n updated[existingIndex] = finalizedCandle;\n candles4hRef.current = updated;\n return updated;\n }\n const newData = [...prev, finalizedCandle].sort((a, b) => a.time - b.time);\n candles4hRef.current = newData;\n return newData;\n });\n }\n \n // Create new candle with validated data\n // CRITICAL: Use captured previous candle's close as open price to ensure proper candle body visibility\n // This matches ProfessionalTradingChartRedux behavior: newCandle.open = lastKnownPrice (from previous candle)\n if (previousCandleClose === null) {\n console.error(`❌ [Chart-4h] CRITICAL: No previous candle close found after all attempts!`);\n previousCandleClose = price; // Last resort only\n }\n \n // CRITICAL: openPrice MUST be from previous candle's close, NOT current market cap\n const openPrice = previousCandleClose;\n console.log(`🕯️ [Chart-4h] Creating new candle: open=$${openPrice.toFixed(2)} (from previous close), current price=$${price.toFixed(2)}`);\n \n // CRITICAL FIX: Always ensure minimum body size for new candles at bucket boundaries\n // This prevents invisible bodies when price equals or is very close to previous close at exact bucket transition\n let closePrice = price;\n const priceDiff = Math.abs(openPrice - price);\n const minBodySize = Math.max(openPrice * 0.0001, 0.01); // 0.01% minimum body size, or $0.01 minimum\n \n // ALWAYS enforce minimum body size for new candles to ensure they're visible\n // This handles edge cases at exact bucket boundary transitions (e.g., 4:52:59 -> 4:53:00)\n if (priceDiff < minBodySize) {\n // Use the NEW price direction (relative to open) to determine body direction\n // If price equals open exactly, use previous direction as fallback\n let newPriceDirection: number;\n if (priceDiff === 0 || Math.abs(price - openPrice) < 0.0001) {\n // Price equals open exactly - use previous candle direction or default to up\n newPriceDirection = previousCandleDirection !== null ? previousCandleDirection : 1;\n } else {\n newPriceDirection = price >= openPrice ? 1 : -1;\n }\n closePrice = openPrice + (newPriceDirection * minBodySize);\n }\n \n // Additional safety: Verify body size is actually visible after calculation\n // This double-checks that the body is visible even if initial calculation had edge cases\n const finalBodySize = Math.abs(closePrice - openPrice);\n if (finalBodySize < minBodySize && openPrice > 0) {\n // Force minimum body size with direction from price or previous candle\n const direction = (price >= openPrice) || (previousCandleDirection !== null && previousCandleDirection === 1) ? 1 : -1;\n closePrice = openPrice + (direction * minBodySize);\n }\n \n const newCandle: CandleData = {\n time: bucketStart,\n open: openPrice,\n high: Math.max(openPrice, closePrice, price), // Ensure high includes all prices\n low: Math.min(openPrice, closePrice, price), // Ensure low includes all prices\n close: closePrice,\n volume: 0\n };\n \n // Update refs first to prevent race conditions\n currentCandle4hRef.current = newCandle;\n lastCandleTime4hRef.current = bucketStart;\n \n // Update state\n setCurrentCandle4h(newCandle);\n setLastCandleTime4h(bucketStart);\n \n // Add new candle to array with validation\n setCandles4h(prev => {\n const existingIndex = prev.findIndex(c => c.time === newCandle.time);\n if (existingIndex >= 0) {\n // Update existing candle instead of creating duplicate\n const updated = [...prev];\n updated[existingIndex] = newCandle;\n candles4hRef.current = updated;\n return updated;\n }\n const newData = [...prev, newCandle].sort((a, b) => a.time - b.time);\n candles4hRef.current = newData;\n return newData;\n });\n \n console.log(`🆕 [Chart-4h] New candle: $${price.toFixed(2)}`);\n return newCandle;\n } else if (currentCandle4hRef.current) {\n // CRITICAL: Verify this is actually the current candle (not a historical one)\n // Only update if the candle time matches the current bucket\n // Use the timestamp parameter for consistency, not Date.now()\n const currentTime = Math.floor(timestamp / 1000);\n const currentBucket = Math.floor(currentTime / 14400) * 14400;\n \n // STRICT CHECK: Only update if the candle time EXACTLY matches the current bucket\n if (currentCandle4hRef.current.time !== currentBucket) {\n // This is a historical candle, don't update it\n console.warn(`⚠️ [Chart-4h] Skipping update for historical candle (time: ${currentCandle4hRef.current.time}, current: ${currentBucket})`);\n return null;\n }\n \n // Update existing candle with validation\n const currentCandle = currentCandle4hRef.current;\n \n // Ensure we have valid existing candle data\n if (currentCandle.open <= 0 || currentCandle.high <= 0 || currentCandle.low <= 0 || currentCandle.close <= 0) {\n console.warn(`⚠️ [Chart-4h] Invalid existing candle data, recreating`);\n // Recreate candle with current price\n const recreatedCandle: CandleData = {\n time: currentCandle.time,\n open: price,\n high: price,\n low: price,\n close: price,\n volume: 0\n };\n \n currentCandle4hRef.current = recreatedCandle;\n setCurrentCandle4h(recreatedCandle);\n \n setCandles4h(prev => {\n const existingIndex = prev.findIndex(c => c.time === recreatedCandle.time && c.time === currentBucket);\n if (existingIndex >= 0) {\n const arr = [...prev];\n arr[existingIndex] = recreatedCandle;\n candles4hRef.current = arr;\n return arr;\n }\n return prev;\n });\n \n return recreatedCandle;\n }\n \n // Normal update with validation\n // CRITICAL FIX: Preserve minimum body size when updating close price\n // This prevents body from disappearing when price equals or is very close to open\n const minBodySize = Math.max(currentCandle.open * 0.0001, 0.01); // 0.01% minimum body size\n const priceDiff = Math.abs(currentCandle.open - price);\n \n // Check if candle already has a minimum body size (was just created with min body)\n // This prevents overwriting the body when rapid updates come right after candle creation\n const currentBodySize = Math.abs(currentCandle.close - currentCandle.open);\n // AGGRESSIVE CHECK: Accept ANY body size > 0 up to 10x minimum to catch newly created candles\n const hasMinimumBody = currentBodySize > 0 && currentBodySize <= minBodySize * 10.0;\n \n let closePrice = price;\n \n // CRITICAL: If candle has ANY body, ALWAYS preserve minimum body unless price moves VERY significantly (100x)\n if (hasMinimumBody && currentCandle.open > 0) {\n // AGGRESSIVE: Only update if price moved MORE than 100x the minimum body size\n if (priceDiff < minBodySize * 100) {\n // Preserve minimum body size BUT use CURRENT price direction (fixes bearish disappearing)\n const currentPriceDirection = price >= currentCandle.open ? 1 : -1;\n closePrice = currentCandle.open + (currentPriceDirection * minBodySize);\n } else {\n // Price moved significantly - use actual price but ensure minimum body size\n closePrice = price;\n const finalBodySize = Math.abs(closePrice - currentCandle.open);\n if (finalBodySize < minBodySize) {\n const newPriceDirection = price >= currentCandle.open ? 1 : -1;\n closePrice = currentCandle.open + (newPriceDirection * minBodySize);\n }\n }\n } else if (priceDiff < minBodySize && currentCandle.open > 0) {\n // Candle doesn't have minimum body, but new price would make it invisible\n // Use the NEW price direction (relative to open) to determine body direction\n const newPriceDirection = price >= currentCandle.open ? 1 : -1;\n closePrice = currentCandle.open + (newPriceDirection * minBodySize);\n }\n \n // Additional safety: ALWAYS ensure body is at least minimum size\n // CRITICAL FIX: Use actual price direction, not OR logic (fixes bearish candle disappearing)\n const finalBodySize = Math.abs(closePrice - currentCandle.open);\n if (finalBodySize < minBodySize && currentCandle.open > 0) {\n // Determine direction based on actual price movement (prioritize current price)\n let direction: number;\n if (price !== currentCandle.open && Math.abs(price - currentCandle.open) > 0.0001) {\n direction = price >= currentCandle.open ? 1 : -1;\n } else if (currentCandle.close !== currentCandle.open && Math.abs(currentCandle.close - currentCandle.open) > 0.0001) {\n direction = currentCandle.close >= currentCandle.open ? 1 : -1;\n } else {\n direction = 1; // Default upward\n }\n closePrice = currentCandle.open + (direction * minBodySize);\n }\n \n const updated: CandleData = {\n ...currentCandle,\n high: Math.max(currentCandle.high, price, closePrice),\n low: Math.min(currentCandle.low, price, closePrice),\n close: closePrice\n };\n \n // Final validation of OHLC data\n updated.high = Math.max(updated.open, updated.high, updated.close);\n updated.low = Math.min(updated.open, updated.low, updated.close);\n \n currentCandle4hRef.current = updated;\n setCurrentCandle4h(updated);\n \n // CRITICAL: Only update the candle in array if it's the current candle (matching currentBucket)\n // This prevents accidentally overwriting historical candles\n // STRICT CHECK: Only proceed if updated.time matches currentBucket\n if (updated.time !== currentBucket) {\n console.warn(`⚠️ [Chart-4h] Prevented update of historical candle: time=${updated.time}, currentBucket=${currentBucket}`);\n return updated; // Return updated candle but don't update array\n }\n \n setCandles4h(prev => {\n // Find candle by time AND verify it matches current bucket\n const existingIndex = prev.findIndex(c => c.time === currentBucket);\n if (existingIndex >= 0) {\n // Verify it's actually the current bucket candle before updating\n if (prev[existingIndex].time === currentBucket) {\n const arr = [...prev];\n arr[existingIndex] = updated;\n candles4hRef.current = arr;\n return arr;\n }\n }\n // If not found, add it only if it matches current bucket (should always be true here)\n if (updated.time === currentBucket) {\n const newData = [...prev, updated].sort((a, b) => a.time - b.time);\n candles4hRef.current = newData;\n return newData;\n }\n return prev;\n });\n \n return updated;\n }\n return null;\n }, []);\n \n // 1d - Improved logic with better debouncing and validation\n const createOrUpdate1d = useCallback((price: number, timestamp: number) => {\n const currentTime = Math.floor(timestamp / 1000);\n const bucketStart = Math.floor(currentTime / 86400) * 86400;\n \n // Enhanced debouncing - prevent rapid updates within same bucket\n const now = Date.now();\n if (lastProcessedTimestampRef.current && (now - lastProcessedTimestampRef.current) < 50) {\n return null;\n }\n lastProcessedTimestampRef.current = now;\n \n // Validate price data\n if (!price || price <= 0 || !isFinite(price)) {\n console.warn(`⚠️ [Chart-1d] Invalid price data: ${price}`);\n return null;\n }\n \n if (bucketStart !== lastCandleTime1dRef.current) {\n // CRITICAL: Capture previous candle's close price and direction BEFORE finalizing it\n // This ensures we have the correct open price for the new candle even during rapid price movements\n let previousCandleClose: number | null = null;\n let previousCandleDirection: number = 1; // 1 for bullish, -1 for bearish\n \n // CRITICAL FIX: Check BOTH ref AND array to get the previous candle's close\n // The ref might be null during rapid updates, so we need to check the array too\n \n // First, try to get close from current candle ref\n if (currentCandle1dRef.current && \n currentCandle1dRef.current.close > 0 && \n isFinite(currentCandle1dRef.current.close) &&\n currentCandle1dRef.current.time < bucketStart) { // Ensure it's actually the previous candle\n previousCandleClose = currentCandle1dRef.current.close;\n // Capture direction before finalizing\n if (currentCandle1dRef.current.open > 0) {\n previousCandleDirection = currentCandle1dRef.current.close >= currentCandle1dRef.current.open ? 1 : -1;\n }\n console.log(`✅ [Chart-1d] Using currentCandle ref close (${currentCandle1dRef.current.time}) as new candle open: $${previousCandleClose.toFixed(2)}`);\n }\n \n // FALLBACK: If ref doesn't have it, get it from the candles array\n // This handles cases where rapid updates happen before the ref is properly set\n if (previousCandleClose === null) {\n const candlesArray = candles1dRef.current || [];\n if (candlesArray.length > 0) {\n // Get candles sorted by time and find the most recent one BEFORE bucketStart\n const sortedCandles = [...candlesArray].sort((a, b) => b.time - a.time); // Sort descending\n const lastCandle = sortedCandles.find(c => c.time < bucketStart);\n \n if (lastCandle && lastCandle.close > 0 && isFinite(lastCandle.close)) {\n previousCandleClose = lastCandle.close;\n if (lastCandle.open > 0) {\n previousCandleDirection = lastCandle.close >= lastCandle.open ? 1 : -1;\n }\n console.log(`🔄 [Chart-1d] Using last completed candle close from array (${lastCandle.time}) as new candle open: $${previousCandleClose.toFixed(2)}`);\n }\n\n }\n }\n \n // CRITICAL: Capture from currentCandle ref BEFORE finalizing (this is the PRIMARY source)\n if (previousCandleClose === null && currentCandle1dRef.current) {\n if (currentCandle1dRef.current.close > 0 && isFinite(currentCandle1dRef.current.close)) {\n previousCandleClose = currentCandle1dRef.current.close;\n if (currentCandle1dRef.current.open > 0) {\n previousCandleDirection = currentCandle1dRef.current.close >= currentCandle1dRef.current.open ? 1 : -1;\n }\n console.log(`✅ [Chart-1d] Method 3 (PRIMARY): Using currentCandle ref close (${currentCandle1dRef.current.time}) as new candle open: $${previousCandleClose.toFixed(2)}`);\n }\n }\n \n // Finalize previous candle if exists and has valid data\n if (currentCandle1dRef.current && \n currentCandle1dRef.current.open > 0 && \n currentCandle1dRef.current.high > 0 && \n currentCandle1dRef.current.low > 0 && \n currentCandle1dRef.current.close > 0) {\n \n const finalizedCandle: CandleData = { ...currentCandle1dRef.current };\n \n // CRITICAL: If we still don't have previousCandleClose at this point, use the finalized candle\n if (previousCandleClose === null) {\n previousCandleClose = finalizedCandle.close;\n if (finalizedCandle.open > 0) {\n previousCandleDirection = finalizedCandle.close >= finalizedCandle.open ? 1 : -1;\n }\n console.log(`✅ [Chart-1d] Method 4: Using finalized candle close (${finalizedCandle.time}) as new candle open: $${previousCandleClose.toFixed(2)}`);\n }\n \n // Ensure OHLC data integrity\n finalizedCandle.high = Math.max(finalizedCandle.open, finalizedCandle.high, finalizedCandle.close);\n finalizedCandle.low = Math.min(finalizedCandle.open, finalizedCandle.low, finalizedCandle.close);\n \n setCandles1d(prev => {\n const existingIndex = prev.findIndex(c => c.time === finalizedCandle.time);\n if (existingIndex >= 0) {\n const updated = [...prev];\n updated[existingIndex] = finalizedCandle;\n candles1dRef.current = updated;\n return updated;\n }\n const newData = [...prev, finalizedCandle].sort((a, b) => a.time - b.time);\n candles1dRef.current = newData;\n return newData;\n });\n }\n \n // Create new candle with validated data\n // CRITICAL: Use captured previous candle's close as open price to ensure proper candle body visibility\n // This matches ProfessionalTradingChartRedux behavior: newCandle.open = lastKnownPrice (from previous candle)\n if (previousCandleClose === null) {\n console.error(`❌ [Chart-1d] CRITICAL: No previous candle close found after all attempts!`);\n previousCandleClose = price; // Last resort only\n }\n \n // CRITICAL: openPrice MUST be from previous candle's close, NOT current market cap\n const openPrice = previousCandleClose;\n console.log(`🕯️ [Chart-1d] Creating new candle: open=$${openPrice.toFixed(2)} (from previous close), current price=$${price.toFixed(2)}`);\n \n // CRITICAL FIX: Always ensure minimum body size for new candles at bucket boundaries\n // This prevents invisible bodies when price equals or is very close to previous close at exact bucket transition\n let closePrice = price;\n const priceDiff = Math.abs(openPrice - price);\n const minBodySize = Math.max(openPrice * 0.0001, 0.01); // 0.01% minimum body size, or $0.01 minimum\n \n // ALWAYS enforce minimum body size for new candles to ensure they're visible\n // This handles edge cases at exact bucket boundary transitions (e.g., 4:52:59 -> 4:53:00)\n if (priceDiff < minBodySize) {\n // Use the NEW price direction (relative to open) to determine body direction\n // If price equals open exactly, use previous direction as fallback\n let newPriceDirection: number;\n if (priceDiff === 0 || Math.abs(price - openPrice) < 0.0001) {\n // Price equals open exactly - use previous candle direction or default to up\n newPriceDirection = previousCandleDirection !== null ? previousCandleDirection : 1;\n } else {\n newPriceDirection = price >= openPrice ? 1 : -1;\n }\n closePrice = openPrice + (newPriceDirection * minBodySize);\n }\n \n // Additional safety: Verify body size is actually visible after calculation\n // This double-checks that the body is visible even if initial calculation had edge cases\n const finalBodySize = Math.abs(closePrice - openPrice);\n if (finalBodySize < minBodySize && openPrice > 0) {\n // Force minimum body size with direction from price or previous candle\n const direction = (price >= openPrice) || (previousCandleDirection !== null && previousCandleDirection === 1) ? 1 : -1;\n closePrice = openPrice + (direction * minBodySize);\n }\n \n const newCandle: CandleData = {\n time: bucketStart,\n open: openPrice,\n high: Math.max(openPrice, closePrice, price), // Ensure high includes all prices\n low: Math.min(openPrice, closePrice, price), // Ensure low includes all prices\n close: closePrice,\n volume: 0\n };\n \n // Update refs first to prevent race conditions\n currentCandle1dRef.current = newCandle;\n lastCandleTime1dRef.current = bucketStart;\n \n // Update state\n setCurrentCandle1d(newCandle);\n setLastCandleTime1d(bucketStart);\n \n // Add new candle to array with validation\n setCandles1d(prev => {\n const existingIndex = prev.findIndex(c => c.time === newCandle.time);\n if (existingIndex >= 0) {\n // Update existing candle instead of creating duplicate\n const updated = [...prev];\n updated[existingIndex] = newCandle;\n candles1dRef.current = updated;\n return updated;\n }\n const newData = [...prev, newCandle].sort((a, b) => a.time - b.time);\n candles1dRef.current = newData;\n return newData;\n });\n \n console.log(`🆕 [Chart-1d] New candle: $${price.toFixed(2)}`);\n return newCandle;\n } else if (currentCandle1dRef.current) {\n // CRITICAL: Verify this is actually the current candle (not a historical one)\n // Only update if the candle time matches the current bucket\n // Use the timestamp parameter for consistency, not Date.now()\n const currentTime = Math.floor(timestamp / 1000);\n const currentBucket = Math.floor(currentTime / 86400) * 86400;\n \n // STRICT CHECK: Only update if the candle time EXACTLY matches the current bucket\n if (currentCandle1dRef.current.time !== currentBucket) {\n // This is a historical candle, don't update it\n console.warn(`⚠️ [Chart-1d] Skipping update for historical candle (time: ${currentCandle1dRef.current.time}, current: ${currentBucket})`);\n return null;\n }\n \n // Update existing candle with validation\n const currentCandle = currentCandle1dRef.current;\n \n // Ensure we have valid existing candle data\n if (currentCandle.open <= 0 || currentCandle.high <= 0 || currentCandle.low <= 0 || currentCandle.close <= 0) {\n console.warn(`⚠️ [Chart-1d] Invalid existing candle data, recreating`);\n // Recreate candle with current price\n const recreatedCandle: CandleData = {\n time: currentCandle.time,\n open: price,\n high: price,\n low: price,\n close: price,\n volume: 0\n };\n \n currentCandle1dRef.current = recreatedCandle;\n setCurrentCandle1d(recreatedCandle);\n \n setCandles1d(prev => {\n const existingIndex = prev.findIndex(c => c.time === recreatedCandle.time && c.time === currentBucket);\n if (existingIndex >= 0) {\n const arr = [...prev];\n arr[existingIndex] = recreatedCandle;\n candles1dRef.current = arr;\n return arr;\n }\n return prev;\n });\n \n return recreatedCandle;\n }\n \n // Normal update with validation\n // CRITICAL FIX: Preserve minimum body size when updating close price\n // This prevents body from disappearing when price equals or is very close to open\n const minBodySize = Math.max(currentCandle.open * 0.0001, 0.01); // 0.01% minimum body size\n const priceDiff = Math.abs(currentCandle.open - price);\n \n // Check if candle already has a minimum body size (was just created with min body)\n // This prevents overwriting the body when rapid updates come right after candle creation\n const currentBodySize = Math.abs(currentCandle.close - currentCandle.open);\n // AGGRESSIVE CHECK: Accept ANY body size > 0 up to 10x minimum to catch newly created candles\n const hasMinimumBody = currentBodySize > 0 && currentBodySize <= minBodySize * 10.0;\n \n let closePrice = price;\n \n // CRITICAL: If candle has ANY body, ALWAYS preserve minimum body unless price moves VERY significantly (100x)\n if (hasMinimumBody && currentCandle.open > 0) {\n // AGGRESSIVE: Only update if price moved MORE than 100x the minimum body size\n if (priceDiff < minBodySize * 100) {\n // Preserve minimum body size BUT use CURRENT price direction (fixes bearish disappearing)\n const currentPriceDirection = price >= currentCandle.open ? 1 : -1;\n closePrice = currentCandle.open + (currentPriceDirection * minBodySize);\n } else {\n // Price moved significantly - use actual price but ensure minimum body size\n closePrice = price;\n const finalBodySize = Math.abs(closePrice - currentCandle.open);\n if (finalBodySize < minBodySize) {\n const newPriceDirection = price >= currentCandle.open ? 1 : -1;\n closePrice = currentCandle.open + (newPriceDirection * minBodySize);\n }\n }\n } else if (priceDiff < minBodySize && currentCandle.open > 0) {\n // Candle doesn't have minimum body, but new price would make it invisible\n // Use the NEW price direction (relative to open) to determine body direction\n const newPriceDirection = price >= currentCandle.open ? 1 : -1;\n closePrice = currentCandle.open + (newPriceDirection * minBodySize);\n }\n \n // Additional safety: ALWAYS ensure body is at least minimum size\n // CRITICAL FIX: Use actual price direction, not OR logic (fixes bearish candle disappearing)\n const finalBodySize = Math.abs(closePrice - currentCandle.open);\n if (finalBodySize < minBodySize && currentCandle.open > 0) {\n // Determine direction based on actual price movement (prioritize current price)\n let direction: number;\n if (price !== currentCandle.open && Math.abs(price - currentCandle.open) > 0.0001) {\n direction = price >= currentCandle.open ? 1 : -1;\n } else if (currentCandle.close !== currentCandle.open && Math.abs(currentCandle.close - currentCandle.open) > 0.0001) {\n direction = currentCandle.close >= currentCandle.open ? 1 : -1;\n } else {\n direction = 1; // Default upward\n }\n closePrice = currentCandle.open + (direction * minBodySize);\n }\n \n const updated: CandleData = {\n ...currentCandle,\n high: Math.max(currentCandle.high, price, closePrice),\n low: Math.min(currentCandle.low, price, closePrice),\n close: closePrice\n };\n \n // Final validation of OHLC data\n updated.high = Math.max(updated.open, updated.high, updated.close);\n updated.low = Math.min(updated.open, updated.low, updated.close);\n \n currentCandle1dRef.current = updated;\n setCurrentCandle1d(updated);\n \n // CRITICAL: Only update the candle in array if it's the current candle (matching currentBucket)\n // This prevents accidentally overwriting historical candles\n // STRICT CHECK: Only proceed if updated.time matches currentBucket\n if (updated.time !== currentBucket) {\n console.warn(`⚠️ [Chart-1d] Prevented update of historical candle: time=${updated.time}, currentBucket=${currentBucket}`);\n return updated; // Return updated candle but don't update array\n }\n \n setCandles1d(prev => {\n // Find candle by time AND verify it matches current bucket\n const existingIndex = prev.findIndex(c => c.time === currentBucket);\n if (existingIndex >= 0) {\n // Verify it's actually the current bucket candle before updating\n if (prev[existingIndex].time === currentBucket) {\n const arr = [...prev];\n arr[existingIndex] = updated;\n candles1dRef.current = arr;\n return arr;\n }\n }\n // If not found, add it only if it matches current bucket (should always be true here)\n if (updated.time === currentBucket) {\n const newData = [...prev, updated].sort((a, b) => a.time - b.time);\n candles1dRef.current = newData;\n return newData;\n }\n return prev;\n });\n \n return updated;\n }\n return null;\n }, []);\n\n // Sync refs with state - Keep only essential refs\n useEffect(() => {\n currentMarketCapRef.current = currentMarketCap;\n }, [currentMarketCap]);\n \n useEffect(() => {\n currentTimeFrameRef.current = currentTimeFrame;\n }, [currentTimeFrame]);\n \n // NOTE: Other refs (candles, currentCandle, lastCandleTime) are now synced \n // IMMEDIATELY when state changes (inside setState callbacks and after updates)\n // to prevent timing issues and duplicate candles\n\n // Initialize chart\n useEffect(() => {\n if (!chartContainerRef.current) return;\n \n const chart = createChart(chartContainerRef.current, {\n layout: {\n background: { color: '#ffffff' },\n textColor: '#333333',\n },\n grid: {\n vertLines: { color: '#f0f0f0' },\n horzLines: { color: '#f0f0f0' },\n },\n crosshair: {\n mode: CrosshairMode.Normal,\n },\n rightPriceScale: {\n borderColor: '#cccccc',\n },\n timeScale: {\n borderColor: '#cccccc',\n timeVisible: true,\n secondsVisible: false,\n rightOffset: 12,\n barSpacing: 8,\n minBarSpacing: 4,\n },\n height: 384,\n localization: {\n priceFormatter: (price: number) => formatMarketCap(price),\n },\n watermark: {\n visible: true,\n fontSize: 64,\n horzAlign: 'center',\n vertAlign: 'center',\n color: 'rgba(0, 0, 0, 0.03)',\n text: ticker ? `${ticker}/SOL` : `${mint.substring(0, 4)}...${mint.substring(mint.length - 4)}/SOL`,\n },\n });\n \n chartRef.current = chart;\n \n const series = chart.addCandlestickSeries({\n upColor: '#26a69a',\n downColor: '#ef5350',\n borderVisible: true,\n borderUpColor: '#26a69a',\n borderDownColor: '#ef5350',\n wickUpColor: '#26a69a',\n wickDownColor: '#ef5350',\n });\n \n seriesRef.current = series;\n \n // Load candles for current timeframe\n loadCandles(currentTimeFrame.seconds).then(candles => {\n if (candles.length > 0) {\n let lastCandle = candles[candles.length - 1];\n let finalCandles = candles;\n \n // CRITICAL: Update the last candle with current market cap if it's the current period\n // This ensures fresh data when chart first loads\n if (realTimeMarketCap > 0) {\n const currentTime = Math.floor(Date.now() / 1000);\n const currentBucket = Math.floor(currentTime / currentTimeFrame.seconds) * currentTimeFrame.seconds;\n \n if (lastCandle.time === currentBucket) {\n // Update the last candle with current market cap\n // CRITICAL FIX: Preserve minimum body size to prevent disappearing candle body\n const minBodySize = Math.max(lastCandle.open * 0.0001, 0.01);\n const priceDiff = Math.abs(lastCandle.open - realTimeMarketCap);\n let closePrice = realTimeMarketCap;\n \n // If body would be invisible, preserve minimum body size\n if (priceDiff < minBodySize && lastCandle.open > 0) {\n const direction = realTimeMarketCap >= lastCandle.open ? 1 : -1;\n closePrice = lastCandle.open + (direction * minBodySize);\n }\n \n lastCandle = {\n ...lastCandle,\n high: Math.max(lastCandle.high, realTimeMarketCap, closePrice),\n low: Math.min(lastCandle.low, realTimeMarketCap, closePrice),\n close: closePrice\n };\n \n finalCandles = [...candles];\n finalCandles[finalCandles.length - 1] = lastCandle;\n \n console.log(`🔄 [Chart-Init] Updated initial ${currentTimeFrame.label} candle with current MC: $${realTimeMarketCap.toFixed(2)}`);\n }\n }\n \n // CRITICAL: Ensure all timeframes have their refs properly initialized\n // This ensures continuity when new candles are created after page reload\n // The refs are critical for capturing previous candle's close when creating new candles\n \n // Set candles AND initialize lastCandleTime + currentCandle for each timeframe\n // Also update refs immediately for synchronization\n switch (currentTimeFrame.seconds) {\n case 60: \n setCandles1m(finalCandles);\n setLastCandleTime1m(lastCandle.time);\n setCurrentCandle1m(lastCandle);\n // Sync refs immediately - CRITICAL for continuity after reload\n candles1mRef.current = finalCandles;\n lastCandleTime1mRef.current = lastCandle.time;\n currentCandle1mRef.current = lastCandle;\n console.log(`✅ [Chart-Init] 1m refs initialized: lastCandle.time=${lastCandle.time}, close=$${lastCandle.close.toFixed(2)}`);\n break;\n case 300: \n setCandles5m(finalCandles);\n setLastCandleTime5m(lastCandle.time);\n setCurrentCandle5m(lastCandle);\n // Sync refs immediately - CRITICAL for continuity after reload\n candles5mRef.current = finalCandles;\n lastCandleTime5mRef.current = lastCandle.time;\n currentCandle5mRef.current = lastCandle;\n console.log(`✅ [Chart-Init] 5m refs initialized: lastCandle.time=${lastCandle.time}, close=$${lastCandle.close.toFixed(2)}`);\n break;\n case 900: \n setCandles15m(finalCandles);\n setLastCandleTime15m(lastCandle.time);\n setCurrentCandle15m(lastCandle);\n // Sync refs immediately - CRITICAL for continuity after reload\n candles15mRef.current = finalCandles;\n lastCandleTime15mRef.current = lastCandle.time;\n currentCandle15mRef.current = lastCandle;\n console.log(`✅ [Chart-Init] 15m refs initialized: lastCandle.time=${lastCandle.time}, close=$${lastCandle.close.toFixed(2)}`);\n break;\n case 3600: \n setCandles1h(finalCandles);\n setLastCandleTime1h(lastCandle.time);\n setCurrentCandle1h(lastCandle);\n // Sync refs immediately - CRITICAL for continuity after reload\n candles1hRef.current = finalCandles;\n lastCandleTime1hRef.current = lastCandle.time;\n currentCandle1hRef.current = lastCandle;\n console.log(`✅ [Chart-Init] 1h refs initialized: lastCandle.time=${lastCandle.time}, close=$${lastCandle.close.toFixed(2)}`);\n break;\n case 14400: \n setCandles4h(finalCandles);\n setLastCandleTime4h(lastCandle.time);\n setCurrentCandle4h(lastCandle);\n // Sync refs immediately - CRITICAL for continuity after reload\n candles4hRef.current = finalCandles;\n lastCandleTime4hRef.current = lastCandle.time;\n currentCandle4hRef.current = lastCandle;\n console.log(`✅ [Chart-Init] 4h refs initialized: lastCandle.time=${lastCandle.time}, close=$${lastCandle.close.toFixed(2)}`);\n break;\n case 86400: \n setCandles1d(finalCandles);\n setLastCandleTime1d(lastCandle.time);\n setCurrentCandle1d(lastCandle);\n // Sync refs immediately - CRITICAL for continuity after reload\n candles1dRef.current = finalCandles;\n lastCandleTime1dRef.current = lastCandle.time;\n currentCandle1dRef.current = lastCandle;\n console.log(`✅ [Chart-Init] 1d refs initialized: lastCandle.time=${lastCandle.time}, close=$${lastCandle.close.toFixed(2)}`);\n break;\n }\n \n // Display on chart\n series.setData(finalCandles.map(c => ({ ...c, time: c.time as Time })));\n console.log(`✅ [Chart-${currentTimeFrame.label}] Loaded and displayed ${finalCandles.length} candles`);\n \n // CRITICAL: Initialize refs for ALL timeframes to ensure continuity after reload\n // This ensures when new candles are created, they can find previous candle's close\n // Load other timeframes in background (non-blocking, don't wait for them)\n if (currentTimeFrame.seconds !== 60) {\n loadCandles(60).then(candles => {\n if (candles.length > 0) {\n candles1mRef.current = candles;\n const last = candles[candles.length - 1];\n lastCandleTime1mRef.current = last.time;\n currentCandle1mRef.current = last;\n console.log(`✅ [Chart-Init] 1m refs initialized from DB: close=$${last.close.toFixed(2)}`);\n }\n }).catch(() => {});\n }\n if (currentTimeFrame.seconds !== 300) {\n loadCandles(300).then(candles => {\n if (candles.length > 0) {\n candles5mRef.current = candles;\n const last = candles[candles.length - 1];\n lastCandleTime5mRef.current = last.time;\n currentCandle5mRef.current = last;\n console.log(`✅ [Chart-Init] 5m refs initialized from DB: close=$${last.close.toFixed(2)}`);\n }\n }).catch(() => {});\n }\n if (currentTimeFrame.seconds !== 900) {\n loadCandles(900).then(candles => {\n if (candles.length > 0) {\n candles15mRef.current = candles;\n const last = candles[candles.length - 1];\n lastCandleTime15mRef.current = last.time;\n currentCandle15mRef.current = last;\n console.log(`✅ [Chart-Init] 15m refs initialized from DB: close=$${last.close.toFixed(2)}`);\n }\n }).catch(() => {});\n }\n if (currentTimeFrame.seconds !== 3600) {\n loadCandles(3600).then(candles => {\n if (candles.length > 0) {\n candles1hRef.current = candles;\n const last = candles[candles.length - 1];\n lastCandleTime1hRef.current = last.time;\n currentCandle1hRef.current = last;\n console.log(`✅ [Chart-Init] 1h refs initialized from DB: close=$${last.close.toFixed(2)}`);\n }\n }).catch(() => {});\n }\n if (currentTimeFrame.seconds !== 14400) {\n loadCandles(14400).then(candles => {\n if (candles.length > 0) {\n candles4hRef.current = candles;\n const last = candles[candles.length - 1];\n lastCandleTime4hRef.current = last.time;\n currentCandle4hRef.current = last;\n console.log(`✅ [Chart-Init] 4h refs initialized from DB: close=$${last.close.toFixed(2)}`);\n }\n }).catch(() => {});\n }\n if (currentTimeFrame.seconds !== 86400) {\n loadCandles(86400).then(candles => {\n if (candles.length > 0) {\n candles1dRef.current = candles;\n const last = candles[candles.length - 1];\n lastCandleTime1dRef.current = last.time;\n currentCandle1dRef.current = last;\n console.log(`✅ [Chart-Init] 1d refs initialized from DB: close=$${last.close.toFixed(2)}`);\n }\n }).catch(() => {});\n }\n }\n setLoading(false);\n }).catch(error => {\n console.error(`❌ [Chart-${currentTimeFrame.label}] Load error:`, error);\n setLoading(false);\n });\n \n // Resize handler\n const handleResize = () => {\n if (chartContainerRef.current) {\n chart.applyOptions({ width: chartContainerRef.current.clientWidth });\n }\n };\n \n window.addEventListener('resize', handleResize);\n handleResize();\n \n return () => {\n window.removeEventListener('resize', handleResize);\n chart.remove();\n };\n }, [mint, loadCandles, formatMarketCap, currentTimeFrame, ticker]);\n\n // Handle timeframe switching\n const handleTimeFrameChange = useCallback(async (timeFrameValue: string) => {\n const newTimeFrame = timeFrames.find(tf => tf.value === timeFrameValue);\n if (newTimeFrame && newTimeFrame.value !== currentTimeFrame.value) {\n // Prevent multiple simultaneous switches\n if (timeframeLoading) {\n console.log(`⚠️ [Chart] Timeframe switch already in progress, ignoring ${newTimeFrame.label}`);\n return;\n }\n \n console.log(`🔄 [Chart] Switching to ${newTimeFrame.label}`);\n \n // Set timeframe-specific loading state\n setTimeframeLoading(true);\n setLoadingTimeframe(newTimeFrame.label);\n setLoading(true);\n \n // DON'T clear the chart - keep old data visible while loading new timeframe\n // This prevents the \"disappearing candles\" issue\n \n try {\n // Check if we have cached candles (using refs to prevent function recreation)\n let candles: CandleData[] = [];\n switch (newTimeFrame.seconds) {\n case 60: candles = candles1mRef.current; break;\n case 300: candles = candles5mRef.current; break;\n case 900: candles = candles15mRef.current; break;\n case 3600: candles = candles1hRef.current; break;\n case 14400: candles = candles4hRef.current; break;\n case 86400: candles = candles1dRef.current; break;\n }\n \n if (candles.length > 0) {\n // Use cached BUT update current candle with latest market cap\n console.log(`✅ [Chart] Using ${candles.length} cached ${newTimeFrame.label} candles`);\n \n let finalCandles = candles;\n let lastCandle = candles[candles.length - 1];\n \n // CRITICAL: Update the current period candle with latest market cap\n if (currentMarketCapRef.current > 0) {\n const currentTime = Math.floor(Date.now() / 1000);\n const currentBucket = Math.floor(currentTime / newTimeFrame.seconds) * newTimeFrame.seconds;\n \n if (lastCandle && lastCandle.time === currentBucket) {\n // Update the last candle with current market cap\n // CRITICAL FIX: Preserve minimum body size to prevent disappearing candle body\n const minBodySize = Math.max(lastCandle.open * 0.0001, 0.01);\n const priceDiff = Math.abs(lastCandle.open - currentMarketCapRef.current);\n let closePrice = currentMarketCapRef.current;\n \n // If body would be invisible, preserve minimum body size\n if (priceDiff < minBodySize && lastCandle.open > 0) {\n const direction = currentMarketCapRef.current >= lastCandle.open ? 1 : -1;\n closePrice = lastCandle.open + (direction * minBodySize);\n }\n \n const updatedCandle: CandleData = {\n ...lastCandle,\n high: Math.max(lastCandle.high, currentMarketCapRef.current, closePrice),\n low: Math.min(lastCandle.low, currentMarketCapRef.current, closePrice),\n close: closePrice\n };\n \n // Update in the candles array\n finalCandles = [...candles];\n finalCandles[finalCandles.length - 1] = updatedCandle;\n lastCandle = updatedCandle;\n \n console.log(`🔄 [Chart] Updated current ${newTimeFrame.label} candle with latest MC: $${currentMarketCapRef.current.toFixed(2)}`);\n }\n }\n \n // CRITICAL: Update STATE and refs for the timeframe being switched to\n // This ensures the candles persist when switching back\n switch (newTimeFrame.seconds) {\n case 60: \n setCandles1m(finalCandles);\n setLastCandleTime1m(lastCandle.time);\n setCurrentCandle1m(lastCandle);\n candles1mRef.current = finalCandles;\n lastCandleTime1mRef.current = lastCandle.time;\n currentCandle1mRef.current = lastCandle;\n break;\n case 300: \n setCandles5m(finalCandles);\n setLastCandleTime5m(lastCandle.time);\n setCurrentCandle5m(lastCandle);\n candles5mRef.current = finalCandles;\n lastCandleTime5mRef.current = lastCandle.time;\n currentCandle5mRef.current = lastCandle;\n break;\n case 900: \n setCandles15m(finalCandles);\n setLastCandleTime15m(lastCandle.time);\n setCurrentCandle15m(lastCandle);\n candles15mRef.current = finalCandles;\n lastCandleTime15mRef.current = lastCandle.time;\n currentCandle15mRef.current = lastCandle;\n break;\n case 3600: \n setCandles1h(finalCandles);\n setLastCandleTime1h(lastCandle.time);\n setCurrentCandle1h(lastCandle);\n candles1hRef.current = finalCandles;\n lastCandleTime1hRef.current = lastCandle.time;\n currentCandle1hRef.current = lastCandle;\n break;\n case 14400: \n setCandles4h(finalCandles);\n setLastCandleTime4h(lastCandle.time);\n setCurrentCandle4h(lastCandle);\n candles4hRef.current = finalCandles;\n lastCandleTime4hRef.current = lastCandle.time;\n currentCandle4hRef.current = lastCandle;\n break;\n case 86400: \n setCandles1d(finalCandles);\n setLastCandleTime1d(lastCandle.time);\n setCurrentCandle1d(lastCandle);\n candles1dRef.current = finalCandles;\n lastCandleTime1dRef.current = lastCandle.time;\n currentCandle1dRef.current = lastCandle;\n break;\n }\n \n // Display on chart FIRST (while still showing old timeframe)\n if (seriesRef.current) {\n seriesRef.current.setData(finalCandles.map(c => ({ ...c, time: c.time as Time })));\n }\n \n // Use setTimeout to defer timeframe switch and loading off\n // This ensures smooth transition and prevents flickering\n setTimeout(() => {\n setCurrentTimeFrame(newTimeFrame);\n setLoading(false);\n setTimeframeLoading(false);\n setLoadingTimeframe(null);\n console.log(`✅ [Chart] Switched to ${newTimeFrame.label} with ${finalCandles.length} cached candles`);\n }, 0);\n } else {\n // Load from database\n console.log(`📊 [Chart] Loading ${newTimeFrame.label} candles`);\n const loaded = await loadCandles(newTimeFrame.seconds);\n \n if (loaded.length > 0) {\n let lastCandle = loaded[loaded.length - 1];\n let finalCandles = loaded;\n \n // CRITICAL: Update the last candle with current market cap if it's the current period\n if (currentMarketCapRef.current > 0) {\n const currentTime = Math.floor(Date.now() / 1000);\n const currentBucket = Math.floor(currentTime / newTimeFrame.seconds) * newTimeFrame.seconds;\n \n if (lastCandle.time === currentBucket) {\n // Update the last candle with current market cap\n // CRITICAL FIX: Preserve minimum body size to prevent disappearing candle body\n const minBodySize = Math.max(lastCandle.open * 0.0001, 0.01);\n const priceDiff = Math.abs(lastCandle.open - currentMarketCapRef.current);\n let closePrice = currentMarketCapRef.current;\n \n // If body would be invisible, preserve minimum body size\n if (priceDiff < minBodySize && lastCandle.open > 0) {\n const direction = currentMarketCapRef.current >= lastCandle.open ? 1 : -1;\n closePrice = lastCandle.open + (direction * minBodySize);\n }\n \n lastCandle = {\n ...lastCandle,\n high: Math.max(lastCandle.high, currentMarketCapRef.current, closePrice),\n low: Math.min(lastCandle.low, currentMarketCapRef.current, closePrice),\n close: closePrice\n };\n \n finalCandles = [...loaded];\n finalCandles[finalCandles.length - 1] = lastCandle;\n \n console.log(`🔄 [Chart] Updated loaded ${newTimeFrame.label} candle with current MC: $${currentMarketCapRef.current.toFixed(2)}`);\n }\n }\n \n // Set candles AND initialize lastCandleTime + currentCandle for each timeframe\n // Also update refs immediately for synchronization\n switch (newTimeFrame.seconds) {\n case 60: \n setCandles1m(finalCandles);\n setLastCandleTime1m(lastCandle.time);\n setCurrentCandle1m(lastCandle);\n // Sync refs immediately\n candles1mRef.current = finalCandles;\n lastCandleTime1mRef.current = lastCandle.time;\n currentCandle1mRef.current = lastCandle;\n break;\n case 300: \n setCandles5m(finalCandles);\n setLastCandleTime5m(lastCandle.time);\n setCurrentCandle5m(lastCandle);\n // Sync refs immediately\n candles5mRef.current = finalCandles;\n lastCandleTime5mRef.current = lastCandle.time;\n currentCandle5mRef.current = lastCandle;\n break;\n case 900: \n setCandles15m(finalCandles);\n setLastCandleTime15m(lastCandle.time);\n setCurrentCandle15m(lastCandle);\n // Sync refs immediately\n candles15mRef.current = finalCandles;\n lastCandleTime15mRef.current = lastCandle.time;\n currentCandle15mRef.current = lastCandle;\n break;\n case 3600: \n setCandles1h(finalCandles);\n setLastCandleTime1h(lastCandle.time);\n setCurrentCandle1h(lastCandle);\n // Sync refs immediately\n candles1hRef.current = finalCandles;\n lastCandleTime1hRef.current = lastCandle.time;\n currentCandle1hRef.current = lastCandle;\n break;\n case 14400: \n setCandles4h(finalCandles);\n setLastCandleTime4h(lastCandle.time);\n setCurrentCandle4h(lastCandle);\n // Sync refs immediately\n candles4hRef.current = finalCandles;\n lastCandleTime4hRef.current = lastCandle.time;\n currentCandle4hRef.current = lastCandle;\n break;\n case 86400: \n setCandles1d(finalCandles);\n setLastCandleTime1d(lastCandle.time);\n setCurrentCandle1d(lastCandle);\n // Sync refs immediately\n candles1dRef.current = finalCandles;\n lastCandleTime1dRef.current = lastCandle.time;\n currentCandle1dRef.current = lastCandle;\n break;\n }\n \n // Display on chart FIRST\n if (seriesRef.current) {\n seriesRef.current.setData(finalCandles.map(c => ({ ...c, time: c.time as Time })));\n }\n \n // Use setTimeout to defer timeframe switch and loading off\n // This ensures smooth transition and prevents flickering\n setTimeout(() => {\n setCurrentTimeFrame(newTimeFrame);\n setLoading(false);\n setTimeframeLoading(false);\n setLoadingTimeframe(null);\n console.log(`✅ [Chart] Switched to ${newTimeFrame.label} with ${finalCandles.length} loaded candles`);\n }, 0);\n } else {\n // No data loaded, switch timeframe anyway\n setTimeout(() => {\n setCurrentTimeFrame(newTimeFrame);\n setLoading(false);\n setTimeframeLoading(false);\n setLoadingTimeframe(null);\n console.log(`⚠️ [Chart] No candles loaded for ${newTimeFrame.label}`);\n }, 0);\n }\n }\n } catch (error) {\n console.error(`❌ [Chart] Switch error:`, error);\n // Still switch timeframe even if there was an error\n setTimeout(() => {\n setCurrentTimeFrame(newTimeFrame);\n setLoading(false);\n setTimeframeLoading(false);\n setLoadingTimeframe(null);\n }, 0);\n }\n // NOTE: setLoading(false) is now handled in setTimeout callbacks above\n }\n }, [timeFrames, currentTimeFrame, loadCandles, timeframeLoading]);\n\n // Real-time updates - UPDATE ALL TIMEFRAMES INDEPENDENTLY with improved performance\n useEffect(() => {\n if (!mint || !seriesRef.current || realTimeMarketCap <= 0) return;\n \n // Additional validation for market cap data\n if (!isFinite(realTimeMarketCap) || realTimeMarketCap <= 0) {\n console.warn(`⚠️ [Chart-Isolated] Invalid market cap data: ${realTimeMarketCap}`);\n return;\n }\n \n console.log(`💰 [Chart-Isolated] Real-time update: $${realTimeMarketCap.toFixed(2)}`);\n \n const timestamp = Date.now();\n \n // Update ALL timeframes independently (no aggregation)\n // Use requestAnimationFrame to batch updates and prevent blocking\n requestAnimationFrame(() => {\n createOrUpdate1m(realTimeMarketCap, timestamp);\n createOrUpdate5m(realTimeMarketCap, timestamp);\n createOrUpdate15m(realTimeMarketCap, timestamp);\n createOrUpdate1h(realTimeMarketCap, timestamp);\n createOrUpdate4h(realTimeMarketCap, timestamp);\n createOrUpdate1d(realTimeMarketCap, timestamp);\n \n setCurrentMarketCap(realTimeMarketCap);\n setLoading(false);\n \n // Update chart for current timeframe with validation\n const currentCandles = getCurrentCandles();\n if (currentCandles.length > 0) {\n // Validate candles before displaying\n const validCandles = currentCandles.filter(candle => \n candle && \n candle.open > 0 && \n candle.high > 0 && \n candle.low > 0 && \n candle.close > 0 &&\n isFinite(candle.open) &&\n isFinite(candle.high) &&\n isFinite(candle.low) &&\n isFinite(candle.close)\n );\n \n if (validCandles.length > 0 && seriesRef.current) {\n seriesRef.current.setData(validCandles.map(c => ({ ...c, time: c.time as Time })));\n \n requestAnimationFrame(() => {\n if (chartRef.current) {\n chartRef.current.timeScale().scrollToRealTime();\n }\n });\n }\n }\n });\n }, [mint, realTimeMarketCap, createOrUpdate1m, createOrUpdate5m, createOrUpdate15m, createOrUpdate1h, createOrUpdate4h, createOrUpdate1d, getCurrentCandles]);\n // Note: createOrUpdate and getCurrentCandles functions are now stable so they won't cause infinite loops\n\n // Listen to backend's multi-timeframe candles\n useEffect(() => {\n if (!socket || !isConnected || !mint) return;\n\n const handleMultiTimeframeCandles = (data: any) => {\n if (data.mint !== mint) return;\n \n console.log(`📡 [Chart-Isolated] Received multi-timeframe candles from backend for ${mint}`, data.candles ? Object.keys(data.candles) : 'no candles');\n \n // Backend sends pre-calculated candles for all timeframes\n // Data structure: { mint, candles: { '1m': {time, open, high, low, close, volume}, '5m': {...}, etc. } }\n if (data.candles) {\n const candles = data.candles;\n \n // Helper function to directly update candle with full OHLC data from backend\n const directUpdateCandle = (timeframeSeconds: number, backendCandle: any) => {\n // CRITICAL: Only update if this candle is for the current bucket\n // Calculate current bucket based on current time\n const currentTime = Math.floor(Date.now() / 1000);\n const currentBucket = Math.floor(currentTime / timeframeSeconds) * timeframeSeconds;\n \n // STRICT CHECK: Only update if backend candle time matches current bucket\n if (backendCandle.time !== currentBucket) {\n console.warn(`⚠️ [Chart-Socket] Skipping backend update for historical candle: time=${backendCandle.time}, currentBucket=${currentBucket}, timeframe=${timeframeSeconds}s`);\n return; // Don't update historical candles\n }\n \n // CRITICAL FIX: Ensure backend candles preserve minimum body size\n // This prevents invisible candles even if backend sends open = close\n let openPrice = backendCandle.open;\n let closePrice = backendCandle.close;\n const minBodySize = Math.max(openPrice * 0.0001, 0.01); // 0.01% minimum body size\n const priceDiff = Math.abs(openPrice - closePrice);\n \n // CRITICAL: Check if we already have a candle with minimum body size for this timeframe\n // Get current candle ref based on timeframe\n let existingCandle: CandleData | null = null;\n switch (timeframeSeconds) {\n case 60:\n existingCandle = currentCandle1mRef.current;\n break;\n case 300:\n existingCandle = currentCandle5mRef.current;\n break;\n case 900:\n existingCandle = currentCandle15mRef.current;\n break;\n case 3600:\n existingCandle = currentCandle1hRef.current;\n break;\n case 14400:\n existingCandle = currentCandle4hRef.current;\n break;\n case 86400:\n existingCandle = currentCandle1dRef.current;\n break;\n }\n \n // Check if existing candle has minimum body size and same time bucket\n const hasExistingMinBody = existingCandle && \n existingCandle.time === backendCandle.time &&\n existingCandle.open > 0;\n \n if (hasExistingMinBody && existingCandle) {\n const existingBodySize = Math.abs(existingCandle.close - existingCandle.open);\n const hasMinimumBody = existingBodySize >= minBodySize * 0.5 && existingBodySize <= minBodySize * 2.0;\n \n // If existing candle has minimum body, preserve it unless backend price moved significantly\n if (hasMinimumBody) {\n const backendPriceDiff = Math.abs(existingCandle.open - closePrice);\n // Only use backend price if it moved significantly (more than 2x minBodySize)\n if (backendPriceDiff < minBodySize * 2) {\n // Preserve existing minimum body size\n closePrice = existingCandle.close;\n openPrice = existingCandle.open; // Ensure open matches\n console.log(`🛡️ [Chart] Preserving minimum body size for ${timeframeSeconds}s candle from frontend`);\n } else {\n // Backend price moved significantly - use it but ensure minimum body\n if (priceDiff < minBodySize) {\n const direction = closePrice >= openPrice ? 1 : -1;\n closePrice = openPrice + (direction * minBodySize);\n }\n }\n } else {\n // Existing candle doesn't have min body - apply minimum if needed\n if (priceDiff < minBodySize && openPrice > 0) {\n const direction = closePrice >= openPrice ? 1 : -1;\n closePrice = openPrice + (direction * minBodySize);\n }\n }\n } else {\n // No existing candle or different time bucket - apply minimum body size if needed\n if (priceDiff < minBodySize && openPrice > 0) {\n const direction = closePrice >= openPrice ? 1 : -1;\n closePrice = openPrice + (direction * minBodySize);\n }\n }\n \n // Additional safety: Always ensure body is at least minimum size\n const finalBodySize = Math.abs(closePrice - openPrice);\n if (finalBodySize < minBodySize && openPrice > 0) {\n const direction = (closePrice >= openPrice) || \n (existingCandle && existingCandle.close >= existingCandle.open) ? 1 : -1;\n closePrice = openPrice + (direction * minBodySize);\n }\n \n const candleData: CandleData = {\n time: backendCandle.time,\n open: openPrice,\n high: Math.max(backendCandle.high || openPrice, openPrice, closePrice),\n low: Math.min(backendCandle.low || openPrice, openPrice, closePrice),\n close: closePrice,\n volume: backendCandle.volume || 0\n };\n \n // DOUBLE CHECK: Verify candle time matches current bucket before updating\n if (candleData.time !== currentBucket) {\n console.warn(`⚠️ [Chart-Socket] Prevented update: candle time ${candleData.time} doesn't match current bucket ${currentBucket}`);\n return;\n }\n \n // Directly update the appropriate timeframe's state with full OHLC\n switch (timeframeSeconds) {\n case 60:\n currentCandle1mRef.current = candleData;\n lastCandleTime1mRef.current = candleData.time;\n setCurrentCandle1m(candleData);\n setLastCandleTime1m(candleData.time);\n setCandles1m(prev => {\n // Only update if it matches current bucket\n const existingIndex = prev.findIndex(c => c.time === currentBucket);\n if (existingIndex >= 0 && prev[existingIndex].time === currentBucket) {\n const updated = [...prev];\n updated[existingIndex] = candleData;\n candles1mRef.current = updated;\n return updated;\n }\n // Only add if it matches current bucket\n if (candleData.time === currentBucket) {\n const newData = [...prev, candleData].sort((a, b) => a.time - b.time);\n candles1mRef.current = newData;\n return newData;\n }\n return prev;\n });\n break;\n case 300:\n currentCandle5mRef.current = candleData;\n lastCandleTime5mRef.current = candleData.time;\n setCurrentCandle5m(candleData);\n setLastCandleTime5m(candleData.time);\n setCandles5m(prev => {\n // Only update if it matches current bucket\n const existingIndex = prev.findIndex(c => c.time === currentBucket);\n if (existingIndex >= 0 && prev[existingIndex].time === currentBucket) {\n const updated = [...prev];\n updated[existingIndex] = candleData;\n candles5mRef.current = updated;\n return updated;\n }\n // Only add if it matches current bucket\n if (candleData.time === currentBucket) {\n const newData = [...prev, candleData].sort((a, b) => a.time - b.time);\n candles5mRef.current = newData;\n return newData;\n }\n return prev;\n });\n break;\n case 900:\n currentCandle15mRef.current = candleData;\n lastCandleTime15mRef.current = candleData.time;\n setCurrentCandle15m(candleData);\n setLastCandleTime15m(candleData.time);\n setCandles15m(prev => {\n // Only update if it matches current bucket\n const existingIndex = prev.findIndex(c => c.time === currentBucket);\n if (existingIndex >= 0 && prev[existingIndex].time === currentBucket) {\n const updated = [...prev];\n updated[existingIndex] = candleData;\n candles15mRef.current = updated;\n return updated;\n }\n // Only add if it matches current bucket\n if (candleData.time === currentBucket) {\n const newData = [...prev, candleData].sort((a, b) => a.time - b.time);\n candles15mRef.current = newData;\n return newData;\n }\n return prev;\n });\n break;\n case 3600:\n currentCandle1hRef.current = candleData;\n lastCandleTime1hRef.current = candleData.time;\n setCurrentCandle1h(candleData);\n setLastCandleTime1h(candleData.time);\n setCandles1h(prev => {\n // Only update if it matches current bucket\n const existingIndex = prev.findIndex(c => c.time === currentBucket);\n if (existingIndex >= 0 && prev[existingIndex].time === currentBucket) {\n const updated = [...prev];\n updated[existingIndex] = candleData;\n candles1hRef.current = updated;\n return updated;\n }\n // Only add if it matches current bucket\n if (candleData.time === currentBucket) {\n const newData = [...prev, candleData].sort((a, b) => a.time - b.time);\n candles1hRef.current = newData;\n return newData;\n }\n return prev;\n });\n break;\n case 14400:\n currentCandle4hRef.current = candleData;\n lastCandleTime4hRef.current = candleData.time;\n setCurrentCandle4h(candleData);\n setLastCandleTime4h(candleData.time);\n setCandles4h(prev => {\n // Only update if it matches current bucket\n const existingIndex = prev.findIndex(c => c.time === currentBucket);\n if (existingIndex >= 0 && prev[existingIndex].time === currentBucket) {\n const updated = [...prev];\n updated[existingIndex] = candleData;\n candles4hRef.current = updated;\n return updated;\n }\n // Only add if it matches current bucket\n if (candleData.time === currentBucket) {\n const newData = [...prev, candleData].sort((a, b) => a.time - b.time);\n candles4hRef.current = newData;\n return newData;\n }\n return prev;\n });\n break;\n case 86400:\n currentCandle1dRef.current = candleData;\n lastCandleTime1dRef.current = candleData.time;\n setCurrentCandle1d(candleData);\n setLastCandleTime1d(candleData.time);\n setCandles1d(prev => {\n // Only update if it matches current bucket\n const existingIndex = prev.findIndex(c => c.time === currentBucket);\n if (existingIndex >= 0 && prev[existingIndex].time === currentBucket) {\n const updated = [...prev];\n updated[existingIndex] = candleData;\n candles1dRef.current = updated;\n return updated;\n }\n // Only add if it matches current bucket\n if (candleData.time === currentBucket) {\n const newData = [...prev, candleData].sort((a, b) => a.time - b.time);\n candles1dRef.current = newData;\n return newData;\n }\n return prev;\n });\n break;\n }\n };\n \n // Update each timeframe with backend's FULL candle data (not just close price!)\n if (candles['1m']) {\n directUpdateCandle(60, candles['1m']);\n console.log(`✅ [Chart-Isolated] Updated 1m from backend with full OHLC`);\n }\n \n if (candles['5m']) {\n directUpdateCandle(300, candles['5m']);\n console.log(`✅ [Chart-Isolated] Updated 5m from backend with full OHLC`);\n }\n \n if (candles['15m']) {\n directUpdateCandle(900, candles['15m']);\n console.log(`✅ [Chart-Isolated] Updated 15m from backend with full OHLC`);\n }\n \n if (candles['1h']) {\n directUpdateCandle(3600, candles['1h']);\n console.log(`✅ [Chart-Isolated] Updated 1h from backend with full OHLC`);\n }\n \n if (candles['4h']) {\n directUpdateCandle(14400, candles['4h']);\n console.log(`✅ [Chart-Isolated] Updated 4h from backend with full OHLC`);\n }\n \n if (candles['1d']) {\n directUpdateCandle(86400, candles['1d']);\n console.log(`✅ [Chart-Isolated] Updated 1d from backend with full OHLC`);\n }\n \n // Update chart display for current timeframe\n const currentCandles = getCurrentCandles();\n if (currentCandles.length > 0 && seriesRef.current) {\n seriesRef.current.setData(currentCandles.map(c => ({ ...c, time: c.time as Time })));\n \n requestAnimationFrame(() => {\n if (chartRef.current) {\n chartRef.current.timeScale().scrollToRealTime();\n }\n });\n }\n }\n };\n\n // Listen for multi-timeframe candles from backend (correct event name!)\n socket.on('multiTimeframeCandleUpdate', handleMultiTimeframeCandles);\n \n return () => {\n socket.off('multiTimeframeCandleUpdate', handleMultiTimeframeCandles);\n };\n }, [socket, isConnected, mint, getCurrentCandles]);\n\n // Loading timeout\n useEffect(() => {\n const currentCandles = getCurrentCandles();\n if ((loading || analyticsLoading) && currentCandles.length === 0) {\n const timeout = setTimeout(() => setLoading(false), 10000);\n return () => clearTimeout(timeout);\n }\n }, [loading, analyticsLoading, getCurrentCandles]);\n\n if (error) {\n return (\n <div className=\"p-4 bg-red-50 border border-red-200 rounded-lg\">\n <div className=\"text-red-800 font-medium\">Chart Error</div>\n <div className=\"text-red-600 text-sm\">{error}</div>\n <button \n onClick={() => setError(null)}\n className=\"mt-2 px-3 py-1 bg-red-100 text-red-700 rounded text-sm hover:bg-red-200\"\n >\n Dismiss\n </button>\n </div>\n );\n }\n\n const currentCandles = getCurrentCandles();\n\n return (\n <div className=\"w-full\">\n {/* Timeframe Selector */}\n <div className=\"mb-4 flex flex-wrap gap-2 items-center\">\n <div className=\"flex flex-wrap gap-2\">\n {timeFrames.map((tf) => {\n const isCurrentTimeframe = currentTimeFrame.value === tf.value;\n const isCurrentlyLoading = timeframeLoading && loadingTimeframe === tf.label;\n const isDisabled = timeframeLoading;\n \n return (\n <button\n key={tf.value}\n onClick={() => handleTimeFrameChange(tf.value)}\n disabled={isDisabled}\n className={`\n px-3 py-2 rounded-lg text-sm font-medium transition-all duration-200 relative\n ${isCurrentTimeframe\n ? 'bg-blue-600 text-white'\n : isDisabled\n ? 'bg-gray-100 text-gray-400 cursor-not-allowed'\n : 'bg-gray-100 text-gray-700 hover:bg-gray-200'\n }\n ${isCurrentlyLoading ? 'animate-pulse' : ''}\n `}\n >\n {isCurrentlyLoading && (\n <div className=\"absolute inset-0 flex items-center justify-center\">\n <div className=\"flex space-x-1\">\n <div className=\"w-1 h-1 bg-white rounded-full animate-pulse\"></div>\n <div className=\"w-1 h-1 bg-white rounded-full animate-pulse\" style={{animationDelay: '0.1s'}}></div>\n <div className=\"w-1 h-1 bg-white rounded-full animate-pulse\" style={{animationDelay: '0.2s'}}></div>\n </div>\n </div>\n )}\n <span className={isCurrentlyLoading ? 'opacity-0' : 'opacity-100'}>\n {tf.label}\n </span>\n </button>\n );\n })}\n </div>\n \n {/* Status */}\n <div className=\"ml-auto flex items-center gap-2 text-sm\">\n <div className={`w-2 h-2 rounded-full ${analyticsConnected ? 'bg-green-500' : 'bg-red-500'}`}></div>\n <span className={analyticsConnected ? 'text-green-600' : 'text-red-600'}>\n {analyticsConnected ? 'Connected' : 'Disconnected'}\n </span>\n {timeframeLoading && loadingTimeframe && (\n <span className=\"text-blue-600\">• Switching to {loadingTimeframe}...</span>\n )}\n {!timeframeLoading && loading && !analyticsLoading && (\n <span className=\"text-blue-600\">• Loading candles...</span>\n )}\n {analyticsLoading && (\n <span className=\"text-blue-600\">• Connecting to analytics...</span>\n )}\n {!timeframeLoading && !loading && !analyticsLoading && currentCandles.length > 0 && (\n <span className=\"text-green-600\">\n • {currentCandles.length} {currentTimeFrame.label} candles • {formatMarketCap(currentMarketCap)}\n </span>\n )}\n </div>\n </div>\n \n {/* Chart Container */}\n <div \n ref={chartContainerRef} \n className={`relative w-full h-96 transition-all duration-300 ${\n timeframeLoading \n ? 'opacity-75 scale-[0.98]' \n : 'opacity-100 scale-100'\n }`}\n >\n {/* Loading Overlay */}\n {(timeframeLoading || (loading && !analyticsLoading)) && (\n <div className=\"absolute inset-0 bg-gradient-to-br from-white via-blue-50 to-white bg-opacity-90 flex items-center justify-center rounded-lg z-10 backdrop-blur-sm\">\n <div className=\"text-center\">\n <div className=\"flex justify-center items-center mb-4\">\n <div className=\"relative\">\n <div className=\"w-12 h-12 border-4 border-blue-200 rounded-full\"></div>\n <div className=\"absolute top-0 left-0 w-12 h-12 border-4 border-blue-600 rounded-full border-t-transparent animate-spin\"></div>\n </div>\n </div>\n <div className=\"text-gray-700 font-medium text-lg\">\n {timeframeLoading && loadingTimeframe \n ? `Switching to ${loadingTimeframe} timeframe...`\n : 'Loading real-time data...'\n }\n </div>\n <div className=\"mt-3 flex justify-center space-x-1\">\n <div className=\"w-2 h-2 bg-blue-600 rounded-full animate-bounce\"></div>\n <div className=\"w-2 h-2 bg-blue-600 rounded-full animate-bounce\" style={{animationDelay: '0.1s'}}></div>\n <div className=\"w-2 h-2 bg-blue-600 rounded-full animate-bounce\" style={{animationDelay: '0.2s'}}></div>\n </div>\n </div>\n </div>\n )}\n \n {/* No Data State */}\n {!timeframeLoading && !loading && !analyticsLoading && currentCandles.length === 0 && (\n <div className=\"absolute inset-0 bg-white bg-opacity-75 flex items-center justify-center rounded-lg z-10\">\n <div className=\"text-center\">\n <div className=\"text-gray-600 mb-2\">No {currentTimeFrame.label} market data available</div>\n <div className=\"text-sm text-gray-500\">Waiting for real-time data...</div>\n </div>\n </div>\n )}\n </div>\n </div>\n );\n};\n\nexport default FunhiChart;\n","/**\r\n * Candle Aggregation Utility\r\n * \r\n * Client-side aggregation of 1-minute candles into larger timeframes\r\n * This provides real-time aggregation without waiting for server responses\r\n */\r\n\r\nexport interface CandleData {\r\n time: number;\r\n open: number;\r\n high: number;\r\n low: number;\r\n close: number;\r\n volume: number;\r\n}\r\n\r\nexport interface TimeFrame {\r\n label: string;\r\n value: string;\r\n seconds: number;\r\n}\r\n\r\nclass CandleAggregation {\r\n private timeframes: Record<string, number> = {\r\n '1m': 60,\r\n '5m': 300,\r\n '15m': 900,\r\n '30m': 1800,\r\n '1h': 3600,\r\n '4h': 14400,\r\n '1d': 86400\r\n };\r\n\r\n /**\r\n * Aggregate 1-minute candles into a larger timeframe\r\n */\r\n aggregateCandles(oneMinuteCandles: CandleData[], targetTimeframe: number): CandleData[] {\r\n try {\r\n // If requesting 1-minute data, return as-is\r\n if (targetTimeframe === 60) {\r\n return oneMinuteCandles;\r\n }\r\n\r\n // Validate input\r\n if (!Array.isArray(oneMinuteCandles) || oneMinuteCandles.length === 0) {\r\n console.warn('⚠️ [CandleAggregation] No candles to aggregate');\r\n return [];\r\n }\r\n\r\n // Sort candles by time ascending\r\n const sortedCandles = [...oneMinuteCandles].sort((a, b) => a.time - b.time);\r\n\r\n // Group candles by target timeframe\r\n const aggregatedCandles: CandleData[] = [];\r\n let currentGroup: CandleData[] = [];\r\n let groupStartTime: number | null = null;\r\n\r\n for (const candle of sortedCandles) {\r\n // Calculate which timeframe bucket this candle belongs to\r\n const bucketTime = Math.floor(candle.time / targetTimeframe) * targetTimeframe;\r\n\r\n if (groupStartTime === null) {\r\n groupStartTime = bucketTime;\r\n }\r\n\r\n if (bucketTime === groupStartTime) {\r\n // Add to current group\r\n currentGroup.push(candle);\r\n } else {\r\n // Process current group and start new one\r\n if (currentGroup.length > 0) {\r\n const aggregated = this.aggregateGroup(currentGroup, groupStartTime);\r\n aggregatedCandles.push(aggregated);\r\n }\r\n\r\n // Start new group\r\n currentGroup = [candle];\r\n groupStartTime = bucketTime;\r\n }\r\n }\r\n\r\n // Process last group\r\n if (currentGroup.length > 0 && groupStartTime !== null) {\r\n const aggregated = this.aggregateGroup(currentGroup, groupStartTime);\r\n aggregatedCandles.push(aggregated);\r\n }\r\n\r\n console.log(`📊 [CandleAggregation] Aggregated ${oneMinuteCandles.length} 1m candles into ${aggregatedCandles.length} ${this.getTimeframeLabel(targetTimeframe)} candles`);\r\n\r\n return aggregatedCandles;\r\n\r\n } catch (error) {\r\n console.error('❌ [CandleAggregation] Error aggregating candles:', error);\r\n return [];\r\n }\r\n }\r\n\r\n /**\r\n * Aggregate a group of candles into a single candle\r\n */\r\n private aggregateGroup(candles: CandleData[], time: number): CandleData {\r\n // Sort by time to ensure proper OHLC calculation\r\n const sorted = [...candles].sort((a, b) => a.time - b.time);\r\n\r\n // Calculate OHLC\r\n const open = sorted[0].open;\r\n const close = sorted[sorted.length - 1].close;\r\n const high = Math.max(...sorted.map(c => c.high));\r\n const low = Math.min(...sorted.map(c => c.low));\r\n const volume = sorted.reduce((sum, c) => sum + (c.volume || 0), 0);\r\n\r\n return {\r\n time,\r\n open,\r\n high,\r\n low,\r\n close,\r\n volume\r\n };\r\n }\r\n\r\n /**\r\n * Get human-readable timeframe label\r\n */\r\n getTimeframeLabel(seconds: number): string {\r\n for (const [label, value] of Object.entries(this.timeframes)) {\r\n if (value === seconds) {\r\n return label;\r\n }\r\n }\r\n return `${seconds}s`;\r\n }\r\n\r\n /**\r\n * Get timeframe in seconds from label\r\n */\r\n getTimeframeSeconds(label: string): number {\r\n return this.timeframes[label] || 60;\r\n }\r\n\r\n /**\r\n * Fill gaps in candles with flat candles (same OHLC)\r\n * This ensures continuous chart rendering\r\n */\r\n fillGaps(candles: CandleData[], timeframe: number): CandleData[] {\r\n try {\r\n if (!Array.isArray(candles) || candles.length < 2) {\r\n return candles;\r\n }\r\n\r\n const sorted = [...candles].sort((a, b) => a.time - b.time);\r\n const filled: CandleData[] = [];\r\n\r\n for (let i = 0; i < sorted.length - 1; i++) {\r\n const current = sorted[i];\r\n const next = sorted[i + 1];\r\n\r\n filled.push(current);\r\n\r\n // Check for gap\r\n const expectedNextTime = current.time + timeframe;\r\n let currentTime = expectedNextTime;\r\n\r\n while (currentTime < next.time) {\r\n // Fill gap with flat candle using last known price\r\n filled.push({\r\n time: currentTime,\r\n open: current.close,\r\n high: current.close,\r\n low: current.close,\r\n close: current.close,\r\n volume: 0\r\n });\r\n\r\n currentTime += timeframe;\r\n }\r\n }\r\n\r\n // Add last candle\r\n filled.push(sorted[sorted.length - 1]);\r\n\r\n if (filled.length > sorted.length) {\r\n console.log(`🔧 [CandleAggregation] Filled ${filled.length - sorted.length} gaps in ${this.getTimeframeLabel(timeframe)} candles`);\r\n }\r\n\r\n return filled;\r\n\r\n } catch (error) {\r\n console.error('❌ [CandleAggregation] Error filling gaps:', error);\r\n return candles;\r\n }\r\n }\r\n\r\n /**\r\n * Get the current incomplete candle for a timeframe\r\n * This is used for real-time updates\r\n */\r\n getCurrentCandle(oneMinuteCandles: CandleData[], targetTimeframe: number): CandleData | null {\r\n try {\r\n if (!Array.isArray(oneMinuteCandles) || oneMinuteCandles.length === 0) {\r\n return null;\r\n }\r\n\r\n const now = Math.floor(Date.now() / 1000);\r\n const currentBucket = Math.floor(now / targetTimeframe) * targetTimeframe;\r\n\r\n // Get all candles in the current bucket\r\n const currentGroup = oneMinuteCandles.filter(c => {\r\n const bucket = Math.floor(c.time / targetTimeframe) * targetTimeframe;\r\n return bucket === currentBucket;\r\n });\r\n\r\n if (currentGroup.length === 0) {\r\n return null;\r\n }\r\n\r\n return this.aggregateGroup(currentGroup, currentBucket);\r\n\r\n } catch (error) {\r\n console.error('❌ [CandleAggregation] Error getting current candle:', error);\r\n return null;\r\n }\r\n }\r\n\r\n /**\r\n * Update real-time candle with new 1-minute candle\r\n * Returns updated array of aggregated candles\r\n */\r\n updateRealtimeCandle(\r\n aggregatedCandles: CandleData[],\r\n newOneMinuteCandle: CandleData,\r\n targetTimeframe: number\r\n ): CandleData[] {\r\n try {\r\n if (!newOneMinuteCandle) {\r\n return aggregatedCandles;\r\n }\r\n\r\n // Calculate which bucket this 1m candle belongs to\r\n const bucketTime = Math.floor(newOneMinuteCandle.time / targetTimeframe) * targetTimeframe;\r\n\r\n // Find if we already have a candle for this bucket\r\n const existingIndex = aggregatedCandles.findIndex(c => c.time === bucketTime);\r\n\r\n if (existingIndex >= 0) {\r\n // Update existing candle\r\n const existing = aggregatedCandles[existingIndex];\r\n const updated: CandleData = {\r\n time: bucketTime,\r\n open: existing.open, // Keep original open\r\n high: Math.max(existing.high, newOneMinuteCandle.high),\r\n low: Math.min(existing.low, newOneMinuteCandle.low),\r\n close: newOneMinuteCandle.close, // Use latest close\r\n volume: existing.volume + (newOneMinuteCandle.volume || 0)\r\n };\r\n\r\n // Replace the candle\r\n const newCandles = [...aggregatedCandles];\r\n newCandles[existingIndex] = updated;\r\n return newCandles;\r\n } else {\r\n // Add new candle\r\n const newCandle: CandleData = {\r\n time: bucketTime,\r\n open: newOneMinuteCandle.open,\r\n high: newOneMinuteCandle.high,\r\n low: newOneMinuteCandle.low,\r\n close: newOneMinuteCandle.close,\r\n volume: newOneMinuteCandle.volume || 0\r\n };\r\n\r\n return [...aggregatedCandles, newCandle].sort((a, b) => a.time - b.time);\r\n }\r\n\r\n } catch (error) {\r\n console.error('❌ [CandleAggregation] Error updating realtime candle:', error);\r\n return aggregatedCandles;\r\n }\r\n }\r\n\r\n /**\r\n * Validate candle data structure\r\n */\r\n isValidCandle(candle: any): candle is CandleData {\r\n return (\r\n candle &&\r\n typeof candle.time === 'number' &&\r\n typeof candle.open === 'number' &&\r\n typeof candle.high === 'number' &&\r\n typeof candle.low === 'number' &&\r\n typeof candle.close === 'number' &&\r\n candle.high >= candle.low &&\r\n candle.high >= candle.open &&\r\n candle.high >= candle.close &&\r\n candle.low <= candle.open &&\r\n candle.low <= candle.close\r\n );\r\n }\r\n\r\n /**\r\n * Clean invalid candles from array\r\n */\r\n cleanCandles(candles: CandleData[]): CandleData[] {\r\n if (!Array.isArray(candles)) {\r\n return [];\r\n }\r\n\r\n const cleaned = candles.filter(c => this.isValidCandle(c));\r\n\r\n if (cleaned.length < candles.length) {\r\n console.warn(`⚠️ [CandleAggregation] Removed ${candles.length - cleaned.length} invalid candles`);\r\n }\r\n\r\n return cleaned;\r\n }\r\n\r\n /**\r\n * Get the minimum number of 1-minute candles needed for a timeframe\r\n */\r\n getRequiredOneMinuteCandles(targetTimeframe: number, targetCount: number = 200): number {\r\n const ratio = targetTimeframe / 60; // How many 1m candles per target candle\r\n return Math.ceil(targetCount * ratio);\r\n }\r\n}\r\n\r\n// Singleton instance\r\nexport const candleAggregation = new CandleAggregation();\r\n\r\n"],"names":["size","_a","width","height","Error","equalSizes","first","second","Observable","win","_this","this","_resolutionListener","_onResolutionChanged","_resolutionMediaQueryList","_observers","_window","_installResolutionListener","prototype","dispose","_uninstallResolutionListener","Object","defineProperty","get","devicePixelRatio","enumerable","configurable","subscribe","next","observer","push","unsubscribe","filter","o","dppx","matchMedia","concat","addListener","removeListener","_reinstallResolutionListener","forEach","DevicePixelContentBoxBinding","canvasElement","transformBitmapSize","options","_canvasElement","_bitmapSizeChangedListeners","_suggestedBitmapSize","_suggestedBitmapSizeChangedListeners","_devicePixelRatioObservable","_canvasElementResizeObserver","_canvasElementClientSize","clientWidth","clientHeight","_transformBitmapSize","_allowResizeObserver","allowResizeObserver","_chooseAndInitObserver","_b","disconnect","length","resizeCanvasElement","clientSize","style","_invalidateBitmapSize","subscribeBitmapSizeChanged","listener","unsubscribeBitmapSizeChanged","l","subscribeSuggestedBitmapSizeChanged","unsubscribeSuggestedBitmapSizeChanged","applySuggestedBitmapSize","oldSuggestedSize","_resizeBitmap","_emitSuggestedBitmapSizeChanged","newSize","oldSize","bitmapSize","_emitBitmapSizeChanged","call","_suggestNewBitmapSize","finalNewSize","newSuggestedSize","Promise","resolve","ro","ResizeObserver","entries","every","entry","observe","document","body","box","catch","then","isSupported","_initResizeObserver","_initDevicePixelRatioObservable","canvasElementWindow","createDevicePixelRatioObservable","ratio","value","canvasRects","getClientRects","undefined","canvasRect","Math","round","left","top","predictedBitmapSize","find","target","devicePixelContentBoxSize","entrySize","inlineSize","blockSize","ownerDocument","defaultView","CanvasRenderingTarget2D","context","mediaSize","TypeError","_mediaSize","_bitmapSize","_context","useMediaCoordinateSpace","f","save","setTransform","scale","_horizontalPixelRatio","_verticalPixelRatio","restore","useBitmapCoordinateSpace","horizontalPixelRatio","verticalPixelRatio","tryCreateCanvasRenderingTarget2D","binding","contextOptions","canvasElementClientSize","getContext","e","upColor","downColor","wickVisible","borderVisible","borderColor","borderUpColor","borderDownColor","wickColor","wickUpColor","wickDownColor","r","openVisible","thinBars","h","color","lineStyle","lineWidth","lineType","lineVisible","crosshairMarkerVisible","crosshairMarkerRadius","crosshairMarkerBorderColor","crosshairMarkerBorderWidth","crosshairMarkerBackgroundColor","lastPriceAnimation","pointMarkersVisible","topColor","bottomColor","invertFilledArea","lineColor","a","baseValue","type","price","topFillColor1","topFillColor2","topLineColor","bottomFillColor1","bottomFillColor2","bottomLineColor","base","_","u","title","visible","lastValueVisible","priceLineVisible","priceLineSource","priceLineWidth","priceLineColor","priceLineStyle","baseLineVisible","baseLineWidth","baseLineColor","baseLineStyle","priceFormat","precision","minMove","c","d","t","i","n","setLineDash","v","s","beginPath","moveTo","lineTo","stroke","p","m","b","w","Simple","WithSteps","Curved","Solid","Dotted","Dashed","LargeDashed","SparseDotted","g","khaki","azure","aliceblue","ghostwhite","gold","goldenrod","gainsboro","gray","green","honeydew","floralwhite","lightblue","lightcoral","lemonchiffon","hotpink","lightyellow","greenyellow","lightgoldenrodyellow","limegreen","linen","lightcyan","magenta","maroon","olive","orange","oldlace","mediumblue","transparent","lime","lightpink","mistyrose","moccasin","midnightblue","orchid","mediumorchid","mediumturquoise","orangered","royalblue","powderblue","red","coral","turquoise","white","whitesmoke","wheat","teal","steelblue","bisque","aquamarine","aqua","sienna","silver","springgreen","antiquewhite","burlywood","brown","beige","chocolate","chartreuse","cornflowerblue","cornsilk","crimson","cadetblue","tomato","fuchsia","blue","salmon","blanchedalmond","slateblue","slategray","thistle","tan","cyan","darkblue","darkcyan","darkgoldenrod","darkgray","blueviolet","black","darkmagenta","darkslateblue","darkkhaki","darkorchid","darkorange","darkgreen","darkred","dodgerblue","darkslategray","dimgray","deepskyblue","firebrick","forestgreen","indigo","ivory","lavenderblush","feldspar","indianred","lightgreen","lightgrey","lightskyblue","lightslategray","lightslateblue","snow","lightseagreen","lightsalmon","darksalmon","darkviolet","mediumpurple","mediumaquamarine","skyblue","lavender","lightsteelblue","mediumvioletred","mintcream","navajowhite","navy","olivedrab","palevioletred","violetred","yellow","yellowgreen","lawngreen","pink","paleturquoise","palegoldenrod","darkolivegreen","darkseagreen","darkturquoise","peachpuff","deeppink","violet","palegreen","mediumseagreen","peru","saddlebrown","sandybrown","rosybrown","purple","seagreen","seashell","papayawhip","mediumslateblue","plum","mediumspringgreen","M","x","min","max","S","k","y","C","T","toLowerCase","exec","parseInt","parseFloat","P","R","D","constructor","findIndex","splice","V","hasOwnProperty","includes","Array","isArray","O","isFinite","B","A","I","z","L","E","N","F","W","NaN","j","H","$","U","layout","textColor","q","fontSize","fontFamily","Y","Z","X","K","super","arguments","G","J","tt","floor","to","from","it","nt","st","arc","PI","fill","et","fillStyle","rt","ht","lt","ot","_t","ut","ct","dt","ft","vt","bt","wt","map","gt","Mt","mode","xt","St","kt","yt","Ct","Tt","Pt","Dt","Rt","Vt","Ot","Bt","At","It","zt","Lt","Et","lineCap","strokeStyle","Nt","Ft","Wt","jt","Ht","$t","crosshair","Ut","qt","horzLine","vertLine","Yt","Zt","fillRect","globalCompositeOperation","roundRect","arcTo","Q","closePath","createLinearGradient","addColorStop","Xt","Kt","font","Gt","Jt","Qt","ti","ii","ni","si","ei","ri","hi","li","ai","oi","_i","ui","ci","di","textAlign","textBaseline","fillText","fi","pi","mi","bi","wi","gi","Mi","ceil","xi","Si","ki","yi","Ci","Ti","Pi","Ri","Di","Vi","Oi","Bi","Ai","ticksVisible","Ii","zi","Li","Ei","labelVisible","Ni","labelBackgroundColor","Fi","Wi","ji","Hi","abs","translate","$i","Ui","qi","Yi","Zi","Xi","Ki","Gi","Ji","Qi","at","Normal","Magnet","Hidden","tn","nn","sn","en","rn","Map","hn","ln","an","_n","un","cn","dn","fn","vn","pn","mn","Number","bn","wn","gn","Mn","xn","Sn","kn","yn","Cn","Tn","Pn","Rn","clear","Dn","Vn","On","Bn","isNaN","In","An","set","zn","Ln","En","Nn","Fn","Wn","jn","Hn","$n","Un","qn","Yn","Zn","Xn","Kn","Gn","Jn","Qn","ts","ns","ss","es","toString","slice","rs","hs","format","ls","_s","toFixed","pt","us","cs","pow","replace","String","mt","bezierCurveTo","ds","fs","vs","ps","lineJoin","bs","bind","ws","gs","Ms","xs","Ss","ks","ys","Cs","Ts","Ps","Rs","Ds","Vs","Os","Bs","As","Is","zs","Ls","Es","Ns","Fs","Ws","js","Hs","assign","Us","$s","qs","Ys","Zs","Xs","Ks","Gs","Js","Qs","te","ie","ne","se","ee","re","he","le","pointMarkersRadius","ae","oe","_e","ue","ce","de","fe","ve","pe","me","be","we","ge","Me","xe","Se","ke","ye","Ce","Te","Pe","Re","De","Ve","Oe","atan","Be","Ae","Ie","ze","Le","Ee","Ne","Fe","draw","renderer","We","priceValueBuilder","je","isWhitespace","He","$e","update","bars","barSpacing","visibleRange","time","originalData","barColor","Ue","qe","Ye","Ze","Xe","Ke","Ge","Je","Qe","tr","ir","nr","sr","actualBoundingBoxAscent","actualBoundingBoxDescent","has","er","delete","measureText","rr","hr","lr","ar","_r","ur","cr","dr","vr","pr","mr","br","wr","gr","Mr","Sr","kr","yr","Cr","Tr","Pr","Rr","Dr","Vr","Or","Br","Ar","Ir","zr","Lr","Er","Nr","Fr","performance","now","Wr","jr","Hr","$r","Ur","qr","Yr","Zr","Xr","Kr","Gr","vi","Jr","Qr","th","ih","nh","sqrt","position","sh","eh","rh","hh","ah","oh","_h","uh","dh","fh","above","aboveBar","inBar","below","belowBar","reduce","shape","id","text","ph","mh","bh","seriesLastValueMode","wh","gh","Mh","xh","Sh","trim","kh","yh","Ch","Th","Ph","Rh","Dh","Vh","Oh","Bh","minValue","maxValue","Ah","Ih","zh","Lh","Eh","priceRange","margins","Nh","Fh","axisLabelVisible","Wh","axisLabelColor","axisLabelTextColor","jh","Hh","$h","Uh","qh","Yh","Zh","Bar","Candlestick","Xh","Custom","Area","Baseline","Line","Histogram","Kh","Gh","Jh","Qh","NearestLeft","None","NearestRight","tl","il","nl","sl","el","rl","hl","ll","al","ol","_l","ul","cl","dl","fl","vl","pl","ml","bl","wl","gl","drawBackground","Ml","xl","Sl","zOrder","coordinate","fixedCoordinate","backColor","tickVisible","kl","yl","Cl","Tl","Pl","Rl","Dl","Vl","Ol","updateAllViews","paneViews","timeAxisViews","priceAxisViews","Bl","priceAxisPaneViews","Al","timeAxisPaneViews","Il","autoscaleInfo","hitTest","zl","Ll","El","Nl","Fl","Wl","jl","Hl","$l","Ul","ql","clearTimeout","Yl","Zl","priceScaleId","Xl","Kl","Gl","Jl","Ql","ta","ia","na","sa","ea","ra","indexOf","ha","la","aa","setTimeout","oa","unshift","ua","ca","da","fa","va","autoscaleInfoProvider","pa","ma","ba","wa","ga","Ma","xa","Sa","ka","ya","Ca","Ta","Pa","formatter","Ra","Da","Va","originalTime","Oa","Ba","sort","Aa","Ia","za","La","Ea","Na","Fa","Wa","ja","grid","horzLines","vertLines","Ha","coord","$a","Ua","log10","on","qa","Ya","Za","Xa","Ka","Ga","Ja","Qa","io","entireTextOnly","no","so","eo","Logarithmic","Percentage","IndexedTo100","ho","lo","ao","oo","_o","uo","co","do","fo","vo","po","mo","bo","wo","Mo","xo","So","ko","yo","Co","To","Po","Ro","scaleMargins","bottom","Do","Vo","autoScale","Oo","Bo","invertScale","Ao","Io","zo","Lo","Eo","No","Fo","Wo","jo","Ho","$o","Uo","qo","Yo","Zo","Xo","Ko","Go","Jo","Qo","t_","i_","n_","s_","e_","r_","h_","l_","a_","priceFormatter","percentageFormatter","o_","__","u_","c_","d_","f_","v_","leftPriceScale","p_","rightPriceScale","m_","b_","localization","overlayPriceScales","values","w_","g_","M_","x_","S_","k_","C_","y_","T_","P_","R_","D_","V_","O_","B_","A_","I_","z_","L_","E_","N_","F_","W_","j_","H_","U_","q_","Y_","cacheKey","Z_","X_","K_","G_","J_","Q_","tu","iu","nu","timeWeight","index","weight","su","eu","ru","keys","hu","lu","au","ou","_u","uu","cu","du","fu","vu","pu","mu","bu","wu","gu","Mu","xu","rightOffset","Su","ku","uniformDistribution","yu","Cu","fixLeftEdge","Tu","fixRightEdge","Pu","minBarSpacing","key","Ru","Du","Vu","Ou","Bu","Au","Iu","lockVisibleTimeRangeOnResize","zu","Lu","Eu","Nu","Fu","Wu","ju","Hu","tickMarkMaxCharacterLength","$u","label","Uu","needAlignCoordinate","qu","Yu","Zu","rightBarStaysOnScroll","Xu","Ku","Gu","Ju","RangeError","Qu","tc","nc","sc","ec","rc","hc","lc","timeFormatter","formatHorzItem","handleScroll","handleScale","horzTouchDrag","mouseWheel","pressedMouseMove","vertTouchDrag","axisDoubleClickReset","axisPressedMouseMove","pinch","ac","oc","_c","uc","cc","dc","fc","formatTickmark","updateFormatter","vc","mc","bc","wc","gc","Mc","xc","Sc","kc","horzAlign","vertAlign","fontStyle","OnTouchEnd","OnNextTap","yc","Cc","Tc","Pc","Rc","Dc","Vc","Oc","timeScale","Bc","Ac","watermark","Ic","zc","Lc","Ec","Nc","Fc","Wc","jc","Hc","$c","Uc","qc","Yc","Zc","Xc","Kc","Gc","Jc","Qc","td","nd","sd","ed","rd","hd","ld","ad","od","_d","allowShiftVisibleRangeOnWhitespaceReplacement","shiftVisibleRangeOnNewBar","ud","dd","fd","vd","pd","md","bd","wd","background","Disabled","Continuous","OnDataUpdate","LastBar","LastVisible","VerticalGradient","Year","Month","DayOfMonth","Time","TimeWithSeconds","getUTCFullYear","gd","Md","Date","getUTCMonth","toLocaleString","month","getUTCDate","xd","getUTCHours","getUTCMinutes","getUTCSeconds","Sd","kd","yd","Cd","Td","Pd","Rd","Dd","Vd","getTime","UTC","year","day","Od","Bd","is","setOptions","preprocessData","createConverterToInternalObj","convertHorzItemToInternal","dateFormat","timeVisible","Ad","secondsVisible","locale","tickMarkFormatter","hour12","hour","minute","getUTCMilliseconds","maxTickMarkWeight","fillWeightsForPoints","Id","window","navigator","userAgent","test","platform","zd","sign","as","Ld","Ed","Nd","Fd","Wd","jd","Hd","$d","Ud","qd","Yd","log","Zd","os","Xd","Kd","Gd","Jd","Qd","tf","removeChild","nf","sf","ef","attributionLogo","rf","URL","location","href","hostname","pathname","if","createElement","innerText","innerHTML","toggleAttribute","appendChild","transform","clearRect","hf","lf","af","NEGATIVE_INFINITY","POSITIVE_INFINITY","_f","uf","cf","df","ff","vf","pf","mf","bf","wf","gf","Mf","xf","Sf","kf","yf","Cf","Tf","Pf","Rf","Df","Vf","Of","Bf","Af","If","zf","Lf","Ef","Nf","Ff","Wf","Hf","jf","$f","Uf","qf","Yf","Zf","Xf","Kf","Gf","Jf","removeEventListener","addEventListener","Qf","tv","iv","changedTouches","nv","sv","ev","rv","hv","lv","button","av","ov","touches","_v","uv","documentElement","cv","dv","fv","identifier","passive","vv","pv","mv","bv","wv","composed","contains","composedPath","gv","chrome","preventDefault","Mv","xv","Sv","kv","yv","ms","Cv","Tv","getBoundingClientRect","clientX","clientY","Pv","Rv","sourceCapabilities","firesTouchEvents","pageX","pageY","screenX","screenY","localX","localY","ctrlKey","altKey","shiftKey","metaKey","Dv","startsWith","Vv","Ov","Bv","view","Av","cancelable","timeStamp","Iv","zv","externalId","Lv","cursorStyle","Ev","Nv","Fv","Wv","jv","Hv","$v","Uv","qv","Yv","Zv","Xv","Kv","overflow","Gv","zIndex","Jv","Qv","tp","ip","np","sp","ep","rp","hp","lp","ap","op","_p","up","cp","dp","fp","vp","pp","mp","bp","wp","gp","Mp","xp","Sp","drawImage","kp","rect","alignLabels","yp","cursor","Cp","Tp","Pp","Rp","Dp","Vp","Op","Bp","Ap","Ip","zp","Lp","Ep","Np","Fp","Wp","padding","jp","Hp","$p","Up","qp","Yp","Zp","Xp","Kp","Gp","Jp","Qp","tm","im","nm","sm","rm","hm","lm","am","trackingMode","exitMode","om","isBackground","_m","um","dm","fm","vm","pm","bm","wm","gm","Mm","xm","Sm","km","activeElement","blur","getSelection","removeAllRanges","kineticScroll","ym","Cm","touch","mouse","Tm","Pm","Rm","Dm","Vm","Om","Bm","Am","Im","zm","Lm","Em","Nm","Fm","Wm","jm","Hm","$m","Um","qm","Ym","allowBoldLabels","Zm","userAgentData","brands","some","brand","Xm","Km","Gm","Jm","Qm","tb","ib","nb","classList","add","direction","userSelect","webkitUserSelect","msUserSelect","MozUserSelect","webkitTapHighlightColor","sb","setAttribute","eb","rb","hb","lb","ab","autoSize","ob","ub","cb","fb","cancelAnimationFrame","parentElement","pb","mb","bb","wb","gb","Mb","xb","Sb","kb","yb","setProperty","removeProperty","Cb","Tb","Pb","minimumWidth","minimumHeight","Rb","deltaMode","DOM_DELTA_PAGE","DOM_DELTA_LINE","deltaX","deltaY","Db","Vb","Ob","requestAnimationFrame","pop","Bb","Ab","insertBefore","Ib","zb","Lb","Eb","Nb","Fb","Wb","display","contentRect","Boolean","getOwnPropertySymbols","propertyIsEnumerable","open","high","low","close","customValues","jb","Hb","$b","Ub","qb","Yb","Zb","Xb","Kb","pointData","Gb","Jb","Qb","tw","iw","nw","sw","ew","rw","hw","lw","language","aw","ow","applyOptions","_w","uw","cw","dw","fw","priceToCoordinate","coordinateToPrice","barsInLogicalRange","barsBefore","barsAfter","setData","pw","mw","bw","dataByIndex","seriesType","data","subscribeDataChanged","unsubscribeDataChanged","setMarkers","markers","priceScale","createPriceLine","removePriceLine","attachPrimitive","attached","chart","series","requestUpdate","detachPrimitive","detached","ww","gw","Mw","xw","scrollPosition","scrollToPosition","scrollToRealTime","getVisibleRange","setVisibleRange","getVisibleLogicalRange","setVisibleLogicalRange","resetTimeScale","fitContent","logicalToCoordinate","coordinateToLogical","timeToCoordinate","coordinateToTime","subscribeVisibleTimeRangeChange","unsubscribeVisibleTimeRangeChange","subscribeVisibleLogicalRangeChange","unsubscribeVisibleLogicalRangeChange","subscribeSizeChange","unsubscribeSizeChange","Sw","kw","yw","Cw","Tw","Pw","Rw","Dw","remove","resize","autoSizeActive","addCustomSeries","defaultOptions","Vw","addAreaSeries","addBaselineSeries","addBarSeries","addCandlestickSeries","addHistogramSeries","addLineSeries","removeSeries","Ow","subscribeClick","unsubscribeClick","subscribeCrosshairMove","unsubscribeCrosshairMove","subscribeDblClick","unsubscribeDblClick","takeScreenshot","chartElement","paneSize","setCrosshairPosition","clearCrosshairPosition","Bw","logical","point","hoveredSeries","hoveredObjectId","seriesData","sourceEvent","getElementById","useSocket","socketInstance","socket","useState","isConnected","setIsConnected","isConnecting","setIsConnecting","useEffect","handleConnect","console","handleDisconnect","handleConnectError","error","connected","off","connect","useCallback","subscribeToOHLCV","mint","timeFrame","onInitialData","onUpdate","onNewCandle","warn","emit","unsubscribeFromOHLCV","subscribeToPrice","onPriceUpdate","unsubscribeFromPrice","testConnection","message","timestamp","once","response","useOptimizedTokenAnalytics","analyticsData","analytics","setAnalytics","loading","setLoading","setError","lastUpdate","setLastUpdate","setConnected","derivedValues","useMemo","market","currentPrice","currentMarketCap","currentVolume","performance24h","isPositive","raw","performance7d","performance1m","performanceAllTime","high24h","low24h","volume24h","return24h","marketCap","volume","current","blockchain","currentRealSol","percentage","gain","return","isRealVolume","thisArg","apply","getPrototypeOf","iterator","toStringTag","Symbol","kindOf","cache","create","thing","str","kindOfTest","typeOfTest","isUndefined","isBuffer","val","isFunction","isArrayBuffer","isString","isNumber","isObject","isPlainObject","isDate","isFile","isBlob","isFileList","isURLSearchParams","isReadableStream","isRequest","isResponse","isHeaders","obj","allOwnKeys","getOwnPropertyNames","len","findKey","_key","_global","globalThis","self","global","isContextDefined","isTypedArray","TypedArray","Uint8Array","isHTMLForm","prop","isRegExp","reduceDescriptors","reducer","descriptors","getOwnPropertyDescriptors","reducedDescriptors","descriptor","name","ret","defineProperties","isAsyncFn","_setImmediate","setImmediateSupported","setImmediate","postMessageSupported","postMessage","token","random","callbacks","source","shift","asap","queueMicrotask","process","nextTick","utils$1","isFormData","kind","FormData","append","isArrayBufferView","result","ArrayBuffer","isView","buffer","isBoolean","isEmptyObject","isStream","pipe","merge","caseless","skipUndefined","assignValue","targetKey","extend","stripBOM","content","charCodeAt","inherits","superConstructor","props","toFlatObject","sourceObj","destObj","propFilter","merged","endsWith","searchString","lastIndex","toArray","arr","forEachEntry","_iterator","done","pair","matchAll","regExp","matches","hasOwnProp","freezeMethods","writable","toObjectSet","arrayOrString","delimiter","define","split","toCamelCase","p1","p2","toUpperCase","noop","toFiniteNumber","defaultValue","isSpecCompliantForm","toJSONObject","stack","visit","reducedValue","isThenable","isIterable","AxiosError","code","config","request","captureStackTrace","status","utils","toJSON","description","number","fileName","lineNumber","columnNumber","customProps","axiosError","msg","errCode","cause","isVisitable","removeBrackets","renderKey","path","dots","join","predicates","toFormData","formData","metaTokens","indexes","option","visitor","defaultVisitor","useBlob","Blob","convertValue","toISOString","Buffer","JSON","stringify","isFlatArray","exposedHelpers","build","encode","charMap","encodeURIComponent","match","AxiosURLSearchParams","params","_pairs","buildURL","url","_encode","serialize","serializeFn","serializedParams","hashmarkIndex","encoder","InterceptorManager","handlers","use","fulfilled","rejected","synchronous","runWhen","eject","transitionalDefaults","silentJSONParsing","forcedJSONParsing","clarifyTimeoutError","platform$1","isBrowser","classes","URLSearchParams","protocols","hasBrowserEnv","_navigator","hasStandardBrowserEnv","product","hasStandardBrowserWebWorkerEnv","WorkerGlobalScope","importScripts","origin","formDataToJSON","buildPath","isNumericKey","isLast","arrayToObject","parsePropPath","defaults","transitional","adapter","transformRequest","headers","contentType","getContentType","hasJSONContentType","isObjectPayload","setContentType","helpers","isNode","toURLEncodedForm","formSerializer","_FormData","env","rawValue","parser","parse","stringifySafely","transformResponse","JSONRequested","responseType","strictJSONParsing","parseReviver","ERR_BAD_RESPONSE","timeout","xsrfCookieName","xsrfHeaderName","maxContentLength","maxBodyLength","validateStatus","common","Accept","method","ignoreDuplicateOf","$internals","normalizeHeader","header","normalizeValue","matchHeaderValue","isHeaderNameFilter","AxiosHeaders$1","valueOrRewrite","rewrite","setHeader","_value","_header","_rewrite","lHeader","setHeaders","rawHeaders","parsed","line","substring","parseHeaders","dest","tokens","tokensRE","parseTokens","matcher","deleted","deleteHeader","normalize","normalized","char","formatHeader","targets","asStrings","getSetCookie","computed","accessor","accessors","defineAccessor","accessorName","methodName","arg1","arg2","arg3","buildAccessors","transformData","fns","AxiosHeaders","isCancel","__CANCEL__","CanceledError","ERR_CANCELED","settle","reject","ERR_BAD_REQUEST","mapped","headerValue","progressEventReducer","isDownloadStream","freq","bytesNotified","_speedometer","samplesCount","bytes","timestamps","firstSampleTS","head","tail","chunkLength","startedAt","bytesCount","passed","speedometer","lastArgs","timer","threshold","invoke","args","throttle","loaded","total","lengthComputable","progressBytes","rate","progress","estimated","event","progressEventDecorator","throttled","asyncDecorator","isURLSameOrigin","isMSIE","protocol","host","port","cookies","write","expires","domain","secure","cookie","toGMTString","read","RegExp","decodeURIComponent","buildFullPath","baseURL","requestedURL","allowAbsoluteUrls","isRelativeUrl","relativeURL","combineURLs","headersToObject","mergeConfig","config1","config2","getMergedValue","mergeDeepProperties","valueFromConfig2","defaultToConfig2","mergeDirectKeys","mergeMap","paramsSerializer","timeoutMessage","withCredentials","withXSRFToken","onUploadProgress","onDownloadProgress","decompress","beforeRedirect","transport","httpAgent","httpsAgent","cancelToken","socketPath","responseEncoding","configValue","resolveConfig","newConfig","auth","btoa","username","password","unescape","getHeaders","formHeaders","allowedHeaders","xsrfValue","xhrAdapter","XMLHttpRequest","_config","requestData","requestHeaders","onCanceled","uploadThrottled","downloadThrottled","flushUpload","flushDownload","signal","onloadend","responseHeaders","getAllResponseHeaders","err","responseText","statusText","onreadystatechange","readyState","responseURL","onabort","ECONNABORTED","onerror","ERR_NETWORK","ontimeout","timeoutErrorMessage","ETIMEDOUT","setRequestHeader","upload","cancel","abort","aborted","parseProtocol","send","composeSignals","signals","controller","AbortController","reason","streamChunk","chunk","chunkSize","byteLength","end","pos","readStream","async","stream","asyncIterator","reader","getReader","trackStream","onProgress","onFinish","iterable","readBytes","_onFinish","ReadableStream","pull","loadedBytes","enqueue","highWaterMark","globalFetchAPI","Request","Response","TextEncoder","factory","fetch","envFetch","isFetchSupported","isRequestSupported","isResponseSupported","isReadableStreamSupported","encodeText","arrayBuffer","supportsRequestStream","duplexAccessed","hasContentType","duplex","supportsResponseStream","resolvers","res","ERR_NOT_SUPPORT","resolveBodyLength","getContentLength","_request","getBodyLength","fetchOptions","_fetch","composedSignal","toAbortSignal","requestContentLength","contentTypeHeader","flush","isCredentialsSupported","resolvedOptions","credentials","isStreamResponse","responseContentLength","responseData","seedCache","getFetch","seeds","seed","knownAdapters","http","xhr","fetchAdapter.getFetch","renderReason","isResolvedHandle","adapters","nameOrAdapter","rejectedReasons","reasons","state","throwIfCancellationRequested","throwIfRequested","dispatchRequest","VERSION","validators","deprecatedWarnings","validator","version","formatMessage","opt","desc","opts","ERR_DEPRECATED","spelling","correctSpelling","assertOptions","schema","allowUnknown","ERR_BAD_OPTION_VALUE","ERR_BAD_OPTION","Axios$1","instanceConfig","interceptors","configOrUrl","dummy","boolean","function","baseUrl","withXsrfToken","contextHeaders","requestInterceptorChain","synchronousRequestInterceptors","interceptor","responseInterceptorChain","promise","chain","onFulfilled","onRejected","getUri","Axios","generateHTTPMethod","isForm","HttpStatusCode","Continue","SwitchingProtocols","Processing","EarlyHints","Ok","Created","Accepted","NonAuthoritativeInformation","NoContent","ResetContent","PartialContent","MultiStatus","AlreadyReported","ImUsed","MultipleChoices","MovedPermanently","Found","SeeOther","NotModified","UseProxy","Unused","TemporaryRedirect","PermanentRedirect","BadRequest","Unauthorized","PaymentRequired","Forbidden","NotFound","MethodNotAllowed","NotAcceptable","ProxyAuthenticationRequired","RequestTimeout","Conflict","Gone","LengthRequired","PreconditionFailed","PayloadTooLarge","UriTooLong","UnsupportedMediaType","RangeNotSatisfiable","ExpectationFailed","ImATeapot","MisdirectedRequest","UnprocessableEntity","Locked","FailedDependency","TooEarly","UpgradeRequired","PreconditionRequired","TooManyRequests","RequestHeaderFieldsTooLarge","UnavailableForLegalReasons","InternalServerError","NotImplemented","BadGateway","ServiceUnavailable","GatewayTimeout","HttpVersionNotSupported","VariantAlsoNegotiates","InsufficientStorage","LoopDetected","NotExtended","NetworkAuthenticationRequired","axios","createInstance","defaultConfig","instance","CancelToken","executor","resolvePromise","_listeners","onfulfilled","_resolve","Cancel","all","promises","spread","callback","isAxiosError","payload","formToJSON","getAdapter","default","API_CONFIG","BASE_URL","FUNHI_CHART_API_URL","NEXT_PUBLIC_BACKEND_URL","TIMEOUT","MAX_RETRIES","RETRY_DELAY","candleStorageService","savingQueue","BATCH_DELAY","BATCH_SIZE","saveCandles","candles","post","success","saveCandle","candle","queueKey","existingQueue","flushQueue","queue","getCandles","limit","candleCount","warning","flushAll","flushPromises","timeFrameStr","FunhiChart","ticker","tokenName","externalSocket","externalIsConnected","externalMarketCap","analyticsConnected","externalAnalyticsConnected","analyticsLoading","externalAnalyticsLoading","chartContainerRef","useRef","chartRef","seriesRef","candles1mRef","candles5mRef","candles15mRef","candles1hRef","candles4hRef","candles1dRef","currentCandle1mRef","currentCandle5mRef","currentCandle15mRef","currentCandle1hRef","currentCandle4hRef","currentCandle1dRef","lastCandleTime1mRef","lastCandleTime5mRef","lastCandleTime15mRef","lastCandleTime1hRef","lastCandleTime4hRef","lastCandleTime1dRef","currentTimeFrameRef","candles1m","setCandles1m","currentCandle1m","setCurrentCandle1m","lastCandleTime1m","setLastCandleTime1m","candles5m","setCandles5m","currentCandle5m","setCurrentCandle5m","lastCandleTime5m","setLastCandleTime5m","candles15m","setCandles15m","currentCandle15m","setCurrentCandle15m","lastCandleTime15m","setLastCandleTime15m","candles1h","setCandles1h","currentCandle1h","setCurrentCandle1h","lastCandleTime1h","setLastCandleTime1h","candles4h","setCandles4h","currentCandle4h","setCurrentCandle4h","lastCandleTime4h","setLastCandleTime4h","candles1d","setCandles1d","currentCandle1d","setCurrentCandle1d","lastCandleTime1d","setLastCandleTime1d","setCurrentMarketCap","timeframeLoading","setTimeframeLoading","loadingTimeframe","setLoadingTimeframe","currentMarketCapRef","lastProcessedTimestampRef","internalSocketData","internalAnalytics","realTimeMarketCap","timeFrames","seconds","currentTimeFrame","setCurrentTimeFrame","getCurrentCandles","formatMarketCap","loadCandles","timeframeSeconds","timeframeLabel","limitText","effectiveLimit","MAX_SAFE_INTEGER","uniqueCandles","acc","minBodySize","priceDiff","validatedCandle","existingIndex","sorted","createOrUpdate1m","currentTime","bucketStart","previousCandleClose","previousCandleDirection","candlesArray","sortedCandles","lastCandle","finalizedCandle","prev","updated","newData","toLocaleTimeString","openPrice","closePrice","newPriceDirection","newCandle","currentBucket","currentCandle","recreatedCandle","currentBodySize","currentPriceDirection","enforcedClosePrice","createOrUpdate5m","createOrUpdate15m","createOrUpdate1h","createOrUpdate4h","createOrUpdate1d","createChart","CrosshairMode","finalCandles","last","handleResize","handleTimeFrameChange","timeFrameValue","newTimeFrame","updatedCandle","currentCandles","validCandles","handleMultiTimeframeCandles","directUpdateCandle","backendCandle","existingCandle","existingBodySize","candleData","React","className","onClick","isCurrentTimeframe","isCurrentlyLoading","isDisabled","disabled","animationDelay","ref","candleAggregation","timeframes","aggregateCandles","oneMinuteCandles","targetTimeframe","aggregatedCandles","currentGroup","groupStartTime","bucketTime","aggregated","aggregateGroup","getTimeframeLabel","sum","getTimeframeSeconds","fillGaps","timeframe","filled","getCurrentCandle","updateRealtimeCandle","newOneMinuteCandle","existing","newCandles","isValidCandle","cleanCandles","cleaned","getRequiredOneMinuteCandles","targetCount"],"mappings":"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","x_google_ignoreList":[0,1,2,3,4,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56]}
|
|
1
|
+
{"version":3,"file":"index.esm.js","sources":["../src/validators/CandleValidator.ts","../src/core/CandleManager.ts","../src/core/TimeframeManager.ts","../node_modules/fancy-canvas/size.mjs","../node_modules/fancy-canvas/device-pixel-ratio.mjs","../node_modules/fancy-canvas/canvas-element-bitmap-size.mjs","../node_modules/fancy-canvas/canvas-rendering-target.mjs","../node_modules/lightweight-charts/dist/lightweight-charts.production.mjs","../src/core/ChartRenderer.ts","../node_modules/axios/lib/helpers/bind.js","../node_modules/axios/lib/utils.js","../node_modules/axios/lib/core/AxiosError.js","../node_modules/axios/lib/helpers/toFormData.js","../node_modules/axios/lib/helpers/AxiosURLSearchParams.js","../node_modules/axios/lib/helpers/buildURL.js","../node_modules/axios/lib/core/InterceptorManager.js","../node_modules/axios/lib/defaults/transitional.js","../node_modules/axios/lib/platform/browser/index.js","../node_modules/axios/lib/platform/browser/classes/URLSearchParams.js","../node_modules/axios/lib/platform/browser/classes/FormData.js","../node_modules/axios/lib/platform/browser/classes/Blob.js","../node_modules/axios/lib/platform/common/utils.js","../node_modules/axios/lib/platform/index.js","../node_modules/axios/lib/helpers/formDataToJSON.js","../node_modules/axios/lib/defaults/index.js","../node_modules/axios/lib/helpers/toURLEncodedForm.js","../node_modules/axios/lib/helpers/parseHeaders.js","../node_modules/axios/lib/core/AxiosHeaders.js","../node_modules/axios/lib/core/transformData.js","../node_modules/axios/lib/cancel/isCancel.js","../node_modules/axios/lib/cancel/CanceledError.js","../node_modules/axios/lib/core/settle.js","../node_modules/axios/lib/helpers/progressEventReducer.js","../node_modules/axios/lib/helpers/speedometer.js","../node_modules/axios/lib/helpers/throttle.js","../node_modules/axios/lib/helpers/isURLSameOrigin.js","../node_modules/axios/lib/helpers/cookies.js","../node_modules/axios/lib/core/buildFullPath.js","../node_modules/axios/lib/helpers/isAbsoluteURL.js","../node_modules/axios/lib/helpers/combineURLs.js","../node_modules/axios/lib/core/mergeConfig.js","../node_modules/axios/lib/helpers/resolveConfig.js","../node_modules/axios/lib/adapters/xhr.js","../node_modules/axios/lib/helpers/parseProtocol.js","../node_modules/axios/lib/helpers/composeSignals.js","../node_modules/axios/lib/helpers/trackStream.js","../node_modules/axios/lib/adapters/fetch.js","../node_modules/axios/lib/adapters/adapters.js","../node_modules/axios/lib/helpers/null.js","../node_modules/axios/lib/core/dispatchRequest.js","../node_modules/axios/lib/env/data.js","../node_modules/axios/lib/helpers/validator.js","../node_modules/axios/lib/core/Axios.js","../node_modules/axios/lib/helpers/HttpStatusCode.js","../node_modules/axios/lib/axios.js","../node_modules/axios/lib/cancel/CancelToken.js","../node_modules/axios/lib/helpers/spread.js","../node_modules/axios/lib/helpers/isAxiosError.js","../node_modules/axios/index.js","../src/config/environment.ts","../src/services/candleStorage.ts","../src/adapters/CandleStorageAdapter.ts","../src/handlers/RealTimeUpdateHandler.ts","../src/core/FunhiChartController.ts","../src/hooks/useSocket.ts","../src/hooks/useOptimizedTokenAnalytics.ts","../src/components/FunhiChart.tsx","../src/utils/candleAggregation.ts"],"sourcesContent":["/**\r\n * CandleValidator - Validates and enforces candle data integrity\r\n */\r\nimport { CandleData } from '../core/types';\r\n\r\nexport class CandleValidator {\r\n /**\r\n * Minimum body size as percentage of price (0.01%)\r\n */\r\n private static readonly MIN_BODY_PERCENTAGE = 0.0001;\r\n \r\n /**\r\n * Absolute minimum body size in price units\r\n */\r\n private static readonly MIN_BODY_ABSOLUTE = 0.01;\r\n\r\n /**\r\n * Validates if a candle has valid OHLC data\r\n */\r\n static validate(candle: CandleData): boolean {\r\n return (\r\n candle &&\r\n candle.time > 0 &&\r\n candle.open > 0 &&\r\n candle.high > 0 &&\r\n candle.low > 0 &&\r\n candle.close > 0 &&\r\n isFinite(candle.open) &&\r\n isFinite(candle.high) &&\r\n isFinite(candle.low) &&\r\n isFinite(candle.close) &&\r\n candle.high >= Math.max(candle.open, candle.close) &&\r\n candle.low <= Math.min(candle.open, candle.close)\r\n );\r\n }\r\n\r\n /**\r\n * Ensures candle has minimum body size for visibility\r\n */\r\n static ensureMinimumBodySize(candle: CandleData, minBodySize?: number): CandleData {\r\n const effectiveMinBodySize = minBodySize || \r\n Math.max(candle.open * this.MIN_BODY_PERCENTAGE, this.MIN_BODY_ABSOLUTE);\r\n \r\n const priceDiff = Math.abs(candle.open - candle.close);\r\n const currentBodySize = Math.abs(candle.close - candle.open);\r\n \r\n // If body is already visible, return as-is\r\n if (currentBodySize >= effectiveMinBodySize) {\r\n return candle;\r\n }\r\n\r\n // Determine direction\r\n let direction: number;\r\n if (priceDiff > 0.0001) {\r\n direction = candle.close >= candle.open ? 1 : -1;\r\n } else {\r\n // If no clear direction, default to upward\r\n direction = 1;\r\n }\r\n\r\n // Enforce minimum body size\r\n const enforcedClose = candle.open + (direction * effectiveMinBodySize);\r\n \r\n return {\r\n ...candle,\r\n close: enforcedClose,\r\n high: Math.max(candle.high, enforcedClose),\r\n low: Math.min(candle.low, enforcedClose)\r\n };\r\n }\r\n\r\n /**\r\n * Validates and corrects OHLC data integrity\r\n */\r\n static validateOHLC(candle: CandleData): CandleData {\r\n return {\r\n ...candle,\r\n high: Math.max(candle.open, candle.high, candle.close),\r\n low: Math.min(candle.open, candle.low, candle.close)\r\n };\r\n }\r\n\r\n /**\r\n * Checks if a candle belongs to the current time bucket\r\n */\r\n static isCurrentBucket(\r\n candle: CandleData, \r\n timeframeSeconds: number, \r\n timestamp: number\r\n ): boolean {\r\n const currentTime = Math.floor(timestamp / 1000);\r\n const currentBucket = Math.floor(currentTime / timeframeSeconds) * timeframeSeconds;\r\n return candle.time === currentBucket;\r\n }\r\n\r\n /**\r\n * Validates price data\r\n */\r\n static validatePrice(price: number): boolean {\r\n return price > 0 && isFinite(price);\r\n }\r\n\r\n /**\r\n * Calculates minimum body size for a given price\r\n */\r\n static calculateMinBodySize(price: number): number {\r\n return Math.max(price * this.MIN_BODY_PERCENTAGE, this.MIN_BODY_ABSOLUTE);\r\n }\r\n}\r\n\r\n","/**\r\n * CandleManager - Manages candle creation, updates, and validation for a single timeframe\r\n * This class eliminates code duplication by handling all timeframe logic generically\r\n */\r\nimport { CandleData, CandleUpdateResult } from './types';\r\nimport { CandleValidator } from '../validators/CandleValidator';\r\n\r\nexport class CandleManager {\r\n private timeframeSeconds: number;\r\n private candles: CandleData[] = [];\r\n private currentCandle: CandleData | null = null;\r\n private lastCandleTime: number = 0;\r\n private lastProcessedTimestamp: number = 0;\r\n private readonly debounceMs: number = 50;\r\n\r\n constructor(timeframeSeconds: number) {\r\n this.timeframeSeconds = timeframeSeconds;\r\n }\r\n\r\n /**\r\n * Main method: Creates a new candle or updates the current one\r\n */\r\n createOrUpdate(price: number, timestamp: number): CandleUpdateResult | null {\r\n // Debounce check\r\n const now = Date.now();\r\n if (this.lastProcessedTimestamp && (now - this.lastProcessedTimestamp) < this.debounceMs) {\r\n return null;\r\n }\r\n this.lastProcessedTimestamp = now;\r\n\r\n // Validate price\r\n if (!CandleValidator.validatePrice(price)) {\r\n console.warn(`⚠️ [CandleManager-${this.timeframeSeconds}s] Invalid price data: ${price}`);\r\n return null;\r\n }\r\n\r\n const currentTime = Math.floor(timestamp / 1000);\r\n const bucketStart = this.calculateBucketStart(currentTime);\r\n\r\n // Check if we need to create a new candle\r\n if (bucketStart !== this.lastCandleTime) {\r\n return this.createNewCandle(price, timestamp, bucketStart);\r\n }\r\n\r\n // Update existing candle\r\n if (this.currentCandle) {\r\n return this.updateCurrentCandle(price, timestamp, bucketStart);\r\n }\r\n\r\n return null;\r\n }\r\n\r\n /**\r\n * Creates a new candle at bucket boundary\r\n */\r\n private createNewCandle(\r\n price: number, \r\n timestamp: number, \r\n bucketStart: number\r\n ): CandleUpdateResult {\r\n // Get previous candle's close price\r\n const previousCandleClose = this.getPreviousCandleClose(bucketStart);\r\n const previousCandleDirection = this.getPreviousCandleDirection();\r\n\r\n // Finalize previous candle if it exists\r\n if (this.currentCandle && this.isValidCandle(this.currentCandle)) {\r\n const finalizedCandle = CandleValidator.validateOHLC(this.currentCandle);\r\n this.addCandleToHistory(finalizedCandle);\r\n }\r\n\r\n // Use previous close as open price, or fallback to current price\r\n const openPrice = previousCandleClose ?? price;\r\n \r\n if (previousCandleClose === null) {\r\n console.warn(\r\n `⚠️ [CandleManager-${this.timeframeSeconds}s] No previous candle close found, using current price: $${price.toFixed(2)}`\r\n );\r\n }\r\n\r\n // Create new candle with minimum body size enforcement\r\n const newCandle = this.buildNewCandle(\r\n bucketStart,\r\n openPrice,\r\n price,\r\n previousCandleDirection\r\n );\r\n\r\n // Update state\r\n this.currentCandle = newCandle;\r\n this.lastCandleTime = bucketStart;\r\n this.addCandleToHistory(newCandle);\r\n\r\n console.log(\r\n `🆕 [CandleManager-${this.timeframeSeconds}s] New candle: time=${bucketStart}, open=$${openPrice.toFixed(2)}, close=$${newCandle.close.toFixed(2)}`\r\n );\r\n\r\n return {\r\n candle: newCandle,\r\n isNewCandle: true,\r\n wasUpdated: false\r\n };\r\n }\r\n\r\n /**\r\n * Updates the current candle with new price data\r\n */\r\n private updateCurrentCandle(\r\n price: number,\r\n timestamp: number,\r\n currentBucket: number\r\n ): CandleUpdateResult | null {\r\n // Verify this is actually the current candle\r\n if (this.currentCandle!.time !== currentBucket) {\r\n console.warn(\r\n `⚠️ [CandleManager-${this.timeframeSeconds}s] Skipping update for historical candle (time: ${this.currentCandle!.time}, current: ${currentBucket})`\r\n );\r\n return null;\r\n }\r\n\r\n // Validate existing candle\r\n if (!this.isValidCandle(this.currentCandle!)) {\r\n console.warn(`⚠️ [CandleManager-${this.timeframeSeconds}s] Invalid existing candle, recreating`);\r\n const recreatedCandle: CandleData = {\r\n time: this.currentCandle!.time,\r\n open: price,\r\n high: price,\r\n low: price,\r\n close: price,\r\n volume: 0\r\n };\r\n this.currentCandle = recreatedCandle;\r\n this.updateCandleInHistory(recreatedCandle, currentBucket);\r\n return {\r\n candle: recreatedCandle,\r\n isNewCandle: false,\r\n wasUpdated: true\r\n };\r\n }\r\n\r\n // Update candle with price preservation logic\r\n const updatedCandle = this.updateCandlePrice(this.currentCandle!, price);\r\n \r\n // Final validation\r\n const validatedCandle = CandleValidator.validateOHLC(updatedCandle);\r\n \r\n // Only update if it's the current bucket\r\n if (validatedCandle.time !== currentBucket) {\r\n console.warn(\r\n `⚠️ [CandleManager-${this.timeframeSeconds}s] Prevented update of historical candle: time=${validatedCandle.time}, currentBucket=${currentBucket}`\r\n );\r\n return {\r\n candle: validatedCandle,\r\n isNewCandle: false,\r\n wasUpdated: false\r\n };\r\n }\r\n\r\n this.currentCandle = validatedCandle;\r\n this.updateCandleInHistory(validatedCandle, currentBucket);\r\n\r\n return {\r\n candle: validatedCandle,\r\n isNewCandle: false,\r\n wasUpdated: true\r\n };\r\n }\r\n\r\n /**\r\n * Updates candle price while preserving minimum body size\r\n */\r\n private updateCandlePrice(candle: CandleData, price: number): CandleData {\r\n const minBodySize = CandleValidator.calculateMinBodySize(candle.open);\r\n const priceDiff = Math.abs(candle.open - price);\r\n const currentBodySize = Math.abs(candle.close - candle.open);\r\n \r\n // Check if candle has minimum body size (within 10x range)\r\n const hasMinimumBody = currentBodySize > 0 && currentBodySize <= minBodySize * 10.0;\r\n \r\n let closePrice = price;\r\n\r\n // Preserve minimum body size if candle already has one\r\n if (hasMinimumBody && candle.open > 0) {\r\n if (priceDiff < minBodySize * 100) {\r\n // Preserve minimum body but use current price direction\r\n const currentPriceDirection = price >= candle.open ? 1 : -1;\r\n closePrice = candle.open + (currentPriceDirection * minBodySize);\r\n } else {\r\n // Price moved significantly - use actual price but ensure minimum\r\n closePrice = price;\r\n const finalBodySize = Math.abs(closePrice - candle.open);\r\n if (finalBodySize < minBodySize) {\r\n const newPriceDirection = price >= candle.open ? 1 : -1;\r\n closePrice = candle.open + (newPriceDirection * minBodySize);\r\n }\r\n }\r\n } else if (priceDiff < minBodySize && candle.open > 0) {\r\n // Candle doesn't have minimum body, but new price would make it invisible\r\n const newPriceDirection = price >= candle.open ? 1 : -1;\r\n closePrice = candle.open + (newPriceDirection * minBodySize);\r\n }\r\n\r\n // Final safety check: always ensure minimum body size\r\n const finalBodySize = Math.abs(closePrice - candle.open);\r\n if (finalBodySize < minBodySize && candle.open > 0) {\r\n let direction: number;\r\n if (price !== candle.open && Math.abs(price - candle.open) > 0.0001) {\r\n direction = price >= candle.open ? 1 : -1;\r\n } else if (candle.close !== candle.open && Math.abs(candle.close - candle.open) > 0.0001) {\r\n direction = candle.close >= candle.open ? 1 : -1;\r\n } else {\r\n direction = 1; // Default upward\r\n }\r\n closePrice = candle.open + (direction * minBodySize);\r\n }\r\n\r\n return {\r\n ...candle,\r\n high: Math.max(candle.high, price, closePrice),\r\n low: Math.min(candle.low, price, closePrice),\r\n close: closePrice\r\n };\r\n }\r\n\r\n /**\r\n * Builds a new candle with minimum body size enforcement\r\n */\r\n private buildNewCandle(\r\n bucketStart: number,\r\n openPrice: number,\r\n currentPrice: number,\r\n previousDirection: number\r\n ): CandleData {\r\n const minBodySize = CandleValidator.calculateMinBodySize(openPrice);\r\n const priceDiff = Math.abs(openPrice - currentPrice);\r\n let closePrice = currentPrice;\r\n\r\n // Enforce minimum body size for new candles\r\n if (priceDiff < minBodySize) {\r\n let newPriceDirection: number;\r\n if (priceDiff === 0 || Math.abs(currentPrice - openPrice) < 0.0001) {\r\n newPriceDirection = previousDirection ?? 1;\r\n } else {\r\n newPriceDirection = currentPrice >= openPrice ? 1 : -1;\r\n }\r\n closePrice = openPrice + (newPriceDirection * minBodySize);\r\n }\r\n\r\n // Additional safety check\r\n const finalBodySize = Math.abs(closePrice - openPrice);\r\n if (finalBodySize < minBodySize && openPrice > 0) {\r\n const direction = (currentPrice >= openPrice) || (previousDirection === 1) ? 1 : -1;\r\n closePrice = openPrice + (direction * minBodySize);\r\n }\r\n\r\n return {\r\n time: bucketStart,\r\n open: openPrice,\r\n high: Math.max(openPrice, closePrice, currentPrice),\r\n low: Math.min(openPrice, closePrice, currentPrice),\r\n close: closePrice,\r\n volume: 0\r\n };\r\n }\r\n\r\n /**\r\n * Gets the previous candle's close price\r\n */\r\n private getPreviousCandleClose(bucketStart: number): number | null {\r\n // Method 1: Get from current candle ref if it's from previous bucket\r\n if (this.currentCandle && \r\n this.currentCandle.close > 0 && \r\n isFinite(this.currentCandle.close) &&\r\n this.currentCandle.time < bucketStart) {\r\n return this.currentCandle.close;\r\n }\r\n\r\n // Method 2: Get from candles array\r\n if (this.candles.length > 0) {\r\n const sortedCandles = [...this.candles].sort((a, b) => b.time - a.time);\r\n const lastCandle = sortedCandles.find(\r\n c => c.time < bucketStart && c.close > 0 && isFinite(c.close)\r\n );\r\n if (lastCandle) {\r\n return lastCandle.close;\r\n }\r\n }\r\n\r\n // Method 3: Use current candle ref as fallback\r\n if (this.currentCandle && \r\n this.currentCandle.close > 0 && \r\n isFinite(this.currentCandle.close)) {\r\n return this.currentCandle.close;\r\n }\r\n\r\n return null;\r\n }\r\n\r\n /**\r\n * Gets the previous candle's direction (1 for bullish, -1 for bearish)\r\n */\r\n private getPreviousCandleDirection(): number {\r\n if (this.currentCandle && this.currentCandle.open > 0) {\r\n return this.currentCandle.close >= this.currentCandle.open ? 1 : -1;\r\n }\r\n return 1; // Default to bullish\r\n }\r\n\r\n /**\r\n * Calculates bucket start time for a given timestamp\r\n */\r\n private calculateBucketStart(timestamp: number): number {\r\n return Math.floor(timestamp / this.timeframeSeconds) * this.timeframeSeconds;\r\n }\r\n\r\n /**\r\n * Checks if a candle has valid data\r\n */\r\n private isValidCandle(candle: CandleData): boolean {\r\n return (\r\n candle.open > 0 &&\r\n candle.high > 0 &&\r\n candle.low > 0 &&\r\n candle.close > 0\r\n );\r\n }\r\n\r\n /**\r\n * Adds a candle to history\r\n */\r\n private addCandleToHistory(candle: CandleData): void {\r\n const existingIndex = this.candles.findIndex(c => c.time === candle.time);\r\n if (existingIndex >= 0) {\r\n this.candles[existingIndex] = candle;\r\n } else {\r\n this.candles.push(candle);\r\n this.candles.sort((a, b) => a.time - b.time);\r\n }\r\n }\r\n\r\n /**\r\n * Updates a candle in history (only if it matches current bucket)\r\n */\r\n private updateCandleInHistory(candle: CandleData, currentBucket: number): void {\r\n if (candle.time !== currentBucket) {\r\n return;\r\n }\r\n\r\n const existingIndex = this.candles.findIndex(c => c.time === currentBucket);\r\n if (existingIndex >= 0 && this.candles[existingIndex].time === currentBucket) {\r\n this.candles[existingIndex] = candle;\r\n } else if (candle.time === currentBucket) {\r\n this.candles.push(candle);\r\n this.candles.sort((a, b) => a.time - b.time);\r\n }\r\n }\r\n\r\n // Public getters\r\n getCandles(): CandleData[] {\r\n return [...this.candles];\r\n }\r\n\r\n getCurrentCandle(): CandleData | null {\r\n return this.currentCandle;\r\n }\r\n\r\n getLastCandleTime(): number {\r\n return this.lastCandleTime;\r\n }\r\n\r\n /**\r\n * Loads candles from storage\r\n */\r\n loadCandles(candles: CandleData[]): void {\r\n if (candles.length === 0) return;\r\n\r\n // Remove duplicates and validate\r\n const uniqueCandles = candles.reduce((acc, candle) => {\r\n // Ensure minimum body size\r\n const validatedCandle = CandleValidator.ensureMinimumBodySize(candle);\r\n const validated = CandleValidator.validateOHLC(validatedCandle);\r\n \r\n const existingIndex = acc.findIndex(c => c.time === validated.time);\r\n if (existingIndex >= 0) {\r\n acc[existingIndex] = validated;\r\n } else {\r\n acc.push(validated);\r\n }\r\n return acc;\r\n }, [] as CandleData[]);\r\n\r\n this.candles = uniqueCandles.sort((a, b) => a.time - b.time);\r\n\r\n // Set current candle and last candle time\r\n if (this.candles.length > 0) {\r\n const lastCandle = this.candles[this.candles.length - 1];\r\n this.currentCandle = lastCandle;\r\n this.lastCandleTime = lastCandle.time;\r\n }\r\n }\r\n\r\n /**\r\n * Directly updates candle from external source (e.g., WebSocket)\r\n */\r\n updateFromExternal(candle: CandleData, currentBucket: number): void {\r\n if (candle.time !== currentBucket) {\r\n console.warn(\r\n `⚠️ [CandleManager-${this.timeframeSeconds}s] Skipping external update for historical candle`\r\n );\r\n return;\r\n }\r\n\r\n // Ensure minimum body size\r\n const validatedCandle = CandleValidator.ensureMinimumBodySize(candle);\r\n const finalCandle = CandleValidator.validateOHLC(validatedCandle);\r\n\r\n this.currentCandle = finalCandle;\r\n this.lastCandleTime = finalCandle.time;\r\n this.updateCandleInHistory(finalCandle, currentBucket);\r\n }\r\n\r\n /**\r\n * Resets the manager (useful for cleanup)\r\n */\r\n reset(): void {\r\n this.candles = [];\r\n this.currentCandle = null;\r\n this.lastCandleTime = 0;\r\n this.lastProcessedTimestamp = 0;\r\n }\r\n}\r\n\r\n","/**\r\n * TimeframeManager - Orchestrates multiple timeframes and coordinates updates\r\n */\r\nimport { CandleManager } from './CandleManager';\r\nimport { CandleData, TimeFrame } from './types';\r\n\r\nexport class TimeframeManager {\r\n private managers: Map<number, CandleManager>;\r\n private timeframes: TimeFrame[];\r\n\r\n constructor(timeframes: TimeFrame[]) {\r\n this.timeframes = timeframes;\r\n this.managers = new Map();\r\n \r\n // Initialize managers for each timeframe\r\n timeframes.forEach(tf => {\r\n this.managers.set(tf.seconds, new CandleManager(tf.seconds));\r\n });\r\n }\r\n\r\n /**\r\n * Gets the manager for a specific timeframe\r\n */\r\n getManager(seconds: number): CandleManager | undefined {\r\n return this.managers.get(seconds);\r\n }\r\n\r\n /**\r\n * Updates all timeframes with new price data\r\n */\r\n updateAll(price: number, timestamp: number): void {\r\n this.managers.forEach(manager => {\r\n manager.createOrUpdate(price, timestamp);\r\n });\r\n }\r\n\r\n /**\r\n * Gets candles for a specific timeframe\r\n */\r\n getCandles(seconds: number): CandleData[] {\r\n const manager = this.managers.get(seconds);\r\n return manager ? manager.getCandles() : [];\r\n }\r\n\r\n /**\r\n * Gets current candle for a specific timeframe\r\n */\r\n getCurrentCandle(seconds: number): CandleData | null {\r\n const manager = this.managers.get(seconds);\r\n return manager ? manager.getCurrentCandle() : null;\r\n }\r\n\r\n /**\r\n * Loads candles for a specific timeframe\r\n */\r\n loadCandles(seconds: number, candles: CandleData[]): void {\r\n const manager = this.managers.get(seconds);\r\n if (manager) {\r\n manager.loadCandles(candles);\r\n }\r\n }\r\n\r\n /**\r\n * Updates candle from external source (e.g., WebSocket)\r\n */\r\n updateFromExternal(seconds: number, candle: CandleData, currentBucket: number): void {\r\n const manager = this.managers.get(seconds);\r\n if (manager) {\r\n manager.updateFromExternal(candle, currentBucket);\r\n }\r\n }\r\n\r\n /**\r\n * Gets all available timeframes\r\n */\r\n getTimeframes(): TimeFrame[] {\r\n return [...this.timeframes];\r\n }\r\n\r\n /**\r\n * Resets all managers\r\n */\r\n reset(): void {\r\n this.managers.forEach(manager => manager.reset());\r\n }\r\n}\r\n\r\n","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™ v4.2.3\n * Copyright (c) 2025 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={upColor:\"#26a69a\",downColor:\"#ef5350\",wickVisible:!0,borderVisible:!0,borderColor:\"#378658\",borderUpColor:\"#26a69a\",borderDownColor:\"#ef5350\",wickColor:\"#737375\",wickUpColor:\"#26a69a\",wickDownColor:\"#ef5350\"},r={upColor:\"#26a69a\",downColor:\"#ef5350\",openVisible:!0,thinBars:!0},h={color:\"#2196f3\",lineStyle:0,lineWidth:3,lineType:0,lineVisible:!0,crosshairMarkerVisible:!0,crosshairMarkerRadius:4,crosshairMarkerBorderColor:\"\",crosshairMarkerBorderWidth:2,crosshairMarkerBackgroundColor:\"\",lastPriceAnimation:0,pointMarkersVisible:!1},l={topColor:\"rgba( 46, 220, 135, 0.4)\",bottomColor:\"rgba( 40, 221, 100, 0)\",invertFilledArea:!1,lineColor:\"#33D778\",lineStyle:0,lineWidth:3,lineType:0,lineVisible:!0,crosshairMarkerVisible:!0,crosshairMarkerRadius:4,crosshairMarkerBorderColor:\"\",crosshairMarkerBorderWidth:2,crosshairMarkerBackgroundColor:\"\",lastPriceAnimation:0,pointMarkersVisible:!1},a={baseValue:{type:\"price\",price:0},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},o={color:\"#26a69a\",base:0},_={color:\"#2196f3\"},u={title:\"\",visible:!0,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 c,d;function f(t,i){const n={0:[],1:[t.lineWidth,t.lineWidth],2:[2*t.lineWidth,2*t.lineWidth],3:[6*t.lineWidth,6*t.lineWidth],4:[t.lineWidth,4*t.lineWidth]}[i];t.setLineDash(n)}function v(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 p(t,i){if(!t)throw new Error(\"Assertion failed\"+(i?\": \"+i:\"\"))}function m(t){if(void 0===t)throw new Error(\"Value is undefined\");return t}function b(t){if(null===t)throw new Error(\"Value is null\");return t}function w(t){return b(m(t))}!function(t){t[t.Simple=0]=\"Simple\",t[t.WithSteps=1]=\"WithSteps\",t[t.Curved=2]=\"Curved\"}(c||(c={})),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\"}(d||(d={}));const g={khaki:\"#f0e68c\",azure:\"#f0ffff\",aliceblue:\"#f0f8ff\",ghostwhite:\"#f8f8ff\",gold:\"#ffd700\",goldenrod:\"#daa520\",gainsboro:\"#dcdcdc\",gray:\"#808080\",green:\"#008000\",honeydew:\"#f0fff0\",floralwhite:\"#fffaf0\",lightblue:\"#add8e6\",lightcoral:\"#f08080\",lemonchiffon:\"#fffacd\",hotpink:\"#ff69b4\",lightyellow:\"#ffffe0\",greenyellow:\"#adff2f\",lightgoldenrodyellow:\"#fafad2\",limegreen:\"#32cd32\",linen:\"#faf0e6\",lightcyan:\"#e0ffff\",magenta:\"#f0f\",maroon:\"#800000\",olive:\"#808000\",orange:\"#ffa500\",oldlace:\"#fdf5e6\",mediumblue:\"#0000cd\",transparent:\"#0000\",lime:\"#0f0\",lightpink:\"#ffb6c1\",mistyrose:\"#ffe4e1\",moccasin:\"#ffe4b5\",midnightblue:\"#191970\",orchid:\"#da70d6\",mediumorchid:\"#ba55d3\",mediumturquoise:\"#48d1cc\",orangered:\"#ff4500\",royalblue:\"#4169e1\",powderblue:\"#b0e0e6\",red:\"#f00\",coral:\"#ff7f50\",turquoise:\"#40e0d0\",white:\"#fff\",whitesmoke:\"#f5f5f5\",wheat:\"#f5deb3\",teal:\"#008080\",steelblue:\"#4682b4\",bisque:\"#ffe4c4\",aquamarine:\"#7fffd4\",aqua:\"#0ff\",sienna:\"#a0522d\",silver:\"#c0c0c0\",springgreen:\"#00ff7f\",antiquewhite:\"#faebd7\",burlywood:\"#deb887\",brown:\"#a52a2a\",beige:\"#f5f5dc\",chocolate:\"#d2691e\",chartreuse:\"#7fff00\",cornflowerblue:\"#6495ed\",cornsilk:\"#fff8dc\",crimson:\"#dc143c\",cadetblue:\"#5f9ea0\",tomato:\"#ff6347\",fuchsia:\"#f0f\",blue:\"#00f\",salmon:\"#fa8072\",blanchedalmond:\"#ffebcd\",slateblue:\"#6a5acd\",slategray:\"#708090\",thistle:\"#d8bfd8\",tan:\"#d2b48c\",cyan:\"#0ff\",darkblue:\"#00008b\",darkcyan:\"#008b8b\",darkgoldenrod:\"#b8860b\",darkgray:\"#a9a9a9\",blueviolet:\"#8a2be2\",black:\"#000\",darkmagenta:\"#8b008b\",darkslateblue:\"#483d8b\",darkkhaki:\"#bdb76b\",darkorchid:\"#9932cc\",darkorange:\"#ff8c00\",darkgreen:\"#006400\",darkred:\"#8b0000\",dodgerblue:\"#1e90ff\",darkslategray:\"#2f4f4f\",dimgray:\"#696969\",deepskyblue:\"#00bfff\",firebrick:\"#b22222\",forestgreen:\"#228b22\",indigo:\"#4b0082\",ivory:\"#fffff0\",lavenderblush:\"#fff0f5\",feldspar:\"#d19275\",indianred:\"#cd5c5c\",lightgreen:\"#90ee90\",lightgrey:\"#d3d3d3\",lightskyblue:\"#87cefa\",lightslategray:\"#789\",lightslateblue:\"#8470ff\",snow:\"#fffafa\",lightseagreen:\"#20b2aa\",lightsalmon:\"#ffa07a\",darksalmon:\"#e9967a\",darkviolet:\"#9400d3\",mediumpurple:\"#9370d8\",mediumaquamarine:\"#66cdaa\",skyblue:\"#87ceeb\",lavender:\"#e6e6fa\",lightsteelblue:\"#b0c4de\",mediumvioletred:\"#c71585\",mintcream:\"#f5fffa\",navajowhite:\"#ffdead\",navy:\"#000080\",olivedrab:\"#6b8e23\",palevioletred:\"#d87093\",violetred:\"#d02090\",yellow:\"#ff0\",yellowgreen:\"#9acd32\",lawngreen:\"#7cfc00\",pink:\"#ffc0cb\",paleturquoise:\"#afeeee\",palegoldenrod:\"#eee8aa\",darkolivegreen:\"#556b2f\",darkseagreen:\"#8fbc8f\",darkturquoise:\"#00ced1\",peachpuff:\"#ffdab9\",deeppink:\"#ff1493\",violet:\"#ee82ee\",palegreen:\"#98fb98\",mediumseagreen:\"#3cb371\",peru:\"#cd853f\",saddlebrown:\"#8b4513\",sandybrown:\"#f4a460\",rosybrown:\"#bc8f8f\",purple:\"#800080\",seagreen:\"#2e8b57\",seashell:\"#fff5ee\",papayawhip:\"#ffefd5\",mediumslateblue:\"#7b68ee\",plum:\"#dda0dd\",mediumspringgreen:\"#00fa9a\"};function M(t){return t<0?0:t>255?255:Math.round(t)||0}function x(t){return t<=0||t>1?Math.min(Math.max(t,0),1):Math.round(1e4*t)/1e4}const S=/^#([0-9a-f])([0-9a-f])([0-9a-f])([0-9a-f])?$/i,k=/^#([0-9a-f]{2})([0-9a-f]{2})([0-9a-f]{2})([0-9a-f]{2})?$/i,y=/^rgb\\(\\s*(-?\\d{1,10})\\s*,\\s*(-?\\d{1,10})\\s*,\\s*(-?\\d{1,10})\\s*\\)$/,C=/^rgba\\(\\s*(-?\\d{1,10})\\s*,\\s*(-?\\d{1,10})\\s*,\\s*(-?\\d{1,10})\\s*,\\s*(-?\\d*\\.?\\d+)\\s*\\)$/;function T(t){(t=t.toLowerCase())in g&&(t=g[t]);{const i=C.exec(t)||y.exec(t);if(i)return[M(parseInt(i[1],10)),M(parseInt(i[2],10)),M(parseInt(i[3],10)),x(i.length<5?1:parseFloat(i[4]))]}{const i=k.exec(t);if(i)return[M(parseInt(i[1],16)),M(parseInt(i[2],16)),M(parseInt(i[3],16)),1]}{const i=S.exec(t);if(i)return[M(17*parseInt(i[1],16)),M(17*parseInt(i[2],16)),M(17*parseInt(i[3],16)),1]}throw new Error(`Cannot parse color: ${t}`)}function P(t){return.199*t[0]+.687*t[1]+.114*t[2]}function R(t){const i=T(t);return{t:`rgb(${i[0]}, ${i[1]}, ${i[2]})`,i:P(i)>160?\"black\":\"white\"}}class D{constructor(){this.h=[]}l(t,i,n){const s={o:t,_:i,u:!0===n};this.h.push(s)}v(t){const i=this.h.findIndex((i=>t===i.o));i>-1&&this.h.splice(i,1)}p(t){this.h=this.h.filter((i=>i._!==t))}m(t,i,n){const s=[...this.h];this.h=this.h.filter((t=>!t.u)),s.forEach((s=>s.o(t,i,n)))}M(){return this.h.length>0}S(){this.h=[]}}function V(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]:V(t[i],n[i]));return t}function O(t){return\"number\"==typeof t&&isFinite(t)}function B(t){return\"number\"==typeof t&&t%1==0}function A(t){return\"string\"==typeof t}function I(t){return\"boolean\"==typeof t}function z(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?z(e):e);return n}function L(t){return null!==t}function E(t){return null===t?void 0:t}const N=\"-apple-system, BlinkMacSystemFont, 'Trebuchet MS', Roboto, Ubuntu, sans-serif\";function F(t,i,n){return void 0===i&&(i=N),`${n=void 0!==n?`${n} `:\"\"}${t}px ${i}`}class W{constructor(t){this.k={C:1,T:5,P:NaN,R:\"\",D:\"\",V:\"\",O:\"\",B:0,A:0,I:0,L:0,N:0},this.F=t}W(){const t=this.k,i=this.j(),n=this.H();return t.P===i&&t.D===n||(t.P=i,t.D=n,t.R=F(i,n),t.L=2.5/12*i,t.B=t.L,t.A=i/12*t.T,t.I=i/12*t.T,t.N=0),t.V=this.$(),t.O=this.U(),this.k}$(){return this.F.W().layout.textColor}U(){return this.F.q()}j(){return this.F.W().layout.fontSize}H(){return this.F.W().layout.fontFamily}}class j{constructor(){this.Y=[]}Z(t){this.Y=t}X(t,i,n){this.Y.forEach((s=>{s.X(t,i,n)}))}}class H{X(t,i,n){t.useBitmapCoordinateSpace((t=>this.K(t,i,n)))}}class $ extends H{constructor(){super(...arguments),this.G=null}J(t){this.G=t}K({context:t,horizontalPixelRatio:i,verticalPixelRatio:n}){if(null===this.G||null===this.G.tt)return;const s=this.G.tt,e=this.G,r=Math.max(1,Math.floor(i))%2/2,h=h=>{t.beginPath();for(let l=s.to-1;l>=s.from;--l){const s=e.it[l],a=Math.round(s.nt*i)+r,o=s.st*n,_=h*n+r;t.moveTo(a,o),t.arc(a,o,_,0,2*Math.PI)}t.fill()};e.et>0&&(t.fillStyle=e.rt,h(e.ht+e.et)),t.fillStyle=e.lt,h(e.ht)}}function U(){return{it:[{nt:0,st:0,ot:0,_t:0}],lt:\"\",rt:\"\",ht:0,et:0,tt:null}}const q={from:0,to:1};class Y{constructor(t,i){this.ut=new j,this.ct=[],this.dt=[],this.ft=!0,this.F=t,this.vt=i,this.ut.Z(this.ct)}bt(t){const i=this.F.wt();i.length!==this.ct.length&&(this.dt=i.map(U),this.ct=this.dt.map((t=>{const i=new $;return i.J(t),i})),this.ut.Z(this.ct)),this.ft=!0}gt(){return this.ft&&(this.Mt(),this.ft=!1),this.ut}Mt(){const t=2===this.vt.W().mode,i=this.F.wt(),n=this.vt.xt(),s=this.F.St();i.forEach(((i,e)=>{var r;const h=this.dt[e],l=i.kt(n);if(t||null===l||!i.yt())return void(h.tt=null);const a=b(i.Ct());h.lt=l.Tt,h.ht=l.ht,h.et=l.Pt,h.it[0]._t=l._t,h.it[0].st=i.Dt().Rt(l._t,a.Vt),h.rt=null!==(r=l.Ot)&&void 0!==r?r:this.F.Bt(h.it[0].st/i.Dt().At()),h.it[0].ot=n,h.it[0].nt=s.It(n),h.tt=q}))}}class Z extends H{constructor(t){super(),this.zt=t}K({context:t,bitmapSize:i,horizontalPixelRatio:n,verticalPixelRatio:s}){if(null===this.zt)return;const e=this.zt.Lt.yt,r=this.zt.Et.yt;if(!e&&!r)return;const h=Math.round(this.zt.nt*n),l=Math.round(this.zt.st*s);t.lineCap=\"butt\",e&&h>=0&&(t.lineWidth=Math.floor(this.zt.Lt.et*n),t.strokeStyle=this.zt.Lt.V,t.fillStyle=this.zt.Lt.V,f(t,this.zt.Lt.Nt),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&&l>=0&&(t.lineWidth=Math.floor(this.zt.Et.et*s),t.strokeStyle=this.zt.Et.V,t.fillStyle=this.zt.Et.V,f(t,this.zt.Et.Nt),v(t,l,0,i.width))}}class X{constructor(t){this.ft=!0,this.Ft={Lt:{et:1,Nt:0,V:\"\",yt:!1},Et:{et:1,Nt:0,V:\"\",yt:!1},nt:0,st:0},this.Wt=new Z(this.Ft),this.jt=t}bt(){this.ft=!0}gt(){return this.ft&&(this.Mt(),this.ft=!1),this.Wt}Mt(){const t=this.jt.yt(),i=b(this.jt.Ht()),n=i.$t().W().crosshair,s=this.Ft;if(2===n.mode)return s.Et.yt=!1,void(s.Lt.yt=!1);s.Et.yt=t&&this.jt.Ut(i),s.Lt.yt=t&&this.jt.qt(),s.Et.et=n.horzLine.width,s.Et.Nt=n.horzLine.style,s.Et.V=n.horzLine.color,s.Lt.et=n.vertLine.width,s.Lt.Nt=n.vertLine.style,s.Lt.V=n.vertLine.color,s.nt=this.jt.Yt(),s.st=this.jt.Zt()}}function K(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 G(t,i,n,s,e,r){t.save(),t.globalCompositeOperation=\"copy\",t.fillStyle=r,t.fillRect(i,n,s,e),t.restore()}function J(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 Q(t,i,n,s,e,r,h=0,l=[0,0,0,0],a=\"\"){if(t.save(),!h||!a||a===r)return J(t,i,n,s,e,l),t.fillStyle=r,t.fill(),void t.restore();const o=h/2;var _;J(t,i+o,n+o,s-h,e-h,(_=-o,l.map((t=>0===t?t:t+_)))),\"transparent\"!==r&&(t.fillStyle=r,t.fill()),\"transparent\"!==a&&(t.lineWidth=h,t.strokeStyle=a,t.closePath(),t.stroke()),t.restore()}function tt(t,i,n,s,e,r,h){t.save(),t.globalCompositeOperation=\"copy\";const l=t.createLinearGradient(0,0,0,e);l.addColorStop(0,r),l.addColorStop(1,h),t.fillStyle=l,t.fillRect(i,n,s,e),t.restore()}class it{constructor(t,i){this.J(t,i)}J(t,i){this.zt=t,this.Xt=i}At(t,i){return this.zt.yt?t.P+t.L+t.B:0}X(t,i,n,s){if(!this.zt.yt||0===this.zt.Kt.length)return;const e=this.zt.V,r=this.Xt.t,h=t.useBitmapCoordinateSpace((t=>{const h=t.context;h.font=i.R;const l=this.Gt(t,i,n,s),a=l.Jt;return l.Qt?Q(h,a.ti,a.ii,a.ni,a.si,r,a.ei,[a.ht,0,0,a.ht],r):Q(h,a.ri,a.ii,a.ni,a.si,r,a.ei,[0,a.ht,a.ht,0],r),this.zt.hi&&(h.fillStyle=e,h.fillRect(a.ri,a.li,a.ai-a.ri,a.oi)),this.zt._i&&(h.fillStyle=i.O,h.fillRect(l.Qt?a.ui-a.ei:0,a.ii,a.ei,a.ci-a.ii)),l}));t.useMediaCoordinateSpace((({context:t})=>{const n=h.di;t.font=i.R,t.textAlign=h.Qt?\"right\":\"left\",t.textBaseline=\"middle\",t.fillStyle=e,t.fillText(this.zt.Kt,n.fi,(n.ii+n.ci)/2+n.pi)}))}Gt(t,i,n,s){var e;const{context:r,bitmapSize:h,mediaSize:l,horizontalPixelRatio:a,verticalPixelRatio:o}=t,_=this.zt.hi||!this.zt.mi?i.T:0,u=this.zt.bi?i.C:0,c=i.L+this.Xt.wi,d=i.B+this.Xt.gi,f=i.A,v=i.I,p=this.zt.Kt,m=i.P,b=n.Mi(r,p),w=Math.ceil(n.xi(r,p)),g=m+c+d,M=i.C+f+v+w+_,x=Math.max(1,Math.floor(o));let S=Math.round(g*o);S%2!=x%2&&(S+=1);const k=u>0?Math.max(1,Math.floor(u*a)):0,y=Math.round(M*a),C=Math.round(_*a),T=null!==(e=this.Xt.Si)&&void 0!==e?e:this.Xt.ki,P=Math.round(T*o)-Math.floor(.5*o),R=Math.floor(P+x/2-S/2),D=R+S,V=\"right\"===s,O=V?l.width-u:u,B=V?h.width-k:k;let A,I,z;return V?(A=B-y,I=B-C,z=O-_-f-u):(A=B+y,I=B+C,z=O+_+f),{Qt:V,Jt:{ii:R,li:P,ci:D,ni:y,si:S,ht:2*a,ei:k,ti:A,ri:B,ai:I,oi:x,ui:h.width},di:{ii:R/o,ci:D/o,fi:z,pi:b}}}}class nt{constructor(t){this.yi={ki:0,t:\"#000\",gi:0,wi:0},this.Ci={Kt:\"\",yt:!1,hi:!0,mi:!1,Ot:\"\",V:\"#FFF\",_i:!1,bi:!1},this.Ti={Kt:\"\",yt:!1,hi:!1,mi:!0,Ot:\"\",V:\"#FFF\",_i:!0,bi:!0},this.ft=!0,this.Pi=new(t||it)(this.Ci,this.yi),this.Ri=new(t||it)(this.Ti,this.yi)}Kt(){return this.Di(),this.Ci.Kt}ki(){return this.Di(),this.yi.ki}bt(){this.ft=!0}At(t,i=!1){return Math.max(this.Pi.At(t,i),this.Ri.At(t,i))}Vi(){return this.yi.Si||0}Oi(t){this.yi.Si=t}Bi(){return this.Di(),this.Ci.yt||this.Ti.yt}Ai(){return this.Di(),this.Ci.yt}gt(t){return this.Di(),this.Ci.hi=this.Ci.hi&&t.W().ticksVisible,this.Ti.hi=this.Ti.hi&&t.W().ticksVisible,this.Pi.J(this.Ci,this.yi),this.Ri.J(this.Ti,this.yi),this.Pi}Ii(){return this.Di(),this.Pi.J(this.Ci,this.yi),this.Ri.J(this.Ti,this.yi),this.Ri}Di(){this.ft&&(this.Ci.hi=!0,this.Ti.hi=!1,this.zi(this.Ci,this.Ti,this.yi))}}class st extends nt{constructor(t,i,n){super(),this.jt=t,this.Li=i,this.Ei=n}zi(t,i,n){if(t.yt=!1,2===this.jt.W().mode)return;const s=this.jt.W().horzLine;if(!s.labelVisible)return;const e=this.Li.Ct();if(!this.jt.yt()||this.Li.Ni()||null===e)return;const r=R(s.labelBackgroundColor);n.t=r.t,t.V=r.i;const h=2/12*this.Li.P();n.wi=h,n.gi=h;const l=this.Ei(this.Li);n.ki=l.ki,t.Kt=this.Li.Fi(l._t,e),t.yt=!0}}const et=/[1-9]/g;class rt{constructor(){this.zt=null}J(t){this.zt=t}X(t,i){if(null===this.zt||!1===this.zt.yt||0===this.zt.Kt.length)return;const n=t.useMediaCoordinateSpace((({context:t})=>(t.font=i.R,Math.round(i.Wi.xi(t,b(this.zt).Kt,et)))));if(n<=0)return;const s=i.ji,e=n+2*s,r=e/2,h=this.zt.Hi;let l=this.zt.ki,a=Math.floor(l-r)+.5;a<0?(l+=Math.abs(0-a),a=Math.floor(l-r)+.5):a+e>h&&(l-=Math.abs(h-(a+e)),a=Math.floor(l-r)+.5);const o=a+e,_=Math.ceil(0+i.C+i.T+i.L+i.P+i.B);t.useBitmapCoordinateSpace((({context:t,horizontalPixelRatio:n,verticalPixelRatio:s})=>{const e=b(this.zt);t.fillStyle=e.t;const r=Math.round(a*n),h=Math.round(0*s),l=Math.round(o*n),u=Math.round(_*s),c=Math.round(2*n);if(t.beginPath(),t.moveTo(r,h),t.lineTo(r,u-c),t.arcTo(r,u,r+c,u,c),t.lineTo(l-c,u),t.arcTo(l,u,l,u-c,c),t.lineTo(l,h),t.fill(),e.hi){const r=Math.round(e.ki*n),l=h,a=Math.round((l+i.T)*s);t.fillStyle=e.V;const o=Math.max(1,Math.floor(n)),_=Math.floor(.5*n);t.fillRect(r-_,l,o,a-l)}})),t.useMediaCoordinateSpace((({context:t})=>{const n=b(this.zt),e=0+i.C+i.T+i.L+i.P/2;t.font=i.R,t.textAlign=\"left\",t.textBaseline=\"middle\",t.fillStyle=n.V;const r=i.Wi.Mi(t,\"Apr0\");t.translate(a+s,e+r),t.fillText(n.Kt,0,0)}))}}class ht{constructor(t,i,n){this.ft=!0,this.Wt=new rt,this.Ft={yt:!1,t:\"#4c525e\",V:\"white\",Kt:\"\",Hi:0,ki:NaN,hi:!0},this.vt=t,this.$i=i,this.Ei=n}bt(){this.ft=!0}gt(){return this.ft&&(this.Mt(),this.ft=!1),this.Wt.J(this.Ft),this.Wt}Mt(){const t=this.Ft;if(t.yt=!1,2===this.vt.W().mode)return;const i=this.vt.W().vertLine;if(!i.labelVisible)return;const n=this.$i.St();if(n.Ni())return;t.Hi=n.Hi();const s=this.Ei();if(null===s)return;t.ki=s.ki;const e=n.Ui(this.vt.xt());t.Kt=n.qi(b(e)),t.yt=!0;const r=R(i.labelBackgroundColor);t.t=r.t,t.V=r.i,t.hi=n.W().ticksVisible}}class lt{constructor(){this.Yi=null,this.Zi=0}Xi(){return this.Zi}Ki(t){this.Zi=t}Dt(){return this.Yi}Gi(t){this.Yi=t}Ji(t){return[]}Qi(){return[]}yt(){return!0}}var at;!function(t){t[t.Normal=0]=\"Normal\",t[t.Magnet=1]=\"Magnet\",t[t.Hidden=2]=\"Hidden\"}(at||(at={}));class ot extends lt{constructor(t,i){super(),this.tn=null,this.nn=NaN,this.sn=0,this.en=!0,this.rn=new Map,this.hn=!1,this.ln=NaN,this.an=NaN,this._n=NaN,this.un=NaN,this.$i=t,this.cn=i,this.dn=new Y(t,this);this.fn=((t,i)=>n=>{const s=i(),e=t();if(n===b(this.tn).vn())return{_t:e,ki:s};{const t=b(n.Ct());return{_t:n.pn(s,t),ki:s}}})((()=>this.nn),(()=>this.an));const n=((t,i)=>()=>{const n=this.$i.St().mn(t()),s=i();return n&&Number.isFinite(s)?{ot:n,ki:s}:null})((()=>this.sn),(()=>this.Yt()));this.bn=new ht(this,t,n),this.wn=new X(this)}W(){return this.cn}gn(t,i){this._n=t,this.un=i}Mn(){this._n=NaN,this.un=NaN}xn(){return this._n}Sn(){return this.un}kn(t,i,n){this.hn||(this.hn=!0),this.en=!0,this.yn(t,i,n)}xt(){return this.sn}Yt(){return this.ln}Zt(){return this.an}yt(){return this.en}Cn(){this.en=!1,this.Tn(),this.nn=NaN,this.ln=NaN,this.an=NaN,this.tn=null,this.Mn()}Pn(t){return null!==this.tn?[this.wn,this.dn]:[]}Ut(t){return t===this.tn&&this.cn.horzLine.visible}qt(){return this.cn.vertLine.visible}Rn(t,i){this.en&&this.tn===t||this.rn.clear();const n=[];return this.tn===t&&n.push(this.Dn(this.rn,i,this.fn)),n}Qi(){return this.en?[this.bn]:[]}Ht(){return this.tn}Vn(){this.wn.bt(),this.rn.forEach((t=>t.bt())),this.bn.bt(),this.dn.bt()}On(t){return t&&!t.vn().Ni()?t.vn():null}yn(t,i,n){this.Bn(t,i,n)&&this.Vn()}Bn(t,i,n){const s=this.ln,e=this.an,r=this.nn,h=this.sn,l=this.tn,a=this.On(n);this.sn=t,this.ln=isNaN(t)?NaN:this.$i.St().It(t),this.tn=n;const o=null!==a?a.Ct():null;return null!==a&&null!==o?(this.nn=i,this.an=a.Rt(i,o)):(this.nn=NaN,this.an=NaN),s!==this.ln||e!==this.an||h!==this.sn||r!==this.nn||l!==this.tn}Tn(){const t=this.$i.wt().map((t=>t.In().An())).filter(L),i=0===t.length?null:Math.max(...t);this.sn=null!==i?i:NaN}Dn(t,i,n){let s=t.get(i);return void 0===s&&(s=new st(this,i,n),t.set(i,s)),s}}function _t(t){return\"left\"===t||\"right\"===t}class ut{constructor(t){this.zn=new Map,this.Ln=[],this.En=t}Nn(t,i){const n=function(t,i){return void 0===t?i:{Fn:Math.max(t.Fn,i.Fn),Wn:t.Wn||i.Wn}}(this.zn.get(t),i);this.zn.set(t,n)}jn(){return this.En}Hn(t){const i=this.zn.get(t);return void 0===i?{Fn:this.En}:{Fn:Math.max(this.En,i.Fn),Wn:i.Wn}}$n(){this.Un(),this.Ln=[{qn:0}]}Yn(t){this.Un(),this.Ln=[{qn:1,Vt:t}]}Zn(t){this.Xn(),this.Ln.push({qn:5,Vt:t})}Un(){this.Xn(),this.Ln.push({qn:6})}Kn(){this.Un(),this.Ln=[{qn:4}]}Gn(t){this.Un(),this.Ln.push({qn:2,Vt:t})}Jn(t){this.Un(),this.Ln.push({qn:3,Vt:t})}Qn(){return this.Ln}ts(t){for(const i of t.Ln)this.ns(i);this.En=Math.max(this.En,t.En),t.zn.forEach(((t,i)=>{this.Nn(i,t)}))}static ss(){return new ut(2)}static es(){return new ut(3)}ns(t){switch(t.qn){case 0:this.$n();break;case 1:this.Yn(t.Vt);break;case 2:this.Gn(t.Vt);break;case 3:this.Jn(t.Vt);break;case 4:this.Kn();break;case 5:this.Zn(t.Vt);break;case 6:this.Xn()}}Xn(){const t=this.Ln.findIndex((t=>5===t.qn));-1!==t&&this.Ln.splice(t,1)}}const ct=\".\";function dt(t,i){if(!O(t))return\"n/a\";if(!B(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 ft{constructor(t,i){if(i||(i=1),O(t)&&B(t)||(t=100),t<0)throw new TypeError(\"invalid base\");this.Li=t,this.rs=i,this.hs()}format(t){const i=t<0?\"−\":\"\";return t=Math.abs(t),i+this.ls(t)}hs(){if(this._s=0,this.Li>0&&this.rs>0){let t=this.Li;for(;t>1;)t/=10,this._s++}}ls(t){const i=this.Li/this.rs;let n=Math.floor(t),s=\"\";const e=void 0!==this._s?this._s:NaN;if(i>1){let r=+(Math.round(t*i)-n*i).toFixed(this._s);r>=i&&(r-=i,n+=1),s=ct+dt(+r.toFixed(this._s)*this.rs,e)}else n=Math.round(n*i)/i,e>0&&(s=ct+dt(0,e));return n.toFixed(0)+s}}class vt extends ft{constructor(t=100){super(t)}format(t){return`${super.format(t)}%`}}class pt{constructor(t){this.us=t}format(t){let i=\"\";return t<0&&(i=\"-\",t=-t),t<995?i+this.cs(t):t<999995?i+this.cs(t/1e3)+\"K\":t<999999995?(t=1e3*Math.round(t/1e3),i+this.cs(t/1e6)+\"M\"):(t=1e6*Math.round(t/1e6),i+this.cs(t/1e9)+\"B\")}cs(t){let i;const n=Math.pow(10,this.us);return i=(t=Math.round(t*n)/n)>=1e-15&&t<1?t.toFixed(this.us).replace(/\\.?0+$/,\"\"):String(t),i.replace(/(\\.[1-9]*)0+$/,((t,i)=>i))}}function mt(t,i,n,s,e,r,h){if(0===i.length||s.from>=i.length||s.to<=0)return;const{context:l,horizontalPixelRatio:a,verticalPixelRatio:o}=t,_=i[s.from];let u=r(t,_),c=_;if(s.to-s.from<2){const i=e/2;l.beginPath();const n={nt:_.nt-i,st:_.st},s={nt:_.nt+i,st:_.st};l.moveTo(n.nt*a,n.st*o),l.lineTo(s.nt*a,s.st*o),h(t,u,n,s)}else{const e=(i,n)=>{h(t,u,c,n),l.beginPath(),u=i,c=n};let d=c;l.beginPath(),l.moveTo(_.nt*a,_.st*o);for(let h=s.from+1;h<s.to;++h){d=i[h];const s=r(t,d);switch(n){case 0:l.lineTo(d.nt*a,d.st*o);break;case 1:l.lineTo(d.nt*a,i[h-1].st*o),s!==u&&(e(s,d),l.lineTo(d.nt*a,i[h-1].st*o)),l.lineTo(d.nt*a,d.st*o);break;case 2:{const[t,n]=Mt(i,h-1,h);l.bezierCurveTo(t.nt*a,t.st*o,n.nt*a,n.st*o,d.nt*a,d.st*o);break}}1!==n&&s!==u&&(e(s,d),l.moveTo(d.nt*a,d.st*o))}(c!==d||c===d&&1===n)&&h(t,u,c,d)}}const bt=6;function wt(t,i){return{nt:t.nt-i.nt,st:t.st-i.st}}function gt(t,i){return{nt:t.nt/i,st:t.st/i}}function Mt(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=gt(wt(t[n],t[s]),bt),{nt:r.nt+h.nt,st:r.st+h.st}),wt(t[n],gt(wt(t[e],t[i]),bt))]}function xt(t,i,n,s,e){const{context:r,horizontalPixelRatio:h,verticalPixelRatio:l}=i;r.lineTo(e.nt*h,t*l),r.lineTo(s.nt*h,t*l),r.closePath(),r.fillStyle=n,r.fill()}class St extends H{constructor(){super(...arguments),this.G=null}J(t){this.G=t}K(t){var i;if(null===this.G)return;const{it:n,tt:s,ds:e,et:r,Nt:h,fs:l}=this.G,a=null!==(i=this.G.vs)&&void 0!==i?i:this.G.ps?0:t.mediaSize.height;if(null===s)return;const o=t.context;o.lineCap=\"butt\",o.lineJoin=\"round\",o.lineWidth=r,f(o,h),o.lineWidth=1,mt(t,n,l,s,e,this.bs.bind(this),xt.bind(null,a))}}function kt(t,i,n){return Math.min(Math.max(t,i),n)}function yt(t,i,n){return i-t<=n}function Ct(t){const i=Math.ceil(t);return i%2==0?i-1:i}class Tt{ws(t,i){const n=this.gs,{Ms:s,xs:e,Ss:r,ks:h,ys:l,vs:a}=i;if(void 0===this.Cs||void 0===n||n.Ms!==s||n.xs!==e||n.Ss!==r||n.ks!==h||n.vs!==a||n.ys!==l){const n=t.context.createLinearGradient(0,0,0,l);if(n.addColorStop(0,s),null!=a){const i=kt(a*t.verticalPixelRatio/l,0,1);n.addColorStop(i,e),n.addColorStop(i,r)}n.addColorStop(1,h),this.Cs=n,this.gs=i}return this.Cs}}class Pt extends St{constructor(){super(...arguments),this.Ts=new Tt}bs(t,i){return this.Ts.ws(t,{Ms:i.Ps,xs:\"\",Ss:\"\",ks:i.Rs,ys:t.bitmapSize.height})}}function Rt(t,i){const n=t.context;n.strokeStyle=i,n.stroke()}class Dt extends H{constructor(){super(...arguments),this.G=null}J(t){this.G=t}K(t){if(null===this.G)return;const{it:i,tt:n,ds:s,fs:e,et:r,Nt:h,Ds:l}=this.G;if(null===n)return;const a=t.context;a.lineCap=\"butt\",a.lineWidth=r*t.verticalPixelRatio,f(a,h),a.lineJoin=\"round\";const o=this.Vs.bind(this);void 0!==e&&mt(t,i,e,n,s,o,Rt),l&&function(t,i,n,s,e){const{horizontalPixelRatio:r,verticalPixelRatio:h,context:l}=t;let a=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!==a&&(l.beginPath(),null!==a&&l.fill(),l.fillStyle=i,a=i);const n=Math.round(s.nt*r)+o,u=s.st*h;l.moveTo(n,u),l.arc(n,u,_,0,2*Math.PI)}}l.fill()}(t,i,l,n,o)}}class Vt extends Dt{Vs(t,i){return i.lt}}function Ot(t,i,n,s,e=0,r=i.length){let h=r-e;for(;0<h;){const r=h>>1,l=e+r;s(i[l],n)===t?(e=l+1,h-=r+1):h=r}return e}const Bt=Ot.bind(null,!0),At=Ot.bind(null,!1);function It(t,i){return t.ot<i}function zt(t,i){return i<t.ot}function Lt(t,i,n){const s=i.Os(),e=i.ui(),r=Bt(t,s,It),h=At(t,e,zt);if(!n)return{from:r,to:h};let l=r,a=h;return r>0&&r<t.length&&t[r].ot>=s&&(l=r-1),h>0&&h<t.length&&t[h-1].ot<=e&&(a=h+1),{from:l,to:a}}class Et{constructor(t,i,n){this.Bs=!0,this.As=!0,this.Is=!0,this.zs=[],this.Ls=null,this.Es=t,this.Ns=i,this.Fs=n}bt(t){this.Bs=!0,\"data\"===t&&(this.As=!0),\"options\"===t&&(this.Is=!0)}gt(){return this.Es.yt()?(this.Ws(),null===this.Ls?null:this.js):null}Hs(){this.zs=this.zs.map((t=>Object.assign(Object.assign({},t),this.Es.Us().$s(t.ot))))}qs(){this.Ls=null}Ws(){this.As&&(this.Ys(),this.As=!1),this.Is&&(this.Hs(),this.Is=!1),this.Bs&&(this.Zs(),this.Bs=!1)}Zs(){const t=this.Es.Dt(),i=this.Ns.St();if(this.qs(),i.Ni()||t.Ni())return;const n=i.Xs();if(null===n)return;if(0===this.Es.In().Ks())return;const s=this.Es.Ct();null!==s&&(this.Ls=Lt(this.zs,n,this.Fs),this.Gs(t,i,s.Vt),this.Js())}}class Nt extends Et{constructor(t,i){super(t,i,!0)}Gs(t,i,n){i.Qs(this.zs,E(this.Ls)),t.te(this.zs,n,E(this.Ls))}ie(t,i){return{ot:t,_t:i,nt:NaN,st:NaN}}Ys(){const t=this.Es.Us();this.zs=this.Es.In().ne().map((i=>{const n=i.Vt[3];return this.se(i.ee,n,t)}))}}class Ft extends Nt{constructor(t,i){super(t,i),this.js=new j,this.re=new Pt,this.he=new Vt,this.js.Z([this.re,this.he])}se(t,i,n){return Object.assign(Object.assign({},this.ie(t,i)),n.$s(t))}Js(){const t=this.Es.W();this.re.J({fs:t.lineType,it:this.zs,Nt:t.lineStyle,et:t.lineWidth,vs:null,ps:t.invertFilledArea,tt:this.Ls,ds:this.Ns.St().le()}),this.he.J({fs:t.lineVisible?t.lineType:void 0,it:this.zs,Nt:t.lineStyle,et:t.lineWidth,tt:this.Ls,ds:this.Ns.St().le(),Ds:t.pointMarkersVisible?t.pointMarkersRadius||t.lineWidth/2+2:void 0})}}class Wt extends H{constructor(){super(...arguments),this.zt=null,this.ae=0,this.oe=0}J(t){this.zt=t}K({context:t,horizontalPixelRatio:i,verticalPixelRatio:n}){if(null===this.zt||0===this.zt.In.length||null===this.zt.tt)return;if(this.ae=this._e(i),this.ae>=2){Math.max(1,Math.floor(i))%2!=this.ae%2&&this.ae--}this.oe=this.zt.ue?Math.min(this.ae,Math.floor(i)):this.ae;let s=null;const e=this.oe<=this.ae&&this.zt.le>=Math.floor(1.5*i);for(let r=this.zt.tt.from;r<this.zt.tt.to;++r){const h=this.zt.In[r];s!==h.ce&&(t.fillStyle=h.ce,s=h.ce);const l=Math.floor(.5*this.oe),a=Math.round(h.nt*i),o=a-l,_=this.oe,u=o+_-1,c=Math.min(h.de,h.fe),d=Math.max(h.de,h.fe),f=Math.round(c*n)-l,v=Math.round(d*n)+l,p=Math.max(v-f,this.oe);t.fillRect(o,f,_,p);const m=Math.ceil(1.5*this.ae);if(e){if(this.zt.ve){const i=a-m;let s=Math.max(f,Math.round(h.pe*n)-l),e=s+_-1;e>f+p-1&&(e=f+p-1,s=e-_+1),t.fillRect(i,s,o-i,e-s+1)}const i=a+m;let s=Math.max(f,Math.round(h.me*n)-l),e=s+_-1;e>f+p-1&&(e=f+p-1,s=e-_+1),t.fillRect(u+1,s,i-u,e-s+1)}}}_e(t){const i=Math.floor(t);return Math.max(i,Math.floor(function(t,i){return Math.floor(.3*t*i)}(b(this.zt).le,t)))}}class jt extends Et{constructor(t,i){super(t,i,!1)}Gs(t,i,n){i.Qs(this.zs,E(this.Ls)),t.be(this.zs,n,E(this.Ls))}we(t,i,n){return{ot:t,ge:i.Vt[0],Me:i.Vt[1],xe:i.Vt[2],Se:i.Vt[3],nt:NaN,pe:NaN,de:NaN,fe:NaN,me:NaN}}Ys(){const t=this.Es.Us();this.zs=this.Es.In().ne().map((i=>this.se(i.ee,i,t)))}}class Ht extends jt{constructor(){super(...arguments),this.js=new Wt}se(t,i,n){return Object.assign(Object.assign({},this.we(t,i,n)),n.$s(t))}Js(){const t=this.Es.W();this.js.J({In:this.zs,le:this.Ns.St().le(),ve:t.openVisible,ue:t.thinBars,tt:this.Ls})}}class $t extends St{constructor(){super(...arguments),this.Ts=new Tt}bs(t,i){const n=this.G;return this.Ts.ws(t,{Ms:i.ke,xs:i.ye,Ss:i.Ce,ks:i.Te,ys:t.bitmapSize.height,vs:n.vs})}}class Ut extends Dt{constructor(){super(...arguments),this.Pe=new Tt}Vs(t,i){const n=this.G;return this.Pe.ws(t,{Ms:i.Re,xs:i.Re,Ss:i.De,ks:i.De,ys:t.bitmapSize.height,vs:n.vs})}}class qt extends Nt{constructor(t,i){super(t,i),this.js=new j,this.Ve=new $t,this.Oe=new Ut,this.js.Z([this.Ve,this.Oe])}se(t,i,n){return Object.assign(Object.assign({},this.ie(t,i)),n.$s(t))}Js(){const t=this.Es.Ct();if(null===t)return;const i=this.Es.W(),n=this.Es.Dt().Rt(i.baseValue.price,t.Vt),s=this.Ns.St().le();this.Ve.J({it:this.zs,et:i.lineWidth,Nt:i.lineStyle,fs:i.lineType,vs:n,ps:!1,tt:this.Ls,ds:s}),this.Oe.J({it:this.zs,et:i.lineWidth,Nt:i.lineStyle,fs:i.lineVisible?i.lineType:void 0,Ds:i.pointMarkersVisible?i.pointMarkersRadius||i.lineWidth/2+2:void 0,vs:n,tt:this.Ls,ds:s})}}class Yt extends H{constructor(){super(...arguments),this.zt=null,this.ae=0}J(t){this.zt=t}K(t){if(null===this.zt||0===this.zt.In.length||null===this.zt.tt)return;const{horizontalPixelRatio:i}=t;if(this.ae=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.zt.le,i),this.ae>=2){Math.floor(i)%2!=this.ae%2&&this.ae--}const n=this.zt.In;this.zt.Be&&this.Ae(t,n,this.zt.tt),this.zt._i&&this.Ie(t,n,this.zt.tt);const s=this.ze(i);(!this.zt._i||this.ae>2*s)&&this.Le(t,n,this.zt.tt)}Ae(t,i,n){if(null===this.zt)return;const{context:s,horizontalPixelRatio:e,verticalPixelRatio:r}=t;let h=\"\",l=Math.min(Math.floor(e),Math.floor(this.zt.le*e));l=Math.max(Math.floor(e),Math.min(l,this.ae));const a=Math.floor(.5*l);let o=null;for(let t=n.from;t<n.to;t++){const n=i[t];n.Ee!==h&&(s.fillStyle=n.Ee,h=n.Ee);const _=Math.round(Math.min(n.pe,n.me)*r),u=Math.round(Math.max(n.pe,n.me)*r),c=Math.round(n.de*r),d=Math.round(n.fe*r);let f=Math.round(e*n.nt)-a;const v=f+l-1;null!==o&&(f=Math.max(o+1,f),f=Math.min(f,v));const p=v-f+1;s.fillRect(f,c,p,_-c),s.fillRect(f,u+1,p,d-u),o=v}}ze(t){let i=Math.floor(1*t);this.ae<=2*i&&(i=Math.floor(.5*(this.ae-1)));const n=Math.max(Math.floor(t),i);return this.ae<=2*n?Math.max(Math.floor(t),Math.floor(1*t)):n}Ie(t,i,n){if(null===this.zt)return;const{context:s,horizontalPixelRatio:e,verticalPixelRatio:r}=t;let h=\"\";const l=this.ze(e);let a=null;for(let t=n.from;t<n.to;t++){const n=i[t];n.Ne!==h&&(s.fillStyle=n.Ne,h=n.Ne);let o=Math.round(n.nt*e)-Math.floor(.5*this.ae);const _=o+this.ae-1,u=Math.round(Math.min(n.pe,n.me)*r),c=Math.round(Math.max(n.pe,n.me)*r);if(null!==a&&(o=Math.max(a+1,o),o=Math.min(o,_)),this.zt.le*e>2*l)K(s,o,u,_-o+1,c-u+1,l);else{const t=_-o+1;s.fillRect(o,u,t,c-u+1)}a=_}}Le(t,i,n){if(null===this.zt)return;const{context:s,horizontalPixelRatio:e,verticalPixelRatio:r}=t;let h=\"\";const l=this.ze(e);for(let t=n.from;t<n.to;t++){const n=i[t];let a=Math.round(Math.min(n.pe,n.me)*r),o=Math.round(Math.max(n.pe,n.me)*r),_=Math.round(n.nt*e)-Math.floor(.5*this.ae),u=_+this.ae-1;if(n.ce!==h){const t=n.ce;s.fillStyle=t,h=t}this.zt._i&&(_+=l,a+=l,u-=l,o-=l),a>o||s.fillRect(_,a,u-_+1,o-a+1)}}}class Zt extends jt{constructor(){super(...arguments),this.js=new Yt}se(t,i,n){return Object.assign(Object.assign({},this.we(t,i,n)),n.$s(t))}Js(){const t=this.Es.W();this.js.J({In:this.zs,le:this.Ns.St().le(),Be:t.wickVisible,_i:t.borderVisible,tt:this.Ls})}}class Xt{constructor(t,i){this.Fe=t,this.Li=i}X(t,i,n){this.Fe.draw(t,this.Li,i,n)}}class Kt extends Et{constructor(t,i,n){super(t,i,!1),this.wn=n,this.js=new Xt(this.wn.renderer(),(i=>{const n=t.Ct();return null===n?null:t.Dt().Rt(i,n.Vt)}))}We(t){return this.wn.priceValueBuilder(t)}je(t){return this.wn.isWhitespace(t)}Ys(){const t=this.Es.Us();this.zs=this.Es.In().ne().map((i=>Object.assign(Object.assign({ot:i.ee,nt:NaN},t.$s(i.ee)),{He:i.$e})))}Gs(t,i){i.Qs(this.zs,E(this.Ls))}Js(){this.wn.update({bars:this.zs.map(Gt),barSpacing:this.Ns.St().le(),visibleRange:this.Ls},this.Es.W())}}function Gt(t){return{x:t.nt,time:t.ot,originalData:t.He,barColor:t.ce}}class Jt extends H{constructor(){super(...arguments),this.zt=null,this.Ue=[]}J(t){this.zt=t,this.Ue=[]}K({context:t,horizontalPixelRatio:i,verticalPixelRatio:n}){if(null===this.zt||0===this.zt.it.length||null===this.zt.tt)return;this.Ue.length||this.qe(i);const s=Math.max(1,Math.floor(n)),e=Math.round(this.zt.Ye*n)-Math.floor(s/2),r=e+s;for(let i=this.zt.tt.from;i<this.zt.tt.to;i++){const h=this.zt.it[i],l=this.Ue[i-this.zt.tt.from],a=Math.round(h.st*n);let o,_;t.fillStyle=h.ce,a<=e?(o=a,_=r):(o=e,_=a-Math.floor(s/2)+s),t.fillRect(l.Os,o,l.ui-l.Os+1,_-o)}}qe(t){if(null===this.zt||0===this.zt.it.length||null===this.zt.tt)return void(this.Ue=[]);const i=Math.ceil(this.zt.le*t)<=1?0:Math.max(1,Math.floor(t)),n=Math.round(this.zt.le*t)-i;this.Ue=new Array(this.zt.tt.to-this.zt.tt.from);for(let i=this.zt.tt.from;i<this.zt.tt.to;i++){const s=this.zt.it[i],e=Math.round(s.nt*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.Ue[i-this.zt.tt.from]={Os:r,ui:h,Ze:e,Xe:s.nt*t,ot:s.ot}}for(let t=this.zt.tt.from+1;t<this.zt.tt.to;t++){const n=this.Ue[t-this.zt.tt.from],s=this.Ue[t-this.zt.tt.from-1];n.ot===s.ot+1&&(n.Os-s.ui!==i+1&&(s.Ze>s.Xe?s.ui=n.Os-i-1:n.Os=s.ui+i+1))}let s=Math.ceil(this.zt.le*t);for(let t=this.zt.tt.from;t<this.zt.tt.to;t++){const i=this.Ue[t-this.zt.tt.from];i.ui<i.Os&&(i.ui=i.Os);const n=i.ui-i.Os+1;s=Math.min(n,s)}if(i>0&&s<4)for(let t=this.zt.tt.from;t<this.zt.tt.to;t++){const i=this.Ue[t-this.zt.tt.from];i.ui-i.Os+1>s&&(i.Ze>i.Xe?i.ui-=1:i.Os+=1)}}}class Qt extends Nt{constructor(){super(...arguments),this.js=new Jt}se(t,i,n){return Object.assign(Object.assign({},this.ie(t,i)),n.$s(t))}Js(){const t={it:this.zs,le:this.Ns.St().le(),tt:this.Ls,Ye:this.Es.Dt().Rt(this.Es.W().base,b(this.Es.Ct()).Vt)};this.js.J(t)}}class ti extends Nt{constructor(){super(...arguments),this.js=new Vt}se(t,i,n){return Object.assign(Object.assign({},this.ie(t,i)),n.$s(t))}Js(){const t=this.Es.W(),i={it:this.zs,Nt:t.lineStyle,fs:t.lineVisible?t.lineType:void 0,et:t.lineWidth,Ds:t.pointMarkersVisible?t.pointMarkersRadius||t.lineWidth/2+2:void 0,tt:this.Ls,ds:this.Ns.St().le()};this.js.J(i)}}const ii=/[2-9]/g;class ni{constructor(t=50){this.Ke=0,this.Ge=1,this.Je=1,this.Qe={},this.tr=new Map,this.ir=t}nr(){this.Ke=0,this.tr.clear(),this.Ge=1,this.Je=1,this.Qe={}}xi(t,i,n){return this.sr(t,i,n).width}Mi(t,i,n){const s=this.sr(t,i,n);return((s.actualBoundingBoxAscent||0)-(s.actualBoundingBoxDescent||0))/2}sr(t,i,n){const s=n||ii,e=String(i).replace(s,\"0\");if(this.tr.has(e))return m(this.tr.get(e)).er;if(this.Ke===this.ir){const t=this.Qe[this.Je];delete this.Qe[this.Je],this.tr.delete(t),this.Je++,this.Ke--}t.save(),t.textBaseline=\"middle\";const r=t.measureText(e);return t.restore(),0===r.width&&i.length||(this.tr.set(e,{er:r,rr:this.Ge}),this.Qe[this.Ge]=e,this.Ke++,this.Ge++),r}}class si{constructor(t){this.hr=null,this.k=null,this.lr=\"right\",this.ar=t}_r(t,i,n){this.hr=t,this.k=i,this.lr=n}X(t){null!==this.k&&null!==this.hr&&this.hr.X(t,this.k,this.ar,this.lr)}}class ei{constructor(t,i,n){this.ur=t,this.ar=new ni(50),this.cr=i,this.F=n,this.j=-1,this.Wt=new si(this.ar)}gt(){const t=this.F.dr(this.cr);if(null===t)return null;const i=t.vr(this.cr)?t.pr():this.cr.Dt();if(null===i)return null;const n=t.mr(i);if(\"overlay\"===n)return null;const s=this.F.br();return s.P!==this.j&&(this.j=s.P,this.ar.nr()),this.Wt._r(this.ur.Ii(),s,n),this.Wt}}class ri extends H{constructor(){super(...arguments),this.zt=null}J(t){this.zt=t}wr(t,i){var n;if(!(null===(n=this.zt)||void 0===n?void 0:n.yt))return null;const{st:s,et:e,gr:r}=this.zt;return i>=s-e-7&&i<=s+e+7?{Mr:this.zt,gr:r}:null}K({context:t,bitmapSize:i,horizontalPixelRatio:n,verticalPixelRatio:s}){if(null===this.zt)return;if(!1===this.zt.yt)return;const e=Math.round(this.zt.st*s);e<0||e>i.height||(t.lineCap=\"butt\",t.strokeStyle=this.zt.V,t.lineWidth=Math.floor(this.zt.et*n),f(t,this.zt.Nt),v(t,e,0,i.width))}}class hi{constructor(t){this.Sr={st:0,V:\"rgba(0, 0, 0, 0)\",et:1,Nt:0,yt:!1},this.kr=new ri,this.ft=!0,this.Es=t,this.Ns=t.$t(),this.kr.J(this.Sr)}bt(){this.ft=!0}gt(){return this.Es.yt()?(this.ft&&(this.yr(),this.ft=!1),this.kr):null}}class li extends hi{constructor(t){super(t)}yr(){this.Sr.yt=!1;const t=this.Es.Dt(),i=t.Cr().Cr;if(2!==i&&3!==i)return;const n=this.Es.W();if(!n.baseLineVisible||!this.Es.yt())return;const s=this.Es.Ct();null!==s&&(this.Sr.yt=!0,this.Sr.st=t.Rt(s.Vt,s.Vt),this.Sr.V=n.baseLineColor,this.Sr.et=n.baseLineWidth,this.Sr.Nt=n.baseLineStyle)}}class ai extends H{constructor(){super(...arguments),this.zt=null}J(t){this.zt=t}$e(){return this.zt}K({context:t,horizontalPixelRatio:i,verticalPixelRatio:n}){const s=this.zt;if(null===s)return;const e=Math.max(1,Math.floor(i)),r=e%2/2,h=Math.round(s.Xe.x*i)+r,l=s.Xe.y*n;t.fillStyle=s.Tr,t.beginPath();const a=Math.max(2,1.5*s.Pr)*i;t.arc(h,l,a,0,2*Math.PI,!1),t.fill(),t.fillStyle=s.Rr,t.beginPath(),t.arc(h,l,s.ht*i,0,2*Math.PI,!1),t.fill(),t.lineWidth=e,t.strokeStyle=s.Dr,t.beginPath(),t.arc(h,l,s.ht*i+e/2,0,2*Math.PI,!1),t.stroke()}}const oi=[{Vr:0,Or:.25,Br:4,Ar:10,Ir:.25,zr:0,Lr:.4,Er:.8},{Vr:.25,Or:.525,Br:10,Ar:14,Ir:0,zr:0,Lr:.8,Er:0},{Vr:.525,Or:1,Br:14,Ar:14,Ir:0,zr:0,Lr:0,Er:0}];function _i(t,i,n,s){return function(t,i){if(\"transparent\"===t)return t;const n=T(t),s=n[3];return`rgba(${n[0]}, ${n[1]}, ${n[2]}, ${i*s})`}(t,n+(s-n)*i)}function ui(t,i){const n=t%2600/2600;let s;for(const t of oi)if(n>=t.Vr&&n<=t.Or){s=t;break}p(void 0!==s,\"Last price animation internal logic error\");const e=(n-s.Vr)/(s.Or-s.Vr);return{Rr:_i(i,e,s.Ir,s.zr),Dr:_i(i,e,s.Lr,s.Er),ht:(r=e,h=s.Br,l=s.Ar,h+(l-h)*r)};var r,h,l}class ci{constructor(t){this.Wt=new ai,this.ft=!0,this.Nr=!0,this.Fr=performance.now(),this.Wr=this.Fr-1,this.jr=t}Hr(){this.Wr=this.Fr-1,this.bt()}$r(){if(this.bt(),2===this.jr.W().lastPriceAnimation){const t=performance.now(),i=this.Wr-t;if(i>0)return void(i<650&&(this.Wr+=2600));this.Fr=t,this.Wr=t+2600}}bt(){this.ft=!0}Ur(){this.Nr=!0}yt(){return 0!==this.jr.W().lastPriceAnimation}qr(){switch(this.jr.W().lastPriceAnimation){case 0:return!1;case 1:return!0;case 2:return performance.now()<=this.Wr}}gt(){return this.ft?(this.Mt(),this.ft=!1,this.Nr=!1):this.Nr&&(this.Yr(),this.Nr=!1),this.Wt}Mt(){this.Wt.J(null);const t=this.jr.$t().St(),i=t.Xs(),n=this.jr.Ct();if(null===i||null===n)return;const s=this.jr.Zr(!0);if(s.Xr||!i.Kr(s.ee))return;const e={x:t.It(s.ee),y:this.jr.Dt().Rt(s._t,n.Vt)},r=s.V,h=this.jr.W().lineWidth,l=ui(this.Gr(),r);this.Wt.J({Tr:r,Pr:h,Rr:l.Rr,Dr:l.Dr,ht:l.ht,Xe:e})}Yr(){const t=this.Wt.$e();if(null!==t){const i=ui(this.Gr(),t.Tr);t.Rr=i.Rr,t.Dr=i.Dr,t.ht=i.ht}}Gr(){return this.qr()?performance.now()-this.Fr:2599}}function di(t,i){return Ct(Math.min(Math.max(t,12),30)*i)}function fi(t,i){switch(t){case\"arrowDown\":case\"arrowUp\":return di(i,1);case\"circle\":return di(i,.8);case\"square\":return di(i,.7)}}function vi(t){return function(t){const i=Math.ceil(t);return i%2!=0?i-1:i}(di(t,1))}function pi(t){return Math.max(di(t,.1),3)}function mi(t,i,n){return i?t:n?Math.ceil(t/2):0}function bi(t,i,n,s,e){const r=fi(\"square\",n),h=(r-1)/2,l=t-h,a=i-h;return s>=l&&s<=l+r&&e>=a&&e<=a+r}function wi(t,i,n,s){const e=(fi(\"arrowUp\",s)-1)/2*n.Jr,r=(Ct(s/2)-1)/2*n.Jr;i.beginPath(),t?(i.moveTo(n.nt-e,n.st),i.lineTo(n.nt,n.st-e),i.lineTo(n.nt+e,n.st),i.lineTo(n.nt+r,n.st),i.lineTo(n.nt+r,n.st+e),i.lineTo(n.nt-r,n.st+e),i.lineTo(n.nt-r,n.st)):(i.moveTo(n.nt-e,n.st),i.lineTo(n.nt,n.st+e),i.lineTo(n.nt+e,n.st),i.lineTo(n.nt+r,n.st),i.lineTo(n.nt+r,n.st-e),i.lineTo(n.nt-r,n.st-e),i.lineTo(n.nt-r,n.st)),i.fill()}function gi(t,i,n,s,e,r){return bi(i,n,s,e,r)}class Mi extends H{constructor(){super(...arguments),this.zt=null,this.ar=new ni,this.j=-1,this.H=\"\",this.Qr=\"\"}J(t){this.zt=t}_r(t,i){this.j===t&&this.H===i||(this.j=t,this.H=i,this.Qr=F(t,i),this.ar.nr())}wr(t,i){if(null===this.zt||null===this.zt.tt)return null;for(let n=this.zt.tt.from;n<this.zt.tt.to;n++){const s=this.zt.it[n];if(Si(s,t,i))return{Mr:s.th,gr:s.gr}}return null}K({context:t,horizontalPixelRatio:i,verticalPixelRatio:n},s,e){if(null!==this.zt&&null!==this.zt.tt){t.textBaseline=\"middle\",t.font=this.Qr;for(let s=this.zt.tt.from;s<this.zt.tt.to;s++){const e=this.zt.it[s];void 0!==e.Kt&&(e.Kt.Hi=this.ar.xi(t,e.Kt.ih),e.Kt.At=this.j,e.Kt.nt=e.nt-e.Kt.Hi/2),xi(e,t,i,n)}}}}function xi(t,i,n,s){i.fillStyle=t.V,void 0!==t.Kt&&function(t,i,n,s,e,r){t.save(),t.scale(e,r),t.fillText(i,n,s),t.restore()}(i,t.Kt.ih,t.Kt.nt,t.Kt.st,n,s),function(t,i,n){if(0===t.Ks)return;switch(t.nh){case\"arrowDown\":return void wi(!1,i,n,t.Ks);case\"arrowUp\":return void wi(!0,i,n,t.Ks);case\"circle\":return void function(t,i,n){const s=(fi(\"circle\",n)-1)/2;t.beginPath(),t.arc(i.nt,i.st,s*i.Jr,0,2*Math.PI,!1),t.fill()}(i,n,t.Ks);case\"square\":return void function(t,i,n){const s=fi(\"square\",n),e=(s-1)*i.Jr/2,r=i.nt-e,h=i.st-e;t.fillRect(r,h,s*i.Jr,s*i.Jr)}(i,n,t.Ks)}t.nh}(t,i,function(t,i,n){const s=Math.max(1,Math.floor(i))%2/2;return{nt:Math.round(t.nt*i)+s,st:t.st*n,Jr:i}}(t,n,s))}function Si(t,i,n){return!(void 0===t.Kt||!function(t,i,n,s,e,r){const h=s/2;return e>=t&&e<=t+n&&r>=i-h&&r<=i+h}(t.Kt.nt,t.Kt.st,t.Kt.Hi,t.Kt.At,i,n))||function(t,i,n){if(0===t.Ks)return!1;switch(t.nh){case\"arrowDown\":case\"arrowUp\":return gi(0,t.nt,t.st,t.Ks,i,n);case\"circle\":return function(t,i,n,s,e){const r=2+fi(\"circle\",n)/2,h=t-s,l=i-e;return Math.sqrt(h*h+l*l)<=r}(t.nt,t.st,t.Ks,i,n);case\"square\":return bi(t.nt,t.st,t.Ks,i,n)}}(t,i,n)}function ki(t,i,n,s,e,r,h,l,a){const o=O(n)?n:n.Se,_=O(n)?n:n.Me,u=O(n)?n:n.xe,c=O(i.size)?Math.max(i.size,0):1,d=vi(l.le())*c,f=d/2;switch(t.Ks=d,i.position){case\"inBar\":return t.st=h.Rt(o,a),void(void 0!==t.Kt&&(t.Kt.st=t.st+f+r+.6*e));case\"aboveBar\":return t.st=h.Rt(_,a)-f-s.sh,void 0!==t.Kt&&(t.Kt.st=t.st-f-.6*e,s.sh+=1.2*e),void(s.sh+=d+r);case\"belowBar\":return t.st=h.Rt(u,a)+f+s.eh,void 0!==t.Kt&&(t.Kt.st=t.st+f+r+.6*e,s.eh+=1.2*e),void(s.eh+=d+r)}i.position}class yi{constructor(t,i){this.ft=!0,this.rh=!0,this.hh=!0,this.ah=null,this.oh=null,this.Wt=new Mi,this.jr=t,this.$i=i,this.zt={it:[],tt:null}}bt(t){this.ft=!0,this.hh=!0,\"data\"===t&&(this.rh=!0,this.oh=null)}gt(t){if(!this.jr.yt())return null;this.ft&&this._h();const i=this.$i.W().layout;return this.Wt._r(i.fontSize,i.fontFamily),this.Wt.J(this.zt),this.Wt}uh(){if(this.hh){if(this.jr.dh().length>0){const t=this.$i.St().le(),i=pi(t),n=1.5*vi(t)+2*i,s=this.fh();this.ah={above:mi(n,s.aboveBar,s.inBar),below:mi(n,s.belowBar,s.inBar)}}else this.ah=null;this.hh=!1}return this.ah}fh(){return null===this.oh&&(this.oh=this.jr.dh().reduce(((t,i)=>(t[i.position]||(t[i.position]=!0),t)),{inBar:!1,aboveBar:!1,belowBar:!1})),this.oh}_h(){const t=this.jr.Dt(),i=this.$i.St(),n=this.jr.dh();this.rh&&(this.zt.it=n.map((t=>({ot:t.time,nt:0,st:0,Ks:0,nh:t.shape,V:t.color,th:t.th,gr:t.id,Kt:void 0}))),this.rh=!1);const s=this.$i.W().layout;this.zt.tt=null;const e=i.Xs();if(null===e)return;const r=this.jr.Ct();if(null===r)return;if(0===this.zt.it.length)return;let h=NaN;const l=pi(i.le()),a={sh:l,eh:l};this.zt.tt=Lt(this.zt.it,e,!0);for(let e=this.zt.tt.from;e<this.zt.tt.to;e++){const o=n[e];o.time!==h&&(a.sh=l,a.eh=l,h=o.time);const _=this.zt.it[e];_.nt=i.It(o.time),void 0!==o.text&&o.text.length>0&&(_.Kt={ih:o.text,nt:0,st:0,Hi:0,At:0});const u=this.jr.ph(o.time);null!==u&&ki(_,o,u,a,s.fontSize,l,t,i,r.Vt)}this.ft=!1}}class Ci extends hi{constructor(t){super(t)}yr(){const t=this.Sr;t.yt=!1;const i=this.Es.W();if(!i.priceLineVisible||!this.Es.yt())return;const n=this.Es.Zr(0===i.priceLineSource);n.Xr||(t.yt=!0,t.st=n.ki,t.V=this.Es.mh(n.V),t.et=i.priceLineWidth,t.Nt=i.priceLineStyle)}}class Ti extends nt{constructor(t){super(),this.jt=t}zi(t,i,n){t.yt=!1,i.yt=!1;const s=this.jt;if(!s.yt())return;const e=s.W(),r=e.lastValueVisible,h=\"\"!==s.bh(),l=0===e.seriesLastValueMode,a=s.Zr(!1);if(a.Xr)return;r&&(t.Kt=this.wh(a,r,l),t.yt=0!==t.Kt.length),(h||l)&&(i.Kt=this.gh(a,r,h,l),i.yt=i.Kt.length>0);const o=s.mh(a.V),_=R(o);n.t=_.t,n.ki=a.ki,i.Ot=s.$t().Bt(a.ki/s.Dt().At()),t.Ot=o,t.V=_.i,i.V=_.i}gh(t,i,n,s){let e=\"\";const r=this.jt.bh();return n&&0!==r.length&&(e+=`${r} `),i&&s&&(e+=this.jt.Dt().Mh()?t.xh:t.Sh),e.trim()}wh(t,i,n){return i?n?this.jt.Dt().Mh()?t.Sh:t.xh:t.Kt:\"\"}}function Pi(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 Ri{constructor(t,i){this.kh=t,this.yh=i}Ch(t){return null!==t&&(this.kh===t.kh&&this.yh===t.yh)}Th(){return new Ri(this.kh,this.yh)}Ph(){return this.kh}Rh(){return this.yh}Dh(){return this.yh-this.kh}Ni(){return this.yh===this.kh||Number.isNaN(this.yh)||Number.isNaN(this.kh)}ts(t){return null===t?this:new Ri(Pi(Math.min,this.Ph(),t.Ph(),-1/0),Pi(Math.max,this.Rh(),t.Rh(),1/0))}Vh(t){if(!O(t))return;if(0===this.yh-this.kh)return;const i=.5*(this.yh+this.kh);let n=this.yh-i,s=this.kh-i;n*=t,s*=t,this.yh=i+n,this.kh=i+s}Oh(t){O(t)&&(this.yh+=t,this.kh+=t)}Bh(){return{minValue:this.kh,maxValue:this.yh}}static Ah(t){return null===t?null:new Ri(t.minValue,t.maxValue)}}class Di{constructor(t,i){this.Ih=t,this.zh=i||null}Lh(){return this.Ih}Eh(){return this.zh}Bh(){return null===this.Ih?null:{priceRange:this.Ih.Bh(),margins:this.zh||void 0}}static Ah(t){return null===t?null:new Di(Ri.Ah(t.priceRange),t.margins)}}class Vi extends hi{constructor(t,i){super(t),this.Nh=i}yr(){const t=this.Sr;t.yt=!1;const i=this.Nh.W();if(!this.Es.yt()||!i.lineVisible)return;const n=this.Nh.Fh();null!==n&&(t.yt=!0,t.st=n,t.V=i.color,t.et=i.lineWidth,t.Nt=i.lineStyle,t.gr=this.Nh.W().id)}}class Oi extends nt{constructor(t,i){super(),this.jr=t,this.Nh=i}zi(t,i,n){t.yt=!1,i.yt=!1;const s=this.Nh.W(),e=s.axisLabelVisible,r=\"\"!==s.title,h=this.jr;if(!e||!h.yt())return;const l=this.Nh.Fh();if(null===l)return;r&&(i.Kt=s.title,i.yt=!0),i.Ot=h.$t().Bt(l/h.Dt().At()),t.Kt=this.Wh(s.price),t.yt=!0;const a=R(s.axisLabelColor||s.color);n.t=a.t;const o=s.axisLabelTextColor||a.i;t.V=o,i.V=o,n.ki=l}Wh(t){const i=this.jr.Ct();return null===i?\"\":this.jr.Dt().Fi(t,i.Vt)}}class Bi{constructor(t,i){this.jr=t,this.cn=i,this.jh=new Vi(t,this),this.ur=new Oi(t,this),this.Hh=new ei(this.ur,t,t.$t())}$h(t){V(this.cn,t),this.bt(),this.jr.$t().Uh()}W(){return this.cn}qh(){return this.jh}Yh(){return this.Hh}Zh(){return this.ur}bt(){this.jh.bt(),this.ur.bt()}Fh(){const t=this.jr,i=t.Dt();if(t.$t().St().Ni()||i.Ni())return null;const n=t.Ct();return null===n?null:i.Rt(this.cn.price,n.Vt)}}class Ai extends lt{constructor(t){super(),this.$i=t}$t(){return this.$i}}const Ii={Bar:(t,i,n,s)=>{var e;const r=i.upColor,h=i.downColor,l=b(t(n,s)),a=w(l.Vt[0])<=w(l.Vt[3]);return{ce:null!==(e=l.V)&&void 0!==e?e:a?r:h}},Candlestick:(t,i,n,s)=>{var e,r,h;const l=i.upColor,a=i.downColor,o=i.borderUpColor,_=i.borderDownColor,u=i.wickUpColor,c=i.wickDownColor,d=b(t(n,s)),f=w(d.Vt[0])<=w(d.Vt[3]);return{ce:null!==(e=d.V)&&void 0!==e?e:f?l:a,Ne:null!==(r=d.Ot)&&void 0!==r?r:f?o:_,Ee:null!==(h=d.Xh)&&void 0!==h?h:f?u:c}},Custom:(t,i,n,s)=>{var e;return{ce:null!==(e=b(t(n,s)).V)&&void 0!==e?e:i.color}},Area:(t,i,n,s)=>{var e,r,h,l;const a=b(t(n,s));return{ce:null!==(e=a.lt)&&void 0!==e?e:i.lineColor,lt:null!==(r=a.lt)&&void 0!==r?r:i.lineColor,Ps:null!==(h=a.Ps)&&void 0!==h?h:i.topColor,Rs:null!==(l=a.Rs)&&void 0!==l?l:i.bottomColor}},Baseline:(t,i,n,s)=>{var e,r,h,l,a,o;const _=b(t(n,s));return{ce:_.Vt[3]>=i.baseValue.price?i.topLineColor:i.bottomLineColor,Re:null!==(e=_.Re)&&void 0!==e?e:i.topLineColor,De:null!==(r=_.De)&&void 0!==r?r:i.bottomLineColor,ke:null!==(h=_.ke)&&void 0!==h?h:i.topFillColor1,ye:null!==(l=_.ye)&&void 0!==l?l:i.topFillColor2,Ce:null!==(a=_.Ce)&&void 0!==a?a:i.bottomFillColor1,Te:null!==(o=_.Te)&&void 0!==o?o:i.bottomFillColor2}},Line:(t,i,n,s)=>{var e,r;const h=b(t(n,s));return{ce:null!==(e=h.V)&&void 0!==e?e:i.color,lt:null!==(r=h.V)&&void 0!==r?r:i.color}},Histogram:(t,i,n,s)=>{var e;return{ce:null!==(e=b(t(n,s)).V)&&void 0!==e?e:i.color}}};class zi{constructor(t){this.Kh=(t,i)=>void 0!==i?i.Vt:this.jr.In().Gh(t),this.jr=t,this.Jh=Ii[t.Qh()]}$s(t,i){return this.Jh(this.Kh,this.jr.W(),t,i)}}var Li;!function(t){t[t.NearestLeft=-1]=\"NearestLeft\",t[t.None=0]=\"None\",t[t.NearestRight=1]=\"NearestRight\"}(Li||(Li={}));const Ei=30;class Ni{constructor(){this.tl=[],this.il=new Map,this.nl=new Map}sl(){return this.Ks()>0?this.tl[this.tl.length-1]:null}el(){return this.Ks()>0?this.rl(0):null}An(){return this.Ks()>0?this.rl(this.tl.length-1):null}Ks(){return this.tl.length}Ni(){return 0===this.Ks()}Kr(t){return null!==this.hl(t,0)}Gh(t){return this.ll(t)}ll(t,i=0){const n=this.hl(t,i);return null===n?null:Object.assign(Object.assign({},this.al(n)),{ee:this.rl(n)})}ne(){return this.tl}ol(t,i,n){if(this.Ni())return null;let s=null;for(const e of n){s=Fi(s,this._l(t,i,e))}return s}J(t){this.nl.clear(),this.il.clear(),this.tl=t}rl(t){return this.tl[t].ee}al(t){return this.tl[t]}hl(t,i){const n=this.ul(t);if(null===n&&0!==i)switch(i){case-1:return this.cl(t);case 1:return this.dl(t);default:throw new TypeError(\"Unknown search mode\")}return n}cl(t){let i=this.fl(t);return i>0&&(i-=1),i!==this.tl.length&&this.rl(i)<t?i:null}dl(t){const i=this.vl(t);return i!==this.tl.length&&t<this.rl(i)?i:null}ul(t){const i=this.fl(t);return i===this.tl.length||t<this.tl[i].ee?null:i}fl(t){return Bt(this.tl,t,((t,i)=>t.ee<i))}vl(t){return At(this.tl,t,((t,i)=>t.ee>i))}pl(t,i,n){let s=null;for(let e=t;e<i;e++){const t=this.tl[e].Vt[n];Number.isNaN(t)||(null===s?s={ml:t,bl:t}:(t<s.ml&&(s.ml=t),t>s.bl&&(s.bl=t)))}return s}_l(t,i,n){if(this.Ni())return null;let s=null;const e=b(this.el()),r=b(this.An()),h=Math.max(t,e),l=Math.min(i,r),a=Math.ceil(h/Ei)*Ei,o=Math.max(a,Math.floor(l/Ei)*Ei);{const t=this.fl(h),e=this.vl(Math.min(l,a,i));s=Fi(s,this.pl(t,e,n))}let _=this.il.get(n);void 0===_&&(_=new Map,this.il.set(n,_));for(let t=Math.max(a+1,h);t<o;t+=Ei){const i=Math.floor(t/Ei);let e=_.get(i);if(void 0===e){const t=this.fl(i*Ei),s=this.vl((i+1)*Ei-1);e=this.pl(t,s,n),_.set(i,e)}s=Fi(s,e)}{const t=this.fl(o),i=this.vl(l);s=Fi(s,this.pl(t,i,n))}return s}}function Fi(t,i){if(null===t)return i;if(null===i)return t;return{ml:Math.min(t.ml,i.ml),bl:Math.max(t.bl,i.bl)}}class Wi{constructor(t){this.wl=t}X(t,i,n){this.wl.draw(t)}gl(t,i,n){var s,e;null===(e=(s=this.wl).drawBackground)||void 0===e||e.call(s,t)}}class ji{constructor(t){this.tr=null,this.wn=t}gt(){var t;const i=this.wn.renderer();if(null===i)return null;if((null===(t=this.tr)||void 0===t?void 0:t.Ml)===i)return this.tr.xl;const n=new Wi(i);return this.tr={Ml:i,xl:n},n}Sl(){var t,i,n;return null!==(n=null===(i=(t=this.wn).zOrder)||void 0===i?void 0:i.call(t))&&void 0!==n?n:\"normal\"}}function Hi(t){var i,n,s,e,r;return{Kt:t.text(),ki:t.coordinate(),Si:null===(i=t.fixedCoordinate)||void 0===i?void 0:i.call(t),V:t.textColor(),t:t.backColor(),yt:null===(s=null===(n=t.visible)||void 0===n?void 0:n.call(t))||void 0===s||s,hi:null===(r=null===(e=t.tickVisible)||void 0===e?void 0:e.call(t))||void 0===r||r}}class $i{constructor(t,i){this.Wt=new rt,this.kl=t,this.yl=i}gt(){return this.Wt.J(Object.assign({Hi:this.yl.Hi()},Hi(this.kl))),this.Wt}}class Ui extends nt{constructor(t,i){super(),this.kl=t,this.Li=i}zi(t,i,n){const s=Hi(this.kl);n.t=s.t,t.V=s.V;const e=2/12*this.Li.P();n.wi=e,n.gi=e,n.ki=s.ki,n.Si=s.Si,t.Kt=s.Kt,t.yt=s.yt,t.hi=s.hi}}class qi{constructor(t,i){this.Cl=null,this.Tl=null,this.Pl=null,this.Rl=null,this.Dl=null,this.Vl=t,this.jr=i}Ol(){return this.Vl}Vn(){var t,i;null===(i=(t=this.Vl).updateAllViews)||void 0===i||i.call(t)}Pn(){var t,i,n,s;const e=null!==(n=null===(i=(t=this.Vl).paneViews)||void 0===i?void 0:i.call(t))&&void 0!==n?n:[];if((null===(s=this.Cl)||void 0===s?void 0:s.Ml)===e)return this.Cl.xl;const r=e.map((t=>new ji(t)));return this.Cl={Ml:e,xl:r},r}Qi(){var t,i,n,s;const e=null!==(n=null===(i=(t=this.Vl).timeAxisViews)||void 0===i?void 0:i.call(t))&&void 0!==n?n:[];if((null===(s=this.Tl)||void 0===s?void 0:s.Ml)===e)return this.Tl.xl;const r=this.jr.$t().St(),h=e.map((t=>new $i(t,r)));return this.Tl={Ml:e,xl:h},h}Rn(){var t,i,n,s;const e=null!==(n=null===(i=(t=this.Vl).priceAxisViews)||void 0===i?void 0:i.call(t))&&void 0!==n?n:[];if((null===(s=this.Pl)||void 0===s?void 0:s.Ml)===e)return this.Pl.xl;const r=this.jr.Dt(),h=e.map((t=>new Ui(t,r)));return this.Pl={Ml:e,xl:h},h}Bl(){var t,i,n,s;const e=null!==(n=null===(i=(t=this.Vl).priceAxisPaneViews)||void 0===i?void 0:i.call(t))&&void 0!==n?n:[];if((null===(s=this.Rl)||void 0===s?void 0:s.Ml)===e)return this.Rl.xl;const r=e.map((t=>new ji(t)));return this.Rl={Ml:e,xl:r},r}Al(){var t,i,n,s;const e=null!==(n=null===(i=(t=this.Vl).timeAxisPaneViews)||void 0===i?void 0:i.call(t))&&void 0!==n?n:[];if((null===(s=this.Dl)||void 0===s?void 0:s.Ml)===e)return this.Dl.xl;const r=e.map((t=>new ji(t)));return this.Dl={Ml:e,xl:r},r}Il(t,i){var n,s,e;return null!==(e=null===(s=(n=this.Vl).autoscaleInfo)||void 0===s?void 0:s.call(n,t,i))&&void 0!==e?e:null}wr(t,i){var n,s,e;return null!==(e=null===(s=(n=this.Vl).hitTest)||void 0===s?void 0:s.call(n,t,i))&&void 0!==e?e:null}}function Yi(t,i,n,s){t.forEach((t=>{i(t).forEach((t=>{t.Sl()===n&&s.push(t)}))}))}function Zi(t){return t.Pn()}function Xi(t){return t.Bl()}function Ki(t){return t.Al()}class Gi extends Ai{constructor(t,i,n,s,e){super(t),this.zt=new Ni,this.jh=new Ci(this),this.zl=[],this.Ll=new li(this),this.El=null,this.Nl=null,this.Fl=[],this.Wl=[],this.jl=null,this.Hl=[],this.cn=i,this.$l=n;const r=new Ti(this);this.rn=[r],this.Hh=new ei(r,this,t),\"Area\"!==n&&\"Line\"!==n&&\"Baseline\"!==n||(this.El=new ci(this)),this.Ul(),this.ql(e)}S(){null!==this.jl&&clearTimeout(this.jl)}mh(t){return this.cn.priceLineColor||t}Zr(t){const i={Xr:!0},n=this.Dt();if(this.$t().St().Ni()||n.Ni()||this.zt.Ni())return i;const s=this.$t().St().Xs(),e=this.Ct();if(null===s||null===e)return i;let r,h;if(t){const t=this.zt.sl();if(null===t)return i;r=t,h=t.ee}else{const t=this.zt.ll(s.ui(),-1);if(null===t)return i;if(r=this.zt.Gh(t.ee),null===r)return i;h=t.ee}const l=r.Vt[3],a=this.Us().$s(h,{Vt:r}),o=n.Rt(l,e.Vt);return{Xr:!1,_t:l,Kt:n.Fi(l,e.Vt),xh:n.Yl(l),Sh:n.Zl(l,e.Vt),V:a.ce,ki:o,ee:h}}Us(){return null!==this.Nl||(this.Nl=new zi(this)),this.Nl}W(){return this.cn}$h(t){const i=t.priceScaleId;void 0!==i&&i!==this.cn.priceScaleId&&this.$t().Xl(this,i),V(this.cn,t),void 0!==t.priceFormat&&(this.Ul(),this.$t().Kl()),this.$t().Gl(this),this.$t().Jl(),this.wn.bt(\"options\")}J(t,i){this.zt.J(t),this.Ql(),this.wn.bt(\"data\"),this.dn.bt(\"data\"),null!==this.El&&(i&&i.ta?this.El.$r():0===t.length&&this.El.Hr());const n=this.$t().dr(this);this.$t().ia(n),this.$t().Gl(this),this.$t().Jl(),this.$t().Uh()}na(t){this.Fl=t,this.Ql();const i=this.$t().dr(this);this.dn.bt(\"data\"),this.$t().ia(i),this.$t().Gl(this),this.$t().Jl(),this.$t().Uh()}sa(){return this.Fl}dh(){return this.Wl}ea(t){const i=new Bi(this,t);return this.zl.push(i),this.$t().Gl(this),i}ra(t){const i=this.zl.indexOf(t);-1!==i&&this.zl.splice(i,1),this.$t().Gl(this)}Qh(){return this.$l}Ct(){const t=this.ha();return null===t?null:{Vt:t.Vt[3],la:t.ot}}ha(){const t=this.$t().St().Xs();if(null===t)return null;const i=t.Os();return this.zt.ll(i,1)}In(){return this.zt}ph(t){const i=this.zt.Gh(t);return null===i?null:\"Bar\"===this.$l||\"Candlestick\"===this.$l||\"Custom\"===this.$l?{ge:i.Vt[0],Me:i.Vt[1],xe:i.Vt[2],Se:i.Vt[3]}:i.Vt[3]}aa(t){const i=[];Yi(this.Hl,Zi,\"top\",i);const n=this.El;return null!==n&&n.yt()?(null===this.jl&&n.qr()&&(this.jl=setTimeout((()=>{this.jl=null,this.$t().oa()}),0)),n.Ur(),i.unshift(n),i):i}Pn(){const t=[];this._a()||t.push(this.Ll),t.push(this.wn,this.jh,this.dn);const i=this.zl.map((t=>t.qh()));return t.push(...i),Yi(this.Hl,Zi,\"normal\",t),t}ua(){return this.ca(Zi,\"bottom\")}da(t){return this.ca(Xi,t)}fa(t){return this.ca(Ki,t)}va(t,i){return this.Hl.map((n=>n.wr(t,i))).filter((t=>null!==t))}Ji(t){return[this.Hh,...this.zl.map((t=>t.Yh()))]}Rn(t,i){if(i!==this.Yi&&!this._a())return[];const n=[...this.rn];for(const t of this.zl)n.push(t.Zh());return this.Hl.forEach((t=>{n.push(...t.Rn())})),n}Qi(){const t=[];return this.Hl.forEach((i=>{t.push(...i.Qi())})),t}Il(t,i){if(void 0!==this.cn.autoscaleInfoProvider){const n=this.cn.autoscaleInfoProvider((()=>{const n=this.pa(t,i);return null===n?null:n.Bh()}));return Di.Ah(n)}return this.pa(t,i)}ma(){return this.cn.priceFormat.minMove}ba(){return this.wa}Vn(){var t;this.wn.bt(),this.dn.bt();for(const t of this.rn)t.bt();for(const t of this.zl)t.bt();this.jh.bt(),this.Ll.bt(),null===(t=this.El)||void 0===t||t.bt(),this.Hl.forEach((t=>t.Vn()))}Dt(){return b(super.Dt())}kt(t){if(!((\"Line\"===this.$l||\"Area\"===this.$l||\"Baseline\"===this.$l)&&this.cn.crosshairMarkerVisible))return null;const i=this.zt.Gh(t);if(null===i)return null;return{_t:i.Vt[3],ht:this.ga(),Ot:this.Ma(),Pt:this.xa(),Tt:this.Sa(t)}}bh(){return this.cn.title}yt(){return this.cn.visible}ka(t){this.Hl.push(new qi(t,this))}ya(t){this.Hl=this.Hl.filter((i=>i.Ol()!==t))}Ca(){if(this.wn instanceof Kt!=!1)return t=>this.wn.We(t)}Ta(){if(this.wn instanceof Kt!=!1)return t=>this.wn.je(t)}_a(){return!_t(this.Dt().Pa())}pa(t,i){if(!B(t)||!B(i)||this.zt.Ni())return null;const n=\"Line\"===this.$l||\"Area\"===this.$l||\"Baseline\"===this.$l||\"Histogram\"===this.$l?[3]:[2,1],s=this.zt.ol(t,i,n);let e=null!==s?new Ri(s.ml,s.bl):null;if(\"Histogram\"===this.Qh()){const t=this.cn.base,i=new Ri(t,t);e=null!==e?e.ts(i):i}let r=this.dn.uh();return this.Hl.forEach((n=>{const s=n.Il(t,i);if(null==s?void 0:s.priceRange){const t=new Ri(s.priceRange.minValue,s.priceRange.maxValue);e=null!==e?e.ts(t):t}var h,l,a,o;(null==s?void 0:s.margins)&&(h=r,l=s.margins,r={above:Math.max(null!==(a=null==h?void 0:h.above)&&void 0!==a?a:0,l.above),below:Math.max(null!==(o=null==h?void 0:h.below)&&void 0!==o?o:0,l.below)})})),new Di(e,r)}ga(){switch(this.$l){case\"Line\":case\"Area\":case\"Baseline\":return this.cn.crosshairMarkerRadius}return 0}Ma(){switch(this.$l){case\"Line\":case\"Area\":case\"Baseline\":{const t=this.cn.crosshairMarkerBorderColor;if(0!==t.length)return t}}return null}xa(){switch(this.$l){case\"Line\":case\"Area\":case\"Baseline\":return this.cn.crosshairMarkerBorderWidth}return 0}Sa(t){switch(this.$l){case\"Line\":case\"Area\":case\"Baseline\":{const t=this.cn.crosshairMarkerBackgroundColor;if(0!==t.length)return t}}return this.Us().$s(t).ce}Ul(){switch(this.cn.priceFormat.type){case\"custom\":this.wa={format:this.cn.priceFormat.formatter};break;case\"volume\":this.wa=new pt(this.cn.priceFormat.precision);break;case\"percent\":this.wa=new vt(this.cn.priceFormat.precision);break;default:{const t=Math.pow(10,this.cn.priceFormat.precision);this.wa=new ft(t,this.cn.priceFormat.minMove*t)}}null!==this.Yi&&this.Yi.Ra()}Ql(){const t=this.$t().St();if(!t.Da()||this.zt.Ni())return void(this.Wl=[]);const i=b(this.zt.el());this.Wl=this.Fl.map(((n,s)=>{const e=b(t.Va(n.time,!0)),r=e<i?1:-1;return{time:b(this.zt.ll(e,r)).ee,position:n.position,shape:n.shape,color:n.color,id:n.id,th:s,text:n.text,size:n.size,originalTime:n.originalTime}}))}ql(t){switch(this.dn=new yi(this,this.$t()),this.$l){case\"Bar\":this.wn=new Ht(this,this.$t());break;case\"Candlestick\":this.wn=new Zt(this,this.$t());break;case\"Line\":this.wn=new ti(this,this.$t());break;case\"Custom\":this.wn=new Kt(this,this.$t(),m(t));break;case\"Area\":this.wn=new Ft(this,this.$t());break;case\"Baseline\":this.wn=new qt(this,this.$t());break;case\"Histogram\":this.wn=new Qt(this,this.$t());break;default:throw Error(\"Unknown chart style assigned: \"+this.$l)}}ca(t,i){const n=[];return Yi(this.Hl,t,i,n),n}}class Ji{constructor(t){this.cn=t}Oa(t,i,n){let s=t;if(0===this.cn.mode)return s;const e=n.vn(),r=e.Ct();if(null===r)return s;const h=e.Rt(t,r),l=n.Ba().filter((t=>t instanceof Gi)).reduce(((t,s)=>{if(n.vr(s)||!s.yt())return t;const e=s.Dt(),r=s.In();if(e.Ni()||!r.Kr(i))return t;const h=r.Gh(i);if(null===h)return t;const l=w(s.Ct());return t.concat([e.Rt(h.Vt[3],l.Vt)])}),[]);if(0===l.length)return s;l.sort(((t,i)=>Math.abs(t-h)-Math.abs(i-h)));const a=l[0];return s=e.pn(a,r),s}}class Qi extends H{constructor(){super(...arguments),this.zt=null}J(t){this.zt=t}K({context:t,bitmapSize:i,horizontalPixelRatio:n,verticalPixelRatio:s}){if(null===this.zt)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=b(this.zt);if(r.Aa){t.strokeStyle=r.Ia,f(t,r.za),t.beginPath();for(const s of r.La){const r=Math.round(s.Ea*n);t.moveTo(r,-e),t.lineTo(r,i.height+e)}t.stroke()}if(r.Na){t.strokeStyle=r.Fa,f(t,r.Wa),t.beginPath();for(const n of r.ja){const r=Math.round(n.Ea*s);t.moveTo(-e,r),t.lineTo(i.width+e,r)}t.stroke()}}))}}class tn{constructor(t){this.Wt=new Qi,this.ft=!0,this.tn=t}bt(){this.ft=!0}gt(){if(this.ft){const t=this.tn.$t().W().grid,i={Na:t.horzLines.visible,Aa:t.vertLines.visible,Fa:t.horzLines.color,Ia:t.vertLines.color,Wa:t.horzLines.style,za:t.vertLines.style,ja:this.tn.vn().Ha(),La:(this.tn.$t().St().Ha()||[]).map((t=>({Ea:t.coord})))};this.Wt.J(i),this.ft=!1}return this.Wt}}class nn{constructor(t){this.wn=new tn(t)}qh(){return this.wn}}const sn={$a:4,Ua:1e-4};function en(t,i){const n=100*(t-i)/i;return i<0?-n:n}function rn(t,i){const n=en(t.Ph(),i),s=en(t.Rh(),i);return new Ri(n,s)}function hn(t,i){const n=100*(t-i)/i+100;return i<0?-n:n}function ln(t,i){const n=hn(t.Ph(),i),s=hn(t.Rh(),i);return new Ri(n,s)}function an(t,i){const n=Math.abs(t);if(n<1e-15)return 0;const s=Math.log10(n+i.Ua)+i.$a;return t<0?-s:s}function on(t,i){const n=Math.abs(t);if(n<1e-15)return 0;const s=Math.pow(10,n-i.$a)-i.Ua;return t<0?-s:s}function _n(t,i){if(null===t)return null;const n=an(t.Ph(),i),s=an(t.Rh(),i);return new Ri(n,s)}function un(t,i){if(null===t)return null;const n=on(t.Ph(),i),s=on(t.Rh(),i);return new Ri(n,s)}function cn(t){if(null===t)return sn;const i=Math.abs(t.Rh()-t.Ph());if(i>=1||i<1e-15)return sn;const n=Math.ceil(Math.abs(Math.log10(i))),s=sn.$a+n;return{$a:s,Ua:1/Math.pow(10,s)}}class dn{constructor(t,i){if(this.qa=t,this.Ya=i,function(t){if(t<0)return!1;for(let i=t;i>1;i/=10)if(i%10!=0)return!1;return!0}(this.qa))this.Za=[2,2.5,2];else{this.Za=[];for(let t=this.qa;1!==t;){if(t%2==0)this.Za.push(2),t/=2;else{if(t%5!=0)throw new Error(\"unexpected base\");this.Za.push(2,2.5),t/=5}if(this.Za.length>100)throw new Error(\"something wrong with base\")}}}Xa(t,i,n){const s=0===this.qa?0:1/this.qa;let e=Math.pow(10,Math.max(0,Math.ceil(Math.log10(t-i)))),r=0,h=this.Ya[0];for(;;){const t=yt(e,s,1e-14)&&e>s+1e-14,i=yt(e,n*h,1e-14),l=yt(e,1,1e-14);if(!(t&&i&&l))break;e/=h,h=this.Ya[++r%this.Ya.length]}if(e<=s+1e-14&&(e=s),e=Math.max(1,e),this.Za.length>0&&(l=e,a=1,o=1e-14,Math.abs(l-a)<o))for(r=0,h=this.Za[0];yt(e,n*h,1e-14)&&e>s+1e-14;)e/=h,h=this.Za[++r%this.Za.length];var l,a,o;return e}}class fn{constructor(t,i,n,s){this.Ka=[],this.Li=t,this.qa=i,this.Ga=n,this.Ja=s}Xa(t,i){if(t<i)throw new Error(\"high < low\");const n=this.Li.At(),s=(t-i)*this.Qa()/n,e=new dn(this.qa,[2,2.5,2]),r=new dn(this.qa,[2,2,2.5]),h=new dn(this.qa,[2.5,2,2]),l=[];return l.push(e.Xa(t,i,s),r.Xa(t,i,s),h.Xa(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}(l)}io(){const t=this.Li,i=t.Ct();if(null===i)return void(this.Ka=[]);const n=t.At(),s=this.Ga(n-1,i),e=this.Ga(0,i),r=this.Li.W().entireTextOnly?this.no()/2:0,h=r,l=n-1-r,a=Math.max(s,e),o=Math.min(s,e);if(a===o)return void(this.Ka=[]);let _=this.Xa(a,o),u=a%_;u+=u<0?_:0;const c=a>=o?1:-1;let d=null,f=0;for(let n=a-u;n>o;n-=_){const s=this.Ja(n,i,!0);null!==d&&Math.abs(s-d)<this.Qa()||(s<h||s>l||(f<this.Ka.length?(this.Ka[f].Ea=s,this.Ka[f].so=t.eo(n)):this.Ka.push({Ea:s,so:t.eo(n)}),f++,d=s,t.ro()&&(_=this.Xa(n*c,o))))}this.Ka.length=f}Ha(){return this.Ka}no(){return this.Li.P()}Qa(){return Math.ceil(2.5*this.no())}}function vn(t){return t.slice().sort(((t,i)=>b(t.Xi())-b(i.Xi())))}var pn;!function(t){t[t.Normal=0]=\"Normal\",t[t.Logarithmic=1]=\"Logarithmic\",t[t.Percentage=2]=\"Percentage\",t[t.IndexedTo100=3]=\"IndexedTo100\"}(pn||(pn={}));const mn=new vt,bn=new ft(100,1);class wn{constructor(t,i,n,s){this.ho=0,this.lo=null,this.Ih=null,this.ao=null,this.oo={_o:!1,uo:null},this.co=0,this.do=0,this.fo=new D,this.vo=new D,this.po=[],this.mo=null,this.bo=null,this.wo=null,this.Mo=null,this.wa=bn,this.xo=cn(null),this.So=t,this.cn=i,this.ko=n,this.yo=s,this.Co=new fn(this,100,this.To.bind(this),this.Po.bind(this))}Pa(){return this.So}W(){return this.cn}$h(t){if(V(this.cn,t),this.Ra(),void 0!==t.mode&&this.Ro({Cr:t.mode}),void 0!==t.scaleMargins){const i=m(t.scaleMargins.top),n=m(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.Do(),this.bo=null}}Vo(){return this.cn.autoScale}ro(){return 1===this.cn.mode}Mh(){return 2===this.cn.mode}Oo(){return 3===this.cn.mode}Cr(){return{Wn:this.cn.autoScale,Bo:this.cn.invertScale,Cr:this.cn.mode}}Ro(t){const i=this.Cr();let n=null;void 0!==t.Wn&&(this.cn.autoScale=t.Wn),void 0!==t.Cr&&(this.cn.mode=t.Cr,2!==t.Cr&&3!==t.Cr||(this.cn.autoScale=!0),this.oo._o=!1),1===i.Cr&&t.Cr!==i.Cr&&(!function(t,i){if(null===t)return!1;const n=on(t.Ph(),i),s=on(t.Rh(),i);return isFinite(n)&&isFinite(s)}(this.Ih,this.xo)?this.cn.autoScale=!0:(n=un(this.Ih,this.xo),null!==n&&this.Ao(n))),1===t.Cr&&t.Cr!==i.Cr&&(n=_n(this.Ih,this.xo),null!==n&&this.Ao(n));const s=i.Cr!==this.cn.mode;s&&(2===i.Cr||this.Mh())&&this.Ra(),s&&(3===i.Cr||this.Oo())&&this.Ra(),void 0!==t.Bo&&i.Bo!==t.Bo&&(this.cn.invertScale=t.Bo,this.Io()),this.vo.m(i,this.Cr())}zo(){return this.vo}P(){return this.ko.fontSize}At(){return this.ho}Lo(t){this.ho!==t&&(this.ho=t,this.Do(),this.bo=null)}Eo(){if(this.lo)return this.lo;const t=this.At()-this.No()-this.Fo();return this.lo=t,t}Lh(){return this.Wo(),this.Ih}Ao(t,i){const n=this.Ih;(i||null===n&&null!==t||null!==n&&!n.Ch(t))&&(this.bo=null,this.Ih=t)}Ni(){return this.Wo(),0===this.ho||!this.Ih||this.Ih.Ni()}jo(t){return this.Bo()?t:this.At()-1-t}Rt(t,i){return this.Mh()?t=en(t,i):this.Oo()&&(t=hn(t,i)),this.Po(t,i)}te(t,i,n){this.Wo();const s=this.Fo(),e=b(this.Lh()),r=e.Ph(),h=e.Rh(),l=this.Eo()-1,a=this.Bo(),o=l/(h-r),_=void 0===n?0:n.from,u=void 0===n?t.length:n.to,c=this.Ho();for(let n=_;n<u;n++){const e=t[n],h=e._t;if(isNaN(h))continue;let l=h;null!==c&&(l=c(e._t,i));const _=s+o*(l-r),u=a?_:this.ho-1-_;e.st=u}}be(t,i,n){this.Wo();const s=this.Fo(),e=b(this.Lh()),r=e.Ph(),h=e.Rh(),l=this.Eo()-1,a=this.Bo(),o=l/(h-r),_=void 0===n?0:n.from,u=void 0===n?t.length:n.to,c=this.Ho();for(let n=_;n<u;n++){const e=t[n];let h=e.ge,l=e.Me,_=e.xe,u=e.Se;null!==c&&(h=c(e.ge,i),l=c(e.Me,i),_=c(e.xe,i),u=c(e.Se,i));let d=s+o*(h-r),f=a?d:this.ho-1-d;e.pe=f,d=s+o*(l-r),f=a?d:this.ho-1-d,e.de=f,d=s+o*(_-r),f=a?d:this.ho-1-d,e.fe=f,d=s+o*(u-r),f=a?d:this.ho-1-d,e.me=f}}pn(t,i){const n=this.To(t,i);return this.$o(n,i)}$o(t,i){let n=t;return this.Mh()?n=function(t,i){return i<0&&(t=-t),t/100*i+i}(n,i):this.Oo()&&(n=function(t,i){return t-=100,i<0&&(t=-t),t/100*i+i}(n,i)),n}Ba(){return this.po}Uo(){if(this.mo)return this.mo;let t=[];for(let i=0;i<this.po.length;i++){const n=this.po[i];null===n.Xi()&&n.Ki(i+1),t.push(n)}return t=vn(t),this.mo=t,this.mo}qo(t){-1===this.po.indexOf(t)&&(this.po.push(t),this.Ra(),this.Yo())}Zo(t){const i=this.po.indexOf(t);if(-1===i)throw new Error(\"source is not attached to scale\");this.po.splice(i,1),0===this.po.length&&(this.Ro({Wn:!0}),this.Ao(null)),this.Ra(),this.Yo()}Ct(){let t=null;for(const i of this.po){const n=i.Ct();null!==n&&((null===t||n.la<t.la)&&(t=n))}return null===t?null:t.Vt}Bo(){return this.cn.invertScale}Ha(){const t=null===this.Ct();if(null!==this.bo&&(t||this.bo.Xo===t))return this.bo.Ha;this.Co.io();const i=this.Co.Ha();return this.bo={Ha:i,Xo:t},this.fo.m(),i}Ko(){return this.fo}Go(t){this.Mh()||this.Oo()||null===this.wo&&null===this.ao&&(this.Ni()||(this.wo=this.ho-t,this.ao=b(this.Lh()).Th()))}Jo(t){if(this.Mh()||this.Oo())return;if(null===this.wo)return;this.Ro({Wn:!1}),(t=this.ho-t)<0&&(t=0);let i=(this.wo+.2*(this.ho-1))/(t+.2*(this.ho-1));const n=b(this.ao).Th();i=Math.max(i,.1),n.Vh(i),this.Ao(n)}Qo(){this.Mh()||this.Oo()||(this.wo=null,this.ao=null)}t_(t){this.Vo()||null===this.Mo&&null===this.ao&&(this.Ni()||(this.Mo=t,this.ao=b(this.Lh()).Th()))}i_(t){if(this.Vo())return;if(null===this.Mo)return;const i=b(this.Lh()).Dh()/(this.Eo()-1);let n=t-this.Mo;this.Bo()&&(n*=-1);const s=n*i,e=b(this.ao).Th();e.Oh(s),this.Ao(e,!0),this.bo=null}n_(){this.Vo()||null!==this.Mo&&(this.Mo=null,this.ao=null)}ba(){return this.wa||this.Ra(),this.wa}Fi(t,i){switch(this.cn.mode){case 2:return this.s_(en(t,i));case 3:return this.ba().format(hn(t,i));default:return this.Wh(t)}}eo(t){switch(this.cn.mode){case 2:return this.s_(t);case 3:return this.ba().format(t);default:return this.Wh(t)}}Yl(t){return this.Wh(t,b(this.e_()).ba())}Zl(t,i){return t=en(t,i),this.s_(t,mn)}r_(){return this.po}h_(t){this.oo={uo:t,_o:!1}}Vn(){this.po.forEach((t=>t.Vn()))}Ra(){this.bo=null;const t=this.e_();let i=100;null!==t&&(i=Math.round(1/t.ma())),this.wa=bn,this.Mh()?(this.wa=mn,i=100):this.Oo()?(this.wa=new ft(100,1),i=100):null!==t&&(this.wa=t.ba()),this.Co=new fn(this,i,this.To.bind(this),this.Po.bind(this)),this.Co.io()}Yo(){this.mo=null}e_(){return this.po[0]||null}No(){return this.Bo()?this.cn.scaleMargins.bottom*this.At()+this.do:this.cn.scaleMargins.top*this.At()+this.co}Fo(){return this.Bo()?this.cn.scaleMargins.top*this.At()+this.co:this.cn.scaleMargins.bottom*this.At()+this.do}Wo(){this.oo._o||(this.oo._o=!0,this.l_())}Do(){this.lo=null}Po(t,i){if(this.Wo(),this.Ni())return 0;t=this.ro()&&t?an(t,this.xo):t;const n=b(this.Lh()),s=this.Fo()+(this.Eo()-1)*(t-n.Ph())/n.Dh();return this.jo(s)}To(t,i){if(this.Wo(),this.Ni())return 0;const n=this.jo(t),s=b(this.Lh()),e=s.Ph()+s.Dh()*((n-this.Fo())/(this.Eo()-1));return this.ro()?on(e,this.xo):e}Io(){this.bo=null,this.Co.io()}l_(){const t=this.oo.uo;if(null===t)return;let i=null;const n=this.r_();let s=0,e=0;for(const r of n){if(!r.yt())continue;const n=r.Ct();if(null===n)continue;const h=r.Il(t.Os(),t.ui());let l=h&&h.Lh();if(null!==l){switch(this.cn.mode){case 1:l=_n(l,this.xo);break;case 2:l=rn(l,n.Vt);break;case 3:l=ln(l,n.Vt)}if(i=null===i?l:i.ts(b(l)),null!==h){const t=h.Eh();null!==t&&(s=Math.max(s,t.above),e=Math.max(e,t.below))}}}if(s===this.co&&e===this.do||(this.co=s,this.do=e,this.bo=null,this.Do()),null!==i){if(i.Ph()===i.Rh()){const t=this.e_(),n=5*(null===t||this.Mh()||this.Oo()?1:t.ma());this.ro()&&(i=un(i,this.xo)),i=new Ri(i.Ph()-n,i.Rh()+n),this.ro()&&(i=_n(i,this.xo))}if(this.ro()){const t=un(i,this.xo),n=cn(t);if(r=n,h=this.xo,r.$a!==h.$a||r.Ua!==h.Ua){const s=null!==this.ao?un(this.ao,this.xo):null;this.xo=n,i=_n(t,n),null!==s&&(this.ao=_n(s,n))}}this.Ao(i)}else null===this.Ih&&(this.Ao(new Ri(-.5,.5)),this.xo=cn(null));var r,h;this.oo._o=!0}Ho(){return this.Mh()?en:this.Oo()?hn:this.ro()?t=>an(t,this.xo):null}a_(t,i,n){return void 0===i?(void 0===n&&(n=this.ba()),n.format(t)):i(t)}Wh(t,i){return this.a_(t,this.yo.priceFormatter,i)}s_(t,i){return this.a_(t,this.yo.percentageFormatter,i)}}class gn{constructor(t,i){this.po=[],this.o_=new Map,this.ho=0,this.__=0,this.u_=1e3,this.mo=null,this.c_=new D,this.yl=t,this.$i=i,this.d_=new nn(this);const n=i.W();this.f_=this.v_(\"left\",n.leftPriceScale),this.p_=this.v_(\"right\",n.rightPriceScale),this.f_.zo().l(this.m_.bind(this,this.f_),this),this.p_.zo().l(this.m_.bind(this,this.p_),this),this.b_(n)}b_(t){if(t.leftPriceScale&&this.f_.$h(t.leftPriceScale),t.rightPriceScale&&this.p_.$h(t.rightPriceScale),t.localization&&(this.f_.Ra(),this.p_.Ra()),t.overlayPriceScales){const i=Array.from(this.o_.values());for(const n of i){const i=b(n[0].Dt());i.$h(t.overlayPriceScales),t.localization&&i.Ra()}}}w_(t){switch(t){case\"left\":return this.f_;case\"right\":return this.p_}return this.o_.has(t)?m(this.o_.get(t))[0].Dt():null}S(){this.$t().g_().p(this),this.f_.zo().p(this),this.p_.zo().p(this),this.po.forEach((t=>{t.S&&t.S()})),this.c_.m()}M_(){return this.u_}x_(t){this.u_=t}$t(){return this.$i}Hi(){return this.__}At(){return this.ho}S_(t){this.__=t,this.k_()}Lo(t){this.ho=t,this.f_.Lo(t),this.p_.Lo(t),this.po.forEach((i=>{if(this.vr(i)){const n=i.Dt();null!==n&&n.Lo(t)}})),this.k_()}Ba(){return this.po}vr(t){const i=t.Dt();return null===i||this.f_!==i&&this.p_!==i}qo(t,i,n){const s=void 0!==n?n:this.C_().y_+1;this.T_(t,i,s)}Zo(t){const i=this.po.indexOf(t);p(-1!==i,\"removeDataSource: invalid data source\"),this.po.splice(i,1);const n=b(t.Dt()).Pa();if(this.o_.has(n)){const i=m(this.o_.get(n)),s=i.indexOf(t);-1!==s&&(i.splice(s,1),0===i.length&&this.o_.delete(n))}const s=t.Dt();s&&s.Ba().indexOf(t)>=0&&s.Zo(t),null!==s&&(s.Yo(),this.P_(s)),this.mo=null}mr(t){return t===this.f_?\"left\":t===this.p_?\"right\":\"overlay\"}R_(){return this.f_}D_(){return this.p_}V_(t,i){t.Go(i)}O_(t,i){t.Jo(i),this.k_()}B_(t){t.Qo()}A_(t,i){t.t_(i)}I_(t,i){t.i_(i),this.k_()}z_(t){t.n_()}k_(){this.po.forEach((t=>{t.Vn()}))}vn(){let t=null;return this.$i.W().rightPriceScale.visible&&0!==this.p_.Ba().length?t=this.p_:this.$i.W().leftPriceScale.visible&&0!==this.f_.Ba().length?t=this.f_:0!==this.po.length&&(t=this.po[0].Dt()),null===t&&(t=this.p_),t}pr(){let t=null;return this.$i.W().rightPriceScale.visible?t=this.p_:this.$i.W().leftPriceScale.visible&&(t=this.f_),t}P_(t){null!==t&&t.Vo()&&this.L_(t)}E_(t){const i=this.yl.Xs();t.Ro({Wn:!0}),null!==i&&t.h_(i),this.k_()}N_(){this.L_(this.f_),this.L_(this.p_)}F_(){this.P_(this.f_),this.P_(this.p_),this.po.forEach((t=>{this.vr(t)&&this.P_(t.Dt())})),this.k_(),this.$i.Uh()}Uo(){return null===this.mo&&(this.mo=vn(this.po)),this.mo}W_(){return this.c_}j_(){return this.d_}L_(t){const i=t.r_();if(i&&i.length>0&&!this.yl.Ni()){const i=this.yl.Xs();null!==i&&t.h_(i)}t.Vn()}C_(){const t=this.Uo();if(0===t.length)return{H_:0,y_:0};let i=0,n=0;for(let s=0;s<t.length;s++){const e=t[s].Xi();null!==e&&(e<i&&(i=e),e>n&&(n=e))}return{H_:i,y_:n}}T_(t,i,n){let s=this.w_(i);if(null===s&&(s=this.v_(i,this.$i.W().overlayPriceScales)),this.po.push(t),!_t(i)){const n=this.o_.get(i)||[];n.push(t),this.o_.set(i,n)}s.qo(t),t.Gi(s),t.Ki(n),this.P_(s),this.mo=null}m_(t,i,n){i.Cr!==n.Cr&&this.L_(t)}v_(t,i){const n=Object.assign({visible:!0,autoScale:!0},z(i)),s=new wn(t,n,this.$i.W().layout,this.$i.W().localization);return s.Lo(this.At()),s}}class Mn{constructor(t,i,n=50){this.Ke=0,this.Ge=1,this.Je=1,this.tr=new Map,this.Qe=new Map,this.U_=t,this.q_=i,this.ir=n}Y_(t){const i=t.time,n=this.q_.cacheKey(i),s=this.tr.get(n);if(void 0!==s)return s.Z_;if(this.Ke===this.ir){const t=this.Qe.get(this.Je);this.Qe.delete(this.Je),this.tr.delete(m(t)),this.Je++,this.Ke--}const e=this.U_(t);return this.tr.set(n,{Z_:e,rr:this.Ge}),this.Qe.set(this.Ge,n),this.Ke++,this.Ge++,e}}class xn{constructor(t,i){p(t<=i,\"right should be >= left\"),this.X_=t,this.K_=i}Os(){return this.X_}ui(){return this.K_}G_(){return this.K_-this.X_+1}Kr(t){return this.X_<=t&&t<=this.K_}Ch(t){return this.X_===t.Os()&&this.K_===t.ui()}}function Sn(t,i){return null===t||null===i?t===i:t.Ch(i)}class kn{constructor(){this.J_=new Map,this.tr=null,this.Q_=!1}tu(t){this.Q_=t,this.tr=null}iu(t,i){this.nu(i),this.tr=null;for(let n=i;n<t.length;++n){const i=t[n];let s=this.J_.get(i.timeWeight);void 0===s&&(s=[],this.J_.set(i.timeWeight,s)),s.push({index:n,time:i.time,weight:i.timeWeight,originalTime:i.originalTime})}}su(t,i){const n=Math.ceil(i/t);return null!==this.tr&&this.tr.eu===n||(this.tr={Ha:this.ru(n),eu:n}),this.tr.Ha}nu(t){if(0===t)return void this.J_.clear();const i=[];this.J_.forEach(((n,s)=>{t<=n[0].index?i.push(s):n.splice(Bt(n,t,(i=>i.index<t)),1/0)}));for(const t of i)this.J_.delete(t)}ru(t){let i=[];for(const n of Array.from(this.J_.keys()).sort(((t,i)=>i-t))){if(!this.J_.get(n))continue;const s=i;i=[];const e=s.length;let r=0;const h=m(this.J_.get(n)),l=h.length;let a=1/0,o=-1/0;for(let n=0;n<l;n++){const l=h[n],_=l.index;for(;r<e;){const t=s[r],n=t.index;if(!(n<_)){a=n;break}r++,i.push(t),o=n,a=1/0}if(a-_>=t&&_-o>=t)i.push(l),o=_;else if(this.Q_)return s}for(;r<e;r++)i.push(s[r])}return i}}class yn{constructor(t){this.hu=t}lu(){return null===this.hu?null:new xn(Math.floor(this.hu.Os()),Math.ceil(this.hu.ui()))}au(){return this.hu}static ou(){return new yn(null)}}function Cn(t,i){return t.weight>i.weight?t:i}class Tn{constructor(t,i,n,s){this.__=0,this._u=null,this.uu=[],this.Mo=null,this.wo=null,this.cu=new kn,this.du=new Map,this.fu=yn.ou(),this.vu=!0,this.pu=new D,this.mu=new D,this.bu=new D,this.wu=null,this.gu=null,this.Mu=[],this.cn=i,this.yo=n,this.xu=i.rightOffset,this.Su=i.barSpacing,this.$i=t,this.q_=s,this.ku(),this.cu.tu(i.uniformDistribution)}W(){return this.cn}yu(t){V(this.yo,t),this.Cu(),this.ku()}$h(t,i){var n;V(this.cn,t),this.cn.fixLeftEdge&&this.Tu(),this.cn.fixRightEdge&&this.Pu(),void 0!==t.barSpacing&&this.$i.Gn(t.barSpacing),void 0!==t.rightOffset&&this.$i.Jn(t.rightOffset),void 0!==t.minBarSpacing&&this.$i.Gn(null!==(n=t.barSpacing)&&void 0!==n?n:this.Su),this.Cu(),this.ku(),this.bu.m()}mn(t){var i,n;return null!==(n=null===(i=this.uu[t])||void 0===i?void 0:i.time)&&void 0!==n?n:null}Ui(t){var i;return null!==(i=this.uu[t])&&void 0!==i?i:null}Va(t,i){if(this.uu.length<1)return null;if(this.q_.key(t)>this.q_.key(this.uu[this.uu.length-1].time))return i?this.uu.length-1:null;const n=Bt(this.uu,this.q_.key(t),((t,i)=>this.q_.key(t.time)<i));return this.q_.key(t)<this.q_.key(this.uu[n].time)?i?n:null:n}Ni(){return 0===this.__||0===this.uu.length||null===this._u}Da(){return this.uu.length>0}Xs(){return this.Ru(),this.fu.lu()}Du(){return this.Ru(),this.fu.au()}Vu(){const t=this.Xs();if(null===t)return null;const i={from:t.Os(),to:t.ui()};return this.Ou(i)}Ou(t){const i=Math.round(t.from),n=Math.round(t.to),s=b(this.Bu()),e=b(this.Au());return{from:b(this.Ui(Math.max(s,i))),to:b(this.Ui(Math.min(e,n)))}}Iu(t){return{from:b(this.Va(t.from,!0)),to:b(this.Va(t.to,!0))}}Hi(){return this.__}S_(t){if(!isFinite(t)||t<=0)return;if(this.__===t)return;const i=this.Du(),n=this.__;if(this.__=t,this.vu=!0,this.cn.lockVisibleTimeRangeOnResize&&0!==n){const i=this.Su*t/n;this.Su=i}if(this.cn.fixLeftEdge&&null!==i&&i.Os()<=0){const i=n-t;this.xu-=Math.round(i/this.Su)+1,this.vu=!0}this.zu(),this.Lu()}It(t){if(this.Ni()||!B(t))return 0;const i=this.Eu()+this.xu-t;return this.__-(i+.5)*this.Su-1}Qs(t,i){const n=this.Eu(),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].ot,e=n+this.xu-s,r=this.__-(e+.5)*this.Su-1;t[i].nt=r}}Nu(t){return Math.ceil(this.Fu(t))}Jn(t){this.vu=!0,this.xu=t,this.Lu(),this.$i.Wu(),this.$i.Uh()}le(){return this.Su}Gn(t){this.ju(t),this.Lu(),this.$i.Wu(),this.$i.Uh()}Hu(){return this.xu}Ha(){if(this.Ni())return null;if(null!==this.gu)return this.gu;const t=this.Su,i=5*(this.$i.W().layout.fontSize+4)/8*(this.cn.tickMarkMaxCharacterLength||8),n=Math.round(i/t),s=b(this.Xs()),e=Math.max(s.Os(),s.Os()-n),r=Math.max(s.ui(),s.ui()-n),h=this.cu.su(t,i),l=this.Bu()+n,a=this.Au()-n,o=this.$u(),_=this.cn.fixLeftEdge||o,u=this.cn.fixRightEdge||o;let c=0;for(const t of h){if(!(e<=t.index&&t.index<=r))continue;let n;c<this.Mu.length?(n=this.Mu[c],n.coord=this.It(t.index),n.label=this.Uu(t),n.weight=t.weight):(n={needAlignCoordinate:!1,coord:this.It(t.index),label:this.Uu(t),weight:t.weight},this.Mu.push(n)),this.Su>i/2&&!o?n.needAlignCoordinate=!1:n.needAlignCoordinate=_&&t.index<=l||u&&t.index>=a,c++}return this.Mu.length=c,this.gu=this.Mu,this.Mu}qu(){this.vu=!0,this.Gn(this.cn.barSpacing),this.Jn(this.cn.rightOffset)}Yu(t){this.vu=!0,this._u=t,this.Lu(),this.Tu()}Zu(t,i){const n=this.Fu(t),s=this.le(),e=s+i*(s/10);this.Gn(e),this.cn.rightBarStaysOnScroll||this.Jn(this.Hu()+(n-this.Fu(t)))}Go(t){this.Mo&&this.n_(),null===this.wo&&null===this.wu&&(this.Ni()||(this.wo=t,this.Xu()))}Jo(t){if(null===this.wu)return;const i=kt(this.__-t,0,this.__),n=kt(this.__-b(this.wo),0,this.__);0!==i&&0!==n&&this.Gn(this.wu.le*i/n)}Qo(){null!==this.wo&&(this.wo=null,this.Ku())}t_(t){null===this.Mo&&null===this.wu&&(this.Ni()||(this.Mo=t,this.Xu()))}i_(t){if(null===this.Mo)return;const i=(this.Mo-t)/this.le();this.xu=b(this.wu).Hu+i,this.vu=!0,this.Lu()}n_(){null!==this.Mo&&(this.Mo=null,this.Ku())}Gu(){this.Ju(this.cn.rightOffset)}Ju(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.xu,s=performance.now();this.$i.Zn({Qu:t=>(t-s)/i>=1,tc:e=>{const r=(e-s)/i;return r>=1?t:n+(t-n)*r}})}bt(t,i){this.vu=!0,this.uu=t,this.cu.iu(t,i),this.Lu()}nc(){return this.pu}sc(){return this.mu}ec(){return this.bu}Eu(){return this._u||0}rc(t){const i=t.G_();this.ju(this.__/i),this.xu=t.ui()-this.Eu(),this.Lu(),this.vu=!0,this.$i.Wu(),this.$i.Uh()}hc(){const t=this.Bu(),i=this.Au();null!==t&&null!==i&&this.rc(new xn(t,i+this.cn.rightOffset))}lc(t){const i=new xn(t.from,t.to);this.rc(i)}qi(t){return void 0!==this.yo.timeFormatter?this.yo.timeFormatter(t.originalTime):this.q_.formatHorzItem(t.time)}$u(){const{handleScroll:t,handleScale:i}=this.$i.W();return!(t.horzTouchDrag||t.mouseWheel||t.pressedMouseMove||t.vertTouchDrag||i.axisDoubleClickReset.time||i.axisPressedMouseMove.time||i.mouseWheel||i.pinch)}Bu(){return 0===this.uu.length?null:0}Au(){return 0===this.uu.length?null:this.uu.length-1}ac(t){return(this.__-1-t)/this.Su}Fu(t){const i=this.ac(t),n=this.Eu()+this.xu-i;return Math.round(1e6*n)/1e6}ju(t){const i=this.Su;this.Su=t,this.zu(),i!==this.Su&&(this.vu=!0,this.oc())}Ru(){if(!this.vu)return;if(this.vu=!1,this.Ni())return void this._c(yn.ou());const t=this.Eu(),i=this.__/this.Su,n=this.xu+t,s=new xn(n-i+1,n);this._c(new yn(s))}zu(){const t=this.uc();if(this.Su<t&&(this.Su=t,this.vu=!0),0!==this.__){const t=.5*this.__;this.Su>t&&(this.Su=t,this.vu=!0)}}uc(){return this.cn.fixLeftEdge&&this.cn.fixRightEdge&&0!==this.uu.length?this.__/this.uu.length:this.cn.minBarSpacing}Lu(){const t=this.cc();null!==t&&this.xu<t&&(this.xu=t,this.vu=!0);const i=this.dc();this.xu>i&&(this.xu=i,this.vu=!0)}cc(){const t=this.Bu(),i=this._u;if(null===t||null===i)return null;return t-i-1+(this.cn.fixLeftEdge?this.__/this.Su:Math.min(2,this.uu.length))}dc(){return this.cn.fixRightEdge?0:this.__/this.Su-Math.min(2,this.uu.length)}Xu(){this.wu={le:this.le(),Hu:this.Hu()}}Ku(){this.wu=null}Uu(t){let i=this.du.get(t.weight);return void 0===i&&(i=new Mn((t=>this.fc(t)),this.q_),this.du.set(t.weight,i)),i.Y_(t)}fc(t){return this.q_.formatTickmark(t,this.yo)}_c(t){const i=this.fu;this.fu=t,Sn(i.lu(),this.fu.lu())||this.pu.m(),Sn(i.au(),this.fu.au())||this.mu.m(),this.oc()}oc(){this.gu=null}Cu(){this.oc(),this.du.clear()}ku(){this.q_.updateFormatter(this.yo)}Tu(){if(!this.cn.fixLeftEdge)return;const t=this.Bu();if(null===t)return;const i=this.Xs();if(null===i)return;const n=i.Os()-t;if(n<0){const t=this.xu-n-1;this.Jn(t)}this.zu()}Pu(){this.Lu(),this.zu()}}class Pn{X(t,i,n){t.useMediaCoordinateSpace((t=>this.K(t,i,n)))}gl(t,i,n){t.useMediaCoordinateSpace((t=>this.vc(t,i,n)))}vc(t,i,n){}}class Rn extends Pn{constructor(t){super(),this.mc=new Map,this.zt=t}K(t){}vc(t){if(!this.zt.yt)return;const{context:i,mediaSize:n}=t;let s=0;for(const t of this.zt.bc){if(0===t.Kt.length)continue;i.font=t.R;const e=this.wc(i,t.Kt);e>n.width?t.Zu=n.width/e:t.Zu=1,s+=t.gc*t.Zu}let e=0;switch(this.zt.Mc){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)}i.fillStyle=this.zt.V;for(const t of this.zt.bc){i.save();let s=0;switch(this.zt.xc){case\"left\":i.textAlign=\"left\",s=t.gc/2;break;case\"center\":i.textAlign=\"center\",s=n.width/2;break;case\"right\":i.textAlign=\"right\",s=n.width-1-t.gc/2}i.translate(s,e),i.textBaseline=\"top\",i.font=t.R,i.scale(t.Zu,t.Zu),i.fillText(t.Kt,0,t.Sc),i.restore(),e+=t.gc*t.Zu}}wc(t,i){const n=this.kc(t.font);let s=n.get(i);return void 0===s&&(s=t.measureText(i).width,n.set(i,s)),s}kc(t){let i=this.mc.get(t);return void 0===i&&(i=new Map,this.mc.set(t,i)),i}}class Dn{constructor(t){this.ft=!0,this.Ft={yt:!1,V:\"\",bc:[],Mc:\"center\",xc:\"center\"},this.Wt=new Rn(this.Ft),this.jt=t}bt(){this.ft=!0}gt(){return this.ft&&(this.Mt(),this.ft=!1),this.Wt}Mt(){const t=this.jt.W(),i=this.Ft;i.yt=t.visible,i.yt&&(i.V=t.color,i.xc=t.horzAlign,i.Mc=t.vertAlign,i.bc=[{Kt:t.text,R:F(t.fontSize,t.fontFamily,t.fontStyle),gc:1.2*t.fontSize,Sc:0,Zu:0}])}}class Vn extends lt{constructor(t,i){super(),this.cn=i,this.wn=new Dn(this)}Rn(){return[]}Pn(){return[this.wn]}W(){return this.cn}Vn(){this.wn.bt()}}var On,Bn,An,In,zn;!function(t){t[t.OnTouchEnd=0]=\"OnTouchEnd\",t[t.OnNextTap=1]=\"OnNextTap\"}(On||(On={}));class Ln{constructor(t,i,n){this.yc=[],this.Cc=[],this.__=0,this.Tc=null,this.Pc=new D,this.Rc=new D,this.Dc=null,this.Vc=t,this.cn=i,this.q_=n,this.Oc=new W(this),this.yl=new Tn(this,i.timeScale,this.cn.localization,n),this.vt=new ot(this,i.crosshair),this.Bc=new Ji(i.crosshair),this.Ac=new Vn(this,i.watermark),this.Ic(),this.yc[0].x_(2e3),this.zc=this.Lc(0),this.Ec=this.Lc(1)}Kl(){this.Nc(ut.es())}Uh(){this.Nc(ut.ss())}oa(){this.Nc(new ut(1))}Gl(t){const i=this.Fc(t);this.Nc(i)}Wc(){return this.Tc}jc(t){const i=this.Tc;this.Tc=t,null!==i&&this.Gl(i.Hc),null!==t&&this.Gl(t.Hc)}W(){return this.cn}$h(t){V(this.cn,t),this.yc.forEach((i=>i.b_(t))),void 0!==t.timeScale&&this.yl.$h(t.timeScale),void 0!==t.localization&&this.yl.yu(t.localization),(t.leftPriceScale||t.rightPriceScale)&&this.Pc.m(),this.zc=this.Lc(0),this.Ec=this.Lc(1),this.Kl()}$c(t,i){if(\"left\"===t)return void this.$h({leftPriceScale:i});if(\"right\"===t)return void this.$h({rightPriceScale:i});const n=this.Uc(t);null!==n&&(n.Dt.$h(i),this.Pc.m())}Uc(t){for(const i of this.yc){const n=i.w_(t);if(null!==n)return{Ht:i,Dt:n}}return null}St(){return this.yl}qc(){return this.yc}Yc(){return this.Ac}Zc(){return this.vt}Xc(){return this.Rc}Kc(t,i){t.Lo(i),this.Wu()}S_(t){this.__=t,this.yl.S_(this.__),this.yc.forEach((i=>i.S_(t))),this.Wu()}Ic(t){const i=new gn(this.yl,this);void 0!==t?this.yc.splice(t,0,i):this.yc.push(i);const n=void 0===t?this.yc.length-1:t,s=ut.es();return s.Nn(n,{Fn:0,Wn:!0}),this.Nc(s),i}V_(t,i,n){t.V_(i,n)}O_(t,i,n){t.O_(i,n),this.Jl(),this.Nc(this.Gc(t,2))}B_(t,i){t.B_(i),this.Nc(this.Gc(t,2))}A_(t,i,n){i.Vo()||t.A_(i,n)}I_(t,i,n){i.Vo()||(t.I_(i,n),this.Jl(),this.Nc(this.Gc(t,2)))}z_(t,i){i.Vo()||(t.z_(i),this.Nc(this.Gc(t,2)))}E_(t,i){t.E_(i),this.Nc(this.Gc(t,2))}Jc(t){this.yl.Go(t)}Qc(t,i){const n=this.St();if(n.Ni()||0===i)return;const s=n.Hi();t=Math.max(1,Math.min(t,s)),n.Zu(t,i),this.Wu()}td(t){this.nd(0),this.sd(t),this.ed()}rd(t){this.yl.Jo(t),this.Wu()}hd(){this.yl.Qo(),this.Uh()}nd(t){this.yl.t_(t)}sd(t){this.yl.i_(t),this.Wu()}ed(){this.yl.n_(),this.Uh()}wt(){return this.Cc}ld(t,i,n,s,e){this.vt.gn(t,i);let r=NaN,h=this.yl.Nu(t);const l=this.yl.Xs();null!==l&&(h=Math.min(Math.max(l.Os(),h),l.ui()));const a=s.vn(),o=a.Ct();null!==o&&(r=a.pn(i,o)),r=this.Bc.Oa(r,h,s),this.vt.kn(h,r,s),this.oa(),e||this.Rc.m(this.vt.xt(),{x:t,y:i},n)}ad(t,i,n){const s=n.vn(),e=s.Ct(),r=s.Rt(t,b(e)),h=this.yl.Va(i,!0),l=this.yl.It(b(h));this.ld(l,r,null,n,!0)}od(t){this.Zc().Cn(),this.oa(),t||this.Rc.m(null,null,null)}Jl(){const t=this.vt.Ht();if(null!==t){const i=this.vt.xn(),n=this.vt.Sn();this.ld(i,n,null,t)}this.vt.Vn()}_d(t,i,n){const s=this.yl.mn(0);void 0!==i&&void 0!==n&&this.yl.bt(i,n);const e=this.yl.mn(0),r=this.yl.Eu(),h=this.yl.Xs();if(null!==h&&null!==s&&null!==e){const i=h.Kr(r),l=this.q_.key(s)>this.q_.key(e),a=null!==t&&t>r&&!l,o=this.yl.W().allowShiftVisibleRangeOnWhitespaceReplacement,_=i&&(!(void 0===n)||o)&&this.yl.W().shiftVisibleRangeOnNewBar;if(a&&!_){const i=t-r;this.yl.Jn(this.yl.Hu()-i)}}this.yl.Yu(t)}ia(t){null!==t&&t.F_()}dr(t){const i=this.yc.find((i=>i.Uo().includes(t)));return void 0===i?null:i}Wu(){this.Ac.Vn(),this.yc.forEach((t=>t.F_())),this.Jl()}S(){this.yc.forEach((t=>t.S())),this.yc.length=0,this.cn.localization.priceFormatter=void 0,this.cn.localization.percentageFormatter=void 0,this.cn.localization.timeFormatter=void 0}ud(){return this.Oc}br(){return this.Oc.W()}g_(){return this.Pc}dd(t,i,n){const s=this.yc[0],e=this.fd(i,t,s,n);return this.Cc.push(e),1===this.Cc.length?this.Kl():this.Uh(),e}vd(t){const i=this.dr(t),n=this.Cc.indexOf(t);p(-1!==n,\"Series not found\"),this.Cc.splice(n,1),b(i).Zo(t),t.S&&t.S()}Xl(t,i){const n=b(this.dr(t));n.Zo(t);const s=this.Uc(i);if(null===s){const s=t.Xi();n.qo(t,i,s)}else{const e=s.Ht===n?t.Xi():void 0;s.Ht.qo(t,i,e)}}hc(){const t=ut.ss();t.$n(),this.Nc(t)}pd(t){const i=ut.ss();i.Yn(t),this.Nc(i)}Kn(){const t=ut.ss();t.Kn(),this.Nc(t)}Gn(t){const i=ut.ss();i.Gn(t),this.Nc(i)}Jn(t){const i=ut.ss();i.Jn(t),this.Nc(i)}Zn(t){const i=ut.ss();i.Zn(t),this.Nc(i)}Un(){const t=ut.ss();t.Un(),this.Nc(t)}md(){return this.cn.rightPriceScale.visible?\"right\":\"left\"}bd(){return this.Ec}q(){return this.zc}Bt(t){const i=this.Ec,n=this.zc;if(i===n)return i;if(t=Math.max(0,Math.min(100,Math.round(100*t))),null===this.Dc||this.Dc.Ps!==n||this.Dc.Rs!==i)this.Dc={Ps:n,Rs:i,wd:new Map};else{const i=this.Dc.wd.get(t);if(void 0!==i)return i}const s=function(t,i,n){const[s,e,r,h]=T(t),[l,a,o,_]=T(i),u=[M(s+n*(l-s)),M(e+n*(a-e)),M(r+n*(o-r)),x(h+n*(_-h))];return`rgba(${u[0]}, ${u[1]}, ${u[2]}, ${u[3]})`}(n,i,t/100);return this.Dc.wd.set(t,s),s}Gc(t,i){const n=new ut(i);if(null!==t){const s=this.yc.indexOf(t);n.Nn(s,{Fn:i})}return n}Fc(t,i){return void 0===i&&(i=2),this.Gc(this.dr(t),i)}Nc(t){this.Vc&&this.Vc(t),this.yc.forEach((t=>t.j_().qh().bt()))}fd(t,i,n,s){const e=new Gi(this,t,i,n,s),r=void 0!==t.priceScaleId?t.priceScaleId:this.md();return n.qo(e,r),_t(r)||e.$h(t),e}Lc(t){const i=this.cn.layout;return\"gradient\"===i.background.type?0===t?i.background.topColor:i.background.bottomColor:i.background.color}}function En(t){return!O(t)&&!A(t)}function Nn(t){return O(t)}!function(t){t[t.Disabled=0]=\"Disabled\",t[t.Continuous=1]=\"Continuous\",t[t.OnDataUpdate=2]=\"OnDataUpdate\"}(Bn||(Bn={})),function(t){t[t.LastBar=0]=\"LastBar\",t[t.LastVisible=1]=\"LastVisible\"}(An||(An={})),function(t){t.Solid=\"solid\",t.VerticalGradient=\"gradient\"}(In||(In={})),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\"}(zn||(zn={}));const Fn=t=>t.getUTCFullYear();function Wn(t,i,n){return i.replace(/yyyy/g,(t=>dt(Fn(t),4))(t)).replace(/yy/g,(t=>dt(Fn(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=>dt((t=>t.getUTCMonth()+1)(t),2))(t)).replace(/dd/g,(t=>dt((t=>t.getUTCDate())(t),2))(t))}class jn{constructor(t=\"yyyy-MM-dd\",i=\"default\"){this.gd=t,this.Md=i}Y_(t){return Wn(t,this.gd,this.Md)}}class Hn{constructor(t){this.xd=t||\"%h:%m:%s\"}Y_(t){return this.xd.replace(\"%h\",dt(t.getUTCHours(),2)).replace(\"%m\",dt(t.getUTCMinutes(),2)).replace(\"%s\",dt(t.getUTCSeconds(),2))}}const $n={Sd:\"yyyy-MM-dd\",kd:\"%h:%m:%s\",yd:\" \",Cd:\"default\"};class Un{constructor(t={}){const i=Object.assign(Object.assign({},$n),t);this.Td=new jn(i.Sd,i.Cd),this.Pd=new Hn(i.kd),this.Rd=i.yd}Y_(t){return`${this.Td.Y_(t)}${this.Rd}${this.Pd.Y_(t)}`}}function qn(t){return 60*t*60*1e3}function Yn(t){return 60*t*1e3}const Zn=[{Dd:(Xn=1,1e3*Xn),Vd:10},{Dd:Yn(1),Vd:20},{Dd:Yn(5),Vd:21},{Dd:Yn(30),Vd:22},{Dd:qn(1),Vd:30},{Dd:qn(3),Vd:31},{Dd:qn(6),Vd:32},{Dd:qn(12),Vd:33}];var Xn;function Kn(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=Zn.length-1;n>=0;--n)if(Math.floor(i.getTime()/Zn[n].Dd)!==Math.floor(t.getTime()/Zn[n].Dd))return Zn[n].Vd;return 0}function Gn(t){let i=t;if(A(t)&&(i=Qn(t)),!En(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{Od:Math.round(n.getTime()/1e3),Bd:i}}function Jn(t){if(!Nn(t))throw new Error(\"time must be of type isUTCTimestamp\");return{Od:t}}function Qn(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 ts(t){A(t.time)&&(t.time=Qn(t.time))}class is{options(){return this.cn}setOptions(t){this.cn=t,this.updateFormatter(t.localization)}preprocessData(t){Array.isArray(t)?function(t){t.forEach(ts)}(t):ts(t)}createConverterToInternalObj(t){return b(function(t){return 0===t.length?null:En(t[0].time)||A(t[0].time)?Gn:Jn}(t))}key(t){return\"object\"==typeof t&&\"Od\"in t?t.Od:this.key(this.convertHorzItemToInternal(t))}cacheKey(t){const i=t;return void 0===i.Bd?new Date(1e3*i.Od).getTime():new Date(Date.UTC(i.Bd.year,i.Bd.month-1,i.Bd.day)).getTime()}convertHorzItemToInternal(t){return Nn(i=t)?Jn(i):En(i)?Gn(i):Gn(Qn(i));var i}updateFormatter(t){if(!this.cn)return;const i=t.dateFormat;this.cn.timeScale.timeVisible?this.Ad=new Un({Sd:i,kd:this.cn.timeScale.secondsVisible?\"%h:%m:%s\":\"%h:%m\",yd:\" \",Cd:t.locale}):this.Ad=new jn(i,t.locale)}formatHorzItem(t){const i=t;return this.Ad.Y_(new Date(1e3*i.Od))}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.cn.timeScale.timeVisible,this.cn.timeScale.secondsVisible),s=this.cn.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.Bd?new Date(1e3*t.Od):new Date(Date.UTC(t.Bd.year,t.Bd.month-1,t.Bd.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(Cn,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.Od,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.Od);null!==s&&(i.timeWeight=Kn(h,s)),e+=i.time.Od-(n||i.time.Od),n=i.time.Od,s=h}if(0===i&&t.length>1){const i=Math.ceil(e/(t.length-1)),n=new Date(1e3*(t[0].time.Od-i));t[0].timeWeight=Kn(new Date(1e3*t[0].time.Od),n)}}(t,i)}static Id(t){return V({localization:{dateFormat:\"dd MMM 'yy\"}},null!=t?t:{})}}const ns=\"undefined\"!=typeof window;function ss(){return!!ns&&window.navigator.userAgent.toLowerCase().indexOf(\"firefox\")>-1}function es(){return!!ns&&/iPhone|iPad|iPod/.test(window.navigator.platform)}function rs(t){return t+t%2}function hs(t,i){return t.zd-i.zd}function ls(t,i,n){const s=(t.zd-i.zd)/(t.ot-i.ot);return Math.sign(s)*Math.min(Math.abs(s),n)}class as{constructor(t,i,n,s){this.Ld=null,this.Ed=null,this.Nd=null,this.Fd=null,this.Wd=null,this.jd=0,this.Hd=0,this.$d=t,this.Ud=i,this.qd=n,this.rs=s}Yd(t,i){if(null!==this.Ld){if(this.Ld.ot===i)return void(this.Ld.zd=t);if(Math.abs(this.Ld.zd-t)<this.rs)return}this.Fd=this.Nd,this.Nd=this.Ed,this.Ed=this.Ld,this.Ld={ot:i,zd:t}}Vr(t,i){if(null===this.Ld||null===this.Ed)return;if(i-this.Ld.ot>50)return;let n=0;const s=ls(this.Ld,this.Ed,this.Ud),e=hs(this.Ld,this.Ed),r=[s],h=[e];if(n+=e,null!==this.Nd){const t=ls(this.Ed,this.Nd,this.Ud);if(Math.sign(t)===Math.sign(s)){const i=hs(this.Ed,this.Nd);if(r.push(t),h.push(i),n+=i,null!==this.Fd){const t=ls(this.Nd,this.Fd,this.Ud);if(Math.sign(t)===Math.sign(s)){const i=hs(this.Nd,this.Fd);r.push(t),h.push(i),n+=i}}}}let l=0;for(let t=0;t<r.length;++t)l+=h[t]/n*r[t];Math.abs(l)<this.$d||(this.Wd={zd:t,ot:i},this.Hd=l,this.jd=function(t,i){const n=Math.log(i);return Math.log(1*n/-t)/n}(Math.abs(l),this.qd))}tc(t){const i=b(this.Wd),n=t-i.ot;return i.zd+this.Hd*(Math.pow(this.qd,n)-1)/Math.log(this.qd)}Qu(t){return null===this.Wd||this.Zd(t)===this.jd}Zd(t){const i=t-b(this.Wd).ot;return Math.min(i,this.jd)}}class os{constructor(t,i){this.Xd=void 0,this.Kd=void 0,this.Gd=void 0,this.en=!1,this.Jd=t,this.Qd=i,this.tf()}bt(){this.tf()}if(){this.Xd&&this.Jd.removeChild(this.Xd),this.Kd&&this.Jd.removeChild(this.Kd),this.Xd=void 0,this.Kd=void 0}nf(){return this.en!==this.sf()||this.Gd!==this.ef()}ef(){return P(T(this.Qd.W().layout.textColor))>160?\"dark\":\"light\"}sf(){return this.Qd.W().layout.attributionLogo}rf(){const t=new URL(location.href);return t.hostname?\"&utm_source=\"+t.hostname+t.pathname:\"\"}tf(){this.nf()&&(this.if(),this.en=this.sf(),this.en&&(this.Gd=this.ef(),this.Kd=document.createElement(\"style\"),this.Kd.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.Xd=document.createElement(\"a\"),this.Xd.href=`https://www.tradingview.com/?utm_medium=lwc-link&utm_campaign=lwc-chart${this.rf()}`,this.Xd.title=\"Charting by TradingView\",this.Xd.id=\"tv-attr-logo\",this.Xd.target=\"_blank\",this.Xd.innerHTML='<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 35 19\" 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.Xd.toggleAttribute(\"data-dark\",\"dark\"===this.Gd),this.Jd.appendChild(this.Kd),this.Jd.appendChild(this.Xd)))}}function _s(t,n){const s=b(t.ownerDocument).createElement(\"canvas\");t.appendChild(s);const e=i(s,{type:\"device-pixel-content-box\",options:{allowResizeObserver:!1},transform:(t,i)=>({width:Math.max(t.width,i.width),height:Math.max(t.height,i.height)})});return e.resizeCanvasElement(n),e}function us(t){var i;t.width=1,t.height=1,null===(i=t.getContext(\"2d\"))||void 0===i||i.clearRect(0,0,1,1)}function cs(t,i,n,s){t.gl&&t.gl(i,n,s)}function ds(t,i,n,s){t.X(i,n,s)}function fs(t,i,n,s){const e=t(n,s);for(const t of e){const n=t.gt();null!==n&&i(n)}}function vs(t){ns&&void 0!==window.chrome&&t.addEventListener(\"mousedown\",(t=>{if(1===t.button)return t.preventDefault(),!1}))}class ps{constructor(t,i,n){this.hf=0,this.lf=null,this.af={nt:Number.NEGATIVE_INFINITY,st:Number.POSITIVE_INFINITY},this._f=0,this.uf=null,this.cf={nt:Number.NEGATIVE_INFINITY,st:Number.POSITIVE_INFINITY},this.df=null,this.ff=!1,this.vf=null,this.pf=null,this.mf=!1,this.bf=!1,this.wf=!1,this.gf=null,this.Mf=null,this.xf=null,this.Sf=null,this.kf=null,this.yf=null,this.Cf=null,this.Tf=0,this.Pf=!1,this.Rf=!1,this.Df=!1,this.Vf=0,this.Of=null,this.Bf=!es(),this.Af=t=>{this.If(t)},this.zf=t=>{if(this.Lf(t)){const i=this.Ef(t);if(++this._f,this.uf&&this._f>1){const{Nf:n}=this.Ff(ws(t),this.cf);n<30&&!this.wf&&this.Wf(i,this.Hf.jf),this.$f()}}else{const i=this.Ef(t);if(++this.hf,this.lf&&this.hf>1){const{Nf:n}=this.Ff(ws(t),this.af);n<5&&!this.bf&&this.Uf(i,this.Hf.qf),this.Yf()}}},this.Zf=t,this.Hf=i,this.cn=n,this.Xf()}S(){null!==this.gf&&(this.gf(),this.gf=null),null!==this.Mf&&(this.Mf(),this.Mf=null),null!==this.Sf&&(this.Sf(),this.Sf=null),null!==this.kf&&(this.kf(),this.kf=null),null!==this.yf&&(this.yf(),this.yf=null),null!==this.xf&&(this.xf(),this.xf=null),this.Kf(),this.Yf()}Gf(t){this.Sf&&this.Sf();const i=this.Jf.bind(this);if(this.Sf=()=>{this.Zf.removeEventListener(\"mousemove\",i)},this.Zf.addEventListener(\"mousemove\",i),this.Lf(t))return;const n=this.Ef(t);this.Uf(n,this.Hf.Qf),this.Bf=!0}Yf(){null!==this.lf&&clearTimeout(this.lf),this.hf=0,this.lf=null,this.af={nt:Number.NEGATIVE_INFINITY,st:Number.POSITIVE_INFINITY}}$f(){null!==this.uf&&clearTimeout(this.uf),this._f=0,this.uf=null,this.cf={nt:Number.NEGATIVE_INFINITY,st:Number.POSITIVE_INFINITY}}Jf(t){if(this.Df||null!==this.pf)return;if(this.Lf(t))return;const i=this.Ef(t);this.Uf(i,this.Hf.tv),this.Bf=!0}iv(t){const i=Ms(t.changedTouches,b(this.Of));if(null===i)return;if(this.Vf=gs(t),null!==this.Cf)return;if(this.Rf)return;this.Pf=!0;const n=this.Ff(ws(i),b(this.pf)),{nv:s,sv:e,Nf:r}=n;if(this.mf||!(r<5)){if(!this.mf){const t=.5*s,i=e>=t&&!this.cn.ev(),n=t>e&&!this.cn.rv();i||n||(this.Rf=!0),this.mf=!0,this.wf=!0,this.Kf(),this.$f()}if(!this.Rf){const n=this.Ef(t,i);this.Wf(n,this.Hf.hv),bs(t)}}}lv(t){if(0!==t.button)return;const i=this.Ff(ws(t),b(this.vf)),{Nf:n}=i;if(n>=5&&(this.bf=!0,this.Yf()),this.bf){const i=this.Ef(t);this.Uf(i,this.Hf.av)}}Ff(t,i){const n=Math.abs(i.nt-t.nt),s=Math.abs(i.st-t.st);return{nv:n,sv:s,Nf:n+s}}ov(t){let i=Ms(t.changedTouches,b(this.Of));if(null===i&&0===t.touches.length&&(i=t.changedTouches[0]),null===i)return;this.Of=null,this.Vf=gs(t),this.Kf(),this.pf=null,this.yf&&(this.yf(),this.yf=null);const n=this.Ef(t,i);if(this.Wf(n,this.Hf._v),++this._f,this.uf&&this._f>1){const{Nf:t}=this.Ff(ws(i),this.cf);t<30&&!this.wf&&this.Wf(n,this.Hf.jf),this.$f()}else this.wf||(this.Wf(n,this.Hf.uv),this.Hf.uv&&bs(t));0===this._f&&bs(t),0===t.touches.length&&this.ff&&(this.ff=!1,bs(t))}If(t){if(0!==t.button)return;const i=this.Ef(t);if(this.vf=null,this.Df=!1,this.kf&&(this.kf(),this.kf=null),ss()){this.Zf.ownerDocument.documentElement.removeEventListener(\"mouseleave\",this.Af)}if(!this.Lf(t))if(this.Uf(i,this.Hf.cv),++this.hf,this.lf&&this.hf>1){const{Nf:n}=this.Ff(ws(t),this.af);n<5&&!this.bf&&this.Uf(i,this.Hf.qf),this.Yf()}else this.bf||this.Uf(i,this.Hf.dv)}Kf(){null!==this.df&&(clearTimeout(this.df),this.df=null)}fv(t){if(null!==this.Of)return;const i=t.changedTouches[0];this.Of=i.identifier,this.Vf=gs(t);const n=this.Zf.ownerDocument.documentElement;this.wf=!1,this.mf=!1,this.Rf=!1,this.pf=ws(i),this.yf&&(this.yf(),this.yf=null);{const i=this.iv.bind(this),s=this.ov.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.Kf(),this.df=setTimeout(this.vv.bind(this,t),240)}const s=this.Ef(t,i);this.Wf(s,this.Hf.pv),this.uf||(this._f=0,this.uf=setTimeout(this.$f.bind(this),500),this.cf=ws(i))}mv(t){if(0!==t.button)return;const i=this.Zf.ownerDocument.documentElement;ss()&&i.addEventListener(\"mouseleave\",this.Af),this.bf=!1,this.vf=ws(t),this.kf&&(this.kf(),this.kf=null);{const t=this.lv.bind(this),n=this.If.bind(this);this.kf=()=>{i.removeEventListener(\"mousemove\",t),i.removeEventListener(\"mouseup\",n)},i.addEventListener(\"mousemove\",t),i.addEventListener(\"mouseup\",n)}if(this.Df=!0,this.Lf(t))return;const n=this.Ef(t);this.Uf(n,this.Hf.bv),this.lf||(this.hf=0,this.lf=setTimeout(this.Yf.bind(this),500),this.af=ws(t))}Xf(){this.Zf.addEventListener(\"mouseenter\",this.Gf.bind(this)),this.Zf.addEventListener(\"touchcancel\",this.Kf.bind(this));{const t=this.Zf.ownerDocument,i=t=>{this.Hf.wv&&(t.composed&&this.Zf.contains(t.composedPath()[0])||t.target&&this.Zf.contains(t.target)||this.Hf.wv())};this.Mf=()=>{t.removeEventListener(\"touchstart\",i)},this.gf=()=>{t.removeEventListener(\"mousedown\",i)},t.addEventListener(\"mousedown\",i),t.addEventListener(\"touchstart\",i,{passive:!0})}es()&&(this.xf=()=>{this.Zf.removeEventListener(\"dblclick\",this.zf)},this.Zf.addEventListener(\"dblclick\",this.zf)),this.Zf.addEventListener(\"mouseleave\",this.gv.bind(this)),this.Zf.addEventListener(\"touchstart\",this.fv.bind(this),{passive:!0}),vs(this.Zf),this.Zf.addEventListener(\"mousedown\",this.mv.bind(this)),this.Mv(),this.Zf.addEventListener(\"touchmove\",(()=>{}),{passive:!1})}Mv(){void 0===this.Hf.xv&&void 0===this.Hf.Sv&&void 0===this.Hf.kv||(this.Zf.addEventListener(\"touchstart\",(t=>this.yv(t.touches)),{passive:!0}),this.Zf.addEventListener(\"touchmove\",(t=>{if(2===t.touches.length&&null!==this.Cf&&void 0!==this.Hf.Sv){const i=ms(t.touches[0],t.touches[1])/this.Tf;this.Hf.Sv(this.Cf,i),bs(t)}}),{passive:!1}),this.Zf.addEventListener(\"touchend\",(t=>{this.yv(t.touches)})))}yv(t){1===t.length&&(this.Pf=!1),2!==t.length||this.Pf||this.ff?this.Cv():this.Tv(t)}Tv(t){const i=this.Zf.getBoundingClientRect()||{left:0,top:0};this.Cf={nt:(t[0].clientX-i.left+(t[1].clientX-i.left))/2,st:(t[0].clientY-i.top+(t[1].clientY-i.top))/2},this.Tf=ms(t[0],t[1]),void 0!==this.Hf.xv&&this.Hf.xv(),this.Kf()}Cv(){null!==this.Cf&&(this.Cf=null,void 0!==this.Hf.kv&&this.Hf.kv())}gv(t){if(this.Sf&&this.Sf(),this.Lf(t))return;if(!this.Bf)return;const i=this.Ef(t);this.Uf(i,this.Hf.Pv),this.Bf=!es()}vv(t){const i=Ms(t.touches,b(this.Of));if(null===i)return;const n=this.Ef(t,i);this.Wf(n,this.Hf.Rv),this.wf=!0,this.ff=!0}Lf(t){return t.sourceCapabilities&&void 0!==t.sourceCapabilities.firesTouchEvents?t.sourceCapabilities.firesTouchEvents:gs(t)<this.Vf+500}Wf(t,i){i&&i.call(this.Hf,t)}Uf(t,i){i&&i.call(this.Hf,t)}Ef(t,i){const n=i||t,s=this.Zf.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,Dv:!t.type.startsWith(\"mouse\")&&\"contextmenu\"!==t.type&&\"click\"!==t.type,Vv:t.type,Ov:n.target,Bv:t.view,Av:()=>{\"touchstart\"!==t.type&&bs(t)}}}}function ms(t,i){const n=t.clientX-i.clientX,s=t.clientY-i.clientY;return Math.sqrt(n*n+s*s)}function bs(t){t.cancelable&&t.preventDefault()}function ws(t){return{nt:t.pageX,st:t.pageY}}function gs(t){return t.timeStamp||performance.now()}function Ms(t,i){for(let n=0;n<t.length;++n)if(t[n].identifier===i)return t[n];return null}function xs(t){return{Hc:t.Hc,Iv:{gr:t.zv.externalId},Lv:t.zv.cursorStyle}}function Ss(t,i,n){for(const s of t){const t=s.gt();if(null!==t&&t.wr){const e=t.wr(i,n);if(null!==e)return{Bv:s,Iv:e}}}return null}function ks(t,i){return n=>{var s,e,r,h;return(null!==(e=null===(s=n.Dt())||void 0===s?void 0:s.Pa())&&void 0!==e?e:\"\")!==i?[]:null!==(h=null===(r=n.da)||void 0===r?void 0:r.call(n,t))&&void 0!==h?h:[]}}function ys(t,i,n,s){if(!t.length)return;let e=0;const r=n/2,h=t[0].At(s,!0);let l=1===i?r-(t[0].Vi()-h/2):t[0].Vi()-h/2-r;l=Math.max(0,l);for(let r=1;r<t.length;r++){const h=t[r],a=t[r-1],o=a.At(s,!1),_=h.Vi(),u=a.Vi();if(1===i?_>u-o:_<u+o){const s=u-o*i;h.Oi(s);const r=s-i*o/2;if((1===i?r<0:r>n)&&l>0){const s=1===i?-1-r:r-n,h=Math.min(s,l);for(let n=e;n<t.length;n++)t[n].Oi(t[n].Vi()+i*h);l-=h}}else e=r,l=1===i?u-o-_:_-(u+o)}}class Cs{constructor(i,n,s,e){this.Li=null,this.Ev=null,this.Nv=!1,this.Fv=new ni(200),this.Qr=null,this.Wv=0,this.jv=!1,this.Hv=()=>{this.jv||this.tn.$v().$t().Uh()},this.Uv=()=>{this.jv||this.tn.$v().$t().Uh()},this.tn=i,this.cn=n,this.ko=n.layout,this.Oc=s,this.qv=\"left\"===e,this.Yv=ks(\"normal\",e),this.Zv=ks(\"top\",e),this.Xv=ks(\"bottom\",e),this.Kv=document.createElement(\"div\"),this.Kv.style.height=\"100%\",this.Kv.style.overflow=\"hidden\",this.Kv.style.width=\"25px\",this.Kv.style.left=\"0\",this.Kv.style.position=\"relative\",this.Gv=_s(this.Kv,t({width:16,height:16})),this.Gv.subscribeSuggestedBitmapSizeChanged(this.Hv);const r=this.Gv.canvasElement;r.style.position=\"absolute\",r.style.zIndex=\"1\",r.style.left=\"0\",r.style.top=\"0\",this.Jv=_s(this.Kv,t({width:16,height:16})),this.Jv.subscribeSuggestedBitmapSizeChanged(this.Uv);const h=this.Jv.canvasElement;h.style.position=\"absolute\",h.style.zIndex=\"2\",h.style.left=\"0\",h.style.top=\"0\";const l={bv:this.Qv.bind(this),pv:this.Qv.bind(this),av:this.tp.bind(this),hv:this.tp.bind(this),wv:this.ip.bind(this),cv:this.np.bind(this),_v:this.np.bind(this),qf:this.sp.bind(this),jf:this.sp.bind(this),Qf:this.ep.bind(this),Pv:this.rp.bind(this)};this.hp=new ps(this.Jv.canvasElement,l,{ev:()=>!this.cn.handleScroll.vertTouchDrag,rv:()=>!0})}S(){this.hp.S(),this.Jv.unsubscribeSuggestedBitmapSizeChanged(this.Uv),us(this.Jv.canvasElement),this.Jv.dispose(),this.Gv.unsubscribeSuggestedBitmapSizeChanged(this.Hv),us(this.Gv.canvasElement),this.Gv.dispose(),null!==this.Li&&this.Li.Ko().p(this),this.Li=null}lp(){return this.Kv}P(){return this.ko.fontSize}ap(){const t=this.Oc.W();return this.Qr!==t.R&&(this.Fv.nr(),this.Qr=t.R),t}op(){if(null===this.Li)return 0;let t=0;const i=this.ap(),n=b(this.Gv.canvasElement.getContext(\"2d\"));n.save();const s=this.Li.Ha();n.font=this._p(),s.length>0&&(t=Math.max(this.Fv.xi(n,s[0].so),this.Fv.xi(n,s[s.length-1].so)));const e=this.up();for(let i=e.length;i--;){const s=this.Fv.xi(n,e[i].Kt());s>t&&(t=s)}const r=this.Li.Ct();if(null!==r&&null!==this.Ev&&(2!==(h=this.cn.crosshair).mode&&h.horzLine.visible&&h.horzLine.labelVisible)){const i=this.Li.pn(1,r),s=this.Li.pn(this.Ev.height-2,r);t=Math.max(t,this.Fv.xi(n,this.Li.Fi(Math.floor(Math.min(i,s))+.11111111111111,r)),this.Fv.xi(n,this.Li.Fi(Math.ceil(Math.max(i,s))-.11111111111111,r)))}var h;n.restore();const l=t||34;return rs(Math.ceil(i.C+i.T+i.A+i.I+5+l))}cp(t){null!==this.Ev&&n(this.Ev,t)||(this.Ev=t,this.jv=!0,this.Gv.resizeCanvasElement(t),this.Jv.resizeCanvasElement(t),this.jv=!1,this.Kv.style.width=`${t.width}px`,this.Kv.style.height=`${t.height}px`)}dp(){return b(this.Ev).width}Gi(t){this.Li!==t&&(null!==this.Li&&this.Li.Ko().p(this),this.Li=t,t.Ko().l(this.fo.bind(this),this))}Dt(){return this.Li}nr(){const t=this.tn.fp();this.tn.$v().$t().E_(t,b(this.Dt()))}vp(t){if(null===this.Ev)return;if(1!==t){this.pp(),this.Gv.applySuggestedBitmapSize();const t=s(this.Gv);null!==t&&(t.useBitmapCoordinateSpace((t=>{this.mp(t),this.Ie(t)})),this.tn.bp(t,this.Xv),this.wp(t),this.tn.bp(t,this.Yv),this.gp(t))}this.Jv.applySuggestedBitmapSize();const i=s(this.Jv);null!==i&&(i.useBitmapCoordinateSpace((({context:t,bitmapSize:i})=>{t.clearRect(0,0,i.width,i.height)})),this.Mp(i),this.tn.bp(i,this.Zv))}xp(){return this.Gv.bitmapSize}Sp(t,i,n){const s=this.xp();s.width>0&&s.height>0&&t.drawImage(this.Gv.canvasElement,i,n)}bt(){var t;null===(t=this.Li)||void 0===t||t.Ha()}Qv(t){if(null===this.Li||this.Li.Ni()||!this.cn.handleScale.axisPressedMouseMove.price)return;const i=this.tn.$v().$t(),n=this.tn.fp();this.Nv=!0,i.V_(n,this.Li,t.localY)}tp(t){if(null===this.Li||!this.cn.handleScale.axisPressedMouseMove.price)return;const i=this.tn.$v().$t(),n=this.tn.fp(),s=this.Li;i.O_(n,s,t.localY)}ip(){if(null===this.Li||!this.cn.handleScale.axisPressedMouseMove.price)return;const t=this.tn.$v().$t(),i=this.tn.fp(),n=this.Li;this.Nv&&(this.Nv=!1,t.B_(i,n))}np(t){if(null===this.Li||!this.cn.handleScale.axisPressedMouseMove.price)return;const i=this.tn.$v().$t(),n=this.tn.fp();this.Nv=!1,i.B_(n,this.Li)}sp(t){this.cn.handleScale.axisDoubleClickReset.price&&this.nr()}ep(t){if(null===this.Li)return;!this.tn.$v().$t().W().handleScale.axisPressedMouseMove.price||this.Li.Mh()||this.Li.Oo()||this.kp(1)}rp(t){this.kp(0)}up(){const t=[],i=null===this.Li?void 0:this.Li;return(n=>{for(let s=0;s<n.length;++s){const e=n[s].Rn(this.tn.fp(),i);for(let i=0;i<e.length;i++)t.push(e[i])}})(this.tn.fp().Uo()),t}mp({context:t,bitmapSize:i}){const{width:n,height:s}=i,e=this.tn.fp().$t(),r=e.q(),h=e.bd();r===h?G(t,0,0,n,s,r):tt(t,0,0,n,s,r,h)}Ie({context:t,bitmapSize:i,horizontalPixelRatio:n}){if(null===this.Ev||null===this.Li||!this.Li.W().borderVisible)return;t.fillStyle=this.Li.W().borderColor;const s=Math.max(1,Math.floor(this.ap().C*n));let e;e=this.qv?i.width-s:0,t.fillRect(e,0,s,i.height)}wp(t){if(null===this.Ev||null===this.Li)return;const i=this.Li.Ha(),n=this.Li.W(),s=this.ap(),e=this.qv?this.Ev.width-s.T:0;n.borderVisible&&n.ticksVisible&&t.useBitmapCoordinateSpace((({context:t,horizontalPixelRatio:r,verticalPixelRatio:h})=>{t.fillStyle=n.borderColor;const l=Math.max(1,Math.floor(h)),a=Math.floor(.5*h),o=Math.round(s.T*r);t.beginPath();for(const n of i)t.rect(Math.floor(e*r),Math.round(n.Ea*h)-a,o,l);t.fill()})),t.useMediaCoordinateSpace((({context:t})=>{var r;t.font=this._p(),t.fillStyle=null!==(r=n.textColor)&&void 0!==r?r:this.ko.textColor,t.textAlign=this.qv?\"right\":\"left\",t.textBaseline=\"middle\";const h=this.qv?Math.round(e-s.A):Math.round(e+s.T+s.A),l=i.map((i=>this.Fv.Mi(t,i.so)));for(let n=i.length;n--;){const s=i[n];t.fillText(s.so,h,s.Ea+l[n])}}))}pp(){if(null===this.Ev||null===this.Li)return;const t=[],i=this.Li.Uo().slice(),n=this.tn.fp(),s=this.ap();this.Li===n.pr()&&this.tn.fp().Uo().forEach((t=>{n.vr(t)&&i.push(t)}));const e=this.Li;i.forEach((i=>{i.Rn(n,e).forEach((i=>{i.Oi(null),i.Bi()&&t.push(i)}))})),t.forEach((t=>t.Oi(t.ki())));this.Li.W().alignLabels&&this.yp(t,s)}yp(t,i){if(null===this.Ev)return;const n=this.Ev.height/2,s=t.filter((t=>t.ki()<=n)),e=t.filter((t=>t.ki()>n));s.sort(((t,i)=>i.ki()-t.ki())),e.sort(((t,i)=>t.ki()-i.ki()));for(const n of t){const t=Math.floor(n.At(i)/2),s=n.ki();s>-t&&s<t&&n.Oi(t),s>this.Ev.height-t&&s<this.Ev.height+t&&n.Oi(this.Ev.height-t)}ys(s,1,this.Ev.height,i),ys(e,-1,this.Ev.height,i)}gp(t){if(null===this.Ev)return;const i=this.up(),n=this.ap(),s=this.qv?\"right\":\"left\";i.forEach((i=>{if(i.Ai()){i.gt(b(this.Li)).X(t,n,this.Fv,s)}}))}Mp(t){if(null===this.Ev||null===this.Li)return;const i=this.tn.$v().$t(),n=[],s=this.tn.fp(),e=i.Zc().Rn(s,this.Li);e.length&&n.push(e);const r=this.ap(),h=this.qv?\"right\":\"left\";n.forEach((i=>{i.forEach((i=>{i.gt(b(this.Li)).X(t,r,this.Fv,h)}))}))}kp(t){this.Kv.style.cursor=1===t?\"ns-resize\":\"default\"}fo(){const t=this.op();this.Wv<t&&this.tn.$v().$t().Kl(),this.Wv=t}_p(){return F(this.ko.fontSize,this.ko.fontFamily)}}function Ts(t,i){var n,s;return null!==(s=null===(n=t.ua)||void 0===n?void 0:n.call(t,i))&&void 0!==s?s:[]}function Ps(t,i){var n,s;return null!==(s=null===(n=t.Pn)||void 0===n?void 0:n.call(t,i))&&void 0!==s?s:[]}function Rs(t,i){var n,s;return null!==(s=null===(n=t.Ji)||void 0===n?void 0:n.call(t,i))&&void 0!==s?s:[]}function Ds(t,i){var n,s;return null!==(s=null===(n=t.aa)||void 0===n?void 0:n.call(t,i))&&void 0!==s?s:[]}class Vs{constructor(i,n){this.Ev=t({width:0,height:0}),this.Cp=null,this.Tp=null,this.Pp=null,this.Rp=null,this.Dp=!1,this.Vp=new D,this.Op=new D,this.Bp=0,this.Ap=!1,this.Ip=null,this.zp=!1,this.Lp=null,this.Ep=null,this.jv=!1,this.Hv=()=>{this.jv||null===this.Np||this.$i().Uh()},this.Uv=()=>{this.jv||null===this.Np||this.$i().Uh()},this.Qd=i,this.Np=n,this.Np.W_().l(this.Fp.bind(this),this,!0),this.Wp=document.createElement(\"td\"),this.Wp.style.padding=\"0\",this.Wp.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.jp=document.createElement(\"td\"),this.jp.style.padding=\"0\",this.Hp=document.createElement(\"td\"),this.Hp.style.padding=\"0\",this.Wp.appendChild(s),this.Gv=_s(s,t({width:16,height:16})),this.Gv.subscribeSuggestedBitmapSizeChanged(this.Hv);const e=this.Gv.canvasElement;e.style.position=\"absolute\",e.style.zIndex=\"1\",e.style.left=\"0\",e.style.top=\"0\",this.Jv=_s(s,t({width:16,height:16})),this.Jv.subscribeSuggestedBitmapSizeChanged(this.Uv);const r=this.Jv.canvasElement;r.style.position=\"absolute\",r.style.zIndex=\"2\",r.style.left=\"0\",r.style.top=\"0\",this.$p=document.createElement(\"tr\"),this.$p.appendChild(this.jp),this.$p.appendChild(this.Wp),this.$p.appendChild(this.Hp),this.Up(),this.hp=new ps(this.Jv.canvasElement,this,{ev:()=>null===this.Ip&&!this.Qd.W().handleScroll.vertTouchDrag,rv:()=>null===this.Ip&&!this.Qd.W().handleScroll.horzTouchDrag})}S(){null!==this.Cp&&this.Cp.S(),null!==this.Tp&&this.Tp.S(),this.Pp=null,this.Jv.unsubscribeSuggestedBitmapSizeChanged(this.Uv),us(this.Jv.canvasElement),this.Jv.dispose(),this.Gv.unsubscribeSuggestedBitmapSizeChanged(this.Hv),us(this.Gv.canvasElement),this.Gv.dispose(),null!==this.Np&&this.Np.W_().p(this),this.hp.S()}fp(){return b(this.Np)}qp(t){var i,n;null!==this.Np&&this.Np.W_().p(this),this.Np=t,null!==this.Np&&this.Np.W_().l(Vs.prototype.Fp.bind(this),this,!0),this.Up(),this.Qd.Yp().indexOf(this)===this.Qd.Yp().length-1?(this.Pp=null!==(i=this.Pp)&&void 0!==i?i:new os(this.Wp,this.Qd),this.Pp.bt()):(null===(n=this.Pp)||void 0===n||n.if(),this.Pp=null)}$v(){return this.Qd}lp(){return this.$p}Up(){if(null!==this.Np&&(this.Zp(),0!==this.$i().wt().length)){if(null!==this.Cp){const t=this.Np.R_();this.Cp.Gi(b(t))}if(null!==this.Tp){const t=this.Np.D_();this.Tp.Gi(b(t))}}}Xp(){null!==this.Cp&&this.Cp.bt(),null!==this.Tp&&this.Tp.bt()}M_(){return null!==this.Np?this.Np.M_():0}x_(t){this.Np&&this.Np.x_(t)}Qf(t){if(!this.Np)return;this.Kp();const i=t.localX,n=t.localY;this.Gp(i,n,t)}bv(t){this.Kp(),this.Jp(),this.Gp(t.localX,t.localY,t)}tv(t){var i;if(!this.Np)return;this.Kp();const n=t.localX,s=t.localY;this.Gp(n,s,t);const e=this.wr(n,s);this.Qd.Qp(null!==(i=null==e?void 0:e.Lv)&&void 0!==i?i:null),this.$i().jc(e&&{Hc:e.Hc,Iv:e.Iv})}dv(t){null!==this.Np&&(this.Kp(),this.tm(t))}qf(t){null!==this.Np&&this.im(this.Op,t)}jf(t){this.qf(t)}av(t){this.Kp(),this.nm(t),this.Gp(t.localX,t.localY,t)}cv(t){null!==this.Np&&(this.Kp(),this.Ap=!1,this.sm(t))}uv(t){null!==this.Np&&this.tm(t)}Rv(t){if(this.Ap=!0,null===this.Ip){const i={x:t.localX,y:t.localY};this.rm(i,i,t)}}Pv(t){null!==this.Np&&(this.Kp(),this.Np.$t().jc(null),this.hm())}lm(){return this.Vp}am(){return this.Op}xv(){this.Bp=1,this.$i().Un()}Sv(t,i){if(!this.Qd.W().handleScale.pinch)return;const n=5*(i-this.Bp);this.Bp=i,this.$i().Qc(t.nt,n)}pv(t){this.Ap=!1,this.zp=null!==this.Ip,this.Jp();const i=this.$i().Zc();null!==this.Ip&&i.yt()&&(this.Lp={x:i.Yt(),y:i.Zt()},this.Ip={x:t.localX,y:t.localY})}hv(t){if(null===this.Np)return;const i=t.localX,n=t.localY;if(null===this.Ip)this.nm(t);else{this.zp=!1;const s=b(this.Lp),e=s.x+(i-this.Ip.x),r=s.y+(n-this.Ip.y);this.Gp(e,r,t)}}_v(t){0===this.$v().W().trackingMode.exitMode&&(this.zp=!0),this.om(),this.sm(t)}wr(t,i){const n=this.Np;return null===n?null:function(t,i,n){const s=t.Uo(),e=function(t,i,n){var s,e;let r,h;for(const o of t){const t=null!==(e=null===(s=o.va)||void 0===s?void 0:s.call(o,i,n))&&void 0!==e?e:[];for(const i of t)l=i.zOrder,(!(a=null==r?void 0:r.zOrder)||\"top\"===l&&\"top\"!==a||\"normal\"===l&&\"bottom\"===a)&&(r=i,h=o)}var l,a;return r&&h?{zv:r,Hc:h}:null}(s,i,n);if(\"top\"===(null==e?void 0:e.zv.zOrder))return xs(e);for(const r of s){if(e&&e.Hc===r&&\"bottom\"!==e.zv.zOrder&&!e.zv.isBackground)return xs(e);const s=Ss(r.Pn(t),i,n);if(null!==s)return{Hc:r,Bv:s.Bv,Iv:s.Iv};if(e&&e.Hc===r&&\"bottom\"!==e.zv.zOrder&&e.zv.isBackground)return xs(e)}return(null==e?void 0:e.zv)?xs(e):null}(n,t,i)}_m(i,n){b(\"left\"===n?this.Cp:this.Tp).cp(t({width:i,height:this.Ev.height}))}um(){return this.Ev}cp(t){n(this.Ev,t)||(this.Ev=t,this.jv=!0,this.Gv.resizeCanvasElement(t),this.Jv.resizeCanvasElement(t),this.jv=!1,this.Wp.style.width=t.width+\"px\",this.Wp.style.height=t.height+\"px\")}dm(){const t=b(this.Np);t.P_(t.R_()),t.P_(t.D_());for(const i of t.Ba())if(t.vr(i)){const n=i.Dt();null!==n&&t.P_(n),i.Vn()}}xp(){return this.Gv.bitmapSize}Sp(t,i,n){const s=this.xp();s.width>0&&s.height>0&&t.drawImage(this.Gv.canvasElement,i,n)}vp(t){if(0===t)return;if(null===this.Np)return;if(t>1&&this.dm(),null!==this.Cp&&this.Cp.vp(t),null!==this.Tp&&this.Tp.vp(t),1!==t){this.Gv.applySuggestedBitmapSize();const t=s(this.Gv);null!==t&&(t.useBitmapCoordinateSpace((t=>{this.mp(t)})),this.Np&&(this.fm(t,Ts),this.vm(t),this.pm(t),this.fm(t,Ps),this.fm(t,Rs)))}this.Jv.applySuggestedBitmapSize();const i=s(this.Jv);null!==i&&(i.useBitmapCoordinateSpace((({context:t,bitmapSize:i})=>{t.clearRect(0,0,i.width,i.height)})),this.bm(i),this.fm(i,Ds))}wm(){return this.Cp}gm(){return this.Tp}bp(t,i){this.fm(t,i)}Fp(){null!==this.Np&&this.Np.W_().p(this),this.Np=null}tm(t){this.im(this.Vp,t)}im(t,i){const n=i.localX,s=i.localY;t.M()&&t.m(this.$i().St().Nu(n),{x:n,y:s},i)}mp({context:t,bitmapSize:i}){const{width:n,height:s}=i,e=this.$i(),r=e.q(),h=e.bd();r===h?G(t,0,0,n,s,h):tt(t,0,0,n,s,r,h)}vm(t){const i=b(this.Np).j_().qh().gt();null!==i&&i.X(t,!1)}pm(t){const i=this.$i().Yc();this.Mm(t,Ps,cs,i),this.Mm(t,Ps,ds,i)}bm(t){this.Mm(t,Ps,ds,this.$i().Zc())}fm(t,i){const n=b(this.Np).Uo();for(const s of n)this.Mm(t,i,cs,s);for(const s of n)this.Mm(t,i,ds,s)}Mm(t,i,n,s){const e=b(this.Np),r=e.$t().Wc(),h=null!==r&&r.Hc===s,l=null!==r&&h&&void 0!==r.Iv?r.Iv.Mr:void 0;fs(i,(i=>n(i,t,h,l)),s,e)}Zp(){if(null===this.Np)return;const t=this.Qd,i=this.Np.R_().W().visible,n=this.Np.D_().W().visible;i||null===this.Cp||(this.jp.removeChild(this.Cp.lp()),this.Cp.S(),this.Cp=null),n||null===this.Tp||(this.Hp.removeChild(this.Tp.lp()),this.Tp.S(),this.Tp=null);const s=t.$t().ud();i&&null===this.Cp&&(this.Cp=new Cs(this,t.W(),s,\"left\"),this.jp.appendChild(this.Cp.lp())),n&&null===this.Tp&&(this.Tp=new Cs(this,t.W(),s,\"right\"),this.Hp.appendChild(this.Tp.lp()))}xm(t){return t.Dv&&this.Ap||null!==this.Ip}Sm(t){return Math.max(0,Math.min(t,this.Ev.width-1))}km(t){return Math.max(0,Math.min(t,this.Ev.height-1))}Gp(t,i,n){this.$i().ld(this.Sm(t),this.km(i),n,b(this.Np))}hm(){this.$i().od()}om(){this.zp&&(this.Ip=null,this.hm())}rm(t,i,n){this.Ip=t,this.zp=!1,this.Gp(i.x,i.y,n);const s=this.$i().Zc();this.Lp={x:s.Yt(),y:s.Zt()}}$i(){return this.Qd.$t()}sm(t){if(!this.Dp)return;const i=this.$i(),n=this.fp();if(i.z_(n,n.vn()),this.Rp=null,this.Dp=!1,i.ed(),null!==this.Ep){const t=performance.now(),n=i.St();this.Ep.Vr(n.Hu(),t),this.Ep.Qu(t)||i.Zn(this.Ep)}}Kp(){this.Ip=null}Jp(){if(!this.Np)return;if(this.$i().Un(),document.activeElement!==document.body&&document.activeElement!==document.documentElement)b(document.activeElement).blur();else{const t=document.getSelection();null!==t&&t.removeAllRanges()}!this.Np.vn().Ni()&&this.$i().St().Ni()}nm(t){if(null===this.Np)return;const i=this.$i(),n=i.St();if(n.Ni())return;const s=this.Qd.W(),e=s.handleScroll,r=s.kineticScroll;if((!e.pressedMouseMove||t.Dv)&&(!e.horzTouchDrag&&!e.vertTouchDrag||!t.Dv))return;const h=this.Np.vn(),l=performance.now();if(null!==this.Rp||this.xm(t)||(this.Rp={x:t.clientX,y:t.clientY,Od:l,ym:t.localX,Cm:t.localY}),null!==this.Rp&&!this.Dp&&(this.Rp.x!==t.clientX||this.Rp.y!==t.clientY)){if(t.Dv&&r.touch||!t.Dv&&r.mouse){const t=n.le();this.Ep=new as(.2/t,7/t,.997,15/t),this.Ep.Yd(n.Hu(),this.Rp.Od)}else this.Ep=null;h.Ni()||i.A_(this.Np,h,t.localY),i.nd(t.localX),this.Dp=!0}this.Dp&&(h.Ni()||i.I_(this.Np,h,t.localY),i.sd(t.localX),null!==this.Ep&&this.Ep.Yd(n.Hu(),l))}}class Os{constructor(i,n,s,e,r){this.ft=!0,this.Ev=t({width:0,height:0}),this.Hv=()=>this.vp(3),this.qv=\"left\"===i,this.Oc=s.ud,this.cn=n,this.Tm=e,this.Pm=r,this.Kv=document.createElement(\"div\"),this.Kv.style.width=\"25px\",this.Kv.style.height=\"100%\",this.Kv.style.overflow=\"hidden\",this.Gv=_s(this.Kv,t({width:16,height:16})),this.Gv.subscribeSuggestedBitmapSizeChanged(this.Hv)}S(){this.Gv.unsubscribeSuggestedBitmapSizeChanged(this.Hv),us(this.Gv.canvasElement),this.Gv.dispose()}lp(){return this.Kv}um(){return this.Ev}cp(t){n(this.Ev,t)||(this.Ev=t,this.Gv.resizeCanvasElement(t),this.Kv.style.width=`${t.width}px`,this.Kv.style.height=`${t.height}px`,this.ft=!0)}vp(t){if(t<3&&!this.ft)return;if(0===this.Ev.width||0===this.Ev.height)return;this.ft=!1,this.Gv.applySuggestedBitmapSize();const i=s(this.Gv);null!==i&&i.useBitmapCoordinateSpace((t=>{this.mp(t),this.Ie(t)}))}xp(){return this.Gv.bitmapSize}Sp(t,i,n){const s=this.xp();s.width>0&&s.height>0&&t.drawImage(this.Gv.canvasElement,i,n)}Ie({context:t,bitmapSize:i,horizontalPixelRatio:n,verticalPixelRatio:s}){if(!this.Tm())return;t.fillStyle=this.cn.timeScale.borderColor;const e=Math.floor(this.Oc.W().C*n),r=Math.floor(this.Oc.W().C*s),h=this.qv?i.width-e:0;t.fillRect(h,0,e,r)}mp({context:t,bitmapSize:i}){G(t,0,0,i.width,i.height,this.Pm())}}function Bs(t){return i=>{var n,s;return null!==(s=null===(n=i.fa)||void 0===n?void 0:n.call(i,t))&&void 0!==s?s:[]}}const As=Bs(\"normal\"),Is=Bs(\"top\"),zs=Bs(\"bottom\");class Ls{constructor(i,n){this.Rm=null,this.Dm=null,this.k=null,this.Vm=!1,this.Ev=t({width:0,height:0}),this.Om=new D,this.Fv=new ni(5),this.jv=!1,this.Hv=()=>{this.jv||this.Qd.$t().Uh()},this.Uv=()=>{this.jv||this.Qd.$t().Uh()},this.Qd=i,this.q_=n,this.cn=i.W().layout,this.Xd=document.createElement(\"tr\"),this.Bm=document.createElement(\"td\"),this.Bm.style.padding=\"0\",this.Am=document.createElement(\"td\"),this.Am.style.padding=\"0\",this.Kv=document.createElement(\"td\"),this.Kv.style.height=\"25px\",this.Kv.style.padding=\"0\",this.Im=document.createElement(\"div\"),this.Im.style.width=\"100%\",this.Im.style.height=\"100%\",this.Im.style.position=\"relative\",this.Im.style.overflow=\"hidden\",this.Kv.appendChild(this.Im),this.Gv=_s(this.Im,t({width:16,height:16})),this.Gv.subscribeSuggestedBitmapSizeChanged(this.Hv);const s=this.Gv.canvasElement;s.style.position=\"absolute\",s.style.zIndex=\"1\",s.style.left=\"0\",s.style.top=\"0\",this.Jv=_s(this.Im,t({width:16,height:16})),this.Jv.subscribeSuggestedBitmapSizeChanged(this.Uv);const e=this.Jv.canvasElement;e.style.position=\"absolute\",e.style.zIndex=\"2\",e.style.left=\"0\",e.style.top=\"0\",this.Xd.appendChild(this.Bm),this.Xd.appendChild(this.Kv),this.Xd.appendChild(this.Am),this.zm(),this.Qd.$t().g_().l(this.zm.bind(this),this),this.hp=new ps(this.Jv.canvasElement,this,{ev:()=>!0,rv:()=>!this.Qd.W().handleScroll.horzTouchDrag})}S(){this.hp.S(),null!==this.Rm&&this.Rm.S(),null!==this.Dm&&this.Dm.S(),this.Jv.unsubscribeSuggestedBitmapSizeChanged(this.Uv),us(this.Jv.canvasElement),this.Jv.dispose(),this.Gv.unsubscribeSuggestedBitmapSizeChanged(this.Hv),us(this.Gv.canvasElement),this.Gv.dispose()}lp(){return this.Xd}Lm(){return this.Rm}Em(){return this.Dm}bv(t){if(this.Vm)return;this.Vm=!0;const i=this.Qd.$t();!i.St().Ni()&&this.Qd.W().handleScale.axisPressedMouseMove.time&&i.Jc(t.localX)}pv(t){this.bv(t)}wv(){const t=this.Qd.$t();!t.St().Ni()&&this.Vm&&(this.Vm=!1,this.Qd.W().handleScale.axisPressedMouseMove.time&&t.hd())}av(t){const i=this.Qd.$t();!i.St().Ni()&&this.Qd.W().handleScale.axisPressedMouseMove.time&&i.rd(t.localX)}hv(t){this.av(t)}cv(){this.Vm=!1;const t=this.Qd.$t();t.St().Ni()&&!this.Qd.W().handleScale.axisPressedMouseMove.time||t.hd()}_v(){this.cv()}qf(){this.Qd.W().handleScale.axisDoubleClickReset.time&&this.Qd.$t().Kn()}jf(){this.qf()}Qf(){this.Qd.$t().W().handleScale.axisPressedMouseMove.time&&this.kp(1)}Pv(){this.kp(0)}um(){return this.Ev}Nm(){return this.Om}Fm(i,s,e){n(this.Ev,i)||(this.Ev=i,this.jv=!0,this.Gv.resizeCanvasElement(i),this.Jv.resizeCanvasElement(i),this.jv=!1,this.Kv.style.width=`${i.width}px`,this.Kv.style.height=`${i.height}px`,this.Om.m(i)),null!==this.Rm&&this.Rm.cp(t({width:s,height:i.height})),null!==this.Dm&&this.Dm.cp(t({width:e,height:i.height}))}Wm(){const t=this.jm();return Math.ceil(t.C+t.T+t.P+t.L+t.B+t.Hm)}bt(){this.Qd.$t().St().Ha()}xp(){return this.Gv.bitmapSize}Sp(t,i,n){const s=this.xp();s.width>0&&s.height>0&&t.drawImage(this.Gv.canvasElement,i,n)}vp(t){if(0===t)return;if(1!==t){this.Gv.applySuggestedBitmapSize();const i=s(this.Gv);null!==i&&(i.useBitmapCoordinateSpace((t=>{this.mp(t),this.Ie(t),this.$m(i,zs)})),this.wp(i),this.$m(i,As)),null!==this.Rm&&this.Rm.vp(t),null!==this.Dm&&this.Dm.vp(t)}this.Jv.applySuggestedBitmapSize();const i=s(this.Jv);null!==i&&(i.useBitmapCoordinateSpace((({context:t,bitmapSize:i})=>{t.clearRect(0,0,i.width,i.height)})),this.Um([...this.Qd.$t().wt(),this.Qd.$t().Zc()],i),this.$m(i,Is))}$m(t,i){const n=this.Qd.$t().wt();for(const s of n)fs(i,(i=>cs(i,t,!1,void 0)),s,void 0);for(const s of n)fs(i,(i=>ds(i,t,!1,void 0)),s,void 0)}mp({context:t,bitmapSize:i}){G(t,0,0,i.width,i.height,this.Qd.$t().bd())}Ie({context:t,bitmapSize:i,verticalPixelRatio:n}){if(this.Qd.W().timeScale.borderVisible){t.fillStyle=this.qm();const s=Math.max(1,Math.floor(this.jm().C*n));t.fillRect(0,0,i.width,s)}}wp(t){const i=this.Qd.$t().St(),n=i.Ha();if(!n||0===n.length)return;const s=this.q_.maxTickMarkWeight(n),e=this.jm(),r=i.W();r.borderVisible&&r.ticksVisible&&t.useBitmapCoordinateSpace((({context:t,horizontalPixelRatio:i,verticalPixelRatio:s})=>{t.strokeStyle=this.qm(),t.fillStyle=this.qm();const r=Math.max(1,Math.floor(i)),h=Math.floor(.5*i);t.beginPath();const l=Math.round(e.T*s);for(let s=n.length;s--;){const e=Math.round(n[s].coord*i);t.rect(e-h,0,r,l)}t.fill()})),t.useMediaCoordinateSpace((({context:t})=>{const i=e.C+e.T+e.L+e.P/2;t.textAlign=\"center\",t.textBaseline=\"middle\",t.fillStyle=this.$(),t.font=this._p();for(const e of n)if(e.weight<s){const n=e.needAlignCoordinate?this.Ym(t,e.coord,e.label):e.coord;t.fillText(e.label,n,i)}this.Qd.W().timeScale.allowBoldLabels&&(t.font=this.Zm());for(const e of n)if(e.weight>=s){const n=e.needAlignCoordinate?this.Ym(t,e.coord,e.label):e.coord;t.fillText(e.label,n,i)}}))}Ym(t,i,n){const s=this.Fv.xi(t,n),e=s/2,r=Math.floor(i-e)+.5;return r<0?i+=Math.abs(0-r):r+s>this.Ev.width&&(i-=Math.abs(this.Ev.width-(r+s))),i}Um(t,i){const n=this.jm();for(const s of t)for(const t of s.Qi())t.gt().X(i,n)}qm(){return this.Qd.W().timeScale.borderColor}$(){return this.cn.textColor}j(){return this.cn.fontSize}_p(){return F(this.j(),this.cn.fontFamily)}Zm(){return F(this.j(),this.cn.fontFamily,\"bold\")}jm(){null===this.k&&(this.k={C:1,N:NaN,L:NaN,B:NaN,ji:NaN,T:5,P:NaN,R:\"\",Wi:new ni,Hm:0});const t=this.k,i=this._p();if(t.R!==i){const n=this.j();t.P=n,t.R=i,t.L=3*n/12,t.B=3*n/12,t.ji=9*n/12,t.N=0,t.Hm=4*n/12,t.Wi.nr()}return this.k}kp(t){this.Kv.style.cursor=1===t?\"ew-resize\":\"default\"}zm(){const t=this.Qd.$t(),i=t.W();i.leftPriceScale.visible||null===this.Rm||(this.Bm.removeChild(this.Rm.lp()),this.Rm.S(),this.Rm=null),i.rightPriceScale.visible||null===this.Dm||(this.Am.removeChild(this.Dm.lp()),this.Dm.S(),this.Dm=null);const n={ud:this.Qd.$t().ud()},s=()=>i.leftPriceScale.borderVisible&&t.St().W().borderVisible,e=()=>t.bd();i.leftPriceScale.visible&&null===this.Rm&&(this.Rm=new Os(\"left\",i,n,s,e),this.Bm.appendChild(this.Rm.lp())),i.rightPriceScale.visible&&null===this.Dm&&(this.Dm=new Os(\"right\",i,n,s,e),this.Am.appendChild(this.Dm.lp()))}}const Es=!!ns&&!!navigator.userAgentData&&navigator.userAgentData.brands.some((t=>t.brand.includes(\"Chromium\")))&&!!ns&&((null===(Ns=null===navigator||void 0===navigator?void 0:navigator.userAgentData)||void 0===Ns?void 0:Ns.platform)?\"Windows\"===navigator.userAgentData.platform:navigator.userAgent.toLowerCase().indexOf(\"win\")>=0);var Ns;class Fs{constructor(t,i,n){var s;this.Xm=[],this.Km=0,this.ho=0,this.__=0,this.Gm=0,this.Jm=0,this.Qm=null,this.tb=!1,this.Vp=new D,this.Op=new D,this.Rc=new D,this.ib=null,this.nb=null,this.Jd=t,this.cn=i,this.q_=n,this.Xd=document.createElement(\"div\"),this.Xd.classList.add(\"tv-lightweight-charts\"),this.Xd.style.overflow=\"hidden\",this.Xd.style.direction=\"ltr\",this.Xd.style.width=\"100%\",this.Xd.style.height=\"100%\",(s=this.Xd).style.userSelect=\"none\",s.style.webkitUserSelect=\"none\",s.style.msUserSelect=\"none\",s.style.MozUserSelect=\"none\",s.style.webkitTapHighlightColor=\"transparent\",this.sb=document.createElement(\"table\"),this.sb.setAttribute(\"cellspacing\",\"0\"),this.Xd.appendChild(this.sb),this.eb=this.rb.bind(this),Ws(this.cn)&&this.hb(!0),this.$i=new Ln(this.Vc.bind(this),this.cn,n),this.$t().Xc().l(this.lb.bind(this),this),this.ab=new Ls(this,this.q_),this.sb.appendChild(this.ab.lp());const e=i.autoSize&&this.ob();let r=this.cn.width,h=this.cn.height;if(e||0===r||0===h){const i=t.getBoundingClientRect();r=r||i.width,h=h||i.height}this._b(r,h),this.ub(),t.appendChild(this.Xd),this.cb(),this.$i.St().ec().l(this.$i.Kl.bind(this.$i),this),this.$i.g_().l(this.$i.Kl.bind(this.$i),this)}$t(){return this.$i}W(){return this.cn}Yp(){return this.Xm}fb(){return this.ab}S(){this.hb(!1),0!==this.Km&&window.cancelAnimationFrame(this.Km),this.$i.Xc().p(this),this.$i.St().ec().p(this),this.$i.g_().p(this),this.$i.S();for(const t of this.Xm)this.sb.removeChild(t.lp()),t.lm().p(this),t.am().p(this),t.S();this.Xm=[],b(this.ab).S(),null!==this.Xd.parentElement&&this.Xd.parentElement.removeChild(this.Xd),this.Rc.S(),this.Vp.S(),this.Op.S(),this.pb()}_b(i,n,s=!1){if(this.ho===n&&this.__===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.ho=e.height,this.__=e.width;const r=this.ho+\"px\",h=this.__+\"px\";b(this.Xd).style.height=r,b(this.Xd).style.width=h,this.sb.style.height=r,this.sb.style.width=h,s?this.mb(ut.es(),performance.now()):this.$i.Kl()}vp(t){void 0===t&&(t=ut.es());for(let i=0;i<this.Xm.length;i++)this.Xm[i].vp(t.Hn(i).Fn);this.cn.timeScale.visible&&this.ab.vp(t.jn())}$h(t){const i=Ws(this.cn);this.$i.$h(t);const n=Ws(this.cn);n!==i&&this.hb(n),this.cb(),this.bb(t)}lm(){return this.Vp}am(){return this.Op}Xc(){return this.Rc}wb(){null!==this.Qm&&(this.mb(this.Qm,performance.now()),this.Qm=null);const t=this.gb(null),i=document.createElement(\"canvas\");i.width=t.width,i.height=t.height;const n=b(i.getContext(\"2d\"));return this.gb(n),i}Mb(t){if(\"left\"===t&&!this.xb())return 0;if(\"right\"===t&&!this.Sb())return 0;if(0===this.Xm.length)return 0;return b(\"left\"===t?this.Xm[0].wm():this.Xm[0].gm()).dp()}kb(){return this.cn.autoSize&&null!==this.ib}yb(){return this.Xd}Qp(t){this.nb=t,this.nb?this.yb().style.setProperty(\"cursor\",t):this.yb().style.removeProperty(\"cursor\")}Cb(){return this.nb}Tb(){return m(this.Xm[0]).um()}bb(t){(void 0!==t.autoSize||!this.ib||void 0===t.width&&void 0===t.height)&&(t.autoSize&&!this.ib&&this.ob(),!1===t.autoSize&&null!==this.ib&&this.pb(),t.autoSize||void 0===t.width&&void 0===t.height||this._b(t.width||this.__,t.height||this.ho))}gb(i){let n=0,s=0;const e=this.Xm[0],r=(t,n)=>{let s=0;for(let e=0;e<this.Xm.length;e++){const r=this.Xm[e],h=b(\"left\"===t?r.wm():r.gm()),l=h.xp();null!==i&&h.Sp(i,n,s),s+=l.height}};if(this.xb()){r(\"left\",0);n+=b(e.wm()).xp().width}for(let t=0;t<this.Xm.length;t++){const e=this.Xm[t],r=e.xp();null!==i&&e.Sp(i,n,s),s+=r.height}if(n+=e.xp().width,this.Sb()){r(\"right\",n);n+=b(e.gm()).xp().width}const h=(t,n,s)=>{b(\"left\"===t?this.ab.Lm():this.ab.Em()).Sp(b(i),n,s)};if(this.cn.timeScale.visible){const t=this.ab.xp();if(null!==i){let n=0;this.xb()&&(h(\"left\",n,s),n=b(e.wm()).xp().width),this.ab.Sp(i,n,s),n+=t.width,this.Sb()&&h(\"right\",n,s)}s+=t.height}return t({width:n,height:s})}Pb(){let i=0,n=0,s=0;for(const t of this.Xm)this.xb()&&(n=Math.max(n,b(t.wm()).op(),this.cn.leftPriceScale.minimumWidth)),this.Sb()&&(s=Math.max(s,b(t.gm()).op(),this.cn.rightPriceScale.minimumWidth)),i+=t.M_();n=rs(n),s=rs(s);const e=this.__,r=this.ho,h=Math.max(e-n-s,0),l=this.cn.timeScale.visible;let a=l?Math.max(this.ab.Wm(),this.cn.timeScale.minimumHeight):0;var o;a=(o=a)+o%2;const _=0+a,u=r<_?0:r-_,c=u/i;let d=0;for(let i=0;i<this.Xm.length;++i){const e=this.Xm[i];e.qp(this.$i.qc()[i]);let r=0,l=0;l=i===this.Xm.length-1?u-d:Math.round(e.M_()*c),r=Math.max(l,2),d+=r,e.cp(t({width:h,height:r})),this.xb()&&e._m(n,\"left\"),this.Sb()&&e._m(s,\"right\"),e.fp()&&this.$i.Kc(e.fp(),r)}this.ab.Fm(t({width:l?h:0,height:a}),l?n:0,l?s:0),this.$i.S_(h),this.Gm!==n&&(this.Gm=n),this.Jm!==s&&(this.Jm=s)}hb(t){t?this.Xd.addEventListener(\"wheel\",this.eb,{passive:!1}):this.Xd.removeEventListener(\"wheel\",this.eb)}Rb(t){switch(t.deltaMode){case t.DOM_DELTA_PAGE:return 120;case t.DOM_DELTA_LINE:return 32}return Es?1/window.devicePixelRatio:1}rb(t){if(!(0!==t.deltaX&&this.cn.handleScroll.mouseWheel||0!==t.deltaY&&this.cn.handleScale.mouseWheel))return;const i=this.Rb(t),n=i*t.deltaX/100,s=-i*t.deltaY/100;if(t.cancelable&&t.preventDefault(),0!==s&&this.cn.handleScale.mouseWheel){const i=Math.sign(s)*Math.min(1,Math.abs(s)),n=t.clientX-this.Xd.getBoundingClientRect().left;this.$t().Qc(n,i)}0!==n&&this.cn.handleScroll.mouseWheel&&this.$t().td(-80*n)}mb(t,i){var n;const s=t.jn();3===s&&this.Db(),3!==s&&2!==s||(this.Vb(t),this.Ob(t,i),this.ab.bt(),this.Xm.forEach((t=>{t.Xp()})),3===(null===(n=this.Qm)||void 0===n?void 0:n.jn())&&(this.Qm.ts(t),this.Db(),this.Vb(this.Qm),this.Ob(this.Qm,i),t=this.Qm,this.Qm=null)),this.vp(t)}Ob(t,i){for(const n of t.Qn())this.ns(n,i)}Vb(t){const i=this.$i.qc();for(let n=0;n<i.length;n++)t.Hn(n).Wn&&i[n].N_()}ns(t,i){const n=this.$i.St();switch(t.qn){case 0:n.hc();break;case 1:n.lc(t.Vt);break;case 2:n.Gn(t.Vt);break;case 3:n.Jn(t.Vt);break;case 4:n.qu();break;case 5:t.Vt.Qu(i)||n.Jn(t.Vt.tc(i))}}Vc(t){null!==this.Qm?this.Qm.ts(t):this.Qm=t,this.tb||(this.tb=!0,this.Km=window.requestAnimationFrame((t=>{if(this.tb=!1,this.Km=0,null!==this.Qm){const i=this.Qm;this.Qm=null,this.mb(i,t);for(const n of i.Qn())if(5===n.qn&&!n.Vt.Qu(t)){this.$t().Zn(n.Vt);break}}})))}Db(){this.ub()}ub(){const t=this.$i.qc(),i=t.length,n=this.Xm.length;for(let t=i;t<n;t++){const t=m(this.Xm.pop());this.sb.removeChild(t.lp()),t.lm().p(this),t.am().p(this),t.S()}for(let s=n;s<i;s++){const i=new Vs(this,t[s]);i.lm().l(this.Bb.bind(this),this),i.am().l(this.Ab.bind(this),this),this.Xm.push(i),this.sb.insertBefore(i.lp(),this.ab.lp())}for(let n=0;n<i;n++){const i=t[n],s=this.Xm[n];s.fp()!==i?s.qp(i):s.Up()}this.cb(),this.Pb()}Ib(t,i,n){var s;const e=new Map;if(null!==t){this.$i.wt().forEach((i=>{const n=i.In().ll(t);null!==n&&e.set(i,n)}))}let r;if(null!==t){const i=null===(s=this.$i.St().Ui(t))||void 0===s?void 0:s.originalTime;void 0!==i&&(r=i)}const h=this.$t().Wc(),l=null!==h&&h.Hc instanceof Gi?h.Hc:void 0,a=null!==h&&void 0!==h.Iv?h.Iv.gr:void 0;return{zb:r,ee:null!=t?t:void 0,Lb:null!=i?i:void 0,Eb:l,Nb:e,Fb:a,Wb:null!=n?n:void 0}}Bb(t,i,n){this.Vp.m((()=>this.Ib(t,i,n)))}Ab(t,i,n){this.Op.m((()=>this.Ib(t,i,n)))}lb(t,i,n){this.Rc.m((()=>this.Ib(t,i,n)))}cb(){const t=this.cn.timeScale.visible?\"\":\"none\";this.ab.lp().style.display=t}xb(){return this.Xm[0].fp().R_().W().visible}Sb(){return this.Xm[0].fp().D_().W().visible}ob(){return\"ResizeObserver\"in window&&(this.ib=new ResizeObserver((t=>{const i=t.find((t=>t.target===this.Jd));i&&this._b(i.contentRect.width,i.contentRect.height)})),this.ib.observe(this.Jd,{box:\"border-box\"}),!0)}pb(){null!==this.ib&&this.ib.disconnect(),this.ib=null}}function Ws(t){return Boolean(t.handleScroll.mouseWheel||t.handleScale.mouseWheel)}function js(t){return function(t){return void 0!==t.open}(t)||function(t){return void 0!==t.value}(t)}function Hs(t,i){var n={};for(var s in t)Object.prototype.hasOwnProperty.call(t,s)&&i.indexOf(s)<0&&(n[s]=t[s]);if(null!=t&&\"function\"==typeof Object.getOwnPropertySymbols){var e=0;for(s=Object.getOwnPropertySymbols(t);e<s.length;e++)i.indexOf(s[e])<0&&Object.prototype.propertyIsEnumerable.call(t,s[e])&&(n[s[e]]=t[s[e]])}return n}function $s(t,i,n,s){const e=n.value,r={ee:i,ot:t,Vt:[e,e,e,e],zb:s};return void 0!==n.color&&(r.V=n.color),r}function Us(t,i,n,s){const e=n.value,r={ee:i,ot:t,Vt:[e,e,e,e],zb:s};return void 0!==n.lineColor&&(r.lt=n.lineColor),void 0!==n.topColor&&(r.Ps=n.topColor),void 0!==n.bottomColor&&(r.Rs=n.bottomColor),r}function qs(t,i,n,s){const e=n.value,r={ee:i,ot:t,Vt:[e,e,e,e],zb:s};return void 0!==n.topLineColor&&(r.Re=n.topLineColor),void 0!==n.bottomLineColor&&(r.De=n.bottomLineColor),void 0!==n.topFillColor1&&(r.ke=n.topFillColor1),void 0!==n.topFillColor2&&(r.ye=n.topFillColor2),void 0!==n.bottomFillColor1&&(r.Ce=n.bottomFillColor1),void 0!==n.bottomFillColor2&&(r.Te=n.bottomFillColor2),r}function Ys(t,i,n,s){const e={ee:i,ot:t,Vt:[n.open,n.high,n.low,n.close],zb:s};return void 0!==n.color&&(e.V=n.color),e}function Zs(t,i,n,s){const e={ee:i,ot:t,Vt:[n.open,n.high,n.low,n.close],zb:s};return void 0!==n.color&&(e.V=n.color),void 0!==n.borderColor&&(e.Ot=n.borderColor),void 0!==n.wickColor&&(e.Xh=n.wickColor),e}function Xs(t,i,n,s,e){const r=m(e)(n),h=Math.max(...r),l=Math.min(...r),a=r[r.length-1],o=[a,h,l,a],_=n,{time:u,color:c}=_;return{ee:i,ot:t,Vt:o,zb:s,$e:Hs(_,[\"time\",\"color\"]),V:c}}function Ks(t){return void 0!==t.Vt}function Gs(t,i){return void 0!==i.customValues&&(t.jb=i.customValues),t}function Js(t){return(i,n,s,e,r,h)=>function(t,i){return i?i(t):void 0===(n=t).open&&void 0===n.value;var n}(s,h)?Gs({ot:i,ee:n,zb:e},s):Gs(t(i,n,s,e,r),s)}function Qs(t){return{Candlestick:Js(Zs),Bar:Js(Ys),Area:Js(Us),Baseline:Js(qs),Histogram:Js($s),Line:Js($s),Custom:Js(Xs)}[t]}function te(t){return{ee:0,Hb:new Map,la:t}}function ie(t,i){if(void 0!==t&&0!==t.length)return{$b:i.key(t[0].ot),Ub:i.key(t[t.length-1].ot)}}function ne(t){let i;return t.forEach((t=>{void 0===i&&(i=t.zb)})),m(i)}class se{constructor(t){this.qb=new Map,this.Yb=new Map,this.Zb=new Map,this.Xb=[],this.q_=t}S(){this.qb.clear(),this.Yb.clear(),this.Zb.clear(),this.Xb=[]}Kb(t,i){let n=0!==this.qb.size,s=!1;const e=this.Yb.get(t);if(void 0!==e)if(1===this.Yb.size)n=!1,s=!0,this.qb.clear();else for(const i of this.Xb)i.pointData.Hb.delete(t)&&(s=!0);let r=[];if(0!==i.length){const n=i.map((t=>t.time)),e=this.q_.createConverterToInternalObj(i),h=Qs(t.Qh()),l=t.Ca(),a=t.Ta();r=i.map(((i,r)=>{const o=e(i.time),_=this.q_.key(o);let u=this.qb.get(_);void 0===u&&(u=te(o),this.qb.set(_,u),s=!0);const c=h(o,u.ee,i,n[r],l,a);return u.Hb.set(t,c),c}))}n&&this.Gb(),this.Jb(t,r);let h=-1;if(s){const t=[];this.qb.forEach((i=>{t.push({timeWeight:0,time:i.la,pointData:i,originalTime:ne(i.Hb)})})),t.sort(((t,i)=>this.q_.key(t.time)-this.q_.key(i.time))),h=this.Qb(t)}return this.tw(t,h,function(t,i,n){const s=ie(t,n),e=ie(i,n);if(void 0!==s&&void 0!==e)return{ta:s.Ub>=e.Ub&&s.$b>=e.$b}}(this.Yb.get(t),e,this.q_))}vd(t){return this.Kb(t,[])}iw(t,i){const n=i;!function(t){void 0===t.zb&&(t.zb=t.time)}(n),this.q_.preprocessData(i);const s=this.q_.createConverterToInternalObj([i])(i.time),e=this.Zb.get(t);if(void 0!==e&&this.q_.key(s)<this.q_.key(e))throw new Error(`Cannot update oldest data, last time=${e}, new time=${s}`);let r=this.qb.get(this.q_.key(s));const h=void 0===r;void 0===r&&(r=te(s),this.qb.set(this.q_.key(s),r));const l=Qs(t.Qh()),a=t.Ca(),o=t.Ta(),_=l(s,r.ee,i,n.zb,a,o);r.Hb.set(t,_),this.nw(t,_);const u={ta:Ks(_)};if(!h)return this.tw(t,-1,u);const c={timeWeight:0,time:r.la,pointData:r,originalTime:ne(r.Hb)},d=Bt(this.Xb,this.q_.key(c.time),((t,i)=>this.q_.key(t.time)<i));this.Xb.splice(d,0,c);for(let t=d;t<this.Xb.length;++t)ee(this.Xb[t].pointData,t);return this.q_.fillWeightsForPoints(this.Xb,d),this.tw(t,d,u)}nw(t,i){let n=this.Yb.get(t);void 0===n&&(n=[],this.Yb.set(t,n));const s=0!==n.length?n[n.length-1]:null;null===s||this.q_.key(i.ot)>this.q_.key(s.ot)?Ks(i)&&n.push(i):Ks(i)?n[n.length-1]=i:n.splice(-1,1),this.Zb.set(t,i.ot)}Jb(t,i){0!==i.length?(this.Yb.set(t,i.filter(Ks)),this.Zb.set(t,i[i.length-1].ot)):(this.Yb.delete(t),this.Zb.delete(t))}Gb(){for(const t of this.Xb)0===t.pointData.Hb.size&&this.qb.delete(this.q_.key(t.time))}Qb(t){let i=-1;for(let n=0;n<this.Xb.length&&n<t.length;++n){const s=this.Xb[n],e=t[n];if(this.q_.key(s.time)!==this.q_.key(e.time)){i=n;break}e.timeWeight=s.timeWeight,ee(e.pointData,n)}if(-1===i&&this.Xb.length!==t.length&&(i=Math.min(this.Xb.length,t.length)),-1===i)return-1;for(let n=i;n<t.length;++n)ee(t[n].pointData,n);return this.q_.fillWeightsForPoints(t,i),this.Xb=t,i}sw(){if(0===this.Yb.size)return null;let t=0;return this.Yb.forEach((i=>{0!==i.length&&(t=Math.max(t,i[i.length-1].ee))})),t}tw(t,i,n){const s={ew:new Map,St:{Eu:this.sw()}};if(-1!==i)this.Yb.forEach(((i,e)=>{s.ew.set(e,{$e:i,rw:e===t?n:void 0})})),this.Yb.has(t)||s.ew.set(t,{$e:[],rw:n}),s.St.hw=this.Xb,s.St.lw=i;else{const i=this.Yb.get(t);s.ew.set(t,{$e:i||[],rw:n})}return s}}function ee(t,i){t.ee=i,t.Hb.forEach((t=>{t.ee=i}))}function re(t){const i={value:t.Vt[3],time:t.zb};return void 0!==t.jb&&(i.customValues=t.jb),i}function he(t){const i=re(t);return void 0!==t.V&&(i.color=t.V),i}function le(t){const i=re(t);return void 0!==t.lt&&(i.lineColor=t.lt),void 0!==t.Ps&&(i.topColor=t.Ps),void 0!==t.Rs&&(i.bottomColor=t.Rs),i}function ae(t){const i=re(t);return void 0!==t.Re&&(i.topLineColor=t.Re),void 0!==t.De&&(i.bottomLineColor=t.De),void 0!==t.ke&&(i.topFillColor1=t.ke),void 0!==t.ye&&(i.topFillColor2=t.ye),void 0!==t.Ce&&(i.bottomFillColor1=t.Ce),void 0!==t.Te&&(i.bottomFillColor2=t.Te),i}function oe(t){const i={open:t.Vt[0],high:t.Vt[1],low:t.Vt[2],close:t.Vt[3],time:t.zb};return void 0!==t.jb&&(i.customValues=t.jb),i}function _e(t){const i=oe(t);return void 0!==t.V&&(i.color=t.V),i}function ue(t){const i=oe(t),{V:n,Ot:s,Xh:e}=t;return void 0!==n&&(i.color=n),void 0!==s&&(i.borderColor=s),void 0!==e&&(i.wickColor=e),i}function ce(t){return{Area:le,Line:he,Baseline:ae,Histogram:he,Bar:_e,Candlestick:ue,Custom:de}[t]}function de(t){const i=t.zb;return Object.assign(Object.assign({},t.$e),{time:i})}const fe={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},ve={vertLines:{color:\"#D6DCDE\",style:0,visible:!0},horzLines:{color:\"#D6DCDE\",style:0,visible:!0}},pe={background:{type:\"solid\",color:\"#FFFFFF\"},textColor:\"#191919\",fontSize:12,fontFamily:N,attributionLogo:!0},me={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},be={rightOffset:0,barSpacing:6,minBarSpacing:.5,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},we={color:\"rgba(0, 0, 0, 0)\",visible:!1,fontSize:48,fontFamily:N,fontStyle:\"\",text:\"\",horzAlign:\"center\",vertAlign:\"center\"};function ge(){return{width:0,height:0,autoSize:!1,layout:pe,crosshair:fe,grid:ve,overlayPriceScales:Object.assign({},me),leftPriceScale:Object.assign(Object.assign({},me),{visible:!1}),rightPriceScale:Object.assign(Object.assign({},me),{visible:!0}),timeScale:be,watermark:we,localization:{locale:ns?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 Me{constructor(t,i){this.aw=t,this.ow=i}applyOptions(t){this.aw.$t().$c(this.ow,t)}options(){return this.Li().W()}width(){return _t(this.ow)?this.aw.Mb(this.ow):0}Li(){return b(this.aw.$t().Uc(this.ow)).Dt}}function xe(t,i,n){const s=Hs(t,[\"time\",\"originalTime\"]),e=Object.assign({time:i},s);return void 0!==n&&(e.originalTime=n),e}const Se={color:\"#FF0000\",price:0,lineStyle:2,lineWidth:1,lineVisible:!0,axisLabelVisible:!0,title:\"\",axisLabelColor:\"\",axisLabelTextColor:\"\"};class ke{constructor(t){this.Nh=t}applyOptions(t){this.Nh.$h(t)}options(){return this.Nh.W()}_w(){return this.Nh}}class ye{constructor(t,i,n,s,e){this.uw=new D,this.Es=t,this.cw=i,this.dw=n,this.q_=e,this.fw=s}S(){this.uw.S()}priceFormatter(){return this.Es.ba()}priceToCoordinate(t){const i=this.Es.Ct();return null===i?null:this.Es.Dt().Rt(t,i.Vt)}coordinateToPrice(t){const i=this.Es.Ct();return null===i?null:this.Es.Dt().pn(t,i.Vt)}barsInLogicalRange(t){if(null===t)return null;const i=new yn(new xn(t.from,t.to)).lu(),n=this.Es.In();if(n.Ni())return null;const s=n.ll(i.Os(),1),e=n.ll(i.ui(),-1),r=b(n.el()),h=b(n.An());if(null!==s&&null!==e&&s.ee>e.ee)return{barsBefore:t.from-r,barsAfter:h-t.to};const l={barsBefore:null===s||s.ee===r?t.from-r:s.ee-r,barsAfter:null===e||e.ee===h?h-t.to:h-e.ee};return null!==s&&null!==e&&(l.from=s.zb,l.to=e.zb),l}setData(t){this.q_,this.Es.Qh(),this.cw.pw(this.Es,t),this.mw(\"full\")}update(t){this.Es.Qh(),this.cw.bw(this.Es,t),this.mw(\"update\")}dataByIndex(t,i){const n=this.Es.In().ll(t,i);if(null===n)return null;return ce(this.seriesType())(n)}data(){const t=ce(this.seriesType());return this.Es.In().ne().map((i=>t(i)))}subscribeDataChanged(t){this.uw.l(t)}unsubscribeDataChanged(t){this.uw.v(t)}setMarkers(t){this.q_;const i=t.map((t=>xe(t,this.q_.convertHorzItemToInternal(t.time),t.time)));this.Es.na(i)}markers(){return this.Es.sa().map((t=>xe(t,t.originalTime,void 0)))}applyOptions(t){this.Es.$h(t)}options(){return z(this.Es.W())}priceScale(){return this.dw.priceScale(this.Es.Dt().Pa())}createPriceLine(t){const i=V(z(Se),t),n=this.Es.ea(i);return new ke(n)}removePriceLine(t){this.Es.ra(t._w())}seriesType(){return this.Es.Qh()}attachPrimitive(t){this.Es.ka(t),t.attached&&t.attached({chart:this.fw,series:this,requestUpdate:()=>this.Es.$t().Kl()})}detachPrimitive(t){this.Es.ya(t),t.detached&&t.detached()}mw(t){this.uw.M()&&this.uw.m(t)}}class Ce{constructor(t,i,n){this.ww=new D,this.mu=new D,this.Om=new D,this.$i=t,this.yl=t.St(),this.ab=i,this.yl.nc().l(this.gw.bind(this)),this.yl.sc().l(this.Mw.bind(this)),this.ab.Nm().l(this.xw.bind(this)),this.q_=n}S(){this.yl.nc().p(this),this.yl.sc().p(this),this.ab.Nm().p(this),this.ww.S(),this.mu.S(),this.Om.S()}scrollPosition(){return this.yl.Hu()}scrollToPosition(t,i){i?this.yl.Ju(t,1e3):this.$i.Jn(t)}scrollToRealTime(){this.yl.Gu()}getVisibleRange(){const t=this.yl.Vu();return null===t?null:{from:t.from.originalTime,to:t.to.originalTime}}setVisibleRange(t){const i={from:this.q_.convertHorzItemToInternal(t.from),to:this.q_.convertHorzItemToInternal(t.to)},n=this.yl.Iu(i);this.$i.pd(n)}getVisibleLogicalRange(){const t=this.yl.Du();return null===t?null:{from:t.Os(),to:t.ui()}}setVisibleLogicalRange(t){p(t.from<=t.to,\"The from index cannot be after the to index.\"),this.$i.pd(t)}resetTimeScale(){this.$i.Kn()}fitContent(){this.$i.hc()}logicalToCoordinate(t){const i=this.$i.St();return i.Ni()?null:i.It(t)}coordinateToLogical(t){return this.yl.Ni()?null:this.yl.Nu(t)}timeToCoordinate(t){const i=this.q_.convertHorzItemToInternal(t),n=this.yl.Va(i,!1);return null===n?null:this.yl.It(n)}coordinateToTime(t){const i=this.$i.St(),n=i.Nu(t),s=i.Ui(n);return null===s?null:s.originalTime}width(){return this.ab.um().width}height(){return this.ab.um().height}subscribeVisibleTimeRangeChange(t){this.ww.l(t)}unsubscribeVisibleTimeRangeChange(t){this.ww.v(t)}subscribeVisibleLogicalRangeChange(t){this.mu.l(t)}unsubscribeVisibleLogicalRangeChange(t){this.mu.v(t)}subscribeSizeChange(t){this.Om.l(t)}unsubscribeSizeChange(t){this.Om.v(t)}applyOptions(t){this.yl.$h(t)}options(){return Object.assign(Object.assign({},z(this.yl.W())),{barSpacing:this.yl.le()})}gw(){this.ww.M()&&this.ww.m(this.getVisibleRange())}Mw(){this.mu.M()&&this.mu.m(this.getVisibleLogicalRange())}xw(t){this.Om.m(t.width,t.height)}}function Te(t){if(void 0===t||\"custom\"===t.type)return;const i=t;void 0!==i.minMove&&void 0===i.precision&&(i.precision=function(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}(i.minMove))}function Pe(t){return function(t){if(I(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;I(i)&&(t.handleScale.axisPressedMouseMove={time:i,price:i}),I(n)&&(t.handleScale.axisDoubleClickReset={time:n,price:n})}const i=t.handleScroll;I(i)&&(t.handleScroll={horzTouchDrag:i,vertTouchDrag:i,mouseWheel:i,pressedMouseMove:i})}(t),t}class Re{constructor(t,i,n){this.Sw=new Map,this.kw=new Map,this.yw=new D,this.Cw=new D,this.Tw=new D,this.Pw=new se(i);const s=void 0===n?z(ge()):V(z(ge()),Pe(n));this.q_=i,this.aw=new Fs(t,s,i),this.aw.lm().l((t=>{this.yw.M()&&this.yw.m(this.Rw(t()))}),this),this.aw.am().l((t=>{this.Cw.M()&&this.Cw.m(this.Rw(t()))}),this),this.aw.Xc().l((t=>{this.Tw.M()&&this.Tw.m(this.Rw(t()))}),this);const e=this.aw.$t();this.Dw=new Ce(e,this.aw.fb(),this.q_)}remove(){this.aw.lm().p(this),this.aw.am().p(this),this.aw.Xc().p(this),this.Dw.S(),this.aw.S(),this.Sw.clear(),this.kw.clear(),this.yw.S(),this.Cw.S(),this.Tw.S(),this.Pw.S()}resize(t,i,n){this.autoSizeActive()||this.aw._b(t,i,n)}addCustomSeries(t,i){const n=w(t),s=Object.assign(Object.assign({},_),n.defaultOptions());return this.Vw(\"Custom\",s,i,n)}addAreaSeries(t){return this.Vw(\"Area\",l,t)}addBaselineSeries(t){return this.Vw(\"Baseline\",a,t)}addBarSeries(t){return this.Vw(\"Bar\",r,t)}addCandlestickSeries(t={}){return 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)}(t),this.Vw(\"Candlestick\",e,t)}addHistogramSeries(t){return this.Vw(\"Histogram\",o,t)}addLineSeries(t){return this.Vw(\"Line\",h,t)}removeSeries(t){const i=m(this.Sw.get(t)),n=this.Pw.vd(i);this.aw.$t().vd(i),this.Ow(n),this.Sw.delete(t),this.kw.delete(i)}pw(t,i){this.Ow(this.Pw.Kb(t,i))}bw(t,i){this.Ow(this.Pw.iw(t,i))}subscribeClick(t){this.yw.l(t)}unsubscribeClick(t){this.yw.v(t)}subscribeCrosshairMove(t){this.Tw.l(t)}unsubscribeCrosshairMove(t){this.Tw.v(t)}subscribeDblClick(t){this.Cw.l(t)}unsubscribeDblClick(t){this.Cw.v(t)}priceScale(t){return new Me(this.aw,t)}timeScale(){return this.Dw}applyOptions(t){this.aw.$h(Pe(t))}options(){return this.aw.W()}takeScreenshot(){return this.aw.wb()}autoSizeActive(){return this.aw.kb()}chartElement(){return this.aw.yb()}paneSize(){const t=this.aw.Tb();return{height:t.height,width:t.width}}setCrosshairPosition(t,i,n){const s=this.Sw.get(n);if(void 0===s)return;const e=this.aw.$t().dr(s);null!==e&&this.aw.$t().ad(t,i,e)}clearCrosshairPosition(){this.aw.$t().od(!0)}Vw(t,i,n={},s){Te(n.priceFormat);const e=V(z(u),z(i),n),r=this.aw.$t().dd(t,e,s),h=new ye(r,this,this,this,this.q_);return this.Sw.set(h,r),this.kw.set(r,h),h}Ow(t){const i=this.aw.$t();i._d(t.St.Eu,t.St.hw,t.St.lw),t.ew.forEach(((t,i)=>i.J(t.$e,t.rw))),i.Wu()}Bw(t){return m(this.kw.get(t))}Rw(t){const i=new Map;t.Nb.forEach(((t,n)=>{const s=n.Qh(),e=ce(s)(t);if(\"Custom\"!==s)p(js(e));else{const t=n.Ta();p(!t||!1===t(e))}i.set(this.Bw(n),e)}));const n=void 0!==t.Eb&&this.kw.has(t.Eb)?this.Bw(t.Eb):void 0;return{time:t.zb,logical:t.ee,point:t.Lb,hoveredSeries:n,hoveredObjectId:t.Fb,seriesData:i,sourceEvent:t.Wb}}}function De(t,i,n){let s;if(A(t)){const i=document.getElementById(t);p(null!==i,`Cannot find element in DOM with id=${t}`),s=i}else s=t;const e=new Re(s,i,n);return i.setOptions(e.options()),e}function Ve(t,i){return De(t,new is,is.Id(i))}function Oe(){return is}const Be=Object.assign(Object.assign({},u),_);function Ae(){return\"4.2.3\"}export{In as ColorType,at as CrosshairMode,Bn as LastPriceAnimationMode,d as LineStyle,c as LineType,Li as MismatchDirection,An as PriceLineSource,pn as PriceScaleMode,zn as TickMarkType,On as TrackingModeExitMode,Ve as createChart,De as createChartEx,Be as customSeriesDefaultOptions,Oe as defaultHorzScaleBehavior,En as isBusinessDay,Nn as isUTCTimestamp,Ae as version};\n","/**\r\n * ChartRenderer - Manages the lightweight-charts instance and rendering\r\n */\r\nimport { createChart, IChartApi, ISeriesApi, CrosshairMode, Time } from 'lightweight-charts';\r\nimport { CandleData, TimeFrame } from './types';\r\n\r\nexport interface ChartOptions {\r\n ticker?: string;\r\n mint: string;\r\n formatPrice: (value: number) => string;\r\n height?: number;\r\n}\r\n\r\nexport class ChartRenderer {\r\n private chart: IChartApi | null = null;\r\n private series: ISeriesApi<\"Candlestick\"> | null = null;\r\n private container: HTMLDivElement | null = null;\r\n private options: ChartOptions;\r\n\r\n constructor(container: HTMLDivElement, options: ChartOptions) {\r\n this.container = container;\r\n this.options = options;\r\n }\r\n\r\n /**\r\n * Initializes the chart\r\n */\r\n initialize(): void {\r\n if (!this.container) {\r\n throw new Error('Chart container is not set');\r\n }\r\n\r\n this.chart = createChart(this.container, {\r\n layout: {\r\n background: { color: '#ffffff' },\r\n textColor: '#333333',\r\n },\r\n grid: {\r\n vertLines: { color: '#f0f0f0' },\r\n horzLines: { color: '#f0f0f0' },\r\n },\r\n crosshair: {\r\n mode: CrosshairMode.Normal,\r\n },\r\n rightPriceScale: {\r\n borderColor: '#cccccc',\r\n },\r\n timeScale: {\r\n borderColor: '#cccccc',\r\n timeVisible: true,\r\n secondsVisible: false,\r\n rightOffset: 12,\r\n barSpacing: 8,\r\n minBarSpacing: 4,\r\n },\r\n height: this.options.height || 384,\r\n localization: {\r\n priceFormatter: this.options.formatPrice,\r\n },\r\n watermark: {\r\n visible: true,\r\n fontSize: 64,\r\n horzAlign: 'center',\r\n vertAlign: 'center',\r\n color: 'rgba(0, 0, 0, 0.03)',\r\n text: this.options.ticker \r\n ? `${this.options.ticker}/SOL` \r\n : `${this.options.mint.substring(0, 4)}...${this.options.mint.substring(this.options.mint.length - 4)}/SOL`,\r\n },\r\n });\r\n\r\n this.series = this.chart.addCandlestickSeries({\r\n upColor: '#26a69a',\r\n downColor: '#ef5350',\r\n borderVisible: true,\r\n borderUpColor: '#26a69a',\r\n borderDownColor: '#ef5350',\r\n wickUpColor: '#26a69a',\r\n wickDownColor: '#ef5350',\r\n });\r\n\r\n // Handle resize\r\n const handleResize = () => {\r\n if (this.container && this.chart) {\r\n this.chart.applyOptions({ width: this.container.clientWidth });\r\n }\r\n };\r\n\r\n window.addEventListener('resize', handleResize);\r\n handleResize();\r\n }\r\n\r\n /**\r\n * Updates chart data\r\n */\r\n updateData(candles: CandleData[]): void {\r\n if (!this.series) return;\r\n\r\n // Validate candles before displaying\r\n const validCandles = candles.filter(candle => \r\n candle && \r\n candle.open > 0 && \r\n candle.high > 0 && \r\n candle.low > 0 && \r\n candle.close > 0 &&\r\n isFinite(candle.open) &&\r\n isFinite(candle.high) &&\r\n isFinite(candle.low) &&\r\n isFinite(candle.close)\r\n );\r\n\r\n if (validCandles.length > 0) {\r\n this.series.setData(validCandles.map(c => ({ ...c, time: c.time as Time })));\r\n \r\n // Scroll to real-time\r\n requestAnimationFrame(() => {\r\n if (this.chart) {\r\n this.chart.timeScale().scrollToRealTime();\r\n }\r\n });\r\n }\r\n }\r\n\r\n /**\r\n * Sets the current timeframe (for future use if needed)\r\n */\r\n setTimeframe(timeframe: TimeFrame): void {\r\n // Can be extended to update chart settings based on timeframe\r\n }\r\n\r\n /**\r\n * Resizes the chart\r\n */\r\n resize(): void {\r\n if (this.container && this.chart) {\r\n this.chart.applyOptions({ width: this.container.clientWidth });\r\n }\r\n }\r\n\r\n /**\r\n * Destroys the chart instance\r\n */\r\n destroy(): void {\r\n if (this.chart) {\r\n this.chart.remove();\r\n this.chart = null;\r\n this.series = null;\r\n }\r\n }\r\n\r\n /**\r\n * Gets the chart instance (for advanced operations)\r\n */\r\n getChart(): IChartApi | null {\r\n return this.chart;\r\n }\r\n\r\n /**\r\n * Gets the series instance (for advanced operations)\r\n */\r\n getSeries(): ISeriesApi<\"Candlestick\"> | null {\r\n return this.series;\r\n }\r\n}\r\n\r\n","'use strict';\n\nexport default function bind(fn, thisArg) {\n return function wrap() {\n return fn.apply(thisArg, arguments);\n };\n}\n","'use strict';\n\nimport bind from './helpers/bind.js';\n\n// utils is a library of generic helper functions non-specific to axios\n\nconst {toString} = Object.prototype;\nconst {getPrototypeOf} = Object;\nconst {iterator, toStringTag} = Symbol;\n\nconst kindOf = (cache => thing => {\n const str = toString.call(thing);\n return cache[str] || (cache[str] = str.slice(8, -1).toLowerCase());\n})(Object.create(null));\n\nconst kindOfTest = (type) => {\n type = type.toLowerCase();\n return (thing) => kindOf(thing) === type\n}\n\nconst typeOfTest = type => thing => typeof thing === type;\n\n/**\n * Determine if a value is an Array\n *\n * @param {Object} val The value to test\n *\n * @returns {boolean} True if value is an Array, otherwise false\n */\nconst {isArray} = Array;\n\n/**\n * Determine if a value is undefined\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if the value is undefined, otherwise false\n */\nconst isUndefined = typeOfTest('undefined');\n\n/**\n * Determine if a value is a Buffer\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Buffer, otherwise false\n */\nfunction isBuffer(val) {\n return val !== null && !isUndefined(val) && val.constructor !== null && !isUndefined(val.constructor)\n && isFunction(val.constructor.isBuffer) && val.constructor.isBuffer(val);\n}\n\n/**\n * Determine if a value is an ArrayBuffer\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is an ArrayBuffer, otherwise false\n */\nconst isArrayBuffer = kindOfTest('ArrayBuffer');\n\n\n/**\n * Determine if a value is a view on an ArrayBuffer\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a view on an ArrayBuffer, otherwise false\n */\nfunction isArrayBufferView(val) {\n let result;\n if ((typeof ArrayBuffer !== 'undefined') && (ArrayBuffer.isView)) {\n result = ArrayBuffer.isView(val);\n } else {\n result = (val) && (val.buffer) && (isArrayBuffer(val.buffer));\n }\n return result;\n}\n\n/**\n * Determine if a value is a String\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a String, otherwise false\n */\nconst isString = typeOfTest('string');\n\n/**\n * Determine if a value is a Function\n *\n * @param {*} val The value to test\n * @returns {boolean} True if value is a Function, otherwise false\n */\nconst isFunction = typeOfTest('function');\n\n/**\n * Determine if a value is a Number\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Number, otherwise false\n */\nconst isNumber = typeOfTest('number');\n\n/**\n * Determine if a value is an Object\n *\n * @param {*} thing The value to test\n *\n * @returns {boolean} True if value is an Object, otherwise false\n */\nconst isObject = (thing) => thing !== null && typeof thing === 'object';\n\n/**\n * Determine if a value is a Boolean\n *\n * @param {*} thing The value to test\n * @returns {boolean} True if value is a Boolean, otherwise false\n */\nconst isBoolean = thing => thing === true || thing === false;\n\n/**\n * Determine if a value is a plain Object\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a plain Object, otherwise false\n */\nconst isPlainObject = (val) => {\n if (kindOf(val) !== 'object') {\n return false;\n }\n\n const prototype = getPrototypeOf(val);\n return (prototype === null || prototype === Object.prototype || Object.getPrototypeOf(prototype) === null) && !(toStringTag in val) && !(iterator in val);\n}\n\n/**\n * Determine if a value is an empty object (safely handles Buffers)\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is an empty object, otherwise false\n */\nconst isEmptyObject = (val) => {\n // Early return for non-objects or Buffers to prevent RangeError\n if (!isObject(val) || isBuffer(val)) {\n return false;\n }\n\n try {\n return Object.keys(val).length === 0 && Object.getPrototypeOf(val) === Object.prototype;\n } catch (e) {\n // Fallback for any other objects that might cause RangeError with Object.keys()\n return false;\n }\n}\n\n/**\n * Determine if a value is a Date\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Date, otherwise false\n */\nconst isDate = kindOfTest('Date');\n\n/**\n * Determine if a value is a File\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a File, otherwise false\n */\nconst isFile = kindOfTest('File');\n\n/**\n * Determine if a value is a Blob\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Blob, otherwise false\n */\nconst isBlob = kindOfTest('Blob');\n\n/**\n * Determine if a value is a FileList\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a File, otherwise false\n */\nconst isFileList = kindOfTest('FileList');\n\n/**\n * Determine if a value is a Stream\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Stream, otherwise false\n */\nconst isStream = (val) => isObject(val) && isFunction(val.pipe);\n\n/**\n * Determine if a value is a FormData\n *\n * @param {*} thing The value to test\n *\n * @returns {boolean} True if value is an FormData, otherwise false\n */\nconst isFormData = (thing) => {\n let kind;\n return thing && (\n (typeof FormData === 'function' && thing instanceof FormData) || (\n isFunction(thing.append) && (\n (kind = kindOf(thing)) === 'formdata' ||\n // detect form-data instance\n (kind === 'object' && isFunction(thing.toString) && thing.toString() === '[object FormData]')\n )\n )\n )\n}\n\n/**\n * Determine if a value is a URLSearchParams object\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a URLSearchParams object, otherwise false\n */\nconst isURLSearchParams = kindOfTest('URLSearchParams');\n\nconst [isReadableStream, isRequest, isResponse, isHeaders] = ['ReadableStream', 'Request', 'Response', 'Headers'].map(kindOfTest);\n\n/**\n * Trim excess whitespace off the beginning and end of a string\n *\n * @param {String} str The String to trim\n *\n * @returns {String} The String freed of excess whitespace\n */\nconst trim = (str) => str.trim ?\n str.trim() : str.replace(/^[\\s\\uFEFF\\xA0]+|[\\s\\uFEFF\\xA0]+$/g, '');\n\n/**\n * Iterate over an Array or an Object invoking a function for each item.\n *\n * If `obj` is an Array callback will be called passing\n * the value, index, and complete array for each item.\n *\n * If 'obj' is an Object callback will be called passing\n * the value, key, and complete object for each property.\n *\n * @param {Object|Array} obj The object to iterate\n * @param {Function} fn The callback to invoke for each item\n *\n * @param {Boolean} [allOwnKeys = false]\n * @returns {any}\n */\nfunction forEach(obj, fn, {allOwnKeys = false} = {}) {\n // Don't bother if no value provided\n if (obj === null || typeof obj === 'undefined') {\n return;\n }\n\n let i;\n let l;\n\n // Force an array if not already something iterable\n if (typeof obj !== 'object') {\n /*eslint no-param-reassign:0*/\n obj = [obj];\n }\n\n if (isArray(obj)) {\n // Iterate over array values\n for (i = 0, l = obj.length; i < l; i++) {\n fn.call(null, obj[i], i, obj);\n }\n } else {\n // Buffer check\n if (isBuffer(obj)) {\n return;\n }\n\n // Iterate over object keys\n const keys = allOwnKeys ? Object.getOwnPropertyNames(obj) : Object.keys(obj);\n const len = keys.length;\n let key;\n\n for (i = 0; i < len; i++) {\n key = keys[i];\n fn.call(null, obj[key], key, obj);\n }\n }\n}\n\nfunction findKey(obj, key) {\n if (isBuffer(obj)){\n return null;\n }\n\n key = key.toLowerCase();\n const keys = Object.keys(obj);\n let i = keys.length;\n let _key;\n while (i-- > 0) {\n _key = keys[i];\n if (key === _key.toLowerCase()) {\n return _key;\n }\n }\n return null;\n}\n\nconst _global = (() => {\n /*eslint no-undef:0*/\n if (typeof globalThis !== \"undefined\") return globalThis;\n return typeof self !== \"undefined\" ? self : (typeof window !== 'undefined' ? window : global)\n})();\n\nconst isContextDefined = (context) => !isUndefined(context) && context !== _global;\n\n/**\n * Accepts varargs expecting each argument to be an object, then\n * immutably merges the properties of each object and returns result.\n *\n * When multiple objects contain the same key the later object in\n * the arguments list will take precedence.\n *\n * Example:\n *\n * ```js\n * var result = merge({foo: 123}, {foo: 456});\n * console.log(result.foo); // outputs 456\n * ```\n *\n * @param {Object} obj1 Object to merge\n *\n * @returns {Object} Result of all merge properties\n */\nfunction merge(/* obj1, obj2, obj3, ... */) {\n const {caseless, skipUndefined} = isContextDefined(this) && this || {};\n const result = {};\n const assignValue = (val, key) => {\n const targetKey = caseless && findKey(result, key) || key;\n if (isPlainObject(result[targetKey]) && isPlainObject(val)) {\n result[targetKey] = merge(result[targetKey], val);\n } else if (isPlainObject(val)) {\n result[targetKey] = merge({}, val);\n } else if (isArray(val)) {\n result[targetKey] = val.slice();\n } else if (!skipUndefined || !isUndefined(val)) {\n result[targetKey] = val;\n }\n }\n\n for (let i = 0, l = arguments.length; i < l; i++) {\n arguments[i] && forEach(arguments[i], assignValue);\n }\n return result;\n}\n\n/**\n * Extends object a by mutably adding to it the properties of object b.\n *\n * @param {Object} a The object to be extended\n * @param {Object} b The object to copy properties from\n * @param {Object} thisArg The object to bind function to\n *\n * @param {Boolean} [allOwnKeys]\n * @returns {Object} The resulting value of object a\n */\nconst extend = (a, b, thisArg, {allOwnKeys}= {}) => {\n forEach(b, (val, key) => {\n if (thisArg && isFunction(val)) {\n a[key] = bind(val, thisArg);\n } else {\n a[key] = val;\n }\n }, {allOwnKeys});\n return a;\n}\n\n/**\n * Remove byte order marker. This catches EF BB BF (the UTF-8 BOM)\n *\n * @param {string} content with BOM\n *\n * @returns {string} content value without BOM\n */\nconst stripBOM = (content) => {\n if (content.charCodeAt(0) === 0xFEFF) {\n content = content.slice(1);\n }\n return content;\n}\n\n/**\n * Inherit the prototype methods from one constructor into another\n * @param {function} constructor\n * @param {function} superConstructor\n * @param {object} [props]\n * @param {object} [descriptors]\n *\n * @returns {void}\n */\nconst inherits = (constructor, superConstructor, props, descriptors) => {\n constructor.prototype = Object.create(superConstructor.prototype, descriptors);\n constructor.prototype.constructor = constructor;\n Object.defineProperty(constructor, 'super', {\n value: superConstructor.prototype\n });\n props && Object.assign(constructor.prototype, props);\n}\n\n/**\n * Resolve object with deep prototype chain to a flat object\n * @param {Object} sourceObj source object\n * @param {Object} [destObj]\n * @param {Function|Boolean} [filter]\n * @param {Function} [propFilter]\n *\n * @returns {Object}\n */\nconst toFlatObject = (sourceObj, destObj, filter, propFilter) => {\n let props;\n let i;\n let prop;\n const merged = {};\n\n destObj = destObj || {};\n // eslint-disable-next-line no-eq-null,eqeqeq\n if (sourceObj == null) return destObj;\n\n do {\n props = Object.getOwnPropertyNames(sourceObj);\n i = props.length;\n while (i-- > 0) {\n prop = props[i];\n if ((!propFilter || propFilter(prop, sourceObj, destObj)) && !merged[prop]) {\n destObj[prop] = sourceObj[prop];\n merged[prop] = true;\n }\n }\n sourceObj = filter !== false && getPrototypeOf(sourceObj);\n } while (sourceObj && (!filter || filter(sourceObj, destObj)) && sourceObj !== Object.prototype);\n\n return destObj;\n}\n\n/**\n * Determines whether a string ends with the characters of a specified string\n *\n * @param {String} str\n * @param {String} searchString\n * @param {Number} [position= 0]\n *\n * @returns {boolean}\n */\nconst endsWith = (str, searchString, position) => {\n str = String(str);\n if (position === undefined || position > str.length) {\n position = str.length;\n }\n position -= searchString.length;\n const lastIndex = str.indexOf(searchString, position);\n return lastIndex !== -1 && lastIndex === position;\n}\n\n\n/**\n * Returns new array from array like object or null if failed\n *\n * @param {*} [thing]\n *\n * @returns {?Array}\n */\nconst toArray = (thing) => {\n if (!thing) return null;\n if (isArray(thing)) return thing;\n let i = thing.length;\n if (!isNumber(i)) return null;\n const arr = new Array(i);\n while (i-- > 0) {\n arr[i] = thing[i];\n }\n return arr;\n}\n\n/**\n * Checking if the Uint8Array exists and if it does, it returns a function that checks if the\n * thing passed in is an instance of Uint8Array\n *\n * @param {TypedArray}\n *\n * @returns {Array}\n */\n// eslint-disable-next-line func-names\nconst isTypedArray = (TypedArray => {\n // eslint-disable-next-line func-names\n return thing => {\n return TypedArray && thing instanceof TypedArray;\n };\n})(typeof Uint8Array !== 'undefined' && getPrototypeOf(Uint8Array));\n\n/**\n * For each entry in the object, call the function with the key and value.\n *\n * @param {Object<any, any>} obj - The object to iterate over.\n * @param {Function} fn - The function to call for each entry.\n *\n * @returns {void}\n */\nconst forEachEntry = (obj, fn) => {\n const generator = obj && obj[iterator];\n\n const _iterator = generator.call(obj);\n\n let result;\n\n while ((result = _iterator.next()) && !result.done) {\n const pair = result.value;\n fn.call(obj, pair[0], pair[1]);\n }\n}\n\n/**\n * It takes a regular expression and a string, and returns an array of all the matches\n *\n * @param {string} regExp - The regular expression to match against.\n * @param {string} str - The string to search.\n *\n * @returns {Array<boolean>}\n */\nconst matchAll = (regExp, str) => {\n let matches;\n const arr = [];\n\n while ((matches = regExp.exec(str)) !== null) {\n arr.push(matches);\n }\n\n return arr;\n}\n\n/* Checking if the kindOfTest function returns true when passed an HTMLFormElement. */\nconst isHTMLForm = kindOfTest('HTMLFormElement');\n\nconst toCamelCase = str => {\n return str.toLowerCase().replace(/[-_\\s]([a-z\\d])(\\w*)/g,\n function replacer(m, p1, p2) {\n return p1.toUpperCase() + p2;\n }\n );\n};\n\n/* Creating a function that will check if an object has a property. */\nconst hasOwnProperty = (({hasOwnProperty}) => (obj, prop) => hasOwnProperty.call(obj, prop))(Object.prototype);\n\n/**\n * Determine if a value is a RegExp object\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a RegExp object, otherwise false\n */\nconst isRegExp = kindOfTest('RegExp');\n\nconst reduceDescriptors = (obj, reducer) => {\n const descriptors = Object.getOwnPropertyDescriptors(obj);\n const reducedDescriptors = {};\n\n forEach(descriptors, (descriptor, name) => {\n let ret;\n if ((ret = reducer(descriptor, name, obj)) !== false) {\n reducedDescriptors[name] = ret || descriptor;\n }\n });\n\n Object.defineProperties(obj, reducedDescriptors);\n}\n\n/**\n * Makes all methods read-only\n * @param {Object} obj\n */\n\nconst freezeMethods = (obj) => {\n reduceDescriptors(obj, (descriptor, name) => {\n // skip restricted props in strict mode\n if (isFunction(obj) && ['arguments', 'caller', 'callee'].indexOf(name) !== -1) {\n return false;\n }\n\n const value = obj[name];\n\n if (!isFunction(value)) return;\n\n descriptor.enumerable = false;\n\n if ('writable' in descriptor) {\n descriptor.writable = false;\n return;\n }\n\n if (!descriptor.set) {\n descriptor.set = () => {\n throw Error('Can not rewrite read-only method \\'' + name + '\\'');\n };\n }\n });\n}\n\nconst toObjectSet = (arrayOrString, delimiter) => {\n const obj = {};\n\n const define = (arr) => {\n arr.forEach(value => {\n obj[value] = true;\n });\n }\n\n isArray(arrayOrString) ? define(arrayOrString) : define(String(arrayOrString).split(delimiter));\n\n return obj;\n}\n\nconst noop = () => {}\n\nconst toFiniteNumber = (value, defaultValue) => {\n return value != null && Number.isFinite(value = +value) ? value : defaultValue;\n}\n\n\n\n/**\n * If the thing is a FormData object, return true, otherwise return false.\n *\n * @param {unknown} thing - The thing to check.\n *\n * @returns {boolean}\n */\nfunction isSpecCompliantForm(thing) {\n return !!(thing && isFunction(thing.append) && thing[toStringTag] === 'FormData' && thing[iterator]);\n}\n\nconst toJSONObject = (obj) => {\n const stack = new Array(10);\n\n const visit = (source, i) => {\n\n if (isObject(source)) {\n if (stack.indexOf(source) >= 0) {\n return;\n }\n\n //Buffer check\n if (isBuffer(source)) {\n return source;\n }\n\n if(!('toJSON' in source)) {\n stack[i] = source;\n const target = isArray(source) ? [] : {};\n\n forEach(source, (value, key) => {\n const reducedValue = visit(value, i + 1);\n !isUndefined(reducedValue) && (target[key] = reducedValue);\n });\n\n stack[i] = undefined;\n\n return target;\n }\n }\n\n return source;\n }\n\n return visit(obj, 0);\n}\n\nconst isAsyncFn = kindOfTest('AsyncFunction');\n\nconst isThenable = (thing) =>\n thing && (isObject(thing) || isFunction(thing)) && isFunction(thing.then) && isFunction(thing.catch);\n\n// original code\n// https://github.com/DigitalBrainJS/AxiosPromise/blob/16deab13710ec09779922131f3fa5954320f83ab/lib/utils.js#L11-L34\n\nconst _setImmediate = ((setImmediateSupported, postMessageSupported) => {\n if (setImmediateSupported) {\n return setImmediate;\n }\n\n return postMessageSupported ? ((token, callbacks) => {\n _global.addEventListener(\"message\", ({source, data}) => {\n if (source === _global && data === token) {\n callbacks.length && callbacks.shift()();\n }\n }, false);\n\n return (cb) => {\n callbacks.push(cb);\n _global.postMessage(token, \"*\");\n }\n })(`axios@${Math.random()}`, []) : (cb) => setTimeout(cb);\n})(\n typeof setImmediate === 'function',\n isFunction(_global.postMessage)\n);\n\nconst asap = typeof queueMicrotask !== 'undefined' ?\n queueMicrotask.bind(_global) : ( typeof process !== 'undefined' && process.nextTick || _setImmediate);\n\n// *********************\n\n\nconst isIterable = (thing) => thing != null && isFunction(thing[iterator]);\n\n\nexport default {\n isArray,\n isArrayBuffer,\n isBuffer,\n isFormData,\n isArrayBufferView,\n isString,\n isNumber,\n isBoolean,\n isObject,\n isPlainObject,\n isEmptyObject,\n isReadableStream,\n isRequest,\n isResponse,\n isHeaders,\n isUndefined,\n isDate,\n isFile,\n isBlob,\n isRegExp,\n isFunction,\n isStream,\n isURLSearchParams,\n isTypedArray,\n isFileList,\n forEach,\n merge,\n extend,\n trim,\n stripBOM,\n inherits,\n toFlatObject,\n kindOf,\n kindOfTest,\n endsWith,\n toArray,\n forEachEntry,\n matchAll,\n isHTMLForm,\n hasOwnProperty,\n hasOwnProp: hasOwnProperty, // an alias to avoid ESLint no-prototype-builtins detection\n reduceDescriptors,\n freezeMethods,\n toObjectSet,\n toCamelCase,\n noop,\n toFiniteNumber,\n findKey,\n global: _global,\n isContextDefined,\n isSpecCompliantForm,\n toJSONObject,\n isAsyncFn,\n isThenable,\n setImmediate: _setImmediate,\n asap,\n isIterable\n};\n","'use strict';\n\nimport utils from '../utils.js';\n\n/**\n * Create an Error with the specified message, config, error code, request and response.\n *\n * @param {string} message The error message.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [config] The config.\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n *\n * @returns {Error} The created error.\n */\nfunction AxiosError(message, code, config, request, response) {\n Error.call(this);\n\n if (Error.captureStackTrace) {\n Error.captureStackTrace(this, this.constructor);\n } else {\n this.stack = (new Error()).stack;\n }\n\n this.message = message;\n this.name = 'AxiosError';\n code && (this.code = code);\n config && (this.config = config);\n request && (this.request = request);\n if (response) {\n this.response = response;\n this.status = response.status ? response.status : null;\n }\n}\n\nutils.inherits(AxiosError, Error, {\n toJSON: function toJSON() {\n return {\n // Standard\n message: this.message,\n name: this.name,\n // Microsoft\n description: this.description,\n number: this.number,\n // Mozilla\n fileName: this.fileName,\n lineNumber: this.lineNumber,\n columnNumber: this.columnNumber,\n stack: this.stack,\n // Axios\n config: utils.toJSONObject(this.config),\n code: this.code,\n status: this.status\n };\n }\n});\n\nconst prototype = AxiosError.prototype;\nconst descriptors = {};\n\n[\n 'ERR_BAD_OPTION_VALUE',\n 'ERR_BAD_OPTION',\n 'ECONNABORTED',\n 'ETIMEDOUT',\n 'ERR_NETWORK',\n 'ERR_FR_TOO_MANY_REDIRECTS',\n 'ERR_DEPRECATED',\n 'ERR_BAD_RESPONSE',\n 'ERR_BAD_REQUEST',\n 'ERR_CANCELED',\n 'ERR_NOT_SUPPORT',\n 'ERR_INVALID_URL'\n// eslint-disable-next-line func-names\n].forEach(code => {\n descriptors[code] = {value: code};\n});\n\nObject.defineProperties(AxiosError, descriptors);\nObject.defineProperty(prototype, 'isAxiosError', {value: true});\n\n// eslint-disable-next-line func-names\nAxiosError.from = (error, code, config, request, response, customProps) => {\n const axiosError = Object.create(prototype);\n\n utils.toFlatObject(error, axiosError, function filter(obj) {\n return obj !== Error.prototype;\n }, prop => {\n return prop !== 'isAxiosError';\n });\n\n const msg = error && error.message ? error.message : 'Error';\n\n // Prefer explicit code; otherwise copy the low-level error's code (e.g. ECONNREFUSED)\n const errCode = code == null && error ? error.code : code;\n AxiosError.call(axiosError, msg, errCode, config, request, response);\n\n // Chain the original error on the standard field; non-enumerable to avoid JSON noise\n if (error && axiosError.cause == null) {\n Object.defineProperty(axiosError, 'cause', { value: error, configurable: true });\n }\n\n axiosError.name = (error && error.name) || 'Error';\n\n customProps && Object.assign(axiosError, customProps);\n\n return axiosError;\n};\n\nexport default AxiosError;\n","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosError from '../core/AxiosError.js';\n// temporary hotfix to avoid circular references until AxiosURLSearchParams is refactored\nimport PlatformFormData from '../platform/node/classes/FormData.js';\n\n/**\n * Determines if the given thing is a array or js object.\n *\n * @param {string} thing - The object or array to be visited.\n *\n * @returns {boolean}\n */\nfunction isVisitable(thing) {\n return utils.isPlainObject(thing) || utils.isArray(thing);\n}\n\n/**\n * It removes the brackets from the end of a string\n *\n * @param {string} key - The key of the parameter.\n *\n * @returns {string} the key without the brackets.\n */\nfunction removeBrackets(key) {\n return utils.endsWith(key, '[]') ? key.slice(0, -2) : key;\n}\n\n/**\n * It takes a path, a key, and a boolean, and returns a string\n *\n * @param {string} path - The path to the current key.\n * @param {string} key - The key of the current object being iterated over.\n * @param {string} dots - If true, the key will be rendered with dots instead of brackets.\n *\n * @returns {string} The path to the current key.\n */\nfunction renderKey(path, key, dots) {\n if (!path) return key;\n return path.concat(key).map(function each(token, i) {\n // eslint-disable-next-line no-param-reassign\n token = removeBrackets(token);\n return !dots && i ? '[' + token + ']' : token;\n }).join(dots ? '.' : '');\n}\n\n/**\n * If the array is an array and none of its elements are visitable, then it's a flat array.\n *\n * @param {Array<any>} arr - The array to check\n *\n * @returns {boolean}\n */\nfunction isFlatArray(arr) {\n return utils.isArray(arr) && !arr.some(isVisitable);\n}\n\nconst predicates = utils.toFlatObject(utils, {}, null, function filter(prop) {\n return /^is[A-Z]/.test(prop);\n});\n\n/**\n * Convert a data object to FormData\n *\n * @param {Object} obj\n * @param {?Object} [formData]\n * @param {?Object} [options]\n * @param {Function} [options.visitor]\n * @param {Boolean} [options.metaTokens = true]\n * @param {Boolean} [options.dots = false]\n * @param {?Boolean} [options.indexes = false]\n *\n * @returns {Object}\n **/\n\n/**\n * It converts an object into a FormData object\n *\n * @param {Object<any, any>} obj - The object to convert to form data.\n * @param {string} formData - The FormData object to append to.\n * @param {Object<string, any>} options\n *\n * @returns\n */\nfunction toFormData(obj, formData, options) {\n if (!utils.isObject(obj)) {\n throw new TypeError('target must be an object');\n }\n\n // eslint-disable-next-line no-param-reassign\n formData = formData || new (PlatformFormData || FormData)();\n\n // eslint-disable-next-line no-param-reassign\n options = utils.toFlatObject(options, {\n metaTokens: true,\n dots: false,\n indexes: false\n }, false, function defined(option, source) {\n // eslint-disable-next-line no-eq-null,eqeqeq\n return !utils.isUndefined(source[option]);\n });\n\n const metaTokens = options.metaTokens;\n // eslint-disable-next-line no-use-before-define\n const visitor = options.visitor || defaultVisitor;\n const dots = options.dots;\n const indexes = options.indexes;\n const _Blob = options.Blob || typeof Blob !== 'undefined' && Blob;\n const useBlob = _Blob && utils.isSpecCompliantForm(formData);\n\n if (!utils.isFunction(visitor)) {\n throw new TypeError('visitor must be a function');\n }\n\n function convertValue(value) {\n if (value === null) return '';\n\n if (utils.isDate(value)) {\n return value.toISOString();\n }\n\n if (utils.isBoolean(value)) {\n return value.toString();\n }\n\n if (!useBlob && utils.isBlob(value)) {\n throw new AxiosError('Blob is not supported. Use a Buffer instead.');\n }\n\n if (utils.isArrayBuffer(value) || utils.isTypedArray(value)) {\n return useBlob && typeof Blob === 'function' ? new Blob([value]) : Buffer.from(value);\n }\n\n return value;\n }\n\n /**\n * Default visitor.\n *\n * @param {*} value\n * @param {String|Number} key\n * @param {Array<String|Number>} path\n * @this {FormData}\n *\n * @returns {boolean} return true to visit the each prop of the value recursively\n */\n function defaultVisitor(value, key, path) {\n let arr = value;\n\n if (value && !path && typeof value === 'object') {\n if (utils.endsWith(key, '{}')) {\n // eslint-disable-next-line no-param-reassign\n key = metaTokens ? key : key.slice(0, -2);\n // eslint-disable-next-line no-param-reassign\n value = JSON.stringify(value);\n } else if (\n (utils.isArray(value) && isFlatArray(value)) ||\n ((utils.isFileList(value) || utils.endsWith(key, '[]')) && (arr = utils.toArray(value))\n )) {\n // eslint-disable-next-line no-param-reassign\n key = removeBrackets(key);\n\n arr.forEach(function each(el, index) {\n !(utils.isUndefined(el) || el === null) && formData.append(\n // eslint-disable-next-line no-nested-ternary\n indexes === true ? renderKey([key], index, dots) : (indexes === null ? key : key + '[]'),\n convertValue(el)\n );\n });\n return false;\n }\n }\n\n if (isVisitable(value)) {\n return true;\n }\n\n formData.append(renderKey(path, key, dots), convertValue(value));\n\n return false;\n }\n\n const stack = [];\n\n const exposedHelpers = Object.assign(predicates, {\n defaultVisitor,\n convertValue,\n isVisitable\n });\n\n function build(value, path) {\n if (utils.isUndefined(value)) return;\n\n if (stack.indexOf(value) !== -1) {\n throw Error('Circular reference detected in ' + path.join('.'));\n }\n\n stack.push(value);\n\n utils.forEach(value, function each(el, key) {\n const result = !(utils.isUndefined(el) || el === null) && visitor.call(\n formData, el, utils.isString(key) ? key.trim() : key, path, exposedHelpers\n );\n\n if (result === true) {\n build(el, path ? path.concat(key) : [key]);\n }\n });\n\n stack.pop();\n }\n\n if (!utils.isObject(obj)) {\n throw new TypeError('data must be an object');\n }\n\n build(obj);\n\n return formData;\n}\n\nexport default toFormData;\n","'use strict';\n\nimport toFormData from './toFormData.js';\n\n/**\n * It encodes a string by replacing all characters that are not in the unreserved set with\n * their percent-encoded equivalents\n *\n * @param {string} str - The string to encode.\n *\n * @returns {string} The encoded string.\n */\nfunction encode(str) {\n const charMap = {\n '!': '%21',\n \"'\": '%27',\n '(': '%28',\n ')': '%29',\n '~': '%7E',\n '%20': '+',\n '%00': '\\x00'\n };\n return encodeURIComponent(str).replace(/[!'()~]|%20|%00/g, function replacer(match) {\n return charMap[match];\n });\n}\n\n/**\n * It takes a params object and converts it to a FormData object\n *\n * @param {Object<string, any>} params - The parameters to be converted to a FormData object.\n * @param {Object<string, any>} options - The options object passed to the Axios constructor.\n *\n * @returns {void}\n */\nfunction AxiosURLSearchParams(params, options) {\n this._pairs = [];\n\n params && toFormData(params, this, options);\n}\n\nconst prototype = AxiosURLSearchParams.prototype;\n\nprototype.append = function append(name, value) {\n this._pairs.push([name, value]);\n};\n\nprototype.toString = function toString(encoder) {\n const _encode = encoder ? function(value) {\n return encoder.call(this, value, encode);\n } : encode;\n\n return this._pairs.map(function each(pair) {\n return _encode(pair[0]) + '=' + _encode(pair[1]);\n }, '').join('&');\n};\n\nexport default AxiosURLSearchParams;\n","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosURLSearchParams from '../helpers/AxiosURLSearchParams.js';\n\n/**\n * It replaces all instances of the characters `:`, `$`, `,`, `+`, `[`, and `]` with their\n * URI encoded counterparts\n *\n * @param {string} val The value to be encoded.\n *\n * @returns {string} The encoded value.\n */\nfunction encode(val) {\n return encodeURIComponent(val).\n replace(/%3A/gi, ':').\n replace(/%24/g, '$').\n replace(/%2C/gi, ',').\n replace(/%20/g, '+');\n}\n\n/**\n * Build a URL by appending params to the end\n *\n * @param {string} url The base of the url (e.g., http://www.google.com)\n * @param {object} [params] The params to be appended\n * @param {?(object|Function)} options\n *\n * @returns {string} The formatted url\n */\nexport default function buildURL(url, params, options) {\n /*eslint no-param-reassign:0*/\n if (!params) {\n return url;\n }\n \n const _encode = options && options.encode || encode;\n\n if (utils.isFunction(options)) {\n options = {\n serialize: options\n };\n } \n\n const serializeFn = options && options.serialize;\n\n let serializedParams;\n\n if (serializeFn) {\n serializedParams = serializeFn(params, options);\n } else {\n serializedParams = utils.isURLSearchParams(params) ?\n params.toString() :\n new AxiosURLSearchParams(params, options).toString(_encode);\n }\n\n if (serializedParams) {\n const hashmarkIndex = url.indexOf(\"#\");\n\n if (hashmarkIndex !== -1) {\n url = url.slice(0, hashmarkIndex);\n }\n url += (url.indexOf('?') === -1 ? '?' : '&') + serializedParams;\n }\n\n return url;\n}\n","'use strict';\n\nimport utils from './../utils.js';\n\nclass InterceptorManager {\n constructor() {\n this.handlers = [];\n }\n\n /**\n * Add a new interceptor to the stack\n *\n * @param {Function} fulfilled The function to handle `then` for a `Promise`\n * @param {Function} rejected The function to handle `reject` for a `Promise`\n *\n * @return {Number} An ID used to remove interceptor later\n */\n use(fulfilled, rejected, options) {\n this.handlers.push({\n fulfilled,\n rejected,\n synchronous: options ? options.synchronous : false,\n runWhen: options ? options.runWhen : null\n });\n return this.handlers.length - 1;\n }\n\n /**\n * Remove an interceptor from the stack\n *\n * @param {Number} id The ID that was returned by `use`\n *\n * @returns {Boolean} `true` if the interceptor was removed, `false` otherwise\n */\n eject(id) {\n if (this.handlers[id]) {\n this.handlers[id] = null;\n }\n }\n\n /**\n * Clear all interceptors from the stack\n *\n * @returns {void}\n */\n clear() {\n if (this.handlers) {\n this.handlers = [];\n }\n }\n\n /**\n * Iterate over all the registered interceptors\n *\n * This method is particularly useful for skipping over any\n * interceptors that may have become `null` calling `eject`.\n *\n * @param {Function} fn The function to call for each interceptor\n *\n * @returns {void}\n */\n forEach(fn) {\n utils.forEach(this.handlers, function forEachHandler(h) {\n if (h !== null) {\n fn(h);\n }\n });\n }\n}\n\nexport default InterceptorManager;\n","'use strict';\n\nexport default {\n silentJSONParsing: true,\n forcedJSONParsing: true,\n clarifyTimeoutError: false\n};\n","import URLSearchParams from './classes/URLSearchParams.js'\nimport FormData from './classes/FormData.js'\nimport Blob from './classes/Blob.js'\n\nexport default {\n isBrowser: true,\n classes: {\n URLSearchParams,\n FormData,\n Blob\n },\n protocols: ['http', 'https', 'file', 'blob', 'url', 'data']\n};\n","'use strict';\n\nimport AxiosURLSearchParams from '../../../helpers/AxiosURLSearchParams.js';\nexport default typeof URLSearchParams !== 'undefined' ? URLSearchParams : AxiosURLSearchParams;\n","'use strict';\n\nexport default typeof FormData !== 'undefined' ? FormData : null;\n","'use strict'\n\nexport default typeof Blob !== 'undefined' ? Blob : null\n","const hasBrowserEnv = typeof window !== 'undefined' && typeof document !== 'undefined';\n\nconst _navigator = typeof navigator === 'object' && navigator || undefined;\n\n/**\n * Determine if we're running in a standard browser environment\n *\n * This allows axios to run in a web worker, and react-native.\n * Both environments support XMLHttpRequest, but not fully standard globals.\n *\n * web workers:\n * typeof window -> undefined\n * typeof document -> undefined\n *\n * react-native:\n * navigator.product -> 'ReactNative'\n * nativescript\n * navigator.product -> 'NativeScript' or 'NS'\n *\n * @returns {boolean}\n */\nconst hasStandardBrowserEnv = hasBrowserEnv &&\n (!_navigator || ['ReactNative', 'NativeScript', 'NS'].indexOf(_navigator.product) < 0);\n\n/**\n * Determine if we're running in a standard browser webWorker environment\n *\n * Although the `isStandardBrowserEnv` method indicates that\n * `allows axios to run in a web worker`, the WebWorker will still be\n * filtered out due to its judgment standard\n * `typeof window !== 'undefined' && typeof document !== 'undefined'`.\n * This leads to a problem when axios post `FormData` in webWorker\n */\nconst hasStandardBrowserWebWorkerEnv = (() => {\n return (\n typeof WorkerGlobalScope !== 'undefined' &&\n // eslint-disable-next-line no-undef\n self instanceof WorkerGlobalScope &&\n typeof self.importScripts === 'function'\n );\n})();\n\nconst origin = hasBrowserEnv && window.location.href || 'http://localhost';\n\nexport {\n hasBrowserEnv,\n hasStandardBrowserWebWorkerEnv,\n hasStandardBrowserEnv,\n _navigator as navigator,\n origin\n}\n","import platform from './node/index.js';\nimport * as utils from './common/utils.js';\n\nexport default {\n ...utils,\n ...platform\n}\n","'use strict';\n\nimport utils from '../utils.js';\n\n/**\n * It takes a string like `foo[x][y][z]` and returns an array like `['foo', 'x', 'y', 'z']\n *\n * @param {string} name - The name of the property to get.\n *\n * @returns An array of strings.\n */\nfunction parsePropPath(name) {\n // foo[x][y][z]\n // foo.x.y.z\n // foo-x-y-z\n // foo x y z\n return utils.matchAll(/\\w+|\\[(\\w*)]/g, name).map(match => {\n return match[0] === '[]' ? '' : match[1] || match[0];\n });\n}\n\n/**\n * Convert an array to an object.\n *\n * @param {Array<any>} arr - The array to convert to an object.\n *\n * @returns An object with the same keys and values as the array.\n */\nfunction arrayToObject(arr) {\n const obj = {};\n const keys = Object.keys(arr);\n let i;\n const len = keys.length;\n let key;\n for (i = 0; i < len; i++) {\n key = keys[i];\n obj[key] = arr[key];\n }\n return obj;\n}\n\n/**\n * It takes a FormData object and returns a JavaScript object\n *\n * @param {string} formData The FormData object to convert to JSON.\n *\n * @returns {Object<string, any> | null} The converted object.\n */\nfunction formDataToJSON(formData) {\n function buildPath(path, value, target, index) {\n let name = path[index++];\n\n if (name === '__proto__') return true;\n\n const isNumericKey = Number.isFinite(+name);\n const isLast = index >= path.length;\n name = !name && utils.isArray(target) ? target.length : name;\n\n if (isLast) {\n if (utils.hasOwnProp(target, name)) {\n target[name] = [target[name], value];\n } else {\n target[name] = value;\n }\n\n return !isNumericKey;\n }\n\n if (!target[name] || !utils.isObject(target[name])) {\n target[name] = [];\n }\n\n const result = buildPath(path, value, target[name], index);\n\n if (result && utils.isArray(target[name])) {\n target[name] = arrayToObject(target[name]);\n }\n\n return !isNumericKey;\n }\n\n if (utils.isFormData(formData) && utils.isFunction(formData.entries)) {\n const obj = {};\n\n utils.forEachEntry(formData, (name, value) => {\n buildPath(parsePropPath(name), value, obj, 0);\n });\n\n return obj;\n }\n\n return null;\n}\n\nexport default formDataToJSON;\n","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosError from '../core/AxiosError.js';\nimport transitionalDefaults from './transitional.js';\nimport toFormData from '../helpers/toFormData.js';\nimport toURLEncodedForm from '../helpers/toURLEncodedForm.js';\nimport platform from '../platform/index.js';\nimport formDataToJSON from '../helpers/formDataToJSON.js';\n\n/**\n * It takes a string, tries to parse it, and if it fails, it returns the stringified version\n * of the input\n *\n * @param {any} rawValue - The value to be stringified.\n * @param {Function} parser - A function that parses a string into a JavaScript object.\n * @param {Function} encoder - A function that takes a value and returns a string.\n *\n * @returns {string} A stringified version of the rawValue.\n */\nfunction stringifySafely(rawValue, parser, encoder) {\n if (utils.isString(rawValue)) {\n try {\n (parser || JSON.parse)(rawValue);\n return utils.trim(rawValue);\n } catch (e) {\n if (e.name !== 'SyntaxError') {\n throw e;\n }\n }\n }\n\n return (encoder || JSON.stringify)(rawValue);\n}\n\nconst defaults = {\n\n transitional: transitionalDefaults,\n\n adapter: ['xhr', 'http', 'fetch'],\n\n transformRequest: [function transformRequest(data, headers) {\n const contentType = headers.getContentType() || '';\n const hasJSONContentType = contentType.indexOf('application/json') > -1;\n const isObjectPayload = utils.isObject(data);\n\n if (isObjectPayload && utils.isHTMLForm(data)) {\n data = new FormData(data);\n }\n\n const isFormData = utils.isFormData(data);\n\n if (isFormData) {\n return hasJSONContentType ? JSON.stringify(formDataToJSON(data)) : data;\n }\n\n if (utils.isArrayBuffer(data) ||\n utils.isBuffer(data) ||\n utils.isStream(data) ||\n utils.isFile(data) ||\n utils.isBlob(data) ||\n utils.isReadableStream(data)\n ) {\n return data;\n }\n if (utils.isArrayBufferView(data)) {\n return data.buffer;\n }\n if (utils.isURLSearchParams(data)) {\n headers.setContentType('application/x-www-form-urlencoded;charset=utf-8', false);\n return data.toString();\n }\n\n let isFileList;\n\n if (isObjectPayload) {\n if (contentType.indexOf('application/x-www-form-urlencoded') > -1) {\n return toURLEncodedForm(data, this.formSerializer).toString();\n }\n\n if ((isFileList = utils.isFileList(data)) || contentType.indexOf('multipart/form-data') > -1) {\n const _FormData = this.env && this.env.FormData;\n\n return toFormData(\n isFileList ? {'files[]': data} : data,\n _FormData && new _FormData(),\n this.formSerializer\n );\n }\n }\n\n if (isObjectPayload || hasJSONContentType ) {\n headers.setContentType('application/json', false);\n return stringifySafely(data);\n }\n\n return data;\n }],\n\n transformResponse: [function transformResponse(data) {\n const transitional = this.transitional || defaults.transitional;\n const forcedJSONParsing = transitional && transitional.forcedJSONParsing;\n const JSONRequested = this.responseType === 'json';\n\n if (utils.isResponse(data) || utils.isReadableStream(data)) {\n return data;\n }\n\n if (data && utils.isString(data) && ((forcedJSONParsing && !this.responseType) || JSONRequested)) {\n const silentJSONParsing = transitional && transitional.silentJSONParsing;\n const strictJSONParsing = !silentJSONParsing && JSONRequested;\n\n try {\n return JSON.parse(data, this.parseReviver);\n } catch (e) {\n if (strictJSONParsing) {\n if (e.name === 'SyntaxError') {\n throw AxiosError.from(e, AxiosError.ERR_BAD_RESPONSE, this, null, this.response);\n }\n throw e;\n }\n }\n }\n\n return data;\n }],\n\n /**\n * A timeout in milliseconds to abort a request. If set to 0 (default) a\n * timeout is not created.\n */\n timeout: 0,\n\n xsrfCookieName: 'XSRF-TOKEN',\n xsrfHeaderName: 'X-XSRF-TOKEN',\n\n maxContentLength: -1,\n maxBodyLength: -1,\n\n env: {\n FormData: platform.classes.FormData,\n Blob: platform.classes.Blob\n },\n\n validateStatus: function validateStatus(status) {\n return status >= 200 && status < 300;\n },\n\n headers: {\n common: {\n 'Accept': 'application/json, text/plain, */*',\n 'Content-Type': undefined\n }\n }\n};\n\nutils.forEach(['delete', 'get', 'head', 'post', 'put', 'patch'], (method) => {\n defaults.headers[method] = {};\n});\n\nexport default defaults;\n","'use strict';\n\nimport utils from '../utils.js';\nimport toFormData from './toFormData.js';\nimport platform from '../platform/index.js';\n\nexport default function toURLEncodedForm(data, options) {\n return toFormData(data, new platform.classes.URLSearchParams(), {\n visitor: function(value, key, path, helpers) {\n if (platform.isNode && utils.isBuffer(value)) {\n this.append(key, value.toString('base64'));\n return false;\n }\n\n return helpers.defaultVisitor.apply(this, arguments);\n },\n ...options\n });\n}\n","'use strict';\n\nimport utils from './../utils.js';\n\n// RawAxiosHeaders whose duplicates are ignored by node\n// c.f. https://nodejs.org/api/http.html#http_message_headers\nconst ignoreDuplicateOf = utils.toObjectSet([\n 'age', 'authorization', 'content-length', 'content-type', 'etag',\n 'expires', 'from', 'host', 'if-modified-since', 'if-unmodified-since',\n 'last-modified', 'location', 'max-forwards', 'proxy-authorization',\n 'referer', 'retry-after', 'user-agent'\n]);\n\n/**\n * Parse headers into an object\n *\n * ```\n * Date: Wed, 27 Aug 2014 08:58:49 GMT\n * Content-Type: application/json\n * Connection: keep-alive\n * Transfer-Encoding: chunked\n * ```\n *\n * @param {String} rawHeaders Headers needing to be parsed\n *\n * @returns {Object} Headers parsed into an object\n */\nexport default rawHeaders => {\n const parsed = {};\n let key;\n let val;\n let i;\n\n rawHeaders && rawHeaders.split('\\n').forEach(function parser(line) {\n i = line.indexOf(':');\n key = line.substring(0, i).trim().toLowerCase();\n val = line.substring(i + 1).trim();\n\n if (!key || (parsed[key] && ignoreDuplicateOf[key])) {\n return;\n }\n\n if (key === 'set-cookie') {\n if (parsed[key]) {\n parsed[key].push(val);\n } else {\n parsed[key] = [val];\n }\n } else {\n parsed[key] = parsed[key] ? parsed[key] + ', ' + val : val;\n }\n });\n\n return parsed;\n};\n","'use strict';\n\nimport utils from '../utils.js';\nimport parseHeaders from '../helpers/parseHeaders.js';\n\nconst $internals = Symbol('internals');\n\nfunction normalizeHeader(header) {\n return header && String(header).trim().toLowerCase();\n}\n\nfunction normalizeValue(value) {\n if (value === false || value == null) {\n return value;\n }\n\n return utils.isArray(value) ? value.map(normalizeValue) : String(value);\n}\n\nfunction parseTokens(str) {\n const tokens = Object.create(null);\n const tokensRE = /([^\\s,;=]+)\\s*(?:=\\s*([^,;]+))?/g;\n let match;\n\n while ((match = tokensRE.exec(str))) {\n tokens[match[1]] = match[2];\n }\n\n return tokens;\n}\n\nconst isValidHeaderName = (str) => /^[-_a-zA-Z0-9^`|~,!#$%&'*+.]+$/.test(str.trim());\n\nfunction matchHeaderValue(context, value, header, filter, isHeaderNameFilter) {\n if (utils.isFunction(filter)) {\n return filter.call(this, value, header);\n }\n\n if (isHeaderNameFilter) {\n value = header;\n }\n\n if (!utils.isString(value)) return;\n\n if (utils.isString(filter)) {\n return value.indexOf(filter) !== -1;\n }\n\n if (utils.isRegExp(filter)) {\n return filter.test(value);\n }\n}\n\nfunction formatHeader(header) {\n return header.trim()\n .toLowerCase().replace(/([a-z\\d])(\\w*)/g, (w, char, str) => {\n return char.toUpperCase() + str;\n });\n}\n\nfunction buildAccessors(obj, header) {\n const accessorName = utils.toCamelCase(' ' + header);\n\n ['get', 'set', 'has'].forEach(methodName => {\n Object.defineProperty(obj, methodName + accessorName, {\n value: function(arg1, arg2, arg3) {\n return this[methodName].call(this, header, arg1, arg2, arg3);\n },\n configurable: true\n });\n });\n}\n\nclass AxiosHeaders {\n constructor(headers) {\n headers && this.set(headers);\n }\n\n set(header, valueOrRewrite, rewrite) {\n const self = this;\n\n function setHeader(_value, _header, _rewrite) {\n const lHeader = normalizeHeader(_header);\n\n if (!lHeader) {\n throw new Error('header name must be a non-empty string');\n }\n\n const key = utils.findKey(self, lHeader);\n\n if(!key || self[key] === undefined || _rewrite === true || (_rewrite === undefined && self[key] !== false)) {\n self[key || _header] = normalizeValue(_value);\n }\n }\n\n const setHeaders = (headers, _rewrite) =>\n utils.forEach(headers, (_value, _header) => setHeader(_value, _header, _rewrite));\n\n if (utils.isPlainObject(header) || header instanceof this.constructor) {\n setHeaders(header, valueOrRewrite)\n } else if(utils.isString(header) && (header = header.trim()) && !isValidHeaderName(header)) {\n setHeaders(parseHeaders(header), valueOrRewrite);\n } else if (utils.isObject(header) && utils.isIterable(header)) {\n let obj = {}, dest, key;\n for (const entry of header) {\n if (!utils.isArray(entry)) {\n throw TypeError('Object iterator must return a key-value pair');\n }\n\n obj[key = entry[0]] = (dest = obj[key]) ?\n (utils.isArray(dest) ? [...dest, entry[1]] : [dest, entry[1]]) : entry[1];\n }\n\n setHeaders(obj, valueOrRewrite)\n } else {\n header != null && setHeader(valueOrRewrite, header, rewrite);\n }\n\n return this;\n }\n\n get(header, parser) {\n header = normalizeHeader(header);\n\n if (header) {\n const key = utils.findKey(this, header);\n\n if (key) {\n const value = this[key];\n\n if (!parser) {\n return value;\n }\n\n if (parser === true) {\n return parseTokens(value);\n }\n\n if (utils.isFunction(parser)) {\n return parser.call(this, value, key);\n }\n\n if (utils.isRegExp(parser)) {\n return parser.exec(value);\n }\n\n throw new TypeError('parser must be boolean|regexp|function');\n }\n }\n }\n\n has(header, matcher) {\n header = normalizeHeader(header);\n\n if (header) {\n const key = utils.findKey(this, header);\n\n return !!(key && this[key] !== undefined && (!matcher || matchHeaderValue(this, this[key], key, matcher)));\n }\n\n return false;\n }\n\n delete(header, matcher) {\n const self = this;\n let deleted = false;\n\n function deleteHeader(_header) {\n _header = normalizeHeader(_header);\n\n if (_header) {\n const key = utils.findKey(self, _header);\n\n if (key && (!matcher || matchHeaderValue(self, self[key], key, matcher))) {\n delete self[key];\n\n deleted = true;\n }\n }\n }\n\n if (utils.isArray(header)) {\n header.forEach(deleteHeader);\n } else {\n deleteHeader(header);\n }\n\n return deleted;\n }\n\n clear(matcher) {\n const keys = Object.keys(this);\n let i = keys.length;\n let deleted = false;\n\n while (i--) {\n const key = keys[i];\n if(!matcher || matchHeaderValue(this, this[key], key, matcher, true)) {\n delete this[key];\n deleted = true;\n }\n }\n\n return deleted;\n }\n\n normalize(format) {\n const self = this;\n const headers = {};\n\n utils.forEach(this, (value, header) => {\n const key = utils.findKey(headers, header);\n\n if (key) {\n self[key] = normalizeValue(value);\n delete self[header];\n return;\n }\n\n const normalized = format ? formatHeader(header) : String(header).trim();\n\n if (normalized !== header) {\n delete self[header];\n }\n\n self[normalized] = normalizeValue(value);\n\n headers[normalized] = true;\n });\n\n return this;\n }\n\n concat(...targets) {\n return this.constructor.concat(this, ...targets);\n }\n\n toJSON(asStrings) {\n const obj = Object.create(null);\n\n utils.forEach(this, (value, header) => {\n value != null && value !== false && (obj[header] = asStrings && utils.isArray(value) ? value.join(', ') : value);\n });\n\n return obj;\n }\n\n [Symbol.iterator]() {\n return Object.entries(this.toJSON())[Symbol.iterator]();\n }\n\n toString() {\n return Object.entries(this.toJSON()).map(([header, value]) => header + ': ' + value).join('\\n');\n }\n\n getSetCookie() {\n return this.get(\"set-cookie\") || [];\n }\n\n get [Symbol.toStringTag]() {\n return 'AxiosHeaders';\n }\n\n static from(thing) {\n return thing instanceof this ? thing : new this(thing);\n }\n\n static concat(first, ...targets) {\n const computed = new this(first);\n\n targets.forEach((target) => computed.set(target));\n\n return computed;\n }\n\n static accessor(header) {\n const internals = this[$internals] = (this[$internals] = {\n accessors: {}\n });\n\n const accessors = internals.accessors;\n const prototype = this.prototype;\n\n function defineAccessor(_header) {\n const lHeader = normalizeHeader(_header);\n\n if (!accessors[lHeader]) {\n buildAccessors(prototype, _header);\n accessors[lHeader] = true;\n }\n }\n\n utils.isArray(header) ? header.forEach(defineAccessor) : defineAccessor(header);\n\n return this;\n }\n}\n\nAxiosHeaders.accessor(['Content-Type', 'Content-Length', 'Accept', 'Accept-Encoding', 'User-Agent', 'Authorization']);\n\n// reserved names hotfix\nutils.reduceDescriptors(AxiosHeaders.prototype, ({value}, key) => {\n let mapped = key[0].toUpperCase() + key.slice(1); // map `set` => `Set`\n return {\n get: () => value,\n set(headerValue) {\n this[mapped] = headerValue;\n }\n }\n});\n\nutils.freezeMethods(AxiosHeaders);\n\nexport default AxiosHeaders;\n","'use strict';\n\nimport utils from './../utils.js';\nimport defaults from '../defaults/index.js';\nimport AxiosHeaders from '../core/AxiosHeaders.js';\n\n/**\n * Transform the data for a request or a response\n *\n * @param {Array|Function} fns A single function or Array of functions\n * @param {?Object} response The response object\n *\n * @returns {*} The resulting transformed data\n */\nexport default function transformData(fns, response) {\n const config = this || defaults;\n const context = response || config;\n const headers = AxiosHeaders.from(context.headers);\n let data = context.data;\n\n utils.forEach(fns, function transform(fn) {\n data = fn.call(config, data, headers.normalize(), response ? response.status : undefined);\n });\n\n headers.normalize();\n\n return data;\n}\n","'use strict';\n\nexport default function isCancel(value) {\n return !!(value && value.__CANCEL__);\n}\n","'use strict';\n\nimport AxiosError from '../core/AxiosError.js';\nimport utils from '../utils.js';\n\n/**\n * A `CanceledError` is an object that is thrown when an operation is canceled.\n *\n * @param {string=} message The message.\n * @param {Object=} config The config.\n * @param {Object=} request The request.\n *\n * @returns {CanceledError} The created error.\n */\nfunction CanceledError(message, config, request) {\n // eslint-disable-next-line no-eq-null,eqeqeq\n AxiosError.call(this, message == null ? 'canceled' : message, AxiosError.ERR_CANCELED, config, request);\n this.name = 'CanceledError';\n}\n\nutils.inherits(CanceledError, AxiosError, {\n __CANCEL__: true\n});\n\nexport default CanceledError;\n","'use strict';\n\nimport AxiosError from './AxiosError.js';\n\n/**\n * Resolve or reject a Promise based on response status.\n *\n * @param {Function} resolve A function that resolves the promise.\n * @param {Function} reject A function that rejects the promise.\n * @param {object} response The response.\n *\n * @returns {object} The response.\n */\nexport default function settle(resolve, reject, response) {\n const validateStatus = response.config.validateStatus;\n if (!response.status || !validateStatus || validateStatus(response.status)) {\n resolve(response);\n } else {\n reject(new AxiosError(\n 'Request failed with status code ' + response.status,\n [AxiosError.ERR_BAD_REQUEST, AxiosError.ERR_BAD_RESPONSE][Math.floor(response.status / 100) - 4],\n response.config,\n response.request,\n response\n ));\n }\n}\n","import speedometer from \"./speedometer.js\";\nimport throttle from \"./throttle.js\";\nimport utils from \"../utils.js\";\n\nexport const progressEventReducer = (listener, isDownloadStream, freq = 3) => {\n let bytesNotified = 0;\n const _speedometer = speedometer(50, 250);\n\n return throttle(e => {\n const loaded = e.loaded;\n const total = e.lengthComputable ? e.total : undefined;\n const progressBytes = loaded - bytesNotified;\n const rate = _speedometer(progressBytes);\n const inRange = loaded <= total;\n\n bytesNotified = loaded;\n\n const data = {\n loaded,\n total,\n progress: total ? (loaded / total) : undefined,\n bytes: progressBytes,\n rate: rate ? rate : undefined,\n estimated: rate && total && inRange ? (total - loaded) / rate : undefined,\n event: e,\n lengthComputable: total != null,\n [isDownloadStream ? 'download' : 'upload']: true\n };\n\n listener(data);\n }, freq);\n}\n\nexport const progressEventDecorator = (total, throttled) => {\n const lengthComputable = total != null;\n\n return [(loaded) => throttled[0]({\n lengthComputable,\n total,\n loaded\n }), throttled[1]];\n}\n\nexport const asyncDecorator = (fn) => (...args) => utils.asap(() => fn(...args));\n","'use strict';\n\n/**\n * Calculate data maxRate\n * @param {Number} [samplesCount= 10]\n * @param {Number} [min= 1000]\n * @returns {Function}\n */\nfunction speedometer(samplesCount, min) {\n samplesCount = samplesCount || 10;\n const bytes = new Array(samplesCount);\n const timestamps = new Array(samplesCount);\n let head = 0;\n let tail = 0;\n let firstSampleTS;\n\n min = min !== undefined ? min : 1000;\n\n return function push(chunkLength) {\n const now = Date.now();\n\n const startedAt = timestamps[tail];\n\n if (!firstSampleTS) {\n firstSampleTS = now;\n }\n\n bytes[head] = chunkLength;\n timestamps[head] = now;\n\n let i = tail;\n let bytesCount = 0;\n\n while (i !== head) {\n bytesCount += bytes[i++];\n i = i % samplesCount;\n }\n\n head = (head + 1) % samplesCount;\n\n if (head === tail) {\n tail = (tail + 1) % samplesCount;\n }\n\n if (now - firstSampleTS < min) {\n return;\n }\n\n const passed = startedAt && now - startedAt;\n\n return passed ? Math.round(bytesCount * 1000 / passed) : undefined;\n };\n}\n\nexport default speedometer;\n","/**\n * Throttle decorator\n * @param {Function} fn\n * @param {Number} freq\n * @return {Function}\n */\nfunction throttle(fn, freq) {\n let timestamp = 0;\n let threshold = 1000 / freq;\n let lastArgs;\n let timer;\n\n const invoke = (args, now = Date.now()) => {\n timestamp = now;\n lastArgs = null;\n if (timer) {\n clearTimeout(timer);\n timer = null;\n }\n fn(...args);\n }\n\n const throttled = (...args) => {\n const now = Date.now();\n const passed = now - timestamp;\n if ( passed >= threshold) {\n invoke(args, now);\n } else {\n lastArgs = args;\n if (!timer) {\n timer = setTimeout(() => {\n timer = null;\n invoke(lastArgs)\n }, threshold - passed);\n }\n }\n }\n\n const flush = () => lastArgs && invoke(lastArgs);\n\n return [throttled, flush];\n}\n\nexport default throttle;\n","import platform from '../platform/index.js';\n\nexport default platform.hasStandardBrowserEnv ? ((origin, isMSIE) => (url) => {\n url = new URL(url, platform.origin);\n\n return (\n origin.protocol === url.protocol &&\n origin.host === url.host &&\n (isMSIE || origin.port === url.port)\n );\n})(\n new URL(platform.origin),\n platform.navigator && /(msie|trident)/i.test(platform.navigator.userAgent)\n) : () => true;\n","import utils from './../utils.js';\nimport platform from '../platform/index.js';\n\nexport default platform.hasStandardBrowserEnv ?\n\n // Standard browser envs support document.cookie\n {\n write(name, value, expires, path, domain, secure) {\n const cookie = [name + '=' + encodeURIComponent(value)];\n\n utils.isNumber(expires) && cookie.push('expires=' + new Date(expires).toGMTString());\n\n utils.isString(path) && cookie.push('path=' + path);\n\n utils.isString(domain) && cookie.push('domain=' + domain);\n\n secure === true && cookie.push('secure');\n\n document.cookie = cookie.join('; ');\n },\n\n read(name) {\n const match = document.cookie.match(new RegExp('(^|;\\\\s*)(' + name + ')=([^;]*)'));\n return (match ? decodeURIComponent(match[3]) : null);\n },\n\n remove(name) {\n this.write(name, '', Date.now() - 86400000);\n }\n }\n\n :\n\n // Non-standard browser env (web workers, react-native) lack needed support.\n {\n write() {},\n read() {\n return null;\n },\n remove() {}\n };\n\n","'use strict';\n\nimport isAbsoluteURL from '../helpers/isAbsoluteURL.js';\nimport combineURLs from '../helpers/combineURLs.js';\n\n/**\n * Creates a new URL by combining the baseURL with the requestedURL,\n * only when the requestedURL is not already an absolute URL.\n * If the requestURL is absolute, this function returns the requestedURL untouched.\n *\n * @param {string} baseURL The base URL\n * @param {string} requestedURL Absolute or relative URL to combine\n *\n * @returns {string} The combined full path\n */\nexport default function buildFullPath(baseURL, requestedURL, allowAbsoluteUrls) {\n let isRelativeUrl = !isAbsoluteURL(requestedURL);\n if (baseURL && (isRelativeUrl || allowAbsoluteUrls == false)) {\n return combineURLs(baseURL, requestedURL);\n }\n return requestedURL;\n}\n","'use strict';\n\n/**\n * Determines whether the specified URL is absolute\n *\n * @param {string} url The URL to test\n *\n * @returns {boolean} True if the specified URL is absolute, otherwise false\n */\nexport default function isAbsoluteURL(url) {\n // A URL is considered absolute if it begins with \"<scheme>://\" or \"//\" (protocol-relative URL).\n // RFC 3986 defines scheme name as a sequence of characters beginning with a letter and followed\n // by any combination of letters, digits, plus, period, or hyphen.\n return /^([a-z][a-z\\d+\\-.]*:)?\\/\\//i.test(url);\n}\n","'use strict';\n\n/**\n * Creates a new URL by combining the specified URLs\n *\n * @param {string} baseURL The base URL\n * @param {string} relativeURL The relative URL\n *\n * @returns {string} The combined URL\n */\nexport default function combineURLs(baseURL, relativeURL) {\n return relativeURL\n ? baseURL.replace(/\\/?\\/$/, '') + '/' + relativeURL.replace(/^\\/+/, '')\n : baseURL;\n}\n","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosHeaders from \"./AxiosHeaders.js\";\n\nconst headersToObject = (thing) => thing instanceof AxiosHeaders ? { ...thing } : thing;\n\n/**\n * Config-specific merge-function which creates a new config-object\n * by merging two configuration objects together.\n *\n * @param {Object} config1\n * @param {Object} config2\n *\n * @returns {Object} New object resulting from merging config2 to config1\n */\nexport default function mergeConfig(config1, config2) {\n // eslint-disable-next-line no-param-reassign\n config2 = config2 || {};\n const config = {};\n\n function getMergedValue(target, source, prop, caseless) {\n if (utils.isPlainObject(target) && utils.isPlainObject(source)) {\n return utils.merge.call({caseless}, target, source);\n } else if (utils.isPlainObject(source)) {\n return utils.merge({}, source);\n } else if (utils.isArray(source)) {\n return source.slice();\n }\n return source;\n }\n\n // eslint-disable-next-line consistent-return\n function mergeDeepProperties(a, b, prop , caseless) {\n if (!utils.isUndefined(b)) {\n return getMergedValue(a, b, prop , caseless);\n } else if (!utils.isUndefined(a)) {\n return getMergedValue(undefined, a, prop , caseless);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function valueFromConfig2(a, b) {\n if (!utils.isUndefined(b)) {\n return getMergedValue(undefined, b);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function defaultToConfig2(a, b) {\n if (!utils.isUndefined(b)) {\n return getMergedValue(undefined, b);\n } else if (!utils.isUndefined(a)) {\n return getMergedValue(undefined, a);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function mergeDirectKeys(a, b, prop) {\n if (prop in config2) {\n return getMergedValue(a, b);\n } else if (prop in config1) {\n return getMergedValue(undefined, a);\n }\n }\n\n const mergeMap = {\n url: valueFromConfig2,\n method: valueFromConfig2,\n data: valueFromConfig2,\n baseURL: defaultToConfig2,\n transformRequest: defaultToConfig2,\n transformResponse: defaultToConfig2,\n paramsSerializer: defaultToConfig2,\n timeout: defaultToConfig2,\n timeoutMessage: defaultToConfig2,\n withCredentials: defaultToConfig2,\n withXSRFToken: defaultToConfig2,\n adapter: defaultToConfig2,\n responseType: defaultToConfig2,\n xsrfCookieName: defaultToConfig2,\n xsrfHeaderName: defaultToConfig2,\n onUploadProgress: defaultToConfig2,\n onDownloadProgress: defaultToConfig2,\n decompress: defaultToConfig2,\n maxContentLength: defaultToConfig2,\n maxBodyLength: defaultToConfig2,\n beforeRedirect: defaultToConfig2,\n transport: defaultToConfig2,\n httpAgent: defaultToConfig2,\n httpsAgent: defaultToConfig2,\n cancelToken: defaultToConfig2,\n socketPath: defaultToConfig2,\n responseEncoding: defaultToConfig2,\n validateStatus: mergeDirectKeys,\n headers: (a, b , prop) => mergeDeepProperties(headersToObject(a), headersToObject(b),prop, true)\n };\n\n utils.forEach(Object.keys({...config1, ...config2}), function computeConfigValue(prop) {\n const merge = mergeMap[prop] || mergeDeepProperties;\n const configValue = merge(config1[prop], config2[prop], prop);\n (utils.isUndefined(configValue) && merge !== mergeDirectKeys) || (config[prop] = configValue);\n });\n\n return config;\n}\n","import platform from \"../platform/index.js\";\nimport utils from \"../utils.js\";\nimport isURLSameOrigin from \"./isURLSameOrigin.js\";\nimport cookies from \"./cookies.js\";\nimport buildFullPath from \"../core/buildFullPath.js\";\nimport mergeConfig from \"../core/mergeConfig.js\";\nimport AxiosHeaders from \"../core/AxiosHeaders.js\";\nimport buildURL from \"./buildURL.js\";\n\nexport default (config) => {\n const newConfig = mergeConfig({}, config);\n\n let { data, withXSRFToken, xsrfHeaderName, xsrfCookieName, headers, auth } = newConfig;\n\n newConfig.headers = headers = AxiosHeaders.from(headers);\n\n newConfig.url = buildURL(buildFullPath(newConfig.baseURL, newConfig.url, newConfig.allowAbsoluteUrls), config.params, config.paramsSerializer);\n\n // HTTP basic authentication\n if (auth) {\n headers.set('Authorization', 'Basic ' +\n btoa((auth.username || '') + ':' + (auth.password ? unescape(encodeURIComponent(auth.password)) : ''))\n );\n }\n\n if (utils.isFormData(data)) {\n if (platform.hasStandardBrowserEnv || platform.hasStandardBrowserWebWorkerEnv) {\n headers.setContentType(undefined); // browser handles it\n } else if (utils.isFunction(data.getHeaders)) {\n // Node.js FormData (like form-data package)\n const formHeaders = data.getHeaders();\n // Only set safe headers to avoid overwriting security headers\n const allowedHeaders = ['content-type', 'content-length'];\n Object.entries(formHeaders).forEach(([key, val]) => {\n if (allowedHeaders.includes(key.toLowerCase())) {\n headers.set(key, val);\n }\n });\n }\n } \n\n // Add xsrf header\n // This is only done if running in a standard browser environment.\n // Specifically not if we're in a web worker, or react-native.\n\n if (platform.hasStandardBrowserEnv) {\n withXSRFToken && utils.isFunction(withXSRFToken) && (withXSRFToken = withXSRFToken(newConfig));\n\n if (withXSRFToken || (withXSRFToken !== false && isURLSameOrigin(newConfig.url))) {\n // Add xsrf header\n const xsrfValue = xsrfHeaderName && xsrfCookieName && cookies.read(xsrfCookieName);\n\n if (xsrfValue) {\n headers.set(xsrfHeaderName, xsrfValue);\n }\n }\n }\n\n return newConfig;\n}\n\n","import utils from './../utils.js';\nimport settle from './../core/settle.js';\nimport transitionalDefaults from '../defaults/transitional.js';\nimport AxiosError from '../core/AxiosError.js';\nimport CanceledError from '../cancel/CanceledError.js';\nimport parseProtocol from '../helpers/parseProtocol.js';\nimport platform from '../platform/index.js';\nimport AxiosHeaders from '../core/AxiosHeaders.js';\nimport {progressEventReducer} from '../helpers/progressEventReducer.js';\nimport resolveConfig from \"../helpers/resolveConfig.js\";\n\nconst isXHRAdapterSupported = typeof XMLHttpRequest !== 'undefined';\n\nexport default isXHRAdapterSupported && function (config) {\n return new Promise(function dispatchXhrRequest(resolve, reject) {\n const _config = resolveConfig(config);\n let requestData = _config.data;\n const requestHeaders = AxiosHeaders.from(_config.headers).normalize();\n let {responseType, onUploadProgress, onDownloadProgress} = _config;\n let onCanceled;\n let uploadThrottled, downloadThrottled;\n let flushUpload, flushDownload;\n\n function done() {\n flushUpload && flushUpload(); // flush events\n flushDownload && flushDownload(); // flush events\n\n _config.cancelToken && _config.cancelToken.unsubscribe(onCanceled);\n\n _config.signal && _config.signal.removeEventListener('abort', onCanceled);\n }\n\n let request = new XMLHttpRequest();\n\n request.open(_config.method.toUpperCase(), _config.url, true);\n\n // Set the request timeout in MS\n request.timeout = _config.timeout;\n\n function onloadend() {\n if (!request) {\n return;\n }\n // Prepare the response\n const responseHeaders = AxiosHeaders.from(\n 'getAllResponseHeaders' in request && request.getAllResponseHeaders()\n );\n const responseData = !responseType || responseType === 'text' || responseType === 'json' ?\n request.responseText : request.response;\n const response = {\n data: responseData,\n status: request.status,\n statusText: request.statusText,\n headers: responseHeaders,\n config,\n request\n };\n\n settle(function _resolve(value) {\n resolve(value);\n done();\n }, function _reject(err) {\n reject(err);\n done();\n }, response);\n\n // Clean up request\n request = null;\n }\n\n if ('onloadend' in request) {\n // Use onloadend if available\n request.onloadend = onloadend;\n } else {\n // Listen for ready state to emulate onloadend\n request.onreadystatechange = function handleLoad() {\n if (!request || request.readyState !== 4) {\n return;\n }\n\n // The request errored out and we didn't get a response, this will be\n // handled by onerror instead\n // With one exception: request that using file: protocol, most browsers\n // will return status as 0 even though it's a successful request\n if (request.status === 0 && !(request.responseURL && request.responseURL.indexOf('file:') === 0)) {\n return;\n }\n // readystate handler is calling before onerror or ontimeout handlers,\n // so we should call onloadend on the next 'tick'\n setTimeout(onloadend);\n };\n }\n\n // Handle browser request cancellation (as opposed to a manual cancellation)\n request.onabort = function handleAbort() {\n if (!request) {\n return;\n }\n\n reject(new AxiosError('Request aborted', AxiosError.ECONNABORTED, config, request));\n\n // Clean up request\n request = null;\n };\n\n // Handle low level network errors\n request.onerror = function handleError(event) {\n // Browsers deliver a ProgressEvent in XHR onerror\n // (message may be empty; when present, surface it)\n // See https://developer.mozilla.org/docs/Web/API/XMLHttpRequest/error_event\n const msg = event && event.message ? event.message : 'Network Error';\n const err = new AxiosError(msg, AxiosError.ERR_NETWORK, config, request);\n // attach the underlying event for consumers who want details\n err.event = event || null;\n reject(err);\n request = null;\n };\n \n // Handle timeout\n request.ontimeout = function handleTimeout() {\n let timeoutErrorMessage = _config.timeout ? 'timeout of ' + _config.timeout + 'ms exceeded' : 'timeout exceeded';\n const transitional = _config.transitional || transitionalDefaults;\n if (_config.timeoutErrorMessage) {\n timeoutErrorMessage = _config.timeoutErrorMessage;\n }\n reject(new AxiosError(\n timeoutErrorMessage,\n transitional.clarifyTimeoutError ? AxiosError.ETIMEDOUT : AxiosError.ECONNABORTED,\n config,\n request));\n\n // Clean up request\n request = null;\n };\n\n // Remove Content-Type if data is undefined\n requestData === undefined && requestHeaders.setContentType(null);\n\n // Add headers to the request\n if ('setRequestHeader' in request) {\n utils.forEach(requestHeaders.toJSON(), function setRequestHeader(val, key) {\n request.setRequestHeader(key, val);\n });\n }\n\n // Add withCredentials to request if needed\n if (!utils.isUndefined(_config.withCredentials)) {\n request.withCredentials = !!_config.withCredentials;\n }\n\n // Add responseType to request if needed\n if (responseType && responseType !== 'json') {\n request.responseType = _config.responseType;\n }\n\n // Handle progress if needed\n if (onDownloadProgress) {\n ([downloadThrottled, flushDownload] = progressEventReducer(onDownloadProgress, true));\n request.addEventListener('progress', downloadThrottled);\n }\n\n // Not all browsers support upload events\n if (onUploadProgress && request.upload) {\n ([uploadThrottled, flushUpload] = progressEventReducer(onUploadProgress));\n\n request.upload.addEventListener('progress', uploadThrottled);\n\n request.upload.addEventListener('loadend', flushUpload);\n }\n\n if (_config.cancelToken || _config.signal) {\n // Handle cancellation\n // eslint-disable-next-line func-names\n onCanceled = cancel => {\n if (!request) {\n return;\n }\n reject(!cancel || cancel.type ? new CanceledError(null, config, request) : cancel);\n request.abort();\n request = null;\n };\n\n _config.cancelToken && _config.cancelToken.subscribe(onCanceled);\n if (_config.signal) {\n _config.signal.aborted ? onCanceled() : _config.signal.addEventListener('abort', onCanceled);\n }\n }\n\n const protocol = parseProtocol(_config.url);\n\n if (protocol && platform.protocols.indexOf(protocol) === -1) {\n reject(new AxiosError('Unsupported protocol ' + protocol + ':', AxiosError.ERR_BAD_REQUEST, config));\n return;\n }\n\n\n // Send the request\n request.send(requestData || null);\n });\n}\n","'use strict';\n\nexport default function parseProtocol(url) {\n const match = /^([-+\\w]{1,25})(:?\\/\\/|:)/.exec(url);\n return match && match[1] || '';\n}\n","import CanceledError from \"../cancel/CanceledError.js\";\nimport AxiosError from \"../core/AxiosError.js\";\nimport utils from '../utils.js';\n\nconst composeSignals = (signals, timeout) => {\n const {length} = (signals = signals ? signals.filter(Boolean) : []);\n\n if (timeout || length) {\n let controller = new AbortController();\n\n let aborted;\n\n const onabort = function (reason) {\n if (!aborted) {\n aborted = true;\n unsubscribe();\n const err = reason instanceof Error ? reason : this.reason;\n controller.abort(err instanceof AxiosError ? err : new CanceledError(err instanceof Error ? err.message : err));\n }\n }\n\n let timer = timeout && setTimeout(() => {\n timer = null;\n onabort(new AxiosError(`timeout ${timeout} of ms exceeded`, AxiosError.ETIMEDOUT))\n }, timeout)\n\n const unsubscribe = () => {\n if (signals) {\n timer && clearTimeout(timer);\n timer = null;\n signals.forEach(signal => {\n signal.unsubscribe ? signal.unsubscribe(onabort) : signal.removeEventListener('abort', onabort);\n });\n signals = null;\n }\n }\n\n signals.forEach((signal) => signal.addEventListener('abort', onabort));\n\n const {signal} = controller;\n\n signal.unsubscribe = () => utils.asap(unsubscribe);\n\n return signal;\n }\n}\n\nexport default composeSignals;\n","\nexport const streamChunk = function* (chunk, chunkSize) {\n let len = chunk.byteLength;\n\n if (!chunkSize || len < chunkSize) {\n yield chunk;\n return;\n }\n\n let pos = 0;\n let end;\n\n while (pos < len) {\n end = pos + chunkSize;\n yield chunk.slice(pos, end);\n pos = end;\n }\n}\n\nexport const readBytes = async function* (iterable, chunkSize) {\n for await (const chunk of readStream(iterable)) {\n yield* streamChunk(chunk, chunkSize);\n }\n}\n\nconst readStream = async function* (stream) {\n if (stream[Symbol.asyncIterator]) {\n yield* stream;\n return;\n }\n\n const reader = stream.getReader();\n try {\n for (;;) {\n const {done, value} = await reader.read();\n if (done) {\n break;\n }\n yield value;\n }\n } finally {\n await reader.cancel();\n }\n}\n\nexport const trackStream = (stream, chunkSize, onProgress, onFinish) => {\n const iterator = readBytes(stream, chunkSize);\n\n let bytes = 0;\n let done;\n let _onFinish = (e) => {\n if (!done) {\n done = true;\n onFinish && onFinish(e);\n }\n }\n\n return new ReadableStream({\n async pull(controller) {\n try {\n const {done, value} = await iterator.next();\n\n if (done) {\n _onFinish();\n controller.close();\n return;\n }\n\n let len = value.byteLength;\n if (onProgress) {\n let loadedBytes = bytes += len;\n onProgress(loadedBytes);\n }\n controller.enqueue(new Uint8Array(value));\n } catch (err) {\n _onFinish(err);\n throw err;\n }\n },\n cancel(reason) {\n _onFinish(reason);\n return iterator.return();\n }\n }, {\n highWaterMark: 2\n })\n}\n","import platform from \"../platform/index.js\";\nimport utils from \"../utils.js\";\nimport AxiosError from \"../core/AxiosError.js\";\nimport composeSignals from \"../helpers/composeSignals.js\";\nimport {trackStream} from \"../helpers/trackStream.js\";\nimport AxiosHeaders from \"../core/AxiosHeaders.js\";\nimport {progressEventReducer, progressEventDecorator, asyncDecorator} from \"../helpers/progressEventReducer.js\";\nimport resolveConfig from \"../helpers/resolveConfig.js\";\nimport settle from \"../core/settle.js\";\n\nconst DEFAULT_CHUNK_SIZE = 64 * 1024;\n\nconst {isFunction} = utils;\n\nconst globalFetchAPI = (({Request, Response}) => ({\n Request, Response\n}))(utils.global);\n\nconst {\n ReadableStream, TextEncoder\n} = utils.global;\n\n\nconst test = (fn, ...args) => {\n try {\n return !!fn(...args);\n } catch (e) {\n return false\n }\n}\n\nconst factory = (env) => {\n env = utils.merge.call({\n skipUndefined: true\n }, globalFetchAPI, env);\n\n const {fetch: envFetch, Request, Response} = env;\n const isFetchSupported = envFetch ? isFunction(envFetch) : typeof fetch === 'function';\n const isRequestSupported = isFunction(Request);\n const isResponseSupported = isFunction(Response);\n\n if (!isFetchSupported) {\n return false;\n }\n\n const isReadableStreamSupported = isFetchSupported && isFunction(ReadableStream);\n\n const encodeText = isFetchSupported && (typeof TextEncoder === 'function' ?\n ((encoder) => (str) => encoder.encode(str))(new TextEncoder()) :\n async (str) => new Uint8Array(await new Request(str).arrayBuffer())\n );\n\n const supportsRequestStream = isRequestSupported && isReadableStreamSupported && test(() => {\n let duplexAccessed = false;\n\n const hasContentType = new Request(platform.origin, {\n body: new ReadableStream(),\n method: 'POST',\n get duplex() {\n duplexAccessed = true;\n return 'half';\n },\n }).headers.has('Content-Type');\n\n return duplexAccessed && !hasContentType;\n });\n\n const supportsResponseStream = isResponseSupported && isReadableStreamSupported &&\n test(() => utils.isReadableStream(new Response('').body));\n\n const resolvers = {\n stream: supportsResponseStream && ((res) => res.body)\n };\n\n isFetchSupported && ((() => {\n ['text', 'arrayBuffer', 'blob', 'formData', 'stream'].forEach(type => {\n !resolvers[type] && (resolvers[type] = (res, config) => {\n let method = res && res[type];\n\n if (method) {\n return method.call(res);\n }\n\n throw new AxiosError(`Response type '${type}' is not supported`, AxiosError.ERR_NOT_SUPPORT, config);\n })\n });\n })());\n\n const getBodyLength = async (body) => {\n if (body == null) {\n return 0;\n }\n\n if (utils.isBlob(body)) {\n return body.size;\n }\n\n if (utils.isSpecCompliantForm(body)) {\n const _request = new Request(platform.origin, {\n method: 'POST',\n body,\n });\n return (await _request.arrayBuffer()).byteLength;\n }\n\n if (utils.isArrayBufferView(body) || utils.isArrayBuffer(body)) {\n return body.byteLength;\n }\n\n if (utils.isURLSearchParams(body)) {\n body = body + '';\n }\n\n if (utils.isString(body)) {\n return (await encodeText(body)).byteLength;\n }\n }\n\n const resolveBodyLength = async (headers, body) => {\n const length = utils.toFiniteNumber(headers.getContentLength());\n\n return length == null ? getBodyLength(body) : length;\n }\n\n return async (config) => {\n let {\n url,\n method,\n data,\n signal,\n cancelToken,\n timeout,\n onDownloadProgress,\n onUploadProgress,\n responseType,\n headers,\n withCredentials = 'same-origin',\n fetchOptions\n } = resolveConfig(config);\n\n let _fetch = envFetch || fetch;\n\n responseType = responseType ? (responseType + '').toLowerCase() : 'text';\n\n let composedSignal = composeSignals([signal, cancelToken && cancelToken.toAbortSignal()], timeout);\n\n let request = null;\n\n const unsubscribe = composedSignal && composedSignal.unsubscribe && (() => {\n composedSignal.unsubscribe();\n });\n\n let requestContentLength;\n\n try {\n if (\n onUploadProgress && supportsRequestStream && method !== 'get' && method !== 'head' &&\n (requestContentLength = await resolveBodyLength(headers, data)) !== 0\n ) {\n let _request = new Request(url, {\n method: 'POST',\n body: data,\n duplex: \"half\"\n });\n\n let contentTypeHeader;\n\n if (utils.isFormData(data) && (contentTypeHeader = _request.headers.get('content-type'))) {\n headers.setContentType(contentTypeHeader)\n }\n\n if (_request.body) {\n const [onProgress, flush] = progressEventDecorator(\n requestContentLength,\n progressEventReducer(asyncDecorator(onUploadProgress))\n );\n\n data = trackStream(_request.body, DEFAULT_CHUNK_SIZE, onProgress, flush);\n }\n }\n\n if (!utils.isString(withCredentials)) {\n withCredentials = withCredentials ? 'include' : 'omit';\n }\n\n // Cloudflare Workers throws when credentials are defined\n // see https://github.com/cloudflare/workerd/issues/902\n const isCredentialsSupported = isRequestSupported && \"credentials\" in Request.prototype;\n\n const resolvedOptions = {\n ...fetchOptions,\n signal: composedSignal,\n method: method.toUpperCase(),\n headers: headers.normalize().toJSON(),\n body: data,\n duplex: \"half\",\n credentials: isCredentialsSupported ? withCredentials : undefined\n };\n\n request = isRequestSupported && new Request(url, resolvedOptions);\n\n let response = await (isRequestSupported ? _fetch(request, fetchOptions) : _fetch(url, resolvedOptions));\n\n const isStreamResponse = supportsResponseStream && (responseType === 'stream' || responseType === 'response');\n\n if (supportsResponseStream && (onDownloadProgress || (isStreamResponse && unsubscribe))) {\n const options = {};\n\n ['status', 'statusText', 'headers'].forEach(prop => {\n options[prop] = response[prop];\n });\n\n const responseContentLength = utils.toFiniteNumber(response.headers.get('content-length'));\n\n const [onProgress, flush] = onDownloadProgress && progressEventDecorator(\n responseContentLength,\n progressEventReducer(asyncDecorator(onDownloadProgress), true)\n ) || [];\n\n response = new Response(\n trackStream(response.body, DEFAULT_CHUNK_SIZE, onProgress, () => {\n flush && flush();\n unsubscribe && unsubscribe();\n }),\n options\n );\n }\n\n responseType = responseType || 'text';\n\n let responseData = await resolvers[utils.findKey(resolvers, responseType) || 'text'](response, config);\n\n !isStreamResponse && unsubscribe && unsubscribe();\n\n return await new Promise((resolve, reject) => {\n settle(resolve, reject, {\n data: responseData,\n headers: AxiosHeaders.from(response.headers),\n status: response.status,\n statusText: response.statusText,\n config,\n request\n })\n })\n } catch (err) {\n unsubscribe && unsubscribe();\n\n if (err && err.name === 'TypeError' && /Load failed|fetch/i.test(err.message)) {\n throw Object.assign(\n new AxiosError('Network Error', AxiosError.ERR_NETWORK, config, request),\n {\n cause: err.cause || err\n }\n )\n }\n\n throw AxiosError.from(err, err && err.code, config, request);\n }\n }\n}\n\nconst seedCache = new Map();\n\nexport const getFetch = (config) => {\n let env = config ? config.env : {};\n const {fetch, Request, Response} = env;\n const seeds = [\n Request, Response, fetch\n ];\n\n let len = seeds.length, i = len,\n seed, target, map = seedCache;\n\n while (i--) {\n seed = seeds[i];\n target = map.get(seed);\n\n target === undefined && map.set(seed, target = (i ? new Map() : factory(env)))\n\n map = target;\n }\n\n return target;\n};\n\nconst adapter = getFetch();\n\nexport default adapter;\n","import utils from '../utils.js';\nimport httpAdapter from './http.js';\nimport xhrAdapter from './xhr.js';\nimport * as fetchAdapter from './fetch.js';\nimport AxiosError from \"../core/AxiosError.js\";\n\nconst knownAdapters = {\n http: httpAdapter,\n xhr: xhrAdapter,\n fetch: {\n get: fetchAdapter.getFetch,\n }\n}\n\nutils.forEach(knownAdapters, (fn, value) => {\n if (fn) {\n try {\n Object.defineProperty(fn, 'name', {value});\n } catch (e) {\n // eslint-disable-next-line no-empty\n }\n Object.defineProperty(fn, 'adapterName', {value});\n }\n});\n\nconst renderReason = (reason) => `- ${reason}`;\n\nconst isResolvedHandle = (adapter) => utils.isFunction(adapter) || adapter === null || adapter === false;\n\nexport default {\n getAdapter: (adapters, config) => {\n adapters = utils.isArray(adapters) ? adapters : [adapters];\n\n const {length} = adapters;\n let nameOrAdapter;\n let adapter;\n\n const rejectedReasons = {};\n\n for (let i = 0; i < length; i++) {\n nameOrAdapter = adapters[i];\n let id;\n\n adapter = nameOrAdapter;\n\n if (!isResolvedHandle(nameOrAdapter)) {\n adapter = knownAdapters[(id = String(nameOrAdapter)).toLowerCase()];\n\n if (adapter === undefined) {\n throw new AxiosError(`Unknown adapter '${id}'`);\n }\n }\n\n if (adapter && (utils.isFunction(adapter) || (adapter = adapter.get(config)))) {\n break;\n }\n\n rejectedReasons[id || '#' + i] = adapter;\n }\n\n if (!adapter) {\n\n const reasons = Object.entries(rejectedReasons)\n .map(([id, state]) => `adapter ${id} ` +\n (state === false ? 'is not supported by the environment' : 'is not available in the build')\n );\n\n let s = length ?\n (reasons.length > 1 ? 'since :\\n' + reasons.map(renderReason).join('\\n') : ' ' + renderReason(reasons[0])) :\n 'as no adapter specified';\n\n throw new AxiosError(\n `There is no suitable adapter to dispatch the request ` + s,\n 'ERR_NOT_SUPPORT'\n );\n }\n\n return adapter;\n },\n adapters: knownAdapters\n}\n","// eslint-disable-next-line strict\nexport default null;\n","'use strict';\n\nimport transformData from './transformData.js';\nimport isCancel from '../cancel/isCancel.js';\nimport defaults from '../defaults/index.js';\nimport CanceledError from '../cancel/CanceledError.js';\nimport AxiosHeaders from '../core/AxiosHeaders.js';\nimport adapters from \"../adapters/adapters.js\";\n\n/**\n * Throws a `CanceledError` if cancellation has been requested.\n *\n * @param {Object} config The config that is to be used for the request\n *\n * @returns {void}\n */\nfunction throwIfCancellationRequested(config) {\n if (config.cancelToken) {\n config.cancelToken.throwIfRequested();\n }\n\n if (config.signal && config.signal.aborted) {\n throw new CanceledError(null, config);\n }\n}\n\n/**\n * Dispatch a request to the server using the configured adapter.\n *\n * @param {object} config The config that is to be used for the request\n *\n * @returns {Promise} The Promise to be fulfilled\n */\nexport default function dispatchRequest(config) {\n throwIfCancellationRequested(config);\n\n config.headers = AxiosHeaders.from(config.headers);\n\n // Transform request data\n config.data = transformData.call(\n config,\n config.transformRequest\n );\n\n if (['post', 'put', 'patch'].indexOf(config.method) !== -1) {\n config.headers.setContentType('application/x-www-form-urlencoded', false);\n }\n\n const adapter = adapters.getAdapter(config.adapter || defaults.adapter, config);\n\n return adapter(config).then(function onAdapterResolution(response) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n response.data = transformData.call(\n config,\n config.transformResponse,\n response\n );\n\n response.headers = AxiosHeaders.from(response.headers);\n\n return response;\n }, function onAdapterRejection(reason) {\n if (!isCancel(reason)) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n if (reason && reason.response) {\n reason.response.data = transformData.call(\n config,\n config.transformResponse,\n reason.response\n );\n reason.response.headers = AxiosHeaders.from(reason.response.headers);\n }\n }\n\n return Promise.reject(reason);\n });\n}\n","export const VERSION = \"1.12.2\";","'use strict';\n\nimport {VERSION} from '../env/data.js';\nimport AxiosError from '../core/AxiosError.js';\n\nconst validators = {};\n\n// eslint-disable-next-line func-names\n['object', 'boolean', 'number', 'function', 'string', 'symbol'].forEach((type, i) => {\n validators[type] = function validator(thing) {\n return typeof thing === type || 'a' + (i < 1 ? 'n ' : ' ') + type;\n };\n});\n\nconst deprecatedWarnings = {};\n\n/**\n * Transitional option validator\n *\n * @param {function|boolean?} validator - set to false if the transitional option has been removed\n * @param {string?} version - deprecated version / removed since version\n * @param {string?} message - some message with additional info\n *\n * @returns {function}\n */\nvalidators.transitional = function transitional(validator, version, message) {\n function formatMessage(opt, desc) {\n return '[Axios v' + VERSION + '] Transitional option \\'' + opt + '\\'' + desc + (message ? '. ' + message : '');\n }\n\n // eslint-disable-next-line func-names\n return (value, opt, opts) => {\n if (validator === false) {\n throw new AxiosError(\n formatMessage(opt, ' has been removed' + (version ? ' in ' + version : '')),\n AxiosError.ERR_DEPRECATED\n );\n }\n\n if (version && !deprecatedWarnings[opt]) {\n deprecatedWarnings[opt] = true;\n // eslint-disable-next-line no-console\n console.warn(\n formatMessage(\n opt,\n ' has been deprecated since v' + version + ' and will be removed in the near future'\n )\n );\n }\n\n return validator ? validator(value, opt, opts) : true;\n };\n};\n\nvalidators.spelling = function spelling(correctSpelling) {\n return (value, opt) => {\n // eslint-disable-next-line no-console\n console.warn(`${opt} is likely a misspelling of ${correctSpelling}`);\n return true;\n }\n};\n\n/**\n * Assert object's properties type\n *\n * @param {object} options\n * @param {object} schema\n * @param {boolean?} allowUnknown\n *\n * @returns {object}\n */\n\nfunction assertOptions(options, schema, allowUnknown) {\n if (typeof options !== 'object') {\n throw new AxiosError('options must be an object', AxiosError.ERR_BAD_OPTION_VALUE);\n }\n const keys = Object.keys(options);\n let i = keys.length;\n while (i-- > 0) {\n const opt = keys[i];\n const validator = schema[opt];\n if (validator) {\n const value = options[opt];\n const result = value === undefined || validator(value, opt, options);\n if (result !== true) {\n throw new AxiosError('option ' + opt + ' must be ' + result, AxiosError.ERR_BAD_OPTION_VALUE);\n }\n continue;\n }\n if (allowUnknown !== true) {\n throw new AxiosError('Unknown option ' + opt, AxiosError.ERR_BAD_OPTION);\n }\n }\n}\n\nexport default {\n assertOptions,\n validators\n};\n","'use strict';\n\nimport utils from './../utils.js';\nimport buildURL from '../helpers/buildURL.js';\nimport InterceptorManager from './InterceptorManager.js';\nimport dispatchRequest from './dispatchRequest.js';\nimport mergeConfig from './mergeConfig.js';\nimport buildFullPath from './buildFullPath.js';\nimport validator from '../helpers/validator.js';\nimport AxiosHeaders from './AxiosHeaders.js';\n\nconst validators = validator.validators;\n\n/**\n * Create a new instance of Axios\n *\n * @param {Object} instanceConfig The default config for the instance\n *\n * @return {Axios} A new instance of Axios\n */\nclass Axios {\n constructor(instanceConfig) {\n this.defaults = instanceConfig || {};\n this.interceptors = {\n request: new InterceptorManager(),\n response: new InterceptorManager()\n };\n }\n\n /**\n * Dispatch a request\n *\n * @param {String|Object} configOrUrl The config specific for this request (merged with this.defaults)\n * @param {?Object} config\n *\n * @returns {Promise} The Promise to be fulfilled\n */\n async request(configOrUrl, config) {\n try {\n return await this._request(configOrUrl, config);\n } catch (err) {\n if (err instanceof Error) {\n let dummy = {};\n\n Error.captureStackTrace ? Error.captureStackTrace(dummy) : (dummy = new Error());\n\n // slice off the Error: ... line\n const stack = dummy.stack ? dummy.stack.replace(/^.+\\n/, '') : '';\n try {\n if (!err.stack) {\n err.stack = stack;\n // match without the 2 top stack lines\n } else if (stack && !String(err.stack).endsWith(stack.replace(/^.+\\n.+\\n/, ''))) {\n err.stack += '\\n' + stack\n }\n } catch (e) {\n // ignore the case where \"stack\" is an un-writable property\n }\n }\n\n throw err;\n }\n }\n\n _request(configOrUrl, config) {\n /*eslint no-param-reassign:0*/\n // Allow for axios('example/url'[, config]) a la fetch API\n if (typeof configOrUrl === 'string') {\n config = config || {};\n config.url = configOrUrl;\n } else {\n config = configOrUrl || {};\n }\n\n config = mergeConfig(this.defaults, config);\n\n const {transitional, paramsSerializer, headers} = config;\n\n if (transitional !== undefined) {\n validator.assertOptions(transitional, {\n silentJSONParsing: validators.transitional(validators.boolean),\n forcedJSONParsing: validators.transitional(validators.boolean),\n clarifyTimeoutError: validators.transitional(validators.boolean)\n }, false);\n }\n\n if (paramsSerializer != null) {\n if (utils.isFunction(paramsSerializer)) {\n config.paramsSerializer = {\n serialize: paramsSerializer\n }\n } else {\n validator.assertOptions(paramsSerializer, {\n encode: validators.function,\n serialize: validators.function\n }, true);\n }\n }\n\n // Set config.allowAbsoluteUrls\n if (config.allowAbsoluteUrls !== undefined) {\n // do nothing\n } else if (this.defaults.allowAbsoluteUrls !== undefined) {\n config.allowAbsoluteUrls = this.defaults.allowAbsoluteUrls;\n } else {\n config.allowAbsoluteUrls = true;\n }\n\n validator.assertOptions(config, {\n baseUrl: validators.spelling('baseURL'),\n withXsrfToken: validators.spelling('withXSRFToken')\n }, true);\n\n // Set config.method\n config.method = (config.method || this.defaults.method || 'get').toLowerCase();\n\n // Flatten headers\n let contextHeaders = headers && utils.merge(\n headers.common,\n headers[config.method]\n );\n\n headers && utils.forEach(\n ['delete', 'get', 'head', 'post', 'put', 'patch', 'common'],\n (method) => {\n delete headers[method];\n }\n );\n\n config.headers = AxiosHeaders.concat(contextHeaders, headers);\n\n // filter out skipped interceptors\n const requestInterceptorChain = [];\n let synchronousRequestInterceptors = true;\n this.interceptors.request.forEach(function unshiftRequestInterceptors(interceptor) {\n if (typeof interceptor.runWhen === 'function' && interceptor.runWhen(config) === false) {\n return;\n }\n\n synchronousRequestInterceptors = synchronousRequestInterceptors && interceptor.synchronous;\n\n requestInterceptorChain.unshift(interceptor.fulfilled, interceptor.rejected);\n });\n\n const responseInterceptorChain = [];\n this.interceptors.response.forEach(function pushResponseInterceptors(interceptor) {\n responseInterceptorChain.push(interceptor.fulfilled, interceptor.rejected);\n });\n\n let promise;\n let i = 0;\n let len;\n\n if (!synchronousRequestInterceptors) {\n const chain = [dispatchRequest.bind(this), undefined];\n chain.unshift(...requestInterceptorChain);\n chain.push(...responseInterceptorChain);\n len = chain.length;\n\n promise = Promise.resolve(config);\n\n while (i < len) {\n promise = promise.then(chain[i++], chain[i++]);\n }\n\n return promise;\n }\n\n len = requestInterceptorChain.length;\n\n let newConfig = config;\n\n while (i < len) {\n const onFulfilled = requestInterceptorChain[i++];\n const onRejected = requestInterceptorChain[i++];\n try {\n newConfig = onFulfilled(newConfig);\n } catch (error) {\n onRejected.call(this, error);\n break;\n }\n }\n\n try {\n promise = dispatchRequest.call(this, newConfig);\n } catch (error) {\n return Promise.reject(error);\n }\n\n i = 0;\n len = responseInterceptorChain.length;\n\n while (i < len) {\n promise = promise.then(responseInterceptorChain[i++], responseInterceptorChain[i++]);\n }\n\n return promise;\n }\n\n getUri(config) {\n config = mergeConfig(this.defaults, config);\n const fullPath = buildFullPath(config.baseURL, config.url, config.allowAbsoluteUrls);\n return buildURL(fullPath, config.params, config.paramsSerializer);\n }\n}\n\n// Provide aliases for supported request methods\nutils.forEach(['delete', 'get', 'head', 'options'], function forEachMethodNoData(method) {\n /*eslint func-names:0*/\n Axios.prototype[method] = function(url, config) {\n return this.request(mergeConfig(config || {}, {\n method,\n url,\n data: (config || {}).data\n }));\n };\n});\n\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n /*eslint func-names:0*/\n\n function generateHTTPMethod(isForm) {\n return function httpMethod(url, data, config) {\n return this.request(mergeConfig(config || {}, {\n method,\n headers: isForm ? {\n 'Content-Type': 'multipart/form-data'\n } : {},\n url,\n data\n }));\n };\n }\n\n Axios.prototype[method] = generateHTTPMethod();\n\n Axios.prototype[method + 'Form'] = generateHTTPMethod(true);\n});\n\nexport default Axios;\n","const HttpStatusCode = {\n Continue: 100,\n SwitchingProtocols: 101,\n Processing: 102,\n EarlyHints: 103,\n Ok: 200,\n Created: 201,\n Accepted: 202,\n NonAuthoritativeInformation: 203,\n NoContent: 204,\n ResetContent: 205,\n PartialContent: 206,\n MultiStatus: 207,\n AlreadyReported: 208,\n ImUsed: 226,\n MultipleChoices: 300,\n MovedPermanently: 301,\n Found: 302,\n SeeOther: 303,\n NotModified: 304,\n UseProxy: 305,\n Unused: 306,\n TemporaryRedirect: 307,\n PermanentRedirect: 308,\n BadRequest: 400,\n Unauthorized: 401,\n PaymentRequired: 402,\n Forbidden: 403,\n NotFound: 404,\n MethodNotAllowed: 405,\n NotAcceptable: 406,\n ProxyAuthenticationRequired: 407,\n RequestTimeout: 408,\n Conflict: 409,\n Gone: 410,\n LengthRequired: 411,\n PreconditionFailed: 412,\n PayloadTooLarge: 413,\n UriTooLong: 414,\n UnsupportedMediaType: 415,\n RangeNotSatisfiable: 416,\n ExpectationFailed: 417,\n ImATeapot: 418,\n MisdirectedRequest: 421,\n UnprocessableEntity: 422,\n Locked: 423,\n FailedDependency: 424,\n TooEarly: 425,\n UpgradeRequired: 426,\n PreconditionRequired: 428,\n TooManyRequests: 429,\n RequestHeaderFieldsTooLarge: 431,\n UnavailableForLegalReasons: 451,\n InternalServerError: 500,\n NotImplemented: 501,\n BadGateway: 502,\n ServiceUnavailable: 503,\n GatewayTimeout: 504,\n HttpVersionNotSupported: 505,\n VariantAlsoNegotiates: 506,\n InsufficientStorage: 507,\n LoopDetected: 508,\n NotExtended: 510,\n NetworkAuthenticationRequired: 511,\n};\n\nObject.entries(HttpStatusCode).forEach(([key, value]) => {\n HttpStatusCode[value] = key;\n});\n\nexport default HttpStatusCode;\n","'use strict';\n\nimport utils from './utils.js';\nimport bind from './helpers/bind.js';\nimport Axios from './core/Axios.js';\nimport mergeConfig from './core/mergeConfig.js';\nimport defaults from './defaults/index.js';\nimport formDataToJSON from './helpers/formDataToJSON.js';\nimport CanceledError from './cancel/CanceledError.js';\nimport CancelToken from './cancel/CancelToken.js';\nimport isCancel from './cancel/isCancel.js';\nimport {VERSION} from './env/data.js';\nimport toFormData from './helpers/toFormData.js';\nimport AxiosError from './core/AxiosError.js';\nimport spread from './helpers/spread.js';\nimport isAxiosError from './helpers/isAxiosError.js';\nimport AxiosHeaders from \"./core/AxiosHeaders.js\";\nimport adapters from './adapters/adapters.js';\nimport HttpStatusCode from './helpers/HttpStatusCode.js';\n\n/**\n * Create an instance of Axios\n *\n * @param {Object} defaultConfig The default config for the instance\n *\n * @returns {Axios} A new instance of Axios\n */\nfunction createInstance(defaultConfig) {\n const context = new Axios(defaultConfig);\n const instance = bind(Axios.prototype.request, context);\n\n // Copy axios.prototype to instance\n utils.extend(instance, Axios.prototype, context, {allOwnKeys: true});\n\n // Copy context to instance\n utils.extend(instance, context, null, {allOwnKeys: true});\n\n // Factory for creating new instances\n instance.create = function create(instanceConfig) {\n return createInstance(mergeConfig(defaultConfig, instanceConfig));\n };\n\n return instance;\n}\n\n// Create the default instance to be exported\nconst axios = createInstance(defaults);\n\n// Expose Axios class to allow class inheritance\naxios.Axios = Axios;\n\n// Expose Cancel & CancelToken\naxios.CanceledError = CanceledError;\naxios.CancelToken = CancelToken;\naxios.isCancel = isCancel;\naxios.VERSION = VERSION;\naxios.toFormData = toFormData;\n\n// Expose AxiosError class\naxios.AxiosError = AxiosError;\n\n// alias for CanceledError for backward compatibility\naxios.Cancel = axios.CanceledError;\n\n// Expose all/spread\naxios.all = function all(promises) {\n return Promise.all(promises);\n};\n\naxios.spread = spread;\n\n// Expose isAxiosError\naxios.isAxiosError = isAxiosError;\n\n// Expose mergeConfig\naxios.mergeConfig = mergeConfig;\n\naxios.AxiosHeaders = AxiosHeaders;\n\naxios.formToJSON = thing => formDataToJSON(utils.isHTMLForm(thing) ? new FormData(thing) : thing);\n\naxios.getAdapter = adapters.getAdapter;\n\naxios.HttpStatusCode = HttpStatusCode;\n\naxios.default = axios;\n\n// this module should only have a default export\nexport default axios\n","'use strict';\n\nimport CanceledError from './CanceledError.js';\n\n/**\n * A `CancelToken` is an object that can be used to request cancellation of an operation.\n *\n * @param {Function} executor The executor function.\n *\n * @returns {CancelToken}\n */\nclass CancelToken {\n constructor(executor) {\n if (typeof executor !== 'function') {\n throw new TypeError('executor must be a function.');\n }\n\n let resolvePromise;\n\n this.promise = new Promise(function promiseExecutor(resolve) {\n resolvePromise = resolve;\n });\n\n const token = this;\n\n // eslint-disable-next-line func-names\n this.promise.then(cancel => {\n if (!token._listeners) return;\n\n let i = token._listeners.length;\n\n while (i-- > 0) {\n token._listeners[i](cancel);\n }\n token._listeners = null;\n });\n\n // eslint-disable-next-line func-names\n this.promise.then = onfulfilled => {\n let _resolve;\n // eslint-disable-next-line func-names\n const promise = new Promise(resolve => {\n token.subscribe(resolve);\n _resolve = resolve;\n }).then(onfulfilled);\n\n promise.cancel = function reject() {\n token.unsubscribe(_resolve);\n };\n\n return promise;\n };\n\n executor(function cancel(message, config, request) {\n if (token.reason) {\n // Cancellation has already been requested\n return;\n }\n\n token.reason = new CanceledError(message, config, request);\n resolvePromise(token.reason);\n });\n }\n\n /**\n * Throws a `CanceledError` if cancellation has been requested.\n */\n throwIfRequested() {\n if (this.reason) {\n throw this.reason;\n }\n }\n\n /**\n * Subscribe to the cancel signal\n */\n\n subscribe(listener) {\n if (this.reason) {\n listener(this.reason);\n return;\n }\n\n if (this._listeners) {\n this._listeners.push(listener);\n } else {\n this._listeners = [listener];\n }\n }\n\n /**\n * Unsubscribe from the cancel signal\n */\n\n unsubscribe(listener) {\n if (!this._listeners) {\n return;\n }\n const index = this._listeners.indexOf(listener);\n if (index !== -1) {\n this._listeners.splice(index, 1);\n }\n }\n\n toAbortSignal() {\n const controller = new AbortController();\n\n const abort = (err) => {\n controller.abort(err);\n };\n\n this.subscribe(abort);\n\n controller.signal.unsubscribe = () => this.unsubscribe(abort);\n\n return controller.signal;\n }\n\n /**\n * Returns an object that contains a new `CancelToken` and a function that, when called,\n * cancels the `CancelToken`.\n */\n static source() {\n let cancel;\n const token = new CancelToken(function executor(c) {\n cancel = c;\n });\n return {\n token,\n cancel\n };\n }\n}\n\nexport default CancelToken;\n","'use strict';\n\n/**\n * Syntactic sugar for invoking a function and expanding an array for arguments.\n *\n * Common use case would be to use `Function.prototype.apply`.\n *\n * ```js\n * function f(x, y, z) {}\n * var args = [1, 2, 3];\n * f.apply(null, args);\n * ```\n *\n * With `spread` this example can be re-written.\n *\n * ```js\n * spread(function(x, y, z) {})([1, 2, 3]);\n * ```\n *\n * @param {Function} callback\n *\n * @returns {Function}\n */\nexport default function spread(callback) {\n return function wrap(arr) {\n return callback.apply(null, arr);\n };\n}\n","'use strict';\n\nimport utils from './../utils.js';\n\n/**\n * Determines whether the payload is an error thrown by Axios\n *\n * @param {*} payload The value to test\n *\n * @returns {boolean} True if the payload is an error thrown by Axios, otherwise false\n */\nexport default function isAxiosError(payload) {\n return utils.isObject(payload) && (payload.isAxiosError === true);\n}\n","import axios from './lib/axios.js';\n\n// This module is intended to unwrap Axios default export as named.\n// Keep top-level export same with static properties\n// so that it can keep same with es module or cjs\nconst {\n Axios,\n AxiosError,\n CanceledError,\n isCancel,\n CancelToken,\n VERSION,\n all,\n Cancel,\n isAxiosError,\n spread,\n toFormData,\n AxiosHeaders,\n HttpStatusCode,\n formToJSON,\n getAdapter,\n mergeConfig\n} = axios;\n\nexport {\n axios as default,\n Axios,\n AxiosError,\n CanceledError,\n isCancel,\n CancelToken,\n VERSION,\n all,\n Cancel,\n isAxiosError,\n spread,\n toFormData,\n AxiosHeaders,\n HttpStatusCode,\n formToJSON,\n getAdapter,\n mergeConfig\n}\n","/**\r\n * Environment Configuration for Funhi Chart\r\n * \r\n * This file provides configuration for the chart component\r\n * Users can override these values by passing them as props\r\n */\r\n\r\nexport const API_CONFIG = {\r\n // Backend API base URL - users should provide this\r\n BASE_URL: typeof window !== 'undefined' && (window as any).FUNHI_CHART_API_URL \r\n ? (window as any).FUNHI_CHART_API_URL \r\n : process.env.NEXT_PUBLIC_BACKEND_URL || '',\r\n\r\n // API request timeout in milliseconds\r\n TIMEOUT: 10000,\r\n\r\n // Retry configuration\r\n MAX_RETRIES: 3,\r\n RETRY_DELAY: 1000,\r\n} as const;\r\n\r\n","/**\r\n * Candle Storage Service\r\n * Handles saving and retrieving candles from database via API\r\n * Replaces localStorage with database storage for persistent candle data\r\n */\r\n\r\nimport axios from 'axios';\r\nimport { API_CONFIG } from '../config/environment';\r\n\r\nexport interface CandleData {\r\n time: number; // Unix timestamp in seconds\r\n open: number;\r\n high: number;\r\n low: number;\r\n close: number;\r\n volume: number;\r\n}\r\n\r\nexport interface SaveCandlesRequest {\r\n mint: string;\r\n candles: CandleData[];\r\n timeFrame?: number; // in seconds, defaults to 60 (1 minute)\r\n}\r\n\r\nexport interface GetCandlesRequest {\r\n mint: string;\r\n timeFrame?: number; // in seconds, defaults to 60 (1 minute)\r\n limit?: number; // max number of candles to retrieve, defaults to 200\r\n}\r\n\r\nexport interface SaveCandleRequest {\r\n mint: string;\r\n candle: CandleData;\r\n timeFrame?: number; // in seconds, defaults to 60 (1 minute)\r\n}\r\n\r\nclass CandleStorageService {\r\n private readonly baseURL = `${API_CONFIG.BASE_URL}/api/ohlcv`;\r\n private savingQueue: Map<string, { candles: CandleData[], timeout: ReturnType<typeof setTimeout> }> = new Map();\r\n private readonly BATCH_DELAY = 5000; // 5 seconds - batch candles before saving\r\n private readonly BATCH_SIZE = 50; // Save when we reach this many candles\r\n\r\n /**\r\n * Save multiple candles to database\r\n * Uses batching to reduce API calls\r\n */\r\n async saveCandles(request: SaveCandlesRequest): Promise<boolean> {\r\n try {\r\n const { mint, candles, timeFrame = 60 } = request;\r\n\r\n if (!mint || !candles || candles.length === 0) {\r\n console.warn('⚠️ [CandleStorage] Invalid save request:', request);\r\n return false;\r\n }\r\n\r\n const response = await axios.post(`${this.baseURL}/candles/save`, {\r\n mint,\r\n candles,\r\n timeFrame\r\n });\r\n\r\n if (response.data.success) {\r\n console.log(`💾 [CandleStorage] Saved ${candles.length} candles for ${mint}`);\r\n return true;\r\n }\r\n\r\n return false;\r\n } catch (error) {\r\n console.error('❌ [CandleStorage] Error saving candles:', error);\r\n return false;\r\n }\r\n }\r\n\r\n /**\r\n * Save a single candle to database\r\n * Batches candles to reduce API calls\r\n */\r\n async saveCandle(request: SaveCandleRequest): Promise<boolean> {\r\n try {\r\n const { mint, candle, timeFrame = 60 } = request;\r\n\r\n if (!mint || !candle) {\r\n console.warn('⚠️ [CandleStorage] Invalid save request:', request);\r\n return false;\r\n }\r\n\r\n // Add to batching queue\r\n const queueKey = `${mint}_${timeFrame}`;\r\n const existingQueue = this.savingQueue.get(queueKey);\r\n\r\n if (existingQueue) {\r\n // Clear existing timeout\r\n clearTimeout(existingQueue.timeout);\r\n \r\n // Add candle to queue\r\n existingQueue.candles.push(candle);\r\n\r\n // If we've reached batch size, save immediately\r\n if (existingQueue.candles.length >= this.BATCH_SIZE) {\r\n await this.flushQueue(queueKey, mint, timeFrame);\r\n } else {\r\n // Otherwise, set new timeout\r\n existingQueue.timeout = setTimeout(() => {\r\n this.flushQueue(queueKey, mint, timeFrame);\r\n }, this.BATCH_DELAY);\r\n }\r\n } else {\r\n // Create new queue entry\r\n const timeout = setTimeout(() => {\r\n this.flushQueue(queueKey, mint, timeFrame);\r\n }, this.BATCH_DELAY);\r\n\r\n this.savingQueue.set(queueKey, {\r\n candles: [candle],\r\n timeout\r\n });\r\n }\r\n\r\n return true;\r\n } catch (error) {\r\n console.error('❌ [CandleStorage] Error queuing candle:', error);\r\n return false;\r\n }\r\n }\r\n\r\n /**\r\n * Flush the batching queue and save to database\r\n */\r\n private async flushQueue(queueKey: string, mint: string, timeFrame: number): Promise<void> {\r\n const queue = this.savingQueue.get(queueKey);\r\n \r\n if (!queue || queue.candles.length === 0) {\r\n return;\r\n }\r\n\r\n // Remove from queue\r\n this.savingQueue.delete(queueKey);\r\n\r\n // Save to database\r\n await this.saveCandles({\r\n mint,\r\n candles: queue.candles,\r\n timeFrame\r\n });\r\n }\r\n\r\n /**\r\n * Get candles from database\r\n */\r\n async getCandles(request: GetCandlesRequest): Promise<CandleData[]> {\r\n try {\r\n const { mint, timeFrame = 60, limit = 50000 } = request;\r\n\r\n if (!mint) {\r\n console.warn('⚠️ [CandleStorage] Invalid get request:', request);\r\n return [];\r\n }\r\n\r\n const response = await axios.get(`${this.baseURL}/candles/${mint}`, {\r\n params: {\r\n timeFrame,\r\n limit\r\n },\r\n // Add timeout to prevent hanging requests\r\n timeout: 8000, // 8 seconds\r\n // Validate response status\r\n validateStatus: (status) => status >= 200 && status < 500\r\n });\r\n\r\n if (response.data.success && response.data.data && response.data.data.candles) {\r\n const candleCount = response.data.data.candles.length;\r\n if (candleCount > 0) {\r\n console.log(`✅ [CandleStorage] Retrieved ${candleCount} candles for ${mint}`);\r\n } else {\r\n console.log(`ℹ️ [CandleStorage] No candles found for ${mint} in database`);\r\n }\r\n return response.data.data.candles;\r\n }\r\n\r\n // Handle warning from backend\r\n if (response.data.warning) {\r\n console.warn(`⚠️ [CandleStorage] ${response.data.warning}`);\r\n }\r\n\r\n return [];\r\n } catch (error: any) {\r\n // Log more detailed error information\r\n if (error.code === 'ECONNABORTED') {\r\n console.error('❌ [CandleStorage] Request timeout getting candles for', request.mint);\r\n } else if (error.response) {\r\n console.error('❌ [CandleStorage] Server error getting candles:', error.response.status, error.response.data);\r\n } else if (error.request) {\r\n console.error('❌ [CandleStorage] Network error getting candles - no response received');\r\n } else {\r\n console.error('❌ [CandleStorage] Error getting candles:', error.message);\r\n }\r\n return [];\r\n }\r\n }\r\n\r\n /**\r\n * Flush all pending queues before component unmount\r\n */\r\n async flushAll(): Promise<void> {\r\n const flushPromises: Promise<void>[] = [];\r\n\r\n for (const [queueKey, queue] of this.savingQueue.entries()) {\r\n clearTimeout(queue.timeout);\r\n const [mint, timeFrameStr] = queueKey.split('_');\r\n const timeFrame = parseInt(timeFrameStr);\r\n flushPromises.push(this.flushQueue(queueKey, mint, timeFrame));\r\n }\r\n\r\n await Promise.all(flushPromises);\r\n }\r\n}\r\n\r\n// Export singleton instance\r\nexport const candleStorageService = new CandleStorageService();\r\n\r\n","/**\r\n * CandleStorageAdapter - Handles loading/saving candles (wrapper around existing service)\r\n */\r\nimport { CandleData } from '../core/types';\r\nimport { candleStorageService } from '../services/candleStorage';\r\n\r\nexport class CandleStorageAdapter {\r\n /**\r\n * Loads candles from storage\r\n */\r\n async loadCandles(\r\n mint: string, \r\n timeframeSeconds: number, \r\n limit?: number\r\n ): Promise<CandleData[]> {\r\n try {\r\n const effectiveLimit = limit ?? Number.MAX_SAFE_INTEGER;\r\n \r\n const candles = await candleStorageService.getCandles({\r\n mint,\r\n timeFrame: timeframeSeconds,\r\n limit: effectiveLimit\r\n });\r\n\r\n // Remove duplicates and validate\r\n const uniqueCandles = candles.reduce((acc, candle) => {\r\n const existingIndex = acc.findIndex(c => c.time === candle.time);\r\n if (existingIndex >= 0) {\r\n acc[existingIndex] = candle;\r\n } else {\r\n acc.push(candle);\r\n }\r\n return acc;\r\n }, [] as CandleData[]);\r\n\r\n return uniqueCandles.sort((a, b) => a.time - b.time);\r\n } catch (error: any) {\r\n console.error(`❌ [CandleStorageAdapter] Error loading candles:`, error);\r\n return [];\r\n }\r\n }\r\n\r\n /**\r\n * Saves candles to storage (if needed in future)\r\n */\r\n async saveCandles(\r\n mint: string, \r\n timeframeSeconds: number, \r\n candles: CandleData[]\r\n ): Promise<void> {\r\n try {\r\n await candleStorageService.saveCandles({\r\n mint,\r\n timeFrame: timeframeSeconds,\r\n candles\r\n });\r\n } catch (error: any) {\r\n console.error(`❌ [CandleStorageAdapter] Error saving candles:`, error);\r\n }\r\n }\r\n}\r\n\r\n","/**\r\n * RealTimeUpdateHandler - Handles real-time price updates and WebSocket events\r\n */\r\nimport { TimeframeManager } from '../core/TimeframeManager';\r\nimport { CandleData } from '../core/types';\r\n\r\nexport class RealTimeUpdateHandler {\r\n private timeframeManager: TimeframeManager;\r\n private debounceMs: number = 50;\r\n private lastUpdate: number = 0;\r\n\r\n constructor(timeframeManager: TimeframeManager) {\r\n this.timeframeManager = timeframeManager;\r\n }\r\n\r\n /**\r\n * Handles price update from real-time data\r\n */\r\n handlePriceUpdate(price: number, timestamp: number): void {\r\n // Debounce check\r\n if (!this.debounce(timestamp)) {\r\n return;\r\n }\r\n\r\n // Update all timeframes\r\n this.timeframeManager.updateAll(price, timestamp);\r\n }\r\n\r\n /**\r\n * Handles WebSocket update with pre-calculated candles\r\n */\r\n handleSocketUpdate(data: { mint: string; candles: Record<string, any> }, mint: string): void {\r\n if (data.mint !== mint) return;\r\n\r\n if (data.candles) {\r\n // Update each timeframe from backend data\r\n Object.entries(data.candles).forEach(([timeframeKey, backendCandle]) => {\r\n const timeframeSeconds = this.getTimeframeSeconds(timeframeKey);\r\n if (timeframeSeconds) {\r\n const currentTime = Math.floor(Date.now() / 1000);\r\n const currentBucket = Math.floor(currentTime / timeframeSeconds) * timeframeSeconds;\r\n \r\n // Only update if it's the current bucket\r\n if (backendCandle.time === currentBucket) {\r\n const candleData: CandleData = {\r\n time: backendCandle.time,\r\n open: backendCandle.open,\r\n high: backendCandle.high || backendCandle.open,\r\n low: backendCandle.low || backendCandle.open,\r\n close: backendCandle.close,\r\n volume: backendCandle.volume || 0\r\n };\r\n\r\n this.timeframeManager.updateFromExternal(timeframeSeconds, candleData, currentBucket);\r\n }\r\n }\r\n });\r\n }\r\n }\r\n\r\n /**\r\n * Debounce check\r\n */\r\n private debounce(timestamp: number): boolean {\r\n const now = Date.now();\r\n if (this.lastUpdate && (now - this.lastUpdate) < this.debounceMs) {\r\n return false;\r\n }\r\n this.lastUpdate = now;\r\n return true;\r\n }\r\n\r\n /**\r\n * Converts timeframe key to seconds\r\n */\r\n private getTimeframeSeconds(key: string): number | null {\r\n const map: Record<string, number> = {\r\n '1m': 60,\r\n '5m': 300,\r\n '15m': 900,\r\n '1h': 3600,\r\n '4h': 14400,\r\n '1d': 86400\r\n };\r\n return map[key] || null;\r\n }\r\n}\r\n\r\n","/**\r\n * FunhiChartController - Main orchestrator that coordinates all components\r\n */\r\nimport { ChartRenderer, ChartOptions } from './ChartRenderer';\r\nimport { TimeframeManager } from './TimeframeManager';\r\nimport { CandleStorageAdapter } from '../adapters/CandleStorageAdapter';\r\nimport { RealTimeUpdateHandler } from '../handlers/RealTimeUpdateHandler';\r\nimport { CandleData, TimeFrame } from './types';\r\n\r\nexport interface ControllerConfig {\r\n mint: string;\r\n ticker?: string;\r\n tokenName?: string;\r\n timeframes: TimeFrame[];\r\n container: HTMLDivElement;\r\n formatPrice: (value: number) => string;\r\n}\r\n\r\nexport class FunhiChartController {\r\n private chartRenderer: ChartRenderer;\r\n private timeframeManager: TimeframeManager;\r\n private storageAdapter: CandleStorageAdapter;\r\n private updateHandler: RealTimeUpdateHandler;\r\n private currentTimeframe: TimeFrame;\r\n private config: ControllerConfig;\r\n\r\n constructor(config: ControllerConfig) {\r\n this.config = config;\r\n this.currentTimeframe = config.timeframes[0];\r\n\r\n // Initialize components\r\n this.timeframeManager = new TimeframeManager(config.timeframes);\r\n this.storageAdapter = new CandleStorageAdapter();\r\n this.updateHandler = new RealTimeUpdateHandler(this.timeframeManager);\r\n\r\n // Initialize chart renderer\r\n const chartOptions: ChartOptions = {\r\n mint: config.mint,\r\n ticker: config.ticker,\r\n formatPrice: config.formatPrice\r\n };\r\n this.chartRenderer = new ChartRenderer(config.container, chartOptions);\r\n }\r\n\r\n /**\r\n * Initializes the chart and loads initial data\r\n */\r\n async initialize(): Promise<void> {\r\n // Initialize chart\r\n this.chartRenderer.initialize();\r\n\r\n // Load candles for current timeframe\r\n await this.loadTimeframeData(this.currentTimeframe.seconds);\r\n\r\n // Update chart with loaded data\r\n const candles = this.getCurrentCandles();\r\n if (candles.length > 0) {\r\n this.chartRenderer.updateData(candles);\r\n }\r\n }\r\n\r\n /**\r\n * Loads candles for a specific timeframe\r\n */\r\n async loadTimeframeData(timeframeSeconds: number): Promise<void> {\r\n const candles = await this.storageAdapter.loadCandles(\r\n this.config.mint,\r\n timeframeSeconds\r\n );\r\n\r\n if (candles.length > 0) {\r\n this.timeframeManager.loadCandles(timeframeSeconds, candles);\r\n }\r\n }\r\n\r\n /**\r\n * Updates price for all timeframes\r\n */\r\n updatePrice(price: number): void {\r\n const timestamp = Date.now();\r\n this.updateHandler.handlePriceUpdate(price, timestamp);\r\n\r\n // Update chart for current timeframe\r\n const candles = this.getCurrentCandles();\r\n if (candles.length > 0) {\r\n this.chartRenderer.updateData(candles);\r\n }\r\n }\r\n\r\n /**\r\n * Handles WebSocket update\r\n */\r\n handleSocketUpdate(data: { mint: string; candles: Record<string, any> }): void {\r\n this.updateHandler.handleSocketUpdate(data, this.config.mint);\r\n\r\n // Update chart for current timeframe\r\n const candles = this.getCurrentCandles();\r\n if (candles.length > 0) {\r\n this.chartRenderer.updateData(candles);\r\n }\r\n }\r\n\r\n /**\r\n * Switches to a different timeframe\r\n */\r\n async switchTimeframe(seconds: number): Promise<void> {\r\n const timeframe = this.config.timeframes.find(tf => tf.seconds === seconds);\r\n if (!timeframe) {\r\n console.warn(`⚠️ [FunhiChartController] Timeframe ${seconds}s not found`);\r\n return;\r\n }\r\n\r\n // Check if we need to load data\r\n const candles = this.timeframeManager.getCandles(seconds);\r\n if (candles.length === 0) {\r\n await this.loadTimeframeData(seconds);\r\n }\r\n\r\n // Update current timeframe\r\n this.currentTimeframe = timeframe;\r\n\r\n // Update chart\r\n const updatedCandles = this.getCurrentCandles();\r\n if (updatedCandles.length > 0) {\r\n this.chartRenderer.updateData(updatedCandles);\r\n }\r\n }\r\n\r\n /**\r\n * Gets candles for current timeframe\r\n */\r\n getCurrentCandles(): CandleData[] {\r\n return this.timeframeManager.getCandles(this.currentTimeframe.seconds);\r\n }\r\n\r\n /**\r\n * Gets current timeframe\r\n */\r\n getCurrentTimeframe(): TimeFrame {\r\n return this.currentTimeframe;\r\n }\r\n\r\n /**\r\n * Gets current candle for a specific timeframe\r\n */\r\n getCurrentCandle(seconds: number): CandleData | null {\r\n return this.timeframeManager.getCurrentCandle(seconds);\r\n }\r\n\r\n /**\r\n * Resizes the chart\r\n */\r\n resize(): void {\r\n this.chartRenderer.resize();\r\n }\r\n\r\n /**\r\n * Destroys the controller and cleans up resources\r\n */\r\n destroy(): void {\r\n this.chartRenderer.destroy();\r\n this.timeframeManager.reset();\r\n }\r\n}\r\n\r\n","import { useCallback, useState, useEffect } from 'react';\r\nimport { Socket } from 'socket.io-client';\r\n\r\ninterface OHLCVCandle {\r\n time: number;\r\n open: number;\r\n high: number;\r\n low: number;\r\n close: number;\r\n volume: number;\r\n}\r\n\r\ninterface OHLCVInitialData {\r\n mint: string;\r\n timeFrame: number;\r\n data: OHLCVCandle[];\r\n timestamp: number;\r\n error?: string;\r\n}\r\n\r\ninterface OHLCVUpdateData {\r\n mint: string;\r\n timeFrame: number;\r\n candle: OHLCVCandle;\r\n timestamp: number;\r\n}\r\n\r\ninterface OHLCVNewCandleData {\r\n mint: string;\r\n timeFrame: number;\r\n candle: OHLCVCandle;\r\n timestamp: number;\r\n}\r\n\r\n/**\r\n * Hook to manage socket connection\r\n * This is a simplified version for the NPM package\r\n * Users should provide their own socket instance via props\r\n */\r\nexport const useSocket = (socketInstance?: Socket | null) => {\r\n const [socket] = useState<Socket | null>(socketInstance || null);\r\n const [isConnected, setIsConnected] = useState(false);\r\n const [isConnecting, setIsConnecting] = useState(false);\r\n\r\n // Track connection state\r\n useEffect(() => {\r\n if (!socket) {\r\n setIsConnected(false);\r\n setIsConnecting(false);\r\n return;\r\n }\r\n\r\n setIsConnecting(true);\r\n\r\n const handleConnect = () => {\r\n console.log('✅ [useSocket] Connected to Socket.IO server');\r\n setIsConnected(true);\r\n setIsConnecting(false);\r\n };\r\n\r\n const handleDisconnect = () => {\r\n console.log('🔌 [useSocket] Disconnected from Socket.IO server');\r\n setIsConnected(false);\r\n setIsConnecting(false);\r\n };\r\n\r\n const handleConnectError = (error: any) => {\r\n console.error('❌ [useSocket] Connection error:', error);\r\n setIsConnecting(false);\r\n };\r\n\r\n // Set initial state\r\n if (socket.connected) {\r\n setIsConnected(true);\r\n setIsConnecting(false);\r\n }\r\n\r\n // Add event listeners\r\n socket.on('connect', handleConnect);\r\n socket.on('disconnect', handleDisconnect);\r\n socket.on('connect_error', handleConnectError);\r\n\r\n return () => {\r\n socket.off('connect', handleConnect);\r\n socket.off('disconnect', handleDisconnect);\r\n socket.off('connect_error', handleConnectError);\r\n };\r\n }, [socket]);\r\n\r\n // Connect function (no-op since connection is managed by provider)\r\n const connect = useCallback(() => {\r\n console.log('🔍 [useSocket] Connect called - connection managed by provider');\r\n }, []);\r\n\r\n // Disconnect function (no-op since connection is managed by provider)\r\n const disconnect = useCallback(() => {\r\n console.log('🔍 [useSocket] Disconnect called - connection managed by provider');\r\n }, []);\r\n\r\n // Subscribe to OHLCV updates\r\n const subscribeToOHLCV = useCallback((\r\n mint: string, \r\n timeFrame: number = 60,\r\n onInitialData?: (data: OHLCVInitialData) => void,\r\n onUpdate?: (data: OHLCVUpdateData) => void,\r\n onNewCandle?: (data: OHLCVNewCandleData) => void\r\n ) => {\r\n if (!socket?.connected) {\r\n console.warn('⚠️ [useSocket] Socket not connected, cannot subscribe');\r\n return false;\r\n }\r\n\r\n try {\r\n // Subscribe to OHLCV updates\r\n socket.emit('ohlcv:subscribe', { mint, timeFrame });\r\n\r\n // Listen for initial data\r\n if (onInitialData) {\r\n socket.on('ohlcv:initial', onInitialData);\r\n }\r\n\r\n // Listen for updates\r\n if (onUpdate) {\r\n socket.on('ohlcv:update', onUpdate);\r\n }\r\n\r\n // Listen for new candles\r\n if (onNewCandle) {\r\n socket.on('ohlcv:newCandle', onNewCandle);\r\n }\r\n\r\n console.log(`📊 [useSocket] Subscribed to OHLCV updates for ${mint} (${timeFrame}s)`);\r\n return true;\r\n\r\n } catch (error) {\r\n console.error('❌ [useSocket] Failed to subscribe to OHLCV:', error);\r\n return false;\r\n }\r\n }, [socket]);\r\n\r\n // Unsubscribe from OHLCV updates\r\n const unsubscribeFromOHLCV = useCallback((\r\n mint: string, \r\n timeFrame: number = 60,\r\n onInitialData?: (data: OHLCVInitialData) => void,\r\n onUpdate?: (data: OHLCVUpdateData) => void,\r\n onNewCandle?: (data: OHLCVNewCandleData) => void\r\n ) => {\r\n if (!socket?.connected) return false;\r\n\r\n try {\r\n // Unsubscribe from OHLCV updates\r\n socket.emit('ohlcv:unsubscribe', { mint, timeFrame });\r\n\r\n // Remove listeners\r\n if (onInitialData) {\r\n socket.off('ohlcv:initial', onInitialData);\r\n }\r\n if (onUpdate) {\r\n socket.off('ohlcv:update', onUpdate);\r\n }\r\n if (onNewCandle) {\r\n socket.off('ohlcv:newCandle', onNewCandle);\r\n }\r\n\r\n console.log(`📊 [useSocket] Unsubscribed from OHLCV updates for ${mint} (${timeFrame}s)`);\r\n return true;\r\n\r\n } catch (error) {\r\n console.error('❌ [useSocket] Failed to unsubscribe from OHLCV:', error);\r\n return false;\r\n }\r\n }, [socket]);\r\n\r\n // Subscribe to price updates\r\n const subscribeToPrice = useCallback((\r\n mint: string,\r\n onPriceUpdate?: (data: any) => void\r\n ) => {\r\n if (!socket?.connected) {\r\n console.warn('⚠️ [useSocket] Socket not connected, cannot subscribe');\r\n return false;\r\n }\r\n\r\n try {\r\n // Subscribe to price updates\r\n socket.emit('price:subscribe', { mint });\r\n\r\n // Listen for price updates\r\n if (onPriceUpdate) {\r\n socket.on('price:update', onPriceUpdate);\r\n }\r\n\r\n console.log(`💰 [useSocket] Subscribed to price updates for ${mint}`);\r\n return true;\r\n\r\n } catch (error) {\r\n console.error('❌ [useSocket] Failed to subscribe to price:', error);\r\n return false;\r\n }\r\n }, [socket]);\r\n\r\n // Unsubscribe from price updates\r\n const unsubscribeFromPrice = useCallback((\r\n mint: string,\r\n onPriceUpdate?: (data: any) => void\r\n ) => {\r\n if (!socket?.connected) return false;\r\n\r\n try {\r\n // Unsubscribe from price updates\r\n socket.emit('price:unsubscribe', { mint });\r\n\r\n // Remove listener\r\n if (onPriceUpdate) {\r\n socket.off('price:update', onPriceUpdate);\r\n }\r\n\r\n console.log(`💰 [useSocket] Unsubscribed from price updates for ${mint}`);\r\n return true;\r\n\r\n } catch (error) {\r\n console.error('❌ [useSocket] Failed to unsubscribe from price:', error);\r\n return false;\r\n }\r\n }, [socket]);\r\n\r\n // Test socket connection\r\n const testConnection = useCallback((message: string) => {\r\n if (!socket?.connected) {\r\n console.warn('⚠️ [useSocket] Socket not connected, cannot send test message');\r\n return false;\r\n }\r\n\r\n try {\r\n socket.emit('test-message', {\r\n message,\r\n timestamp: Date.now()\r\n });\r\n\r\n // Listen for test response\r\n socket.once('test-response', (response) => {\r\n console.log('🧪 [useSocket] Test response received:', response);\r\n });\r\n\r\n return true;\r\n } catch (error) {\r\n console.error('❌ [useSocket] Failed to send test message:', error);\r\n return false;\r\n }\r\n }, [socket]);\r\n\r\n return {\r\n socket,\r\n isConnected,\r\n isConnecting,\r\n connect,\r\n disconnect,\r\n subscribeToOHLCV,\r\n unsubscribeFromOHLCV,\r\n subscribeToPrice,\r\n unsubscribeFromPrice,\r\n testConnection,\r\n };\r\n};\r\n\r\n","import { useState, useEffect, useCallback, useMemo } from 'react';\r\n\r\ninterface ComprehensiveAnalytics {\r\n // Performance metrics\r\n performance: {\r\n '24H': { gain: number; percentage: string; isPositive: boolean };\r\n '7D': { gain: number; percentage: string; isPositive: boolean };\r\n '1M': { gain: number; percentage: string; isPositive: boolean };\r\n 'All Time': { gain: number; percentage: string; isPositive: boolean };\r\n };\r\n \r\n // Market data\r\n market: {\r\n marketValue: string;\r\n price: string;\r\n marketCap: string;\r\n circulating: string;\r\n totalSupply: string;\r\n };\r\n \r\n // 24H statistics\r\n '24H': {\r\n high: string;\r\n low: string;\r\n volume: string;\r\n return: string;\r\n };\r\n \r\n // Volume data\r\n volume: {\r\n current: string;\r\n '24h': string;\r\n unit: string;\r\n };\r\n \r\n // Blockchain data\r\n blockchain: {\r\n currentRealSol: string;\r\n realSolReserves: number;\r\n virtualSolReserves: number;\r\n tokenReserves: number;\r\n };\r\n \r\n // Additional data\r\n additional: {\r\n solUsdPrice: string;\r\n timestamp: number;\r\n };\r\n}\r\n\r\ninterface EnhancedTokenAnalytics {\r\n // Real-time analytics from backend\r\n analytics: ComprehensiveAnalytics | null;\r\n \r\n // Current market data\r\n currentPrice: number;\r\n currentMarketCap: number;\r\n currentVolume: number;\r\n \r\n // Performance metrics (formatted for display)\r\n performance24h: { value: string; isPositive: boolean; raw: number };\r\n performance7d: { value: string; isPositive: boolean; raw: number };\r\n performance1m: { value: string; isPositive: boolean; raw: number };\r\n performanceAllTime: { value: string; isPositive: boolean; raw: number };\r\n \r\n // 24H statistics\r\n high24h: number;\r\n low24h: number;\r\n volume24h: number;\r\n return24h: number;\r\n \r\n // Loading and error states\r\n loading: boolean;\r\n error: string | null;\r\n \r\n // Connection status\r\n connected: boolean;\r\n \r\n // Last update timestamp\r\n lastUpdate: number | null;\r\n \r\n // Helper functions\r\n isRealVolume: (volume: number) => boolean;\r\n}\r\n\r\n/**\r\n * Simplified hook for token analytics\r\n * This is a stub version for the NPM package\r\n * Users should provide their own analytics data or implement their own hook\r\n */\r\nexport function useOptimizedTokenAnalytics(\r\n mint: string | undefined,\r\n analyticsData?: any\r\n): EnhancedTokenAnalytics {\r\n const [analytics, setAnalytics] = useState<ComprehensiveAnalytics | null>(null);\r\n const [loading, setLoading] = useState(false);\r\n const [error, setError] = useState<string | null>(null);\r\n const [lastUpdate, setLastUpdate] = useState<number | null>(null);\r\n const [connected, setConnected] = useState(false);\r\n\r\n // Update analytics when provided\r\n useEffect(() => {\r\n if (analyticsData) {\r\n setAnalytics(analyticsData);\r\n setLastUpdate(Date.now());\r\n setConnected(true);\r\n setLoading(false);\r\n }\r\n }, [analyticsData]);\r\n\r\n // Calculate derived values from analytics data\r\n const derivedValues = useMemo(() => {\r\n if (!analytics || !analytics.market) {\r\n return {\r\n currentPrice: 0,\r\n currentMarketCap: 0,\r\n currentVolume: 0,\r\n performance24h: { value: '0.00%', isPositive: false, raw: 0 },\r\n performance7d: { value: '0.00%', isPositive: false, raw: 0 },\r\n performance1m: { value: '0.00%', isPositive: false, raw: 0 },\r\n performanceAllTime: { value: '0.00%', isPositive: false, raw: 0 },\r\n high24h: 0,\r\n low24h: 0,\r\n volume24h: 0,\r\n return24h: 0\r\n };\r\n }\r\n\r\n // Extract current values with safe access\r\n const currentPrice = parseFloat(analytics.market?.price || '0') || 0;\r\n const currentMarketCap = parseFloat(analytics.market?.marketCap || '0') || 0;\r\n \r\n // CRITICAL: Only use real volume, filter out fake 0.01 values\r\n let currentVolume = parseFloat(analytics.volume?.current || '0') || 0;\r\n if (currentVolume <= 0.01) {\r\n // Use current real SOL reserves instead of fake volume\r\n currentVolume = parseFloat(analytics.blockchain?.currentRealSol || '0') || 0;\r\n }\r\n\r\n // Extract performance metrics with safe access\r\n const performance24h = {\r\n value: analytics.performance?.['24H']?.percentage || '0.00%',\r\n isPositive: analytics.performance?.['24H']?.isPositive || false,\r\n raw: analytics.performance?.['24H']?.gain || 0\r\n };\r\n\r\n const performance7d = {\r\n value: analytics.performance?.['7D']?.percentage || '0.00%',\r\n isPositive: analytics.performance?.['7D']?.isPositive || false,\r\n raw: analytics.performance?.['7D']?.gain || 0\r\n };\r\n\r\n const performance1m = {\r\n value: analytics.performance?.['1M']?.percentage || '0.00%',\r\n isPositive: analytics.performance?.['1M']?.isPositive || false,\r\n raw: analytics.performance?.['1M']?.gain || 0\r\n };\r\n\r\n const performanceAllTime = {\r\n value: analytics.performance?.['All Time']?.percentage || '0.00%',\r\n isPositive: analytics.performance?.['All Time']?.isPositive || false,\r\n raw: analytics.performance?.['All Time']?.gain || 0\r\n };\r\n\r\n // Extract 24H statistics with safe access\r\n const high24h = parseFloat(analytics['24H']?.high || '0') || 0;\r\n const low24h = parseFloat(analytics['24H']?.low || '0') || 0;\r\n \r\n // CRITICAL: Only use real volume, filter out fake 0.01 values\r\n let volume24h = parseFloat(analytics.volume?.['24h'] || '0') || 0;\r\n if (volume24h <= 0.01) {\r\n // Use current real SOL reserves instead of fake volume\r\n volume24h = parseFloat(analytics.blockchain?.currentRealSol || '0') || 0;\r\n }\r\n \r\n const return24h = parseFloat(analytics['24H']?.return || '0') || 0;\r\n\r\n return {\r\n currentPrice,\r\n currentMarketCap,\r\n currentVolume,\r\n performance24h,\r\n performance7d,\r\n performance1m,\r\n performanceAllTime,\r\n high24h,\r\n low24h,\r\n volume24h,\r\n return24h\r\n };\r\n }, [analytics]);\r\n\r\n // Helper function to check if volume is real (not fake 0.01)\r\n const isRealVolume = useCallback((volume: number) => volume > 0.01, []);\r\n\r\n const result = {\r\n // Raw analytics data from backend\r\n analytics,\r\n \r\n // Derived values for easy consumption\r\n ...derivedValues,\r\n \r\n // Helper functions\r\n isRealVolume,\r\n \r\n // State management\r\n loading,\r\n error,\r\n connected,\r\n lastUpdate\r\n };\r\n \r\n return result;\r\n}\r\n\r\n","\"use client\";\r\n\r\nimport React, { useEffect, useRef, useState, useCallback, useMemo } from 'react';\r\nimport { FunhiChartController, ControllerConfig, TimeFrame } from '../core';\r\nimport { useSocket } from '../hooks/useSocket';\r\nimport { useOptimizedTokenAnalytics } from '../hooks/useOptimizedTokenAnalytics';\r\n\r\n// Chart Props Interface\r\nexport interface ChartProps {\r\n mint: string;\r\n ticker?: string;\r\n tokenName?: string;\r\n socket?: any;\r\n isConnected?: boolean;\r\n currentMarketCap?: number;\r\n analyticsConnected?: boolean;\r\n analyticsLoading?: boolean;\r\n}\r\n\r\n/**\r\n * FunhiChart - OOP-based implementation using FunhiChartController\r\n * This version eliminates code duplication and uses clean OOP architecture\r\n */\r\nconst FunhiChart: React.FC<ChartProps> = ({\r\n mint,\r\n ticker,\r\n tokenName,\r\n socket: externalSocket,\r\n isConnected: externalIsConnected,\r\n currentMarketCap: externalMarketCap,\r\n analyticsConnected: externalAnalyticsConnected,\r\n analyticsLoading: externalAnalyticsLoading\r\n}) => {\r\n // Refs\r\n const chartContainerRef = useRef<HTMLDivElement>(null);\r\n const controllerRef = useRef<FunhiChartController | null>(null);\r\n\r\n // State\r\n const [loading, setLoading] = useState<boolean>(true);\r\n const [timeframeLoading, setTimeframeLoading] = useState<boolean>(false);\r\n const [loadingTimeframe, setLoadingTimeframe] = useState<string | null>(null);\r\n const [error, setError] = useState<string | null>(null);\r\n const [currentTimeframe, setCurrentTimeframe] = useState<TimeFrame | null>(null);\r\n\r\n // Socket\r\n const internalSocketData = useSocket();\r\n const socket = externalSocket || internalSocketData.socket;\r\n const isConnected = externalIsConnected !== undefined ? externalIsConnected : internalSocketData.isConnected;\r\n\r\n // Analytics\r\n const internalAnalytics = useOptimizedTokenAnalytics(mint);\r\n const realTimeMarketCap = externalMarketCap !== undefined ? externalMarketCap : internalAnalytics.currentMarketCap;\r\n const analyticsConnected = externalAnalyticsConnected !== undefined ? externalAnalyticsConnected : internalAnalytics.connected;\r\n const analyticsLoading = externalAnalyticsLoading !== undefined ? externalAnalyticsLoading : internalAnalytics.loading;\r\n\r\n // Timeframes\r\n const timeFrames: TimeFrame[] = useMemo(() => [\r\n { label: '1m', value: '1m', seconds: 60 },\r\n { label: '5m', value: '5m', seconds: 300 },\r\n { label: '15m', value: '15m', seconds: 900 },\r\n { label: '1h', value: '1h', seconds: 3600 },\r\n { label: '4h', value: '4h', seconds: 14400 },\r\n { label: '1d', value: '1d', seconds: 86400 }\r\n ], []);\r\n\r\n // Format market cap\r\n const formatMarketCap = useCallback((value: number): string => {\r\n if (value >= 1_000_000_000) {\r\n return `$${(value / 1_000_000_000).toFixed(value >= 10_000_000_000 ? 2 : 3)}B`;\r\n } else if (value >= 1_000_000) {\r\n return `$${(value / 1_000_000).toFixed(value >= 10_000_000 ? 2 : 3)}M`;\r\n } else if (value >= 10_000) {\r\n return `$${(value / 1_000).toFixed(value >= 100_000 ? 1 : 2)}K`;\r\n } else if (value >= 1_000) {\r\n return `$${(value / 1_000).toFixed(2)}K`;\r\n } else if (value >= 1) {\r\n return `$${value.toFixed(2)}`;\r\n }\r\n return `$${value.toFixed(4)}`;\r\n }, []);\r\n\r\n // Initialize controller\r\n useEffect(() => {\r\n if (!chartContainerRef.current || !mint) return;\r\n\r\n try {\r\n const config: ControllerConfig = {\r\n mint,\r\n ticker,\r\n tokenName,\r\n timeframes: timeFrames,\r\n container: chartContainerRef.current,\r\n formatPrice: formatMarketCap\r\n };\r\n\r\n const controller = new FunhiChartController(config);\r\n controllerRef.current = controller;\r\n\r\n // Initialize and load data\r\n controller.initialize().then(() => {\r\n setCurrentTimeframe(controller.getCurrentTimeframe());\r\n setLoading(false);\r\n }).catch((err) => {\r\n console.error('❌ [FunhiChart] Initialization error:', err);\r\n setError(err.message || 'Failed to initialize chart');\r\n setLoading(false);\r\n });\r\n\r\n // Cleanup\r\n return () => {\r\n controller.destroy();\r\n controllerRef.current = null;\r\n };\r\n } catch (err: any) {\r\n console.error('❌ [FunhiChart] Controller creation error:', err);\r\n setError(err.message || 'Failed to create chart controller');\r\n setLoading(false);\r\n }\r\n }, [mint, ticker, tokenName, timeFrames, formatMarketCap]);\r\n\r\n // Handle real-time price updates\r\n useEffect(() => {\r\n if (!controllerRef.current || realTimeMarketCap <= 0) return;\r\n\r\n if (!isFinite(realTimeMarketCap) || realTimeMarketCap <= 0) {\r\n console.warn(`⚠️ [FunhiChart] Invalid market cap data: ${realTimeMarketCap}`);\r\n return;\r\n }\r\n\r\n controllerRef.current.updatePrice(realTimeMarketCap);\r\n }, [realTimeMarketCap]);\r\n\r\n // Handle WebSocket updates\r\n useEffect(() => {\r\n if (!socket || !isConnected || !mint || !controllerRef.current) return;\r\n\r\n const handleMultiTimeframeCandles = (data: any) => {\r\n if (data.mint !== mint) return;\r\n controllerRef.current?.handleSocketUpdate(data);\r\n };\r\n\r\n socket.on('multiTimeframeCandleUpdate', handleMultiTimeframeCandles);\r\n\r\n return () => {\r\n socket.off('multiTimeframeCandleUpdate', handleMultiTimeframeCandles);\r\n };\r\n }, [socket, isConnected, mint]);\r\n\r\n // Handle timeframe switching\r\n const handleTimeFrameChange = useCallback(async (timeFrameValue: string) => {\r\n if (!controllerRef.current) return;\r\n\r\n const newTimeFrame = timeFrames.find(tf => tf.value === timeFrameValue);\r\n if (!newTimeFrame || newTimeFrame.value === currentTimeframe?.value) return;\r\n\r\n // Prevent multiple simultaneous switches\r\n if (timeframeLoading) {\r\n console.log(`⚠️ [FunhiChart] Timeframe switch already in progress`);\r\n return;\r\n }\r\n\r\n console.log(`🔄 [FunhiChart] Switching to ${newTimeFrame.label}`);\r\n setTimeframeLoading(true);\r\n setLoadingTimeframe(newTimeFrame.label);\r\n setLoading(true);\r\n\r\n try {\r\n await controllerRef.current.switchTimeframe(newTimeFrame.seconds);\r\n setCurrentTimeframe(newTimeFrame);\r\n setLoading(false);\r\n setTimeframeLoading(false);\r\n setLoadingTimeframe(null);\r\n console.log(`✅ [FunhiChart] Switched to ${newTimeFrame.label}`);\r\n } catch (error) {\r\n console.error(`❌ [FunhiChart] Switch error:`, error);\r\n setLoading(false);\r\n setTimeframeLoading(false);\r\n setLoadingTimeframe(null);\r\n }\r\n }, [timeFrames, currentTimeframe, timeframeLoading]);\r\n\r\n // Handle resize\r\n useEffect(() => {\r\n const handleResize = () => {\r\n controllerRef.current?.resize();\r\n };\r\n\r\n window.addEventListener('resize', handleResize);\r\n return () => window.removeEventListener('resize', handleResize);\r\n }, []);\r\n\r\n // Loading timeout\r\n useEffect(() => {\r\n if ((loading || analyticsLoading) && controllerRef.current) {\r\n const candles = controllerRef.current.getCurrentCandles();\r\n if (candles.length === 0) {\r\n const timeout = setTimeout(() => setLoading(false), 10000);\r\n return () => clearTimeout(timeout);\r\n }\r\n }\r\n }, [loading, analyticsLoading]);\r\n\r\n if (error) {\r\n return (\r\n <div className=\"p-4 bg-red-50 border border-red-200 rounded-lg\">\r\n <div className=\"text-red-800 font-medium\">Chart Error</div>\r\n <div className=\"text-red-600 text-sm\">{error}</div>\r\n <button\r\n onClick={() => setError(null)}\r\n className=\"mt-2 px-3 py-1 bg-red-100 text-red-700 rounded text-sm hover:bg-red-200\"\r\n >\r\n Dismiss\r\n </button>\r\n </div>\r\n );\r\n }\r\n\r\n const currentCandles = controllerRef.current?.getCurrentCandles() || [];\r\n const currentMarketCap = realTimeMarketCap || 0;\r\n\r\n return (\r\n <div className=\"w-full\">\r\n {/* Timeframe Selector */}\r\n <div className=\"mb-4 flex flex-wrap gap-2 items-center\">\r\n <div className=\"flex flex-wrap gap-2\">\r\n {timeFrames.map((tf) => {\r\n const isCurrentTimeframe = currentTimeframe?.value === tf.value;\r\n const isCurrentlyLoading = timeframeLoading && loadingTimeframe === tf.label;\r\n const isDisabled = timeframeLoading;\r\n\r\n return (\r\n <button\r\n key={tf.value}\r\n onClick={() => handleTimeFrameChange(tf.value)}\r\n disabled={isDisabled}\r\n className={`\r\n px-3 py-2 rounded-lg text-sm font-medium transition-all duration-200 relative\r\n ${isCurrentTimeframe\r\n ? 'bg-blue-600 text-white'\r\n : isDisabled\r\n ? 'bg-gray-100 text-gray-400 cursor-not-allowed'\r\n : 'bg-gray-100 text-gray-700 hover:bg-gray-200'\r\n }\r\n ${isCurrentlyLoading ? 'animate-pulse' : ''}\r\n `}\r\n >\r\n {isCurrentlyLoading && (\r\n <div className=\"absolute inset-0 flex items-center justify-center\">\r\n <div className=\"flex space-x-1\">\r\n <div className=\"w-1 h-1 bg-white rounded-full animate-pulse\"></div>\r\n <div className=\"w-1 h-1 bg-white rounded-full animate-pulse\" style={{animationDelay: '0.1s'}}></div>\r\n <div className=\"w-1 h-1 bg-white rounded-full animate-pulse\" style={{animationDelay: '0.2s'}}></div>\r\n </div>\r\n </div>\r\n )}\r\n <span className={isCurrentlyLoading ? 'opacity-0' : 'opacity-100'}>\r\n {tf.label}\r\n </span>\r\n </button>\r\n );\r\n })}\r\n </div>\r\n\r\n {/* Status */}\r\n <div className=\"ml-auto flex items-center gap-2 text-sm\">\r\n <div className={`w-2 h-2 rounded-full ${analyticsConnected ? 'bg-green-500' : 'bg-red-500'}`}></div>\r\n <span className={analyticsConnected ? 'text-green-600' : 'text-red-600'}>\r\n {analyticsConnected ? 'Connected' : 'Disconnected'}\r\n </span>\r\n {timeframeLoading && loadingTimeframe && (\r\n <span className=\"text-blue-600\">• Switching to {loadingTimeframe}...</span>\r\n )}\r\n {!timeframeLoading && loading && !analyticsLoading && (\r\n <span className=\"text-blue-600\">• Loading candles...</span>\r\n )}\r\n {analyticsLoading && (\r\n <span className=\"text-blue-600\">• Connecting to analytics...</span>\r\n )}\r\n {!timeframeLoading && !loading && !analyticsLoading && currentCandles.length > 0 && (\r\n <span className=\"text-green-600\">\r\n • {currentCandles.length} {currentTimeframe?.label} candles • {formatMarketCap(currentMarketCap)}\r\n </span>\r\n )}\r\n </div>\r\n </div>\r\n\r\n {/* Chart Container */}\r\n <div\r\n ref={chartContainerRef}\r\n className={`relative w-full h-96 transition-all duration-300 ${\r\n timeframeLoading\r\n ? 'opacity-75 scale-[0.98]'\r\n : 'opacity-100 scale-100'\r\n }`}\r\n >\r\n {/* Loading Overlay */}\r\n {(timeframeLoading || (loading && !analyticsLoading)) && (\r\n <div className=\"absolute inset-0 bg-gradient-to-br from-white via-blue-50 to-white bg-opacity-90 flex items-center justify-center rounded-lg z-10 backdrop-blur-sm\">\r\n <div className=\"text-center\">\r\n <div className=\"flex justify-center items-center mb-4\">\r\n <div className=\"relative\">\r\n <div className=\"w-12 h-12 border-4 border-blue-200 rounded-full\"></div>\r\n <div className=\"absolute top-0 left-0 w-12 h-12 border-4 border-blue-600 rounded-full border-t-transparent animate-spin\"></div>\r\n </div>\r\n </div>\r\n <div className=\"text-gray-700 font-medium text-lg\">\r\n {timeframeLoading && loadingTimeframe\r\n ? `Switching to ${loadingTimeframe} timeframe...`\r\n : 'Loading real-time data...'\r\n }\r\n </div>\r\n <div className=\"mt-3 flex justify-center space-x-1\">\r\n <div className=\"w-2 h-2 bg-blue-600 rounded-full animate-bounce\"></div>\r\n <div className=\"w-2 h-2 bg-blue-600 rounded-full animate-bounce\" style={{animationDelay: '0.1s'}}></div>\r\n <div className=\"w-2 h-2 bg-blue-600 rounded-full animate-bounce\" style={{animationDelay: '0.2s'}}></div>\r\n </div>\r\n </div>\r\n </div>\r\n )}\r\n\r\n {/* No Data State */}\r\n {!timeframeLoading && !loading && !analyticsLoading && currentCandles.length === 0 && (\r\n <div className=\"absolute inset-0 bg-white bg-opacity-75 flex items-center justify-center rounded-lg z-10\">\r\n <div className=\"text-center\">\r\n <div className=\"text-gray-600 mb-2\">No {currentTimeframe?.label} market data available</div>\r\n <div className=\"text-sm text-gray-500\">Waiting for real-time data...</div>\r\n </div>\r\n </div>\r\n )}\r\n </div>\r\n </div>\r\n );\r\n};\r\n\r\nexport default FunhiChart;\r\n\r\n","/**\r\n * Candle Aggregation Utility\r\n * \r\n * Client-side aggregation of 1-minute candles into larger timeframes\r\n * This provides real-time aggregation without waiting for server responses\r\n */\r\n\r\nexport interface CandleData {\r\n time: number;\r\n open: number;\r\n high: number;\r\n low: number;\r\n close: number;\r\n volume: number;\r\n}\r\n\r\nexport interface TimeFrame {\r\n label: string;\r\n value: string;\r\n seconds: number;\r\n}\r\n\r\nclass CandleAggregation {\r\n private timeframes: Record<string, number> = {\r\n '1m': 60,\r\n '5m': 300,\r\n '15m': 900,\r\n '30m': 1800,\r\n '1h': 3600,\r\n '4h': 14400,\r\n '1d': 86400\r\n };\r\n\r\n /**\r\n * Aggregate 1-minute candles into a larger timeframe\r\n */\r\n aggregateCandles(oneMinuteCandles: CandleData[], targetTimeframe: number): CandleData[] {\r\n try {\r\n // If requesting 1-minute data, return as-is\r\n if (targetTimeframe === 60) {\r\n return oneMinuteCandles;\r\n }\r\n\r\n // Validate input\r\n if (!Array.isArray(oneMinuteCandles) || oneMinuteCandles.length === 0) {\r\n console.warn('⚠️ [CandleAggregation] No candles to aggregate');\r\n return [];\r\n }\r\n\r\n // Sort candles by time ascending\r\n const sortedCandles = [...oneMinuteCandles].sort((a, b) => a.time - b.time);\r\n\r\n // Group candles by target timeframe\r\n const aggregatedCandles: CandleData[] = [];\r\n let currentGroup: CandleData[] = [];\r\n let groupStartTime: number | null = null;\r\n\r\n for (const candle of sortedCandles) {\r\n // Calculate which timeframe bucket this candle belongs to\r\n const bucketTime = Math.floor(candle.time / targetTimeframe) * targetTimeframe;\r\n\r\n if (groupStartTime === null) {\r\n groupStartTime = bucketTime;\r\n }\r\n\r\n if (bucketTime === groupStartTime) {\r\n // Add to current group\r\n currentGroup.push(candle);\r\n } else {\r\n // Process current group and start new one\r\n if (currentGroup.length > 0) {\r\n const aggregated = this.aggregateGroup(currentGroup, groupStartTime);\r\n aggregatedCandles.push(aggregated);\r\n }\r\n\r\n // Start new group\r\n currentGroup = [candle];\r\n groupStartTime = bucketTime;\r\n }\r\n }\r\n\r\n // Process last group\r\n if (currentGroup.length > 0 && groupStartTime !== null) {\r\n const aggregated = this.aggregateGroup(currentGroup, groupStartTime);\r\n aggregatedCandles.push(aggregated);\r\n }\r\n\r\n console.log(`📊 [CandleAggregation] Aggregated ${oneMinuteCandles.length} 1m candles into ${aggregatedCandles.length} ${this.getTimeframeLabel(targetTimeframe)} candles`);\r\n\r\n return aggregatedCandles;\r\n\r\n } catch (error) {\r\n console.error('❌ [CandleAggregation] Error aggregating candles:', error);\r\n return [];\r\n }\r\n }\r\n\r\n /**\r\n * Aggregate a group of candles into a single candle\r\n */\r\n private aggregateGroup(candles: CandleData[], time: number): CandleData {\r\n // Sort by time to ensure proper OHLC calculation\r\n const sorted = [...candles].sort((a, b) => a.time - b.time);\r\n\r\n // Calculate OHLC\r\n const open = sorted[0].open;\r\n const close = sorted[sorted.length - 1].close;\r\n const high = Math.max(...sorted.map(c => c.high));\r\n const low = Math.min(...sorted.map(c => c.low));\r\n const volume = sorted.reduce((sum, c) => sum + (c.volume || 0), 0);\r\n\r\n return {\r\n time,\r\n open,\r\n high,\r\n low,\r\n close,\r\n volume\r\n };\r\n }\r\n\r\n /**\r\n * Get human-readable timeframe label\r\n */\r\n getTimeframeLabel(seconds: number): string {\r\n for (const [label, value] of Object.entries(this.timeframes)) {\r\n if (value === seconds) {\r\n return label;\r\n }\r\n }\r\n return `${seconds}s`;\r\n }\r\n\r\n /**\r\n * Get timeframe in seconds from label\r\n */\r\n getTimeframeSeconds(label: string): number {\r\n return this.timeframes[label] || 60;\r\n }\r\n\r\n /**\r\n * Fill gaps in candles with flat candles (same OHLC)\r\n * This ensures continuous chart rendering\r\n */\r\n fillGaps(candles: CandleData[], timeframe: number): CandleData[] {\r\n try {\r\n if (!Array.isArray(candles) || candles.length < 2) {\r\n return candles;\r\n }\r\n\r\n const sorted = [...candles].sort((a, b) => a.time - b.time);\r\n const filled: CandleData[] = [];\r\n\r\n for (let i = 0; i < sorted.length - 1; i++) {\r\n const current = sorted[i];\r\n const next = sorted[i + 1];\r\n\r\n filled.push(current);\r\n\r\n // Check for gap\r\n const expectedNextTime = current.time + timeframe;\r\n let currentTime = expectedNextTime;\r\n\r\n while (currentTime < next.time) {\r\n // Fill gap with flat candle using last known price\r\n filled.push({\r\n time: currentTime,\r\n open: current.close,\r\n high: current.close,\r\n low: current.close,\r\n close: current.close,\r\n volume: 0\r\n });\r\n\r\n currentTime += timeframe;\r\n }\r\n }\r\n\r\n // Add last candle\r\n filled.push(sorted[sorted.length - 1]);\r\n\r\n if (filled.length > sorted.length) {\r\n console.log(`🔧 [CandleAggregation] Filled ${filled.length - sorted.length} gaps in ${this.getTimeframeLabel(timeframe)} candles`);\r\n }\r\n\r\n return filled;\r\n\r\n } catch (error) {\r\n console.error('❌ [CandleAggregation] Error filling gaps:', error);\r\n return candles;\r\n }\r\n }\r\n\r\n /**\r\n * Get the current incomplete candle for a timeframe\r\n * This is used for real-time updates\r\n */\r\n getCurrentCandle(oneMinuteCandles: CandleData[], targetTimeframe: number): CandleData | null {\r\n try {\r\n if (!Array.isArray(oneMinuteCandles) || oneMinuteCandles.length === 0) {\r\n return null;\r\n }\r\n\r\n const now = Math.floor(Date.now() / 1000);\r\n const currentBucket = Math.floor(now / targetTimeframe) * targetTimeframe;\r\n\r\n // Get all candles in the current bucket\r\n const currentGroup = oneMinuteCandles.filter(c => {\r\n const bucket = Math.floor(c.time / targetTimeframe) * targetTimeframe;\r\n return bucket === currentBucket;\r\n });\r\n\r\n if (currentGroup.length === 0) {\r\n return null;\r\n }\r\n\r\n return this.aggregateGroup(currentGroup, currentBucket);\r\n\r\n } catch (error) {\r\n console.error('❌ [CandleAggregation] Error getting current candle:', error);\r\n return null;\r\n }\r\n }\r\n\r\n /**\r\n * Update real-time candle with new 1-minute candle\r\n * Returns updated array of aggregated candles\r\n */\r\n updateRealtimeCandle(\r\n aggregatedCandles: CandleData[],\r\n newOneMinuteCandle: CandleData,\r\n targetTimeframe: number\r\n ): CandleData[] {\r\n try {\r\n if (!newOneMinuteCandle) {\r\n return aggregatedCandles;\r\n }\r\n\r\n // Calculate which bucket this 1m candle belongs to\r\n const bucketTime = Math.floor(newOneMinuteCandle.time / targetTimeframe) * targetTimeframe;\r\n\r\n // Find if we already have a candle for this bucket\r\n const existingIndex = aggregatedCandles.findIndex(c => c.time === bucketTime);\r\n\r\n if (existingIndex >= 0) {\r\n // Update existing candle\r\n const existing = aggregatedCandles[existingIndex];\r\n const updated: CandleData = {\r\n time: bucketTime,\r\n open: existing.open, // Keep original open\r\n high: Math.max(existing.high, newOneMinuteCandle.high),\r\n low: Math.min(existing.low, newOneMinuteCandle.low),\r\n close: newOneMinuteCandle.close, // Use latest close\r\n volume: existing.volume + (newOneMinuteCandle.volume || 0)\r\n };\r\n\r\n // Replace the candle\r\n const newCandles = [...aggregatedCandles];\r\n newCandles[existingIndex] = updated;\r\n return newCandles;\r\n } else {\r\n // Add new candle\r\n const newCandle: CandleData = {\r\n time: bucketTime,\r\n open: newOneMinuteCandle.open,\r\n high: newOneMinuteCandle.high,\r\n low: newOneMinuteCandle.low,\r\n close: newOneMinuteCandle.close,\r\n volume: newOneMinuteCandle.volume || 0\r\n };\r\n\r\n return [...aggregatedCandles, newCandle].sort((a, b) => a.time - b.time);\r\n }\r\n\r\n } catch (error) {\r\n console.error('❌ [CandleAggregation] Error updating realtime candle:', error);\r\n return aggregatedCandles;\r\n }\r\n }\r\n\r\n /**\r\n * Validate candle data structure\r\n */\r\n isValidCandle(candle: any): candle is CandleData {\r\n return (\r\n candle &&\r\n typeof candle.time === 'number' &&\r\n typeof candle.open === 'number' &&\r\n typeof candle.high === 'number' &&\r\n typeof candle.low === 'number' &&\r\n typeof candle.close === 'number' &&\r\n candle.high >= candle.low &&\r\n candle.high >= candle.open &&\r\n candle.high >= candle.close &&\r\n candle.low <= candle.open &&\r\n candle.low <= candle.close\r\n );\r\n }\r\n\r\n /**\r\n * Clean invalid candles from array\r\n */\r\n cleanCandles(candles: CandleData[]): CandleData[] {\r\n if (!Array.isArray(candles)) {\r\n return [];\r\n }\r\n\r\n const cleaned = candles.filter(c => this.isValidCandle(c));\r\n\r\n if (cleaned.length < candles.length) {\r\n console.warn(`⚠️ [CandleAggregation] Removed ${candles.length - cleaned.length} invalid candles`);\r\n }\r\n\r\n return cleaned;\r\n }\r\n\r\n /**\r\n * Get the minimum number of 1-minute candles needed for a timeframe\r\n */\r\n getRequiredOneMinuteCandles(targetTimeframe: number, targetCount: number = 200): number {\r\n const ratio = targetTimeframe / 60; // How many 1m candles per target candle\r\n return Math.ceil(targetCount * ratio);\r\n }\r\n}\r\n\r\n// Singleton instance\r\nexport const candleAggregation = new CandleAggregation();\r\n\r\n"],"names":["CandleValidator","validate","candle","time","open","high","low","close","isFinite","Math","max","min","ensureMinimumBodySize","minBodySize","effectiveMinBodySize","this","MIN_BODY_PERCENTAGE","MIN_BODY_ABSOLUTE","priceDiff","abs","direction","enforcedClose","validateOHLC","isCurrentBucket","timeframeSeconds","timestamp","currentTime","floor","currentBucket","validatePrice","price","calculateMinBodySize","CandleManager","constructor","candles","currentCandle","lastCandleTime","lastProcessedTimestamp","debounceMs","createOrUpdate","now","Date","console","warn","bucketStart","calculateBucketStart","createNewCandle","updateCurrentCandle","previousCandleClose","getPreviousCandleClose","previousCandleDirection","getPreviousCandleDirection","isValidCandle","finalizedCandle","addCandleToHistory","openPrice","toFixed","newCandle","buildNewCandle","log","isNewCandle","wasUpdated","recreatedCandle","volume","updateCandleInHistory","updatedCandle","updateCandlePrice","validatedCandle","currentBodySize","closePrice","currentPriceDirection","newPriceDirection","currentPrice","previousDirection","length","sortedCandles","sort","a","b","lastCandle","find","c","existingIndex","findIndex","push","getCandles","getCurrentCandle","getLastCandleTime","loadCandles","uniqueCandles","reduce","acc","validated","updateFromExternal","finalCandle","reset","TimeframeManager","timeframes","managers","Map","forEach","tf","set","seconds","getManager","get","updateAll","manager","getTimeframes","size","_a","width","height","Error","equalSizes","first","second","Observable","win","_this","_resolutionListener","_onResolutionChanged","_resolutionMediaQueryList","_observers","_window","_installResolutionListener","prototype","dispose","_uninstallResolutionListener","Object","defineProperty","devicePixelRatio","enumerable","configurable","subscribe","next","observer","unsubscribe","filter","o","dppx","matchMedia","concat","addListener","removeListener","_reinstallResolutionListener","DevicePixelContentBoxBinding","canvasElement","transformBitmapSize","options","_canvasElement","_bitmapSizeChangedListeners","_suggestedBitmapSize","_suggestedBitmapSizeChangedListeners","_devicePixelRatioObservable","_canvasElementResizeObserver","_canvasElementClientSize","clientWidth","clientHeight","_transformBitmapSize","_allowResizeObserver","allowResizeObserver","_chooseAndInitObserver","_b","disconnect","resizeCanvasElement","clientSize","style","_invalidateBitmapSize","subscribeBitmapSizeChanged","listener","unsubscribeBitmapSizeChanged","l","subscribeSuggestedBitmapSizeChanged","unsubscribeSuggestedBitmapSizeChanged","applySuggestedBitmapSize","oldSuggestedSize","_resizeBitmap","_emitSuggestedBitmapSizeChanged","newSize","oldSize","bitmapSize","_emitBitmapSizeChanged","call","_suggestNewBitmapSize","finalNewSize","newSuggestedSize","Promise","resolve","ro","ResizeObserver","entries","every","entry","observe","document","body","box","catch","then","isSupported","_initResizeObserver","_initDevicePixelRatioObservable","canvasElementWindow","createDevicePixelRatioObservable","ratio","value","canvasRects","getClientRects","undefined","canvasRect","round","left","top","predictedBitmapSize","target","devicePixelContentBoxSize","entrySize","inlineSize","blockSize","ownerDocument","defaultView","CanvasRenderingTarget2D","context","mediaSize","TypeError","_mediaSize","_bitmapSize","_context","useMediaCoordinateSpace","f","save","setTransform","scale","_horizontalPixelRatio","_verticalPixelRatio","restore","useBitmapCoordinateSpace","horizontalPixelRatio","verticalPixelRatio","tryCreateCanvasRenderingTarget2D","binding","contextOptions","canvasElementClientSize","getContext","e","upColor","downColor","wickVisible","borderVisible","borderColor","borderUpColor","borderDownColor","wickColor","wickUpColor","wickDownColor","r","openVisible","thinBars","h","color","lineStyle","lineWidth","lineType","lineVisible","crosshairMarkerVisible","crosshairMarkerRadius","crosshairMarkerBorderColor","crosshairMarkerBorderWidth","crosshairMarkerBackgroundColor","lastPriceAnimation","pointMarkersVisible","topColor","bottomColor","invertFilledArea","lineColor","baseValue","type","topFillColor1","topFillColor2","topLineColor","bottomFillColor1","bottomFillColor2","bottomLineColor","base","_","u","title","visible","lastValueVisible","priceLineVisible","priceLineSource","priceLineWidth","priceLineColor","priceLineStyle","baseLineVisible","baseLineWidth","baseLineColor","baseLineStyle","priceFormat","precision","minMove","d","t","i","n","setLineDash","v","s","beginPath","moveTo","lineTo","stroke","p","m","w","Simple","WithSteps","Curved","Solid","Dotted","Dashed","LargeDashed","SparseDotted","g","khaki","azure","aliceblue","ghostwhite","gold","goldenrod","gainsboro","gray","green","honeydew","floralwhite","lightblue","lightcoral","lemonchiffon","hotpink","lightyellow","greenyellow","lightgoldenrodyellow","limegreen","linen","lightcyan","magenta","maroon","olive","orange","oldlace","mediumblue","transparent","lime","lightpink","mistyrose","moccasin","midnightblue","orchid","mediumorchid","mediumturquoise","orangered","royalblue","powderblue","red","coral","turquoise","white","whitesmoke","wheat","teal","steelblue","bisque","aquamarine","aqua","sienna","silver","springgreen","antiquewhite","burlywood","brown","beige","chocolate","chartreuse","cornflowerblue","cornsilk","crimson","cadetblue","tomato","fuchsia","blue","salmon","blanchedalmond","slateblue","slategray","thistle","tan","cyan","darkblue","darkcyan","darkgoldenrod","darkgray","blueviolet","black","darkmagenta","darkslateblue","darkkhaki","darkorchid","darkorange","darkgreen","darkred","dodgerblue","darkslategray","dimgray","deepskyblue","firebrick","forestgreen","indigo","ivory","lavenderblush","feldspar","indianred","lightgreen","lightgrey","lightskyblue","lightslategray","lightslateblue","snow","lightseagreen","lightsalmon","darksalmon","darkviolet","mediumpurple","mediumaquamarine","skyblue","lavender","lightsteelblue","mediumvioletred","mintcream","navajowhite","navy","olivedrab","palevioletred","violetred","yellow","yellowgreen","lawngreen","pink","paleturquoise","palegoldenrod","darkolivegreen","darkseagreen","darkturquoise","peachpuff","deeppink","violet","palegreen","mediumseagreen","peru","saddlebrown","sandybrown","rosybrown","purple","seagreen","seashell","papayawhip","mediumslateblue","plum","mediumspringgreen","M","x","S","k","y","C","T","toLowerCase","exec","parseInt","parseFloat","P","R","D","splice","V","hasOwnProperty","includes","Array","isArray","O","B","A","I","z","L","E","N","F","W","NaN","j","H","$","U","layout","textColor","q","fontSize","fontFamily","Y","Z","X","K","super","arguments","G","J","tt","to","from","it","nt","st","arc","PI","fill","et","fillStyle","rt","ht","lt","ot","_t","ut","ct","dt","ft","vt","bt","wt","map","gt","Mt","mode","xt","St","kt","yt","Ct","Tt","Pt","Dt","Rt","Vt","Ot","Bt","At","It","zt","Lt","Et","lineCap","strokeStyle","Nt","Ft","Wt","jt","Ht","$t","crosshair","Ut","qt","horzLine","vertLine","Yt","Zt","fillRect","globalCompositeOperation","roundRect","arcTo","Q","closePath","createLinearGradient","addColorStop","Xt","Kt","font","Gt","Jt","Qt","ti","ii","ni","si","ei","ri","hi","li","ai","oi","_i","ui","ci","di","textAlign","textBaseline","fillText","fi","pi","mi","bi","wi","gi","Mi","ceil","xi","Si","ki","yi","Ci","Ti","Pi","Ri","Di","Vi","Oi","Bi","Ai","ticksVisible","Ii","zi","Li","Ei","labelVisible","Ni","labelBackgroundColor","Fi","Wi","ji","Hi","translate","$i","Ui","qi","Yi","Zi","Xi","Ki","Gi","Ji","Qi","at","Normal","Magnet","Hidden","tn","nn","sn","en","rn","hn","ln","an","_n","un","cn","dn","fn","vn","pn","mn","Number","bn","wn","gn","Mn","xn","Sn","kn","yn","Cn","Tn","Pn","Rn","clear","Dn","Vn","On","Bn","isNaN","In","An","zn","Ln","En","Nn","Fn","Wn","jn","Hn","$n","Un","qn","Yn","Zn","Xn","Kn","Gn","Jn","Qn","ts","ns","ss","es","toString","slice","rs","hs","format","ls","_s","pt","us","cs","pow","replace","String","mt","bezierCurveTo","ds","fs","vs","ps","lineJoin","bs","bind","ws","gs","Ms","xs","Ss","ks","ys","Cs","Ts","Ps","Rs","Ds","Vs","Os","Bs","As","Is","zs","Ls","Es","Ns","Fs","Ws","js","Hs","assign","Us","$s","qs","Ys","Zs","Xs","Ks","Gs","Js","Qs","te","ie","ne","se","ee","re","he","le","pointMarkersRadius","ae","oe","_e","ue","ce","de","fe","ve","pe","me","be","we","ge","Me","xe","Se","ke","ye","Ce","Te","Pe","Re","De","Ve","Oe","atan","Be","Ae","Ie","ze","Le","Ee","Ne","Fe","draw","renderer","We","priceValueBuilder","je","isWhitespace","He","$e","update","bars","barSpacing","visibleRange","originalData","barColor","Ue","qe","Ye","Ze","Xe","Ke","Ge","Je","Qe","tr","ir","nr","sr","actualBoundingBoxAscent","actualBoundingBoxDescent","has","er","delete","measureText","rr","hr","lr","ar","_r","ur","cr","dr","vr","pr","mr","br","wr","gr","Mr","Sr","kr","yr","Cr","Tr","Pr","Rr","Dr","Vr","Or","Br","Ar","Ir","zr","Lr","Er","Nr","Fr","performance","Wr","jr","Hr","$r","Ur","qr","Yr","Zr","Xr","Kr","Gr","vi","Jr","Qr","th","ih","nh","sqrt","position","sh","eh","rh","hh","ah","oh","_h","uh","dh","fh","above","aboveBar","inBar","below","belowBar","shape","id","text","ph","mh","bh","seriesLastValueMode","wh","gh","Mh","xh","Sh","trim","kh","yh","Ch","Th","Ph","Rh","Dh","Vh","Oh","Bh","minValue","maxValue","Ah","Ih","zh","Lh","Eh","priceRange","margins","Nh","Fh","axisLabelVisible","Wh","axisLabelColor","axisLabelTextColor","jh","Hh","$h","Uh","qh","Yh","Zh","Bar","Candlestick","Xh","Custom","Area","Baseline","Line","Histogram","Kh","Gh","Jh","Qh","NearestLeft","None","NearestRight","tl","il","nl","sl","el","rl","hl","ll","al","ol","_l","ul","cl","dl","fl","vl","pl","ml","bl","wl","gl","drawBackground","Ml","xl","Sl","zOrder","coordinate","fixedCoordinate","backColor","tickVisible","kl","yl","Cl","Tl","Pl","Rl","Dl","Vl","Ol","updateAllViews","paneViews","timeAxisViews","priceAxisViews","Bl","priceAxisPaneViews","Al","timeAxisPaneViews","Il","autoscaleInfo","hitTest","zl","Ll","El","Nl","Fl","Wl","jl","Hl","$l","Ul","ql","clearTimeout","Yl","Zl","priceScaleId","Xl","Kl","Gl","Jl","Ql","ta","ia","na","sa","ea","ra","indexOf","ha","la","aa","setTimeout","oa","unshift","ua","ca","da","fa","va","autoscaleInfoProvider","pa","ma","ba","wa","ga","Ma","xa","Sa","ka","ya","Ca","Ta","Pa","formatter","Ra","Da","Va","originalTime","Oa","Ba","Aa","Ia","za","La","Ea","Na","Fa","Wa","ja","grid","horzLines","vertLines","Ha","coord","$a","Ua","log10","on","qa","Ya","Za","Xa","Ka","Ga","Ja","Qa","io","entireTextOnly","no","so","eo","Logarithmic","Percentage","IndexedTo100","ho","lo","ao","oo","_o","uo","co","do","fo","vo","po","mo","bo","wo","Mo","xo","So","ko","yo","Co","To","Po","Ro","scaleMargins","bottom","Do","Vo","autoScale","Oo","Bo","invertScale","Ao","Io","zo","Lo","Eo","No","Fo","Wo","jo","Ho","$o","Uo","qo","Yo","Zo","Xo","Ko","Go","Jo","Qo","t_","i_","n_","s_","e_","r_","h_","l_","a_","priceFormatter","percentageFormatter","o_","__","u_","c_","d_","f_","v_","leftPriceScale","p_","rightPriceScale","m_","b_","localization","overlayPriceScales","values","w_","g_","M_","x_","S_","k_","C_","y_","T_","P_","R_","D_","V_","O_","B_","A_","I_","z_","L_","E_","N_","F_","W_","j_","H_","U_","q_","Y_","cacheKey","Z_","X_","K_","G_","J_","Q_","tu","iu","nu","timeWeight","index","weight","su","eu","ru","keys","hu","lu","au","ou","_u","uu","cu","du","fu","vu","pu","mu","bu","wu","gu","Mu","xu","rightOffset","Su","ku","uniformDistribution","yu","Cu","fixLeftEdge","Tu","fixRightEdge","Pu","minBarSpacing","key","Ru","Du","Vu","Ou","Bu","Au","Iu","lockVisibleTimeRangeOnResize","zu","Lu","Eu","Nu","Fu","Wu","ju","Hu","tickMarkMaxCharacterLength","$u","label","Uu","needAlignCoordinate","qu","Yu","Zu","rightBarStaysOnScroll","Xu","Ku","Gu","Ju","RangeError","Qu","tc","nc","sc","ec","rc","hc","lc","timeFormatter","formatHorzItem","handleScroll","handleScale","horzTouchDrag","mouseWheel","pressedMouseMove","vertTouchDrag","axisDoubleClickReset","axisPressedMouseMove","pinch","ac","oc","_c","uc","cc","dc","fc","formatTickmark","updateFormatter","vc","mc","bc","wc","gc","Mc","xc","Sc","kc","horzAlign","vertAlign","fontStyle","OnTouchEnd","OnNextTap","yc","Cc","Tc","Pc","Rc","Dc","Vc","Oc","timeScale","Bc","Ac","watermark","Ic","zc","Lc","Ec","Nc","Fc","Wc","jc","Hc","$c","Uc","qc","Yc","Zc","Xc","Kc","Gc","Jc","Qc","td","nd","sd","ed","rd","hd","ld","ad","od","_d","allowShiftVisibleRangeOnWhitespaceReplacement","shiftVisibleRangeOnNewBar","ud","dd","fd","vd","pd","md","bd","wd","background","Disabled","Continuous","OnDataUpdate","LastBar","LastVisible","VerticalGradient","Year","Month","DayOfMonth","Time","TimeWithSeconds","getUTCFullYear","gd","Md","getUTCMonth","toLocaleString","month","getUTCDate","xd","getUTCHours","getUTCMinutes","getUTCSeconds","Sd","kd","yd","Cd","Td","Pd","Rd","Dd","Vd","getTime","UTC","year","day","Od","Bd","is","setOptions","preprocessData","createConverterToInternalObj","convertHorzItemToInternal","dateFormat","timeVisible","Ad","secondsVisible","locale","tickMarkFormatter","hour12","hour","minute","getUTCMilliseconds","maxTickMarkWeight","fillWeightsForPoints","Id","window","navigator","userAgent","test","platform","zd","sign","as","Ld","Ed","Nd","Fd","Wd","jd","Hd","$d","Ud","qd","Yd","Zd","os","Xd","Kd","Gd","Jd","Qd","removeChild","nf","sf","ef","attributionLogo","rf","URL","location","href","hostname","pathname","if","createElement","innerText","innerHTML","toggleAttribute","appendChild","transform","clearRect","hf","lf","af","NEGATIVE_INFINITY","POSITIVE_INFINITY","_f","uf","cf","df","ff","vf","pf","mf","bf","wf","gf","Mf","xf","Sf","kf","yf","Cf","Tf","Pf","Rf","Df","Vf","Of","Bf","Af","If","zf","Lf","Ef","Nf","Ff","Wf","Hf","jf","$f","Uf","qf","Yf","Zf","Xf","Kf","Gf","Jf","removeEventListener","addEventListener","Qf","tv","iv","changedTouches","nv","sv","ev","rv","hv","lv","button","av","ov","touches","_v","uv","documentElement","cv","dv","fv","identifier","passive","vv","pv","mv","bv","wv","composed","contains","composedPath","gv","chrome","preventDefault","Mv","xv","Sv","kv","yv","ms","Cv","Tv","getBoundingClientRect","clientX","clientY","Pv","Rv","sourceCapabilities","firesTouchEvents","pageX","pageY","screenX","screenY","localX","localY","ctrlKey","altKey","shiftKey","metaKey","Dv","startsWith","Vv","Ov","Bv","view","Av","cancelable","timeStamp","Iv","zv","externalId","Lv","cursorStyle","Ev","Nv","Fv","Wv","jv","Hv","$v","Uv","qv","Yv","Zv","Xv","Kv","overflow","Gv","zIndex","Jv","Qv","tp","ip","np","sp","ep","rp","hp","lp","ap","op","_p","up","cp","dp","fp","vp","pp","mp","bp","wp","gp","Mp","xp","Sp","drawImage","kp","rect","alignLabels","yp","cursor","Cp","Tp","Pp","Rp","Dp","Vp","Op","Bp","Ap","Ip","zp","Lp","Ep","Np","Fp","Wp","padding","jp","Hp","$p","Up","qp","Yp","Zp","Xp","Kp","Gp","Jp","Qp","tm","im","nm","sm","rm","hm","lm","am","trackingMode","exitMode","om","isBackground","_m","um","dm","fm","vm","pm","bm","wm","gm","Mm","xm","Sm","km","activeElement","blur","getSelection","removeAllRanges","kineticScroll","ym","Cm","touch","mouse","Tm","Pm","Rm","Dm","Vm","Om","Bm","Am","Im","zm","Lm","Em","Nm","Fm","Wm","jm","Hm","$m","Um","qm","Ym","allowBoldLabels","Zm","userAgentData","brands","some","brand","Xm","Km","Gm","Jm","Qm","tb","ib","nb","classList","add","userSelect","webkitUserSelect","msUserSelect","MozUserSelect","webkitTapHighlightColor","sb","setAttribute","eb","rb","hb","lb","ab","autoSize","ob","ub","cb","fb","cancelAnimationFrame","parentElement","pb","mb","bb","wb","gb","Mb","xb","Sb","kb","yb","setProperty","removeProperty","Cb","Tb","Pb","minimumWidth","minimumHeight","Rb","deltaMode","DOM_DELTA_PAGE","DOM_DELTA_LINE","deltaX","deltaY","Db","Vb","Ob","requestAnimationFrame","pop","Bb","Ab","insertBefore","Ib","zb","Lb","Eb","Nb","Fb","Wb","display","contentRect","Boolean","getOwnPropertySymbols","propertyIsEnumerable","customValues","jb","Hb","$b","Ub","qb","Yb","Zb","Xb","Kb","pointData","Gb","Jb","Qb","tw","iw","nw","sw","ew","rw","hw","lw","language","aw","ow","applyOptions","_w","uw","cw","dw","fw","priceToCoordinate","coordinateToPrice","barsInLogicalRange","barsBefore","barsAfter","setData","pw","mw","bw","dataByIndex","seriesType","data","subscribeDataChanged","unsubscribeDataChanged","setMarkers","markers","priceScale","createPriceLine","removePriceLine","attachPrimitive","attached","chart","series","requestUpdate","detachPrimitive","detached","ww","gw","Mw","xw","scrollPosition","scrollToPosition","scrollToRealTime","getVisibleRange","setVisibleRange","getVisibleLogicalRange","setVisibleLogicalRange","resetTimeScale","fitContent","logicalToCoordinate","coordinateToLogical","timeToCoordinate","coordinateToTime","subscribeVisibleTimeRangeChange","unsubscribeVisibleTimeRangeChange","subscribeVisibleLogicalRangeChange","unsubscribeVisibleLogicalRangeChange","subscribeSizeChange","unsubscribeSizeChange","Sw","kw","yw","Cw","Tw","Pw","Rw","Dw","remove","resize","autoSizeActive","addCustomSeries","defaultOptions","Vw","addAreaSeries","addBaselineSeries","addBarSeries","addCandlestickSeries","addHistogramSeries","addLineSeries","removeSeries","Ow","subscribeClick","unsubscribeClick","subscribeCrosshairMove","unsubscribeCrosshairMove","subscribeDblClick","unsubscribeDblClick","takeScreenshot","chartElement","paneSize","setCrosshairPosition","clearCrosshairPosition","Bw","logical","point","hoveredSeries","hoveredObjectId","seriesData","sourceEvent","getElementById","ChartRenderer","container","initialize","createChart","CrosshairMode","formatPrice","ticker","mint","substring","handleResize","updateData","validCandles","setTimeframe","timeframe","destroy","getChart","getSeries","thisArg","apply","getPrototypeOf","iterator","toStringTag","Symbol","kindOf","cache","create","thing","str","kindOfTest","typeOfTest","isUndefined","isBuffer","val","isFunction","isArrayBuffer","isString","isNumber","isObject","isPlainObject","isDate","isFile","isBlob","isFileList","isURLSearchParams","isReadableStream","isRequest","isResponse","isHeaders","obj","allOwnKeys","getOwnPropertyNames","len","findKey","_key","_global","globalThis","self","global","isContextDefined","isTypedArray","TypedArray","Uint8Array","isHTMLForm","prop","isRegExp","reduceDescriptors","reducer","descriptors","getOwnPropertyDescriptors","reducedDescriptors","descriptor","name","ret","defineProperties","isAsyncFn","_setImmediate","setImmediateSupported","setImmediate","postMessageSupported","postMessage","token","random","callbacks","source","shift","asap","queueMicrotask","process","nextTick","utils$1","isFormData","kind","FormData","append","isArrayBufferView","result","ArrayBuffer","isView","buffer","isBoolean","isEmptyObject","isStream","pipe","merge","caseless","skipUndefined","assignValue","targetKey","extend","stripBOM","content","charCodeAt","inherits","superConstructor","props","toFlatObject","sourceObj","destObj","propFilter","merged","endsWith","searchString","lastIndex","toArray","arr","forEachEntry","_iterator","done","pair","matchAll","regExp","matches","hasOwnProp","freezeMethods","writable","toObjectSet","arrayOrString","delimiter","define","split","toCamelCase","p1","p2","toUpperCase","noop","toFiniteNumber","defaultValue","isSpecCompliantForm","toJSONObject","stack","visit","reducedValue","isThenable","isIterable","AxiosError","message","code","config","request","response","captureStackTrace","status","utils","toJSON","description","number","fileName","lineNumber","columnNumber","error","customProps","axiosError","msg","errCode","cause","isVisitable","removeBrackets","renderKey","path","dots","join","predicates","toFormData","formData","metaTokens","indexes","option","visitor","defaultVisitor","useBlob","Blob","convertValue","toISOString","Buffer","JSON","stringify","isFlatArray","exposedHelpers","build","encode","charMap","encodeURIComponent","match","AxiosURLSearchParams","params","_pairs","buildURL","url","_encode","serialize","serializeFn","serializedParams","hashmarkIndex","encoder","InterceptorManager","handlers","use","fulfilled","rejected","synchronous","runWhen","eject","transitionalDefaults","silentJSONParsing","forcedJSONParsing","clarifyTimeoutError","platform$1","isBrowser","classes","URLSearchParams","protocols","hasBrowserEnv","_navigator","hasStandardBrowserEnv","product","hasStandardBrowserWebWorkerEnv","WorkerGlobalScope","importScripts","origin","formDataToJSON","buildPath","isNumericKey","isLast","arrayToObject","parsePropPath","defaults","transitional","adapter","transformRequest","headers","contentType","getContentType","hasJSONContentType","isObjectPayload","setContentType","helpers","isNode","toURLEncodedForm","formSerializer","_FormData","env","rawValue","parser","parse","stringifySafely","transformResponse","JSONRequested","responseType","strictJSONParsing","parseReviver","ERR_BAD_RESPONSE","timeout","xsrfCookieName","xsrfHeaderName","maxContentLength","maxBodyLength","validateStatus","common","Accept","method","ignoreDuplicateOf","$internals","normalizeHeader","header","normalizeValue","matchHeaderValue","isHeaderNameFilter","AxiosHeaders$1","valueOrRewrite","rewrite","setHeader","_value","_header","_rewrite","lHeader","setHeaders","rawHeaders","parsed","line","parseHeaders","dest","tokens","tokensRE","parseTokens","matcher","deleted","deleteHeader","normalize","normalized","char","formatHeader","targets","asStrings","getSetCookie","computed","accessor","accessors","defineAccessor","accessorName","methodName","arg1","arg2","arg3","buildAccessors","transformData","fns","AxiosHeaders","isCancel","__CANCEL__","CanceledError","ERR_CANCELED","settle","reject","ERR_BAD_REQUEST","mapped","headerValue","progressEventReducer","isDownloadStream","freq","bytesNotified","_speedometer","samplesCount","bytes","timestamps","firstSampleTS","head","tail","chunkLength","startedAt","bytesCount","passed","speedometer","lastArgs","timer","threshold","invoke","args","throttle","loaded","total","lengthComputable","progressBytes","rate","progress","estimated","event","progressEventDecorator","throttled","asyncDecorator","isURLSameOrigin","isMSIE","protocol","host","port","cookies","write","expires","domain","secure","cookie","toGMTString","read","RegExp","decodeURIComponent","buildFullPath","baseURL","requestedURL","allowAbsoluteUrls","isRelativeUrl","relativeURL","combineURLs","headersToObject","mergeConfig","config1","config2","getMergedValue","mergeDeepProperties","valueFromConfig2","defaultToConfig2","mergeDirectKeys","mergeMap","paramsSerializer","timeoutMessage","withCredentials","withXSRFToken","onUploadProgress","onDownloadProgress","decompress","beforeRedirect","transport","httpAgent","httpsAgent","cancelToken","socketPath","responseEncoding","configValue","resolveConfig","newConfig","auth","btoa","username","password","unescape","getHeaders","formHeaders","allowedHeaders","xsrfValue","xhrAdapter","XMLHttpRequest","_config","requestData","requestHeaders","onCanceled","uploadThrottled","downloadThrottled","flushUpload","flushDownload","signal","onloadend","responseHeaders","getAllResponseHeaders","err","responseText","statusText","onreadystatechange","readyState","responseURL","onabort","ECONNABORTED","onerror","ERR_NETWORK","ontimeout","timeoutErrorMessage","ETIMEDOUT","setRequestHeader","upload","cancel","abort","aborted","parseProtocol","send","composeSignals","signals","controller","AbortController","reason","streamChunk","chunk","chunkSize","byteLength","end","pos","readStream","async","stream","asyncIterator","reader","getReader","trackStream","onProgress","onFinish","iterable","readBytes","_onFinish","ReadableStream","pull","loadedBytes","enqueue","return","highWaterMark","globalFetchAPI","Request","Response","TextEncoder","factory","fetch","envFetch","isFetchSupported","isRequestSupported","isResponseSupported","isReadableStreamSupported","encodeText","arrayBuffer","supportsRequestStream","duplexAccessed","hasContentType","duplex","supportsResponseStream","resolvers","res","ERR_NOT_SUPPORT","resolveBodyLength","getContentLength","_request","getBodyLength","fetchOptions","_fetch","composedSignal","toAbortSignal","requestContentLength","contentTypeHeader","flush","isCredentialsSupported","resolvedOptions","credentials","isStreamResponse","responseContentLength","responseData","seedCache","getFetch","seeds","seed","knownAdapters","http","xhr","fetchAdapter.getFetch","renderReason","isResolvedHandle","adapters","nameOrAdapter","rejectedReasons","reasons","state","throwIfCancellationRequested","throwIfRequested","dispatchRequest","VERSION","validators","deprecatedWarnings","validator","version","formatMessage","opt","desc","opts","ERR_DEPRECATED","spelling","correctSpelling","assertOptions","schema","allowUnknown","ERR_BAD_OPTION_VALUE","ERR_BAD_OPTION","Axios$1","instanceConfig","interceptors","configOrUrl","dummy","boolean","function","baseUrl","withXsrfToken","contextHeaders","requestInterceptorChain","synchronousRequestInterceptors","interceptor","responseInterceptorChain","promise","chain","onFulfilled","onRejected","getUri","Axios","generateHTTPMethod","isForm","HttpStatusCode","Continue","SwitchingProtocols","Processing","EarlyHints","Ok","Created","Accepted","NonAuthoritativeInformation","NoContent","ResetContent","PartialContent","MultiStatus","AlreadyReported","ImUsed","MultipleChoices","MovedPermanently","Found","SeeOther","NotModified","UseProxy","Unused","TemporaryRedirect","PermanentRedirect","BadRequest","Unauthorized","PaymentRequired","Forbidden","NotFound","MethodNotAllowed","NotAcceptable","ProxyAuthenticationRequired","RequestTimeout","Conflict","Gone","LengthRequired","PreconditionFailed","PayloadTooLarge","UriTooLong","UnsupportedMediaType","RangeNotSatisfiable","ExpectationFailed","ImATeapot","MisdirectedRequest","UnprocessableEntity","Locked","FailedDependency","TooEarly","UpgradeRequired","PreconditionRequired","TooManyRequests","RequestHeaderFieldsTooLarge","UnavailableForLegalReasons","InternalServerError","NotImplemented","BadGateway","ServiceUnavailable","GatewayTimeout","HttpVersionNotSupported","VariantAlsoNegotiates","InsufficientStorage","LoopDetected","NotExtended","NetworkAuthenticationRequired","axios","createInstance","defaultConfig","instance","CancelToken","executor","resolvePromise","_listeners","onfulfilled","_resolve","Cancel","all","promises","spread","callback","isAxiosError","payload","formToJSON","getAdapter","default","API_CONFIG","BASE_URL","FUNHI_CHART_API_URL","NEXT_PUBLIC_BACKEND_URL","TIMEOUT","MAX_RETRIES","RETRY_DELAY","candleStorageService","savingQueue","BATCH_DELAY","BATCH_SIZE","saveCandles","timeFrame","post","success","saveCandle","queueKey","existingQueue","flushQueue","queue","limit","candleCount","warning","flushAll","flushPromises","timeFrameStr","CandleStorageAdapter","effectiveLimit","MAX_SAFE_INTEGER","RealTimeUpdateHandler","timeframeManager","lastUpdate","handlePriceUpdate","debounce","handleSocketUpdate","timeframeKey","backendCandle","getTimeframeSeconds","candleData","FunhiChartController","currentTimeframe","storageAdapter","updateHandler","chartOptions","chartRenderer","loadTimeframeData","getCurrentCandles","updatePrice","switchTimeframe","updatedCandles","getCurrentTimeframe","useSocket","socketInstance","socket","useState","isConnected","setIsConnected","isConnecting","setIsConnecting","useEffect","handleConnect","handleDisconnect","handleConnectError","connected","off","connect","useCallback","subscribeToOHLCV","onInitialData","onUpdate","onNewCandle","emit","unsubscribeFromOHLCV","subscribeToPrice","onPriceUpdate","unsubscribeFromPrice","testConnection","once","useOptimizedTokenAnalytics","analyticsData","analytics","setAnalytics","loading","setLoading","setError","setLastUpdate","setConnected","derivedValues","useMemo","market","currentMarketCap","currentVolume","performance24h","isPositive","raw","performance7d","performance1m","performanceAllTime","high24h","low24h","volume24h","return24h","marketCap","current","blockchain","currentRealSol","percentage","gain","isRealVolume","FunhiChart","tokenName","externalSocket","externalIsConnected","externalMarketCap","analyticsConnected","externalAnalyticsConnected","analyticsLoading","externalAnalyticsLoading","chartContainerRef","useRef","controllerRef","timeframeLoading","setTimeframeLoading","loadingTimeframe","setLoadingTimeframe","setCurrentTimeframe","internalSocketData","internalAnalytics","realTimeMarketCap","timeFrames","formatMarketCap","handleMultiTimeframeCandles","handleTimeFrameChange","timeFrameValue","newTimeFrame","React","className","onClick","currentCandles","isCurrentTimeframe","isCurrentlyLoading","isDisabled","disabled","animationDelay","ref","candleAggregation","aggregateCandles","oneMinuteCandles","targetTimeframe","aggregatedCandles","currentGroup","groupStartTime","bucketTime","aggregated","aggregateGroup","getTimeframeLabel","sorted","sum","fillGaps","filled","updateRealtimeCandle","newOneMinuteCandle","existing","updated","newCandles","cleanCandles","cleaned","getRequiredOneMinuteCandles","targetCount"],"mappings":"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","x_google_ignoreList":[3,4,5,6,7,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58]}
|