@tradecanvas/chart 1.32.0 → 1.36.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.
Files changed (117) hide show
  1. package/README.md +4 -4
  2. package/dist/Chart.d.ts +39 -1
  3. package/dist/Chart.d.ts.map +1 -1
  4. package/dist/{LayoutSession-B8vZsDaL.js → LayoutSession-C9eUKUDB.js} +383 -336
  5. package/dist/LayoutSession-C9eUKUDB.js.map +1 -0
  6. package/dist/LayoutSession-D_uCeAHr.cjs +2 -0
  7. package/dist/LayoutSession-D_uCeAHr.cjs.map +1 -0
  8. package/dist/{i18n-BPt_Qbx8.js → i18n-BSyBRGty.js} +104 -18
  9. package/dist/i18n-BSyBRGty.js.map +1 -0
  10. package/dist/i18n-Bj6tLaRp.cjs +2 -0
  11. package/dist/i18n-Bj6tLaRp.cjs.map +1 -0
  12. package/dist/index.cjs +1 -1
  13. package/dist/index.d.ts +2 -2
  14. package/dist/index.d.ts.map +1 -1
  15. package/dist/index.js +53 -53
  16. package/dist/widget/ChartWidget.d.ts +52 -8
  17. package/dist/widget/ChartWidget.d.ts.map +1 -1
  18. package/dist/widget/WidgetChartNav.d.ts +9 -2
  19. package/dist/widget/WidgetChartNav.d.ts.map +1 -1
  20. package/dist/widget/WidgetContextMenu.d.ts +10 -2
  21. package/dist/widget/WidgetContextMenu.d.ts.map +1 -1
  22. package/dist/widget/WidgetDepthLadder.d.ts +2 -0
  23. package/dist/widget/WidgetDepthLadder.d.ts.map +1 -1
  24. package/dist/widget/WidgetDrawingSidebar.d.ts +9 -0
  25. package/dist/widget/WidgetDrawingSidebar.d.ts.map +1 -1
  26. package/dist/widget/WidgetIndicatorLegend.d.ts +4 -0
  27. package/dist/widget/WidgetIndicatorLegend.d.ts.map +1 -1
  28. package/dist/widget/WidgetIndicatorPicker.d.ts +96 -0
  29. package/dist/widget/WidgetIndicatorPicker.d.ts.map +1 -0
  30. package/dist/widget/WidgetIndicatorSettings.d.ts +51 -23
  31. package/dist/widget/WidgetIndicatorSettings.d.ts.map +1 -1
  32. package/dist/widget/WidgetNamePrompt.d.ts.map +1 -1
  33. package/dist/widget/WidgetSelectionToolbar.d.ts +6 -1
  34. package/dist/widget/WidgetSelectionToolbar.d.ts.map +1 -1
  35. package/dist/widget/WidgetSettings.d.ts +43 -20
  36. package/dist/widget/WidgetSettings.d.ts.map +1 -1
  37. package/dist/widget/WidgetStatusBar.d.ts +63 -4
  38. package/dist/widget/WidgetStatusBar.d.ts.map +1 -1
  39. package/dist/widget/WidgetStyles.d.ts.map +1 -1
  40. package/dist/widget/WidgetToolbar.d.ts +9 -11
  41. package/dist/widget/WidgetToolbar.d.ts.map +1 -1
  42. package/dist/widget/WidgetTradeMenu.d.ts +29 -0
  43. package/dist/widget/WidgetTradeMenu.d.ts.map +1 -0
  44. package/dist/widget/chartTemplates.d.ts +26 -0
  45. package/dist/widget/chartTemplates.d.ts.map +1 -0
  46. package/dist/widget/drawingHotkeys.d.ts +6 -0
  47. package/dist/widget/drawingHotkeys.d.ts.map +1 -0
  48. package/dist/widget/focusTrap.d.ts +5 -2
  49. package/dist/widget/focusTrap.d.ts.map +1 -1
  50. package/dist/widget/index.cjs +940 -231
  51. package/dist/widget/index.cjs.map +1 -1
  52. package/dist/widget/index.js +3005 -2470
  53. package/dist/widget/index.js.map +1 -1
  54. package/dist/widget/indicatorDefaults.d.ts +18 -0
  55. package/dist/widget/indicatorDefaults.d.ts.map +1 -0
  56. package/dist/widget/indicatorSearch.d.ts +13 -0
  57. package/dist/widget/indicatorSearch.d.ts.map +1 -0
  58. package/dist/widget/indicatorSettingsTabs.d.ts +32 -0
  59. package/dist/widget/indicatorSettingsTabs.d.ts.map +1 -0
  60. package/dist/widget/locales/ar.d.ts.map +1 -1
  61. package/dist/widget/locales/cs.d.ts.map +1 -1
  62. package/dist/widget/locales/da.d.ts.map +1 -1
  63. package/dist/widget/locales/de.d.ts.map +1 -1
  64. package/dist/widget/locales/el.d.ts.map +1 -1
  65. package/dist/widget/locales/en.d.ts +50 -7
  66. package/dist/widget/locales/en.d.ts.map +1 -1
  67. package/dist/widget/locales/es.d.ts.map +1 -1
  68. package/dist/widget/locales/et.d.ts.map +1 -1
  69. package/dist/widget/locales/fa.d.ts.map +1 -1
  70. package/dist/widget/locales/fr.d.ts.map +1 -1
  71. package/dist/widget/locales/he.d.ts.map +1 -1
  72. package/dist/widget/locales/hu.d.ts.map +1 -1
  73. package/dist/widget/locales/id.d.ts.map +1 -1
  74. package/dist/widget/locales/index.cjs +1 -1
  75. package/dist/widget/locales/index.cjs.map +1 -1
  76. package/dist/widget/locales/index.js +1373 -169
  77. package/dist/widget/locales/index.js.map +1 -1
  78. package/dist/widget/locales/it.d.ts.map +1 -1
  79. package/dist/widget/locales/ja.d.ts.map +1 -1
  80. package/dist/widget/locales/ko.d.ts.map +1 -1
  81. package/dist/widget/locales/ms.d.ts.map +1 -1
  82. package/dist/widget/locales/nb.d.ts.map +1 -1
  83. package/dist/widget/locales/nl.d.ts.map +1 -1
  84. package/dist/widget/locales/pl.d.ts.map +1 -1
  85. package/dist/widget/locales/pt.d.ts.map +1 -1
  86. package/dist/widget/locales/ro.d.ts.map +1 -1
  87. package/dist/widget/locales/ru.d.ts.map +1 -1
  88. package/dist/widget/locales/sk.d.ts.map +1 -1
  89. package/dist/widget/locales/sv.d.ts.map +1 -1
  90. package/dist/widget/locales/th.d.ts.map +1 -1
  91. package/dist/widget/locales/tr.d.ts.map +1 -1
  92. package/dist/widget/locales/vi.d.ts.map +1 -1
  93. package/dist/widget/locales/zh.d.ts.map +1 -1
  94. package/dist/widget/locales/zhHant.d.ts.map +1 -1
  95. package/dist/widget/settingsRows.d.ts +31 -0
  96. package/dist/widget/settingsRows.d.ts.map +1 -0
  97. package/dist/widget/symbolInfoView.d.ts +59 -0
  98. package/dist/widget/symbolInfoView.d.ts.map +1 -0
  99. package/dist/widget/types.d.ts +30 -17
  100. package/dist/widget/types.d.ts.map +1 -1
  101. package/dist/widget/widgetConfig.d.ts +1 -3
  102. package/dist/widget/widgetConfig.d.ts.map +1 -1
  103. package/dist/widget/widgetFeatures.d.ts +1 -1
  104. package/dist/widget/widgetFeatures.d.ts.map +1 -1
  105. package/dist/widget/widgetSettingsLook.d.ts +11 -2
  106. package/dist/widget/widgetSettingsLook.d.ts.map +1 -1
  107. package/dist/widget/widgetTimeframes.d.ts +9 -0
  108. package/dist/widget/widgetTimeframes.d.ts.map +1 -1
  109. package/dist/widget/widgetUI.d.ts +6 -9
  110. package/dist/widget/widgetUI.d.ts.map +1 -1
  111. package/package.json +3 -3
  112. package/dist/LayoutSession-B8vZsDaL.js.map +0 -1
  113. package/dist/LayoutSession-Du0WuDJi.cjs +0 -2
  114. package/dist/LayoutSession-Du0WuDJi.cjs.map +0 -1
  115. package/dist/i18n-BPt_Qbx8.js.map +0 -1
  116. package/dist/i18n-DWtAiG7D.cjs +0 -2
  117. package/dist/i18n-DWtAiG7D.cjs.map +0 -1
