@vninvestcharts/widget 0.0.0-stage → 0.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +201 -0
- package/NOTICE.md +83 -0
- package/README.md +851 -3
- package/dist/AlertsModal-WKEUDTUZ.js +2 -0
- package/dist/ConnectedTradingPanel-KWJMIKTN.css +2 -0
- package/dist/ConnectedTradingPanel-XDKMOQY5.js +2 -0
- package/dist/PineEditorPanel-AUXB4FD3.js +2 -0
- package/dist/PineEditorPanel-V6YN2OTU.css +2 -0
- package/dist/RightSidebarDockHost-6FPZ6EKV.css +2 -0
- package/dist/RightSidebarDockHost-OBFXKSIY.js +2 -0
- package/dist/StrategyTesterPanel-6IUTS2P4.js +2 -0
- package/dist/StrategyTesterPanel-LEWEUMXP.css +2 -0
- package/dist/VolumeProfileWorker-UREKVPUE.js +189 -0
- package/dist/adapters/index.cjs +2532 -0
- package/dist/adapters/index.d.mts +673 -0
- package/dist/adapters/index.d.ts +673 -0
- package/dist/adapters/index.js +2521 -0
- package/dist/adapters/index.umd.js +2535 -0
- package/dist/chunk-5T6DGB3V.js +2 -0
- package/dist/chunk-66JBEGR3.js +4 -0
- package/dist/chunk-6D7DVBIK.js +2 -0
- package/dist/chunk-76E7CKUD.js +2 -0
- package/dist/chunk-AKWVXRQ6.js +2 -0
- package/dist/chunk-FHHSTO6Z.js +2 -0
- package/dist/chunk-HPL723JA.js +2 -0
- package/dist/chunk-NVGTF73S.js +2 -0
- package/dist/chunk-PNIB4OM3.js +2 -0
- package/dist/chunk-UKJ5AKQX.js +595 -0
- package/dist/chunk-UYJTX3SD.js +2 -0
- package/dist/combined.css +3068 -0
- package/dist/css-modules-manifest.json +297 -0
- package/dist/dist-Y6PZ2RN3.js +12 -0
- package/dist/drawing/index.cjs +53 -0
- package/dist/drawing/index.d.mts +2 -0
- package/dist/drawing/index.d.ts +2 -0
- package/dist/drawing/index.js +2 -0
- package/dist/drawing/index.umd.js +54 -0
- package/dist/dts/drawing-shim.d.ts +3 -0
- package/dist/dts/index.d.ts +31 -0
- package/dist/dts/lib/Chart.d.ts +31 -0
- package/dist/dts/lib/ChartContext.d.ts +10 -0
- package/dist/dts/lib/EventCapture.d.ts +3 -0
- package/dist/dts/lib/GenericChartComponent.d.ts +5 -0
- package/dist/dts/lib/GenericComponent.d.ts +124 -0
- package/dist/dts/lib/StockChartContext.d.ts +53 -0
- package/dist/dts/lib/adapters/BaseAdapter.d.ts +25 -0
- package/dist/dts/lib/adapters/BinanceAdapter.d.ts +51 -0
- package/dist/dts/lib/adapters/CSVAdapter.d.ts +17 -0
- package/dist/dts/lib/adapters/ContinuousContractAdapter.d.ts +63 -0
- package/dist/dts/lib/adapters/ContinuousContractTypes.d.ts +154 -0
- package/dist/dts/lib/adapters/DBAdapter.d.ts +16 -0
- package/dist/dts/lib/adapters/DataAdapter.d.ts +136 -0
- package/dist/dts/lib/adapters/DjangoVnstockAdapter.d.ts +15 -0
- package/dist/dts/lib/adapters/LocalCacheAdapter.d.ts +18 -0
- package/dist/dts/lib/adapters/MockAdapter.d.ts +22 -0
- package/dist/dts/lib/adapters/RESTAdapter.d.ts +16 -0
- package/dist/dts/lib/adapters/StockDataAdapter.d.ts +1 -0
- package/dist/dts/lib/adapters/UDFDataAdapter.d.ts +29 -0
- package/dist/dts/lib/adapters/VNStocksAdapter.d.ts +8 -0
- package/dist/dts/lib/adapters/WSAdapter.d.ts +30 -0
- package/dist/dts/lib/adapters/gapFixture.d.ts +71 -0
- package/dist/dts/lib/adapters/index.d.ts +15 -0
- package/dist/dts/lib/adapters/rollAlgorithms.d.ts +68 -0
- package/dist/dts/lib/advisory/AdvisoryPanel.d.ts +5 -0
- package/dist/dts/lib/alerts/AlertEvaluator.d.ts +5 -0
- package/dist/dts/lib/alerts/AlertManager.d.ts +123 -0
- package/dist/dts/lib/alerts/types.d.ts +58 -0
- package/dist/dts/lib/cache/cacheDebug.d.ts +3 -0
- package/dist/dts/lib/calendars/ExchangeCalendar.d.ts +23 -0
- package/dist/dts/lib/calendars/calendarRegistry.d.ts +10 -0
- package/dist/dts/lib/calendars/index.d.ts +3 -0
- package/dist/dts/lib/core/ChartPane.d.ts +8 -0
- package/dist/dts/lib/core/ChartSplitter.d.ts +70 -0
- package/dist/dts/lib/core/ChartTerminal.d.ts +12 -0
- package/dist/dts/lib/core/ErrorBoundary.d.ts +17 -0
- package/dist/dts/lib/core/IndicatorLegend.d.ts +47 -0
- package/dist/dts/lib/core/PaneHeader.d.ts +24 -0
- package/dist/dts/lib/core/PaneLabel.d.ts +8 -0
- package/dist/dts/lib/core/PaneSplitter.d.ts +9 -0
- package/dist/dts/lib/core/SeriesPicker.d.ts +10 -0
- package/dist/dts/lib/core/calculators/alignBarsByDate.d.ts +38 -0
- package/dist/dts/lib/core/calculators/buildIndicatorComputationPlan.d.ts +16 -0
- package/dist/dts/lib/core/calculators/calcCVDApprox.d.ts +6 -0
- package/dist/dts/lib/core/calculators/calcStrengthElder.d.ts +7 -0
- package/dist/dts/lib/core/calculators/calcWhaleApprox.d.ts +6 -0
- package/dist/dts/lib/core/calculators/computationHelpers.d.ts +12 -0
- package/dist/dts/lib/core/calculators/computeIndicatorComputationResult.d.ts +3 -0
- package/dist/dts/lib/core/calculators/computeMarketStructure.d.ts +8 -0
- package/dist/dts/lib/core/calculators/computeMomentum.d.ts +22 -0
- package/dist/dts/lib/core/calculators/computeMovingAverage.d.ts +15 -0
- package/dist/dts/lib/core/calculators/computeProfile.d.ts +9 -0
- package/dist/dts/lib/core/calculators/computeTrend.d.ts +10 -0
- package/dist/dts/lib/core/calculators/computeVolatility.d.ts +14 -0
- package/dist/dts/lib/core/calculators/computeVolumeFlow.d.ts +19 -0
- package/dist/dts/lib/core/calculators/enrichData.d.ts +7 -0
- package/dist/dts/lib/core/calculators/enrichDataWithCanonicalStore.d.ts +33 -0
- package/dist/dts/lib/core/calculators/exoticChartData.d.ts +140 -0
- package/dist/dts/lib/core/calculators/fixtures/mockData.d.ts +2 -0
- package/dist/dts/lib/core/calculators/indicatorComputation.d.ts +27 -0
- package/dist/dts/lib/core/calculators/indicatorComputationTypes.d.ts +249 -0
- package/dist/dts/lib/core/calculators/materializeIndicatorValues.d.ts +3 -0
- package/dist/dts/lib/core/calculators/normalizePrices.d.ts +36 -0
- package/dist/dts/lib/core/calculators/resolveCalculationOrder.d.ts +17 -0
- package/dist/dts/lib/core/calculators/types.d.ts +269 -0
- package/dist/dts/lib/core/canvas/ChartRenderContext.d.ts +14 -0
- package/dist/dts/lib/core/canvas/OverlayCanvas.d.ts +19 -0
- package/dist/dts/lib/core/context/ChartSyncContext.d.ts +21 -0
- package/dist/dts/lib/core/context/DataContext.d.ts +15 -0
- package/dist/dts/lib/core/context/PaneManagerContext.d.ts +10 -0
- package/dist/dts/lib/core/hooks/paneSizingHelpers.d.ts +13 -0
- package/dist/dts/lib/core/hooks/useCanvasResize.d.ts +8 -0
- package/dist/dts/lib/core/hooks/useChartTheme.d.ts +12 -0
- package/dist/dts/lib/core/hooks/useDynamicPanes.d.ts +155 -0
- package/dist/dts/lib/core/hooks/useIndicatorSets.d.ts +20 -0
- package/dist/dts/lib/core/hooks/usePaneManager.d.ts +39 -0
- package/dist/dts/lib/core/hooks/usePaneSizes.d.ts +52 -0
- package/dist/dts/lib/core/index.d.ts +41 -0
- package/dist/dts/lib/core/paneScaleSlotDomains.d.ts +3 -0
- package/dist/dts/lib/core/registry/SeriesRegistry.d.ts +22 -0
- package/dist/dts/lib/core/registry/filterPanesBySeriesTier.d.ts +43 -0
- package/dist/dts/lib/core/registry/marketStructure.d.ts +7 -0
- package/dist/dts/lib/core/registry/momentum.d.ts +20 -0
- package/dist/dts/lib/core/registry/movingAverage.d.ts +14 -0
- package/dist/dts/lib/core/registry/priceChartTypes.d.ts +16 -0
- package/dist/dts/lib/core/registry/profile.d.ts +8 -0
- package/dist/dts/lib/core/registry/registerAll.d.ts +1 -0
- package/dist/dts/lib/core/registry/registerPhaseOne.d.ts +3 -0
- package/dist/dts/lib/core/registry/registryCore.d.ts +77 -0
- package/dist/dts/lib/core/registry/trend.d.ts +11 -0
- package/dist/dts/lib/core/registry/volatility.d.ts +11 -0
- package/dist/dts/lib/core/registry/volumeFlow.d.ts +20 -0
- package/dist/dts/lib/core/replay/BarReplayController.d.ts +62 -0
- package/dist/dts/lib/core/replay/ReplayEventBus.d.ts +68 -0
- package/dist/dts/lib/core/replay/ReplayFillSimulator.d.ts +33 -0
- package/dist/dts/lib/core/replay/ReplayOrderBook.d.ts +24 -0
- package/dist/dts/lib/core/replay/ReplayPositionManager.d.ts +30 -0
- package/dist/dts/lib/core/replay/ReplaySessionAnalytics.d.ts +31 -0
- package/dist/dts/lib/core/replay/createReplayTradeMarkerPrimitives.d.ts +7 -0
- package/dist/dts/lib/core/replay/pnlUtils.d.ts +2 -0
- package/dist/dts/lib/core/replay/replayBrokerAdapters.d.ts +51 -0
- package/dist/dts/lib/core/replay/replayTradingTypes.d.ts +61 -0
- package/dist/dts/lib/core/scales/computeScales.d.ts +8 -0
- package/dist/dts/lib/core/seriesValueResolver.d.ts +27 -0
- package/dist/dts/lib/core/sets/builtins.d.ts +2 -0
- package/dist/dts/lib/core/sets/indicatorSetCodec.d.ts +15 -0
- package/dist/dts/lib/core/trading/AnalyticsEngine.d.ts +56 -0
- package/dist/dts/lib/core/trading/BrokerAPI.d.ts +40 -0
- package/dist/dts/lib/core/trading/ExecutionSimulator.d.ts +53 -0
- package/dist/dts/lib/core/trading/FillSettlement.d.ts +38 -0
- package/dist/dts/lib/core/trading/MarketDataPort.d.ts +41 -0
- package/dist/dts/lib/core/trading/MarketRules.d.ts +58 -0
- package/dist/dts/lib/core/trading/OrderManagementSystem.d.ts +57 -0
- package/dist/dts/lib/core/trading/PositionManager.d.ts +79 -0
- package/dist/dts/lib/core/trading/RiskEngine.d.ts +40 -0
- package/dist/dts/lib/core/trading/SettlementCalendar.d.ts +10 -0
- package/dist/dts/lib/core/trading/VirtualBrokerEngine.d.ts +92 -0
- package/dist/dts/lib/core/trading/orderMargin.d.ts +3 -0
- package/dist/dts/lib/core/trading/storage/InMemoryStorageAdapter.d.ts +10 -0
- package/dist/dts/lib/core/trading/storage/TradingStorage.d.ts +34 -0
- package/dist/dts/lib/core/trading/types.d.ts +99 -0
- package/dist/dts/lib/core/types/chart.d.ts +21 -0
- package/dist/dts/lib/core/types/indicator-catalog.d.ts +38 -0
- package/dist/dts/lib/core/types/indicator-set.d.ts +19 -0
- package/dist/dts/lib/core/types/pane-descriptor.d.ts +46 -0
- package/dist/dts/lib/core/types/seriesComponents.d.ts +15 -0
- package/dist/dts/lib/credentials/credentialStore.d.ts +93 -0
- package/dist/dts/lib/helper/SaveChartAsImage.d.ts +90 -0
- package/dist/dts/lib/indicator/defaultOptionsForAppearance.d.ts +105 -0
- package/dist/dts/lib/indicators/builtin/MTFWrapper.d.ts +3 -0
- package/dist/dts/lib/indicators/builtin/VolumeProfileWorker.d.ts +19 -0
- package/dist/dts/lib/indicators/builtin/ac.d.ts +4 -0
- package/dist/dts/lib/indicators/builtin/alligator.d.ts +5 -0
- package/dist/dts/lib/indicators/builtin/anchoredVwap.d.ts +5 -0
- package/dist/dts/lib/indicators/builtin/ao.d.ts +4 -0
- package/dist/dts/lib/indicators/builtin/bbi.d.ts +10 -0
- package/dist/dts/lib/indicators/builtin/bias.d.ts +4 -0
- package/dist/dts/lib/indicators/builtin/bollinger.d.ts +9 -0
- package/dist/dts/lib/indicators/builtin/brar.d.ts +4 -0
- package/dist/dts/lib/indicators/builtin/cci.d.ts +4 -0
- package/dist/dts/lib/indicators/builtin/chaikinOscillator.d.ts +14 -0
- package/dist/dts/lib/indicators/builtin/chaikinVol.d.ts +4 -0
- package/dist/dts/lib/indicators/builtin/ci.d.ts +4 -0
- package/dist/dts/lib/indicators/builtin/cmf.d.ts +4 -0
- package/dist/dts/lib/indicators/builtin/cr.d.ts +4 -0
- package/dist/dts/lib/indicators/builtin/cvd.d.ts +4 -0
- package/dist/dts/lib/indicators/builtin/deltaProfile.d.ts +5 -0
- package/dist/dts/lib/indicators/builtin/dema.d.ts +4 -0
- package/dist/dts/lib/indicators/builtin/dma.d.ts +4 -0
- package/dist/dts/lib/indicators/builtin/dmi.d.ts +4 -0
- package/dist/dts/lib/indicators/builtin/donchian.d.ts +5 -0
- package/dist/dts/lib/indicators/builtin/ema.d.ts +4 -0
- package/dist/dts/lib/indicators/builtin/emv.d.ts +4 -0
- package/dist/dts/lib/indicators/builtin/footprint.d.ts +5 -0
- package/dist/dts/lib/indicators/builtin/fractals.d.ts +5 -0
- package/dist/dts/lib/indicators/builtin/gator.d.ts +5 -0
- package/dist/dts/lib/indicators/builtin/hma.d.ts +4 -0
- package/dist/dts/lib/indicators/builtin/hv.d.ts +4 -0
- package/dist/dts/lib/indicators/builtin/ichimoku.d.ts +5 -0
- package/dist/dts/lib/indicators/builtin/kdj.d.ts +4 -0
- package/dist/dts/lib/indicators/builtin/keltner.d.ts +5 -0
- package/dist/dts/lib/indicators/builtin/ma.d.ts +10 -0
- package/dist/dts/lib/indicators/builtin/maRibbon.d.ts +5 -0
- package/dist/dts/lib/indicators/builtin/macd.d.ts +9 -0
- package/dist/dts/lib/indicators/builtin/marketProfile.d.ts +5 -0
- package/dist/dts/lib/indicators/builtin/mfi.d.ts +4 -0
- package/dist/dts/lib/indicators/builtin/mtm.d.ts +4 -0
- package/dist/dts/lib/indicators/builtin/obv.d.ts +10 -0
- package/dist/dts/lib/indicators/builtin/pivotHighLow.d.ts +5 -0
- package/dist/dts/lib/indicators/builtin/pivotStandard.d.ts +5 -0
- package/dist/dts/lib/indicators/builtin/psy.d.ts +4 -0
- package/dist/dts/lib/indicators/builtin/pvt.d.ts +4 -0
- package/dist/dts/lib/indicators/builtin/roc.d.ts +4 -0
- package/dist/dts/lib/indicators/builtin/rsi.d.ts +4 -0
- package/dist/dts/lib/indicators/builtin/sar.d.ts +10 -0
- package/dist/dts/lib/indicators/builtin/sma.d.ts +4 -0
- package/dist/dts/lib/indicators/builtin/smfi.d.ts +8 -0
- package/dist/dts/lib/indicators/builtin/stdDev.d.ts +4 -0
- package/dist/dts/lib/indicators/builtin/strengthRelative.d.ts +7 -0
- package/dist/dts/lib/indicators/builtin/supertrend.d.ts +5 -0
- package/dist/dts/lib/indicators/builtin/tema.d.ts +4 -0
- package/dist/dts/lib/indicators/builtin/trix.d.ts +4 -0
- package/dist/dts/lib/indicators/builtin/volOsc.d.ts +4 -0
- package/dist/dts/lib/indicators/builtin/volume.d.ts +4 -0
- package/dist/dts/lib/indicators/builtin/volumeProfile.d.ts +8 -0
- package/dist/dts/lib/indicators/builtin/vr.d.ts +10 -0
- package/dist/dts/lib/indicators/builtin/vwap.d.ts +5 -0
- package/dist/dts/lib/indicators/builtin/vwma.d.ts +4 -0
- package/dist/dts/lib/indicators/builtin/wma.d.ts +4 -0
- package/dist/dts/lib/indicators/builtin/wr.d.ts +10 -0
- package/dist/dts/lib/indicators/builtin/wyckoffWave.d.ts +15 -0
- package/dist/dts/lib/indicators/index.d.ts +63 -0
- package/dist/dts/lib/indicators/indicatorValueShapes.d.ts +15 -0
- package/dist/dts/lib/indicators/outputKeys.d.ts +50 -0
- package/dist/dts/lib/indicators/overlays/CVDIndicator.d.ts +26 -0
- package/dist/dts/lib/indicators/overlays/DarkFlowBadge.d.ts +19 -0
- package/dist/dts/lib/indicators/overlays/ExternalCVDOverlay.d.ts +15 -0
- package/dist/dts/lib/indicators/overlays/WhaleBubbleOverlay.d.ts +14 -0
- package/dist/dts/lib/indicators/overlays/WhaleMarketBubbleOverlay.d.ts +27 -0
- package/dist/dts/lib/indicators/overlays/whaleDetector.d.ts +66 -0
- package/dist/dts/lib/indicators/registry.d.ts +6 -0
- package/dist/dts/lib/indicators/types.d.ts +5 -0
- package/dist/dts/lib/indicators/utils.d.ts +259 -0
- package/dist/dts/lib/pinescript/PineCompiler.d.ts +34 -0
- package/dist/dts/lib/pinescript/ast.d.ts +73 -0
- package/dist/dts/lib/pinescript/compile.d.ts +40 -0
- package/dist/dts/lib/pinescript/grammar.d.ts +12 -0
- package/dist/dts/lib/pinescript/pine.worker.d.ts +1 -0
- package/dist/dts/lib/pinescript/pineBlocks.d.ts +54 -0
- package/dist/dts/lib/pinescript/pineBuiltins.d.ts +47 -0
- package/dist/dts/lib/pinescript/pineEnv.d.ts +46 -0
- package/dist/dts/lib/pinescript/pineMath.d.ts +13 -0
- package/dist/dts/lib/pinescript/pineParse.d.ts +25 -0
- package/dist/dts/lib/pinescript/pineStrings.d.ts +50 -0
- package/dist/dts/lib/pinescript/runtime.d.ts +5 -0
- package/dist/dts/lib/pinescript/scriptRegistry.d.ts +40 -0
- package/dist/dts/lib/pinescript/series-value.d.ts +64 -0
- package/dist/dts/lib/pinescript/vnscript-completion.d.ts +1 -0
- package/dist/dts/lib/pinescript/vnscript-grammar.d.ts +19 -0
- package/dist/dts/lib/scale/discontinuousTimeScaleProvider.d.ts +3 -0
- package/dist/dts/lib/scale/financeDiscontinuousScale.d.ts +15 -0
- package/dist/dts/lib/scale/index.d.ts +1 -0
- package/dist/dts/lib/scale/levels.d.ts +12 -0
- package/dist/dts/lib/series/AlternatingFillAreaSeries.d.ts +13 -0
- package/dist/dts/lib/series/AreaOnlySeries.d.ts +10 -0
- package/dist/dts/lib/series/AreaSeries.d.ts +30 -0
- package/dist/dts/lib/series/BarSeries.d.ts +40 -0
- package/dist/dts/lib/series/BollingerSeries.d.ts +11 -0
- package/dist/dts/lib/series/CandlestickSeries.d.ts +56 -0
- package/dist/dts/lib/series/CircleMarker.d.ts +28 -0
- package/dist/dts/lib/series/ElderRaySeries.d.ts +14 -0
- package/dist/dts/lib/series/FootprintSeries.d.ts +21 -0
- package/dist/dts/lib/series/GroupedBarSeries.d.ts +9 -0
- package/dist/dts/lib/series/HTFOverlaySeries.d.ts +32 -0
- package/dist/dts/lib/series/HistogramSeries.d.ts +51 -0
- package/dist/dts/lib/series/KagiSeries.d.ts +9 -0
- package/dist/dts/lib/series/LineBreakSeries.d.ts +28 -0
- package/dist/dts/lib/series/LineSeries.d.ts +54 -0
- package/dist/dts/lib/series/MACDSeries.d.ts +28 -0
- package/dist/dts/lib/series/MarketProfileSeries.d.ts +18 -0
- package/dist/dts/lib/series/OHLCSeries.d.ts +9 -0
- package/dist/dts/lib/series/OverlayBarSeries.d.ts +9 -0
- package/dist/dts/lib/series/PointAndFigureSeries.d.ts +45 -0
- package/dist/dts/lib/series/RSISeries.d.ts +38 -0
- package/dist/dts/lib/series/RenkoSeries.d.ts +9 -0
- package/dist/dts/lib/series/SARSeries.d.ts +10 -0
- package/dist/dts/lib/series/SVGComponent.d.ts +5 -0
- package/dist/dts/lib/series/ScatterSeries.d.ts +9 -0
- package/dist/dts/lib/series/SquareMarker.d.ts +28 -0
- package/dist/dts/lib/series/StackedBarSeries.d.ts +19 -0
- package/dist/dts/lib/series/StochasticSeries.d.ts +9 -0
- package/dist/dts/lib/series/StraightLine.d.ts +18 -0
- package/dist/dts/lib/series/TriangleMarker.d.ts +30 -0
- package/dist/dts/lib/series/VolumeProfileSeries.d.ts +9 -0
- package/dist/dts/lib/series/index.d.ts +28 -0
- package/dist/dts/lib/strategy/BrokerSimulator.d.ts +11 -0
- package/dist/dts/lib/strategy/types.d.ts +35 -0
- package/dist/dts/lib/tape/TapePanel.d.ts +5 -0
- package/dist/dts/lib/types/adapter.d.ts +1 -0
- package/dist/dts/lib/types/index.d.ts +5 -0
- package/dist/dts/lib/types/indicator.d.ts +11 -0
- package/dist/dts/lib/types/ohlcv.d.ts +1 -0
- package/dist/dts/lib/types/pane.d.ts +23 -0
- package/dist/dts/lib/types/runtime.d.ts +11 -0
- package/dist/dts/lib/types/vninvest.d.ts +320 -0
- package/dist/dts/lib/types.d.ts +45 -0
- package/dist/dts/lib/utils/ChartDataUtil.d.ts +26 -0
- package/dist/dts/lib/utils/PureComponent.d.ts +5 -0
- package/dist/dts/lib/utils/accumulatingWindow.d.ts +1 -0
- package/dist/dts/lib/utils/axisPriceFormat.d.ts +6 -0
- package/dist/dts/lib/utils/barWidth.d.ts +14 -0
- package/dist/dts/lib/utils/identity.d.ts +1 -0
- package/dist/dts/lib/utils/index.d.ts +70 -0
- package/dist/dts/lib/utils/logger.d.ts +28 -0
- package/dist/dts/lib/utils/mappedSlidingWindow.d.ts +1 -0
- package/dist/dts/lib/utils/merge.d.ts +6 -0
- package/dist/dts/lib/utils/noop.d.ts +1 -0
- package/dist/dts/lib/utils/rebind.d.ts +1 -0
- package/dist/dts/lib/utils/shallowEqual.d.ts +1 -0
- package/dist/dts/lib/utils/slidingWindow.d.ts +1 -0
- package/dist/dts/lib/utils/storage.d.ts +32 -0
- package/dist/dts/lib/utils/strokeDasharray.d.ts +3 -0
- package/dist/dts/lib/utils/timezoneFormatter.d.ts +14 -0
- package/dist/dts/lib/utils/zipper.d.ts +4 -0
- package/dist/dts/public-api.d.ts +31 -0
- package/dist/dts/widget/BackfillWorkerFlags.d.ts +12 -0
- package/dist/dts/widget/CanaryRollbackHelper.d.ts +95 -0
- package/dist/dts/widget/CanaryRolloutConfig.d.ts +100 -0
- package/dist/dts/widget/DrawingPriceLabelsOverlay.d.ts +20 -0
- package/dist/dts/widget/ForkDrawingsOverlay.d.ts +16 -0
- package/dist/dts/widget/MeasurementOverlay.d.ts +24 -0
- package/dist/dts/widget/VNInvestCharts.d.ts +5 -0
- package/dist/dts/widget/VNInvestChartsProps.d.ts +302 -0
- package/dist/dts/widget/VNInvestMultiCharts.d.ts +8 -0
- package/dist/dts/widget/VNInvestMultiCharts.types.d.ts +130 -0
- package/dist/dts/widget/WidgetEmptyState.d.ts +11 -0
- package/dist/dts/widget/WidgetErrorBoundary.d.ts +26 -0
- package/dist/dts/widget/adapters/ContinuousFuturesStockDataAdapter.d.ts +18 -0
- package/dist/dts/widget/adapters/DataProviderAdapterWrapper.d.ts +14 -0
- package/dist/dts/widget/adapters/MultiSourceDataAdapter.d.ts +24 -0
- package/dist/dts/widget/adapters/VNInvestClient.d.ts +161 -0
- package/dist/dts/widget/adapters/VNInvestDataAdapter.d.ts +77 -0
- package/dist/dts/widget/adapters/VNInvestWebSocketClient.d.ts +79 -0
- package/dist/dts/widget/adapters/barsPagingPolicy.d.ts +18 -0
- package/dist/dts/widget/adapters/corporateEvents.d.ts +13 -0
- package/dist/dts/widget/adapters/index.d.ts +20 -0
- package/dist/dts/widget/adapters/nativeShapes.d.ts +32 -0
- package/dist/dts/widget/adapters/watchlistRealtimeSync.d.ts +16 -0
- package/dist/dts/widget/alerts/DrawingAlertsHost.d.ts +18 -0
- package/dist/dts/widget/alerts/useDrawingAlerts.d.ts +37 -0
- package/dist/dts/widget/canaryBarFiltering.d.ts +35 -0
- package/dist/dts/widget/capabilities/CapabilityResolver.d.ts +71 -0
- package/dist/dts/widget/capabilities/capabilityProbe.d.ts +28 -0
- package/dist/dts/widget/capabilities/useTierGatedFeatures.d.ts +48 -0
- package/dist/dts/widget/components/BottomPanelHost.d.ts +80 -0
- package/dist/dts/widget/components/BottomPanelSplitter.d.ts +15 -0
- package/dist/dts/widget/components/CapabilityGate.d.ts +65 -0
- package/dist/dts/widget/components/ChartDiagOverlay.d.ts +31 -0
- package/dist/dts/widget/components/ConfirmDialog.d.ts +12 -0
- package/dist/dts/widget/components/DowngradeBanner.d.ts +9 -0
- package/dist/dts/widget/components/ForkPaneSeparators.d.ts +11 -0
- package/dist/dts/widget/components/ForkPaneTooltips.d.ts +23 -0
- package/dist/dts/widget/components/ForkXAxisOverlay.d.ts +11 -0
- package/dist/dts/widget/components/ForkYAxisCrosshairLabels.d.ts +9 -0
- package/dist/dts/widget/components/LayoutDesigner.d.ts +26 -0
- package/dist/dts/widget/components/PremiumFeatureGate.d.ts +10 -0
- package/dist/dts/widget/components/ShortcutHelpModal.d.ts +44 -0
- package/dist/dts/widget/components/SystemMenu.d.ts +66 -0
- package/dist/dts/widget/components/Toast.d.ts +20 -0
- package/dist/dts/widget/components/canvas/BarCountdownBadge.d.ts +8 -0
- package/dist/dts/widget/components/canvas/ChartA11ySummary.d.ts +40 -0
- package/dist/dts/widget/components/canvas/ChartStatusLine.d.ts +39 -0
- package/dist/dts/widget/components/canvas/PricePaneHeader.d.ts +24 -0
- package/dist/dts/widget/components/canvas/PriceScaleMenu.d.ts +27 -0
- package/dist/dts/widget/components/canvas/TimeAxisScrollbar.d.ts +18 -0
- package/dist/dts/widget/components/common/Icons.d.ts +67 -0
- package/dist/dts/widget/components/dock/DataWindow.d.ts +7 -0
- package/dist/dts/widget/components/dock/DockUpgradeNudge.d.ts +10 -0
- package/dist/dts/widget/components/dock/RightSidebarDockHost.d.ts +57 -0
- package/dist/dts/widget/components/dock/WatchlistPanel.d.ts +7 -0
- package/dist/dts/widget/components/dock/WorkspaceRightDockSlot.d.ts +46 -0
- package/dist/dts/widget/components/dock/dockAccess.d.ts +20 -0
- package/dist/dts/widget/components/dock/drawingDockContentBuilders.d.ts +29 -0
- package/dist/dts/widget/components/drawing/DrawingDock.d.ts +47 -0
- package/dist/dts/widget/components/drawing/DrawingInspector.d.ts +94 -0
- package/dist/dts/widget/components/drawing/DrawingListPanel.d.ts +62 -0
- package/dist/dts/widget/components/drawing/DrawingSemanticPointLegend.d.ts +14 -0
- package/dist/dts/widget/components/drawing/FloatingDrawingInspector.d.ts +18 -0
- package/dist/dts/widget/components/drawing/IconPickerPanel.d.ts +5 -0
- package/dist/dts/widget/components/drawing/InlineTextEditor.d.ts +20 -0
- package/dist/dts/widget/components/drawing/PatternScanPanel.d.ts +27 -0
- package/dist/dts/widget/components/drawing/TemplateManagerPanel.d.ts +18 -0
- package/dist/dts/widget/components/events/CorporateEventsOverlay.d.ts +23 -0
- package/dist/dts/widget/components/events/EventMarkerIcon.d.ts +6 -0
- package/dist/dts/widget/components/footer/ChartFooter.d.ts +26 -0
- package/dist/dts/widget/components/footer/MultiChartsFooter.d.ts +37 -0
- package/dist/dts/widget/components/footer/TimeframeFooter.d.ts +25 -0
- package/dist/dts/widget/components/footer/useBarCountdown.d.ts +5 -0
- package/dist/dts/widget/components/header/OHLCHeader.d.ts +72 -0
- package/dist/dts/widget/components/layout/DrawingConflictNotice.d.ts +4 -0
- package/dist/dts/widget/components/layout/GridContainer.d.ts +70 -0
- package/dist/dts/widget/components/layout/GridSlotErrorBoundary.d.ts +17 -0
- package/dist/dts/widget/components/layout/Splitter.d.ts +23 -0
- package/dist/dts/widget/components/layout/gridSplitterMath.d.ts +40 -0
- package/dist/dts/widget/components/layout/useGridSplitterDrag.d.ts +18 -0
- package/dist/dts/widget/components/mobile/MobileChartCarousel.d.ts +11 -0
- package/dist/dts/widget/components/mobile/MobileToolbar.d.ts +29 -0
- package/dist/dts/widget/components/overlays/AdvisoryPanel.d.ts +25 -0
- package/dist/dts/widget/components/overlays/TapePanel.d.ts +25 -0
- package/dist/dts/widget/components/overlays/WhalePanel.d.ts +5 -0
- package/dist/dts/widget/components/panels/AdvisoryPanel.d.ts +25 -0
- package/dist/dts/widget/components/panels/PineEditorPanel.d.ts +18 -0
- package/dist/dts/widget/components/panels/StrategyTesterPanel.d.ts +7 -0
- package/dist/dts/widget/components/panels/TapePanel.d.ts +17 -0
- package/dist/dts/widget/components/panels/index.d.ts +8 -0
- package/dist/dts/widget/components/replay/FloatingReplayToolbar.d.ts +24 -0
- package/dist/dts/widget/components/replay/ReplayCutOverlay.d.ts +8 -0
- package/dist/dts/widget/components/search/SymbolCompareModal.d.ts +24 -0
- package/dist/dts/widget/components/search/SymbolSearchModal.d.ts +12 -0
- package/dist/dts/widget/components/search/VNSymbolSearch.d.ts +83 -0
- package/dist/dts/widget/components/settings/AlertsModal.d.ts +74 -0
- package/dist/dts/widget/components/settings/SettingsContext.d.ts +58 -0
- package/dist/dts/widget/components/settings/SettingsModal.d.ts +78 -0
- package/dist/dts/widget/components/settings/SettingsRangeSlider.d.ts +17 -0
- package/dist/dts/widget/components/settings/SnapshotPreviewModal.d.ts +16 -0
- package/dist/dts/widget/components/settings/WorkspaceSettingsContext.d.ts +27 -0
- package/dist/dts/widget/components/settings/helpers/seriesFormatters.d.ts +11 -0
- package/dist/dts/widget/components/settings/model/appearancePayload.d.ts +31 -0
- package/dist/dts/widget/components/settings/model/chartSettingsSchema.d.ts +100 -0
- package/dist/dts/widget/components/settings/model/defaultSettings.d.ts +5 -0
- package/dist/dts/widget/components/settings/model/indicatorShare.d.ts +29 -0
- package/dist/dts/widget/components/settings/storageKeys.d.ts +29 -0
- package/dist/dts/widget/components/settings/tabs/AppearanceSettingsTab.d.ts +5 -0
- package/dist/dts/widget/components/settings/tabs/IndicatorParamsForm.d.ts +12 -0
- package/dist/dts/widget/components/settings/tabs/IndicatorsSettingsTab.d.ts +34 -0
- package/dist/dts/widget/components/settings/tabs/LicensingSettingsTab.d.ts +5 -0
- package/dist/dts/widget/components/settings/tabs/PanesLayoutSettingsTab.d.ts +11 -0
- package/dist/dts/widget/components/settings/tabs/ResetSettingsTab.d.ts +8 -0
- package/dist/dts/widget/components/settings/tabs/ScalesSettingsTab.d.ts +5 -0
- package/dist/dts/widget/components/settings/tabs/StatusLineSettingsTab.d.ts +5 -0
- package/dist/dts/widget/components/settings/tabs/SymbolSettingsTab.d.ts +5 -0
- package/dist/dts/widget/components/settings/tabs/ThemePaletteSettingsTab.d.ts +9 -0
- package/dist/dts/widget/components/settings/tabs/TradingEventsSettingsTab.d.ts +8 -0
- package/dist/dts/widget/components/toolbar/DrawingToolIcon.d.ts +10 -0
- package/dist/dts/widget/components/toolbar/DrawingToolbar.d.ts +33 -0
- package/dist/dts/widget/components/toolbar/FloatingChartBar.d.ts +20 -0
- package/dist/dts/widget/components/toolbar/FloatingFavoritesBar.d.ts +18 -0
- package/dist/dts/widget/components/toolbar/MultiChartTopbar.d.ts +47 -0
- package/dist/dts/widget/components/toolbar/UnifiedDrawingToolbar.d.ts +28 -0
- package/dist/dts/widget/components/trading/PaperTradePanel.d.ts +41 -0
- package/dist/dts/widget/components/workspace/WorkspaceToolbar.d.ts +25 -0
- package/dist/dts/widget/config/toolGroups.d.ts +11 -0
- package/dist/dts/widget/config/toolShortcuts.d.ts +27 -0
- package/dist/dts/widget/constants/comparison.d.ts +1 -0
- package/dist/dts/widget/constants/symbolSearch.d.ts +14 -0
- package/dist/dts/widget/constants/vn30.d.ts +7 -0
- package/dist/dts/widget/context/DataProviderContext.d.ts +7 -0
- package/dist/dts/widget/context/HoverEmitter.d.ts +50 -0
- package/dist/dts/widget/context/SyncContextShare.d.ts +11 -0
- package/dist/dts/widget/context/VNInvestChartsConfigContext.d.ts +24 -0
- package/dist/dts/widget/context/VNInvestChartsContext.d.ts +70 -0
- package/dist/dts/widget/context/VNInvestChartsStateContext.d.ts +50 -0
- package/dist/dts/widget/context/WidgetI18nContext.d.ts +25 -0
- package/dist/dts/widget/context/WorkspaceLiveTradingContext.d.ts +30 -0
- package/dist/dts/widget/context/WorkspacePaperVisibilityContext.d.ts +23 -0
- package/dist/dts/widget/context/WorkspaceReplayTradingContext.d.ts +36 -0
- package/dist/dts/widget/contexts/SaaSFeatureContext.d.ts +23 -0
- package/dist/dts/widget/data/DataEnvelope.d.ts +100 -0
- package/dist/dts/widget/drawingPriceLabelInputs.d.ts +3 -0
- package/dist/dts/widget/export/chartCsv.d.ts +59 -0
- package/dist/dts/widget/forkAnchorReconciliation.d.ts +6 -0
- package/dist/dts/widget/forkInteractionHelpers.d.ts +69 -0
- package/dist/dts/widget/grid/DeviceProfiles.d.ts +49 -0
- package/dist/dts/widget/grid/GridChartRegistry.d.ts +9 -0
- package/dist/dts/widget/grid/MemoryBudgetManager.d.ts +63 -0
- package/dist/dts/widget/grid/PerformanceMonitor.d.ts +70 -0
- package/dist/dts/widget/grid/customPresets.d.ts +42 -0
- package/dist/dts/widget/grid/presets.d.ts +18 -0
- package/dist/dts/widget/grid/types.d.ts +39 -0
- package/dist/dts/widget/history/BackfillDedupContext.d.ts +63 -0
- package/dist/dts/widget/history/RequestCoordinator.d.ts +59 -0
- package/dist/dts/widget/history/SharedBarStoreContext.d.ts +22 -0
- package/dist/dts/widget/history/cache/IndexedDBCacheMatrix.d.ts +16 -0
- package/dist/dts/widget/history/cache/LocalCacheMatrix.d.ts +86 -0
- package/dist/dts/widget/history/cache/index.d.ts +3 -0
- package/dist/dts/widget/history/chunkStore.d.ts +77 -0
- package/dist/dts/widget/history/externalBarsNormalization.d.ts +9 -0
- package/dist/dts/widget/history/externalBarsNormalization.worker.d.ts +1 -0
- package/dist/dts/widget/history/externalBarsNormalizationAsync.d.ts +25 -0
- package/dist/dts/widget/history/historyDataUtils.d.ts +82 -0
- package/dist/dts/widget/history/historyWindowPlanner.d.ts +89 -0
- package/dist/dts/widget/history/inflightController.d.ts +15 -0
- package/dist/dts/widget/history/requestCoalescing.d.ts +10 -0
- package/dist/dts/widget/history/sessionGuards.d.ts +3 -0
- package/dist/dts/widget/history/singleWriterLane.d.ts +4 -0
- package/dist/dts/widget/history/useExternalBarsNormalization.d.ts +5 -0
- package/dist/dts/widget/hooks/ShortcutManager.d.ts +65 -0
- package/dist/dts/widget/hooks/overlays/PaneHeaderWrapper.d.ts +11 -0
- package/dist/dts/widget/hooks/overlays/overlayHelpers.d.ts +60 -0
- package/dist/dts/widget/hooks/overlays/useDrawingDockNode.d.ts +15 -0
- package/dist/dts/widget/hooks/overlays/useLegendChrome.d.ts +36 -0
- package/dist/dts/widget/hooks/overlays/useMultiSelectActions.d.ts +22 -0
- package/dist/dts/widget/hooks/overlays/useSidebarResize.d.ts +13 -0
- package/dist/dts/widget/hooks/resolveEntitlement.d.ts +73 -0
- package/dist/dts/widget/hooks/useBottomPanelBehavior.d.ts +38 -0
- package/dist/dts/widget/hooks/useBottomPanelHeight.d.ts +39 -0
- package/dist/dts/widget/hooks/useCanvasTheme.d.ts +24 -0
- package/dist/dts/widget/hooks/useChartImperativeHandle.d.ts +57 -0
- package/dist/dts/widget/hooks/useClockAdapter.d.ts +11 -0
- package/dist/dts/widget/hooks/useComparisonState.d.ts +29 -0
- package/dist/dts/widget/hooks/useDialogFocus.d.ts +25 -0
- package/dist/dts/widget/hooks/useDrawingToolShortcuts.d.ts +16 -0
- package/dist/dts/widget/hooks/useFeatureGate.d.ts +28 -0
- package/dist/dts/widget/hooks/useFloatingChartBar.d.ts +33 -0
- package/dist/dts/widget/hooks/useForkRuntime.d.ts +155 -0
- package/dist/dts/widget/hooks/useIndicatorsShareApplier.d.ts +1 -0
- package/dist/dts/widget/hooks/useIntersectionObserver.d.ts +49 -0
- package/dist/dts/widget/hooks/useKeyboardAdapter.d.ts +9 -0
- package/dist/dts/widget/hooks/useLayoutHistory.d.ts +8 -0
- package/dist/dts/widget/hooks/useLicenseDiagnostics.d.ts +15 -0
- package/dist/dts/widget/hooks/useMultiChartReplaySync.d.ts +31 -0
- package/dist/dts/widget/hooks/useMultiWorkspacePersistence.d.ts +49 -0
- package/dist/dts/widget/hooks/usePaperTradeConfig.d.ts +27 -0
- package/dist/dts/widget/hooks/usePaperTradeInteraction.d.ts +27 -0
- package/dist/dts/widget/hooks/usePatTierAuthentication.d.ts +42 -0
- package/dist/dts/widget/hooks/usePineScriptRestore.d.ts +23 -0
- package/dist/dts/widget/hooks/usePortalAdapter.d.ts +8 -0
- package/dist/dts/widget/hooks/useRecentSymbols.d.ts +3 -0
- package/dist/dts/widget/hooks/useReplayState.d.ts +28 -0
- package/dist/dts/widget/hooks/useReplayTrading.d.ts +26 -0
- package/dist/dts/widget/hooks/useResizeAdapter.d.ts +13 -0
- package/dist/dts/widget/hooks/useScaleOverlays.d.ts +62 -0
- package/dist/dts/widget/hooks/useScriptPersistence.d.ts +72 -0
- package/dist/dts/widget/hooks/useSymbolSearch.d.ts +30 -0
- package/dist/dts/widget/hooks/useViewportBreakpoint.d.ts +15 -0
- package/dist/dts/widget/hooks/useWidgetCoordinateBridge.d.ts +70 -0
- package/dist/dts/widget/hooks/useWidgetData.d.ts +138 -0
- package/dist/dts/widget/hooks/useWidgetDataBackfill.d.ts +67 -0
- package/dist/dts/widget/hooks/useWidgetDataEnrichment.d.ts +32 -0
- package/dist/dts/widget/hooks/useWidgetDrawings.d.ts +38 -0
- package/dist/dts/widget/hooks/useWidgetForkInteraction.d.ts +68 -0
- package/dist/dts/widget/hooks/useWidgetInteractionActions.d.ts +36 -0
- package/dist/dts/widget/hooks/useWidgetOverlays.d.ts +190 -0
- package/dist/dts/widget/hooks/useWidgetRuntime.d.ts +20 -0
- package/dist/dts/widget/hooks/useWidgetSettings.d.ts +244 -0
- package/dist/dts/widget/hooks/useWidgetWorkspaceIO.d.ts +24 -0
- package/dist/dts/widget/hooks/useWorkspaceDockPanels.d.ts +11 -0
- package/dist/dts/widget/hooks/useWorkspaceLiveTrading.d.ts +28 -0
- package/dist/dts/widget/hooks/useWorkspaceReplayTrading.d.ts +22 -0
- package/dist/dts/widget/i18n/a11y.messages.en.d.ts +8 -0
- package/dist/dts/widget/i18n/a11y.messages.vi.d.ts +3 -0
- package/dist/dts/widget/i18n/capability.messages.en.d.ts +7 -0
- package/dist/dts/widget/i18n/capability.messages.vi.d.ts +3 -0
- package/dist/dts/widget/i18n/dock.messages.en.d.ts +2 -0
- package/dist/dts/widget/i18n/dock.messages.vi.d.ts +2 -0
- package/dist/dts/widget/i18n/messages.en.d.ts +2 -0
- package/dist/dts/widget/i18n/messages.licensing.d.ts +48 -0
- package/dist/dts/widget/i18n/messages.vi.d.ts +2 -0
- package/dist/dts/widget/i18n/trading.messages.en.d.ts +2 -0
- package/dist/dts/widget/i18n/trading.messages.vi.d.ts +2 -0
- package/dist/dts/widget/i18n/types.d.ts +3 -0
- package/dist/dts/widget/iframe/builtInAdapters.d.ts +63 -0
- package/dist/dts/widget/iframe/host-entry.d.ts +11 -0
- package/dist/dts/widget/iframe/hostSDK.d.ts +151 -0
- package/dist/dts/widget/iframe/iframeBridge.d.ts +165 -0
- package/dist/dts/widget/iframe/iframeEntry.d.ts +52 -0
- package/dist/dts/widget/iframe/iframeFrame.d.ts +15 -0
- package/dist/dts/widget/iframe/iframeQuotes.d.ts +20 -0
- package/dist/dts/widget/iframe/messageProtocol.d.ts +545 -0
- package/dist/dts/widget/iframe/quoteHub.d.ts +20 -0
- package/dist/dts/widget/iframe/useVNInvestChartsHost.d.ts +8 -0
- package/dist/dts/widget/iife-entry.d.ts +61 -0
- package/dist/dts/widget/iifeWidgetInstance.d.ts +60 -0
- package/dist/dts/widget/index.d.ts +56 -0
- package/dist/dts/widget/multiChartDefaults.d.ts +18 -0
- package/dist/dts/widget/paneInteractionUtils.d.ts +25 -0
- package/dist/dts/widget/patterns/autoPatternScan.d.ts +77 -0
- package/dist/dts/widget/patterns/patternDrawingFactory.d.ts +87 -0
- package/dist/dts/widget/plugin/ProPluginRegistry.d.ts +40 -0
- package/dist/dts/widget/runtime/ChartScaleAdapter.d.ts +73 -0
- package/dist/dts/widget/runtime/ChartSerializer.d.ts +12 -0
- package/dist/dts/widget/runtime/ForkRuntimeAdapter.d.ts +19 -0
- package/dist/dts/widget/runtime/IRuntimeEngine.d.ts +40 -0
- package/dist/dts/widget/runtime/WorkspaceSerializer.d.ts +31 -0
- package/dist/dts/widget/runtimePolicy.d.ts +36 -0
- package/dist/dts/widget/styles/injectStyles.d.ts +9 -0
- package/dist/dts/widget/theme/ThemeConfig.d.ts +21 -0
- package/dist/dts/widget/theme/applyTheme.d.ts +3 -0
- package/dist/dts/widget/trading/chart/DraggableOrderHandles.d.ts +15 -0
- package/dist/dts/widget/trading/chart/InteractivePositionOverlay.d.ts +19 -0
- package/dist/dts/widget/trading/chart/PendingOrderOverlay.d.ts +11 -0
- package/dist/dts/widget/trading/chart/QuickTradingHeader.d.ts +20 -0
- package/dist/dts/widget/trading/chart/TradingChartSurface.d.ts +8 -0
- package/dist/dts/widget/trading/chart/TradingOverlaysHost.d.ts +28 -0
- package/dist/dts/widget/trading/chart/priceTicks.d.ts +1 -0
- package/dist/dts/widget/trading/chart/useFloatingDrag.d.ts +40 -0
- package/dist/dts/widget/trading/chart/useTradingHotkeys.d.ts +21 -0
- package/dist/dts/widget/trading/config/paperRuntimeConfig.d.ts +53 -0
- package/dist/dts/widget/trading/context/PaperPanelRegistry.d.ts +45 -0
- package/dist/dts/widget/trading/context/TradingContext.d.ts +80 -0
- package/dist/dts/widget/trading/context/WorkspaceTradingSync.d.ts +24 -0
- package/dist/dts/widget/trading/hooks/usePaperRuntimeConfig.d.ts +36 -0
- package/dist/dts/widget/trading/index.d.ts +5 -0
- package/dist/dts/widget/trading/panel/AccountSummaryTab.d.ts +7 -0
- package/dist/dts/widget/trading/panel/ActiveChartPaperPanel.d.ts +26 -0
- package/dist/dts/widget/trading/panel/ConnectedTradingPanel.d.ts +3 -0
- package/dist/dts/widget/trading/panel/HistoryTab.d.ts +5 -0
- package/dist/dts/widget/trading/panel/MarketFallbackBanner.d.ts +4 -0
- package/dist/dts/widget/trading/panel/OrdersTab.d.ts +8 -0
- package/dist/dts/widget/trading/panel/PaperCapitalDialog.d.ts +8 -0
- package/dist/dts/widget/trading/panel/PaperSettingsModal.d.ts +17 -0
- package/dist/dts/widget/trading/panel/PositionsTab.d.ts +15 -0
- package/dist/dts/widget/trading/panel/TradeHistoryTab.d.ts +5 -0
- package/dist/dts/widget/trading/panel/TradingBottomPanel.d.ts +36 -0
- package/dist/dts/widget/trading/panel/TradingLogTab.d.ts +8 -0
- package/dist/dts/widget/trading/panel/TradingPanelHeader.d.ts +17 -0
- package/dist/dts/widget/trading/panel/csvExport.d.ts +18 -0
- package/dist/dts/widget/trading/ticket/ConnectedTradingDockPanel.d.ts +5 -0
- package/dist/dts/widget/trading/ticket/OrderTicketForm.d.ts +31 -0
- package/dist/dts/widget/trading/ticket/OrderTicketModal.d.ts +29 -0
- package/dist/dts/widget/trading/ticket/RegistryTradingDockPanel.d.ts +9 -0
- package/dist/dts/widget/trading/ticket/RiskCalculatorView.d.ts +9 -0
- package/dist/dts/widget/trading/ticket/TradingDockPanel.d.ts +36 -0
- package/dist/dts/widget/trading/ticket/orderTicketModel.d.ts +49 -0
- package/dist/dts/widget/trading/visibility/paperVisibility.d.ts +38 -0
- package/dist/dts/widget/types/dataProvider.d.ts +8 -0
- package/dist/dts/widget/types/fullChartHandle.d.ts +25 -0
- package/dist/dts/widget/types/saas.d.ts +83 -0
- package/dist/dts/widget/types/symbolSearch.d.ts +9 -0
- package/dist/dts/widget/types/watchlist.d.ts +26 -0
- package/dist/dts/widget/utils/axisHit.d.ts +16 -0
- package/dist/dts/widget/utils/chartRange.d.ts +12 -0
- package/dist/dts/widget/utils/chartTypeOptions.d.ts +38 -0
- package/dist/dts/widget/utils/clickOutside.d.ts +1 -0
- package/dist/dts/widget/utils/coordinateBridge.d.ts +31 -0
- package/dist/dts/widget/utils/crosshairSync.d.ts +50 -0
- package/dist/dts/widget/utils/drawingSync.d.ts +198 -0
- package/dist/dts/widget/utils/enrichedHash.d.ts +15 -0
- package/dist/dts/widget/utils/headerSync.d.ts +12 -0
- package/dist/dts/widget/utils/numberFormat.d.ts +13 -0
- package/dist/dts/widget/utils/paperTradeAdapters.d.ts +11 -0
- package/dist/dts/widget/utils/pineSeriesData.d.ts +71 -0
- package/dist/dts/widget/utils/rangeSync.d.ts +29 -0
- package/dist/dts/widget/utils/telemetry.d.ts +19 -0
- package/dist/dts/widget/utils/widgetEquality.d.ts +57 -0
- package/dist/dts/widget/utils/widgetErrors.d.ts +29 -0
- package/dist/dts/widget/utils/widgetHelpers.d.ts +395 -0
- package/dist/dts/widget/utils/xAxisTickFormatter.d.ts +33 -0
- package/dist/dts/widget/visibleRangeBridge.d.ts +28 -0
- package/dist/dts/widget/visibleRangeDiagnostics.d.ts +10 -0
- package/dist/dts/widget/visibleRangePolicies.d.ts +6 -0
- package/dist/dts/widget/workspace/WorkspaceManager.d.ts +23 -0
- package/dist/dts/widget/workspace/WorkspaceStore.d.ts +85 -0
- package/dist/dts/widget/workspace/types.d.ts +21 -0
- package/dist/externalBarsNormalization.worker.js +108 -0
- package/dist/iframe/index.html +63 -0
- package/dist/iframe/injected.css +6456 -0
- package/dist/iframe/vninvestchart.iframe.css +2 -0
- package/dist/iframe/vninvestchart.iframe.js +945 -0
- package/dist/iframe-host/host-entry.cjs +687 -0
- package/dist/iframe-host/host-entry.d.mts +818 -0
- package/dist/iframe-host/host-entry.d.ts +818 -0
- package/dist/iframe-host/host-entry.js +680 -0
- package/dist/index.cjs +7253 -0
- package/dist/index.css +3390 -0
- package/dist/index.d.ts +31 -0
- package/dist/index.js +6461 -0
- package/dist/injected.css +6456 -0
- package/dist/rollAlgorithms-2P2ZKKHO.js +2 -0
- package/dist/types/runtime.cjs +8 -0
- package/dist/types/runtime.d.mts +92 -0
- package/dist/types/runtime.d.ts +92 -0
- package/dist/types/runtime.js +5 -0
- package/dist/types/runtime.umd.js +14 -0
- package/dist/vninvestchart.iife.css +2 -0
- package/dist/vninvestchart.iife.js +945 -0
- package/package.json +225 -5
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{e as q,g as V,k as H,l as N}from"./chunk-6D7DVBIK.js";import"./chunk-5T6DGB3V.js";import{e as O}from"./chunk-FHHSTO6Z.js";import"./chunk-HPL723JA.js";import{useState as s,useMemo as le,useEffect as A,useRef as F}from"react";import{createPortal as ce}from"react-dom";import{Fragment as j,jsx as t,jsxs as o}from"react/jsx-runtime";var w=["close","open","high","low"];function Y(r){return w.includes(r)}function de(r){if(r.sourceBType==="value"){let c=r.sourceBValue.trim(),p=/^[+-]?(\d+(\.\d+)?|\.\d+)([eE][+-]?\d+)?$/.test(c)?Number(c):NaN;return Number.isFinite(p)?{type:"value",value:p}:{type:"value"}}return r.sourceBType==="price"?{type:"price",key:r.sourceBKey}:{type:"indicator",indicatorId:r.sourceBIndicatorId,key:r.sourceBKey}}function pe(r){let c=r.sourceAType==="price"?{type:"price",key:r.sourceAKey}:{type:"indicator",indicatorId:r.sourceAIndicatorId,key:r.sourceAKey},p=`${r.symbol} (${r.timeframe}): ${r.sourceAType==="price"?"Price":r.sourceAIndicatorId} ${r.condition} ${r.sourceBType==="value"?r.sourceBValue:"target"}`;return{id:r.id,symbol:r.symbol,timeframe:r.timeframe,sourceA:c,condition:r.condition,sourceB:de(r),frequency:r.frequency,actions:{popup:r.actionPopup,sound:r.actionSound,email:!1,webhook:r.webhookUrl||void 0},message:r.message||p,createdAt:r.createdAt,isTriggered:!1}}function Ae({open:r,onClose:c,symbol:p,timeframe:T,alertManager:d,portalAdapter:J}){let{t:n}=O(),{paneState:R}=q(),ue=V(),{portalTarget:S}=H({portalAdapter:J}),k=F(null),[C,m]=s([]),[v,M]=s("price"),[g,f]=s("close"),[b,I]=s(""),[D,G]=s("crossing_up"),[u,Q]=s("value"),[z,X]=s("100"),[y,h]=s("close"),[x,B]=s(""),[E,Z]=s("once"),[P,ee]=s(!0),[K,te]=s(!0),[_,re]=s(""),[W,$]=s("");A(()=>{r&&m(d.getAlerts())},[r,d]);let a=le(()=>{let e=[];return R.panes.forEach(l=>{l.series.forEach((i,L)=>{if(i.id&&i.type!=="Volume"&&i.type!=="Candlestick"&&i.type!=="HollowCandle"&&i.type!=="OHLC"&&i.type!=="HeikinAshi"&&i.type!=="Line"&&i.type!=="Area"&&i.type!=="Bar"){let ae=`${i.type} (${i.id.slice(-4)})`,se=N(i.type);e.push({id:i.id,type:i.type,label:ae,keys:se})}})}),e},[R.panes]),U=F(c);A(()=>{U.current=c}),A(()=>{if(!r)return;let e=k.current?.ownerDocument??(typeof document>"u"?null:document);if(!e)return;let l=i=>{i.key==="Escape"&&U.current()};return e.addEventListener("keydown",l),()=>e.removeEventListener("keydown",l)},[r,S]),A(()=>{a.length!==0&&(v==="indicator"&&!b&&(I(a[0].id),f(a[0].keys[0])),u==="indicator"&&!x&&(B(a[0].id),h(a[0].keys[0])))},[a,b,x,v,u]);let oe=()=>{if(v==="price"&&!Y(g)){console.error(`Alert not created: price source key ${JSON.stringify(g)} is not in PRICE_SOURCE_KEYS`);return}if(u==="price"&&!Y(y)){console.error(`Alert not created: price source key ${JSON.stringify(y)} is not in PRICE_SOURCE_KEYS`);return}let e=pe({id:`alert-${Date.now()}`,createdAt:Date.now(),symbol:p,timeframe:T,sourceAType:v,sourceAKey:g,sourceAIndicatorId:b,condition:D,sourceBType:u,sourceBValue:z,sourceBKey:y,sourceBIndicatorId:x,frequency:E,actionPopup:P,actionSound:K,webhookUrl:_,message:W});d.addAlert(e),m(d.getAlerts()),$("")},ne=e=>{d.removeAlert(e),m(d.getAlerts())},ie=e=>{d.toggleAlert(e),m(d.getAlerts())};return!r||!S?null:ce(t("div",{ref:k,onClick:e=>e.target===k.current&&c(),style:{position:"fixed",inset:0,background:"rgba(0, 0, 0, 0.6)",backdropFilter:"blur(4px)",display:"flex",justifyContent:"center",alignItems:"center",zIndex:9999,color:"var(--vnsc-text-primary, #e0e0e0)",fontFamily:"Inter, sans-serif"},children:o("div",{style:{background:"var(--vnsc-bg-primary, #0c1017)",border:"1px solid var(--vnsc-border, #202b3c)",borderRadius:"8px",width:"820px",maxHeight:"95vh",display:"flex",flexDirection:"column",boxShadow:"0 20px 25px -5px rgba(0, 0, 0, 0.5)",overflow:"hidden"},children:[o("div",{style:{display:"flex",justifyContent:"space-between",alignItems:"center",padding:"12px 20px",borderBottom:"1px solid var(--vnsc-border, #202b3c)"},children:[o("h3",{style:{margin:0,fontSize:"15px",fontWeight:"bold"},children:[n("ui.alert.create")||"Create Alert"," - ",p," (",T,")"]}),t("button",{onClick:c,style:{background:"none",border:"none",color:"var(--vnsc-text-secondary, #787b86)",fontSize:"18px",cursor:"pointer"},children:"\xD7"})]}),o("div",{style:{padding:"16px 20px",display:"flex",gap:"20px",alignItems:"stretch",background:"var(--vnsc-bg-primary, #0c1017)"},children:[o("div",{style:{flex:1.2,display:"flex",flexDirection:"column",gap:"10px",minWidth:0},children:[o("div",{style:{display:"flex",flexDirection:"column",gap:"6px"},children:[t("span",{style:{fontSize:"11px",fontWeight:"bold",color:"var(--vnsc-text-secondary, #787b86)"},children:n("ui.alert.condition")||"Condition"}),o("div",{style:{display:"flex",gap:"6px",alignItems:"center"},children:[o("select",{value:v,"data-testid":"alert-source-a-type",onChange:e=>{let l=e.target.value;if(M(l),l==="price")f("close");else if(a.length>0){let i=a.find(L=>L.id===b)||a[0];I(i.id),f(i.keys[0])}},style:{flex:1,padding:"6px 8px",background:"var(--vnsc-bg-input, #131b26)",border:"1px solid var(--vnsc-border-input, #202b3c)",borderRadius:"4px",color:"#fff",fontSize:"12px"},children:[t("option",{value:"price",children:n("ui.indicator.settings.source.price")||"Price"}),a.length>0&&t("option",{value:"indicator",children:n("ui.indicator.settings.source.indicators")||"Indicator"})]}),v==="price"?t("select",{value:g,"data-testid":"alert-source-a-key",onChange:e=>f(e.target.value),style:{flex:1,padding:"6px 8px",background:"var(--vnsc-bg-input, #131b26)",border:"1px solid var(--vnsc-border-input, #202b3c)",borderRadius:"4px",color:"#fff",fontSize:"12px"},children:w.map(e=>t("option",{value:e,children:e.charAt(0).toUpperCase()+e.slice(1)},e))}):o(j,{children:[t("select",{value:b,"data-testid":"alert-source-a-indicator",onChange:e=>{I(e.target.value);let l=a.find(i=>i.id===e.target.value);l&&f(l.keys[0]||"")},style:{flex:1.5,padding:"6px 8px",background:"var(--vnsc-bg-input, #131b26)",border:"1px solid var(--vnsc-border-input, #202b3c)",borderRadius:"4px",color:"#fff",fontSize:"12px"},children:a.map(e=>t("option",{value:e.id,children:e.label},e.id))}),t("select",{value:g,"data-testid":"alert-source-a-output",onChange:e=>f(e.target.value),style:{flex:1,padding:"6px 8px",background:"var(--vnsc-bg-input, #131b26)",border:"1px solid var(--vnsc-border-input, #202b3c)",borderRadius:"4px",color:"#fff",fontSize:"12px"},children:(a.find(e=>e.id===b)?.keys??[]).map(e=>t("option",{value:e,children:e},e))})]})]}),o("select",{value:D,"data-testid":"alert-condition",onChange:e=>G(e.target.value),style:{padding:"6px 8px",background:"var(--vnsc-bg-input, #131b26)",border:"1px solid var(--vnsc-border-input, #202b3c)",borderRadius:"4px",color:"#fff",fontSize:"12px"},children:[t("option",{value:"crossing",children:n("ui.alert.crossing")||"Crossing"}),t("option",{value:"crossing_up",children:n("ui.alert.crossingUp")||"Crossing Up"}),t("option",{value:"crossing_down",children:n("ui.alert.crossingDown")||"Crossing Down"}),t("option",{value:"greater_than",children:n("ui.alert.greaterThan")||"Greater Than"}),t("option",{value:"less_than",children:n("ui.alert.lessThan")||"Less Than"})]}),o("div",{style:{display:"flex",gap:"6px",alignItems:"center"},children:[o("select",{value:u,"data-testid":"alert-source-b-type",onChange:e=>Q(e.target.value),style:{flex:1,padding:"6px 8px",background:"var(--vnsc-bg-input, #131b26)",border:"1px solid var(--vnsc-border-input, #202b3c)",borderRadius:"4px",color:"#fff",fontSize:"12px"},children:[t("option",{value:"value",children:n("ui.alert.value")||"Value"}),t("option",{value:"price",children:n("ui.alert.price")||"Price"}),a.length>0&&t("option",{value:"indicator",children:n("ui.alert.indicator")||"Indicator"})]}),u==="value"?t("input",{type:"number","data-testid":"alert-threshold",value:z,onChange:e=>X(e.target.value),style:{flex:2,padding:"6px 8px",background:"var(--vnsc-bg-input, #131b26)",border:"1px solid var(--vnsc-border-input, #202b3c)",borderRadius:"4px",color:"#fff",fontSize:"12px"}}):u==="price"?t("select",{value:y,"data-testid":"alert-source-b-key",onChange:e=>h(e.target.value),style:{flex:2,padding:"6px 8px",background:"var(--vnsc-bg-input, #131b26)",border:"1px solid var(--vnsc-border-input, #202b3c)",borderRadius:"4px",color:"#fff",fontSize:"12px"},children:w.map(e=>t("option",{value:e,children:e.charAt(0).toUpperCase()+e.slice(1)},e))}):o(j,{children:[t("select",{value:x,"data-testid":"alert-source-b-indicator",onChange:e=>{B(e.target.value);let l=a.find(i=>i.id===e.target.value);l&&h(l.keys[0]||"")},style:{flex:1.5,padding:"6px 8px",background:"var(--vnsc-bg-input, #131b26)",border:"1px solid var(--vnsc-border-input, #202b3c)",borderRadius:"4px",color:"#fff",fontSize:"12px"},children:a.map(e=>t("option",{value:e.id,children:e.label},e.id))}),t("select",{value:y,"data-testid":"alert-source-b-output",onChange:e=>h(e.target.value),style:{flex:1,padding:"6px 8px",background:"var(--vnsc-bg-input, #131b26)",border:"1px solid var(--vnsc-border-input, #202b3c)",borderRadius:"4px",color:"#fff",fontSize:"12px"},children:(a.find(e=>e.id===x)?.keys??[]).map(e=>t("option",{value:e,children:e},e))})]})]})]}),o("div",{style:{display:"grid",gridTemplateColumns:"1fr 1fr",gap:"12px"},children:[o("label",{style:{display:"flex",flexDirection:"column",gap:"4px"},children:[t("span",{style:{fontSize:"11px",color:"var(--vnsc-text-secondary, #787b86)",fontWeight:"bold"},children:n("ui.alert.frequency")||"Frequency"}),o("select",{value:E,"data-testid":"alert-frequency",onChange:e=>Z(e.target.value),style:{padding:"6px 8px",background:"var(--vnsc-bg-input, #131b26)",border:"1px solid var(--vnsc-border-input, #202b3c)",borderRadius:"4px",color:"#fff",fontSize:"12px"},children:[t("option",{value:"once",children:n("ui.alert.once")||"Only Once"}),t("option",{value:"once_per_bar",children:n("ui.alert.oncePerBar")||"Once Per Bar"}),t("option",{value:"continuous",children:n("ui.alert.continuous")||"Continuous"})]})]}),o("label",{style:{display:"flex",flexDirection:"column",gap:"4px"},children:[t("span",{style:{fontSize:"11px",color:"var(--vnsc-text-secondary, #787b86)",fontWeight:"bold"},children:n("ui.alert.actions")||"Actions"}),o("div",{style:{display:"flex",gap:"12px",height:"100%",alignItems:"center"},children:[o("label",{style:{display:"flex",gap:"4px",alignItems:"center",fontSize:"12px"},children:[t("input",{type:"checkbox",checked:P,onChange:e=>ee(e.target.checked)}),"Popup"]}),o("label",{style:{display:"flex",gap:"4px",alignItems:"center",fontSize:"12px"},children:[t("input",{type:"checkbox",checked:K,onChange:e=>te(e.target.checked)}),"Sound"]})]})]})]}),o("label",{style:{display:"flex",flexDirection:"column",gap:"4px"},children:[t("span",{style:{fontSize:"11px",color:"var(--vnsc-text-secondary, #787b86)",fontWeight:"bold"},children:n("ui.alert.webhook")||"Webhook URL"}),t("input",{type:"text",placeholder:"https://example.com/webhook",value:_,onChange:e=>re(e.target.value),style:{padding:"6px 8px",background:"var(--vnsc-bg-input, #131b26)",border:"1px solid var(--vnsc-border-input, #202b3c)",borderRadius:"4px",color:"#fff",fontSize:"12px"}})]}),o("label",{style:{display:"flex",flexDirection:"column",gap:"4px"},children:[t("span",{style:{fontSize:"11px",color:"var(--vnsc-text-secondary, #787b86)",fontWeight:"bold"},children:n("ui.alert.message")||"Alert Message"}),t("textarea",{rows:2,"data-testid":"alert-message",placeholder:"Enter alert message",value:W,onChange:e=>$(e.target.value),style:{padding:"6px 8px",background:"var(--vnsc-bg-input, #131b26)",border:"1px solid var(--vnsc-border-input, #202b3c)",borderRadius:"4px",color:"#fff",resize:"none",fontSize:"12px"}})]}),t("button",{"data-testid":"alert-create",onClick:oe,style:{padding:"8px",background:"var(--vnsc-accent, #2962ff)",border:"none",borderRadius:"4px",color:"var(--vnsc-text-on-primary, #fff)",fontWeight:"bold",cursor:"pointer",fontSize:"12px",marginTop:"4px"},children:n("ui.alert.create")||"Create Alert"})]}),o("div",{style:{flex:.8,display:"flex",flexDirection:"column",borderLeft:"1px solid var(--vnsc-border, #202b3c)",paddingLeft:"20px",minWidth:0},children:[o("h4",{style:{margin:"0 0 12px 0",fontSize:"13px",color:"var(--vnsc-text-secondary, #787b86)",fontWeight:"bold"},children:[n("ui.alert.activeAlerts")||"Active Alerts"," (",C.length,")"]}),o("div",{style:{display:"flex",flexDirection:"column",gap:"8px",flex:1,maxHeight:"310px",overflowY:"auto",paddingRight:"4px"},children:[C.map(e=>o("div",{style:{display:"flex",justifyContent:"space-between",alignItems:"center",padding:"6px 10px",background:"var(--vnsc-bg-input, #131b26)",borderRadius:"4px",border:"1px solid var(--vnsc-border-input, #202b3c)",gap:"8px"},children:[o("div",{style:{flex:1,display:"flex",flexDirection:"column",gap:"2px",minWidth:0},children:[t("span",{style:{fontSize:"11px",fontWeight:"bold",textDecoration:e.isTriggered?"line-through":"none",color:e.isTriggered?"var(--vnsc-text-secondary, #787b86)":"var(--vnsc-text-on-primary, #fff)",whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis"},title:e.message,children:e.message}),t("span",{style:{fontSize:"9px",color:"var(--vnsc-text-secondary, #787b86)"},children:new Date(e.createdAt).toLocaleString()}),e.actions.webhook&&e.lastDeliveryError?o("span",{"data-testid":"alert-delivery-error",style:{fontSize:"9px",fontWeight:"bold",color:"var(--vnsc-color-bearish, #ef5350)",whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis"},title:`${e.lastDeliveryError.reason}${e.lastDeliveryError.status?` (HTTP ${e.lastDeliveryError.status})`:""} \u2014 ${new Date(e.lastDeliveryError.at).toLocaleString()}`,children:[n("ui.alert.deliveryFailed")||"Webhook delivery failed",e.lastDeliveryError.status?` \xB7 HTTP ${e.lastDeliveryError.status}`:""," \xB7"," ",new Date(e.lastDeliveryError.at).toLocaleTimeString()]}):null]}),o("div",{style:{display:"flex",gap:"4px",flexShrink:0},children:[t("button",{onClick:()=>ie(e.id),style:{padding:"3px 6px",fontSize:"10px",background:e.isTriggered?"var(--vnsc-color-bullish, #2e7d32)":"color-mix(in srgb, var(--vnsc-text-secondary, #787b86) 35%, transparent)",border:"none",borderRadius:"3px",color:"var(--vnsc-text-on-primary, #fff)",cursor:"pointer"},children:e.isTriggered?n("ui.alert.reset")||"Reset":n("ui.alert.active")||"Active"}),t("button",{onClick:()=>ne(e.id),style:{padding:"3px 6px",fontSize:"10px",background:"var(--vnsc-color-error, #c62828)",border:"none",borderRadius:"3px",color:"var(--vnsc-text-on-primary, #fff)",cursor:"pointer"},children:n("ui.alert.delete")||"Delete"})]})]},e.id)),C.length===0&&t("span",{style:{fontSize:"11px",color:"var(--vnsc-text-secondary, #787b86)",fontStyle:"italic"},children:n("ui.alert.noAlerts")||"No alerts configured."})]})]})]})]})}),S)}export{Ae as AlertsModal,w as PRICE_SOURCE_KEYS,pe as buildAlertDraft,de as buildAlertSourceB,Y as isPriceSourceKey};
|
|
2
|
+
//# sourceMappingURL=AlertsModal-WKEUDTUZ.js.map
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
.oc{box-sizing:border-box;display:flex;flex-direction:column;height:100%;min-height:0;background:var(--vnsc-bg-secondary, #111820);color:var(--vnsc-text-primary, #e0e0e0);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif;font-size:12px}.ec{display:flex;align-items:center;padding:2px 12px 0;flex-shrink:0}.ac{display:inline-flex;align-items:center;gap:6px;font-size:11px;font-weight:600;color:var(--vnsc-text-primary, #e0e0e0)}.nc{color:var(--vnsc-color-bullish, #26a69a);font-size:9px}.tc{color:var(--vnsc-text-secondary, #727f8c);font-weight:400}.Ae{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:6px 14px;border-bottom:1px solid var(--vnsc-border, #2a2a2a);background:var(--vnsc-bg-secondary, #111820);overflow-x:auto;scrollbar-width:none;min-height:52px}.Ae::-webkit-scrollbar{display:none}.ic{display:flex;align-items:center;gap:12px;min-width:0;flex:1}.sc{display:flex;align-items:center;gap:8px;flex-shrink:0;padding-right:6px;border-right:1px solid var(--vnsc-border-subtle, rgba(255, 255, 255, .08))}.cc{width:8px;height:8px;border-radius:50%;background:var(--vnsc-color-bullish, #16a34a);box-shadow:0 0 6px #16a34a66;flex:none}.dc{font-weight:700;font-size:12px;color:var(--vnsc-text-primary, #f1f5f9);letter-spacing:.01em;white-space:nowrap}.pc{font-size:10px;font-weight:600;padding:1px 6px;border-radius:4px;background:var(--vnsc-bg-surface, rgba(255, 255, 255, .06));color:var(--vnsc-text-secondary, #94a3b8);border:1px solid var(--vnsc-border-subtle, rgba(255, 255, 255, .08))}.lc{display:flex;align-items:stretch;gap:10px;min-width:0}.xc{display:flex;flex-direction:column;justify-content:center;padding:4px 10px;border-radius:6px;background:var(--vnsc-bg-primary, #0d141b);border:1px solid var(--vnsc-border-subtle, rgba(255, 255, 255, .06));min-width:max-content}.bc{background:var(--vnsc-bg-primary, #0d141b);border-color:var(--vnsc-border, #2a2a2a)}.gc{display:flex;align-items:baseline;gap:8px}.vc{display:flex;align-items:center;gap:8px;min-width:0}.fc{display:flex;flex-direction:column;gap:1px;min-width:0}.Fr,.E{display:grid;column-gap:12px;row-gap:1px;align-items:center;align-content:center}.Fr{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.E{grid-template-columns:minmax(0,1fr) minmax(0,1fr) minmax(0,1fr)}.E>.Ne{grid-column:1 / -1}.Ne{display:flex;align-items:baseline;gap:6px;min-width:0;white-space:nowrap}.Fr .Rr,.E .Rr{font-size:15px}.uc{font-size:10px;font-weight:400;color:var(--vnsc-text-secondary, #787b86);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.hc{font-size:11px;font-weight:400;color:var(--vnsc-text-primary, #e0e0e0);font-variant-numeric:tabular-nums;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.mc{font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--vnsc-text-secondary, #787b86);white-space:nowrap}.Rr{font-size:13px;font-weight:700;color:var(--vnsc-text-primary, #ffffff);font-variant-numeric:tabular-nums;white-space:nowrap}.yc{font-size:14px;font-weight:700;color:var(--vnsc-text-primary, #ffffff);font-variant-numeric:tabular-nums;white-space:nowrap}.wc{display:flex;align-items:center;gap:8px;font-size:10px;color:var(--vnsc-text-secondary, #94a3b8);font-variant-numeric:tabular-nums;margin-top:1px;white-space:nowrap}.kc{font-size:.62em;font-weight:600;color:var(--vnsc-text-secondary, #94a3b8);letter-spacing:.03em}.zc{display:inline-flex;align-items:center;padding:1px 6px;border-radius:4px;font-size:11px;font-weight:700;color:var(--vnsc-color-bullish, #26a69a);background:#26a69a24;border:1px solid rgba(38,166,154,.25);font-variant-numeric:tabular-nums}.jc{display:inline-flex;align-items:center;padding:1px 6px;border-radius:4px;font-size:11px;font-weight:700;color:var(--vnsc-color-bearish, #ef5350);background:#ef535024;border:1px solid rgba(239,83,80,.25);font-variant-numeric:tabular-nums}.Sc{display:inline-flex;align-items:center;padding:1px 6px;border-radius:4px;font-size:11px;font-weight:600;color:var(--vnsc-text-secondary, #94a3b8);background:#ffffff0d;font-variant-numeric:tabular-nums}.Mc{font-size:10px;font-weight:600;padding:0 4px;border-radius:3px;color:var(--vnsc-color-bullish, #26a69a);background:#26a69a1f}.Ic{font-size:10px;font-weight:600;padding:0 4px;border-radius:3px;color:#f59e0b;background:#f59e0b1f}.Fc{font-size:10px;font-weight:600;padding:0 4px;border-radius:3px;color:var(--vnsc-color-bearish, #ef5350);background:#ef53501f}.Rc{display:flex;align-items:center;gap:8px;flex-shrink:0;margin-left:auto}.Hr{display:inline-flex;align-items:center;gap:5px;height:28px;padding:0 10px;border-radius:5px;font-size:11px;font-weight:600;cursor:pointer;border:1px solid var(--vnsc-border, #2a2a2a);background:var(--vnsc-bg-primary, #0d141b);color:var(--vnsc-text-primary, #e0e0e0);transition:all .15s ease;white-space:nowrap}.Hr:hover{background:var(--vnsc-bg-surface, rgba(255, 255, 255, .08));border-color:var(--vnsc-border-subtle, rgba(255, 255, 255, .15))}.G{color:var(--vnsc-text-secondary, #94a3b8)}.G:hover{color:var(--vnsc-color-bearish, #ef5350);border-color:#ef53504d}.G:focus-visible,.Hr:focus-visible{outline:2px solid var(--vnsc-accent, #2f6df6);outline-offset:1px}.G:disabled{opacity:.45;cursor:not-allowed;color:var(--vnsc-text-secondary, #94a3b8);border-color:var(--vnsc-border, #2a2a2a)}.Hc{padding:0;width:28px;justify-content:center}.Yc{display:flex;align-items:center;gap:2px;padding:0 12px;border-bottom:1px solid var(--vnsc-border, #2a2a2a);background:var(--vnsc-bg-secondary, #111820);min-height:36px}.Yr,.De{display:inline-flex;align-items:center;gap:6px;padding:8px 12px;border:none;background:transparent;cursor:pointer;transition:all .15s ease;white-space:nowrap;font-size:12px}.Yr{color:var(--vnsc-text-secondary, #787b86);border-bottom:2px solid transparent;font-weight:500}.Yr:hover{color:var(--vnsc-text-primary, #e0e0e0)}.De{color:var(--vnsc-text-primary, #ffffff);border-bottom:2px solid var(--vnsc-accent, #2962ff);font-weight:600}.Cc{display:inline-flex;align-items:center;justify-content:center;min-width:16px;height:16px;padding:0 4px;border-radius:999px;font-size:10px;font-weight:700;background:#2962ff26;color:var(--vnsc-accent, #2962ff)}.qe{margin-left:auto;display:inline-flex;align-items:center;justify-content:center;width:26px;height:26px;border:none;border-radius:4px;background:transparent;color:var(--vnsc-text-secondary, #787b86);cursor:pointer;transition:all .15s ease;font-size:13px}.qe:hover{background:#ffffff14;color:var(--vnsc-text-primary, #ffffff)}.Bc{flex:1;min-height:120px;overflow:auto;padding:8px 12px}.Uc{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:36px 16px;text-align:center;color:var(--vnsc-text-secondary, #787b86)}.Tc{font-size:28px;margin-bottom:8px;opacity:.6}.Xc{font-size:13px;font-weight:600;color:var(--vnsc-text-primary, #e0e0e0);margin-bottom:4px}.Ac{font-size:11px;color:var(--vnsc-text-secondary, #787b86);max-width:340px;line-height:1.4}.l{width:100%;border-collapse:collapse}.l th,.l td{text-align:left;padding:6px 10px;border-bottom:1px solid var(--vnsc-border, #2a2a2a);white-space:nowrap}.l th{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.03em;color:var(--vnsc-text-secondary, #787b86);background:var(--vnsc-bg-secondary, #111820);position:sticky;top:0;z-index:1}.l td{font-variant-numeric:tabular-nums;border-bottom:1px solid var(--vnsc-border-subtle, rgba(255, 255, 255, .04))}.l tr:hover td{background:#ffffff05}.l button{margin-right:4px;cursor:pointer}.Nc{display:flex;flex-wrap:wrap;gap:12px;margin-bottom:8px}.Dc{display:flex;flex-direction:column;gap:2px;font-variant-numeric:tabular-nums}.qc{display:flex;flex-direction:column;align-items:flex-start;gap:6px;padding:14px 16px}.Ec{font-size:13px;font-weight:600;color:var(--vnsc-text-primary, #f1f5f9)}.Gc{font-size:12px;color:var(--vnsc-text-secondary, #94a3b8)}.Ee{margin-top:4px;background:var(--vnsc-accent, #38bdf8);border:1px solid var(--vnsc-accent, #38bdf8);color:#0b1220;padding:6px 14px;border-radius:4px;font-size:12px;font-weight:600;cursor:pointer;transition:filter .15s ease;white-space:nowrap}.Ee:hover{filter:brightness(1.1)}.Jc{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;background:#04081099;z-index:20}.Kc{display:flex;flex-direction:column;gap:8px;min-width:280px;max-width:340px;padding:14px 16px;background:var(--vnsc-bg-secondary, #131722);border:1px solid var(--vnsc-border, rgba(148, 163, 184, .16));border-radius:8px}.Lc{font-size:13px;font-weight:700;color:var(--vnsc-text-primary, #f1f5f9)}.Oc{font-size:12px;color:var(--vnsc-text-secondary, #94a3b8)}.Pc{display:flex;flex-wrap:wrap;gap:6px}.Ge{background:transparent;border:1px solid var(--vnsc-border, rgba(148, 163, 184, .25));color:var(--vnsc-text-secondary, #94a3b8);padding:4px 10px;border-radius:4px;font-size:12px;cursor:pointer}.Ge:hover{border-color:var(--vnsc-accent, #38bdf8);color:var(--vnsc-accent, #38bdf8)}.Je{display:flex;flex-direction:column;gap:4px;font-size:12px;color:var(--vnsc-text-secondary, #94a3b8)}.Je input{background:var(--vnsc-bg-primary, #0b1220);border:1px solid var(--vnsc-border, rgba(148, 163, 184, .25));color:var(--vnsc-text-primary, #f1f5f9);padding:6px 10px;border-radius:4px;font-size:13px}.Qc{font-size:12px;color:var(--vnsc-color-bearish, #ef5350)}.k{display:flex;justify-content:flex-end;gap:8px}.k button{padding:6px 14px;border-radius:4px;font-size:12px;font-weight:600;cursor:pointer}.k button[data-testid=capital-confirm]{background:var(--vnsc-accent, #38bdf8);border:1px solid var(--vnsc-accent, #38bdf8);color:#0b1220}.k button[data-testid=capital-confirm]:disabled{opacity:.4;cursor:not-allowed}.k button[data-testid=capital-cancel]{background:transparent;border:1px solid var(--vnsc-border, rgba(148, 163, 184, .25));color:var(--vnsc-text-secondary, #94a3b8)}.Vc{position:fixed;inset:0;background:#03060c99;display:grid;place-items:center;z-index:1000;padding:16px}.Wc{width:min(520px,calc(100vw - 32px));max-height:calc(100vh - 64px);display:flex;flex-direction:column;background:var(--vnsc-bg-secondary, #0f1521);color:var(--vnsc-text-primary, #e6edf3);border:1px solid var(--vnsc-border, #1e2635);border-radius:12px;box-shadow:0 24px 64px #0000008c;font-size:13px}.Zc{display:flex;justify-content:space-between;align-items:center;padding:14px 18px;border-bottom:1px solid var(--vnsc-border, #1e2635);font-weight:600;font-size:15px;flex-shrink:0}.Ke{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:6px;border:none;background:transparent;color:var(--vnsc-text-secondary, #8a94a6);cursor:pointer}.Ke:hover{background:var(--vnsc-bg-hover, rgba(255, 255, 255, .06));color:var(--vnsc-text-primary, #e6edf3)}._c{padding:16px 18px;overflow-y:auto;overflow-x:hidden;display:grid;gap:14px;min-height:0;min-width:0}.J{overflow-x:auto;scrollbar-width:none}.J::-webkit-scrollbar{display:none}.J button{flex:none;white-space:nowrap}.J button[aria-selected=true]{color:#fff;box-shadow:inset 0 -2px 0 var(--vnsc-accent, #2f6df6)}.Cr{display:grid;grid-template-columns:160px minmax(0,1fr);align-items:center;gap:12px;min-width:0}.Cr>*{min-width:0}.Cr>span:first-child{color:var(--vnsc-text-secondary, #8a94a6)}.rd{grid-column:2;font-size:11px;color:var(--vnsc-text-secondary, #8a94a6);margin-top:-8px}.Le{display:flex;align-items:center;gap:8px;cursor:pointer}.Le input{width:16px;height:16px;accent-color:var(--vnsc-accent, #2f6df6);flex-shrink:0;margin:0}.od{grid-column:2;font-size:11px;color:var(--vnsc-color-bearish, #e5484d);margin-top:-8px}.z{display:inline-flex;background:var(--vnsc-bg-primary, #0b0f17);border:1px solid var(--vnsc-border, #1e2635);border-radius:8px;padding:2px;gap:2px}.z button{all:unset;cursor:pointer;padding:6px 14px;border-radius:6px;color:var(--vnsc-text-secondary, #8a94a6);border:1px solid transparent;transition:color .15s,background .15s,border-color .15s;font-size:12px;white-space:nowrap;flex:1 1 0;min-width:0;overflow:hidden;text-overflow:ellipsis;text-align:center}.z button:hover{color:var(--vnsc-text-primary, #e6edf3)}.z button[aria-pressed=true]{background:var(--vnsc-accent-soft, rgba(47, 109, 246, .16));border-color:var(--vnsc-accent, #2f6df6);color:#fff}.z button:focus-visible{outline:2px solid var(--vnsc-accent, #2f6df6);outline-offset:1px}.K{display:flex;align-items:center;background:var(--vnsc-bg-primary, #0b0f17);border:1px solid var(--vnsc-border, #1e2635);border-radius:6px;min-width:0}.K:focus-within{border-color:var(--vnsc-accent, #2f6df6);box-shadow:0 0 0 3px var(--vnsc-accent-soft, rgba(47, 109, 246, .16))}.K input{all:unset;flex:1;min-width:0;padding:7px 10px;font-variant-numeric:tabular-nums;color:var(--vnsc-text-primary, #e6edf3)}.K span{padding:0 10px;color:var(--vnsc-text-secondary, #8a94a6);white-space:nowrap}.ed{position:sticky;bottom:0;display:flex;align-items:center;gap:8px;padding:12px 18px;border-top:1px solid var(--vnsc-border, #1e2635);background:var(--vnsc-bg-secondary, #0f1521);border-radius:0 0 12px 12px;flex-shrink:0}.Oe{padding:8px 16px;border-radius:6px;border:1px solid var(--vnsc-border, #1e2635);background:transparent;color:var(--vnsc-text-primary, #e6edf3);cursor:pointer;font-size:13px}.Oe:hover{background:var(--vnsc-bg-hover, rgba(255, 255, 255, .06))}.Br{background:var(--vnsc-accent, #2f6df6);border-color:var(--vnsc-accent, #2f6df6);color:#fff;font-weight:600}.Br:hover{background:var(--vnsc-accent, #2f6df6);filter:brightness(1.1)}.Br:disabled{opacity:.45;cursor:not-allowed;filter:none}.ad{flex:1}
|
|
2
|
+
/*# sourceMappingURL=ConnectedTradingPanel-KWJMIKTN.css.map */
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
.al{box-sizing:border-box;display:flex;flex-direction:column;height:100%;min-height:0;font-family:Inter,sans-serif;font-size:12px;font-variant-numeric:tabular-nums;color:var(--vnsc-text-primary, #e0e0e0);background:var(--vnsc-bg-primary, #0c1017)}.ca{display:flex;gap:8px;align-items:center;border-bottom:1px solid var(--vnsc-border-divider, #202b3c);padding:8px 12px;flex-shrink:0}.nl{font-weight:700;margin-right:4px}.tl{display:flex;flex:1;min-height:0}.qr{width:220px;border-right:1px solid var(--vnsc-border-divider, #202b3c);display:flex;flex-direction:column;flex-shrink:0;overflow:hidden}.il{display:flex;align-items:center;gap:4px;padding:8px 10px;font-weight:600;font-size:11px;color:var(--vnsc-text-secondary, #9aa3b8);border-bottom:1px solid var(--vnsc-border-divider, #202b3c)}.sl{flex:1;overflow-y:auto;padding:4px 0}.da{display:flex;align-items:center;justify-content:space-between;padding:6px 10px;cursor:pointer;border-left:3px solid transparent;transition:background .15s;gap:4px}.da:hover{background:var(--vnsc-bg-hover, #1a2030)}.cl{background:var(--vnsc-bg-selected, #1a2744);border-left-color:var(--vnsc-accent, #6366f1)}.dl{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:12px}.pl{flex:1;background:var(--vnsc-bg-input, #090d14);border:1px solid var(--vnsc-accent, #6366f1);border-radius:3px;color:var(--vnsc-text-primary, #e0e0e0);font-size:12px;padding:2px 6px;outline:none}.pa{display:flex;gap:2px;flex-shrink:0}.Er{padding:5px 12px;background:var(--vnsc-color-success, #089981);border:none;border-radius:4px;color:#fff;font-weight:700;cursor:pointer;margin-left:auto;transition:background-color .2s ease}.Er:hover{background:var(--vnsc-color-success-hover, #067a68)}.la{padding:4px 10px;background:var(--vnsc-bg-input, #1e2a3a);border:1px solid var(--vnsc-border-input, #2a3a4e);border-radius:4px;color:var(--vnsc-text-primary, #c0c8d8);font-size:11px;cursor:pointer;transition:background .15s;white-space:nowrap}.la:hover{background:var(--vnsc-bg-input-hover, #2a3a4e)}.xa{padding:2px 6px;background:transparent;border:1px solid var(--vnsc-border-input, #2a3a4e);border-radius:3px;color:var(--vnsc-text-secondary, #9aa3b8);font-size:10px;cursor:pointer;white-space:nowrap}.xa:hover{background:var(--vnsc-bg-input-hover, #1e2a3a);color:var(--vnsc-text-primary, #c0c8d8)}.ba{padding:2px 6px;background:transparent;border:1px solid var(--vnsc-border-error, #4a1a1a);border-radius:3px;color:var(--vnsc-color-bearish, #f23645);font-size:10px;cursor:pointer;white-space:nowrap}.ba:hover{background:var(--vnsc-bg-hover, #2a1010)}.ll{flex:1;position:relative;display:flex;flex-direction:column;min-width:0}.xl{padding:8px 12px;background:#f236451a;border-top:1px solid #f23645;color:#f23645;flex-shrink:0}.bl{padding:8px 12px;background:#0899811a;border-top:1px solid #089981;color:#089981;flex-shrink:0}@media(max-width:768px){.qr{width:160px}.pa{flex-direction:column}}@media(max-width:480px){.ca{flex-wrap:wrap}.qr{display:none}.Er{margin-left:0;width:100%}}
|
|
2
|
+
/*# sourceMappingURL=PineEditorPanel-V6YN2OTU.css.map */
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
.Ve{position:absolute;top:0;right:0;width:260px;height:100%;z-index:50;background:var(--vnsc-bg-primary);border-left:1px solid var(--vnsc-border-primary);display:flex;flex-direction:column;font-size:12px;color:var(--vnsc-text-primary);overflow:hidden}.id{display:flex;align-items:center;justify-content:space-between;padding:10px 12px 8px;border-bottom:1px solid var(--vnsc-border-primary);background:var(--vnsc-bg-secondary)}.sd{font-weight:700;font-size:13px}.cd{display:flex;gap:6px}.Tr{background:none;border:1px solid var(--vnsc-border-secondary);color:var(--vnsc-text-secondary);border-radius:4px;cursor:pointer;padding:2px 6px;font-size:11px;transition:background-color .15s ease,color .15s ease,border-color .15s ease}.Tr:hover:not(:disabled){background:var(--vnsc-bg-hover);color:var(--vnsc-text-primary);border-color:var(--vnsc-text-disabled)}.Tr:disabled{cursor:not-allowed;opacity:.5}.We{background:none;border:none;color:var(--vnsc-text-tertiary);cursor:pointer;font-size:14px;padding:0 4px;transition:color .15s ease}.We:hover{color:var(--vnsc-text-primary)}.dd{flex:1;overflow-y:auto;padding:12px}.pd{height:40px;background:var(--vnsc-bg-tertiary);border-radius:4px;margin-bottom:8px;animation:Ze 1.2s ease-in-out infinite}@keyframes Ze{0%,to{opacity:.5}50%{opacity:1}}.ld{display:flex;align-items:center;gap:10px;margin-bottom:12px}.xd{flex:1;padding:8px 12px;border-radius:6px;font-weight:700;font-size:14px;text-align:center;letter-spacing:.5px}.bd{background:var(--vnsc-color-success-hover);color:var(--vnsc-text-on-primary)}.gd{background:var(--vnsc-color-success);color:var(--vnsc-text-on-primary)}.vd{background:var(--vnsc-color-neutral);color:var(--vnsc-text-on-primary)}.fd{background:var(--vnsc-color-warning);color:var(--vnsc-text-on-primary)}.ud{background:var(--vnsc-color-error);color:var(--vnsc-text-on-primary)}.hd{text-align:center}.md{color:var(--vnsc-text-tertiary);font-size:10px}.yd{font-weight:700;font-size:13px}.wd{margin-bottom:8px}.kd{border-bottom:1px solid var(--vnsc-border-primary);padding-bottom:8px;margin-bottom:8px}.zd{display:flex;align-items:center;gap:8px;cursor:pointer;user-select:none}.jd{flex:1;font-size:12px;color:var(--vnsc-text-primary);font-weight:500}.Sd{color:var(--vnsc-text-tertiary);font-size:11px;margin-left:4px}.Md{font-size:10px;font-weight:700;padding:2px 6px;border-radius:4px;background:var(--vnsc-color-neutral);color:var(--vnsc-text-on-primary);letter-spacing:.5px}.Id{background:var(--vnsc-color-success)}.Fd{background:var(--vnsc-color-error)}.Rd{background:var(--vnsc-color-neutral)}.Hd{color:var(--vnsc-text-tertiary);font-size:10px}.Yd{height:4px;background:var(--vnsc-border-primary);border-radius:2px;margin-top:6px;overflow:hidden}.Cd{height:100%;border-radius:2px;transition:width .3s ease}.Bd{margin-top:8px;font-size:11px;color:var(--vnsc-text-secondary);line-height:1.5;white-space:pre-wrap;word-break:break-word}._e{background:none;border:none;color:var(--vnsc-text-link);cursor:pointer;font-size:11px;padding:0;text-decoration:underline;transition:color .15s ease}._e:hover{color:var(--vnsc-text-link-hover)}.Ud{margin-top:8px;font-size:11px;color:var(--vnsc-text-secondary);line-height:1.6;white-space:pre-wrap;word-break:break-word}.Td{margin-top:10px;font-size:10px;color:var(--vnsc-text-tertiary);text-align:right}.Xd{text-align:center;color:var(--vnsc-text-placeholder);padding-top:24px;font-size:12px}.Ad{font-size:24px;margin-bottom:8px}@media(max-width:480px){.Ve{width:100%;height:auto;max-height:50%;bottom:0;top:auto;border-left:none;border-top:1px solid var(--vnsc-border-primary)}}.ra{position:absolute;top:0;right:0;bottom:0;width:240px;z-index:var(--vnsc-z-dock, 51);background:var(--vnsc-bg-primary);border-left:1px solid var(--vnsc-border-primary);display:flex;flex-direction:column;font-size:var(--vnsc-font-size-xs);color:var(--vnsc-text-primary);overflow:hidden}.Nd{display:flex;align-items:center;justify-content:space-between;padding:var(--vnsc-space-2);border-bottom:1px solid var(--vnsc-border-divider);background:var(--vnsc-bg-secondary);flex-shrink:0}.Dd{font-weight:700;font-size:var(--vnsc-font-size-sm)}.oa{background:none;border:none;color:var(--vnsc-text-secondary);cursor:pointer;font-size:var(--vnsc-font-size-md);padding:0 4px;transition:color .15s ease}.oa:hover{color:var(--vnsc-text-primary)}.qd{display:flex;align-items:center;gap:6px;padding:4px 8px;border-bottom:1px solid var(--vnsc-border-divider);flex-shrink:0}.Ed{color:var(--vnsc-text-secondary);white-space:nowrap}.Gd{flex:1;cursor:pointer}.Jd{width:38px;text-align:right;color:var(--vnsc-text-primary);flex-shrink:0}.Kd{display:grid;grid-template-columns:52px 70px 52px 44px 22px;padding:2px 4px;color:var(--vnsc-text-secondary);font-size:var(--vnsc-font-size-2xs);border-bottom:1px solid var(--vnsc-border-divider);flex-shrink:0}.Ld{flex:1;overflow-y:auto;overflow-x:hidden}.Od,.Pd{text-align:center;color:var(--vnsc-text-secondary);padding-top:20px}.Qd{display:grid;grid-template-columns:52px 70px 52px 44px 22px;height:22px;align-items:center;padding:0 4px;background:transparent;border-bottom:1px solid var(--vnsc-border-divider)}.Vd{background:color-mix(in srgb,var(--vnsc-color-warning) 15%,transparent);border-bottom:1px solid color-mix(in srgb,var(--vnsc-color-warning) 60%,transparent)}.Wd{color:var(--vnsc-text-secondary);font-size:var(--vnsc-font-size-2xs)}.Zd{text-align:right;font-weight:400}._d{color:var(--vnsc-color-bullish)}.rp{color:var(--vnsc-color-bearish)}.op{font-weight:700}.ep,.ap{text-align:right;color:var(--vnsc-text-secondary)}.np{color:var(--vnsc-color-warning)}.tp{display:flex;align-items:center;justify-content:center;height:14px;width:16px;border-radius:2px;font-size:var(--vnsc-font-size-2xs);font-weight:700}.ip{background:color-mix(in srgb,var(--vnsc-color-bullish) 35%,transparent);color:var(--vnsc-text-on-primary)}.sp{background:var(--vnsc-color-bearish);color:var(--vnsc-text-on-primary)}.cp{background:color-mix(in srgb,var(--vnsc-text-secondary) 30%,transparent);color:var(--vnsc-text-primary)}.dp{padding:4px 8px;border-top:1px solid var(--vnsc-border-divider);color:var(--vnsc-text-secondary);font-size:var(--vnsc-font-size-2xs);flex-shrink:0}@media(max-width:480px){.ra{width:100%;height:auto;max-height:40%;bottom:0;top:auto;right:0;border-left:none;border-top:1px solid var(--vnsc-border-primary)}}.Xr{display:flex;flex-direction:column;flex-shrink:0;height:100%;border-left:1px solid var(--vnsc-border, #2a2a2a);background:var(--vnsc-bg-secondary, #111820);position:relative;z-index:48;min-width:150px;overflow:hidden;transition:width .18s ease}.ea{min-width:40px}@media(max-width:767px){.Xr{transition:none}.ea{height:auto;min-height:0;border-top:none}}.aa{width:4px;cursor:col-resize;z-index:49;background:transparent;transition:background .2s;flex-shrink:0}.pp{background:var(--vnsc-accent, #2962ff)}.lp{flex-shrink:0;overflow-y:auto}.xp{display:flex;flex-direction:row;flex:1;min-height:0}.bp{flex:1;min-width:0;display:flex;flex-direction:column;overflow:hidden}.gp{display:flex;align-items:center;justify-content:space-between;padding:6px 8px;border-bottom:1px solid var(--vnsc-border-divider, #2a2a2a);flex-shrink:0}.vp{font-size:11px;font-weight:600;color:var(--vnsc-text-secondary, #787b86);text-transform:uppercase;letter-spacing:.04em}.fp{display:flex;align-items:center;gap:8px}.Ar{background:transparent;border:none;color:var(--vnsc-text-secondary, #787b86);cursor:pointer;display:inline-flex;align-items:center;padding:2px;border-radius:4px}.Ar:hover{background:var(--vnsc-bg-hover, rgba(255, 255, 255, .04));color:var(--vnsc-text-primary, #d1d4dc)}.up{flex:1;min-height:0;overflow-y:auto}.hp{width:40px;flex-shrink:0;display:flex;flex-direction:column;align-items:center;gap:2px;padding:6px 0;border-left:1px solid var(--vnsc-border-divider, #2a2a2a);background:var(--vnsc-bg-primary, #131722);overflow-y:auto}.j{width:32px;height:32px;display:inline-flex;align-items:center;justify-content:center;background:transparent;border:none;border-radius:6px;color:var(--vnsc-text-secondary, #787b86);cursor:pointer}.j:hover{background:var(--vnsc-bg-hover, rgba(255, 255, 255, .04));color:var(--vnsc-text-primary, #d1d4dc)}.mp{opacity:.38;cursor:not-allowed}.j:focus{outline:none}.j:focus-visible{outline:2px solid var(--vnsc-accent-strong, #2563eb);outline-offset:-2px}.yp{background:var(--vnsc-bg-selected, rgba(59, 130, 246, .15));color:var(--vnsc-accent, #2962ff)}@media(max-width:767px){.aa{display:none}.Xr{position:absolute;inset:auto 0 0;height:45%;min-height:220px;min-width:0;width:auto!important;border-left:none;border-top:1px solid var(--vnsc-border, #2a2a2a);z-index:20}.j,.Ar{min-width:44px;min-height:44px}}.wp{padding:8px 10px;font-size:12px;font-variant-numeric:tabular-nums}.kp{display:flex;align-items:baseline;justify-content:space-between;gap:8px;margin-bottom:6px}.zp{font-weight:700;font-size:13px;color:var(--vnsc-text-primary, #d1d4dc)}.jp{font-size:10px;color:var(--vnsc-text-secondary, #787b86)}.na{display:flex;align-items:center;justify-content:space-between;padding:3px 0;border-bottom:1px solid var(--vnsc-border-divider, #2a2a2a)}.na:last-child{border-bottom:none}.Sp{color:var(--vnsc-text-secondary, #787b86);min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex-shrink:1}.Mp{font-weight:600;color:var(--vnsc-text-primary, #d1d4dc);font-variant-numeric:tabular-nums;white-space:nowrap;flex-shrink:0}.Ip{color:var(--vnsc-color-bullish, rgb(38, 166, 154))}.Fp{color:var(--vnsc-color-bearish, rgb(239, 83, 80))}.Rp{margin-top:8px;padding-top:6px;border-top:1px solid var(--vnsc-border-divider, #2a2a2a);font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--vnsc-text-secondary, #787b86)}.Hp{padding:16px 12px;font-size:12px;color:var(--vnsc-text-secondary, #787b86);text-align:center}.L{display:flex;flex-direction:column;padding:4px 4px 12px;gap:1px;overflow-x:hidden;scrollbar-width:thin;scrollbar-color:var(--vnsc-border, #2a3550) transparent}.L::-webkit-scrollbar{width:8px}.L::-webkit-scrollbar-thumb{background:var(--vnsc-border, #2a3550);border-radius:8px}.L::-webkit-scrollbar-corner{background:transparent}.S{display:flex;align-items:center;gap:8px;width:100%;min-height:34px;padding:3px 8px;background:transparent;border:none;border-bottom:1px solid var(--vnsc-border-divider, rgba(42, 42, 42, .6));border-radius:0;cursor:pointer;text-align:left;font-variant-numeric:tabular-nums}.S:last-child{border-bottom:none}.S:hover{background:var(--vnsc-bg-hover, rgba(255, 255, 255, .04))}.S:focus{outline:none}.S:focus-visible{outline:2px solid var(--vnsc-accent-strong, #2563eb);outline-offset:-2px;background:var(--vnsc-bg-hover, rgba(255, 255, 255, .04))}.Yp{background:var(--vnsc-bg-selected, rgba(59, 130, 246, .15))}.Cp{display:flex;flex-direction:column;min-width:0;flex:1}.Bp{font-size:12px;font-weight:700;color:var(--vnsc-text-primary, #d1d4dc);white-space:nowrap}.Up{font-size:10px;color:var(--vnsc-text-secondary, #787b86);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.Tp{flex-shrink:0;color:var(--vnsc-text-secondary, #787b86)}.Xp{display:flex;flex-direction:column;align-items:flex-end;flex-shrink:0}.Ap{font-size:12px;font-weight:600;color:var(--vnsc-text-primary, #d1d4dc)}.Np{font-size:10px;color:var(--vnsc-text-secondary, #787b86)}.Dp{color:var(--vnsc-color-bullish, rgb(38, 166, 154))}.qp{color:var(--vnsc-color-bearish, rgb(239, 83, 80))}.Ep{padding:16px 12px;font-size:12px;color:var(--vnsc-text-secondary, #787b86);text-align:center}
|
|
2
|
+
/*# sourceMappingURL=RightSidebarDockHost-6FPZ6EKV.css.map */
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{d as a,e as b,f as c,g as d,h as e}from"./chunk-UYJTX3SD.js";import"./chunk-AKWVXRQ6.js";import"./chunk-76E7CKUD.js";import"./chunk-FHHSTO6Z.js";import"./chunk-HPL723JA.js";export{b as DOCK_OPEN_KEY,c as DOCK_TAB_EVENT,a as DOCK_TAB_KEY,e as RightSidebarDockHost,d as persistDock};
|
|
2
|
+
//# sourceMappingURL=RightSidebarDockHost-OBFXKSIY.js.map
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
.ta{box-sizing:border-box;display:flex;flex-direction:column;height:100%;min-height:0;padding:12px;gap:12px;font-family:Inter,sans-serif;font-size:12px;font-variant-numeric:tabular-nums;color:var(--vnsc-text-primary, #e0e0e0);background:var(--vnsc-bg-primary, #0c1017)}.ia{display:flex;gap:12px;align-items:center;border-bottom:1px solid var(--vnsc-border-divider, #202b3c);padding-bottom:10px}.Gp{font-weight:700}.Jp{padding:4px 8px;background:var(--vnsc-bg-input, #131b26);border:1px solid var(--vnsc-border-input, #202b3c);border-radius:4px;color:var(--vnsc-text-primary, #fff)}.Nr{padding:5px 12px;background:var(--vnsc-accent, #2962ff);border:none;border-radius:4px;color:#fff;font-weight:700;cursor:pointer;margin-left:auto;transition:background-color .2s ease}.Nr:hover{background:var(--vnsc-accent-hover, #1a52d6)}.sa{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}.Kp{padding:10px;background:var(--vnsc-bg-secondary, #131b26);border-radius:4px;border:1px solid var(--vnsc-border-divider, #202b3c)}.Lp{color:var(--vnsc-text-secondary, #888);font-size:11px;margin-bottom:4px}.Op{font-size:16px;font-weight:700}.Pp{color:var(--vnsc-color-bullish, #089981)}.Qp{color:var(--vnsc-color-bearish, #f23645)}.Vp{flex:1;overflow-y:auto;border:1px solid var(--vnsc-border-divider, #202b3c);border-radius:4px}.Dr{width:100%;border-collapse:collapse;text-align:left}.Dr th{padding:8px;border-bottom:1px solid var(--vnsc-border-divider, #202b3c);color:var(--vnsc-text-secondary, #888);background:var(--vnsc-bg-secondary, #131b26);position:sticky;top:0}.Dr td{padding:8px;border-bottom:1px solid var(--vnsc-border-divider, #1c2430)}.Wp{text-transform:uppercase;color:var(--vnsc-accent, #2962ff);font-weight:700}.Zp{text-transform:uppercase;color:var(--vnsc-color-warning, #ff6d00);font-weight:700}._p{color:var(--vnsc-color-bullish, #089981);font-weight:700}.rl{color:var(--vnsc-color-bearish, #f23645);font-weight:700}.ol{color:var(--vnsc-text-secondary, #888)}.el{flex:1;display:flex;justify-content:center;align-items:center;color:var(--vnsc-text-muted, #555);font-style:italic}@media(max-width:480px){.ta{padding:8px;gap:8px}.sa{grid-template-columns:repeat(2,1fr)}.ia{flex-wrap:wrap}.Nr{margin-left:0;margin-top:8px;width:100%}}
|
|
2
|
+
/*# sourceMappingURL=StrategyTesterPanel-LEWEUMXP.css.map */
|
|
@@ -0,0 +1,189 @@
|
|
|
1
|
+
import{ba as u}from"./chunk-PNIB4OM3.js";import"./chunk-HPL723JA.js";var p=`
|
|
2
|
+
function synthesizeTicksFromBar(bar, tickSize) {
|
|
3
|
+
var ticks = [];
|
|
4
|
+
var high = bar.high;
|
|
5
|
+
var low = bar.low;
|
|
6
|
+
var open = bar.open !== undefined && bar.open !== null ? bar.open : bar.close;
|
|
7
|
+
var close = bar.close;
|
|
8
|
+
var volume = bar.volume;
|
|
9
|
+
var ts = bar.date ? (bar.date instanceof Date ? bar.date.getTime() : (typeof bar.date === "string" ? new Date(bar.date).getTime() : (typeof bar.date === "number" ? bar.date : Date.now()))) : Date.now();
|
|
10
|
+
|
|
11
|
+
var safeTickSize = tickSize > 0 ? tickSize : 0.01;
|
|
12
|
+
var priceRange = high - low;
|
|
13
|
+
var steps = Math.max(1, Math.round(priceRange / safeTickSize)) + 1;
|
|
14
|
+
var volumePerStep = volume / steps;
|
|
15
|
+
|
|
16
|
+
var isUp = close >= open;
|
|
17
|
+
var side = isUp ? "buy" : "sell";
|
|
18
|
+
|
|
19
|
+
for (var i = 0; i < steps; i++) {
|
|
20
|
+
var price = Math.round((low + i * safeTickSize) / safeTickSize) * safeTickSize;
|
|
21
|
+
ticks.push({
|
|
22
|
+
timestamp: ts,
|
|
23
|
+
price: price,
|
|
24
|
+
size: volumePerStep,
|
|
25
|
+
side: side
|
|
26
|
+
});
|
|
27
|
+
}
|
|
28
|
+
return ticks;
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
function computeVolumeProfile(data, priceTickSize, range) {
|
|
32
|
+
var safeTickSize = priceTickSize > 0 ? priceTickSize : 0.01;
|
|
33
|
+
|
|
34
|
+
var ticks = [];
|
|
35
|
+
if (data.length > 0) {
|
|
36
|
+
if ("close" in data[0]) {
|
|
37
|
+
for (var i = 0; i < data.length; i++) {
|
|
38
|
+
var barTicks = synthesizeTicksFromBar(data[i], safeTickSize);
|
|
39
|
+
for (var j = 0; j < barTicks.length; j++) {
|
|
40
|
+
ticks.push(barTicks[j]);
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
} else {
|
|
44
|
+
ticks = data;
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
if (range) {
|
|
49
|
+
ticks = ticks.filter(function(t) {
|
|
50
|
+
return t.price >= range.from && t.price <= range.to;
|
|
51
|
+
});
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
if (ticks.length === 0) {
|
|
55
|
+
return {
|
|
56
|
+
priceLevels: [],
|
|
57
|
+
poc: 0,
|
|
58
|
+
valueAreaHigh: 0,
|
|
59
|
+
valueAreaLow: 0,
|
|
60
|
+
highVolumeNodes: [],
|
|
61
|
+
lowVolumeNodes: []
|
|
62
|
+
};
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
var aggMap = new Map();
|
|
66
|
+
for (var i = 0; i < ticks.length; i++) {
|
|
67
|
+
var tick = ticks[i];
|
|
68
|
+
var roundedPrice = Math.round(tick.price / safeTickSize) * safeTickSize;
|
|
69
|
+
if (!aggMap.has(roundedPrice)) {
|
|
70
|
+
aggMap.set(roundedPrice, { volume: 0, buyVolume: 0, sellVolume: 0 });
|
|
71
|
+
}
|
|
72
|
+
var level = aggMap.get(roundedPrice);
|
|
73
|
+
level.volume += tick.size;
|
|
74
|
+
if (tick.side === "buy") {
|
|
75
|
+
level.buyVolume += tick.size;
|
|
76
|
+
} else {
|
|
77
|
+
level.sellVolume += tick.size;
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
var entries = Array.from(aggMap.entries());
|
|
82
|
+
var priceLevels = [];
|
|
83
|
+
for (var i = 0; i < entries.length; i++) {
|
|
84
|
+
var price = entries[i][0];
|
|
85
|
+
var val = entries[i][1];
|
|
86
|
+
priceLevels.push({
|
|
87
|
+
price: price,
|
|
88
|
+
volume: val.volume,
|
|
89
|
+
buyVolume: val.buyVolume,
|
|
90
|
+
sellVolume: val.sellVolume
|
|
91
|
+
});
|
|
92
|
+
}
|
|
93
|
+
priceLevels.sort(function(a, b) {
|
|
94
|
+
return a.price - b.price;
|
|
95
|
+
});
|
|
96
|
+
|
|
97
|
+
var poc = 0;
|
|
98
|
+
var maxVolume = -1;
|
|
99
|
+
for (var i = 0; i < priceLevels.length; i++) {
|
|
100
|
+
var lvl = priceLevels[i];
|
|
101
|
+
if (lvl.volume > maxVolume) {
|
|
102
|
+
maxVolume = lvl.volume;
|
|
103
|
+
poc = lvl.price;
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
|
|
107
|
+
var totalVolume = 0;
|
|
108
|
+
for (var i = 0; i < priceLevels.length; i++) {
|
|
109
|
+
totalVolume += priceLevels[i].volume;
|
|
110
|
+
}
|
|
111
|
+
var targetVolume = totalVolume * 0.70;
|
|
112
|
+
|
|
113
|
+
var vaHigh = poc;
|
|
114
|
+
var vaLow = poc;
|
|
115
|
+
|
|
116
|
+
if (priceLevels.length > 1) {
|
|
117
|
+
var pocIndex = -1;
|
|
118
|
+
for (var i = 0; i < priceLevels.length; i++) {
|
|
119
|
+
if (priceLevels[i].price === poc) {
|
|
120
|
+
pocIndex = i;
|
|
121
|
+
break;
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
if (pocIndex === -1) pocIndex = 0;
|
|
125
|
+
var left = pocIndex;
|
|
126
|
+
var right = pocIndex;
|
|
127
|
+
var currentVolume = priceLevels[pocIndex].volume;
|
|
128
|
+
|
|
129
|
+
while (currentVolume < targetVolume && (left > 0 || right < priceLevels.length - 1)) {
|
|
130
|
+
var upVol = right + 1 < priceLevels.length ? priceLevels[right + 1].volume : 0;
|
|
131
|
+
var downVol = left - 1 >= 0 ? priceLevels[left - 1].volume : 0;
|
|
132
|
+
|
|
133
|
+
if (upVol >= downVol && right < priceLevels.length - 1) {
|
|
134
|
+
right += 1;
|
|
135
|
+
currentVolume += priceLevels[right].volume;
|
|
136
|
+
} else if (left > 0) {
|
|
137
|
+
left -= 1;
|
|
138
|
+
currentVolume += priceLevels[left].volume;
|
|
139
|
+
} else if (right < priceLevels.length - 1) {
|
|
140
|
+
right += 1;
|
|
141
|
+
currentVolume += priceLevels[right].volume;
|
|
142
|
+
}
|
|
143
|
+
}
|
|
144
|
+
|
|
145
|
+
vaHigh = priceLevels[right].price;
|
|
146
|
+
vaLow = priceLevels[left].price;
|
|
147
|
+
}
|
|
148
|
+
|
|
149
|
+
var highVolumeNodes = [];
|
|
150
|
+
var lowVolumeNodes = [];
|
|
151
|
+
var avgVolume = totalVolume / priceLevels.length;
|
|
152
|
+
|
|
153
|
+
for (var i = 1; i < priceLevels.length - 1; i++) {
|
|
154
|
+
var prev = priceLevels[i - 1].volume;
|
|
155
|
+
var curr = priceLevels[i].volume;
|
|
156
|
+
var next = priceLevels[i + 1].volume;
|
|
157
|
+
|
|
158
|
+
if (curr > prev && curr > next && curr > avgVolume) {
|
|
159
|
+
highVolumeNodes.push(priceLevels[i].price);
|
|
160
|
+
}
|
|
161
|
+
if (curr < prev && curr < next && curr > 0 && curr < avgVolume) {
|
|
162
|
+
lowVolumeNodes.push(priceLevels[i].price);
|
|
163
|
+
}
|
|
164
|
+
}
|
|
165
|
+
|
|
166
|
+
return {
|
|
167
|
+
priceLevels: priceLevels,
|
|
168
|
+
poc: poc,
|
|
169
|
+
valueAreaHigh: vaHigh,
|
|
170
|
+
valueAreaLow: vaLow,
|
|
171
|
+
highVolumeNodes: highVolumeNodes,
|
|
172
|
+
lowVolumeNodes: lowVolumeNodes
|
|
173
|
+
};
|
|
174
|
+
}
|
|
175
|
+
|
|
176
|
+
self.onmessage = function(event) {
|
|
177
|
+
var requestId = event.data.requestId;
|
|
178
|
+
var data = event.data.data;
|
|
179
|
+
var priceTickSize = event.data.priceTickSize;
|
|
180
|
+
var range = event.data.range;
|
|
181
|
+
try {
|
|
182
|
+
var result = computeVolumeProfile(data, priceTickSize, range);
|
|
183
|
+
self.postMessage({ requestId: requestId, result: result });
|
|
184
|
+
} catch (error) {
|
|
185
|
+
self.postMessage({ requestId: requestId, error: error instanceof Error ? error.message : String(error) });
|
|
186
|
+
}
|
|
187
|
+
};
|
|
188
|
+
`,m=1;function f(i,o,a){return typeof Blob>"u"||typeof URL>"u"||typeof Worker>"u"?Promise.resolve(u(i,o,a)):new Promise((v,l)=>{let n=new Blob([p],{type:"application/javascript"}),t=URL.createObjectURL(n),r=new Worker(t),s=m++,c=()=>{r.terminate(),URL.revokeObjectURL(t)};r.onmessage=e=>{e.data.requestId===s&&(e.data.error?l(new Error(e.data.error)):v(e.data.result),c())},r.onerror=e=>{l(e),c()},r.postMessage({requestId:s,data:i,priceTickSize:o,range:a})})}export{f as computeVolumeProfileAsync};
|
|
189
|
+
//# sourceMappingURL=VolumeProfileWorker-UREKVPUE.js.map
|