@luxalgo/vela 0.6.20 → 0.6.21

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.
@@ -1,4 +1,4 @@
1
- import { parseSymbol, priceStyleIds, BUILTIN_PRICE_STYLES, tzButtonLabel, TIMEZONES, normalizeTimezone, tzMenuLabel, isGroupRow, defaultMemberOf, groupKeyOf, groupMembers, LEGEND_AT_TOP_ATTR, normalizeSession, Vela, TypedEventBus, MultiProviderFeed, registerBuiltinChartTypes, resolveTheme, buildToolbar, createCustomMark, createAttributionMark, DrawingToolbar, applyAttributionMarkTheme, sharedBarStore, timeframeToMs } from './chunk-4Q4B5AO3.js';
1
+ import { parseSymbol, priceStyleIds, BUILTIN_PRICE_STYLES, tzButtonLabel, TIMEZONES, normalizeTimezone, tzMenuLabel, isGroupRow, defaultMemberOf, groupKeyOf, groupMembers, LEGEND_AT_TOP_ATTR, normalizeSession, Vela, TypedEventBus, MultiProviderFeed, registerBuiltinChartTypes, resolveTheme, buildToolbar, createCustomMark, createAttributionMark, DrawingToolbar, applyAttributionMarkTheme, sharedBarStore, timeframeToMs } from './chunk-TRZQQUTR.js';
2
2
  import { chartType, resolveTopbarComposition, topbarActionOverride, TOPBAR_BUILTIN_IDS, widgetActions, SidePanel, sidePanels, DEFAULT_PANEL_ORDER, symbolRanking, resolveEngines, legendActionsProviderFor, legendCalloutsProviderFor, statePersistenceHandlers, topbarHas, rendererDefaults, widgetAttachments, getDrawingType, inputDeltas } from './chunk-IFJJPXSV.js';
3
3
  import { Tooltip, KeymapManager, isEditableTarget, Drawer } from './chunk-XCBJU674.js';
4
4
  import { Menu, Dialog, CalloutBubble, applyPlotOverlayTokens, ensureUIHost } from './chunk-T5Z5YUCF.js';
