@tradecanvas/chart 1.3.0 → 1.7.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 +131 -49
- package/dist/Chart.d.ts +724 -18
- package/dist/Chart.d.ts.map +1 -1
- package/dist/DataManager.d.ts +5 -0
- package/dist/DataManager.d.ts.map +1 -1
- package/dist/HistoryPager.d.ts +58 -0
- package/dist/HistoryPager.d.ts.map +1 -0
- package/dist/LayoutSession-CTZB90NX.cjs +2 -0
- package/dist/LayoutSession-CTZB90NX.cjs.map +1 -0
- package/dist/LayoutSession-CWn3sdbs.js +3967 -0
- package/dist/LayoutSession-CWn3sdbs.js.map +1 -0
- package/dist/PaneManager.d.ts.map +1 -1
- package/dist/ThemeManager.d.ts +5 -1
- package/dist/ThemeManager.d.ts.map +1 -1
- package/dist/chartA11y.d.ts +59 -0
- package/dist/chartA11y.d.ts.map +1 -0
- package/dist/charts/ChartTypeStrategy.d.ts +11 -4
- package/dist/charts/ChartTypeStrategy.d.ts.map +1 -1
- package/dist/grid/ChartGrid.d.ts +7 -1
- package/dist/grid/ChartGrid.d.ts.map +1 -1
- package/dist/i18n-CiQ8EDVs.js +1469 -0
- package/dist/i18n-CiQ8EDVs.js.map +1 -0
- package/dist/i18n-WsLA9SmD.cjs +2 -0
- package/dist/i18n-WsLA9SmD.cjs.map +1 -0
- package/dist/index.cjs +1 -1
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.ts +24 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +74 -89
- package/dist/index.js.map +1 -1
- package/dist/indicatorLabel.d.ts +7 -0
- package/dist/indicatorLabel.d.ts.map +1 -0
- package/dist/layout/LayoutManager.d.ts +50 -0
- package/dist/layout/LayoutManager.d.ts.map +1 -1
- package/dist/layout/priceAxisWidth.d.ts +2 -0
- package/dist/layout/priceAxisWidth.d.ts.map +1 -1
- package/dist/regularHours.d.ts +10 -0
- package/dist/regularHours.d.ts.map +1 -0
- package/dist/state/LayoutSession.d.ts +101 -0
- package/dist/state/LayoutSession.d.ts.map +1 -0
- package/dist/state/layoutStorage.d.ts +46 -0
- package/dist/state/layoutStorage.d.ts.map +1 -0
- package/dist/trading/wireExecution.d.ts +7 -3
- package/dist/trading/wireExecution.d.ts.map +1 -1
- package/dist/widget/ChartWidget.d.ts +283 -10
- package/dist/widget/ChartWidget.d.ts.map +1 -1
- package/dist/widget/ChartWidgetGrid.d.ts +166 -0
- package/dist/widget/ChartWidgetGrid.d.ts.map +1 -0
- package/dist/widget/DrawingTemplateStore.d.ts +29 -8
- package/dist/widget/DrawingTemplateStore.d.ts.map +1 -1
- package/dist/widget/WatchlistStore.d.ts +65 -0
- package/dist/widget/WatchlistStore.d.ts.map +1 -0
- package/dist/widget/WidgetAccountPanel.d.ts +72 -0
- package/dist/widget/WidgetAccountPanel.d.ts.map +1 -0
- package/dist/widget/WidgetAlertsPanel.d.ts +50 -3
- package/dist/widget/WidgetAlertsPanel.d.ts.map +1 -1
- package/dist/widget/WidgetBracketBar.d.ts +3 -1
- package/dist/widget/WidgetBracketBar.d.ts.map +1 -1
- package/dist/widget/WidgetChartNav.d.ts +36 -0
- package/dist/widget/WidgetChartNav.d.ts.map +1 -0
- package/dist/widget/WidgetCommandPalette.d.ts +5 -1
- package/dist/widget/WidgetCommandPalette.d.ts.map +1 -1
- package/dist/widget/WidgetContextMenu.d.ts +40 -0
- package/dist/widget/WidgetContextMenu.d.ts.map +1 -0
- package/dist/widget/WidgetDataWindow.d.ts +3 -1
- package/dist/widget/WidgetDataWindow.d.ts.map +1 -1
- package/dist/widget/WidgetDepthLadder.d.ts +3 -1
- package/dist/widget/WidgetDepthLadder.d.ts.map +1 -1
- package/dist/widget/WidgetDrawingSettings.d.ts +108 -0
- package/dist/widget/WidgetDrawingSettings.d.ts.map +1 -0
- package/dist/widget/WidgetDrawingSidebar.d.ts +26 -1
- package/dist/widget/WidgetDrawingSidebar.d.ts.map +1 -1
- package/dist/widget/WidgetDrawingStyle.d.ts +3 -1
- package/dist/widget/WidgetDrawingStyle.d.ts.map +1 -1
- package/dist/widget/WidgetDropdown.d.ts.map +1 -1
- package/dist/widget/WidgetGoToDate.d.ts +46 -0
- package/dist/widget/WidgetGoToDate.d.ts.map +1 -0
- package/dist/widget/WidgetHistoryPill.d.ts +23 -0
- package/dist/widget/WidgetHistoryPill.d.ts.map +1 -0
- package/dist/widget/WidgetHotkeySheet.d.ts +3 -1
- package/dist/widget/WidgetHotkeySheet.d.ts.map +1 -1
- package/dist/widget/WidgetIndicatorLegend.d.ts +98 -0
- package/dist/widget/WidgetIndicatorLegend.d.ts.map +1 -0
- package/dist/widget/WidgetIndicatorSettings.d.ts +62 -7
- package/dist/widget/WidgetIndicatorSettings.d.ts.map +1 -1
- package/dist/widget/WidgetIntervalInput.d.ts +34 -0
- package/dist/widget/WidgetIntervalInput.d.ts.map +1 -0
- package/dist/widget/WidgetLayoutsDialog.d.ts +39 -0
- package/dist/widget/WidgetLayoutsDialog.d.ts.map +1 -0
- package/dist/widget/WidgetLayoutsUI.d.ts +37 -0
- package/dist/widget/WidgetLayoutsUI.d.ts.map +1 -0
- package/dist/widget/WidgetLoadingOverlay.d.ts.map +1 -1
- package/dist/widget/WidgetNamePrompt.d.ts +31 -0
- package/dist/widget/WidgetNamePrompt.d.ts.map +1 -0
- package/dist/widget/WidgetObjectTree.d.ts +21 -3
- package/dist/widget/WidgetObjectTree.d.ts.map +1 -1
- package/dist/widget/WidgetOrderTicket.d.ts +49 -0
- package/dist/widget/WidgetOrderTicket.d.ts.map +1 -0
- package/dist/widget/WidgetReplayBar.d.ts +52 -7
- package/dist/widget/WidgetReplayBar.d.ts.map +1 -1
- package/dist/widget/WidgetSettings.d.ts +26 -2
- package/dist/widget/WidgetSettings.d.ts.map +1 -1
- package/dist/widget/WidgetStatusBar.d.ts +19 -1
- package/dist/widget/WidgetStatusBar.d.ts.map +1 -1
- package/dist/widget/WidgetStyles.d.ts +3 -1
- package/dist/widget/WidgetStyles.d.ts.map +1 -1
- package/dist/widget/WidgetSymbolInfo.d.ts +64 -0
- package/dist/widget/WidgetSymbolInfo.d.ts.map +1 -0
- package/dist/widget/WidgetSymbolSearch.d.ts +28 -5
- package/dist/widget/WidgetSymbolSearch.d.ts.map +1 -1
- package/dist/widget/WidgetToolbar.d.ts +42 -4
- package/dist/widget/WidgetToolbar.d.ts.map +1 -1
- package/dist/widget/WidgetTooltip.d.ts +43 -0
- package/dist/widget/WidgetTooltip.d.ts.map +1 -0
- package/dist/widget/WidgetWatchlist.d.ts +53 -13
- package/dist/widget/WidgetWatchlist.d.ts.map +1 -1
- package/dist/widget/chartMenu.d.ts +40 -0
- package/dist/widget/chartMenu.d.ts.map +1 -0
- package/dist/widget/drawingMenu.d.ts +21 -0
- package/dist/widget/drawingMenu.d.ts.map +1 -0
- package/dist/widget/escapeHtml.d.ts +3 -0
- package/dist/widget/escapeHtml.d.ts.map +1 -0
- package/dist/widget/focusTrap.d.ts +8 -0
- package/dist/widget/focusTrap.d.ts.map +1 -0
- package/dist/widget/i18n.d.ts +20 -63
- package/dist/widget/i18n.d.ts.map +1 -1
- package/dist/widget/iconSet.d.ts +26 -0
- package/dist/widget/iconSet.d.ts.map +1 -0
- package/dist/widget/icons.d.ts +5 -0
- package/dist/widget/icons.d.ts.map +1 -1
- package/dist/widget/index.cjs +2145 -405
- package/dist/widget/index.cjs.map +1 -1
- package/dist/widget/index.d.ts +18 -1
- package/dist/widget/index.d.ts.map +1 -1
- package/dist/widget/index.js +7376 -1274
- package/dist/widget/index.js.map +1 -1
- package/dist/widget/indicatorTemplates.d.ts +24 -0
- package/dist/widget/indicatorTemplates.d.ts.map +1 -0
- package/dist/widget/keyTarget.d.ts +11 -0
- package/dist/widget/keyTarget.d.ts.map +1 -0
- package/dist/widget/legendValues.d.ts +19 -0
- package/dist/widget/legendValues.d.ts.map +1 -0
- package/dist/widget/locales/ar.d.ts +4 -0
- package/dist/widget/locales/ar.d.ts.map +1 -0
- package/dist/widget/locales/de.d.ts +4 -0
- package/dist/widget/locales/de.d.ts.map +1 -0
- package/dist/widget/locales/en.d.ts +722 -0
- package/dist/widget/locales/en.d.ts.map +1 -0
- package/dist/widget/locales/es.d.ts +4 -0
- package/dist/widget/locales/es.d.ts.map +1 -0
- package/dist/widget/locales/fr.d.ts +4 -0
- package/dist/widget/locales/fr.d.ts.map +1 -0
- package/dist/widget/locales/he.d.ts +4 -0
- package/dist/widget/locales/he.d.ts.map +1 -0
- package/dist/widget/locales/id.d.ts +4 -0
- package/dist/widget/locales/id.d.ts.map +1 -0
- package/dist/widget/locales/index.cjs +2 -0
- package/dist/widget/locales/index.cjs.map +1 -0
- package/dist/widget/locales/index.d.ts +33 -0
- package/dist/widget/locales/index.d.ts.map +1 -0
- package/dist/widget/locales/index.js +10089 -0
- package/dist/widget/locales/index.js.map +1 -0
- package/dist/widget/locales/ja.d.ts +4 -0
- package/dist/widget/locales/ja.d.ts.map +1 -0
- package/dist/widget/locales/ko.d.ts +4 -0
- package/dist/widget/locales/ko.d.ts.map +1 -0
- package/dist/widget/locales/pt.d.ts +4 -0
- package/dist/widget/locales/pt.d.ts.map +1 -0
- package/dist/widget/locales/ru.d.ts +4 -0
- package/dist/widget/locales/ru.d.ts.map +1 -0
- package/dist/widget/locales/th.d.ts +4 -0
- package/dist/widget/locales/th.d.ts.map +1 -0
- package/dist/widget/locales/tr.d.ts +4 -0
- package/dist/widget/locales/tr.d.ts.map +1 -0
- package/dist/widget/locales/vi.d.ts +4 -0
- package/dist/widget/locales/vi.d.ts.map +1 -0
- package/dist/widget/locales/zh.d.ts +4 -0
- package/dist/widget/locales/zh.d.ts.map +1 -0
- package/dist/widget/locales/zhHant.d.ts +4 -0
- package/dist/widget/locales/zhHant.d.ts.map +1 -0
- package/dist/widget/orderTicket.d.ts +27 -0
- package/dist/widget/orderTicket.d.ts.map +1 -0
- package/dist/widget/settingsControls.d.ts +24 -0
- package/dist/widget/settingsControls.d.ts.map +1 -0
- package/dist/widget/types.d.ts +215 -13
- package/dist/widget/types.d.ts.map +1 -1
- package/dist/widget/widgetConfig.d.ts +1 -5
- package/dist/widget/widgetConfig.d.ts.map +1 -1
- package/dist/widget/widgetLayout.d.ts +22 -0
- package/dist/widget/widgetLayout.d.ts.map +1 -0
- package/dist/widget/widgetLocales.d.ts +17 -0
- package/dist/widget/widgetLocales.d.ts.map +1 -0
- package/dist/widget/widgetTimeframes.d.ts +28 -0
- package/dist/widget/widgetTimeframes.d.ts.map +1 -0
- package/dist/widget/widgetTimezones.d.ts +32 -0
- package/dist/widget/widgetTimezones.d.ts.map +1 -0
- package/dist/widget/widgetUI.d.ts +126 -0
- package/dist/widget/widgetUI.d.ts.map +1 -0
- package/package.json +8 -3
- package/dist/DragDropImporter-BazeSQPD.cjs +0 -2
- package/dist/DragDropImporter-BazeSQPD.cjs.map +0 -1
- package/dist/DragDropImporter-cURSpfUb.js +0 -1883
- package/dist/DragDropImporter-cURSpfUb.js.map +0 -1
- package/dist/charts/IndicatorPriceRange.d.ts +0 -20
- package/dist/charts/IndicatorPriceRange.d.ts.map +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"WidgetDrawingSettings.d.ts","sourceRoot":"","sources":["../../src/widget/WidgetDrawingSettings.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,24 +1,49 @@
|
|
|
1
1
|
import { SidebarConfig, SidebarCallbacks, WidgetState } from './types.js';
|
|
2
|
+
import { Translator } from './i18n.js';
|
|
2
3
|
export declare class WidgetDrawingSidebar {
|
|
4
|
+
private readonly host;
|
|
5
|
+
private readonly t;
|
|
3
6
|
private config;
|
|
4
7
|
private callbacks;
|
|
5
8
|
private el;
|
|
6
9
|
private groupWraps;
|
|
7
10
|
private groupButtons;
|
|
11
|
+
/** Per group, the icon holder in its button and the tool it stands for (the last one used). */
|
|
12
|
+
private groupIcons;
|
|
13
|
+
private groupTools;
|
|
8
14
|
private cursorBtn;
|
|
9
15
|
private magnetBtn;
|
|
16
|
+
private eraserBtn;
|
|
17
|
+
private zoomBtn;
|
|
18
|
+
private stayBtn;
|
|
10
19
|
private flyoutEl;
|
|
20
|
+
private flyoutIdx;
|
|
21
|
+
private flyoutHideTimer;
|
|
11
22
|
private favoritesEl;
|
|
12
23
|
private favoritesDivider;
|
|
13
24
|
private favorites;
|
|
14
|
-
constructor(host: HTMLElement, config: SidebarConfig, callbacks: SidebarCallbacks);
|
|
25
|
+
constructor(host: HTMLElement, config: SidebarConfig, callbacks: SidebarCallbacks, t?: Translator);
|
|
15
26
|
private build;
|
|
16
27
|
/** Update the pinned-tools strip. */
|
|
17
28
|
setFavorites(favorites: string[]): void;
|
|
18
29
|
private renderFavorites;
|
|
19
30
|
private showFlyout;
|
|
31
|
+
private flyoutItems;
|
|
32
|
+
private focusFlyoutItem;
|
|
33
|
+
/** Arrows, Home and End move through the menu; Escape or Left go back to its button; Tab leaves it. */
|
|
34
|
+
private onFlyoutKey;
|
|
35
|
+
/** Beside `button`, kept inside the host when it is taller than the room below. */
|
|
36
|
+
private placeFlyout;
|
|
37
|
+
/**
|
|
38
|
+
* Close a moment after the pointer leaves, so one that slips off the menu
|
|
39
|
+
* on its way to an item (a diagonal move) doesn't lose it.
|
|
40
|
+
*/
|
|
41
|
+
private scheduleHideFlyout;
|
|
42
|
+
private cancelHideFlyout;
|
|
20
43
|
private hideFlyout;
|
|
21
44
|
update(state: WidgetState): void;
|
|
45
|
+
/** A sidebar button that is on or off (aria-pressed). */
|
|
46
|
+
private toggleButton;
|
|
22
47
|
private divider;
|
|
23
48
|
destroy(): void;
|
|
24
49
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WidgetDrawingSidebar.d.ts","sourceRoot":"","sources":["../../src/widget/WidgetDrawingSidebar.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"WidgetDrawingSidebar.d.ts","sourceRoot":"","sources":["../../src/widget/WidgetDrawingSidebar.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAE/E,OAAO,EAAuB,KAAK,UAAU,EAAE,MAAM,WAAW,CAAC;AAmBjE,qBAAa,oBAAoB;IAsB7B,OAAO,CAAC,QAAQ,CAAC,IAAI;IAGrB,OAAO,CAAC,QAAQ,CAAC,CAAC;IAxBpB,OAAO,CAAC,MAAM,CAAgB;IAC9B,OAAO,CAAC,SAAS,CAAmB;IACpC,OAAO,CAAC,EAAE,CAAiB;IAC3B,OAAO,CAAC,UAAU,CAAwB;IAC1C,OAAO,CAAC,YAAY,CAA2B;IAC/C,+FAA+F;IAC/F,OAAO,CAAC,UAAU,CAAyB;IAC3C,OAAO,CAAC,UAAU,CAAyB;IAC3C,OAAO,CAAC,SAAS,CAAkC;IACnD,OAAO,CAAC,SAAS,CAAkC;IACnD,OAAO,CAAC,SAAS,CAAkC;IACnD,OAAO,CAAC,OAAO,CAAkC;IACjD,OAAO,CAAC,OAAO,CAAkC;IACjD,OAAO,CAAC,QAAQ,CAA+B;IAC/C,OAAO,CAAC,SAAS,CAAM;IACvB,OAAO,CAAC,eAAe,CAA8C;IACrE,OAAO,CAAC,WAAW,CAA+B;IAClD,OAAO,CAAC,gBAAgB,CAA+B;IACvD,OAAO,CAAC,SAAS,CAAgB;gBAGd,IAAI,EAAE,WAAW,EAClC,MAAM,EAAE,aAAa,EACrB,SAAS,EAAE,gBAAgB,EACV,CAAC,GAAE,UAA0B;IAYhD,OAAO,CAAC,KAAK;IAuJb,qCAAqC;IACrC,YAAY,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,IAAI;IAKvC,OAAO,CAAC,eAAe;IAsBvB,OAAO,CAAC,UAAU;IAoElB,OAAO,CAAC,WAAW;IAInB,OAAO,CAAC,eAAe;IAMvB,uGAAuG;IACvG,OAAO,CAAC,WAAW;IAwBnB,mFAAmF;IACnF,OAAO,CAAC,WAAW;IAiBnB;;;OAGG;IACH,OAAO,CAAC,kBAAkB;IAQ1B,OAAO,CAAC,gBAAgB;IAMxB,OAAO,CAAC,UAAU;IAUlB,MAAM,CAAC,KAAK,EAAE,WAAW,GAAG,IAAI;IAiDhC,yDAAyD;IACzD,OAAO,CAAC,YAAY;IAWpB,OAAO,CAAC,OAAO;IAMf,OAAO,IAAI,IAAI;CAIhB"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { DrawingStyle } from '@tradecanvas/commons';
|
|
2
2
|
import { DrawingTemplateStore } from './DrawingTemplateStore.js';
|
|
3
|
+
import { Translator } from './i18n.js';
|
|
3
4
|
export interface DrawingStyleCallbacks {
|
|
4
5
|
/** Apply a style change to the active (next) drawing and the selected one. */
|
|
5
6
|
onStyleChange: (style: Partial<DrawingStyle>) => void;
|
|
@@ -12,13 +13,14 @@ export interface DrawingStyleCallbacks {
|
|
|
12
13
|
* persisted via `DrawingTemplateStore`.
|
|
13
14
|
*/
|
|
14
15
|
export declare class WidgetDrawingStyle {
|
|
16
|
+
private readonly t;
|
|
15
17
|
private el;
|
|
16
18
|
private templatesEl;
|
|
17
19
|
private nameInput;
|
|
18
20
|
private callbacks;
|
|
19
21
|
private store;
|
|
20
22
|
private open;
|
|
21
|
-
constructor(host: HTMLElement, callbacks: DrawingStyleCallbacks, store: DrawingTemplateStore);
|
|
23
|
+
constructor(host: HTMLElement, callbacks: DrawingStyleCallbacks, store: DrawingTemplateStore, t?: Translator);
|
|
22
24
|
isOpen(): boolean;
|
|
23
25
|
toggle(): void;
|
|
24
26
|
openPanel(): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WidgetDrawingStyle.d.ts","sourceRoot":"","sources":["../../src/widget/WidgetDrawingStyle.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAEzD,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;
|
|
1
|
+
{"version":3,"file":"WidgetDrawingStyle.d.ts","sourceRoot":"","sources":["../../src/widget/WidgetDrawingStyle.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAEzD,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AACjE,OAAO,EAAiB,KAAK,UAAU,EAAE,MAAM,WAAW,CAAC;AAG3D,MAAM,WAAW,qBAAqB;IACpC,8EAA8E;IAC9E,aAAa,EAAE,CAAC,KAAK,EAAE,OAAO,CAAC,YAAY,CAAC,KAAK,IAAI,CAAC;IACtD,+EAA+E;IAC/E,QAAQ,EAAE,MAAM,YAAY,CAAC;CAC9B;AAMD;;;;GAIG;AACH,qBAAa,kBAAkB;IAY3B,OAAO,CAAC,QAAQ,CAAC,CAAC;IAXpB,OAAO,CAAC,EAAE,CAAiB;IAC3B,OAAO,CAAC,WAAW,CAAiB;IACpC,OAAO,CAAC,SAAS,CAAmB;IACpC,OAAO,CAAC,SAAS,CAAwB;IACzC,OAAO,CAAC,KAAK,CAAuB;IACpC,OAAO,CAAC,IAAI,CAAS;gBAGnB,IAAI,EAAE,WAAW,EACjB,SAAS,EAAE,qBAAqB,EAChC,KAAK,EAAE,oBAAoB,EACV,CAAC,GAAE,UAA0B;IAwDhD,MAAM,IAAI,OAAO;IAIjB,MAAM,IAAI,IAAI;IAId,SAAS,IAAI,IAAI;IAOjB,KAAK,IAAI,IAAI;IAKb,OAAO,IAAI,IAAI;IAIf,OAAO,CAAC,QAAQ;IAqBhB,OAAO,CAAC,QAAQ;IAiBhB,OAAO,CAAC,YAAY;IAgBpB,OAAO,CAAC,UAAU;IAKlB,2DAA2D;IAC3D,OAAO,CAAC,kBAAkB;IAa1B,OAAO,CAAC,YAAY;IAQpB,OAAO,CAAC,eAAe;CA4CxB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WidgetDropdown.d.ts","sourceRoot":"","sources":["../../src/widget/WidgetDropdown.ts"],"names":[],"mappings":"AAAA,qBAAa,cAAc;IACzB,OAAO,CAAC,OAAO,CAAc;IAC7B,OAAO,CAAC,KAAK,CAAiB;IAC9B,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,cAAc,CAA0B;IAChD,OAAO,CAAC,WAAW,CAA6B;IAChD,OAAO,CAAC,cAAc,CAAa;gBAEvB,OAAO,EAAE,WAAW,EAAE,MAAM,GAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAA;KAAO;
|
|
1
|
+
{"version":3,"file":"WidgetDropdown.d.ts","sourceRoot":"","sources":["../../src/widget/WidgetDropdown.ts"],"names":[],"mappings":"AAAA,qBAAa,cAAc;IACzB,OAAO,CAAC,OAAO,CAAc;IAC7B,OAAO,CAAC,KAAK,CAAiB;IAC9B,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,cAAc,CAA0B;IAChD,OAAO,CAAC,WAAW,CAA6B;IAChD,OAAO,CAAC,cAAc,CAAa;gBAEvB,OAAO,EAAE,WAAW,EAAE,MAAM,GAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAA;KAAO;IA0C3F,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAI9B,IAAI,IAAI,IAAI;IAQZ,KAAK,IAAI,IAAI;IAQb,MAAM,IAAI,OAAO;IAIjB,OAAO,IAAI,IAAI;CAMhB"}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import { TimeZoneSetting } from '@tradecanvas/commons';
|
|
2
|
+
/**
|
|
3
|
+
* A wall-clock date ("2026-03-01") and time ("14:30", empty = midnight) in the
|
|
4
|
+
* display timezone (an IANA zone, minutes east of UTC, or null for the
|
|
5
|
+
* browser's) as a UTC timestamp. Null when the date or time is not valid.
|
|
6
|
+
*/
|
|
7
|
+
export declare function wallTimeToUtc(date: string, time: string, tz: TimeZoneSetting): number | null;
|
|
8
|
+
/** The date and time fields' values for `ts` in the display timezone. */
|
|
9
|
+
export declare function utcToWallTime(ts: number, tz: TimeZoneSetting): {
|
|
10
|
+
date: string;
|
|
11
|
+
time: string;
|
|
12
|
+
};
|
|
13
|
+
export interface GoToDateLabels {
|
|
14
|
+
title: string;
|
|
15
|
+
date: string;
|
|
16
|
+
time: string;
|
|
17
|
+
submit: string;
|
|
18
|
+
cancel: string;
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* "Go to date" popover: a date and an optional time. Enter submits, Escape or
|
|
22
|
+
* a click outside closes it, and focus returns to whatever opened it.
|
|
23
|
+
*/
|
|
24
|
+
export declare class WidgetGoToDate {
|
|
25
|
+
private readonly host;
|
|
26
|
+
private readonly labels;
|
|
27
|
+
private readonly onSubmit;
|
|
28
|
+
private form;
|
|
29
|
+
private returnFocus;
|
|
30
|
+
/** The button that opened it: pressing it again toggles, so it's not "outside". */
|
|
31
|
+
private opener;
|
|
32
|
+
private readonly onOutside;
|
|
33
|
+
constructor(host: HTMLElement, labels: GoToDateLabels, onSubmit: (value: {
|
|
34
|
+
date: string;
|
|
35
|
+
time: string;
|
|
36
|
+
}) => void);
|
|
37
|
+
isOpen(): boolean;
|
|
38
|
+
open(initial: {
|
|
39
|
+
date: string;
|
|
40
|
+
time: string;
|
|
41
|
+
}, opener?: Element | null): void;
|
|
42
|
+
close(): void;
|
|
43
|
+
destroy(): void;
|
|
44
|
+
private field;
|
|
45
|
+
}
|
|
46
|
+
//# sourceMappingURL=WidgetGoToDate.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"WidgetGoToDate.d.ts","sourceRoot":"","sources":["../../src/widget/WidgetGoToDate.ts"],"names":[],"mappings":"AAAA,OAAO,EAAwB,KAAK,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAKlF;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,eAAe,GAAG,MAAM,GAAG,IAAI,CAS5F;AAED,yEAAyE;AACzE,wBAAgB,aAAa,CAAC,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,eAAe,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAO7F;AAED,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;CAChB;AAED;;;GAGG;AACH,qBAAa,cAAc;IAWvB,OAAO,CAAC,QAAQ,CAAC,IAAI;IACrB,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,QAAQ;IAZ3B,OAAO,CAAC,IAAI,CAAgC;IAC5C,OAAO,CAAC,WAAW,CAA4B;IAC/C,mFAAmF;IACnF,OAAO,CAAC,MAAM,CAAwB;IACtC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAGxB;gBAGiB,IAAI,EAAE,WAAW,EACjB,MAAM,EAAE,cAAc,EACtB,QAAQ,EAAE,CAAC,KAAK,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,KAAK,IAAI;IAG5E,MAAM,IAAI,OAAO;IAIjB,IAAI,CAAC,OAAO,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,EAAE,MAAM,GAAE,OAAO,GAAG,IAAW,GAAG,IAAI;IAmDlF,KAAK,IAAI,IAAI;IAUb,OAAO,IAAI,IAAI;IAIf,OAAO,CAAC,KAAK;CAad"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { HistoryLoadPayload } from '@tradecanvas/commons';
|
|
2
|
+
/** How long a failed history page stays reported. */
|
|
3
|
+
export declare const HISTORY_ERROR_MS = 4000;
|
|
4
|
+
/**
|
|
5
|
+
* A small status pill at the left edge of the chart while older bars load
|
|
6
|
+
* (scrolling back in time), and briefly when a page fails.
|
|
7
|
+
*/
|
|
8
|
+
export declare class WidgetHistoryPill {
|
|
9
|
+
private readonly texts;
|
|
10
|
+
private readonly el;
|
|
11
|
+
private readonly text;
|
|
12
|
+
private hideTimer;
|
|
13
|
+
constructor(parent: HTMLElement, texts: {
|
|
14
|
+
loading: string;
|
|
15
|
+
failed: string;
|
|
16
|
+
});
|
|
17
|
+
update(payload: HistoryLoadPayload): void;
|
|
18
|
+
destroy(): void;
|
|
19
|
+
private show;
|
|
20
|
+
private hide;
|
|
21
|
+
private clearTimer;
|
|
22
|
+
}
|
|
23
|
+
//# sourceMappingURL=WidgetHistoryPill.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"WidgetHistoryPill.d.ts","sourceRoot":"","sources":["../../src/widget/WidgetHistoryPill.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAE/D,qDAAqD;AACrD,eAAO,MAAM,gBAAgB,OAAO,CAAC;AAErC;;;GAGG;AACH,qBAAa,iBAAiB;IAKK,OAAO,CAAC,QAAQ,CAAC,KAAK;IAJvD,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAiB;IACpC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAkB;IACvC,OAAO,CAAC,SAAS,CAA8C;gBAEnD,MAAM,EAAE,WAAW,EAAmB,KAAK,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE;IAc5F,MAAM,CAAC,OAAO,EAAE,kBAAkB,GAAG,IAAI;IAYzC,OAAO,IAAI,IAAI;IAKf,OAAO,CAAC,IAAI;IAOZ,OAAO,CAAC,IAAI;IAOZ,OAAO,CAAC,UAAU;CAInB"}
|
|
@@ -8,12 +8,14 @@ export interface HotkeySheetCallbacks {
|
|
|
8
8
|
onClose: () => void;
|
|
9
9
|
}
|
|
10
10
|
export declare class WidgetHotkeySheet {
|
|
11
|
+
private readonly host;
|
|
11
12
|
private backdrop;
|
|
12
13
|
private modal;
|
|
13
14
|
private callbacks;
|
|
14
15
|
private t;
|
|
15
16
|
private boundKeydown;
|
|
16
|
-
|
|
17
|
+
/** Where the overlay mounts (the widget's portal: themed, and inside it when fullscreen). */
|
|
18
|
+
constructor(callbacks: HotkeySheetCallbacks, t: Translator, host?: () => HTMLElement);
|
|
17
19
|
open(): void;
|
|
18
20
|
close(): void;
|
|
19
21
|
isOpen(): boolean;
|
|
@@ -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;AAExD;;;;GAIG;AACH,MAAM,WAAW,oBAAoB;IACnC,OAAO,EAAE,MAAM,IAAI,CAAC;CACrB;
|
|
1
|
+
{"version":3,"file":"WidgetHotkeySheet.d.ts","sourceRoot":"","sources":["../../src/widget/WidgetHotkeySheet.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAc,UAAU,EAAE,MAAM,WAAW,CAAC;AAExD;;;;GAIG;AACH,MAAM,WAAW,oBAAoB;IACnC,OAAO,EAAE,MAAM,IAAI,CAAC;CACrB;AAiGD,qBAAa,iBAAiB;IAW1B,OAAO,CAAC,QAAQ,CAAC,IAAI;IAVvB,OAAO,CAAC,QAAQ,CAA+B;IAC/C,OAAO,CAAC,KAAK,CAA+B;IAC5C,OAAO,CAAC,SAAS,CAAuB;IACxC,OAAO,CAAC,CAAC,CAAa;IACtB,OAAO,CAAC,YAAY,CAA6B;IAEjD,6FAA6F;gBAE3F,SAAS,EAAE,oBAAoB,EAC/B,CAAC,EAAE,UAAU,EACI,IAAI,GAAE,MAAM,WAAiC;IAYhE,IAAI,IAAI,IAAI;IA4FZ,KAAK,IAAI,IAAI;IASb,MAAM,IAAI,OAAO;IAIjB,OAAO,IAAI,IAAI;CAGhB"}
|
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
export interface IndicatorLegendRow {
|
|
2
|
+
instanceId: string;
|
|
3
|
+
/** "EMA 50", "MACD 12 26 9". */
|
|
4
|
+
label: string;
|
|
5
|
+
visible: boolean;
|
|
6
|
+
/** The values at the bar in view; `color` null = the neutral text colour. */
|
|
7
|
+
values: readonly {
|
|
8
|
+
text: string;
|
|
9
|
+
color: string | null;
|
|
10
|
+
}[];
|
|
11
|
+
/**
|
|
12
|
+
* Where the row sits inside its own pane (container px, `width` = the room
|
|
13
|
+
* it may take); null = stacked under the OHLCV legend.
|
|
14
|
+
*/
|
|
15
|
+
pane: {
|
|
16
|
+
x: number;
|
|
17
|
+
y: number;
|
|
18
|
+
width: number;
|
|
19
|
+
} | null;
|
|
20
|
+
}
|
|
21
|
+
/** An indicator pane, for the buttons at its top right. */
|
|
22
|
+
export interface IndicatorLegendPane {
|
|
23
|
+
/** The indicator whose pane it is. */
|
|
24
|
+
instanceId: string;
|
|
25
|
+
/** The pane's top right corner, inside the price axis (container px). */
|
|
26
|
+
x: number;
|
|
27
|
+
y: number;
|
|
28
|
+
/** For the buttons' names: "Collapse pane RSI 14". */
|
|
29
|
+
label: string;
|
|
30
|
+
collapsed: boolean;
|
|
31
|
+
maximized: boolean;
|
|
32
|
+
canMoveUp: boolean;
|
|
33
|
+
canMoveDown: boolean;
|
|
34
|
+
}
|
|
35
|
+
export type PaneAction = 'up' | 'down' | 'collapse' | 'expand' | 'maximize' | 'restore';
|
|
36
|
+
export interface IndicatorLegendCallbacks {
|
|
37
|
+
onToggleVisible: (instanceId: string, visible: boolean) => void;
|
|
38
|
+
onSettings: (instanceId: string) => void;
|
|
39
|
+
onRemove: (instanceId: string) => void;
|
|
40
|
+
/** The row's "more" button: a menu under `anchor` (move to another pane…). */
|
|
41
|
+
onMore?: (instanceId: string, anchor: HTMLElement) => void;
|
|
42
|
+
/** A pane's button: move it, fold it, maximise it. */
|
|
43
|
+
onPaneAction?: (instanceId: string, action: PaneAction) => void;
|
|
44
|
+
}
|
|
45
|
+
export interface IndicatorLegendLabels {
|
|
46
|
+
show: string;
|
|
47
|
+
hide: string;
|
|
48
|
+
settings: string;
|
|
49
|
+
remove: string;
|
|
50
|
+
collapse: string;
|
|
51
|
+
expand: string;
|
|
52
|
+
more?: string;
|
|
53
|
+
paneUp?: string;
|
|
54
|
+
paneDown?: string;
|
|
55
|
+
paneCollapse?: string;
|
|
56
|
+
paneExpand?: string;
|
|
57
|
+
paneMaximize?: string;
|
|
58
|
+
paneRestore?: string;
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* The indicators on the chart itself, instead of chips in the toolbar: price
|
|
62
|
+
* pane indicators stack under the OHLCV legend, pane indicators sit at the
|
|
63
|
+
* top of their pane. Each row reads "EMA 50 123.45" and, on hover or focus,
|
|
64
|
+
* offers show/hide, settings and remove. A long stack can be collapsed.
|
|
65
|
+
*
|
|
66
|
+
* `update()` is cheap to call every frame: rows are kept by instance id and
|
|
67
|
+
* only changed text and positions are written.
|
|
68
|
+
*/
|
|
69
|
+
export declare class WidgetIndicatorLegend {
|
|
70
|
+
private readonly host;
|
|
71
|
+
private readonly callbacks;
|
|
72
|
+
private readonly labels;
|
|
73
|
+
private readonly stack;
|
|
74
|
+
private readonly toggle;
|
|
75
|
+
private readonly rows;
|
|
76
|
+
private readonly panes;
|
|
77
|
+
private collapsed;
|
|
78
|
+
private toggleKey;
|
|
79
|
+
private stackKey;
|
|
80
|
+
constructor(host: HTMLElement, callbacks: IndicatorLegendCallbacks, labels: IndicatorLegendLabels);
|
|
81
|
+
update(rows: readonly IndicatorLegendRow[], overlay: {
|
|
82
|
+
left: number;
|
|
83
|
+
top: number;
|
|
84
|
+
}, panes?: readonly IndicatorLegendPane[]): void;
|
|
85
|
+
destroy(): void;
|
|
86
|
+
/** Each pane's buttons at its top right: move up, move down, fold, maximise. */
|
|
87
|
+
private updatePanes;
|
|
88
|
+
private createPane;
|
|
89
|
+
private createRow;
|
|
90
|
+
private fill;
|
|
91
|
+
/** Pane rows are placed in their pane; stacked rows flow in the stack. */
|
|
92
|
+
private place;
|
|
93
|
+
private setCollapsed;
|
|
94
|
+
private overlayCount;
|
|
95
|
+
/** Written only when something changed: `update()` runs every frame. */
|
|
96
|
+
private renderToggle;
|
|
97
|
+
}
|
|
98
|
+
//# sourceMappingURL=WidgetIndicatorLegend.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"WidgetIndicatorLegend.d.ts","sourceRoot":"","sources":["../../src/widget/WidgetIndicatorLegend.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
import { IndicatorInputSpec, IndicatorPlot } from '@tradecanvas/commons';
|
|
2
|
+
import { Translator } from './i18n.js';
|
|
1
3
|
export type IndicatorParamValue = number | string | boolean;
|
|
2
4
|
export interface IndicatorSettingsTarget {
|
|
3
5
|
instanceId: string;
|
|
@@ -6,37 +8,90 @@ export interface IndicatorSettingsTarget {
|
|
|
6
8
|
defaults: Record<string, unknown>;
|
|
7
9
|
/** Current values, overlaid on defaults. */
|
|
8
10
|
params: Record<string, unknown>;
|
|
11
|
+
/** How parameters are edited (the descriptor's `inputs`). */
|
|
12
|
+
inputs?: Readonly<Record<string, IndicatorInputSpec>>;
|
|
13
|
+
/** Other indicators' lines a source can be: value `ind:<instanceId>:<key>`. */
|
|
14
|
+
lineSources?: readonly {
|
|
15
|
+
value: string;
|
|
16
|
+
label: string;
|
|
17
|
+
}[];
|
|
18
|
+
/** What it draws; with `colors`, the Style tab. */
|
|
19
|
+
plots?: readonly IndicatorPlot[];
|
|
20
|
+
colors?: readonly string[];
|
|
21
|
+
lineWidth?: number;
|
|
22
|
+
/** Its levels and its indicator's defaults; with them, the Levels tab. */
|
|
23
|
+
levels?: readonly number[];
|
|
24
|
+
defaultLevels?: readonly number[];
|
|
25
|
+
/** The price scale an overlay is on; set only for price-pane overlays. */
|
|
26
|
+
scale?: 'right' | 'left';
|
|
9
27
|
}
|
|
10
28
|
export interface IndicatorSettingsCallbacks {
|
|
11
29
|
onApply: (instanceId: string, params: Record<string, IndicatorParamValue>) => void;
|
|
30
|
+
onStyle?: (instanceId: string, style: {
|
|
31
|
+
colors?: string[];
|
|
32
|
+
lineWidths?: number[];
|
|
33
|
+
}) => void;
|
|
34
|
+
/** `null` restores the indicator's default levels. */
|
|
35
|
+
onLevels?: (instanceId: string, levels: number[] | null) => void;
|
|
36
|
+
/** Move an overlay to the left price scale or back to the price scale. */
|
|
37
|
+
onScale?: (instanceId: string, scale: 'right' | 'left') => void;
|
|
12
38
|
onClose: () => void;
|
|
13
39
|
}
|
|
14
40
|
/**
|
|
15
|
-
* Per-indicator
|
|
16
|
-
*
|
|
17
|
-
*
|
|
41
|
+
* Per-indicator settings: its inputs (a stepper, toggle, colour, choice or
|
|
42
|
+
* source for each parameter), its style (a colour per line, the line width)
|
|
43
|
+
* and its levels. Every edit applies at once.
|
|
18
44
|
*/
|
|
19
45
|
export declare class WidgetIndicatorSettings {
|
|
20
46
|
private backdrop;
|
|
21
47
|
private modal;
|
|
22
48
|
private bodyEl;
|
|
23
49
|
private titleEl;
|
|
50
|
+
private tabsEl;
|
|
51
|
+
private resetBtn;
|
|
24
52
|
private callbacks;
|
|
25
53
|
private target;
|
|
26
54
|
private draft;
|
|
27
|
-
|
|
55
|
+
private colors;
|
|
56
|
+
private levels;
|
|
57
|
+
private tab;
|
|
58
|
+
private tabButtons;
|
|
59
|
+
private returnFocus;
|
|
60
|
+
private readonly uid;
|
|
61
|
+
private readonly t;
|
|
62
|
+
constructor(host: HTMLElement, callbacks: IndicatorSettingsCallbacks, t?: Translator);
|
|
28
63
|
open(target: IndicatorSettingsTarget): void;
|
|
29
64
|
close(): void;
|
|
30
65
|
isOpen(): boolean;
|
|
31
66
|
destroy(): void;
|
|
67
|
+
private tabs;
|
|
68
|
+
/** The tab buttons for this indicator; built on open, then only marked (focus stays put). */
|
|
69
|
+
private renderTabs;
|
|
70
|
+
private markTabs;
|
|
71
|
+
private selectTab;
|
|
72
|
+
/** Arrow keys, Home and End move between tabs. */
|
|
73
|
+
private onTabKey;
|
|
74
|
+
/** Escape closes; Tab stays inside the dialog. */
|
|
75
|
+
private onKeyDown;
|
|
76
|
+
private renderBody;
|
|
32
77
|
private currentValue;
|
|
33
78
|
private setValue;
|
|
34
|
-
private
|
|
35
|
-
private renderFields;
|
|
79
|
+
private renderInputs;
|
|
36
80
|
private fieldRow;
|
|
81
|
+
private sourceControl;
|
|
82
|
+
private choiceControl;
|
|
37
83
|
private toggleControl;
|
|
38
84
|
private numberControl;
|
|
39
|
-
private colorControl;
|
|
40
85
|
private textControl;
|
|
86
|
+
/** One row per colour the indicator uses: the lines drawn in it, and "up" / "down" for two-tone ones. */
|
|
87
|
+
private renderStyle;
|
|
88
|
+
private renderLevels;
|
|
89
|
+
private applyLevels;
|
|
90
|
+
private resetTab;
|
|
91
|
+
/** A labelled control: clicking the label reaches the control. */
|
|
92
|
+
private row;
|
|
93
|
+
private note;
|
|
94
|
+
private option;
|
|
95
|
+
private colorInput;
|
|
41
96
|
}
|
|
42
97
|
//# sourceMappingURL=WidgetIndicatorSettings.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WidgetIndicatorSettings.d.ts","sourceRoot":"","sources":["../../src/widget/WidgetIndicatorSettings.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"WidgetIndicatorSettings.d.ts","sourceRoot":"","sources":["../../src/widget/WidgetIndicatorSettings.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { TimeFrame } from '@tradecanvas/commons';
|
|
2
|
+
export interface IntervalInputLabels {
|
|
3
|
+
/** The field's name: "Change interval". */
|
|
4
|
+
title: string;
|
|
5
|
+
/** Under it: "5, 15m, 1h, 1D — Enter to apply". */
|
|
6
|
+
hint: string;
|
|
7
|
+
/** When the text isn't an interval the chart can show. */
|
|
8
|
+
invalid: string;
|
|
9
|
+
}
|
|
10
|
+
/**
|
|
11
|
+
* Typing a number on the chart opens this: the interval typed so far, in a
|
|
12
|
+
* small field over the chart. Enter switches to it, Escape or leaving it
|
|
13
|
+
* closes it.
|
|
14
|
+
*/
|
|
15
|
+
export declare class WidgetIntervalInput {
|
|
16
|
+
private readonly labels;
|
|
17
|
+
/** Switch to `tf`; false when the chart can't show it. */
|
|
18
|
+
private readonly onApply;
|
|
19
|
+
private el;
|
|
20
|
+
private input;
|
|
21
|
+
private hint;
|
|
22
|
+
private returnFocus;
|
|
23
|
+
constructor(host: HTMLElement, labels: IntervalInputLabels,
|
|
24
|
+
/** Switch to `tf`; false when the chart can't show it. */
|
|
25
|
+
onApply: (tf: TimeFrame) => boolean);
|
|
26
|
+
/** Open with what was typed so far (the first digit). */
|
|
27
|
+
open(text: string): void;
|
|
28
|
+
close(restoreFocus?: boolean): void;
|
|
29
|
+
isOpen(): boolean;
|
|
30
|
+
destroy(): void;
|
|
31
|
+
private check;
|
|
32
|
+
private apply;
|
|
33
|
+
}
|
|
34
|
+
//# sourceMappingURL=WidgetIntervalInput.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"WidgetIntervalInput.d.ts","sourceRoot":"","sources":["../../src/widget/WidgetIntervalInput.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAGtD,MAAM,WAAW,mBAAmB;IAClC,2CAA2C;IAC3C,KAAK,EAAE,MAAM,CAAC;IACd,mDAAmD;IACnD,IAAI,EAAE,MAAM,CAAC;IACb,0DAA0D;IAC1D,OAAO,EAAE,MAAM,CAAC;CACjB;AAID;;;;GAIG;AACH,qBAAa,mBAAmB;IAQ5B,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,0DAA0D;IAC1D,OAAO,CAAC,QAAQ,CAAC,OAAO;IAT1B,OAAO,CAAC,EAAE,CAAiB;IAC3B,OAAO,CAAC,KAAK,CAAmB;IAChC,OAAO,CAAC,IAAI,CAAiB;IAC7B,OAAO,CAAC,WAAW,CAA4B;gBAG7C,IAAI,EAAE,WAAW,EACA,MAAM,EAAE,mBAAmB;IAC5C,0DAA0D;IACzC,OAAO,EAAE,CAAC,EAAE,EAAE,SAAS,KAAK,OAAO;IAsCtD,yDAAyD;IACzD,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IASxB,KAAK,CAAC,YAAY,UAAO,GAAG,IAAI;IAQhC,MAAM,IAAI,OAAO;IAIjB,OAAO,IAAI,IAAI;IAIf,OAAO,CAAC,KAAK;IAOb,OAAO,CAAC,KAAK;CASd"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import { Translator } from './i18n.js';
|
|
2
|
+
import { SavedLayoutSummary } from '../state/layoutStorage.js';
|
|
3
|
+
export interface LayoutsDialogCallbacks {
|
|
4
|
+
list: () => Promise<SavedLayoutSummary[]>;
|
|
5
|
+
/** The id of the layout showing now. */
|
|
6
|
+
currentId: () => string | null;
|
|
7
|
+
onOpen: (id: string) => void;
|
|
8
|
+
onRename: (layout: SavedLayoutSummary) => void;
|
|
9
|
+
onDelete: (id: string) => Promise<void>;
|
|
10
|
+
formatTime: (ms: number) => string;
|
|
11
|
+
}
|
|
12
|
+
/** Every saved layout, searchable: open one, rename it or delete it (asked twice). */
|
|
13
|
+
export declare class WidgetLayoutsDialog {
|
|
14
|
+
private readonly callbacks;
|
|
15
|
+
private readonly t;
|
|
16
|
+
private backdrop;
|
|
17
|
+
private search;
|
|
18
|
+
private listEl;
|
|
19
|
+
private layouts;
|
|
20
|
+
private confirming;
|
|
21
|
+
private returnFocus;
|
|
22
|
+
private loadSeq;
|
|
23
|
+
private readonly uid;
|
|
24
|
+
constructor(host: HTMLElement, callbacks: LayoutsDialogCallbacks, t?: Translator);
|
|
25
|
+
open(): Promise<void>;
|
|
26
|
+
/** Read the list again (after a rename, say). */
|
|
27
|
+
refresh(): Promise<void>;
|
|
28
|
+
close(): void;
|
|
29
|
+
isOpen(): boolean;
|
|
30
|
+
destroy(): void;
|
|
31
|
+
private shown;
|
|
32
|
+
private render;
|
|
33
|
+
private row;
|
|
34
|
+
private iconButton;
|
|
35
|
+
/** Ask before deleting; focus follows to the button that asks (or back). */
|
|
36
|
+
private setConfirming;
|
|
37
|
+
private remove;
|
|
38
|
+
}
|
|
39
|
+
//# sourceMappingURL=WidgetLayoutsDialog.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"WidgetLayoutsDialog.d.ts","sourceRoot":"","sources":["../../src/widget/WidgetLayoutsDialog.ts"],"names":[],"mappings":"AACA,OAAO,EAAuB,KAAK,UAAU,EAAE,MAAM,WAAW,CAAC;AACjE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAGpE,MAAM,WAAW,sBAAsB;IACrC,IAAI,EAAE,MAAM,OAAO,CAAC,kBAAkB,EAAE,CAAC,CAAC;IAC1C,wCAAwC;IACxC,SAAS,EAAE,MAAM,MAAM,GAAG,IAAI,CAAC;IAC/B,MAAM,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;IAC7B,QAAQ,EAAE,CAAC,MAAM,EAAE,kBAAkB,KAAK,IAAI,CAAC;IAC/C,QAAQ,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACxC,UAAU,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,MAAM,CAAC;CACpC;AAID,sFAAsF;AACtF,qBAAa,mBAAmB;IAUC,OAAO,CAAC,QAAQ,CAAC,SAAS;IAA0B,OAAO,CAAC,QAAQ,CAAC,CAAC;IATrG,OAAO,CAAC,QAAQ,CAAiB;IACjC,OAAO,CAAC,MAAM,CAAmB;IACjC,OAAO,CAAC,MAAM,CAAiB;IAC/B,OAAO,CAAC,OAAO,CAA4B;IAC3C,OAAO,CAAC,UAAU,CAAuB;IACzC,OAAO,CAAC,WAAW,CAA4B;IAC/C,OAAO,CAAC,OAAO,CAAK;IACpB,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAe;gBAEvB,IAAI,EAAE,WAAW,EAAmB,SAAS,EAAE,sBAAsB,EAAmB,CAAC,GAAE,UAA0B;IA0D3H,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAS3B,iDAAiD;IAC3C,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAa9B,KAAK,IAAI,IAAI;IAQb,MAAM,IAAI,OAAO;IAIjB,OAAO,IAAI,IAAI;IAKf,OAAO,CAAC,KAAK;IAMb,OAAO,CAAC,MAAM;IAad,OAAO,CAAC,GAAG;IAoDX,OAAO,CAAC,UAAU;IAWlB,4EAA4E;IAC5E,OAAO,CAAC,aAAa;YAUP,MAAM;CASrB"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import { Translator } from './i18n.js';
|
|
2
|
+
import { LayoutSession } from '../state/LayoutSession.js';
|
|
3
|
+
import { SavedLayoutSummary } from '../state/layoutStorage.js';
|
|
4
|
+
export interface LayoutsUIHost {
|
|
5
|
+
/** Where the menu, the name prompt and the dialog live. */
|
|
6
|
+
root: HTMLElement;
|
|
7
|
+
t: Translator;
|
|
8
|
+
toast: (message: string, kind?: 'info' | 'error') => void;
|
|
9
|
+
formatTime: (ms: number) => string;
|
|
10
|
+
}
|
|
11
|
+
/**
|
|
12
|
+
* The named-layouts controls over a {@link LayoutSession}: the menu under the
|
|
13
|
+
* layouts button (save, save as, rename, auto-save, the latest layouts, open
|
|
14
|
+
* another), the name prompt and the list of every layout. Failures are told
|
|
15
|
+
* in a toast.
|
|
16
|
+
*/
|
|
17
|
+
export declare class WidgetLayoutsUI {
|
|
18
|
+
private readonly session;
|
|
19
|
+
private readonly host;
|
|
20
|
+
private readonly menu;
|
|
21
|
+
private readonly prompt;
|
|
22
|
+
private readonly dialog;
|
|
23
|
+
private destroyed;
|
|
24
|
+
constructor(session: LayoutSession, host: LayoutsUIHost);
|
|
25
|
+
/** Save into the open layout, or ask for a name when there is none. */
|
|
26
|
+
save(): Promise<void>;
|
|
27
|
+
/** Open a saved layout by id; `false` (and a toast) when it could not be. */
|
|
28
|
+
open(id: string): Promise<boolean>;
|
|
29
|
+
promptSaveAs(): void;
|
|
30
|
+
promptRename(layout?: SavedLayoutSummary | null): void;
|
|
31
|
+
/** Every layout, to open, rename or delete. */
|
|
32
|
+
openDialog(): Promise<void>;
|
|
33
|
+
/** The layouts menu under `anchor` (a second press closes it). */
|
|
34
|
+
openMenu(anchor: HTMLElement): Promise<void>;
|
|
35
|
+
destroy(): void;
|
|
36
|
+
}
|
|
37
|
+
//# sourceMappingURL=WidgetLayoutsUI.d.ts.map
|
|
@@ -0,0 +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;CACpC;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;IAsClD,OAAO,IAAI,IAAI;CAMhB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WidgetLoadingOverlay.d.ts","sourceRoot":"","sources":["../../src/widget/WidgetLoadingOverlay.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,eAAO,MAAM,qBAAqB,MAAM,CAAC;AAkBzC;;;;;;;;;;GAUG;AACH,qBAAa,oBAAoB;IAOE,OAAO,CAAC,QAAQ,CAAC,WAAW;IAN7D,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAiB;IACpC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAiB;IACvC,OAAO,CAAC,SAAS,CAA8C;IAE/D,OAAO,CAAC,KAAK,CAA4C;gBAE7C,MAAM,EAAE,WAAW,EAAmB,WAAW,EAAE,MAAM;
|
|
1
|
+
{"version":3,"file":"WidgetLoadingOverlay.d.ts","sourceRoot":"","sources":["../../src/widget/WidgetLoadingOverlay.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,eAAO,MAAM,qBAAqB,MAAM,CAAC;AAkBzC;;;;;;;;;;GAUG;AACH,qBAAa,oBAAoB;IAOE,OAAO,CAAC,QAAQ,CAAC,WAAW;IAN7D,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAiB;IACpC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAiB;IACvC,OAAO,CAAC,SAAS,CAA8C;IAE/D,OAAO,CAAC,KAAK,CAA4C;gBAE7C,MAAM,EAAE,WAAW,EAAmB,WAAW,EAAE,MAAM;IA0CrE;;;OAGG;IACH,KAAK,CAAC,UAAU,EAAE,OAAO,EAAE,SAAS,UAAQ,GAAG,IAAI;IAgBnD,8EAA8E;IAC9E,GAAG,IAAI,IAAI;IAMX,wEAAwE;IACxE,IAAI,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAS3B,8EAA8E;IAC9E,QAAQ,IAAI,OAAO;IAInB,iEAAiE;IACjE,SAAS,IAAI,OAAO;IAIpB,uDAAuD;IACvD,OAAO,IAAI,OAAO;IAIlB,OAAO,IAAI,IAAI;IAKf,OAAO,CAAC,UAAU;CAMnB"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { Translator } from './i18n.js';
|
|
2
|
+
export interface NamePromptRequest {
|
|
3
|
+
title: string;
|
|
4
|
+
/** The name to start from (a rename), selected. */
|
|
5
|
+
value?: string;
|
|
6
|
+
submitLabel: string;
|
|
7
|
+
/** Example text in the empty field (default: a layout's). */
|
|
8
|
+
placeholder?: string;
|
|
9
|
+
/** Resolves when done; a rejection keeps the prompt open. */
|
|
10
|
+
onSubmit: (name: string) => void | Promise<void>;
|
|
11
|
+
}
|
|
12
|
+
/** A small dialog asking for a name (save a layout as, rename one). */
|
|
13
|
+
export declare class WidgetNamePrompt {
|
|
14
|
+
private readonly t;
|
|
15
|
+
private backdrop;
|
|
16
|
+
private titleEl;
|
|
17
|
+
private input;
|
|
18
|
+
private submit;
|
|
19
|
+
private request;
|
|
20
|
+
private returnFocus;
|
|
21
|
+
private busy;
|
|
22
|
+
private readonly uid;
|
|
23
|
+
constructor(host: HTMLElement, t?: Translator);
|
|
24
|
+
open(request: NamePromptRequest): void;
|
|
25
|
+
close(): void;
|
|
26
|
+
isOpen(): boolean;
|
|
27
|
+
destroy(): void;
|
|
28
|
+
private check;
|
|
29
|
+
private done;
|
|
30
|
+
}
|
|
31
|
+
//# sourceMappingURL=WidgetNamePrompt.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"WidgetNamePrompt.d.ts","sourceRoot":"","sources":["../../src/widget/WidgetNamePrompt.ts"],"names":[],"mappings":"AACA,OAAO,EAAiB,KAAK,UAAU,EAAE,MAAM,WAAW,CAAC;AAI3D,MAAM,WAAW,iBAAiB;IAChC,KAAK,EAAE,MAAM,CAAC;IACd,mDAAmD;IACnD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;IACpB,6DAA6D;IAC7D,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,6DAA6D;IAC7D,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAClD;AAID,uEAAuE;AACvE,qBAAa,gBAAgB;IAUI,OAAO,CAAC,QAAQ,CAAC,CAAC;IATjD,OAAO,CAAC,QAAQ,CAAiB;IACjC,OAAO,CAAC,OAAO,CAAqB;IACpC,OAAO,CAAC,KAAK,CAAmB;IAChC,OAAO,CAAC,MAAM,CAAoB;IAClC,OAAO,CAAC,OAAO,CAAkC;IACjD,OAAO,CAAC,WAAW,CAA4B;IAC/C,OAAO,CAAC,IAAI,CAAS;IACrB,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAe;gBAEvB,IAAI,EAAE,WAAW,EAAmB,CAAC,GAAE,UAA0B;IA4E7E,IAAI,CAAC,OAAO,EAAE,iBAAiB,GAAG,IAAI;IActC,KAAK,IAAI,IAAI;IAQb,MAAM,IAAI,OAAO;IAIjB,OAAO,IAAI,IAAI;IAKf,OAAO,CAAC,KAAK;YAIC,IAAI;CAgBnB"}
|