@tradecanvas/chart 1.50.0 → 1.51.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/README.md +1 -1
- package/dist/Chart.d.ts +20 -5
- package/dist/Chart.d.ts.map +1 -1
- package/dist/LayoutSession-DuV9kpdQ.cjs +2 -0
- package/dist/LayoutSession-DuV9kpdQ.cjs.map +1 -0
- package/dist/{LayoutSession-Dcvn5KMK.js → LayoutSession-Qkx1huV-.js} +304 -275
- package/dist/LayoutSession-Qkx1huV-.js.map +1 -0
- package/dist/finance/performanceData.d.ts +17 -2
- package/dist/finance/performanceData.d.ts.map +1 -1
- package/dist/i18n-Bg_UJSNs.cjs +2 -0
- package/dist/i18n-Bg_UJSNs.cjs.map +1 -0
- package/dist/{i18n-DjzoHpMJ.js → i18n-DFTQ73Cz.js} +15 -1
- package/dist/i18n-DFTQ73Cz.js.map +1 -0
- package/dist/index.cjs +1 -1
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +116 -115
- package/dist/index.js.map +1 -1
- package/dist/layout/labelWidths.d.ts +16 -0
- package/dist/layout/labelWidths.d.ts.map +1 -0
- package/dist/widget/ChartWidget.d.ts +40 -6
- package/dist/widget/ChartWidget.d.ts.map +1 -1
- package/dist/widget/WatchlistStore.d.ts.map +1 -1
- package/dist/widget/WidgetContextMenu.d.ts +25 -3
- package/dist/widget/WidgetContextMenu.d.ts.map +1 -1
- package/dist/widget/WidgetHotkeySheet.d.ts.map +1 -1
- package/dist/widget/WidgetIndicatorLegend.d.ts +2 -0
- package/dist/widget/WidgetIndicatorLegend.d.ts.map +1 -1
- package/dist/widget/WidgetLayoutsUI.d.ts.map +1 -1
- package/dist/widget/WidgetStatusBar.d.ts +110 -3
- package/dist/widget/WidgetStatusBar.d.ts.map +1 -1
- package/dist/widget/WidgetSymbolSearch.d.ts +73 -20
- package/dist/widget/WidgetSymbolSearch.d.ts.map +1 -1
- package/dist/widget/WidgetToolbar.d.ts +65 -6
- package/dist/widget/WidgetToolbar.d.ts.map +1 -1
- package/dist/widget/WidgetTradeMenu.d.ts.map +1 -1
- package/dist/widget/hostButtons.d.ts +5 -2
- package/dist/widget/hostButtons.d.ts.map +1 -1
- package/dist/widget/index.cjs +459 -119
- package/dist/widget/index.cjs.map +1 -1
- package/dist/widget/index.js +2302 -1737
- package/dist/widget/index.js.map +1 -1
- package/dist/widget/locales/ar.d.ts.map +1 -1
- package/dist/widget/locales/cs.d.ts.map +1 -1
- package/dist/widget/locales/da.d.ts.map +1 -1
- package/dist/widget/locales/de.d.ts.map +1 -1
- package/dist/widget/locales/el.d.ts.map +1 -1
- package/dist/widget/locales/en.d.ts +7 -0
- package/dist/widget/locales/en.d.ts.map +1 -1
- package/dist/widget/locales/es.d.ts.map +1 -1
- package/dist/widget/locales/et.d.ts.map +1 -1
- package/dist/widget/locales/fa.d.ts.map +1 -1
- package/dist/widget/locales/fr.d.ts.map +1 -1
- package/dist/widget/locales/he.d.ts.map +1 -1
- package/dist/widget/locales/hu.d.ts.map +1 -1
- package/dist/widget/locales/id.d.ts.map +1 -1
- package/dist/widget/locales/index.cjs +1 -1
- package/dist/widget/locales/index.cjs.map +1 -1
- package/dist/widget/locales/index.js +197 -1
- package/dist/widget/locales/index.js.map +1 -1
- package/dist/widget/locales/it.d.ts.map +1 -1
- package/dist/widget/locales/ja.d.ts.map +1 -1
- package/dist/widget/locales/ko.d.ts.map +1 -1
- package/dist/widget/locales/ms.d.ts.map +1 -1
- package/dist/widget/locales/nb.d.ts.map +1 -1
- package/dist/widget/locales/nl.d.ts.map +1 -1
- package/dist/widget/locales/pl.d.ts.map +1 -1
- package/dist/widget/locales/pt.d.ts.map +1 -1
- package/dist/widget/locales/ro.d.ts.map +1 -1
- package/dist/widget/locales/ru.d.ts.map +1 -1
- package/dist/widget/locales/sk.d.ts.map +1 -1
- package/dist/widget/locales/sv.d.ts.map +1 -1
- package/dist/widget/locales/th.d.ts.map +1 -1
- package/dist/widget/locales/tr.d.ts.map +1 -1
- package/dist/widget/locales/vi.d.ts.map +1 -1
- package/dist/widget/locales/zh.d.ts.map +1 -1
- package/dist/widget/locales/zhHant.d.ts.map +1 -1
- package/dist/widget/selectMenu.d.ts.map +1 -1
- package/dist/widget/symbolBadge.d.ts +26 -0
- package/dist/widget/symbolBadge.d.ts.map +1 -0
- package/dist/widget/symbolCatalog.d.ts +62 -0
- package/dist/widget/symbolCatalog.d.ts.map +1 -0
- package/dist/widget/symbolCell.d.ts +8 -0
- package/dist/widget/symbolCell.d.ts.map +1 -0
- package/dist/widget/symbolInfoView.d.ts +3 -0
- package/dist/widget/symbolInfoView.d.ts.map +1 -1
- package/dist/widget/symbolMatch.d.ts +38 -0
- package/dist/widget/symbolMatch.d.ts.map +1 -0
- package/dist/widget/symbolSearchFilters.d.ts +52 -0
- package/dist/widget/symbolSearchFilters.d.ts.map +1 -0
- package/dist/widget/types.d.ts +28 -4
- package/dist/widget/types.d.ts.map +1 -1
- package/dist/widget/widgetUI.d.ts +2 -1
- package/dist/widget/widgetUI.d.ts.map +1 -1
- package/package.json +3 -3
- package/dist/LayoutSession-BBw0ke8V.cjs +0 -2
- package/dist/LayoutSession-BBw0ke8V.cjs.map +0 -1
- package/dist/LayoutSession-Dcvn5KMK.js.map +0 -1
- package/dist/i18n-DVeWlg64.cjs +0 -2
- package/dist/i18n-DVeWlg64.cjs.map +0 -1
- package/dist/i18n-DjzoHpMJ.js.map +0 -1
|
@@ -39,6 +39,8 @@ export declare class WidgetContextMenu {
|
|
|
39
39
|
/** The menu this one is the submenu of. */
|
|
40
40
|
private parent;
|
|
41
41
|
private hoverTimer;
|
|
42
|
+
/** The entry `hoverTimer` counts the rest on: moving on it counts on, not again. */
|
|
43
|
+
private hoverItem;
|
|
42
44
|
private readonly onDocPointer;
|
|
43
45
|
/** Scrolling a long menu keeps it; scrolling anywhere else moves the chart from under it. */
|
|
44
46
|
private readonly onWheel;
|
|
@@ -51,14 +53,34 @@ export declare class WidgetContextMenu {
|
|
|
51
53
|
constructor(host: HTMLElement, label: string, backLabel?: string);
|
|
52
54
|
/**
|
|
53
55
|
* Open at (`x`, `y`) in the host's coordinates. It opens up or to the left
|
|
54
|
-
* of the point when there is no room below or to the right,
|
|
55
|
-
*
|
|
56
|
+
* of the point when there is no room below or to the right, ending at
|
|
57
|
+
* `xBack` then (a menu under a button ends at the button's far edge), and
|
|
58
|
+
* stays inside both the host and the window. With `before` it ends at
|
|
59
|
+
* `xBack` first, and starts at `x` only without room before it.
|
|
56
60
|
*/
|
|
57
|
-
open(entries: readonly ContextMenuEntry[], x: number, y: number, onPick: (id: string) => void, anchor?: HTMLElement, onRemove?: (id: string) => void): void;
|
|
61
|
+
open(entries: readonly ContextMenuEntry[], x: number, y: number, onPick: (id: string) => void, anchor?: HTMLElement, onRemove?: (id: string) => void, xBack?: number, before?: boolean): void;
|
|
62
|
+
/**
|
|
63
|
+
* Open under `anchor`, `gap` px below it, lined up with it as the
|
|
64
|
+
* toolbar's own menus are, mirrored right to left: from its start edge
|
|
65
|
+
* (`'start'`), or ending at its end edge (`'end'`: "more", at the
|
|
66
|
+
* toolbar's end); from its other edge when there is no room that way.
|
|
67
|
+
*/
|
|
68
|
+
openUnder(entries: readonly ContextMenuEntry[], anchor: HTMLElement, onPick: (id: string) => void, align?: 'start' | 'end', gap?: number): void;
|
|
69
|
+
/**
|
|
70
|
+
* Close every menu open under `anchor`, and say whether one was. Its
|
|
71
|
+
* button shows it open (aria-expanded), so a press on it closes it.
|
|
72
|
+
*/
|
|
73
|
+
static closeAnchoredTo(anchor: HTMLElement): boolean;
|
|
74
|
+
/** The button an open menu that holds the keyboard hangs from; null when none does. */
|
|
75
|
+
static focusedAnchor(): HTMLElement | null;
|
|
58
76
|
close(): void;
|
|
59
77
|
isOpen(): boolean;
|
|
78
|
+
/** Whether the keyboard is in the menu, or in a submenu of it. */
|
|
79
|
+
hasFocus(): boolean;
|
|
60
80
|
destroy(): void;
|
|
61
81
|
private show;
|
|
82
|
+
/** What its padding and border add to a max height, which sizes only its rows unless its box counts them. */
|
|
83
|
+
private frameHeight;
|
|
62
84
|
/**
|
|
63
85
|
* A long list of choices (the time zones) opens scrolled to the one made,
|
|
64
86
|
* returned to take the keyboard; null when it is in sight already.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WidgetContextMenu.d.ts","sourceRoot":"","sources":["../../src/widget/WidgetContextMenu.ts"],"names":[],"mappings":"AAEA,MAAM,MAAM,gBAAgB;AAC1B;;;;;;GAMG;AACD;IACE,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,SAAS,gBAAgB,EAAE,CAAC;IACtC,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,GACD,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"WidgetContextMenu.d.ts","sourceRoot":"","sources":["../../src/widget/WidgetContextMenu.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WidgetHotkeySheet.d.ts","sourceRoot":"","sources":["../../src/widget/WidgetHotkeySheet.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAc,UAAU,EAAE,MAAM,WAAW,CAAC;AACxD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAKzD;;;;GAIG;AACH,MAAM,WAAW,oBAAoB;IACnC,OAAO,EAAE,MAAM,IAAI,CAAC;CACrB;AAuBD,uDAAuD;AACvD,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;CACd;AAED,qFAAqF;AACrF,MAAM,WAAW,kBAAkB;IACjC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,aAAa,KAAK,OAAO,CAAC;IAC3C,KAAK,CAAC,EAAE,SAAS,eAAe,EAAE,CAAC;CACpC;AAoFD;;;;;GAKG;AACH,qBAAa,iBAAiB;IAY1B,OAAO,CAAC,QAAQ,CAAC,SAAS;IAC1B,OAAO,CAAC,QAAQ,CAAC,CAAC;IAClB,OAAO,CAAC,QAAQ,CAAC,IAAI;IAbvB,OAAO,CAAC,QAAQ,CAA+B;IAC/C,OAAO,CAAC,MAAM,CAA+B;IAC7C,OAAO,CAAC,QAAQ,CAAiC;IACjD,oDAAoD;IACpD,OAAO,CAAC,MAAM,CAA+B;IAC7C,OAAO,CAAC,MAAM,CAAuE;IACrF,OAAO,CAAC,WAAW,CAA4B;IAC/C,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAc;IAElC,6FAA6F;gBAE1E,SAAS,EAAE,oBAAoB,EAC/B,CAAC,EAAE,UAAU,EACb,IAAI,GAAE,MAAM,WAAiC;IAGhE,IAAI,CAAC,OAAO,GAAE,kBAAuB,GAAG,IAAI;IAmB5C,KAAK,IAAI,IAAI;IAUb,MAAM,IAAI,OAAO;IAIjB,OAAO,IAAI,IAAI;IAIf,6EAA6E;IAC7E,OAAO,CAAC,KAAK;IA6Eb,+DAA+D;IAC/D,OAAO,CAAC,MAAM;
|
|
1
|
+
{"version":3,"file":"WidgetHotkeySheet.d.ts","sourceRoot":"","sources":["../../src/widget/WidgetHotkeySheet.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAc,UAAU,EAAE,MAAM,WAAW,CAAC;AACxD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAKzD;;;;GAIG;AACH,MAAM,WAAW,oBAAoB;IACnC,OAAO,EAAE,MAAM,IAAI,CAAC;CACrB;AAuBD,uDAAuD;AACvD,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;CACd;AAED,qFAAqF;AACrF,MAAM,WAAW,kBAAkB;IACjC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,aAAa,KAAK,OAAO,CAAC;IAC3C,KAAK,CAAC,EAAE,SAAS,eAAe,EAAE,CAAC;CACpC;AAoFD;;;;;GAKG;AACH,qBAAa,iBAAiB;IAY1B,OAAO,CAAC,QAAQ,CAAC,SAAS;IAC1B,OAAO,CAAC,QAAQ,CAAC,CAAC;IAClB,OAAO,CAAC,QAAQ,CAAC,IAAI;IAbvB,OAAO,CAAC,QAAQ,CAA+B;IAC/C,OAAO,CAAC,MAAM,CAA+B;IAC7C,OAAO,CAAC,QAAQ,CAAiC;IACjD,oDAAoD;IACpD,OAAO,CAAC,MAAM,CAA+B;IAC7C,OAAO,CAAC,MAAM,CAAuE;IACrF,OAAO,CAAC,WAAW,CAA4B;IAC/C,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAc;IAElC,6FAA6F;gBAE1E,SAAS,EAAE,oBAAoB,EAC/B,CAAC,EAAE,UAAU,EACb,IAAI,GAAE,MAAM,WAAiC;IAGhE,IAAI,CAAC,OAAO,GAAE,kBAAuB,GAAG,IAAI;IAmB5C,KAAK,IAAI,IAAI;IAUb,MAAM,IAAI,OAAO;IAIjB,OAAO,IAAI,IAAI;IAIf,6EAA6E;IAC7E,OAAO,CAAC,KAAK;IA6Eb,+DAA+D;IAC/D,OAAO,CAAC,MAAM;IAiCd,OAAO,CAAC,KAAK;IAIb,uEAAuE;IACvE,OAAO,CAAC,OAAO;IAIf,qEAAqE;IACrE,OAAO,CAAC,OAAO;IAKf,uEAAuE;IACvE,OAAO,CAAC,GAAG;CA0BZ"}
|
|
@@ -81,6 +81,8 @@ export declare class WidgetIndicatorLegend {
|
|
|
81
81
|
private collapsed;
|
|
82
82
|
private toggleKey;
|
|
83
83
|
private stackKey;
|
|
84
|
+
/** Tells of each row's values box resized: a narrow chart, a longer name beside them. */
|
|
85
|
+
private readonly valuesObserver;
|
|
84
86
|
constructor(host: HTMLElement, callbacks: IndicatorLegendCallbacks, labels: IndicatorLegendLabels);
|
|
85
87
|
update(rows: readonly IndicatorLegendRow[], overlay: {
|
|
86
88
|
left: number;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WidgetIndicatorLegend.d.ts","sourceRoot":"","sources":["../../src/widget/WidgetIndicatorLegend.ts"],"names":[],"mappings":"AAGA,MAAM,WAAW,kBAAkB;IACjC,UAAU,EAAE,MAAM,CAAC;IACnB,gCAAgC;IAChC,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,OAAO,CAAC;IACjB,kFAAkF;IAClF,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,6EAA6E;IAC7E,MAAM,EAAE,SAAS;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE,EAAE,CAAC;IAC1D;;;OAGG;IACH,IAAI,EAAE;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC;CACtD;AAED,2DAA2D;AAC3D,MAAM,WAAW,mBAAmB;IAClC,sCAAsC;IACtC,UAAU,EAAE,MAAM,CAAC;IACnB,yEAAyE;IACzE,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,sDAAsD;IACtD,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,OAAO,CAAC;IACnB,SAAS,EAAE,OAAO,CAAC;IACnB,SAAS,EAAE,OAAO,CAAC;IACnB,WAAW,EAAE,OAAO,CAAC;CACtB;AAED,MAAM,MAAM,UAAU,GAAG,IAAI,GAAG,MAAM,GAAG,UAAU,GAAG,QAAQ,GAAG,UAAU,GAAG,SAAS,CAAC;AAExF,MAAM,WAAW,wBAAwB;IACvC,eAAe,EAAE,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,KAAK,IAAI,CAAC;IAChE,UAAU,EAAE,CAAC,UAAU,EAAE,MAAM,KAAK,IAAI,CAAC;IACzC,QAAQ,EAAE,CAAC,UAAU,EAAE,MAAM,KAAK,IAAI,CAAC;IACvC,8EAA8E;IAC9E,MAAM,CAAC,EAAE,CAAC,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,KAAK,IAAI,CAAC;IAC3D,sDAAsD;IACtD,YAAY,CAAC,EAAE,CAAC,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,KAAK,IAAI,CAAC;CACjE;AAED,MAAM,WAAW,qBAAqB;IACpC,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,qEAAqE;IACrE,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;
|
|
1
|
+
{"version":3,"file":"WidgetIndicatorLegend.d.ts","sourceRoot":"","sources":["../../src/widget/WidgetIndicatorLegend.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WidgetLayoutsUI.d.ts","sourceRoot":"","sources":["../../src/widget/WidgetLayoutsUI.ts"],"names":[],"mappings":"AAGA,OAAO,EAAQ,KAAK,UAAU,EAAE,MAAM,WAAW,CAAC;AAClD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAC/D,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAKpE,MAAM,WAAW,aAAa;IAC5B,2DAA2D;IAC3D,IAAI,EAAE,WAAW,CAAC;IAClB,CAAC,EAAE,UAAU,CAAC;IACd,KAAK,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,OAAO,KAAK,IAAI,CAAC;IAC1D,UAAU,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,MAAM,CAAC;IACnC,mEAAmE;IACnE,QAAQ,CAAC,EAAE,MAAM,MAAM,GAAG,SAAS,CAAC;CACrC;AAED;;;;;GAKG;AACH,qBAAa,eAAe;IAMd,OAAO,CAAC,QAAQ,CAAC,OAAO;IAAiB,OAAO,CAAC,QAAQ,CAAC,IAAI;IAL1E,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAoB;IACzC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAmB;IAC1C,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAsB;IAC7C,OAAO,CAAC,SAAS,CAAS;gBAEG,OAAO,EAAE,aAAa,EAAmB,IAAI,EAAE,aAAa;IAoBzF,uEAAuE;IACjE,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAgB3B,6EAA6E;IACvE,IAAI,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAUxC,YAAY,IAAI,IAAI;IAmBpB,YAAY,CAAC,MAAM,GAAE,kBAAkB,GAAG,IAA6B,GAAG,IAAI;IAmB9E,+CAA+C;IAC/C,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAI3B,kEAAkE;IAC5D,QAAQ,CAAC,MAAM,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"WidgetLayoutsUI.d.ts","sourceRoot":"","sources":["../../src/widget/WidgetLayoutsUI.ts"],"names":[],"mappings":"AAGA,OAAO,EAAQ,KAAK,UAAU,EAAE,MAAM,WAAW,CAAC;AAClD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAC/D,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAKpE,MAAM,WAAW,aAAa;IAC5B,2DAA2D;IAC3D,IAAI,EAAE,WAAW,CAAC;IAClB,CAAC,EAAE,UAAU,CAAC;IACd,KAAK,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,OAAO,KAAK,IAAI,CAAC;IAC1D,UAAU,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,MAAM,CAAC;IACnC,mEAAmE;IACnE,QAAQ,CAAC,EAAE,MAAM,MAAM,GAAG,SAAS,CAAC;CACrC;AAED;;;;;GAKG;AACH,qBAAa,eAAe;IAMd,OAAO,CAAC,QAAQ,CAAC,OAAO;IAAiB,OAAO,CAAC,QAAQ,CAAC,IAAI;IAL1E,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAoB;IACzC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAmB;IAC1C,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAsB;IAC7C,OAAO,CAAC,SAAS,CAAS;gBAEG,OAAO,EAAE,aAAa,EAAmB,IAAI,EAAE,aAAa;IAoBzF,uEAAuE;IACjE,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAgB3B,6EAA6E;IACvE,IAAI,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAUxC,YAAY,IAAI,IAAI;IAmBpB,YAAY,CAAC,MAAM,GAAE,kBAAkB,GAAG,IAA6B,GAAG,IAAI;IAmB9E,+CAA+C;IAC/C,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAI3B,kEAAkE;IAC5D,QAAQ,CAAC,MAAM,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;IAqClD,OAAO,IAAI,IAAI;CAMhB"}
|
|
@@ -7,8 +7,16 @@ export interface StatusBarRange {
|
|
|
7
7
|
presetLabels?: Partial<Record<RangePreset, string>>;
|
|
8
8
|
groupLabel: string;
|
|
9
9
|
goToLabel: string;
|
|
10
|
+
/** The name of the button that holds what the bar has folded away ("More"). */
|
|
11
|
+
moreLabel: string;
|
|
10
12
|
onPreset: (preset: RangePreset) => void;
|
|
11
13
|
onGoTo: () => void;
|
|
14
|
+
/**
|
|
15
|
+
* The keys that go to a date now ("Alt+G"), shown beside it in the "more"
|
|
16
|
+
* menu and its tooltip; undefined while they do nothing (switched off, or
|
|
17
|
+
* taken by a key of the host's). Alt+G when not given.
|
|
18
|
+
*/
|
|
19
|
+
goToKeys?: () => string | undefined;
|
|
12
20
|
}
|
|
13
21
|
/** The clock: the time in the display zone, and the zones to pick from. */
|
|
14
22
|
export interface StatusBarClock {
|
|
@@ -51,7 +59,8 @@ export interface StatusBarScale {
|
|
|
51
59
|
* Bottom bar: range presets and "go to date" on the left (when `range` is
|
|
52
60
|
* given); the market's status, the connection, the clock and the price
|
|
53
61
|
* scale's switches on the right; hosts' own items after the presets and
|
|
54
|
-
* before the market's status.
|
|
62
|
+
* before the market's status. What the bar has no room for folds under
|
|
63
|
+
* "more" (see `fit`).
|
|
55
64
|
*/
|
|
56
65
|
export declare class WidgetStatusBar {
|
|
57
66
|
private readonly host;
|
|
@@ -67,10 +76,100 @@ export declare class WidgetStatusBar {
|
|
|
67
76
|
private scaleBtns;
|
|
68
77
|
/** The scale as last shown: nothing to rewrite when it is the same. */
|
|
69
78
|
private scaleShown;
|
|
79
|
+
/** The market's status as last shown: the widget asks every 30 seconds. */
|
|
80
|
+
private marketShown;
|
|
81
|
+
/** The market's status, the connection, the clock and the scale: it keeps its width. */
|
|
82
|
+
private readonly rightEl;
|
|
83
|
+
private rangeEl;
|
|
84
|
+
private presetBtns;
|
|
85
|
+
private moreBtn;
|
|
86
|
+
private goToBtn;
|
|
87
|
+
private rangeMenu;
|
|
88
|
+
private resizeObserver;
|
|
89
|
+
private fitFrame;
|
|
90
|
+
/** Gone: a late font or a frame asked for before then fits nothing. */
|
|
91
|
+
private destroyed;
|
|
92
|
+
/** `extras.label` names the bar, which holds the keyboard itself when nothing in it shows. */
|
|
70
93
|
constructor(host: HTMLElement, range?: StatusBarRange, extras?: {
|
|
71
94
|
clock?: StatusBarClock;
|
|
72
95
|
scale?: StatusBarScale;
|
|
96
|
+
label?: string;
|
|
73
97
|
});
|
|
98
|
+
/**
|
|
99
|
+
* Fit again whenever the room for the range bar changes: the bar's own
|
|
100
|
+
* width, or what the groups beside it hold (the market's word, a host's
|
|
101
|
+
* item, the scale switches a narrow widget hides). They keep their width,
|
|
102
|
+
* so the range bar alone takes up the difference.
|
|
103
|
+
*/
|
|
104
|
+
private watchWidths;
|
|
105
|
+
/** Fit once before the next frame, however many changes came first; never once the bar is gone. */
|
|
106
|
+
private scheduleFit;
|
|
107
|
+
/**
|
|
108
|
+
* Fit the bar to its width. The clock and the rest of the right group keep
|
|
109
|
+
* their width; when the range bar then has too little room, its presets
|
|
110
|
+
* fold under "more" one at a time, from the longest range, and go to date
|
|
111
|
+
* after them (not while the presets, and "more" with them, are switched
|
|
112
|
+
* off). Only when everything has folded and it still doesn't fit does the
|
|
113
|
+
* market's status shorten to its word ("Closed"), and what fits in the
|
|
114
|
+
* room that gives comes back.
|
|
115
|
+
*
|
|
116
|
+
* A refit that changes what is folded closes the "more" menu, whose
|
|
117
|
+
* entries would be stale, and the keyboard stays on the bar when the
|
|
118
|
+
* button it was on hides (see `keepFocus`).
|
|
119
|
+
*/
|
|
120
|
+
fit(): void;
|
|
121
|
+
/** The folding and the market's word, as `fit` says; the menu and the keyboard are `fit`'s. */
|
|
122
|
+
private refit;
|
|
123
|
+
/** Whether the bar shows all it holds: the range bar all its buttons, and the right group all of itself. */
|
|
124
|
+
private fits;
|
|
125
|
+
/** Whether the range bar shows all it holds: it clips, so what's past its edge is its overflow. */
|
|
126
|
+
private rangeFits;
|
|
127
|
+
/**
|
|
128
|
+
* Whether the right group ends inside the bar's content edge. It keeps its
|
|
129
|
+
* width, so when the range bar has nothing left to give (its presets and
|
|
130
|
+
* go to date switched off, as `rangeBar: false` does, or no range bar at
|
|
131
|
+
* all) and the bar is still too narrow, it runs past the bar's end: the
|
|
132
|
+
* right edge, the left one right to left.
|
|
133
|
+
*
|
|
134
|
+
* Measured in layout pixels, as `rangeFits` is: the bar is position:
|
|
135
|
+
* relative, so it is the group's offset parent. Boxes on screen are scaled
|
|
136
|
+
* by a container's transform or zoom while the padding is not, so they
|
|
137
|
+
* would put the group past an edge it is inside, and a dialog's scale-in
|
|
138
|
+
* would leave the bar folded with room to spare. A stylesheet of yours
|
|
139
|
+
* that takes the bar's position away measures the group from somewhere
|
|
140
|
+
* else, so it counts as fitting then, rather than shorten the market's word
|
|
141
|
+
* for room the bar has.
|
|
142
|
+
*/
|
|
143
|
+
private rightFits;
|
|
144
|
+
private foldedCount;
|
|
145
|
+
/** The range bar's button the keyboard is on: "more" while it is in the menu "more" opened. */
|
|
146
|
+
private rangeFocus;
|
|
147
|
+
/**
|
|
148
|
+
* Keep the keyboard on the range bar after a refit, when it was on
|
|
149
|
+
* `focused` (or in the menu "more" opened, which the refit closed): see
|
|
150
|
+
* `focusAfterRefit`. Another control of the bar, or the bar itself, takes
|
|
151
|
+
* it when nothing there shows, so it never drops to the page.
|
|
152
|
+
*/
|
|
153
|
+
private keepFocus;
|
|
154
|
+
/**
|
|
155
|
+
* Where the keyboard goes from `focused` after a refit: it stays on a
|
|
156
|
+
* button that still shows; a preset or go to date that folded hands it to
|
|
157
|
+
* "more"; "more" gone (nothing folded any more, or the presets switched
|
|
158
|
+
* off) hands it to go to date, else to the last preset that shows, else to
|
|
159
|
+
* the first control the rest of the bar shows (a button of yours, the
|
|
160
|
+
* clock, a scale switch), else to the bar.
|
|
161
|
+
*/
|
|
162
|
+
private focusAfterRefit;
|
|
163
|
+
/** The first button the bar shows outside the range bar, in its order; null when none does. */
|
|
164
|
+
private firstOtherControl;
|
|
165
|
+
/** The bar holds the keyboard: focusable only until it leaves, so a click on the bar later doesn't take it. */
|
|
166
|
+
private focusBar;
|
|
167
|
+
/** Whether a button of the range bar shows: not folded, not switched off, and "more" only while something is folded. */
|
|
168
|
+
private shows;
|
|
169
|
+
/** What folds, in the order it folds: the presets from the longest range, then go to date. */
|
|
170
|
+
private foldSteps;
|
|
171
|
+
/** Whether `el` is a part of a switch that is off. */
|
|
172
|
+
private isOff;
|
|
74
173
|
update(state: {
|
|
75
174
|
connectionState: string;
|
|
76
175
|
message: string;
|
|
@@ -84,18 +183,26 @@ export declare class WidgetStatusBar {
|
|
|
84
183
|
mode: PriceScaleMode;
|
|
85
184
|
auto: boolean;
|
|
86
185
|
}): void;
|
|
87
|
-
/**
|
|
88
|
-
|
|
186
|
+
/**
|
|
187
|
+
* The market's status (open or closed); hidden for a market around the
|
|
188
|
+
* clock. `short` ("Closed") shows instead of `text` ("Market closed") on a
|
|
189
|
+
* bar out of room, which leaves `text` to screen readers and the tooltip.
|
|
190
|
+
*/
|
|
191
|
+
setMarket(state: 'open' | 'closed' | 'always', text: string, short?: string): void;
|
|
89
192
|
/** A host's own item: text, or a button when it has `onClick`. */
|
|
90
193
|
addHostItem(spec: StatusBarItemSpec): HTMLElement;
|
|
91
194
|
/** The holder of hosts' own items on the left or the right. */
|
|
92
195
|
hostSlot(side: 'left' | 'right'): HTMLDivElement;
|
|
93
196
|
destroy(): void;
|
|
94
197
|
private buildClock;
|
|
198
|
+
/** What the range bar has folded, as a menu over "more": the presets, then go to date; those switched off left out. */
|
|
199
|
+
private toggleRangeMenu;
|
|
95
200
|
/** The zones over the clock, the one in use ticked. */
|
|
96
201
|
private toggleZones;
|
|
97
202
|
private buildScale;
|
|
98
203
|
private hostGroup;
|
|
99
204
|
private buildRange;
|
|
205
|
+
/** A button of the range bar that shows an icon, named `label`. */
|
|
206
|
+
private rangeIconBtn;
|
|
100
207
|
}
|
|
101
208
|
//# sourceMappingURL=WidgetStatusBar.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WidgetStatusBar.d.ts","sourceRoot":"","sources":["../../src/widget/WidgetStatusBar.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAIrD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAEpD,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,SAAS,WAAW,EAAE,CAAC;IAChC,8DAA8D;IAC9D,YAAY,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC,CAAC;IACpD,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,CAAC,MAAM,EAAE,WAAW,KAAK,IAAI,CAAC;IACxC,MAAM,EAAE,MAAM,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"WidgetStatusBar.d.ts","sourceRoot":"","sources":["../../src/widget/WidgetStatusBar.ts"],"names":[],"mappings":"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"}
|
|
@@ -8,12 +8,23 @@ export interface SymbolSearchCallbacks {
|
|
|
8
8
|
export type SymbolSearchFn = (query: string, signal: AbortSignal) => Promise<SymbolInfo[]>;
|
|
9
9
|
/** How long typing must pause before a search function is asked. */
|
|
10
10
|
export declare const SYMBOL_SEARCH_DEBOUNCE_MS = 150;
|
|
11
|
+
/**
|
|
12
|
+
* The most rows the list draws, the best first; a line under them says how
|
|
13
|
+
* many more typing would narrow. Every row is laid out in the columns all
|
|
14
|
+
* the others share, so a list of thousands would be laid out again on each
|
|
15
|
+
* keystroke.
|
|
16
|
+
*/
|
|
17
|
+
export declare const MAX_LISTED_ROWS = 200;
|
|
18
|
+
/** A symbol on offer: its ticker, or what is known of it (a name, kind, exchange, logo). */
|
|
19
|
+
export type SymbolEntry = string | SymbolInfo;
|
|
11
20
|
/** What the symbol search opens with. */
|
|
12
21
|
export interface SymbolSearchStart {
|
|
13
|
-
/** Listed until something is typed; filtered
|
|
14
|
-
symbols: readonly
|
|
22
|
+
/** Listed until something is typed; filtered, by ticker and name, when there is no `search`. */
|
|
23
|
+
symbols: readonly SymbolEntry[];
|
|
15
24
|
/** The chart's symbol, marked in the list. */
|
|
16
25
|
current: string;
|
|
26
|
+
/** What the chart knows of `current`: its name and logo, where the symbols given and the feed have none. */
|
|
27
|
+
currentInfo?: SymbolInfo | null;
|
|
17
28
|
/** A feed's search, asked once typing pauses. */
|
|
18
29
|
search?: SymbolSearchFn;
|
|
19
30
|
/** Typed already: the letter that opened it. */
|
|
@@ -33,7 +44,7 @@ export interface CompareEntry {
|
|
|
33
44
|
}
|
|
34
45
|
/** What the compare dialog opens with. */
|
|
35
46
|
export interface CompareStart {
|
|
36
|
-
symbols: readonly
|
|
47
|
+
symbols: readonly SymbolEntry[];
|
|
37
48
|
current: string;
|
|
38
49
|
search?: SymbolSearchFn;
|
|
39
50
|
/** The ways to add a symbol, and the one chosen to start with. */
|
|
@@ -49,12 +60,20 @@ export interface CompareStart {
|
|
|
49
60
|
/**
|
|
50
61
|
* The symbol search, and the same dialog for adding a symbol to compare.
|
|
51
62
|
*
|
|
52
|
-
* -
|
|
53
|
-
*
|
|
63
|
+
* - The symbols it is given are listed until something is typed, named
|
|
64
|
+
* where they came with a SymbolInfo (or the chart knows its own).
|
|
65
|
+
* - Without a search function it filters them by ticker and name with a
|
|
66
|
+
* cheap match, good enough for lists in the low thousands. The list draws
|
|
67
|
+
* the best `MAX_LISTED_ROWS` and says how many more typing would narrow.
|
|
54
68
|
* - With one (a feed's `searchSymbols`) it asks once typing pauses, cancels a
|
|
55
|
-
* query a newer one replaced, and lists names, kinds and exchanges;
|
|
56
|
-
*
|
|
57
|
-
* -
|
|
69
|
+
* query a newer one replaced, and lists names, kinds and exchanges; what it
|
|
70
|
+
* hears is kept for the list it opens with next time.
|
|
71
|
+
* - Whose words a row shows is one rule, wherever it is listed: the feed's,
|
|
72
|
+
* then the ones given for what it left out (a logo, say), then the name
|
|
73
|
+
* and logo the chart knows of its own symbol. Words that aren't text (a
|
|
74
|
+
* JSON feed's numeric code, a null) say nothing.
|
|
75
|
+
* - The rows can be narrowed to a kind (stocks, crypto) and, when they come
|
|
76
|
+
* from two or more, to an exchange.
|
|
58
77
|
* - Comparing, a pick adds the symbol the way chosen above the list and the
|
|
59
78
|
* dialog stays; what is compared already is listed first, each removable.
|
|
60
79
|
*
|
|
@@ -71,12 +90,16 @@ export declare class WidgetSymbolSearch {
|
|
|
71
90
|
private results;
|
|
72
91
|
/** Says "Searching…", "Search failed", "No symbols match" to a screen reader. */
|
|
73
92
|
private live;
|
|
74
|
-
|
|
93
|
+
/** The heads of the columns, at the top of what scrolls. */
|
|
94
|
+
private columns;
|
|
95
|
+
private filters;
|
|
75
96
|
private mode;
|
|
97
|
+
/** The tickers given to it, cleaned. */
|
|
98
|
+
private given;
|
|
76
99
|
private rows;
|
|
100
|
+
/** Whether the rows are the symbols given (filtered or not), not a feed's results. */
|
|
101
|
+
private rowsGiven;
|
|
77
102
|
private shown;
|
|
78
|
-
/** The kind of symbol the list keeps to; null for all. */
|
|
79
|
-
private kind;
|
|
80
103
|
private compared;
|
|
81
104
|
private way;
|
|
82
105
|
private selectedIndex;
|
|
@@ -86,8 +109,12 @@ export declare class WidgetSymbolSearch {
|
|
|
86
109
|
private status;
|
|
87
110
|
/** Enter came before the results for what was typed: take the top one when they land. */
|
|
88
111
|
private pickOnResults;
|
|
89
|
-
/**
|
|
90
|
-
private readonly
|
|
112
|
+
/** What the feed's searches told of each symbol, kept from one opening to the next: its words win. */
|
|
113
|
+
private readonly heard;
|
|
114
|
+
/** What came with the symbols it opened with, over what the chart knows of its own. */
|
|
115
|
+
private givenInfo;
|
|
116
|
+
/** Each name without its marks, made once while open: a name is matched on every keystroke. */
|
|
117
|
+
private foldedNames;
|
|
91
118
|
private returnFocus;
|
|
92
119
|
private readonly uid;
|
|
93
120
|
/** Where the dialog mounts (the widget's overlay layer: themed, and inside it when fullscreen). */
|
|
@@ -102,26 +129,49 @@ export declare class WidgetSymbolSearch {
|
|
|
102
129
|
isComparing(): boolean;
|
|
103
130
|
destroy(): void;
|
|
104
131
|
private begin;
|
|
132
|
+
/**
|
|
133
|
+
* The tickers given, and what came with them. What the chart knows of its
|
|
134
|
+
* own symbol gives only a name and a logo, where none came with it: its
|
|
135
|
+
* kind and exchange may be in other words (a kind in English where the
|
|
136
|
+
* list's are translated, a broker for the exchange), and would add a tab or
|
|
137
|
+
* an exchange that no row is in once the feed has named the symbol.
|
|
138
|
+
*/
|
|
139
|
+
private learnGiven;
|
|
140
|
+
/** What a row of `symbol` shows: the feed's words, the ones given for the rest. */
|
|
141
|
+
private infoOf;
|
|
105
142
|
private build;
|
|
143
|
+
/** The heads of the columns: none over the badges, then symbol, description, type, exchange. */
|
|
144
|
+
private buildColumns;
|
|
106
145
|
private buildHeader;
|
|
107
146
|
private buildSearch;
|
|
108
147
|
/** Comparing: how the next symbol is added. */
|
|
109
148
|
private buildWay;
|
|
110
|
-
/** The symbols it was given, named where a search told of
|
|
149
|
+
/** The symbols it was given, named where they came with a name or a search told of one. */
|
|
111
150
|
private listGiven;
|
|
112
|
-
private given;
|
|
113
151
|
private filter;
|
|
152
|
+
/** A name without its marks, as matching takes it; made once for each name while open. */
|
|
153
|
+
private foldedName;
|
|
114
154
|
private scheduleSearch;
|
|
115
155
|
/** Run the search the pause would have started, now. */
|
|
116
156
|
private searchNow;
|
|
117
157
|
private runSearch;
|
|
118
158
|
private cancelSearch;
|
|
119
|
-
/**
|
|
159
|
+
/**
|
|
160
|
+
* New rows: the kinds and exchanges on offer, the list, the keys on the
|
|
161
|
+
* chart's symbol (`atCurrent`) or the top. The filters hear only of rows
|
|
162
|
+
* that can be listed: comparing, a kind only the chart's own symbol is of
|
|
163
|
+
* would be a tab that lists nothing.
|
|
164
|
+
*/
|
|
120
165
|
private afterResults;
|
|
121
|
-
/**
|
|
166
|
+
/** How many of the rows on show are listed. */
|
|
167
|
+
private listedCount;
|
|
168
|
+
/** The rows that can be listed: comparing, all but the chart's own symbol. */
|
|
169
|
+
private listableRows;
|
|
170
|
+
/**
|
|
171
|
+
* The rows on show: of the kind and exchange picked. A symbol given that
|
|
172
|
+
* says nothing of its kind or exchange stays: it may be of either.
|
|
173
|
+
*/
|
|
122
174
|
private visibleRows;
|
|
123
|
-
/** Chips for the kinds the results come in, when there are two or more. */
|
|
124
|
-
private renderKinds;
|
|
125
175
|
/**
|
|
126
176
|
* What is compared (comparing, before anything is typed) as a group under
|
|
127
177
|
* its heading, then the symbols, a listbox of options only, under theirs;
|
|
@@ -129,9 +179,12 @@ export declare class WidgetSymbolSearch {
|
|
|
129
179
|
*/
|
|
130
180
|
private renderList;
|
|
131
181
|
private emptyNote;
|
|
182
|
+
/** Under a list cut short, how many more rows there are to narrow by typing; null when none. */
|
|
183
|
+
private moreNote;
|
|
132
184
|
private heading;
|
|
133
185
|
private row;
|
|
134
|
-
|
|
186
|
+
private descriptionCell;
|
|
187
|
+
/** A symbol compared already: its colour where the badges are, its way across the rest, and a button to take it off. */
|
|
135
188
|
private addedRow;
|
|
136
189
|
private tag;
|
|
137
190
|
private markSelection;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WidgetSymbolSearch.d.ts","sourceRoot":"","sources":["../../src/widget/WidgetSymbolSearch.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"WidgetSymbolSearch.d.ts","sourceRoot":"","sources":["../../src/widget/WidgetSymbolSearch.ts"],"names":[],"mappings":"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"}
|
|
@@ -26,32 +26,80 @@ export declare class WidgetToolbar {
|
|
|
26
26
|
private moreMenu;
|
|
27
27
|
private tfCurrent;
|
|
28
28
|
private resizeObserver;
|
|
29
|
+
/** Tells of a host's group of buttons resized: a count in a button that grew or shrank. */
|
|
30
|
+
private hostObserver;
|
|
29
31
|
private moreBtn;
|
|
30
32
|
private fitFrame;
|
|
33
|
+
/** Gone: a late font or a frame asked for before then fits nothing. */
|
|
34
|
+
private destroyed;
|
|
31
35
|
private undoBtn;
|
|
32
36
|
private redoBtn;
|
|
33
37
|
private trade;
|
|
38
|
+
/** What the layouts button shows now, its state and name: the same again changes nothing. */
|
|
39
|
+
private layoutShown;
|
|
40
|
+
/** The symbol its button shows now: the same again builds nothing. */
|
|
41
|
+
private symbolShown;
|
|
34
42
|
/**
|
|
35
43
|
* `layer`: where the toolbar's menus open, over the page (the widget's
|
|
36
44
|
* overlay layer), so no box around the widget clips them. Without one they
|
|
37
45
|
* open inside their buttons.
|
|
38
46
|
*/
|
|
39
47
|
constructor(host: HTMLElement, config: ToolbarConfig, callbacks: ToolbarCallbacks, t: Translator, layer?: (() => HTMLElement) | undefined);
|
|
40
|
-
/** Fit once before the next frame, however many changes came first. */
|
|
48
|
+
/** Fit once before the next frame, however many changes came first; never once the toolbar is gone. */
|
|
41
49
|
private scheduleFit;
|
|
42
50
|
/**
|
|
43
51
|
* What a menu opened from `btn` hangs from: the button, or "more" while the
|
|
44
|
-
* button is folded under it.
|
|
52
|
+
* button is folded under it. A folded button has no box, so a menu placed
|
|
53
|
+
* from it would open at the widget's corner.
|
|
45
54
|
*/
|
|
46
|
-
|
|
55
|
+
menuAnchor(btn: HTMLElement): HTMLElement;
|
|
47
56
|
/**
|
|
48
57
|
* Fit the toolbar to its width. When everything doesn't fit, the buttons
|
|
49
58
|
* on the right fold under "more" one at a time, from the right, until the
|
|
50
|
-
* rest does;
|
|
59
|
+
* rest does; a host's buttons on the left come before them all, so they
|
|
60
|
+
* fold last. When even that isn't enough, the menus show their icons only
|
|
51
61
|
* and the interval buttons give way to the interval menu, and as many
|
|
52
|
-
* buttons as then fit come back.
|
|
62
|
+
* buttons as then fit come back, from the left. Last of all, with nothing
|
|
63
|
+
* left to fold (a long symbol on a phone), the symbol gives way, in
|
|
64
|
+
* `SQUEEZE_STEPS`: its venue ("HYPERLIQUID:xyz:") is cut short to an
|
|
65
|
+
* ellipsis before anything else shrinks, its ticker kept whole while the
|
|
66
|
+
* buttons beside it can give. Each fit measures it whole, so it takes its
|
|
67
|
+
* room back as soon as there is room.
|
|
68
|
+
*
|
|
69
|
+
* A refit that changes what is folded closes the menus hanging from "more"
|
|
70
|
+
* or from a button that folded, whose place is gone, and the keyboard stays
|
|
71
|
+
* on the toolbar when the button it was on hides (see `keepFocus`).
|
|
53
72
|
*/
|
|
54
73
|
fit(): void;
|
|
74
|
+
/** The folding, as `fit` says; the menus and the keyboard are `fit`'s. */
|
|
75
|
+
private refit;
|
|
76
|
+
/**
|
|
77
|
+
* Whether the toolbar's controls end inside its content box: the padding
|
|
78
|
+
* at its end clear (its left right to left), in its own layout px, as a
|
|
79
|
+
* container's transform or zoom leaves them. Widths are fractional ("more"
|
|
80
|
+
* ending at 1366.19 in a bar 1365 wide): the reach is rounded up to a
|
|
81
|
+
* whole px and the room down, so no share of a pixel hangs past the edge.
|
|
82
|
+
*/
|
|
83
|
+
private fits;
|
|
84
|
+
/** What is folded, and whether "more" shows, as one word to tell a refit that changed them. */
|
|
85
|
+
private foldedState;
|
|
86
|
+
/** Close the menus that hang from "more", or from a button now folded: their entries or their place are stale. */
|
|
87
|
+
private closeStaleMenus;
|
|
88
|
+
/** The toolbar's button the keyboard is on: the one a menu hangs from while the keyboard is in the menu. */
|
|
89
|
+
private toolbarFocus;
|
|
90
|
+
/**
|
|
91
|
+
* Keep the keyboard on the toolbar after a refit: on `focused` while it
|
|
92
|
+
* shows; on "more" when it folded; when "more" itself went (everything is
|
|
93
|
+
* back), on the last button that came back, beside where "more" was. A
|
|
94
|
+
* menu still open that holds it keeps it.
|
|
95
|
+
*/
|
|
96
|
+
private keepFocus;
|
|
97
|
+
/** The buttons that can fold, in their order: those that fold whole, and those inside what folds (the Trade menu). */
|
|
98
|
+
private overflowButtons;
|
|
99
|
+
/** Whether a toolbar button shows: not hidden, folded or switched off, and "more" only while the toolbar is collapsed or narrow. */
|
|
100
|
+
private shows;
|
|
101
|
+
/** Whether `el`, or what holds it on the toolbar, is part of a switch that is off. */
|
|
102
|
+
private isOff;
|
|
55
103
|
private build;
|
|
56
104
|
/** The buttons a narrow toolbar hides, as a menu under `anchor`: those switched off left out. */
|
|
57
105
|
private toggleMore;
|
|
@@ -72,7 +120,12 @@ export declare class WidgetToolbar {
|
|
|
72
120
|
setActive(role: string, on: boolean): void;
|
|
73
121
|
/** Hide the button of `role` while the dock's rail has its own for it (and leave it out of "more"). */
|
|
74
122
|
setRailed(role: string, railed: boolean): void;
|
|
75
|
-
/**
|
|
123
|
+
/**
|
|
124
|
+
* The layout open now on its button (`null`: none saved yet), with a dot
|
|
125
|
+
* while it has unsaved changes. A new name changes the button's width, not
|
|
126
|
+
* the toolbar's, so no resize tells of it: the toolbar refits, lest "more"
|
|
127
|
+
* be pushed past its end.
|
|
128
|
+
*/
|
|
76
129
|
setLayout(name: string | null, dirty: boolean): void;
|
|
77
130
|
/** Swap the fullscreen button between enter and exit. */
|
|
78
131
|
setFullscreen(on: boolean): void;
|
|
@@ -90,6 +143,12 @@ export declare class WidgetToolbar {
|
|
|
90
143
|
private renderTimeframes;
|
|
91
144
|
/** Whether the indicators dialog is open, on its button. */
|
|
92
145
|
setIndicatorsOpen(open: boolean): void;
|
|
146
|
+
/**
|
|
147
|
+
* The symbol on its button, its venue ("BINANCE:") apart from its ticker,
|
|
148
|
+
* the button marked when it has one: a toolbar with no room left cuts the
|
|
149
|
+
* venue short first (`refit`).
|
|
150
|
+
*/
|
|
151
|
+
private renderSymbol;
|
|
93
152
|
update(state: WidgetState): void;
|
|
94
153
|
private sep;
|
|
95
154
|
private spacer;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WidgetToolbar.d.ts","sourceRoot":"","sources":["../../src/widget/WidgetToolbar.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAa,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACjE,OAAO,KAAK,EAAE,iBAAiB,EAAE,aAAa,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAKlG,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"WidgetToolbar.d.ts","sourceRoot":"","sources":["../../src/widget/WidgetToolbar.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WidgetTradeMenu.d.ts","sourceRoot":"","sources":["../../src/widget/WidgetTradeMenu.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAInD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"WidgetTradeMenu.d.ts","sourceRoot":"","sources":["../../src/widget/WidgetTradeMenu.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAInD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AA2B5C;;;;GAIG;AACH,qBAAa,eAAe;IAkBxB,OAAO,CAAC,QAAQ,CAAC,KAAK;IACtB,OAAO,CAAC,QAAQ,CAAC,CAAC;IAClB,OAAO,CAAC,QAAQ,CAAC,IAAI;IAnBvB,QAAQ,CAAC,MAAM,EAAE,iBAAiB,CAAC;IACnC,OAAO,CAAC,IAAI,CAAkC;IAC9C,+CAA+C;IAC/C,OAAO,CAAC,IAAI,CAAsB;IAElC,mFAAmF;IACnF,MAAM,CAAC,MAAM,CACX,SAAS,EAAE,gBAAgB,EAC3B,CAAC,EAAE,UAAU,EACb,IAAI,EAAE,MAAM,WAAW,EACvB,QAAQ,EAAE,CAAC,GAAG,EAAE,WAAW,KAAK,WAAW,GAC1C,eAAe,GAAG,IAAI;IAKzB,OAAO;IAoBP,6DAA6D;IAC7D,IAAI,IAAI,IAAI;IAIZ,+FAA+F;IAC/F,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,OAAO,GAAG,IAAI;IAOxC,OAAO,IAAI,IAAI;IAKf,4DAA4D;IAC5D,OAAO,CAAC,KAAK;IAKb,mFAAmF;IACnF,OAAO,CAAC,MAAM;CAsBf"}
|
|
@@ -1,5 +1,8 @@
|
|
|
1
1
|
/** Shows a host's button as on or off; a switch says so to assistive tech too. */
|
|
2
2
|
export declare function setHostButtonActive(element: HTMLButtonElement, on: boolean, toggle: boolean): void;
|
|
3
|
-
/**
|
|
4
|
-
|
|
3
|
+
/**
|
|
4
|
+
* A host's toolbar button's text, its name following ("News: 3"). False when
|
|
5
|
+
* it showed that text already: nothing is written again.
|
|
6
|
+
*/
|
|
7
|
+
export declare function setHostButtonText(element: HTMLButtonElement, label: string, value: string): boolean;
|
|
5
8
|
//# sourceMappingURL=hostButtons.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hostButtons.d.ts","sourceRoot":"","sources":["../../src/widget/hostButtons.ts"],"names":[],"mappings":"AAEA,kFAAkF;AAClF,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,iBAAiB,EAAE,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,GAAG,IAAI,CAGlG;AAED
|
|
1
|
+
{"version":3,"file":"hostButtons.d.ts","sourceRoot":"","sources":["../../src/widget/hostButtons.ts"],"names":[],"mappings":"AAEA,kFAAkF;AAClF,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,iBAAiB,EAAE,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,GAAG,IAAI,CAGlG;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,iBAAiB,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAcnG"}
|