@@ -5614,7 +5614,7 @@ var ChartCell = class {
5614
5614
  // A RESTORED ledger is authoritative for the auto-added volume too: a
5615
5615
  // slot persisted without it must come back without it (fresh slots
5616
5616
  // keep the workspace default).
5617
- volume: seed.indicators ? seed.indicators.natives.includes("volume") : deps.volume,
5617
+ volume: seed.indicators ? seed.indicators.natives.some((e) => ledgerNativeType(e) === "volume") : deps.volume,
5618
5618
  nativeBackend: deps.nativeBackend,
5619
5619
  // The user's drawings option minus its toolbar: one SHARED bar serves
5620
5620
  // the whole workspace (per-cell bars would cost a 44px gutter each).
@@ -21120,6 +21120,7 @@ var EngineOrchestrator = class _EngineOrchestrator {
21120
21120
  if (!record.native) continue;
21121
21121
  record.native.instance.stop();
21122
21122
  record.native.instance = record.native.descriptor.create();
21123
+ record.native.started = false;
21123
21124
  record.pendingStructural = true;
21124
21125
  if (record.hidden) {
21125
21126
  record.native.stale = true;
@@ -21615,7 +21616,7 @@ var EngineOrchestrator = class _EngineOrchestrator {
21615
21616
  if (record.renderHandle) this.renderer.setIndicatorVisible?.(record.renderHandle, true);
21616
21617
  record.pendingStructural = true;
21617
21618
  if (record.native) {
21618
- if (record.native.stale) {
21619
+ if (record.native.stale || !record.native.started) {
21619
21620
  record.native.stale = false;
21620
21621
  const handle = this.handles.get(id);
21621
21622
  if (handle) void this.startNativeIndicator(id, handle);
@@ -21796,6 +21797,7 @@ var EngineOrchestrator = class _EngineOrchestrator {
21796
21797
  }
21797
21798
  };
21798
21799
  record.native.instance.start(ctx, record.inputValues);
21800
+ record.native.started = true;
21799
21801
  } catch (err) {
21800
21802
  this.fail(id, handle, err);
21801
21803
  }
@@ -22339,6 +22341,8 @@ function volumeLayerData(inputs) {
22339
22341
  }
22340
22342
  var VolumeIndicator = class {
22341
22343
  constructor() {
22344
+ /** Null until start() — pre-start setInputs/resume must record without pushing. */
22345
+ this.ctx = null;
22342
22346
  this.inputs = {};
22343
22347
  }
22344
22348
  start(ctx, inputs) {
@@ -22355,13 +22359,13 @@ var VolumeIndicator = class {
22355
22359
  }
22356
22360
  setInputs(inputs) {
22357
22361
  this.inputs = inputs;
22358
- this.ctx.pushData(volumeLayerData(inputs));
22362
+ this.ctx?.pushData(volumeLayerData(inputs));
22359
22363
  }
22360
22364
  /** Hiding is a renderer-layer flag (set via `setIndicatorVisible`); no resources to free. */
22361
22365
  suspend() {
22362
22366
  }
22363
22367
  resume() {
22364
- this.ctx.pushData(volumeLayerData(this.inputs));
22368
+ this.ctx?.pushData(volumeLayerData(this.inputs));
22365
22369
  }
22366
22370
  stop() {
22367
22371
  }
@@ -22407,6 +22411,8 @@ function vpvrLayerData(inputs) {
22407
22411
  }
22408
22412
  var VpvrIndicator = class {
22409
22413
  constructor() {
22414
+ /** Null until start() — pre-start setInputs/resume must record without pushing. */
22415
+ this.ctx = null;
22410
22416
  this.inputs = {};
22411
22417
  }
22412
22418
  start(ctx, inputs) {
@@ -22423,13 +22429,13 @@ var VpvrIndicator = class {
22423
22429
  }
22424
22430
  setInputs(inputs) {
22425
22431
  this.inputs = inputs;
22426
- this.ctx.pushData(vpvrLayerData(inputs));
22432
+ this.ctx?.pushData(vpvrLayerData(inputs));
22427
22433
  }
22428
22434
  /** Hiding is a renderer-layer flag (set via `setIndicatorVisible`); no resources to free. */
22429
22435
  suspend() {
22430
22436
  }
22431
22437
  resume() {
22432
- this.ctx.pushData(vpvrLayerData(this.inputs));
22438
+ this.ctx?.pushData(vpvrLayerData(this.inputs));
22433
22439
  }
22434
22440
  stop() {
22435
22441
  }
package/dist/index.cjs CHANGED
@@ -8131,6 +8131,7 @@ var EngineOrchestrator = class _EngineOrchestrator {
8131
8131
  if (!record.native) continue;
8132
8132
  record.native.instance.stop();
8133
8133
  record.native.instance = record.native.descriptor.create();
8134
+ record.native.started = false;
8134
8135
  record.pendingStructural = true;
8135
8136
  if (record.hidden) {
8136
8137
  record.native.stale = true;
@@ -8626,7 +8627,7 @@ var EngineOrchestrator = class _EngineOrchestrator {
8626
8627
  if (record.renderHandle) this.renderer.setIndicatorVisible?.(record.renderHandle, true);
8627
8628
  record.pendingStructural = true;
8628
8629
  if (record.native) {
8629
- if (record.native.stale) {
8630
+ if (record.native.stale || !record.native.started) {
8630
8631
  record.native.stale = false;
8631
8632
  const handle = this.handles.get(id);
8632
8633
  if (handle) void this.startNativeIndicator(id, handle);
@@ -8807,6 +8808,7 @@ var EngineOrchestrator = class _EngineOrchestrator {
8807
8808
  }
8808
8809
  };
8809
8810
  record.native.instance.start(ctx, record.inputValues);
8811
+ record.native.started = true;
8810
8812
  } catch (err) {
8811
8813
  this.fail(id, handle, err);
8812
8814
  }
@@ -31331,6 +31333,8 @@ function volumeLayerData(inputs) {
31331
31333
  }
31332
31334
  var VolumeIndicator = class {
31333
31335
  constructor() {
31336
+ /** Null until start() — pre-start setInputs/resume must record without pushing. */
31337
+ this.ctx = null;
31334
31338
  this.inputs = {};
31335
31339
  }
31336
31340
  start(ctx, inputs) {
@@ -31347,13 +31351,13 @@ var VolumeIndicator = class {
31347
31351
  }
31348
31352
  setInputs(inputs) {
31349
31353
  this.inputs = inputs;
31350
- this.ctx.pushData(volumeLayerData(inputs));
31354
+ this.ctx?.pushData(volumeLayerData(inputs));
31351
31355
  }
31352
31356
  /** Hiding is a renderer-layer flag (set via `setIndicatorVisible`); no resources to free. */
31353
31357
  suspend() {
31354
31358
  }
31355
31359
  resume() {
31356
- this.ctx.pushData(volumeLayerData(this.inputs));
31360
+ this.ctx?.pushData(volumeLayerData(this.inputs));
31357
31361
  }
31358
31362
  stop() {
31359
31363
  }
@@ -31399,6 +31403,8 @@ function vpvrLayerData(inputs) {
31399
31403
  }
31400
31404
  var VpvrIndicator = class {
31401
31405
  constructor() {
31406
+ /** Null until start() — pre-start setInputs/resume must record without pushing. */
31407
+ this.ctx = null;
31402
31408
  this.inputs = {};
31403
31409
  }
31404
31410
  start(ctx, inputs) {
@@ -31415,13 +31421,13 @@ var VpvrIndicator = class {
31415
31421
  }
31416
31422
  setInputs(inputs) {
31417
31423
  this.inputs = inputs;
31418
- this.ctx.pushData(vpvrLayerData(inputs));
31424
+ this.ctx?.pushData(vpvrLayerData(inputs));
31419
31425
  }
31420
31426
  /** Hiding is a renderer-layer flag (set via `setIndicatorVisible`); no resources to free. */
31421
31427
  suspend() {
31422
31428
  }
31423
31429
  resume() {
31424
- this.ctx.pushData(vpvrLayerData(this.inputs));
31430
+ this.ctx?.pushData(vpvrLayerData(this.inputs));
31425
31431
  }
31426
31432
  stop() {
31427
31433
  }
package/dist/index.js CHANGED
@@ -1,5 +1,5 @@
1
1
  import './chunk-FE6V2YAQ.js';
2
- export { BarStore, CachingDataFeed, DARK_THEME, DataControl, DrawingStore, DrawingToolbar, DrawingsControl, LIGHT_THEME, MultiProviderFeed, NativeRenderer, RendererControl, TypedEventBus, Vela, buildToolbar, defaultToolbar, resolveTheme, sharedBarStore, timeframeToMs } from './chunk-4Q4B5AO3.js';
2
+ export { BarStore, CachingDataFeed, DARK_THEME, DataControl, DrawingStore, DrawingToolbar, DrawingsControl, LIGHT_THEME, MultiProviderFeed, NativeRenderer, RendererControl, TypedEventBus, Vela, buildToolbar, defaultToolbar, resolveTheme, sharedBarStore, timeframeToMs } from './chunk-TRZQQUTR.js';
3
3
  export { DEFAULT_PANEL_MAX_WIDTH, DEFAULT_PANEL_MIN_WIDTH, DEFAULT_PANEL_WIDTH, Drawing, OVERRIDABLE_TOPBAR_IDS, chartType, chartTypes, clampPanelWidth, createDrawing, deserializeDrawing, drawingTypes, getDrawingType, getNativeIndicator, inputDeltas, inputVisible, legendActions, legendCallouts, nativeIndicatorDescriptors, nativeIndicatorTypes, normalizeSettingsRow, registerChartType, registerDefaultEngine, registerDrawingType, registerLegendAction, registerLegendCallout, registerNativeIndicator, registerRendererDefaults, registerRendererLayer, registerSidePanel, registerStatePersistence, registerSymbolRanking, registerWidgetAction, registerWidgetAttachment, rendererDefaults, rendererLayers, resolveEngines, settingsRowValueKeys, sidePanels, stableSeriesId, statePersistenceHandlers, symbolRanking, tickerModifierIds, topbarActionOverride, unregisterChartType, unregisterDefaultEngine, unregisterLegendAction, unregisterLegendCallout, unregisterNativeIndicator, unregisterRendererDefaults, unregisterRendererLayer, unregisterSidePanel, unregisterStatePersistence, unregisterWidgetAction, unregisterWidgetAttachment, widgetActions, widgetAttachments } from './chunk-IFJJPXSV.js';
4
4
  import './chunk-T5Z5YUCF.js';
5
5
  export { ACCENT, ACCENT_BRIGHT, BEARISH, BULLISH, CATEGORICAL, CHIP_PLATE, CROSSHAIR, HIGHLIGHT, INFO, INVALID, MARKER, NEUTRAL, SERIES_LINE, SESSION_OFF, SESSION_POST, SESSION_PRE, SLATE, SLATE_DEEP, TRADE_EXIT, TRADE_LONG, TRADE_SHORT, VALID, WARNING, categoricalColor, iconMarkup, registerIcon } from './chunk-CAFCLMPF.js';
@@ -8107,6 +8107,7 @@ var Vela = (function (exports) {
8107
8107
  if (!record.native) continue;
8108
8108
  record.native.instance.stop();
8109
8109
  record.native.instance = record.native.descriptor.create();
8110
+ record.native.started = false;
8110
8111
  record.pendingStructural = true;
8111
8112
  if (record.hidden) {
8112
8113
  record.native.stale = true;
@@ -8602,7 +8603,7 @@ var Vela = (function (exports) {
8602
8603
  if (record.renderHandle) this.renderer.setIndicatorVisible?.(record.renderHandle, true);
8603
8604
  record.pendingStructural = true;
8604
8605
  if (record.native) {
8605
- if (record.native.stale) {
8606
+ if (record.native.stale || !record.native.started) {
8606
8607
  record.native.stale = false;
8607
8608
  const handle = this.handles.get(id);
8608
8609
  if (handle) void this.startNativeIndicator(id, handle);
@@ -8783,6 +8784,7 @@ var Vela = (function (exports) {
8783
8784
  }
8784
8785
  };
8785
8786
  record.native.instance.start(ctx, record.inputValues);
8787
+ record.native.started = true;
8786
8788
  } catch (err) {
8787
8789
  this.fail(id, handle, err);
8788
8790
  }
@@ -38747,6 +38749,8 @@ ${overlayScrollbarCss(".vela-sd-pane")}
38747
38749
  }
38748
38750
  var VolumeIndicator = class {
38749
38751
  constructor() {
38752
+ /** Null until start() — pre-start setInputs/resume must record without pushing. */
38753
+ this.ctx = null;
38750
38754
  this.inputs = {};
38751
38755
  }
38752
38756
  start(ctx, inputs) {
@@ -38763,13 +38767,13 @@ ${overlayScrollbarCss(".vela-sd-pane")}
38763
38767
  }
38764
38768
  setInputs(inputs) {
38765
38769
  this.inputs = inputs;
38766
- this.ctx.pushData(volumeLayerData(inputs));
38770
+ this.ctx?.pushData(volumeLayerData(inputs));
38767
38771
  }
38768
38772
  /** Hiding is a renderer-layer flag (set via `setIndicatorVisible`); no resources to free. */
38769
38773
  suspend() {
38770
38774
  }
38771
38775
  resume() {
38772
- this.ctx.pushData(volumeLayerData(this.inputs));
38776
+ this.ctx?.pushData(volumeLayerData(this.inputs));
38773
38777
  }
38774
38778
  stop() {
38775
38779
  }
@@ -38815,6 +38819,8 @@ ${overlayScrollbarCss(".vela-sd-pane")}
38815
38819
  }
38816
38820
  var VpvrIndicator = class {
38817
38821
  constructor() {
38822
+ /** Null until start() — pre-start setInputs/resume must record without pushing. */
38823
+ this.ctx = null;
38818
38824
  this.inputs = {};
38819
38825
  }
38820
38826
  start(ctx, inputs) {
@@ -38831,13 +38837,13 @@ ${overlayScrollbarCss(".vela-sd-pane")}
38831
38837
  }
38832
38838
  setInputs(inputs) {
38833
38839
  this.inputs = inputs;
38834
- this.ctx.pushData(vpvrLayerData(inputs));
38840
+ this.ctx?.pushData(vpvrLayerData(inputs));
38835
38841
  }
38836
38842
  /** Hiding is a renderer-layer flag (set via `setIndicatorVisible`); no resources to free. */
38837
38843
  suspend() {
38838
38844
  }
38839
38845
  resume() {
38840
- this.ctx.pushData(vpvrLayerData(this.inputs));
38846
+ this.ctx?.pushData(vpvrLayerData(this.inputs));
38841
38847
  }
38842
38848
  stop() {
38843
38849
  }