@@ -50,6 +50,11 @@ export declare class WidgetSelectionToolbar {
50
50
  private built;
51
51
  private size;
52
52
  private openPop;
53
+ /** Where the user dragged the toolbar (root px): it stays there, for every drawing, until the grip is double-clicked. */
54
+ private pinned;
55
+ private drag;
56
+ private readonly onDragMove;
57
+ private readonly onDragEnd;
53
58
  private readonly onDocDown;
54
59
  constructor(host: HTMLElement, callbacks: SelectionToolbarCallbacks, t?: Translator);
55
60
  isOpen(): boolean;
@@ -60,7 +65,7 @@ export declare class WidgetSelectionToolbar {
60
65
  private buttons;
61
66
  /** Make `button` the toolbar's one tab stop, focusing it when asked. */
62
67
  private rove;
63
- /** Over the selection, centred on it; under it when there is no room above. */
68
+ /** Over the selection, centred on it; under it when there is no room above; where the user dropped it, once dragged. */
64
69
  private place;
65
70
  private onClick;
66
71
  /** Arrow keys, Home and End move along the toolbar, as a toolbar's should. */
@@ -1 +1 @@
1
- {"version":3,"file":"WidgetSelectionToolbar.d.ts","sourceRoot":"","sources":["../../src/widget/WidgetSelectionToolbar.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAEzD,OAAO,EAAiB,KAAK,UAAU,EAAE,MAAM,WAAW,CAAC;AAI3D,yDAAyD;AACzD,MAAM,WAAW,sBAAsB;IACrC,kEAAkE;IAClE,IAAI,EAAE;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IAC9D,iEAAiE;IACjE,MAAM,EAAE;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IAChE,yDAAyD;IACzD,KAAK,EAAE,YAAY,CAAC;IACpB,6EAA6E;IAC7E,MAAM,EAAE,OAAO,CAAC;IAChB,4DAA4D;IAC5D,SAAS,EAAE,OAAO,CAAC;IACnB,WAAW,EAAE,OAAO,CAAC;IACrB,QAAQ,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,WAAW,yBAAyB;IACxC,OAAO,EAAE,CAAC,KAAK,EAAE,OAAO,CAAC,IAAI,CAAC,YAAY,EAAE,OAAO,GAAG,WAAW,GAAG,WAAW,CAAC,CAAC,KAAK,IAAI,CAAC;IAC3F,UAAU,EAAE,MAAM,IAAI,CAAC;IACvB,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,MAAM,EAAE,CAAC,MAAM,EAAE,OAAO,KAAK,IAAI,CAAC;IAClC,qEAAqE;IACrE,MAAM,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;IACvC,QAAQ,EAAE,MAAM,IAAI,CAAC;CACtB;AA6BD;;;;GAIG;AACH,qBAAa,sBAAsB;IAa/B,OAAO,CAAC,QAAQ,CAAC,IAAI;IACrB,OAAO,CAAC,QAAQ,CAAC,SAAS;IAC1B,OAAO,CAAC,QAAQ,CAAC,CAAC;IAdpB,OAAO,CAAC,EAAE,CAAiB;IAC3B,OAAO,CAAC,GAAG,CAAiB;IAC5B,OAAO,CAAC,MAAM,CAAuC;IACrD,6CAA6C;IAC7C,OAAO,CAAC,KAAK,CAAM;IACnB,OAAO,CAAC,IAAI,CAAyC;IACrD,OAAO,CAAC,OAAO,CAAoB;IACnC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAExB;gBAGiB,IAAI,EAAE,WAAW,EACjB,SAAS,EAAE,yBAAyB,EACpC,CAAC,GAAE,UAA0B;IAqBhD,MAAM,IAAI,OAAO;IAIjB,IAAI,CAAC,MAAM,EAAE,sBAAsB,GAAG,IAAI;IAgB1C,IAAI,IAAI,IAAI;IAMZ,OAAO,IAAI,IAAI;IAMf,OAAO,CAAC,MAAM;IA8Bd,OAAO,CAAC,OAAO;IAIf,wEAAwE;IACxE,OAAO,CAAC,IAAI;IAKZ,+EAA+E;IAC/E,OAAO,CAAC,KAAK;IAYb,OAAO,CAAC,OAAO;IAsBf,8EAA8E;IAC9E,OAAO,CAAC,KAAK;IAmBb,OAAO,CAAC,WAAW;IA2BnB,sGAAsG;IACtG,OAAO,CAAC,QAAQ;IAiBhB,OAAO,CAAC,QAAQ;IAOhB,OAAO,CAAC,MAAM;IASd,OAAO,CAAC,QAAQ;CAQjB"}
1
+ {"version":3,"file":"WidgetSelectionToolbar.d.ts","sourceRoot":"","sources":["../../src/widget/WidgetSelectionToolbar.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAEzD,OAAO,EAAiB,KAAK,UAAU,EAAE,MAAM,WAAW,CAAC;AAI3D,yDAAyD;AACzD,MAAM,WAAW,sBAAsB;IACrC,kEAAkE;IAClE,IAAI,EAAE;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IAC9D,iEAAiE;IACjE,MAAM,EAAE;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IAChE,yDAAyD;IACzD,KAAK,EAAE,YAAY,CAAC;IACpB,6EAA6E;IAC7E,MAAM,EAAE,OAAO,CAAC;IAChB,4DAA4D;IAC5D,SAAS,EAAE,OAAO,CAAC;IACnB,WAAW,EAAE,OAAO,CAAC;IACrB,QAAQ,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,WAAW,yBAAyB;IACxC,OAAO,EAAE,CAAC,KAAK,EAAE,OAAO,CAAC,IAAI,CAAC,YAAY,EAAE,OAAO,GAAG,WAAW,GAAG,WAAW,CAAC,CAAC,KAAK,IAAI,CAAC;IAC3F,UAAU,EAAE,MAAM,IAAI,CAAC;IACvB,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,MAAM,EAAE,CAAC,MAAM,EAAE,OAAO,KAAK,IAAI,CAAC;IAClC,qEAAqE;IACrE,MAAM,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;IACvC,QAAQ,EAAE,MAAM,IAAI,CAAC;CACtB;AA6BD;;;;GAIG;AACH,qBAAa,sBAAsB;IA4B/B,OAAO,CAAC,QAAQ,CAAC,IAAI;IACrB,OAAO,CAAC,QAAQ,CAAC,SAAS;IAC1B,OAAO,CAAC,QAAQ,CAAC,CAAC;IA7BpB,OAAO,CAAC,EAAE,CAAiB;IAC3B,OAAO,CAAC,GAAG,CAAiB;IAC5B,OAAO,CAAC,MAAM,CAAuC;IACrD,6CAA6C;IAC7C,OAAO,CAAC,KAAK,CAAM;IACnB,OAAO,CAAC,IAAI,CAAyC;IACrD,OAAO,CAAC,OAAO,CAAoB;IACnC,yHAAyH;IACzH,OAAO,CAAC,MAAM,CAA8C;IAC5D,OAAO,CAAC,IAAI,CAAgF;IAC5F,OAAO,CAAC,QAAQ,CAAC,UAAU,CAIzB;IACF,OAAO,CAAC,QAAQ,CAAC,SAAS,CAMxB;IACF,OAAO,CAAC,QAAQ,CAAC,SAAS,CAExB;gBAGiB,IAAI,EAAE,WAAW,EACjB,SAAS,EAAE,yBAAyB,EACpC,CAAC,GAAE,UAA0B;IAsChD,MAAM,IAAI,OAAO;IAIjB,IAAI,CAAC,MAAM,EAAE,sBAAsB,GAAG,IAAI;IAgB1C,IAAI,IAAI,IAAI;IAMZ,OAAO,IAAI,IAAI;IAOf,OAAO,CAAC,MAAM;IA+Bd,OAAO,CAAC,OAAO;IAIf,wEAAwE;IACxE,OAAO,CAAC,IAAI;IAKZ,wHAAwH;IACxH,OAAO,CAAC,KAAK;IAmBb,OAAO,CAAC,OAAO;IAsBf,8EAA8E;IAC9E,OAAO,CAAC,KAAK;IAmBb,OAAO,CAAC,WAAW;IA2BnB,sGAAsG;IACtG,OAAO,CAAC,QAAQ;IAiBhB,OAAO,CAAC,QAAQ;IAOhB,OAAO,CAAC,MAAM;IASd,OAAO,CAAC,QAAQ;CAQjB"}
@@ -1,6 +1,12 @@
1
1
  import { ChartType } from '@tradecanvas/commons';
2
2
  import { ChartSettingsState, SettingsCallbacks } from './types.js';
3
3
  import { Translator } from './i18n.js';
4
+ /**
5
+ * The chart's settings: tabs down the side (Symbol, Status line, Scales,
6
+ * Appearance, Layers, Trading), each change shown at once. Cancel (Escape,
7
+ * the close button, a click outside) puts it all back, OK keeps it; the
8
+ * Template menu applies, saves and deletes templates, and resets.
9
+ */
4
10
  export declare class WidgetSettings {
5
11
  private readonly available;
6
12
  /** Where the panel mounts (the widget's portal: themed, and inside it when fullscreen). */
@@ -9,14 +15,18 @@ export declare class WidgetSettings {
9
15
  private t;
10
16
  private backdrop;
11
17
  private modal;
12
- private currentTab;
13
- private currentSettings;
14
18
  private bodyEl;
15
19
  private tabButtons;
16
- /** The chart's type, whose settings the Style tab offers. */
20
+ private templateBtn;
21
+ private menu;
22
+ private currentTab;
23
+ private currentSettings;
24
+ /** The chart's type, whose settings the Symbol tab offers. */
17
25
  private chartType;
18
26
  /** The look's rows on view, each showing the chart's value again (a change to one moves others: a wick with its body). */
19
27
  private lookRows;
28
+ private returnFocus;
29
+ private readonly uid;
20
30
  /**
21
31
  * `barCountdown` / `logScale` false leave out the controls for features the
22
32
  * chart has switched off.
@@ -33,33 +43,46 @@ export declare class WidgetSettings {
33
43
  host?: () => HTMLElement);
34
44
  open(currentSettings: ChartSettingsState, chartType?: ChartType | null): void;
35
45
  isOpen(): boolean;
36
- /** The settings as they are now (after an undo), on the tab that's open; `chartType` when it changed. */
46
+ /** The settings as they are now (after an undo, a template), on the tab that's open; `chartType` when it changed. */
37
47
  refresh(settings: ChartSettingsState, chartType?: ChartType | null): void;
48
+ /** Close, keeping what was changed (as OK does). */
38
49
  close(): void;
50
+ destroy(): void;
51
+ /** OK (`keep`) or Cancel, then closed, focus back where the dialog was opened from. */
52
+ private finish;
53
+ private remove;
39
54
  private buildModal;
55
+ private buildHeader;
56
+ /** The tabs down the side, and the open one's settings beside them. */
57
+ private buildBody;
58
+ /** Template on the left; Cancel and OK on the right. */
59
+ private buildFooter;
60
+ private footerButton;
61
+ private markTabs;
62
+ private selectTab;
63
+ /** Through the tabs (Home, End), picking as they go: up and down, or along the row of chips on a phone. */
64
+ private onTabKey;
65
+ /** The Template menu: the saved templates (each removable), Save as template, Reset to defaults. */
66
+ private openTemplates;
40
67
  private renderTabContent;
41
- private renderStyleTab;
68
+ /** The chart type's own settings and colours, the main series, the last price, the volume, the high and low. */
69
+ private renderSymbolTab;
70
+ /** The legend over the chart: shown or not, its colours. */
71
+ private renderStatusLineTab;
72
+ /** The price scale's mode and behaviour, its labels, the time zone, how numbers are written, the axes' colours. */
73
+ private renderScalesTab;
74
+ /** The background, the grid, the crosshair, the session breaks, the drawings' handles. */
75
+ private renderAppearanceTab;
76
+ /** What the chart can draw over the bars: the profiles, the depth, the swings, the sessions, the prior levels. */
77
+ private renderLayersTab;
78
+ private addSection;
79
+ /** A section of the look, after `lead` (the switch it goes with, say). */
42
80
  private renderLookSection;
43
81
  /** A row of the look: a colour, a switch, a dash or a width, as its key takes it, on the user's layer. */
44
82
  private lookRow;
45
83
  private lineStyles;
46
- private renderDisplayTab;
47
- private renderScaleTab;
48
84
  /** The chart's type: its settings (Renko's box, Kagi's reversal…) and its colours and widths. */
49
85
  private renderChartTypeSection;
50
- /** A number field; empty means "worked out from the data" (shown as Auto). Only numbers above 0 are taken. */
51
- private numberRow;
52
86
  private patch;
53
- private section;
54
- /**
55
- * A colour of the look, shown again from `look.read()`. With `look.start`,
56
- * null is the part's own colour: shown as Auto, the picker starting from
57
- * `start()`, and once set a button takes it back.
58
- */
59
- private colorRow;
60
- private toggleRow;
61
- private selectRow;
62
- private rangeRow;
63
- destroy(): void;
64
87
  }
65
88
  //# sourceMappingURL=WidgetSettings.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"WidgetSettings.d.ts","sourceRoot":"","sources":["../../src/widget/WidgetSettings.ts"],"names":[],"mappings":"AAAA,OAAO,EAAoB,KAAK,SAAS,EAAyC,MAAM,sBAAsB,CAAC;AAC/G,OAAO,KAAK,EAAE,kBAAkB,EAAE,iBAAiB,EAAsB,MAAM,YAAY,CAAC;AAQ5F,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAO5C,qBAAa,cAAc;IAqBvB,OAAO,CAAC,QAAQ,CAAC,SAAS;IAQ1B,2FAA2F;IAC3F,OAAO,CAAC,QAAQ,CAAC,IAAI;IA7BvB,OAAO,CAAC,SAAS,CAAoB;IACrC,OAAO,CAAC,CAAC,CAAa;IACtB,OAAO,CAAC,QAAQ,CAA+B;IAC/C,OAAO,CAAC,KAAK,CAA+B;IAC5C,OAAO,CAAC,UAAU,CAAgB;IAClC,OAAO,CAAC,eAAe,CAAmC;IAC1D,OAAO,CAAC,MAAM,CAA+B;IAC7C,OAAO,CAAC,UAAU,CAA2B;IAC7C,6DAA6D;IAC7D,OAAO,CAAC,SAAS,CAA0B;IAC3C,0HAA0H;IAC1H,OAAO,CAAC,QAAQ,CAA+C;IAE/D;;;OAGG;gBAED,SAAS,EAAE,iBAAiB,EAC5B,CAAC,EAAE,UAAU,EACI,SAAS,GAAE;QAC1B,YAAY,CAAC,EAAE,OAAO,CAAC;QACvB,QAAQ,CAAC,EAAE,OAAO,CAAC;QACnB,uEAAuE;QACvE,YAAY,CAAC,EAAE,MAAM,MAAM,GAAG,IAAI,CAAC;QACnC,6EAA6E;QAC7E,OAAO,CAAC,EAAE,OAAO,CAAC;KACd;IACN,2FAA2F;IAC1E,IAAI,GAAE,MAAM,WAAiC;IAMhE,IAAI,CAAC,eAAe,EAAE,kBAAkB,EAAE,SAAS,GAAE,SAAS,GAAG,IAAW,GAAG,IAAI;IAOnF,MAAM,IAAI,OAAO;IAIjB,yGAAyG;IACzG,OAAO,CAAC,QAAQ,EAAE,kBAAkB,EAAE,SAAS,CAAC,EAAE,SAAS,GAAG,IAAI,GAAG,IAAI;IAOzE,KAAK,IAAI,IAAI;IASb,OAAO,CAAC,UAAU;IA8FlB,OAAO,CAAC,gBAAgB;IAuBxB,OAAO,CAAC,cAAc;IAMtB,OAAO,CAAC,iBAAiB;IAOzB,0GAA0G;IAC1G,OAAO,CAAC,OAAO;IAoDf,OAAO,CAAC,UAAU;IAQlB,OAAO,CAAC,gBAAgB;IAqDxB,OAAO,CAAC,cAAc;IAmBtB,iGAAiG;IACjG,OAAO,CAAC,sBAAsB;IA+C9B,8GAA8G;IAC9G,OAAO,CAAC,SAAS;IA+BjB,OAAO,CAAC,KAAK;IAOb,OAAO,CAAC,OAAO;IAef;;;;OAIG;IACH,OAAO,CAAC,QAAQ;IA+DhB,OAAO,CAAC,SAAS;IAyBjB,OAAO,CAAC,SAAS;IA+BjB,OAAO,CAAC,QAAQ;IA2ChB,OAAO,IAAI,IAAI;CAGhB"}
1
+ {"version":3,"file":"WidgetSettings.d.ts","sourceRoot":"","sources":["../../src/widget/WidgetSettings.ts"],"names":[],"mappings":"AAAA,OAAO,EAAoB,KAAK,SAAS,EAAyC,MAAM,sBAAsB,CAAC;AAC/G,OAAO,KAAK,EAAE,kBAAkB,EAAE,iBAAiB,EAAsB,MAAM,YAAY,CAAC;AAY5F,OAAO,EAAyB,KAAK,UAAU,EAAE,MAAM,WAAW,CAAC;AAoBnE;;;;;GAKG;AACH,qBAAa,cAAc;IAyBvB,OAAO,CAAC,QAAQ,CAAC,SAAS;IAQ1B,2FAA2F;IAC3F,OAAO,CAAC,QAAQ,CAAC,IAAI;IAjCvB,OAAO,CAAC,SAAS,CAAoB;IACrC,OAAO,CAAC,CAAC,CAAa;IACtB,OAAO,CAAC,QAAQ,CAA+B;IAC/C,OAAO,CAAC,KAAK,CAA+B;IAC5C,OAAO,CAAC,MAAM,CAA+B;IAC7C,OAAO,CAAC,UAAU,CAA2B;IAC7C,OAAO,CAAC,WAAW,CAAkC;IACrD,OAAO,CAAC,IAAI,CAAkC;IAC9C,OAAO,CAAC,UAAU,CAAiB;IACnC,OAAO,CAAC,eAAe,CAAmC;IAC1D,8DAA8D;IAC9D,OAAO,CAAC,SAAS,CAA0B;IAC3C,0HAA0H;IAC1H,OAAO,CAAC,QAAQ,CAA+C;IAC/D,OAAO,CAAC,WAAW,CAA4B;IAC/C,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAoB;IAExC;;;OAGG;gBAED,SAAS,EAAE,iBAAiB,EAC5B,CAAC,EAAE,UAAU,EACI,SAAS,GAAE;QAC1B,YAAY,CAAC,EAAE,OAAO,CAAC;QACvB,QAAQ,CAAC,EAAE,OAAO,CAAC;QACnB,uEAAuE;QACvE,YAAY,CAAC,EAAE,MAAM,MAAM,GAAG,IAAI,CAAC;QACnC,6EAA6E;QAC7E,OAAO,CAAC,EAAE,OAAO,CAAC;KACd;IACN,2FAA2F;IAC1E,IAAI,GAAE,MAAM,WAAiC;IAMhE,IAAI,CAAC,eAAe,EAAE,kBAAkB,EAAE,SAAS,GAAE,SAAS,GAAG,IAAW,GAAG,IAAI;IAUnF,MAAM,IAAI,OAAO;IAIjB,qHAAqH;IACrH,OAAO,CAAC,QAAQ,EAAE,kBAAkB,EAAE,SAAS,CAAC,EAAE,SAAS,GAAG,IAAI,GAAG,IAAI;IAOzE,oDAAoD;IACpD,KAAK,IAAI,IAAI;IAIb,OAAO,IAAI,IAAI;IAIf,uFAAuF;IACvF,OAAO,CAAC,MAAM;IASd,OAAO,CAAC,MAAM;IAQd,OAAO,CAAC,UAAU;IAoClB,OAAO,CAAC,WAAW;IAgBnB,uEAAuE;IACvE,OAAO,CAAC,SAAS;IAiCjB,wDAAwD;IACxD,OAAO,CAAC,WAAW;IAmBnB,OAAO,CAAC,YAAY;IAUpB,OAAO,CAAC,QAAQ;IAUhB,OAAO,CAAC,SAAS;IAOjB,2GAA2G;IAC3G,OAAO,CAAC,QAAQ;IAYhB,oGAAoG;IACpG,OAAO,CAAC,aAAa;IA4BrB,OAAO,CAAC,gBAAgB;IAkBxB,gHAAgH;IAChH,OAAO,CAAC,eAAe;IAavB,4DAA4D;IAC5D,OAAO,CAAC,mBAAmB;IAO3B,mHAAmH;IACnH,OAAO,CAAC,eAAe;IAwBvB,0FAA0F;IAC1F,OAAO,CAAC,mBAAmB;IAY3B,kHAAkH;IAClH,OAAO,CAAC,eAAe;IA8BvB,OAAO,CAAC,UAAU;IAOlB,0EAA0E;IAC1E,OAAO,CAAC,iBAAiB;IAIzB,0GAA0G;IAC1G,OAAO,CAAC,OAAO;IAoDf,OAAO,CAAC,UAAU;IAQlB,iGAAiG;IACjG,OAAO,CAAC,sBAAsB;IA+C9B,OAAO,CAAC,KAAK;CAId"}
@@ -1,3 +1,4 @@
1
+ import { PriceScaleMode } from '@tradecanvas/commons';
1
2
  import { RangePreset } from '@tradecanvas/core';
2
3
  import { StatusBarItemSpec } from './types.js';
3
4
  export interface StatusBarRange {
@@ -9,26 +10,80 @@ export interface StatusBarRange {
9
10
  onPreset: (preset: RangePreset) => void;
10
11
  onGoTo: () => void;
11
12
  }
13
+ /** The clock: the time in the display zone, and the zones to pick from. */
14
+ export interface StatusBarClock {
15
+ /** Its tooltip, and its menu's name. */
16
+ label: string;
17
+ /** The time now ("14:05:09") and the zone it is in ("UTC+7"). */
18
+ now: () => {
19
+ time: string;
20
+ zone: string;
21
+ };
22
+ /** The zones to offer, and the one in use. */
23
+ options: () => {
24
+ current: string;
25
+ list: readonly {
26
+ value: string;
27
+ label: string;
28
+ }[];
29
+ };
30
+ onPick: (value: string) => void;
31
+ }
32
+ /** The price scale's switches: percent, log (when the chart offers it), auto. */
33
+ export interface StatusBarScale {
34
+ /** Their names (the group's, and each switch's). */
35
+ labels: {
36
+ group?: string;
37
+ percent: string;
38
+ log: string;
39
+ auto: string;
40
+ };
41
+ /** What the log and auto switches show ('log', 'auto'); the percent sign shows itself. */
42
+ texts?: {
43
+ log: string;
44
+ auto: string;
45
+ };
46
+ onPercent: () => void;
47
+ onLog?: () => void;
48
+ onAuto: () => void;
49
+ }
12
50
  /**
13
51
  * Bottom bar: range presets and "go to date" on the left (when `range` is
14
- * given), connection state and symbol on the right; hosts' own items after
15
- * the presets and before the market's status.
52
+ * given); the market's status, the connection, the clock and the price
53
+ * scale's switches on the right; hosts' own items after the presets and
54
+ * before the market's status.
16
55
  */
17
56
  export declare class WidgetStatusBar {
57
+ private readonly host;
58
+ private readonly extras;
18
59
  private el;
19
60
  private dotEl;
20
61
  private messageEl;
21
- private infoEl;
22
62
  private marketEl;
23
63
  private readonly hostLeft;
24
64
  private readonly hostRight;
25
- constructor(host: HTMLElement, range?: StatusBarRange);
65
+ private clockBtn;
66
+ private clockMenu;
67
+ private scaleBtns;
68
+ /** The scale as last shown: nothing to rewrite when it is the same. */
69
+ private scaleShown;
70
+ constructor(host: HTMLElement, range?: StatusBarRange, extras?: {
71
+ clock?: StatusBarClock;
72
+ scale?: StatusBarScale;
73
+ });
26
74
  update(state: {
27
75
  connectionState: string;
28
76
  message: string;
29
77
  symbol: string;
30
78
  timeframe: string;
31
79
  }): void;
80
+ /** The clock to the time now: the widget calls it each second. */
81
+ tick(): void;
82
+ /** The price scale's switches as the chart is now: its mode, and whether it fits itself. */
83
+ setScale(state: {
84
+ mode: PriceScaleMode;
85
+ auto: boolean;
86
+ }): void;
32
87
  /** The market's status (open or closed); hidden for a market around the clock. */
33
88
  setMarket(state: 'open' | 'closed' | 'always', text: string): void;
34
89
  /** A host's own item: text, or a button when it has `onClick`. */
@@ -36,6 +91,10 @@ export declare class WidgetStatusBar {
36
91
  /** The holder of hosts' own items on the left or the right. */
37
92
  hostSlot(side: 'left' | 'right'): HTMLDivElement;
38
93
  destroy(): void;
94
+ private buildClock;
95
+ /** The zones over the clock, the one in use ticked. */
96
+ private toggleZones;
97
+ private buildScale;
39
98
  private hostGroup;
40
99
  private buildRange;
41
100
  }
@@ -1 +1 @@
1
- {"version":3,"file":"WidgetStatusBar.d.ts","sourceRoot":"","sources":["../../src/widget/WidgetStatusBar.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAGrD,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;CACpB;AAED;;;;GAIG;AACH,qBAAa,eAAe;IAC1B,OAAO,CAAC,EAAE,CAAiB;IAC3B,OAAO,CAAC,KAAK,CAAkB;IAC/B,OAAO,CAAC,SAAS,CAAkB;IACnC,OAAO,CAAC,MAAM,CAAkB;IAChC,OAAO,CAAC,QAAQ,CAAkB;IAClC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAiB;IAC1C,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAiB;gBAE/B,IAAI,EAAE,WAAW,EAAE,KAAK,CAAC,EAAE,cAAc;IA0CrD,MAAM,CAAC,KAAK,EAAE;QAAE,eAAe,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI;IAYpG,kFAAkF;IAClF,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,QAAQ,GAAG,QAAQ,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI;IAMlE,kEAAkE;IAClE,WAAW,CAAC,IAAI,EAAE,iBAAiB,GAAG,WAAW;IAoBjD,+DAA+D;IAC/D,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,GAAG,cAAc;IAIhD,OAAO,IAAI,IAAI;IAIf,OAAO,CAAC,SAAS;IAMjB,OAAO,CAAC,UAAU;CA6BnB"}
1
+ {"version":3,"file":"WidgetStatusBar.d.ts","sourceRoot":"","sources":["../../src/widget/WidgetStatusBar.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"WidgetStyles.d.ts","sourceRoot":"","sources":["../../src/widget/WidgetStyles.ts"],"names":[],"mappings":"AAOA;;;;;;;GAOG;AACH,wBAAgB,kBAAkB,IAAI,IAAI,CAYzC;AAED,wBAAgB,kBAAkB,IAAI,IAAI,CAQzC"}
1
+ {"version":3,"file":"WidgetStyles.d.ts","sourceRoot":"","sources":["../../src/widget/WidgetStyles.ts"],"names":[],"mappings":"AAQA;;;;;;;GAOG;AACH,wBAAgB,kBAAkB,IAAI,IAAI,CAazC;AAED,wBAAgB,kBAAkB,IAAI,IAAI,CAQzC"}
@@ -11,7 +11,6 @@ export declare class WidgetToolbar {
11
11
  private t;
12
12
  private el;
13
13
  private chartTypeDropdown;
14
- private indicatorDropdown;
15
14
  private tfGroup;
16
15
  private tfDropdown;
17
16
  private tfFavorites;
@@ -19,8 +18,6 @@ export declare class WidgetToolbar {
19
18
  private readonly uid;
20
19
  private tfRendered;
21
20
  private themeBtn;
22
- /** Indicator templates' names, listed atop the indicators menu. */
23
- private indicatorTemplates;
24
21
  private fullscreenBtn;
25
22
  /** Where hosts' own buttons go: after the chart controls, and before the panel buttons. */
26
23
  private hostLeft;
@@ -31,6 +28,9 @@ export declare class WidgetToolbar {
31
28
  private resizeObserver;
32
29
  private moreBtn;
33
30
  private fitFrame;
31
+ private undoBtn;
32
+ private redoBtn;
33
+ private trade;
34
34
  /**
35
35
  * `layer`: where the toolbar's menus open, over the page (the widget's
36
36
  * overlay layer), so no box around the widget clips them. Without one they
@@ -64,6 +64,10 @@ export declare class WidgetToolbar {
64
64
  setSymbolSearch(on: boolean): void;
65
65
  /** No separator left at an edge or next to another once buttons are switched off. */
66
66
  tidy(): void;
67
+ /** What undo and redo can do now: each button is off while there is nothing for it. */
68
+ setHistory(canUndo: boolean, canRedo: boolean): void;
69
+ /** The widget this toolbar is in, where its switches and menus live. */
70
+ private rootEl;
67
71
  /** Show a panel button (by its role: 'account', 'objects'…) as on or off. */
68
72
  setActive(role: string, on: boolean): void;
69
73
  /** The layout open now on its button (`null`: none saved yet), with a dot while it has unsaved changes. */
@@ -82,14 +86,8 @@ export declare class WidgetToolbar {
82
86
  /** The custom-interval field: Enter or + adds it; text that isn't an interval is marked and kept. */
83
87
  private wireCustomTimeframe;
84
88
  private renderTimeframes;
85
- /**
86
- * The indicator templates to list (names), after one is saved or deleted.
87
- * `keepFocus`: focus was in the menu (a delete), so it goes to "Save…".
88
- */
89
- setIndicatorTemplates(names: readonly string[], keepFocus?: boolean): void;
90
- /** Templates atop the indicators menu: apply one, delete one, save the chart's. */
91
- private templatesMenuHtml;
92
- private buildIndicatorMenu;
89
+ /** Whether the indicators dialog is open, on its button. */
90
+ setIndicatorsOpen(open: boolean): void;
93
91
  update(state: WidgetState): void;
94
92
  private sep;
95
93
  private spacer;
@@ -1 +1 @@
1
- {"version":3,"file":"WidgetToolbar.d.ts","sourceRoot":"","sources":["../../src/widget/WidgetToolbar.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"WidgetToolbar.d.ts","sourceRoot":"","sources":["../../src/widget/WidgetToolbar.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,29 @@
1
+ import { ToolbarCallbacks } from './types.js';
2
+ import { Translator } from './i18n.js';
3
+ /**
4
+ * The toolbar's Trade menu: a new order, the brackets, the depth ladder and
5
+ * the account panel, in one button. Each item goes with its own switches,
6
+ * and the button with them all.
7
+ */
8
+ export declare class WidgetTradeMenu {
9
+ private readonly items;
10
+ private readonly t;
11
+ private readonly root;
12
+ readonly button: HTMLButtonElement;
13
+ private menu;
14
+ /** The panels open now, ticked in the menu. */
15
+ private open;
16
+ /** A Trade menu for these callbacks, or `null` when the host gave none of them. */
17
+ static create(callbacks: ToolbarCallbacks, t: Translator, root: () => HTMLElement, anchorOf: (btn: HTMLElement) => HTMLElement): WidgetTradeMenu | null;
18
+ private constructor();
19
+ /** Hide the button once every item in it is switched off. */
20
+ tidy(): void;
21
+ /** Tick a panel (`'ladder'`, `'account'`) while it is open; other roles are not the menu's. */
22
+ setOpen(role: string, on: boolean): void;
23
+ destroy(): void;
24
+ /** Whether any of `parts` is switched off on the widget. */
25
+ private isOff;
26
+ /** The menu under `anchor`: the tools not switched off, the open panels ticked. */
27
+ private toggle;
28
+ }
29
+ //# sourceMappingURL=WidgetTradeMenu.d.ts.map
@@ -0,0 +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;AA8B5C;;;;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;CAkBf"}
@@ -0,0 +1,26 @@
1
+ import { KeyValueStorage } from './DrawingTemplateStore.js';
2
+ import { ChartSettingsState, SettingsStylePatch } from './types.js';
3
+ /** A chart's look under a name: the settings' switches, and the colours, dashes and widths. */
4
+ export interface ChartTemplate {
5
+ name: string;
6
+ settings: Partial<ChartSettingsState>;
7
+ style: SettingsStylePatch;
8
+ }
9
+ /** The settings a template keeps, of the kind each takes. */
10
+ export declare function templateSettings(raw: unknown): Partial<ChartSettingsState>;
11
+ /**
12
+ * Chart templates kept in this browser's storage, by name. What is read back
13
+ * is checked; what can't be read is left out.
14
+ */
15
+ export declare class ChartTemplateStore {
16
+ private readonly key;
17
+ private readonly storage;
18
+ constructor(key?: string, storage?: KeyValueStorage | null);
19
+ /** Every template, by name. */
20
+ list(): ChartTemplate[];
21
+ get(name: string): ChartTemplate | null;
22
+ /** Keep the look under `name`, in place of one of that name. False when storage refuses. */
23
+ save(name: string, settings: ChartSettingsState, style: SettingsStylePatch): boolean;
24
+ remove(name: string): void;
25
+ }
26
+ //# sourceMappingURL=chartTemplates.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chartTemplates.d.ts","sourceRoot":"","sources":["../../src/widget/chartTemplates.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AACjE,OAAO,KAAK,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAIzE,+FAA+F;AAC/F,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,OAAO,CAAC,kBAAkB,CAAC,CAAC;IACtC,KAAK,EAAE,kBAAkB,CAAC;CAC3B;AAoBD,6DAA6D;AAC7D,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAY1E;AAiBD;;;GAGG;AACH,qBAAa,kBAAkB;IAE3B,OAAO,CAAC,QAAQ,CAAC,GAAG;IACpB,OAAO,CAAC,QAAQ,CAAC,OAAO;gBADP,GAAG,SAAwB,EAC3B,OAAO,GAAE,eAAe,GAAG,IAAuB;IAGrE,+BAA+B;IAC/B,IAAI,IAAI,aAAa,EAAE;IAgBvB,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,aAAa,GAAG,IAAI;IAIvC,4FAA4F;IAC5F,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,kBAAkB,EAAE,KAAK,EAAE,kBAAkB,GAAG,OAAO;IAYpF,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;CAO3B"}
@@ -0,0 +1,6 @@
1
+ import { DrawingToolType } from '@tradecanvas/commons';
2
+ /** Alt + a letter picks a drawing tool (by key position, so it works on any layout). */
3
+ export declare const TOOL_HOTKEYS: Readonly<Record<string, DrawingToolType>>;
4
+ /** Each tool's shortcut as its menu writes it ("Alt+T"). */
5
+ export declare function toolShortcuts(): Partial<Record<DrawingToolType, string>>;
6
+ //# sourceMappingURL=drawingHotkeys.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"drawingHotkeys.d.ts","sourceRoot":"","sources":["../../src/widget/drawingHotkeys.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAE5D,wFAAwF;AACxF,eAAO,MAAM,YAAY,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,CAOlE,CAAC;AAEF,4DAA4D;AAC5D,wBAAgB,aAAa,IAAI,OAAO,CAAC,MAAM,CAAC,eAAe,EAAE,MAAM,CAAC,CAAC,CAIxE"}
@@ -1,8 +1,11 @@
1
1
  /** What Tab can land on inside a dialog. */
2
2
  export declare const FOCUSABLE = "button:not([disabled]), input:not([disabled]), select:not([disabled]), textarea:not([disabled]), [tabindex]:not([tabindex=\"-1\"])";
3
3
  /**
4
- * Keep Tab inside `container` (a modal dialog): from its last control Tab
5
- * goes to its first, and Shift+Tab the other way. Call from its keydown.
4
+ * Keep Tab inside `container` (a modal dialog): past its last stop Tab goes
5
+ * to its first, and Shift+Tab the other way. "Past" counts a control Tab
6
+ * skips over (`tabindex="-1"`, a list row's star) after the last stop or
7
+ * before the first: from there the browser would leave the dialog. Call from
8
+ * its keydown.
6
9
  */
7
10
  export declare function keepTabInside(e: KeyboardEvent, container: HTMLElement): void;
8
11
  //# sourceMappingURL=focusTrap.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"focusTrap.d.ts","sourceRoot":"","sources":["../../src/widget/focusTrap.ts"],"names":[],"mappings":"AAAA,4CAA4C;AAC5C,eAAO,MAAM,SAAS,uIAAqI,CAAC;AAE5J;;;GAGG;AACH,wBAAgB,aAAa,CAAC,CAAC,EAAE,aAAa,EAAE,SAAS,EAAE,WAAW,GAAG,IAAI,CAe5E"}
1
+ {"version":3,"file":"focusTrap.d.ts","sourceRoot":"","sources":["../../src/widget/focusTrap.ts"],"names":[],"mappings":"AAAA,4CAA4C;AAC5C,eAAO,MAAM,SAAS,uIAAqI,CAAC;AAE5J;;;;;;GAMG;AACH,wBAAgB,aAAa,CAAC,CAAC,EAAE,aAAa,EAAE,SAAS,EAAE,WAAW,GAAG,IAAI,CAiB5E"}