@trdrs/quickcharts 5.3.0 → 5.5.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/CHANGELOG.md +14 -0
- package/README.md +45 -9
- package/dist/{chunk-FRZFOTMO.js → chunk-ETG46YGK.js} +28 -1
- package/dist/{chunk-FRZFOTMO.js.map → chunk-ETG46YGK.js.map} +1 -1
- package/dist/drawings.js +1 -1
- package/dist/feature-manifest.json +1 -1
- package/dist/index.d.ts +321 -286
- package/dist/index.js +115 -22
- package/dist/index.js.map +1 -1
- package/dist/quickcharts.css +262 -13
- package/package.json +1 -1
package/dist/index.d.ts
CHANGED
|
@@ -3689,6 +3689,19 @@ interface IndicatorPickerCollection {
|
|
|
3689
3689
|
group?: string;
|
|
3690
3690
|
/** Catalog columns by default; a personal list can omit author and favorite columns. */
|
|
3691
3691
|
layout?: 'table' | 'list';
|
|
3692
|
+
/** What the list shows while the collection lists no row and no search is typed. Omitted, it
|
|
3693
|
+
* reads the chart's own no-matches line. */
|
|
3694
|
+
empty?: IndicatorPickerEmpty;
|
|
3695
|
+
}
|
|
3696
|
+
/** A collection's empty state, centred where its list stands: a mark, a title, a line of text and
|
|
3697
|
+
* one action, which the source's `act` runs with a `collection` target. */
|
|
3698
|
+
interface IndicatorPickerEmpty {
|
|
3699
|
+
title: string;
|
|
3700
|
+
text?: string;
|
|
3701
|
+
/** Drawn 120px square from the same 28-unit grid as every contributed glyph. */
|
|
3702
|
+
icon?: ChartExtensionIcon;
|
|
3703
|
+
/** The empty state's one button. `add` and `favorite` belong to the chart. */
|
|
3704
|
+
action?: IndicatorPickerAction;
|
|
3692
3705
|
}
|
|
3693
3706
|
/** A kind of row a host lists beside the chart's indicators. The picker offers each declared kind as
|
|
3694
3707
|
* a filter under its search field, after All and the chart's own Indicators. */
|
|
@@ -3737,7 +3750,8 @@ interface IndicatorPickerSource {
|
|
|
3737
3750
|
kinds?: readonly IndicatorPickerKind[];
|
|
3738
3751
|
/** The host supplies localized text. A new query or collection aborts the previous read.
|
|
3739
3752
|
* `builtInIds` are the built-ins the picker lists: every one, or those `builtInIndicators`
|
|
3740
|
-
* offers.
|
|
3753
|
+
* offers. Items answered for `builtin` list after the shipped definitions, and items answered
|
|
3754
|
+
* for `favorites` list there when starred. */
|
|
3741
3755
|
list(request: {
|
|
3742
3756
|
collection: string;
|
|
3743
3757
|
query: string;
|
|
@@ -3750,11 +3764,12 @@ interface IndicatorPickerSource {
|
|
|
3750
3764
|
kind: 'unavailable';
|
|
3751
3765
|
message: string;
|
|
3752
3766
|
}>;
|
|
3753
|
-
/** `favorite` carries the requested next value.
|
|
3754
|
-
*
|
|
3767
|
+
/** `favorite` carries the requested next value. A `collection` target is the empty state's action
|
|
3768
|
+
* in the collection of that id. Closing aborts pending work; hosts must also check the signal
|
|
3769
|
+
* before performing late UI effects. Add is never routed here. */
|
|
3755
3770
|
act(request: {
|
|
3756
3771
|
target: {
|
|
3757
|
-
kind: 'builtin' | 'item';
|
|
3772
|
+
kind: 'builtin' | 'item' | 'collection';
|
|
3758
3773
|
id: string;
|
|
3759
3774
|
};
|
|
3760
3775
|
action: string;
|
|
@@ -4045,29 +4060,106 @@ declare function spreadExpression(query: string): string;
|
|
|
4045
4060
|
* lists the ETHBTC markets under the expression row. */
|
|
4046
4061
|
declare function spreadSearchQuery(query: string): string;
|
|
4047
4062
|
|
|
4048
|
-
|
|
4049
|
-
|
|
4050
|
-
|
|
4051
|
-
|
|
4052
|
-
|
|
4063
|
+
/** What went wrong, as a machine-readable code. */
|
|
4064
|
+
type ThemeDiagnosticCode = 'unknown-role' | 'empty-value' | 'invalid-value';
|
|
4065
|
+
/** One rejected entry of a host's custom palette. */
|
|
4066
|
+
interface ThemeDiagnostic {
|
|
4067
|
+
/** The mode whose palette carried the entry. */
|
|
4068
|
+
mode: ThemeMode;
|
|
4069
|
+
/** The key as the host wrote it, whether or not it names a role. */
|
|
4070
|
+
role: string;
|
|
4071
|
+
code: ThemeDiagnosticCode;
|
|
4072
|
+
/** A sentence naming the problem, safe to log or surface in a host's own tooling. */
|
|
4073
|
+
message: string;
|
|
4053
4074
|
}
|
|
4054
|
-
|
|
4055
|
-
|
|
4056
|
-
|
|
4057
|
-
|
|
4058
|
-
|
|
4059
|
-
|
|
4060
|
-
|
|
4075
|
+
|
|
4076
|
+
/** What a host receives when the theme changes. */
|
|
4077
|
+
type ThemeChangeListener = (theme: SemanticTheme, mode: ThemeMode) => void;
|
|
4078
|
+
/** The runtime theme surface of one Quick Charts instance. */
|
|
4079
|
+
interface ThemeController {
|
|
4080
|
+
/** The mode in effect. */
|
|
4081
|
+
mode(): ThemeMode;
|
|
4082
|
+
/** Switch modes. The chart keeps its symbol, timeframe, range, drawings, and indicators. */
|
|
4083
|
+
setMode(mode: ThemeMode): void;
|
|
4084
|
+
/** The complete resolved theme in effect. */
|
|
4085
|
+
get(): SemanticTheme;
|
|
4086
|
+
/** Replace the custom palettes. A role a palette does not name returns to its built-in value. */
|
|
4087
|
+
applyCustom(themes: CustomThemes): void;
|
|
4088
|
+
/** Drop every custom palette and return to the built-in palette for each mode. */
|
|
4089
|
+
resetCustom(): void;
|
|
4090
|
+
/** Anything rejected in the custom palettes currently held. Empty when they are fully usable. */
|
|
4091
|
+
diagnostics(): readonly ThemeDiagnostic[];
|
|
4092
|
+
/** Subscribe to theme changes. Returns the unsubscribe. */
|
|
4093
|
+
onChange(listener: ThemeChangeListener): () => void;
|
|
4094
|
+
}
|
|
4095
|
+
/** What a host may set when the controller is created. */
|
|
4096
|
+
interface ThemeControllerOptions {
|
|
4097
|
+
/** Defaults to `dark`. */
|
|
4098
|
+
mode?: ThemeMode;
|
|
4099
|
+
/** Custom palettes for either mode, or both. */
|
|
4100
|
+
custom?: CustomThemes;
|
|
4101
|
+
}
|
|
4102
|
+
/** Create the theme controller for one chart instance. */
|
|
4103
|
+
declare function createThemeController(options?: ThemeControllerOptions): ThemeController;
|
|
4104
|
+
|
|
4105
|
+
/** Which handle a command acts on: the widget as a whole, or the active chart. */
|
|
4106
|
+
type CommandScope = 'widget' | 'chart';
|
|
4107
|
+
/** One command. */
|
|
4108
|
+
interface CommandSpec {
|
|
4109
|
+
/** The stable public id, e.g. `chart.style.candles`. */
|
|
4110
|
+
id: string;
|
|
4111
|
+
scope: CommandScope;
|
|
4112
|
+
/** The catalog key the chart's own chrome labels the command with. */
|
|
4113
|
+
label: ChartMessageKey;
|
|
4114
|
+
/** Literal text that wins over `label`. A host contribution names itself in its own words and
|
|
4115
|
+
* owns its own translations, so it does not point at the chart's catalog. */
|
|
4116
|
+
labelText?: string;
|
|
4117
|
+
/** The default shortcut, in `KeyboardEvent` terms (e.g. `Alt+KeyR`). */
|
|
4118
|
+
shortcut?: string;
|
|
4119
|
+
/** Whether the command can run right now, from capability and chart state. A command whose one id
|
|
4120
|
+
* spans many subjects reads the argument it would run with, and answers for that subject: the
|
|
4121
|
+
* top pane cannot move up. Asked with none, it answers whether any subject could, unless a run
|
|
4122
|
+
* with none acts on a subject of its own, as the horizontal line at the crosshair's price does,
|
|
4123
|
+
* and then for that subject. */
|
|
4124
|
+
available(arg?: unknown): boolean;
|
|
4125
|
+
/** Whether the access policy refuses this argument, for a command whose one id spans many
|
|
4126
|
+
* subjects (the tool to arm). A refused argument answers `denied`, as a refused id does. */
|
|
4127
|
+
refuses?(arg: unknown): boolean;
|
|
4128
|
+
execute(arg?: unknown): void | Promise<void>;
|
|
4129
|
+
}
|
|
4130
|
+
/** What running a command answers. A refusal is a value, never a throw: a menu row, a shortcut and
|
|
4131
|
+
* an automation adapter all need to tell "nothing by that name" from "not allowed" without a try
|
|
4132
|
+
* block. */
|
|
4133
|
+
type CommandResult = {
|
|
4134
|
+
kind: 'ok';
|
|
4135
|
+
} | {
|
|
4136
|
+
kind: 'unavailable';
|
|
4137
|
+
} | {
|
|
4138
|
+
kind: 'denied';
|
|
4139
|
+
} | {
|
|
4140
|
+
kind: 'unknown';
|
|
4141
|
+
} | {
|
|
4142
|
+
kind: 'failed';
|
|
4143
|
+
error: unknown;
|
|
4144
|
+
};
|
|
4145
|
+
/** The widget's command surface. */
|
|
4146
|
+
interface CommandRegistry {
|
|
4147
|
+
/** Add a command. Returns its unregister. A second registration of an id replaces the first,
|
|
4148
|
+
* which is what lets a chart re-register its own verbs when its active handle changes. */
|
|
4149
|
+
register(spec: CommandSpec): () => void;
|
|
4150
|
+
/** Every registered command, in registration order. Unavailable and denied commands are listed:
|
|
4151
|
+
* a menu decides whether to draw a disabled row, and hiding one would leave the host guessing. */
|
|
4152
|
+
list(): readonly CommandSpec[];
|
|
4153
|
+
/** Whether `execute` would run this command right now, with this argument where it takes one. */
|
|
4154
|
+
available(id: string, arg?: unknown): boolean;
|
|
4155
|
+
execute(id: string, arg?: unknown): CommandResult;
|
|
4156
|
+
/** Remap a shortcut, or clear it with null. */
|
|
4157
|
+
setShortcut(id: string, shortcut: string | null): void;
|
|
4158
|
+
/** Fires when the registered set or a shortcut changes, and when the host says its access policy
|
|
4159
|
+
* may answer differently (`widget.refreshAccess()`), since what `available` answers may have
|
|
4160
|
+
* moved with it. Returns the unsubscribe. */
|
|
4161
|
+
onChange(cb: () => void): () => void;
|
|
4061
4162
|
}
|
|
4062
|
-
/** Every arrangement, in picker order. */
|
|
4063
|
-
declare const ARRANGEMENTS: readonly Arrangement[];
|
|
4064
|
-
/** Look an arrangement up by code; unknown codes return null so a stale saved layout degrades. */
|
|
4065
|
-
declare function arrangementOf(code: string): Arrangement | null;
|
|
4066
|
-
/** The picker's row structure: rows labeled by chart count, codes in menu order. */
|
|
4067
|
-
declare const LAYOUT_MENU_ROWS: readonly {
|
|
4068
|
-
label: string;
|
|
4069
|
-
codes: readonly string[];
|
|
4070
|
-
}[];
|
|
4071
4163
|
|
|
4072
4164
|
/** The named resource on screen: the ref it was opened or last saved at, and its name. */
|
|
4073
4165
|
interface OpenResource {
|
|
@@ -4217,105 +4309,108 @@ interface PlotArea {
|
|
|
4217
4309
|
height: number;
|
|
4218
4310
|
}
|
|
4219
4311
|
|
|
4220
|
-
/**
|
|
4221
|
-
|
|
4222
|
-
|
|
4223
|
-
|
|
4224
|
-
|
|
4225
|
-
|
|
4226
|
-
/** The key as the host wrote it, whether or not it names a role. */
|
|
4227
|
-
role: string;
|
|
4228
|
-
code: ThemeDiagnosticCode;
|
|
4229
|
-
/** A sentence naming the problem, safe to log or surface in a host's own tooling. */
|
|
4312
|
+
/** A saved-resource refusal, including layout API calls and commands. The widget never
|
|
4313
|
+
* overwrites newer work; `current` reports the store's revision, not a newly adopted binding. */
|
|
4314
|
+
interface SaveConflictInfo {
|
|
4315
|
+
family: 'drawings' | 'chart' | 'layout';
|
|
4316
|
+
symbol?: string;
|
|
4317
|
+
current: ResourceRef | null;
|
|
4230
4318
|
message: string;
|
|
4231
4319
|
}
|
|
4232
|
-
|
|
4233
|
-
|
|
4234
|
-
|
|
4235
|
-
/** The
|
|
4236
|
-
|
|
4237
|
-
|
|
4238
|
-
mode(): ThemeMode;
|
|
4239
|
-
/** Switch modes. The chart keeps its symbol, timeframe, range, drawings, and indicators. */
|
|
4240
|
-
setMode(mode: ThemeMode): void;
|
|
4241
|
-
/** The complete resolved theme in effect. */
|
|
4242
|
-
get(): SemanticTheme;
|
|
4243
|
-
/** Replace the custom palettes. A role a palette does not name returns to its built-in value. */
|
|
4244
|
-
applyCustom(themes: CustomThemes): void;
|
|
4245
|
-
/** Drop every custom palette and return to the built-in palette for each mode. */
|
|
4246
|
-
resetCustom(): void;
|
|
4247
|
-
/** Anything rejected in the custom palettes currently held. Empty when they are fully usable. */
|
|
4248
|
-
diagnostics(): readonly ThemeDiagnostic[];
|
|
4249
|
-
/** Subscribe to theme changes. Returns the unsubscribe. */
|
|
4250
|
-
onChange(listener: ThemeChangeListener): () => void;
|
|
4320
|
+
/** What the widget did to the saved layout it holds open, on the viewer's behalf. */
|
|
4321
|
+
interface LayoutEvent {
|
|
4322
|
+
kind: 'saved' | 'loaded' | 'removed' | 'detached';
|
|
4323
|
+
/** The layout's id, or null after a detach. */
|
|
4324
|
+
id: string | null;
|
|
4325
|
+
name: string | null;
|
|
4251
4326
|
}
|
|
4252
|
-
/**
|
|
4253
|
-
|
|
4254
|
-
|
|
4255
|
-
|
|
4256
|
-
/** Custom palettes for either mode, or both. */
|
|
4257
|
-
custom?: CustomThemes;
|
|
4327
|
+
/** The outcome of a client-image verb the widget ran: the copy landed, the copy was refused and a
|
|
4328
|
+
* download stood in for it, or the capture failed. */
|
|
4329
|
+
interface ImageEvent {
|
|
4330
|
+
kind: 'copied' | 'copyFallback' | 'failed';
|
|
4258
4331
|
}
|
|
4259
|
-
/**
|
|
4260
|
-
|
|
4261
|
-
|
|
4262
|
-
/** Which handle a command acts on: the widget as a whole, or the active chart. */
|
|
4263
|
-
type CommandScope = 'widget' | 'chart';
|
|
4264
|
-
/** One command. */
|
|
4265
|
-
interface CommandSpec {
|
|
4266
|
-
/** The stable public id, e.g. `chart.style.candles`. */
|
|
4332
|
+
/** What changed about the chart's indicators. */
|
|
4333
|
+
interface IndicatorEvent {
|
|
4334
|
+
kind: 'added' | 'removed' | 'changed' | 'hidden' | 'shown';
|
|
4267
4335
|
id: string;
|
|
4268
|
-
scope: CommandScope;
|
|
4269
|
-
/** The catalog key the chart's own chrome labels the command with. */
|
|
4270
|
-
label: ChartMessageKey;
|
|
4271
|
-
/** Literal text that wins over `label`. A host contribution names itself in its own words and
|
|
4272
|
-
* owns its own translations, so it does not point at the chart's catalog. */
|
|
4273
|
-
labelText?: string;
|
|
4274
|
-
/** The default shortcut, in `KeyboardEvent` terms (e.g. `Alt+KeyR`). */
|
|
4275
|
-
shortcut?: string;
|
|
4276
|
-
/** Whether the command can run right now, from capability and chart state. A command whose one id
|
|
4277
|
-
* spans many subjects reads the argument it would run with, and answers for that subject: the
|
|
4278
|
-
* top pane cannot move up. Asked with none, it answers whether any subject could, unless a run
|
|
4279
|
-
* with none acts on a subject of its own, as the horizontal line at the crosshair's price does,
|
|
4280
|
-
* and then for that subject. */
|
|
4281
|
-
available(arg?: unknown): boolean;
|
|
4282
|
-
/** Whether the access policy refuses this argument, for a command whose one id spans many
|
|
4283
|
-
* subjects (the tool to arm). A refused argument answers `denied`, as a refused id does. */
|
|
4284
|
-
refuses?(arg: unknown): boolean;
|
|
4285
|
-
execute(arg?: unknown): void | Promise<void>;
|
|
4286
4336
|
}
|
|
4287
|
-
/** What
|
|
4288
|
-
|
|
4289
|
-
|
|
4290
|
-
|
|
4291
|
-
|
|
4292
|
-
}
|
|
4293
|
-
|
|
4294
|
-
|
|
4295
|
-
|
|
4296
|
-
|
|
4297
|
-
|
|
4298
|
-
|
|
4299
|
-
|
|
4300
|
-
|
|
4301
|
-
|
|
4302
|
-
|
|
4303
|
-
|
|
4304
|
-
|
|
4305
|
-
|
|
4306
|
-
|
|
4307
|
-
|
|
4308
|
-
|
|
4309
|
-
|
|
4310
|
-
/**
|
|
4311
|
-
|
|
4312
|
-
|
|
4313
|
-
|
|
4314
|
-
|
|
4315
|
-
|
|
4316
|
-
|
|
4317
|
-
|
|
4318
|
-
|
|
4337
|
+
/** What changed about the chart's drawings. */
|
|
4338
|
+
interface DrawingEvent {
|
|
4339
|
+
kind: 'tool' | 'selection' | 'changed';
|
|
4340
|
+
/** The armed tool for `tool`, the selected drawing for `selection`, null for neither. */
|
|
4341
|
+
id: string | null;
|
|
4342
|
+
}
|
|
4343
|
+
/** The chart's undo history as a subscriber reads it: whether each verb has something to do, and
|
|
4344
|
+
* the change it would take back or put back. */
|
|
4345
|
+
interface HistoryEventState {
|
|
4346
|
+
canUndo: boolean;
|
|
4347
|
+
canRedo: boolean;
|
|
4348
|
+
undoChange: HistoryChange | null;
|
|
4349
|
+
redoChange: HistoryChange | null;
|
|
4350
|
+
}
|
|
4351
|
+
/** The replay cursor as a subscriber reads it. */
|
|
4352
|
+
interface ReplayEventState {
|
|
4353
|
+
on: boolean;
|
|
4354
|
+
playing: boolean;
|
|
4355
|
+
cursor: number;
|
|
4356
|
+
total: number;
|
|
4357
|
+
}
|
|
4358
|
+
/** Widget-scoped events. */
|
|
4359
|
+
interface WidgetEvents {
|
|
4360
|
+
/** The widget has mounted and its first chart has painted its first data. Fires once. */
|
|
4361
|
+
ready(): void;
|
|
4362
|
+
/** The active chart changed: a different pane was activated, or a re-tile moved it. */
|
|
4363
|
+
activeChart(chart: ChartHandle): void;
|
|
4364
|
+
/** The theme resolved to a new value, from a mode switch or a custom palette. */
|
|
4365
|
+
theme(theme: SemanticTheme, mode: ThemeMode): void;
|
|
4366
|
+
/** The interface language changed. */
|
|
4367
|
+
locale(code: string): void;
|
|
4368
|
+
/** Viewer state changed and a host saving named charts would want to save. Debounced. */
|
|
4369
|
+
saveNeeded(): void;
|
|
4370
|
+
saveConflict(info: SaveConflictInfo): void;
|
|
4371
|
+
/** Chart-root fullscreen was entered or left, including by the browser's own escape. */
|
|
4372
|
+
fullscreen(active: boolean): void;
|
|
4373
|
+
/** A layout commit, from an API call or command: saved, loaded, removed, or detached.
|
|
4374
|
+
* Stale results publish nothing. A refusal reports through `saveConflict`; confirmed absence
|
|
4375
|
+
* of the open row also reports its removal. A save or partial load does not prove recovery. */
|
|
4376
|
+
layout(event: LayoutEvent): void;
|
|
4377
|
+
/** A client-image verb settled. */
|
|
4378
|
+
image(event: ImageEvent): void;
|
|
4379
|
+
/** The widget was disposed. Fires once, before the emitters clear. */
|
|
4380
|
+
dispose(): void;
|
|
4381
|
+
}
|
|
4382
|
+
/** Chart-scoped events. */
|
|
4383
|
+
interface ChartEvents {
|
|
4384
|
+
symbol(symbol: string): void;
|
|
4385
|
+
timeframe(timeframe: string): void;
|
|
4386
|
+
style(style: ChartStyleId): void;
|
|
4387
|
+
/** The visible time range moved: a pan, a zoom, a scroll back. */
|
|
4388
|
+
visibleRange(range: TimeRange): void;
|
|
4389
|
+
/** The visible logical (bar index) range moved. */
|
|
4390
|
+
logicalRange(range: LogicalRange): void;
|
|
4391
|
+
/** The view left the live edge or came back to it: true while it sits back from it. Reported only
|
|
4392
|
+
* when the answer changes, so a scroll that stays away says nothing more. */
|
|
4393
|
+
liveEdge(away: boolean): void;
|
|
4394
|
+
/** The main pane's plot moved or resized within the host's element. */
|
|
4395
|
+
plotArea(area: PlotArea): void;
|
|
4396
|
+
/** The chosen range preset changed, or navigation left the preset view. */
|
|
4397
|
+
rangePreset(key: string | null): void;
|
|
4398
|
+
/** A load, a page back or a live snapshot reshaped the bar series. */
|
|
4399
|
+
dataLoaded(info: {
|
|
4400
|
+
bars: number;
|
|
4401
|
+
}): void;
|
|
4402
|
+
feedStatus(status: string): void;
|
|
4403
|
+
scaleMode(mode: ScaleMode): void;
|
|
4404
|
+
/** The display timezone CHOICE moved: an IANA id, or `exchange`. */
|
|
4405
|
+
timezone(choice: string): void;
|
|
4406
|
+
/** The active subsession moved, so a host control can follow it. */
|
|
4407
|
+
subsession(active: ActiveSubsession): void;
|
|
4408
|
+
indicator(event: IndicatorEvent): void;
|
|
4409
|
+
drawing(event: DrawingEvent): void;
|
|
4410
|
+
/** A step was filed, taken back or put back, so a control can follow what each verb would do. */
|
|
4411
|
+
history(state: HistoryEventState): void;
|
|
4412
|
+
replay(state: ReplayEventState): void;
|
|
4413
|
+
compare(entries: readonly CompareEntry[]): void;
|
|
4319
4414
|
}
|
|
4320
4415
|
|
|
4321
4416
|
/** Where a layer's separate-drawing documents live: which context a symbol's document is keyed by,
|
|
@@ -4891,6 +4986,93 @@ interface ChartCompareApi {
|
|
|
4891
4986
|
symbols(): CompareSymbol[];
|
|
4892
4987
|
}
|
|
4893
4988
|
|
|
4989
|
+
interface PaneRect {
|
|
4990
|
+
x: number;
|
|
4991
|
+
y: number;
|
|
4992
|
+
w: number;
|
|
4993
|
+
h: number;
|
|
4994
|
+
}
|
|
4995
|
+
interface Arrangement {
|
|
4996
|
+
code: string;
|
|
4997
|
+
count: number;
|
|
4998
|
+
/** The arrangement's name in English — what a picker shows when it names one, and the fallback
|
|
4999
|
+
* `arrangementName` reads when the widget's catalog has not met the code. */
|
|
5000
|
+
label: string;
|
|
5001
|
+
rects: readonly PaneRect[];
|
|
5002
|
+
}
|
|
5003
|
+
/** Every arrangement, in picker order. */
|
|
5004
|
+
declare const ARRANGEMENTS: readonly Arrangement[];
|
|
5005
|
+
/** Look an arrangement up by code; unknown codes return null so a stale saved layout degrades. */
|
|
5006
|
+
declare function arrangementOf(code: string): Arrangement | null;
|
|
5007
|
+
/** The picker's row structure: rows labeled by chart count, codes in menu order. */
|
|
5008
|
+
declare const LAYOUT_MENU_ROWS: readonly {
|
|
5009
|
+
label: string;
|
|
5010
|
+
codes: readonly string[];
|
|
5011
|
+
}[];
|
|
5012
|
+
|
|
5013
|
+
/** Which changes replay across the layout. All off by default. */
|
|
5014
|
+
interface LayoutSyncFlags {
|
|
5015
|
+
symbol: boolean;
|
|
5016
|
+
timeframe: boolean;
|
|
5017
|
+
crosshair: boolean;
|
|
5018
|
+
time: boolean;
|
|
5019
|
+
dateRange: boolean;
|
|
5020
|
+
}
|
|
5021
|
+
/** The layout's save/load surface: the same open-resource rule the chart applies to a saved chart,
|
|
5022
|
+
* over the layouts family. A layout is its own resource, separate from the charts inside it, and
|
|
5023
|
+
* it conflicts separately. */
|
|
5024
|
+
interface LayoutSaveLoadApi {
|
|
5025
|
+
current(): OpenResource | null;
|
|
5026
|
+
/** True while the layout holds content that could not be put back: a body failed part-way and so
|
|
5027
|
+
* did the undo. Saving is refused until a load lands. */
|
|
5028
|
+
notSaving(): boolean;
|
|
5029
|
+
/** Save under `name`. Answers `not-saving` while the layout is not saving; a copy is let through
|
|
5030
|
+
* and leaves the layout it is bound to standing whole, but the layout still saves nowhere else. */
|
|
5031
|
+
save(name: string, opts?: {
|
|
5032
|
+
asNew?: boolean;
|
|
5033
|
+
signal?: AbortSignal;
|
|
5034
|
+
}): Promise<ResourceSaveOutcome<LayoutMeta>>;
|
|
5035
|
+
/** Open a saved layout: its content, every nested chart's blob included, is read and applied
|
|
5036
|
+
* FIRST, and only a layout that took it becomes the open layout. Content this build cannot read
|
|
5037
|
+
* comes back as `invalid`, refused before a tile moves; an id the store does not hold comes back
|
|
5038
|
+
* as `not-found`, a store that could not be reached as `unavailable`, and a load abandoned
|
|
5039
|
+
* before it landed as `cancelled`. On every one of them the tiles on screen and the save binding
|
|
5040
|
+
* are as they were. */
|
|
5041
|
+
load(id: string, signal?: AbortSignal): Promise<ResourceLoadOutcome<LayoutBody>>;
|
|
5042
|
+
remove(signal?: AbortSignal): Promise<ResourceRemoveOutcome>;
|
|
5043
|
+
detach(): void;
|
|
5044
|
+
}
|
|
5045
|
+
/** The layout surface a host drives, reached as `widget.layout`. */
|
|
5046
|
+
interface LayoutApi {
|
|
5047
|
+
arrangement(): string;
|
|
5048
|
+
/** Re-tile. Surviving charts keep their state; new charts clone pane 0's safe presentation;
|
|
5049
|
+
* excess charts are torn down. An arrangement the widget does not offer is ignored. */
|
|
5050
|
+
setArrangement(code: string): void;
|
|
5051
|
+
/** The index of the active chart. */
|
|
5052
|
+
active(): number;
|
|
5053
|
+
setActive(index: number): void;
|
|
5054
|
+
sync(): LayoutSyncFlags;
|
|
5055
|
+
/** Set sync switches. A switch the widget does not offer keeps its value. */
|
|
5056
|
+
setSync(partial: Partial<LayoutSyncFlags>): void;
|
|
5057
|
+
/** The chart standing alone, or null while every chart is tiled. Presentation, not content: a
|
|
5058
|
+
* maximize is a way of LOOKING at a layout, so it rides no blob and a re-tile clears it. */
|
|
5059
|
+
maximized(): number | null;
|
|
5060
|
+
/** Stand one chart alone, or `null` to put its siblings back where they were. Their charts, their
|
|
5061
|
+
* subscriptions and their state are kept throughout. */
|
|
5062
|
+
setMaximized(index: number | null): void;
|
|
5063
|
+
/** The whole layout as ONE opaque content blob (arrangement, sync flags, every chart's content). */
|
|
5064
|
+
serialize(): {
|
|
5065
|
+
content: string;
|
|
5066
|
+
};
|
|
5067
|
+
/** Apply a whole layout blob. Throws on content this build cannot read, having changed nothing:
|
|
5068
|
+
* the version, the arrangement code and every nested chart's blob are read before a tile moves.
|
|
5069
|
+
* A chart that then refuses what it was handed anyway is an internal error, and the layout is
|
|
5070
|
+
* re-tiled from the content it held. Where that re-tiling fails too, the layout holds neither
|
|
5071
|
+
* content and stops saving, which `saveLoad.notSaving()` reports. */
|
|
5072
|
+
restore(content: string): void;
|
|
5073
|
+
saveLoad: LayoutSaveLoadApi;
|
|
5074
|
+
}
|
|
5075
|
+
|
|
4894
5076
|
/** Apply a live bar event to an ascending series: mutate the last bar (same bucket time), append
|
|
4895
5077
|
* (newer), or drop a stale update (older than the last bar; never splice history). Returns the new
|
|
4896
5078
|
* array only when something changed. Exported for tests. */
|
|
@@ -5026,173 +5208,6 @@ interface ChartHandle {
|
|
|
5026
5208
|
on<K extends keyof ChartEvents>(name: K, callback: ChartEvents[K]): () => void;
|
|
5027
5209
|
}
|
|
5028
5210
|
|
|
5029
|
-
/** A saved-resource refusal, including layout API calls and commands. The widget never
|
|
5030
|
-
* overwrites newer work; `current` reports the store's revision, not a newly adopted binding. */
|
|
5031
|
-
interface SaveConflictInfo {
|
|
5032
|
-
family: 'drawings' | 'chart' | 'layout';
|
|
5033
|
-
symbol?: string;
|
|
5034
|
-
current: ResourceRef | null;
|
|
5035
|
-
message: string;
|
|
5036
|
-
}
|
|
5037
|
-
/** What the widget did to the saved layout it holds open, on the viewer's behalf. */
|
|
5038
|
-
interface LayoutEvent {
|
|
5039
|
-
kind: 'saved' | 'loaded' | 'removed' | 'detached';
|
|
5040
|
-
/** The layout's id, or null after a detach. */
|
|
5041
|
-
id: string | null;
|
|
5042
|
-
name: string | null;
|
|
5043
|
-
}
|
|
5044
|
-
/** The outcome of a client-image verb the widget ran: the copy landed, the copy was refused and a
|
|
5045
|
-
* download stood in for it, or the capture failed. */
|
|
5046
|
-
interface ImageEvent {
|
|
5047
|
-
kind: 'copied' | 'copyFallback' | 'failed';
|
|
5048
|
-
}
|
|
5049
|
-
/** What changed about the chart's indicators. */
|
|
5050
|
-
interface IndicatorEvent {
|
|
5051
|
-
kind: 'added' | 'removed' | 'changed' | 'hidden' | 'shown';
|
|
5052
|
-
id: string;
|
|
5053
|
-
}
|
|
5054
|
-
/** What changed about the chart's drawings. */
|
|
5055
|
-
interface DrawingEvent {
|
|
5056
|
-
kind: 'tool' | 'selection' | 'changed';
|
|
5057
|
-
/** The armed tool for `tool`, the selected drawing for `selection`, null for neither. */
|
|
5058
|
-
id: string | null;
|
|
5059
|
-
}
|
|
5060
|
-
/** The chart's undo history as a subscriber reads it: whether each verb has something to do, and
|
|
5061
|
-
* the change it would take back or put back. */
|
|
5062
|
-
interface HistoryEventState {
|
|
5063
|
-
canUndo: boolean;
|
|
5064
|
-
canRedo: boolean;
|
|
5065
|
-
undoChange: HistoryChange | null;
|
|
5066
|
-
redoChange: HistoryChange | null;
|
|
5067
|
-
}
|
|
5068
|
-
/** The replay cursor as a subscriber reads it. */
|
|
5069
|
-
interface ReplayEventState {
|
|
5070
|
-
on: boolean;
|
|
5071
|
-
playing: boolean;
|
|
5072
|
-
cursor: number;
|
|
5073
|
-
total: number;
|
|
5074
|
-
}
|
|
5075
|
-
/** Widget-scoped events. */
|
|
5076
|
-
interface WidgetEvents {
|
|
5077
|
-
/** The widget has mounted and its first chart has painted its first data. Fires once. */
|
|
5078
|
-
ready(): void;
|
|
5079
|
-
/** The active chart changed: a different pane was activated, or a re-tile moved it. */
|
|
5080
|
-
activeChart(chart: ChartHandle): void;
|
|
5081
|
-
/** The theme resolved to a new value, from a mode switch or a custom palette. */
|
|
5082
|
-
theme(theme: SemanticTheme, mode: ThemeMode): void;
|
|
5083
|
-
/** The interface language changed. */
|
|
5084
|
-
locale(code: string): void;
|
|
5085
|
-
/** Viewer state changed and a host saving named charts would want to save. Debounced. */
|
|
5086
|
-
saveNeeded(): void;
|
|
5087
|
-
saveConflict(info: SaveConflictInfo): void;
|
|
5088
|
-
/** Chart-root fullscreen was entered or left, including by the browser's own escape. */
|
|
5089
|
-
fullscreen(active: boolean): void;
|
|
5090
|
-
/** A layout commit, from an API call or command: saved, loaded, removed, or detached.
|
|
5091
|
-
* Stale results publish nothing. A refusal reports through `saveConflict`; confirmed absence
|
|
5092
|
-
* of the open row also reports its removal. A save or partial load does not prove recovery. */
|
|
5093
|
-
layout(event: LayoutEvent): void;
|
|
5094
|
-
/** A client-image verb settled. */
|
|
5095
|
-
image(event: ImageEvent): void;
|
|
5096
|
-
/** The widget was disposed. Fires once, before the emitters clear. */
|
|
5097
|
-
dispose(): void;
|
|
5098
|
-
}
|
|
5099
|
-
/** Chart-scoped events. */
|
|
5100
|
-
interface ChartEvents {
|
|
5101
|
-
symbol(symbol: string): void;
|
|
5102
|
-
timeframe(timeframe: string): void;
|
|
5103
|
-
style(style: ChartStyleId): void;
|
|
5104
|
-
/** The visible time range moved: a pan, a zoom, a scroll back. */
|
|
5105
|
-
visibleRange(range: TimeRange): void;
|
|
5106
|
-
/** The visible logical (bar index) range moved. */
|
|
5107
|
-
logicalRange(range: LogicalRange): void;
|
|
5108
|
-
/** The view left the live edge or came back to it: true while it sits back from it. Reported only
|
|
5109
|
-
* when the answer changes, so a scroll that stays away says nothing more. */
|
|
5110
|
-
liveEdge(away: boolean): void;
|
|
5111
|
-
/** The main pane's plot moved or resized within the host's element. */
|
|
5112
|
-
plotArea(area: PlotArea): void;
|
|
5113
|
-
/** The chosen range preset changed, or navigation left the preset view. */
|
|
5114
|
-
rangePreset(key: string | null): void;
|
|
5115
|
-
/** A load, a page back or a live snapshot reshaped the bar series. */
|
|
5116
|
-
dataLoaded(info: {
|
|
5117
|
-
bars: number;
|
|
5118
|
-
}): void;
|
|
5119
|
-
feedStatus(status: string): void;
|
|
5120
|
-
scaleMode(mode: ScaleMode): void;
|
|
5121
|
-
/** The display timezone CHOICE moved: an IANA id, or `exchange`. */
|
|
5122
|
-
timezone(choice: string): void;
|
|
5123
|
-
/** The active subsession moved, so a host control can follow it. */
|
|
5124
|
-
subsession(active: ActiveSubsession): void;
|
|
5125
|
-
indicator(event: IndicatorEvent): void;
|
|
5126
|
-
drawing(event: DrawingEvent): void;
|
|
5127
|
-
/** A step was filed, taken back or put back, so a control can follow what each verb would do. */
|
|
5128
|
-
history(state: HistoryEventState): void;
|
|
5129
|
-
replay(state: ReplayEventState): void;
|
|
5130
|
-
compare(entries: readonly CompareEntry[]): void;
|
|
5131
|
-
}
|
|
5132
|
-
|
|
5133
|
-
/** Which changes replay across the layout. All off by default. */
|
|
5134
|
-
interface LayoutSyncFlags {
|
|
5135
|
-
symbol: boolean;
|
|
5136
|
-
timeframe: boolean;
|
|
5137
|
-
crosshair: boolean;
|
|
5138
|
-
time: boolean;
|
|
5139
|
-
dateRange: boolean;
|
|
5140
|
-
}
|
|
5141
|
-
/** The layout's save/load surface: the same open-resource rule the chart applies to a saved chart,
|
|
5142
|
-
* over the layouts family. A layout is its own resource, separate from the charts inside it, and
|
|
5143
|
-
* it conflicts separately. */
|
|
5144
|
-
interface LayoutSaveLoadApi {
|
|
5145
|
-
current(): OpenResource | null;
|
|
5146
|
-
/** True while the layout holds content that could not be put back: a body failed part-way and so
|
|
5147
|
-
* did the undo. Saving is refused until a load lands. */
|
|
5148
|
-
notSaving(): boolean;
|
|
5149
|
-
/** Save under `name`. Answers `not-saving` while the layout is not saving; a copy is let through
|
|
5150
|
-
* and leaves the layout it is bound to standing whole, but the layout still saves nowhere else. */
|
|
5151
|
-
save(name: string, opts?: {
|
|
5152
|
-
asNew?: boolean;
|
|
5153
|
-
signal?: AbortSignal;
|
|
5154
|
-
}): Promise<ResourceSaveOutcome<LayoutMeta>>;
|
|
5155
|
-
/** Open a saved layout: its content, every nested chart's blob included, is read and applied
|
|
5156
|
-
* FIRST, and only a layout that took it becomes the open layout. Content this build cannot read
|
|
5157
|
-
* comes back as `invalid`, refused before a tile moves; an id the store does not hold comes back
|
|
5158
|
-
* as `not-found`, a store that could not be reached as `unavailable`, and a load abandoned
|
|
5159
|
-
* before it landed as `cancelled`. On every one of them the tiles on screen and the save binding
|
|
5160
|
-
* are as they were. */
|
|
5161
|
-
load(id: string, signal?: AbortSignal): Promise<ResourceLoadOutcome<LayoutBody>>;
|
|
5162
|
-
remove(signal?: AbortSignal): Promise<ResourceRemoveOutcome>;
|
|
5163
|
-
detach(): void;
|
|
5164
|
-
}
|
|
5165
|
-
/** The layout surface a host drives, reached as `widget.layout`. */
|
|
5166
|
-
interface LayoutApi {
|
|
5167
|
-
arrangement(): string;
|
|
5168
|
-
/** Re-tile. Surviving charts keep their state; new charts clone pane 0's safe presentation;
|
|
5169
|
-
* excess charts are torn down. An arrangement the widget does not offer is ignored. */
|
|
5170
|
-
setArrangement(code: string): void;
|
|
5171
|
-
/** The index of the active chart. */
|
|
5172
|
-
active(): number;
|
|
5173
|
-
setActive(index: number): void;
|
|
5174
|
-
sync(): LayoutSyncFlags;
|
|
5175
|
-
/** Set sync switches. A switch the widget does not offer keeps its value. */
|
|
5176
|
-
setSync(partial: Partial<LayoutSyncFlags>): void;
|
|
5177
|
-
/** The chart standing alone, or null while every chart is tiled. Presentation, not content: a
|
|
5178
|
-
* maximize is a way of LOOKING at a layout, so it rides no blob and a re-tile clears it. */
|
|
5179
|
-
maximized(): number | null;
|
|
5180
|
-
/** Stand one chart alone, or `null` to put its siblings back where they were. Their charts, their
|
|
5181
|
-
* subscriptions and their state are kept throughout. */
|
|
5182
|
-
setMaximized(index: number | null): void;
|
|
5183
|
-
/** The whole layout as ONE opaque content blob (arrangement, sync flags, every chart's content). */
|
|
5184
|
-
serialize(): {
|
|
5185
|
-
content: string;
|
|
5186
|
-
};
|
|
5187
|
-
/** Apply a whole layout blob. Throws on content this build cannot read, having changed nothing:
|
|
5188
|
-
* the version, the arrangement code and every nested chart's blob are read before a tile moves.
|
|
5189
|
-
* A chart that then refuses what it was handed anyway is an internal error, and the layout is
|
|
5190
|
-
* re-tiled from the content it held. Where that re-tiling fails too, the layout holds neither
|
|
5191
|
-
* content and stops saving, which `saveLoad.notSaving()` reports. */
|
|
5192
|
-
restore(content: string): void;
|
|
5193
|
-
saveLoad: LayoutSaveLoadApi;
|
|
5194
|
-
}
|
|
5195
|
-
|
|
5196
5211
|
/** ── FEATURES ────────────────────────────────────────────────────────────────────────────────
|
|
5197
5212
|
* Which chart behavior exists. Every flag defaults on: a host that passes nothing gets the complete
|
|
5198
5213
|
* chart. Turning one off removes the behavior: its model is never built, the commands it owns
|
|
@@ -5580,6 +5595,20 @@ interface TransitionOptions {
|
|
|
5580
5595
|
* and back. */
|
|
5581
5596
|
style?: boolean;
|
|
5582
5597
|
}
|
|
5598
|
+
/** A press on a chart's currency and unit box, as `scaleUnitMenu` receives it. */
|
|
5599
|
+
interface ScaleUnitMenuRequest {
|
|
5600
|
+
/** The chart whose price scale wears the box. */
|
|
5601
|
+
readonly chart: ChartHandle;
|
|
5602
|
+
/** The box in viewport pixels, for a menu to open against. */
|
|
5603
|
+
readonly anchor: {
|
|
5604
|
+
readonly left: number;
|
|
5605
|
+
readonly top: number;
|
|
5606
|
+
readonly right: number;
|
|
5607
|
+
readonly bottom: number;
|
|
5608
|
+
};
|
|
5609
|
+
/** Whether the box was pressed from the keyboard, so the menu takes the focus. */
|
|
5610
|
+
readonly keyboard: boolean;
|
|
5611
|
+
}
|
|
5583
5612
|
/** Everything needed to construct a widget. `container` and `datafeed` are the two hard
|
|
5584
5613
|
* requirements; every other field has a working default. */
|
|
5585
5614
|
interface ChartWidgetOptions extends MarkPainterHooks {
|
|
@@ -5759,6 +5788,12 @@ interface ChartWidgetOptions extends MarkPainterHooks {
|
|
|
5759
5788
|
features?: FeatureConfig;
|
|
5760
5789
|
/** Which of the chart's own controls render. */
|
|
5761
5790
|
ui?: UiConfig;
|
|
5791
|
+
/** The currency and unit box at the top of each chart's price scale as the host's door. With it,
|
|
5792
|
+
* the box is a button, and a press calls this with the chart and the box's place on screen, so the
|
|
5793
|
+
* host opens what it offers there, such as a menu of the currencies prices can be shown in. The
|
|
5794
|
+
* box shows as the chart settings' Currency and Unit says. Without it the box names what the
|
|
5795
|
+
* prices are in and takes no pointer. */
|
|
5796
|
+
scaleUnitMenu?: (request: ScaleUnitMenuRequest) => void;
|
|
5762
5797
|
/** The host's drawings for the chart's own glyphs, by icon id. An icon left out keeps the chart's
|
|
5763
5798
|
* own; `CHART_ICON_IDS` lists every one. Read once, at construction. */
|
|
5764
5799
|
icons?: ChartIcons;
|
|
@@ -6592,4 +6627,4 @@ declare function mountTimeframePicker(options: TimeframePickerOptions & {
|
|
|
6592
6627
|
container: HTMLElement;
|
|
6593
6628
|
}): MountedTimeframePicker;
|
|
6594
6629
|
|
|
6595
|
-
export { ARRANGEMENTS, type AccessPolicy, type ActiveSubsession, type Arrangement, type AttachDrawingsOptions, BRAND_DOWN, BRAND_UP, BUILT_IN_INDICATORS, BUILT_IN_LOCALES, type BuiltInIndicator, CHART_DATE_FORMATS, CHART_FACTORY_COLORS, CHART_ICON_IDS, CHART_SETTINGS_SECTIONS, CHART_STYLES, COLLAPSED_H, COMPARE_COLORS, type CandleStyleSettings, type CanvasTheme, type Capabilities, type ChartBackgroundType, ChartBody, type ChartChrome, type ChartCompareApi, type ChartControlVisibility, type ChartCustomLocale, ChartDatafeed, type ChartDateFormat, type ChartDictionary, type ChartDrawingsApi, type ChartEvents, type ChartExtension, type ChartExtensionCapture, type ChartExtensionCaptureFrame, type ChartExtensionChart, type ChartExtensionCommand, type ChartExtensionContext, type ChartExtensionHandle, type ChartExtensionIcon, type ChartExtensionIconPath, type ChartExtensionLegendRow, type ChartExtensionMenuBuilder, type ChartExtensionMenuContext, type ChartExtensionMenuItem, type ChartExtensionPane, type ChartExtensionPriceLine, type ChartExtensionReplayState, type ChartExtensionScope, type ChartExtensionSeries, type ChartFactoryColors, type ChartHandle, type ChartHistoryApi, type ChartHoursFormat, type ChartI18n, type ChartI18nOptions, type ChartIconArtwork, type ChartIconContext, type ChartIconDiagnostic, type ChartIconFactory, type ChartIconFailure, type ChartIconId, type ChartIcons, type ChartLastValueMode, type ChartLegendRow, type ChartLineColorType, type ChartLocale, type ChartLocaleCode, type ChartMenuAction, type ChartMenuContext, type ChartMenuIcon, type ChartMenuRow, ChartMessageKey, ChartMeta, type ChartPaneSyncApi, type ChartPreferences, type ChartPriceFormatter, type ChartPricePrecision, type ChartPriceSource, type ChartReplayApi, ChartSaveLoadAdapter, type ChartSaveLoadApi, type ChartScalePlacement, type ChartSessionHours, type ChartSettings, type ChartSettingsContribution, type ChartSettingsControls, type ChartSettingsForm, type ChartSettingsIconPainter, type ChartSettingsOption, type ChartSettingsPageId, type ChartSettingsRowHandle, type ChartSettingsSection, type ChartSettingsTip, type ChartStorage, type ChartStrokeStyle, type ChartStyleId, type ChartTimezone, type ChartTitleSource, type ChartTranslate, type ChartWidget, type ChartWidgetOptions, type CommandRegistry, type CommandResult, type CommandScope, type CommandSpec, type CompareDeps, type CompareEntry, type CompareHandle, type ComparePlacement, type CompareSnapshot, type CompareSymbol, type ContextMenuHandle, type CrosshairUi, type CustomThemes, DEFAULT_SUBSESSION, DEFAULT_TIMEZONE, type DataSourceMarkPainter, DataStatus, DatafeedSearchOptions, type DrawingApplyOutcome, DrawingAssetPort, DrawingContextKind, type DrawingDocumentApi, type DrawingDocumentPort, type DrawingDocumentRefusal, type DrawingEvent, type DrawingInks, type DrawingOwner, DrawingPreferences, type DrawingPresets, type DrawingReadOutcome, type DrawingRejection, type DrawingRejectionReason, DrawingResourceContext, DrawingsBody, type DrawingsEvents, type DrawingsHandle, DrawingsMeta, type DrawingsWorkflow, EXCHANGE_TIMEZONE, type FeatureConfig, FeedBar, type FetchLike, FillBetweenPrimitive, type FullscreenApi, type FullscreenOptions, type HistoryChange, type HistoryEventState, IMAGE_HEADER_H, type ImageApi, type ImageEvent, type ImageHeader, type ImageOptions, type ImageTextRun, type ImageTile, type IndicatorCategory, type IndicatorDefinition, type IndicatorEvent, type IndicatorFill, type IndicatorInstance, type IndicatorLevel, type IndicatorManifest, type IndicatorOverrides, type IndicatorPickerAction, type IndicatorPickerBuiltInState, type IndicatorPickerCollection, type IndicatorPickerItem, type IndicatorPickerKind, type IndicatorPickerSource, type IndicatorPlot, type IndicatorPlots, type IndicatorsApi, type IndicatorsRenderer, LAYOUT_MENU_ROWS, type LayoutApi, LayoutBody, type LayoutEvent, LayoutMeta, type LayoutOptions, type LayoutSaveLoadApi, type LayoutSyncFlags, type LegendUi, type LineStyleSettings, type LogicalRange, MAIN_MIN_H, MIN_BAR_SPACING, MIRRORED_ICONS, type ManifestFill, type ManifestInput, type ManifestLevel, type ManifestPlot, type ManifestRun, MarkIconId, type MarkPainters, type MarketStatus, type MatchSegment, type MountedSymbolSearch, type MountedTimeframePicker, type OpenResource, PRICE_SCALE_MODE, type PaneOp, type PanePlan, type PaneRect, type PaneState, type PartialChartSettings, type PlacedImage, type PlotArea, type PlotPoint, PriceFormat, PriceFormatter, RANGE_PRESETS, RECENT_SYMBOLS_CAP, REPLAY_SPEEDS, type RangeFrameTarget, type RangePreset, type RangeSpan, type ReadChartSettings, type RecentsPort, type ReplayEventState, type ReplaySpeed, type ResourceLoadOutcome, ResourceRef, type ResourceRemoveOutcome, type ResourceSaveOutcome, ResourceStore, SCALE_MODES, SCALE_MODE_OPTIONS, SCROLL_STEP_BARS, SESSION_DOT, SESSION_LABEL, SESSION_STATE_TITLE, SPREAD_OPERATORS, type SaveConflictInfo, type ScaleMode, type SearchClassFilter, SearchClassNode, type SearchController, type SearchControllerOptions, type SearchDisplayOptions, SearchPage, type SearchScope, type SearchState, type SelectedDrawing, type SemanticTheme, type SessionBandsPrimitive, type SessionLook, type SessionModel, type SessionSchedule, type SessionSegment, type SessionSource, type SessionState, type SessionTimeline, type SettingsMenuUi, ShadePrimitive, type SpreadOperator, type SpreadOperatorId, type SubsessionSource, SymbolInfo, type SymbolMarkPainter, type SymbolPriceFormat, SymbolRow, type SymbolSearchCache, type SymbolSearchHandle, type SymbolSearchOptions, THEME_ROLES, TIMEFRAME_MAX, TIMEFRAME_PRESETS, TIMEFRAME_PRESET_TOKENS, TIMEFRAME_UNITS, TIMEFRAME_UNIT_NAME, TIMEFRAME_UNIT_SECONDS, TIMEZONES, TOP_BAR_SLOTS, TemplateBody, TemplateMeta, TextDraft, TextEditFrame, type TextEditSession, type TextInlineEdit, type ThemeChangeListener, type ThemeController, type ThemeControllerOptions, type ThemeDeclaration, type ThemeDiagnostic, type ThemeDiagnosticCode, type ThemeMode, type ThemeOptions, type ThemeRole, type ThemeRoleFamily, type ThemeRoleId, type ThemeRoleKind, type ThemeRootStyle, type TimeLabelFormat, type TimeRange, type Timeframe, type TimeframeGroup, type TimeframePickerHandle, type TimeframePickerOptions, type TimeframeRestrictions, type TimeframeUnit, type TimezoneRow, type ToolbarButton, type ToolbarButtonOptions, type ToolbarButtonState, type TopBarSlot, type TopBarUi, type TouchOptions, type TransitionOptions, type UdfDatafeedOptions, type UdfSymbolResponse, type UiConfig, type VenueMarkPainter, type WidgetEvents, ZOOM_FACTOR, type ZoneClock, allowedTimeframes, applyBar, applyPlotOverrides, arrangementName, arrangementOf, attachCompare, attachDrawings, attachIndicators, autoTimeframeFor, buildManifestPlots, canvasTheme, canvasToBlob, chartContextMenu, chartDateSample, chartDictionaries, chartIconArtwork, chartSettingsDefaults, clipToWindow, coerceChartStyle, coerceScaleMode, compareTimeframes, composeFormingBar, composeImage, createChart, createChartI18n, createSearchController, createSessionBands, createSymbolSearchCache, createThemeController, createUdfDatafeed, effectivePlotColor, exchangeTimezoneText, formatChartDate, formatClock, formatDuration, formatTimeframe, frameRange, hasExtendedHours, imageFileName, imageHeaderRuns, imageLayoutHeaderRuns, imageTileRuns, indicatorHidden, isChartStyle, isCollapsed, isIntradayTimeframe, isSymbolPair, isTimezoneChoice, latestPlotValue, layerChartSettings, looksLikeSpread, makeCrosshairTimeFormatter, makeTickMarkFormatter, manifestInputDefaults, marketStatus, marketStatusFor, marketStatusText, marketStatusTitle, matchSegments, memoryChartStorage, memoryRecents, mountContextMenu, mountSymbolSearch, mountTimeframePicker, nextSessionChange, openInputsEditor, openSymbolSearch, openTimeframePicker, overriddenManifest, parseSessionModel, parseTimeframe, pickCompareColor, placeableByWidget, planPaneOp, promoteRecent, rangeAvailable, rangePresetTip, rangeSpanSeconds, readPartialChartSettings, resolveDisplayTimezone, resolveInitialTf, scrolledPosition, seriesTargetOf, sessionBreakTimes, sessionStateAt, sessionTimeline, spreadExpression, spreadSearchQuery, subTimeframesFor, subsessionBarFilter, tfSeconds, tfToUdfResolution, timeframeAllowed, timeframeGroupUnit, timeframeLabel, timeframeOrder, timeframeSeconds, timezoneCity, timezoneLabel, timezoneListing, toolName, tzOffsetLabel, tzOffsetMinutes, udfPriceFormat, udfResolutionToTf, udfSymbolInfo, valueShaped, withFoldedHistory, zoneClock, zoomedBarSpacing };
|
|
6630
|
+
export { ARRANGEMENTS, type AccessPolicy, type ActiveSubsession, type Arrangement, type AttachDrawingsOptions, BRAND_DOWN, BRAND_UP, BUILT_IN_INDICATORS, BUILT_IN_LOCALES, type BuiltInIndicator, CHART_DATE_FORMATS, CHART_FACTORY_COLORS, CHART_ICON_IDS, CHART_SETTINGS_SECTIONS, CHART_STYLES, COLLAPSED_H, COMPARE_COLORS, type CandleStyleSettings, type CanvasTheme, type Capabilities, type ChartBackgroundType, ChartBody, type ChartChrome, type ChartCompareApi, type ChartControlVisibility, type ChartCustomLocale, ChartDatafeed, type ChartDateFormat, type ChartDictionary, type ChartDrawingsApi, type ChartEvents, type ChartExtension, type ChartExtensionCapture, type ChartExtensionCaptureFrame, type ChartExtensionChart, type ChartExtensionCommand, type ChartExtensionContext, type ChartExtensionHandle, type ChartExtensionIcon, type ChartExtensionIconPath, type ChartExtensionLegendRow, type ChartExtensionMenuBuilder, type ChartExtensionMenuContext, type ChartExtensionMenuItem, type ChartExtensionPane, type ChartExtensionPriceLine, type ChartExtensionReplayState, type ChartExtensionScope, type ChartExtensionSeries, type ChartFactoryColors, type ChartHandle, type ChartHistoryApi, type ChartHoursFormat, type ChartI18n, type ChartI18nOptions, type ChartIconArtwork, type ChartIconContext, type ChartIconDiagnostic, type ChartIconFactory, type ChartIconFailure, type ChartIconId, type ChartIcons, type ChartLastValueMode, type ChartLegendRow, type ChartLineColorType, type ChartLocale, type ChartLocaleCode, type ChartMenuAction, type ChartMenuContext, type ChartMenuIcon, type ChartMenuRow, ChartMessageKey, ChartMeta, type ChartPaneSyncApi, type ChartPreferences, type ChartPriceFormatter, type ChartPricePrecision, type ChartPriceSource, type ChartReplayApi, ChartSaveLoadAdapter, type ChartSaveLoadApi, type ChartScalePlacement, type ChartSessionHours, type ChartSettings, type ChartSettingsContribution, type ChartSettingsControls, type ChartSettingsForm, type ChartSettingsIconPainter, type ChartSettingsOption, type ChartSettingsPageId, type ChartSettingsRowHandle, type ChartSettingsSection, type ChartSettingsTip, type ChartStorage, type ChartStrokeStyle, type ChartStyleId, type ChartTimezone, type ChartTitleSource, type ChartTranslate, type ChartWidget, type ChartWidgetOptions, type CommandRegistry, type CommandResult, type CommandScope, type CommandSpec, type CompareDeps, type CompareEntry, type CompareHandle, type ComparePlacement, type CompareSnapshot, type CompareSymbol, type ContextMenuHandle, type CrosshairUi, type CustomThemes, DEFAULT_SUBSESSION, DEFAULT_TIMEZONE, type DataSourceMarkPainter, DataStatus, DatafeedSearchOptions, type DrawingApplyOutcome, DrawingAssetPort, DrawingContextKind, type DrawingDocumentApi, type DrawingDocumentPort, type DrawingDocumentRefusal, type DrawingEvent, type DrawingInks, type DrawingOwner, DrawingPreferences, type DrawingPresets, type DrawingReadOutcome, type DrawingRejection, type DrawingRejectionReason, DrawingResourceContext, DrawingsBody, type DrawingsEvents, type DrawingsHandle, DrawingsMeta, type DrawingsWorkflow, EXCHANGE_TIMEZONE, type FeatureConfig, FeedBar, type FetchLike, FillBetweenPrimitive, type FullscreenApi, type FullscreenOptions, type HistoryChange, type HistoryEventState, IMAGE_HEADER_H, type ImageApi, type ImageEvent, type ImageHeader, type ImageOptions, type ImageTextRun, type ImageTile, type IndicatorCategory, type IndicatorDefinition, type IndicatorEvent, type IndicatorFill, type IndicatorInstance, type IndicatorLevel, type IndicatorManifest, type IndicatorOverrides, type IndicatorPickerAction, type IndicatorPickerBuiltInState, type IndicatorPickerCollection, type IndicatorPickerEmpty, type IndicatorPickerItem, type IndicatorPickerKind, type IndicatorPickerSource, type IndicatorPlot, type IndicatorPlots, type IndicatorsApi, type IndicatorsRenderer, LAYOUT_MENU_ROWS, type LayoutApi, LayoutBody, type LayoutEvent, LayoutMeta, type LayoutOptions, type LayoutSaveLoadApi, type LayoutSyncFlags, type LegendUi, type LineStyleSettings, type LogicalRange, MAIN_MIN_H, MIN_BAR_SPACING, MIRRORED_ICONS, type ManifestFill, type ManifestInput, type ManifestLevel, type ManifestPlot, type ManifestRun, MarkIconId, type MarkPainters, type MarketStatus, type MatchSegment, type MountedSymbolSearch, type MountedTimeframePicker, type OpenResource, PRICE_SCALE_MODE, type PaneOp, type PanePlan, type PaneRect, type PaneState, type PartialChartSettings, type PlacedImage, type PlotArea, type PlotPoint, PriceFormat, PriceFormatter, RANGE_PRESETS, RECENT_SYMBOLS_CAP, REPLAY_SPEEDS, type RangeFrameTarget, type RangePreset, type RangeSpan, type ReadChartSettings, type RecentsPort, type ReplayEventState, type ReplaySpeed, type ResourceLoadOutcome, ResourceRef, type ResourceRemoveOutcome, type ResourceSaveOutcome, ResourceStore, SCALE_MODES, SCALE_MODE_OPTIONS, SCROLL_STEP_BARS, SESSION_DOT, SESSION_LABEL, SESSION_STATE_TITLE, SPREAD_OPERATORS, type SaveConflictInfo, type ScaleMode, type ScaleUnitMenuRequest, type SearchClassFilter, SearchClassNode, type SearchController, type SearchControllerOptions, type SearchDisplayOptions, SearchPage, type SearchScope, type SearchState, type SelectedDrawing, type SemanticTheme, type SessionBandsPrimitive, type SessionLook, type SessionModel, type SessionSchedule, type SessionSegment, type SessionSource, type SessionState, type SessionTimeline, type SettingsMenuUi, ShadePrimitive, type SpreadOperator, type SpreadOperatorId, type SubsessionSource, SymbolInfo, type SymbolMarkPainter, type SymbolPriceFormat, SymbolRow, type SymbolSearchCache, type SymbolSearchHandle, type SymbolSearchOptions, THEME_ROLES, TIMEFRAME_MAX, TIMEFRAME_PRESETS, TIMEFRAME_PRESET_TOKENS, TIMEFRAME_UNITS, TIMEFRAME_UNIT_NAME, TIMEFRAME_UNIT_SECONDS, TIMEZONES, TOP_BAR_SLOTS, TemplateBody, TemplateMeta, TextDraft, TextEditFrame, type TextEditSession, type TextInlineEdit, type ThemeChangeListener, type ThemeController, type ThemeControllerOptions, type ThemeDeclaration, type ThemeDiagnostic, type ThemeDiagnosticCode, type ThemeMode, type ThemeOptions, type ThemeRole, type ThemeRoleFamily, type ThemeRoleId, type ThemeRoleKind, type ThemeRootStyle, type TimeLabelFormat, type TimeRange, type Timeframe, type TimeframeGroup, type TimeframePickerHandle, type TimeframePickerOptions, type TimeframeRestrictions, type TimeframeUnit, type TimezoneRow, type ToolbarButton, type ToolbarButtonOptions, type ToolbarButtonState, type TopBarSlot, type TopBarUi, type TouchOptions, type TransitionOptions, type UdfDatafeedOptions, type UdfSymbolResponse, type UiConfig, type VenueMarkPainter, type WidgetEvents, ZOOM_FACTOR, type ZoneClock, allowedTimeframes, applyBar, applyPlotOverrides, arrangementName, arrangementOf, attachCompare, attachDrawings, attachIndicators, autoTimeframeFor, buildManifestPlots, canvasTheme, canvasToBlob, chartContextMenu, chartDateSample, chartDictionaries, chartIconArtwork, chartSettingsDefaults, clipToWindow, coerceChartStyle, coerceScaleMode, compareTimeframes, composeFormingBar, composeImage, createChart, createChartI18n, createSearchController, createSessionBands, createSymbolSearchCache, createThemeController, createUdfDatafeed, effectivePlotColor, exchangeTimezoneText, formatChartDate, formatClock, formatDuration, formatTimeframe, frameRange, hasExtendedHours, imageFileName, imageHeaderRuns, imageLayoutHeaderRuns, imageTileRuns, indicatorHidden, isChartStyle, isCollapsed, isIntradayTimeframe, isSymbolPair, isTimezoneChoice, latestPlotValue, layerChartSettings, looksLikeSpread, makeCrosshairTimeFormatter, makeTickMarkFormatter, manifestInputDefaults, marketStatus, marketStatusFor, marketStatusText, marketStatusTitle, matchSegments, memoryChartStorage, memoryRecents, mountContextMenu, mountSymbolSearch, mountTimeframePicker, nextSessionChange, openInputsEditor, openSymbolSearch, openTimeframePicker, overriddenManifest, parseSessionModel, parseTimeframe, pickCompareColor, placeableByWidget, planPaneOp, promoteRecent, rangeAvailable, rangePresetTip, rangeSpanSeconds, readPartialChartSettings, resolveDisplayTimezone, resolveInitialTf, scrolledPosition, seriesTargetOf, sessionBreakTimes, sessionStateAt, sessionTimeline, spreadExpression, spreadSearchQuery, subTimeframesFor, subsessionBarFilter, tfSeconds, tfToUdfResolution, timeframeAllowed, timeframeGroupUnit, timeframeLabel, timeframeOrder, timeframeSeconds, timezoneCity, timezoneLabel, timezoneListing, toolName, tzOffsetLabel, tzOffsetMinutes, udfPriceFormat, udfResolutionToTf, udfSymbolInfo, valueShaped, withFoldedHistory, zoneClock, zoomedBarSpacing };
|