@tradecanvas/chart 1.71.0 → 1.72.1

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 (177) hide show
  1. package/dist/LayoutSession-DO4bYkUi.cjs +2 -0
  2. package/dist/LayoutSession-DO4bYkUi.cjs.map +1 -0
  3. package/dist/{LayoutSession-BOQCN6yY.js → LayoutSession-qRYG8GTD.js} +539 -552
  4. package/dist/LayoutSession-qRYG8GTD.js.map +1 -0
  5. package/dist/WidgetCommandPalette-CeCLHPy1.js +177 -0
  6. package/dist/WidgetCommandPalette-CeCLHPy1.js.map +1 -0
  7. package/dist/WidgetCommandPalette-ZZNbWwCZ.cjs +2 -0
  8. package/dist/WidgetCommandPalette-ZZNbWwCZ.cjs.map +1 -0
  9. package/dist/WidgetDrawingSettings-BeW8fX7r.js +474 -0
  10. package/dist/WidgetDrawingSettings-BeW8fX7r.js.map +1 -0
  11. package/dist/WidgetDrawingSettings-Cyl2u_u8.cjs +2 -0
  12. package/dist/WidgetDrawingSettings-Cyl2u_u8.cjs.map +1 -0
  13. package/dist/WidgetGoToDate-BNdngHlg.cjs +2 -0
  14. package/dist/WidgetGoToDate-BNdngHlg.cjs.map +1 -0
  15. package/dist/WidgetGoToDate-hcDtezRm.js +191 -0
  16. package/dist/WidgetGoToDate-hcDtezRm.js.map +1 -0
  17. package/dist/WidgetHotkeySheet-1lRFSdvt.js +416 -0
  18. package/dist/WidgetHotkeySheet-1lRFSdvt.js.map +1 -0
  19. package/dist/WidgetHotkeySheet-y5LWKSG6.cjs +2 -0
  20. package/dist/WidgetHotkeySheet-y5LWKSG6.cjs.map +1 -0
  21. package/dist/WidgetIndicatorPicker-CGvZ5kYd.js +245 -0
  22. package/dist/WidgetIndicatorPicker-CGvZ5kYd.js.map +1 -0
  23. package/dist/WidgetIndicatorPicker-DuKJFPRC.cjs +2 -0
  24. package/dist/WidgetIndicatorPicker-DuKJFPRC.cjs.map +1 -0
  25. package/dist/WidgetIndicatorSettings-C7vpco6e.cjs +2 -0
  26. package/dist/WidgetIndicatorSettings-C7vpco6e.cjs.map +1 -0
  27. package/dist/WidgetIndicatorSettings-dDkqzzYo.js +326 -0
  28. package/dist/WidgetIndicatorSettings-dDkqzzYo.js.map +1 -0
  29. package/dist/WidgetSettings-D7Pq42zW.cjs +2 -0
  30. package/dist/WidgetSettings-D7Pq42zW.cjs.map +1 -0
  31. package/dist/WidgetSettings-eOo93L7Z.js +546 -0
  32. package/dist/WidgetSettings-eOo93L7Z.js.map +1 -0
  33. package/dist/WidgetSymbolSearch-C4OR42nZ.cjs +2 -0
  34. package/dist/WidgetSymbolSearch-C4OR42nZ.cjs.map +1 -0
  35. package/dist/WidgetSymbolSearch-CvPpjIwa.js +580 -0
  36. package/dist/WidgetSymbolSearch-CvPpjIwa.js.map +1 -0
  37. package/dist/focusTrap-Br9Zfje0.js +27 -0
  38. package/dist/focusTrap-Br9Zfje0.js.map +1 -0
  39. package/dist/focusTrap-DrhhmG0V.cjs +2 -0
  40. package/dist/focusTrap-DrhhmG0V.cjs.map +1 -0
  41. package/dist/i18n-C2nQBZTY.cjs +2 -0
  42. package/dist/i18n-C2nQBZTY.cjs.map +1 -0
  43. package/dist/{i18n-DUmd4Z_r.js → i18n-C5v6Tzp1.js} +3 -1
  44. package/dist/i18n-C5v6Tzp1.js.map +1 -0
  45. package/dist/index.cjs +1 -1
  46. package/dist/index.d.ts +1 -1
  47. package/dist/index.d.ts.map +1 -1
  48. package/dist/index.js +1 -1
  49. package/dist/indicatorInputWords-Bd9Pt6qp.js +25 -0
  50. package/dist/indicatorInputWords-Bd9Pt6qp.js.map +1 -0
  51. package/dist/indicatorInputWords-CTA4IcJR.cjs +2 -0
  52. package/dist/indicatorInputWords-CTA4IcJR.cjs.map +1 -0
  53. package/dist/indicatorLabel-BNZvaOcl.cjs +2 -0
  54. package/dist/indicatorLabel-BNZvaOcl.cjs.map +1 -0
  55. package/dist/indicatorLabel-Sbegyhp2.js +17 -0
  56. package/dist/indicatorLabel-Sbegyhp2.js.map +1 -0
  57. package/dist/indicatorSettingsTabs-B0liE3ST.cjs +2 -0
  58. package/dist/indicatorSettingsTabs-B0liE3ST.cjs.map +1 -0
  59. package/dist/indicatorSettingsTabs-XcgMdbLp.js +161 -0
  60. package/dist/indicatorSettingsTabs-XcgMdbLp.js.map +1 -0
  61. package/dist/monthView-B-CieFDJ.cjs +2 -0
  62. package/dist/monthView-B-CieFDJ.cjs.map +1 -0
  63. package/dist/monthView-N8yDaTqZ.js +198 -0
  64. package/dist/monthView-N8yDaTqZ.js.map +1 -0
  65. package/dist/platformKeys-B82-j1Fs.cjs +2 -0
  66. package/dist/platformKeys-B82-j1Fs.cjs.map +1 -0
  67. package/dist/platformKeys-Dd1qOCjF.js +5 -0
  68. package/dist/platformKeys-Dd1qOCjF.js.map +1 -0
  69. package/dist/settingsControls-DIjzCFHI.js +379 -0
  70. package/dist/settingsControls-DIjzCFHI.js.map +1 -0
  71. package/dist/settingsControls-Tn8_vJJv.cjs +2 -0
  72. package/dist/settingsControls-Tn8_vJJv.cjs.map +1 -0
  73. package/dist/symbolCatalog-CA1fpz3s.js +90 -0
  74. package/dist/symbolCatalog-CA1fpz3s.js.map +1 -0
  75. package/dist/symbolCatalog-Dx1YnZgm.cjs +2 -0
  76. package/dist/symbolCatalog-Dx1YnZgm.cjs.map +1 -0
  77. package/dist/widget/ChartWidget.d.ts +102 -582
  78. package/dist/widget/ChartWidget.d.ts.map +1 -1
  79. package/dist/widget/WidgetAlerts.d.ts +35 -0
  80. package/dist/widget/WidgetAlerts.d.ts.map +1 -0
  81. package/dist/widget/WidgetChartSettings.d.ts +194 -0
  82. package/dist/widget/WidgetChartSettings.d.ts.map +1 -0
  83. package/dist/widget/WidgetCommands.d.ts +54 -0
  84. package/dist/widget/WidgetCommands.d.ts.map +1 -0
  85. package/dist/widget/WidgetCompares.d.ts +140 -0
  86. package/dist/widget/WidgetCompares.d.ts.map +1 -0
  87. package/dist/widget/WidgetDockArea.d.ts +89 -0
  88. package/dist/widget/WidgetDockArea.d.ts.map +1 -0
  89. package/dist/widget/WidgetDrawingEdit.d.ts +73 -0
  90. package/dist/widget/WidgetDrawingEdit.d.ts.map +1 -0
  91. package/dist/widget/WidgetGoToDate.d.ts +1 -14
  92. package/dist/widget/WidgetGoToDate.d.ts.map +1 -1
  93. package/dist/widget/WidgetIndicatorSettings.d.ts.map +1 -1
  94. package/dist/widget/WidgetIntervals.d.ts +66 -0
  95. package/dist/widget/WidgetIntervals.d.ts.map +1 -0
  96. package/dist/widget/WidgetLayouts.d.ts +85 -0
  97. package/dist/widget/WidgetLayouts.d.ts.map +1 -0
  98. package/dist/widget/WidgetLegendView.d.ts +54 -0
  99. package/dist/widget/WidgetLegendView.d.ts.map +1 -0
  100. package/dist/widget/WidgetMenus.d.ts +79 -0
  101. package/dist/widget/WidgetMenus.d.ts.map +1 -0
  102. package/dist/widget/WidgetReplay.d.ts +199 -0
  103. package/dist/widget/WidgetReplay.d.ts.map +1 -0
  104. package/dist/widget/WidgetTrading.d.ts +48 -0
  105. package/dist/widget/WidgetTrading.d.ts.map +1 -0
  106. package/dist/widget/WidgetWatchlists.d.ts +77 -0
  107. package/dist/widget/WidgetWatchlists.d.ts.map +1 -0
  108. package/dist/widget/drawingSettingsTabs.d.ts +2 -19
  109. package/dist/widget/drawingSettingsTabs.d.ts.map +1 -1
  110. package/dist/widget/drawingText.d.ts +24 -0
  111. package/dist/widget/drawingText.d.ts.map +1 -0
  112. package/dist/widget/index.cjs +22 -23
  113. package/dist/widget/index.cjs.map +1 -1
  114. package/dist/widget/index.js +6193 -9868
  115. package/dist/widget/index.js.map +1 -1
  116. package/dist/widget/keyTarget.d.ts +4 -0
  117. package/dist/widget/keyTarget.d.ts.map +1 -1
  118. package/dist/widget/lazyPart.d.ts +47 -0
  119. package/dist/widget/lazyPart.d.ts.map +1 -0
  120. package/dist/widget/locales/ar.d.ts.map +1 -1
  121. package/dist/widget/locales/cs.d.ts.map +1 -1
  122. package/dist/widget/locales/da.d.ts.map +1 -1
  123. package/dist/widget/locales/de.d.ts.map +1 -1
  124. package/dist/widget/locales/el.d.ts.map +1 -1
  125. package/dist/widget/locales/en.d.ts +1 -0
  126. package/dist/widget/locales/en.d.ts.map +1 -1
  127. package/dist/widget/locales/es.d.ts.map +1 -1
  128. package/dist/widget/locales/et.d.ts.map +1 -1
  129. package/dist/widget/locales/fa.d.ts.map +1 -1
  130. package/dist/widget/locales/fr.d.ts.map +1 -1
  131. package/dist/widget/locales/he.d.ts.map +1 -1
  132. package/dist/widget/locales/hu.d.ts.map +1 -1
  133. package/dist/widget/locales/id.d.ts.map +1 -1
  134. package/dist/widget/locales/index.cjs +1 -1
  135. package/dist/widget/locales/index.cjs.map +1 -1
  136. package/dist/widget/locales/index.js +29 -1
  137. package/dist/widget/locales/index.js.map +1 -1
  138. package/dist/widget/locales/it.d.ts.map +1 -1
  139. package/dist/widget/locales/ja.d.ts.map +1 -1
  140. package/dist/widget/locales/ko.d.ts.map +1 -1
  141. package/dist/widget/locales/ms.d.ts.map +1 -1
  142. package/dist/widget/locales/nb.d.ts.map +1 -1
  143. package/dist/widget/locales/nl.d.ts.map +1 -1
  144. package/dist/widget/locales/pl.d.ts.map +1 -1
  145. package/dist/widget/locales/pt.d.ts.map +1 -1
  146. package/dist/widget/locales/ro.d.ts.map +1 -1
  147. package/dist/widget/locales/ru.d.ts.map +1 -1
  148. package/dist/widget/locales/sk.d.ts.map +1 -1
  149. package/dist/widget/locales/sv.d.ts.map +1 -1
  150. package/dist/widget/locales/th.d.ts.map +1 -1
  151. package/dist/widget/locales/tr.d.ts.map +1 -1
  152. package/dist/widget/locales/vi.d.ts.map +1 -1
  153. package/dist/widget/locales/zh.d.ts.map +1 -1
  154. package/dist/widget/locales/zhHant.d.ts.map +1 -1
  155. package/dist/widget/pageEnv.d.ts +5 -0
  156. package/dist/widget/pageEnv.d.ts.map +1 -0
  157. package/dist/widget/signals.d.ts +41 -0
  158. package/dist/widget/signals.d.ts.map +1 -0
  159. package/dist/widget/wallTime.d.ts +15 -0
  160. package/dist/widget/wallTime.d.ts.map +1 -0
  161. package/dist/widget/widgetDialogs.d.ts +17 -0
  162. package/dist/widget/widgetDialogs.d.ts.map +1 -0
  163. package/dist/widgetFeatures-BM6u0u74.js +186 -0
  164. package/dist/widgetFeatures-BM6u0u74.js.map +1 -0
  165. package/dist/widgetFeatures-BZ8OVPN2.cjs +3 -0
  166. package/dist/widgetFeatures-BZ8OVPN2.cjs.map +1 -0
  167. package/dist/widgetLocales-BPK5i0Ok.cjs +2 -0
  168. package/dist/widgetLocales-BPK5i0Ok.cjs.map +1 -0
  169. package/dist/widgetLocales-DgTR8JSu.js +838 -0
  170. package/dist/widgetLocales-DgTR8JSu.js.map +1 -0
  171. package/package.json +3 -3
  172. package/dist/LayoutSession-BOQCN6yY.js.map +0 -1
  173. package/dist/LayoutSession-RF8OqOXy.cjs +0 -2
  174. package/dist/LayoutSession-RF8OqOXy.cjs.map +0 -1
  175. package/dist/i18n-BsstZ9md.cjs +0 -2
  176. package/dist/i18n-BsstZ9md.cjs.map +0 -1
  177. package/dist/i18n-DUmd4Z_r.js.map +0 -1
@@ -0,0 +1,73 @@
1
+ import { WidgetSelectionToolbar } from './WidgetSelectionToolbar.js';
2
+ import { DrawingTemplateStore } from './DrawingTemplateStore.js';
3
+ import { DrawingTemplateLook } from './WidgetDrawingSettings.js';
4
+ import { WidgetInlineText } from './WidgetInlineText.js';
5
+ import { WidgetNamePrompt } from './WidgetNamePrompt.js';
6
+ import { ChartWidget } from './ChartWidget.js';
7
+ /** What editing a drawing reads of the widget around it, and asks of it. */
8
+ export interface DrawingEditHost {
9
+ readonly chart: ChartWidget['chart'];
10
+ readonly chartContainer: ChartWidget['chartContainer'];
11
+ chartOffset: ChartWidget['chartOffset'];
12
+ readonly destroyed: ChartWidget['destroyed'];
13
+ readonly docking: ChartWidget['docking'];
14
+ readonly drawingSettingsPart: ChartWidget['drawingSettingsPart'];
15
+ drawingToolName: ChartWidget['drawingToolName'];
16
+ readonly featureState: ChartWidget['featureState'];
17
+ readonly root: ChartWidget['root'];
18
+ say: ChartWidget['say'];
19
+ readonly t: ChartWidget['t'];
20
+ readonly ui: ChartWidget['ui'];
21
+ whenLoaded: ChartWidget['whenLoaded'];
22
+ }
23
+ /**
24
+ * Editing a drawing in the widget: the toolbar over the one selected, the words of a text
25
+ * typed in place on the chart, its settings dialog (a text just drawn taken back on Cancel),
26
+ * and saving its look as a template.
27
+ */
28
+ export declare class WidgetDrawingEdit {
29
+ private readonly host;
30
+ constructor(host: DrawingEditHost);
31
+ /** A text drawn just now whose words the settings ask for: Cancel there takes it back. */
32
+ justDrawnText: string | null;
33
+ /** A text drawing's words typed in place over it. */
34
+ inlineText: WidgetInlineText | null;
35
+ /** The drawing whose words are being typed in place, and whether it was just drawn. */
36
+ inlineTextId: string | null;
37
+ inlineTextNew: boolean;
38
+ /** The chart's type sizes the look last wrote: a host's own change since makes them the new base. */
39
+ chartFontWritten: {
40
+ sizeSmall: number;
41
+ sizeMedium: number;
42
+ sizeLarge: number;
43
+ } | null;
44
+ /** Stops waiting to ask for a just-drawn text's words (the widget goes, or another text is drawn first). */
45
+ cancelTextPrompt: (() => void) | null;
46
+ selectionToolbar: WidgetSelectionToolbar | null;
47
+ selectionToolbarFrame: number | null;
48
+ /** Asks a drawing template's name, over the drawing's settings. */
49
+ drawingTemplatePrompt: WidgetNamePrompt | null;
50
+ /** `updateSelectionToolbar` on the next frame, once, while the toolbar shows. */
51
+ scheduleSelectionToolbar(): void;
52
+ /**
53
+ * Show the selection toolbar over the selected drawings, or hide it: when
54
+ * nothing is selected, or while a tool, the eraser or the zoom area is on.
55
+ */
56
+ updateSelectionToolbar(): void;
57
+ /**
58
+ * Type a text drawing's words in place, over its box: Enter or a click away
59
+ * keeps them, Escape puts them back. One just drawn (`justDrawn`) is taken
60
+ * back on Escape or with no words. False when its box is not on the chart
61
+ * (hidden, its text turned off): the settings ask for the words instead.
62
+ */
63
+ editTextInPlace(id: string, justDrawn: boolean): boolean;
64
+ /** Open a drawing's settings (double-click on it, or the object tree's settings button). */
65
+ openDrawingSettings(id: string, how?: {
66
+ tab?: 'text';
67
+ justDrawn?: boolean;
68
+ }): void;
69
+ private showDrawingSettings;
70
+ /** Save a drawing's look as a template of its tool, asking for its name over the drawing's settings. */
71
+ promptSaveDrawingTemplate(templates: DrawingTemplateStore, look: DrawingTemplateLook): void;
72
+ }
73
+ //# sourceMappingURL=WidgetDrawingEdit.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"WidgetDrawingEdit.d.ts","sourceRoot":"","sources":["../../src/widget/WidgetDrawingEdit.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AACrE,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AACjE,OAAO,KAAK,EAAyB,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AAE7F,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAEzD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAkBpD,4EAA4E;AAC5E,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,KAAK,EAAE,WAAW,CAAC,OAAO,CAAC,CAAC;IACrC,QAAQ,CAAC,cAAc,EAAE,WAAW,CAAC,gBAAgB,CAAC,CAAC;IACvD,WAAW,EAAE,WAAW,CAAC,aAAa,CAAC,CAAC;IACxC,QAAQ,CAAC,SAAS,EAAE,WAAW,CAAC,WAAW,CAAC,CAAC;IAC7C,QAAQ,CAAC,OAAO,EAAE,WAAW,CAAC,SAAS,CAAC,CAAC;IACzC,QAAQ,CAAC,mBAAmB,EAAE,WAAW,CAAC,qBAAqB,CAAC,CAAC;IACjE,eAAe,EAAE,WAAW,CAAC,iBAAiB,CAAC,CAAC;IAChD,QAAQ,CAAC,YAAY,EAAE,WAAW,CAAC,cAAc,CAAC,CAAC;IACnD,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IACnC,GAAG,EAAE,WAAW,CAAC,KAAK,CAAC,CAAC;IACxB,QAAQ,CAAC,CAAC,EAAE,WAAW,CAAC,GAAG,CAAC,CAAC;IAC7B,QAAQ,CAAC,EAAE,EAAE,WAAW,CAAC,IAAI,CAAC,CAAC;IAC/B,UAAU,EAAE,WAAW,CAAC,YAAY,CAAC,CAAC;CACvC;AAED;;;;GAIG;AACH,qBAAa,iBAAiB;IAChB,OAAO,CAAC,QAAQ,CAAC,IAAI;gBAAJ,IAAI,EAAE,eAAe;IAElD,0FAA0F;IAC1F,aAAa,EAAE,MAAM,GAAG,IAAI,CAAQ;IAEpC,qDAAqD;IACrD,UAAU,EAAE,gBAAgB,GAAG,IAAI,CAAQ;IAE3C,uFAAuF;IACvF,YAAY,EAAE,MAAM,GAAG,IAAI,CAAQ;IAEnC,aAAa,UAAS;IAEtB,qGAAqG;IACrG,gBAAgB,EAAE;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAQ;IAE7F,4GAA4G;IAC5G,gBAAgB,EAAE,CAAC,MAAM,IAAI,CAAC,GAAG,IAAI,CAAQ;IAE7C,gBAAgB,EAAE,sBAAsB,GAAG,IAAI,CAAQ;IAEvD,qBAAqB,EAAE,MAAM,GAAG,IAAI,CAAQ;IAE5C,mEAAmE;IACnE,qBAAqB,EAAE,gBAAgB,GAAG,IAAI,CAAQ;IAEtD,iFAAiF;IACjF,wBAAwB,IAAI,IAAI;IAQhC;;;OAGG;IACH,sBAAsB,IAAI,IAAI;IAuC9B;;;;;OAKG;IACH,eAAe,CAAC,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,GAAG,OAAO;IAyDxD,4FAA4F;IAC5F,mBAAmB,CAAC,EAAE,EAAE,MAAM,EAAE,GAAG,GAAE;QAAE,GAAG,CAAC,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,OAAO,CAAA;KAAO,GAAG,IAAI;IAItF,OAAO,CAAC,mBAAmB;IAyB3B,wGAAwG;IACxG,yBAAyB,CAAC,SAAS,EAAE,oBAAoB,EAAE,IAAI,EAAE,mBAAmB,GAAG,IAAI;CAY5F"}
@@ -1,18 +1,5 @@
1
- import { TimeZoneSetting } from '@tradecanvas/commons';
2
1
  import { CalendarLabels } from './monthView.js';
3
- /**
4
- * A wall-clock date ("2026-03-01") and time ("14:30", empty = midnight) in the
5
- * display timezone (an IANA zone, minutes east of UTC, or null for the
6
- * browser's) as a UTC timestamp. Null when the date or time is not valid.
7
- */
8
- export declare function wallTimeToUtc(date: string, time: string, tz: TimeZoneSetting): number | null;
9
- /** The date and time fields' values for `ts` in the display timezone. */
10
- export declare function utcToWallTime(ts: number, tz: TimeZoneSetting): WallTime;
11
- /** A date (YYYY-MM-DD) and a time (HH:MM, or empty for the day's start) on the wall clock. */
12
- export interface WallTime {
13
- date: string;
14
- time: string;
15
- }
2
+ import { WallTime } from './wallTime.js';
16
3
  export interface GoToLabels {
17
4
  title: string;
18
5
  /** The tabs. */
@@ -1 +1 @@
1
- {"version":3,"file":"WidgetGoToDate.d.ts","sourceRoot":"","sources":["../../src/widget/WidgetGoToDate.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"WidgetGoToDate.d.ts","sourceRoot":"","sources":["../../src/widget/WidgetGoToDate.ts"],"names":[],"mappings":"AAEA,OAAO,EAAa,KAAK,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAEhE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAE9C,MAAM,WAAW,UAAU;IACzB,KAAK,EAAE,MAAM,CAAC;IACd,gBAAgB;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,wBAAwB;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,cAAc,CAAC;CAC1B;AAED,uEAAuE;AACvE,MAAM,MAAM,UAAU,GAClB,CAAC;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,GAAG,QAAQ,CAAC,GAC7B;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,IAAI,EAAE,QAAQ,CAAC;IAAC,EAAE,EAAE,QAAQ,CAAA;CAAE,CAAC;AAEpD,MAAM,WAAW,SAAS;IACxB,6BAA6B;IAC7B,IAAI,EAAE,QAAQ,CAAC;IACf,mCAAmC;IACnC,KAAK,EAAE;QAAE,IAAI,EAAE,QAAQ,CAAC;QAAC,EAAE,EAAE,QAAQ,CAAA;KAAE,CAAC;IACxC,sEAAsE;IACtE,QAAQ,EAAE,OAAO,CAAC;IAClB,mDAAmD;IACnD,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,iFAAiF;IACjF,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AASD;;;;;GAKG;AACH,qBAAa,cAAc;IAcvB,OAAO,CAAC,QAAQ,CAAC,KAAK;IACtB,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,QAAQ;IAhB3B,OAAO,CAAC,QAAQ,CAA+B;IAC/C,OAAO,CAAC,QAAQ,CAA+B;IAC/C,OAAO,CAAC,UAAU,CAA2B;IAC7C,OAAO,CAAC,KAAK,CAA0B;IACvC,sCAAsC;IACtC,OAAO,CAAC,MAAM,CAAiC;IAC/C,OAAO,CAAC,MAAM,CAAqG;IACnH,OAAO,CAAC,KAAK,CAA0B;IACvC,OAAO,CAAC,GAAG,CAAe;IAC1B,OAAO,CAAC,WAAW,CAA4B;IAC/C,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAgB;gBAGjB,KAAK,EAAE,MAAM,WAAW,EACxB,MAAM,EAAE,MAAM,UAAU,EACxB,MAAM,EAAE,MAAM,MAAM,EACpB,QAAQ,EAAE,CAAC,MAAM,EAAE,UAAU,KAAK,IAAI;IAGzD,MAAM,IAAI,OAAO;IAIjB,IAAI,CAAC,KAAK,EAAE,SAAS,GAAG,IAAI;IAgB5B,uGAAuG;IACvG,KAAK,CAAC,aAAa,UAAO,GAAG,IAAI;IAUjC,OAAO,IAAI,IAAI;IAIf,OAAO,CAAC,KAAK;IAmEb,OAAO,CAAC,SAAS;IAqBjB,OAAO,CAAC,WAAW;IAqBnB,OAAO,CAAC,MAAM;IAMd,2FAA2F;IAC3F,OAAO,CAAC,SAAS;IAoBjB,wFAAwF;IACxF,OAAO,CAAC,GAAG;IAyBX,OAAO,CAAC,KAAK;IAab,OAAO,CAAC,SAAS;IAKjB,OAAO,CAAC,SAAS;IAKjB,8FAA8F;IAC9F,OAAO,CAAC,OAAO;IAmBf,OAAO,CAAC,MAAM;IA2Bd,oFAAoF;IACpF,OAAO,CAAC,QAAQ;CAajB"}
@@ -1 +1 @@
1
- {"version":3,"file":"WidgetIndicatorSettings.d.ts","sourceRoot":"","sources":["../../src/widget/WidgetIndicatorSettings.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"WidgetIndicatorSettings.d.ts","sourceRoot":"","sources":["../../src/widget/WidgetIndicatorSettings.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,aAAa,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAK5I,OAAO,EAAe,KAAK,UAAU,EAAE,MAAM,WAAW,CAAC;AAMzD,MAAM,MAAM,mBAAmB,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC;AAE5D,MAAM,WAAW,uBAAuB;IACtC,UAAU,EAAE,MAAM,CAAC;IACnB,sEAAsE;IACtE,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,kEAAkE;IAClE,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAClC,4CAA4C;IAC5C,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAChC,6DAA6D;IAC7D,MAAM,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,kBAAkB,CAAC,CAAC,CAAC;IACtD,+EAA+E;IAC/E,WAAW,CAAC,EAAE,SAAS;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IAC1D,gEAAgE;IAChE,KAAK,CAAC,EAAE,SAAS,aAAa,EAAE,CAAC;IACjC,MAAM,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC3B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,uDAAuD;IACvD,UAAU,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,kBAAkB,CAAC,CAAC,CAAC;IAC1D,sFAAsF;IACtF,MAAM,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC3B,aAAa,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAClC,yGAAyG;IACzG,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,0EAA0E;IAC1E,KAAK,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;IACzB,6DAA6D;IAC7D,SAAS,CAAC,EAAE,kBAAkB,GAAG,IAAI,CAAC;CACvC;AAED,8EAA8E;AAC9E,MAAM,WAAW,gBAAgB;IAC/B,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,mBAAmB,CAAC,CAAC;IAC5C,KAAK,EAAE,oBAAoB,CAAC;CAC7B;AAED,MAAM,WAAW,0BAA0B;IACzC,OAAO,EAAE,CAAC,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,mBAAmB,CAAC,KAAK,IAAI,CAAC;IACnF,OAAO,CAAC,EAAE,CAAC,UAAU,EAAE,MAAM,EAAE,KAAK,EAAE,oBAAoB,KAAK,IAAI,CAAC;IACpE,sDAAsD;IACtD,QAAQ,CAAC,EAAE,CAAC,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,IAAI,KAAK,IAAI,CAAC;IACjE,0EAA0E;IAC1E,OAAO,CAAC,EAAE,CAAC,UAAU,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,MAAM,KAAK,IAAI,CAAC;IAChE,4EAA4E;IAC5E,WAAW,CAAC,EAAE,CAAC,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,kBAAkB,GAAG,IAAI,KAAK,IAAI,CAAC;IACjF,8CAA8C;IAC9C,aAAa,CAAC,EAAE,CAAC,WAAW,EAAE,MAAM,EAAE,KAAK,EAAE,gBAAgB,KAAK,IAAI,CAAC;IACvE,OAAO,EAAE,MAAM,IAAI,CAAC;CACrB;AA4CD;;;;;;GAMG;AACH,qBAAa,uBAAuB;IAClC,OAAO,CAAC,QAAQ,CAAiB;IACjC,OAAO,CAAC,KAAK,CAAiB;IAC9B,OAAO,CAAC,MAAM,CAAiB;IAC/B,OAAO,CAAC,OAAO,CAAqB;IACpC,OAAO,CAAC,MAAM,CAAiB;IAC/B,OAAO,CAAC,WAAW,CAAoB;IACvC,OAAO,CAAC,IAAI,CAAkC;IAC9C,OAAO,CAAC,SAAS,CAA6B;IAC9C,OAAO,CAAC,MAAM,CAAwC;IACtD,OAAO,CAAC,KAAK,CAA2C;IACxD,OAAO,CAAC,OAAO,CAA4E;IAC3F,OAAO,CAAC,IAAI,CAA+F;IAC3G,OAAO,CAAC,GAAG,CAAiB;IAC5B,OAAO,CAAC,UAAU,CAA2B;IAC7C,OAAO,CAAC,WAAW,CAA4B;IAC/C,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAkB;IACtC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAa;gBAEnB,IAAI,EAAE,WAAW,EAAE,SAAS,EAAE,0BAA0B,EAAE,CAAC,CAAC,EAAE,UAAU;IAsDpF,iEAAiE;IACjE,OAAO,CAAC,WAAW;IAiBnB,IAAI,CAAC,MAAM,EAAE,uBAAuB,GAAG,IAAI;IAwB3C,oDAAoD;IACpD,KAAK,IAAI,IAAI;IAIb,MAAM,IAAI,OAAO;IAIjB,OAAO,IAAI,IAAI;IAKf,kGAAkG;IAClG,OAAO,CAAC,MAAM;IAoBd,uEAAuE;IACvE,OAAO,CAAC,MAAM;IAiBd,OAAO,CAAC,aAAa;IAQrB,OAAO,CAAC,IAAI;IAYZ,6FAA6F;IAC7F,OAAO,CAAC,UAAU;IAmBlB,OAAO,CAAC,QAAQ;IAUhB,OAAO,CAAC,SAAS;IAOjB,gFAAgF;IAChF,OAAO,CAAC,QAAQ;IAehB,mDAAmD;IACnD,OAAO,CAAC,SAAS;IAUjB,OAAO,CAAC,UAAU;IAWlB,OAAO,CAAC,YAAY;IAOpB,OAAO,CAAC,QAAQ;IAMhB,OAAO,CAAC,YAAY;IASpB,4GAA4G;IAC5G,OAAO,CAAC,QAAQ;IAkBhB,OAAO,CAAC,aAAa;IAoBrB,OAAO,CAAC,aAAa;IAYrB,OAAO,CAAC,WAAW;IAWnB,OAAO,CAAC,WAAW;IA8CnB,OAAO,CAAC,YAAY;IAQpB,OAAO,CAAC,YAAY;IAmBpB,mGAAmG;IACnG,OAAO,CAAC,QAAQ;IAmBhB;;;;;OAKG;IACH,OAAO,CAAC,WAAW;IAcnB,OAAO,CAAC,YAAY;IAUpB,OAAO,CAAC,IAAI;IAOZ,OAAO,CAAC,MAAM;CAMf"}
@@ -0,0 +1,66 @@
1
+ import { TimeFrame } from '@tradecanvas/commons';
2
+ import { WidgetIntervalInput } from './WidgetIntervalInput.js';
3
+ import { RangePreset } from '@tradecanvas/core';
4
+ import { ChartWidget } from './ChartWidget.js';
5
+ /** What the intervals read of the widget around them, and ask of them. */
6
+ export interface IntervalsHost {
7
+ readonly adapter: ChartWidget['adapter'];
8
+ readonly baseSeries: ChartWidget['baseSeries'];
9
+ readonly baseTimeframeMs: ChartWidget['baseTimeframeMs'];
10
+ readonly chart: ChartWidget['chart'];
11
+ chosenTimeframe: ChartWidget['chosenTimeframe'];
12
+ readonly customTimeframes: ChartWidget['customTimeframes'];
13
+ readonly destroyed: ChartWidget['destroyed'];
14
+ displayTimezone: ChartWidget['displayTimezone'];
15
+ readonly featureState: ChartWidget['featureState'];
16
+ handleTimeframe: ChartWidget['handleTimeframe'];
17
+ readonly options: ChartWidget['options'];
18
+ say: ChartWidget['say'];
19
+ readonly state: ChartWidget['state'];
20
+ switchTimeframe: ChartWidget['switchTimeframe'];
21
+ readonly timeframeFavorites: ChartWidget['timeframeFavorites'];
22
+ timeframes: ChartWidget['timeframes'];
23
+ readonly toolbar: ChartWidget['toolbar'];
24
+ updateUI: ChartWidget['updateUI'];
25
+ }
26
+ /**
27
+ * The intervals the widget offers: the interval menu and the ones pinned to the toolbar, one
28
+ * added, removed or made a favourite, one typed on the chart, and the range bar's presets with
29
+ * the interval each one switches to.
30
+ */
31
+ export declare class WidgetIntervals {
32
+ private readonly host;
33
+ constructor(host: IntervalsHost);
34
+ intervalInput: WidgetIntervalInput | null;
35
+ /** Counts range clicks and the user's own picks: a range waiting behind a newer one gives way. */
36
+ rangeSeq: number;
37
+ /** Ranges apply one at a time, each reading the bars the last one brought. */
38
+ private rangeQueue;
39
+ /**
40
+ * A range from the range bar. A long one switches to the timeframe whose
41
+ * bars it fits (five years of days in weeks, decades in months), a short
42
+ * one back toward the user's own (`timeframeForRange`); then the range is
43
+ * shown. Off with `features: { 'statusBar.rangeTimeframe': false }`.
44
+ */
45
+ applyRangePreset(preset: RangePreset): Promise<void>;
46
+ private runRangePreset;
47
+ /** The timeframe `preset` shows in, from the bars on the chart now. */
48
+ private timeframeForPreset;
49
+ /** Whether a switch to `tf` brings bars: the feed serves it, or the bars here resample to it. */
50
+ private canShowTimeframe;
51
+ /** Pinned timeframes that are still on offer, shortest first. */
52
+ pinnedTimeframes(): TimeFrame[];
53
+ /** The timeframe menu's rows, typed intervals marked so they can be removed. */
54
+ timeframeMenu(): {
55
+ value: TimeFrame;
56
+ label: string;
57
+ custom: boolean;
58
+ }[];
59
+ /** A typed interval: switch to it, adding and pinning it when it is new. False when it isn't one. */
60
+ handleAddTimeframe(text: string): boolean;
61
+ /** A typed interval: one on offer is picked; another joins the menu (not the toolbar's pins). */
62
+ selectTypedTimeframe(tf: TimeFrame): boolean;
63
+ handleRemoveTimeframe(tf: TimeFrame): void;
64
+ handleToggleTimeframeFavorite(tf: TimeFrame): void;
65
+ }
66
+ //# sourceMappingURL=WidgetIntervals.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"WidgetIntervals.d.ts","sourceRoot":"","sources":["../../src/widget/WidgetIntervals.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAEtD,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAE/D,OAAO,EAAqC,KAAK,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAGxF,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAKpD,0EAA0E;AAC1E,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,OAAO,EAAE,WAAW,CAAC,SAAS,CAAC,CAAC;IACzC,QAAQ,CAAC,UAAU,EAAE,WAAW,CAAC,YAAY,CAAC,CAAC;IAC/C,QAAQ,CAAC,eAAe,EAAE,WAAW,CAAC,iBAAiB,CAAC,CAAC;IACzD,QAAQ,CAAC,KAAK,EAAE,WAAW,CAAC,OAAO,CAAC,CAAC;IACrC,eAAe,EAAE,WAAW,CAAC,iBAAiB,CAAC,CAAC;IAChD,QAAQ,CAAC,gBAAgB,EAAE,WAAW,CAAC,kBAAkB,CAAC,CAAC;IAC3D,QAAQ,CAAC,SAAS,EAAE,WAAW,CAAC,WAAW,CAAC,CAAC;IAC7C,eAAe,EAAE,WAAW,CAAC,iBAAiB,CAAC,CAAC;IAChD,QAAQ,CAAC,YAAY,EAAE,WAAW,CAAC,cAAc,CAAC,CAAC;IACnD,eAAe,EAAE,WAAW,CAAC,iBAAiB,CAAC,CAAC;IAChD,QAAQ,CAAC,OAAO,EAAE,WAAW,CAAC,SAAS,CAAC,CAAC;IACzC,GAAG,EAAE,WAAW,CAAC,KAAK,CAAC,CAAC;IACxB,QAAQ,CAAC,KAAK,EAAE,WAAW,CAAC,OAAO,CAAC,CAAC;IACrC,eAAe,EAAE,WAAW,CAAC,iBAAiB,CAAC,CAAC;IAChD,QAAQ,CAAC,kBAAkB,EAAE,WAAW,CAAC,oBAAoB,CAAC,CAAC;IAC/D,UAAU,EAAE,WAAW,CAAC,YAAY,CAAC,CAAC;IACtC,QAAQ,CAAC,OAAO,EAAE,WAAW,CAAC,SAAS,CAAC,CAAC;IACzC,QAAQ,EAAE,WAAW,CAAC,UAAU,CAAC,CAAC;CACnC;AAED;;;;GAIG;AACH,qBAAa,eAAe;IACd,OAAO,CAAC,QAAQ,CAAC,IAAI;gBAAJ,IAAI,EAAE,aAAa;IAEhD,aAAa,EAAE,mBAAmB,GAAG,IAAI,CAAQ;IAEjD,kGAAkG;IAClG,QAAQ,SAAK;IAEb,8EAA8E;IAC9E,OAAO,CAAC,UAAU,CAAoC;IAEtD;;;;;OAKG;IACH,gBAAgB,CAAC,MAAM,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;YAWtC,cAAc;IAc5B,uEAAuE;IACvE,OAAO,CAAC,kBAAkB;IA4B1B,iGAAiG;IACjG,OAAO,CAAC,gBAAgB;IAUxB,iEAAiE;IACjE,gBAAgB,IAAI,SAAS,EAAE;IAK/B,gFAAgF;IAChF,aAAa,IAAI;QAAE,KAAK,EAAE,SAAS,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,OAAO,CAAA;KAAE,EAAE;IAIvE,qGAAqG;IACrG,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAiBzC,iGAAiG;IACjG,oBAAoB,CAAC,EAAE,EAAE,SAAS,GAAG,OAAO;IAc5C,qBAAqB,CAAC,EAAE,EAAE,SAAS,GAAG,IAAI;IAS1C,6BAA6B,CAAC,EAAE,EAAE,SAAS,GAAG,IAAI;CAKnD"}
@@ -0,0 +1,85 @@
1
+ import { WidgetLayoutsUI } from './WidgetLayoutsUI.js';
2
+ import { WidgetLayoutContent } from './widgetLayout.js';
3
+ import { LayoutSession } from '../state/LayoutSession.js';
4
+ import { ChartWidget } from './ChartWidget.js';
5
+ /** What the layouts read of the widget around them, and ask of it. */
6
+ export interface LayoutsHost {
7
+ allowedSettings: ChartWidget['chartSettings']['allowedSettings'];
8
+ applyChartType: ChartWidget['applyChartType'];
9
+ applySettings: ChartWidget['chartSettings']['applySettings'];
10
+ readonly chart: ChartWidget['chart'];
11
+ readonly chosenTimeframe: ChartWidget['chosenTimeframe'];
12
+ claimSettings: ChartWidget['chartSettings']['claimSettings'];
13
+ readonly destroyed: ChartWidget['destroyed'];
14
+ displayTimezone: ChartWidget['displayTimezone'];
15
+ getSettings: ChartWidget['chartSettings']['getSettings'];
16
+ keysShown: ChartWidget['keysShown'];
17
+ readonly options: ChartWidget['options'];
18
+ overViewerTypeOptions: ChartWidget['overViewerTypeOptions'];
19
+ readonly root: ChartWidget['root'];
20
+ say: ChartWidget['say'];
21
+ setSymbol: ChartWidget['setSymbol'];
22
+ setTimeframe: ChartWidget['setTimeframe'];
23
+ readonly settings: ChartWidget['settings'];
24
+ readonly settingsDefaults: ChartWidget['chartSettings']['settingsDefaults'];
25
+ showLinkSettings: ChartWidget['chartSettings']['showLinkSettings'];
26
+ shownSettings: ChartWidget['chartSettings']['shownSettings'];
27
+ state: ChartWidget['state'];
28
+ syncIndicatorsFromChart: ChartWidget['syncIndicatorsFromChart'];
29
+ readonly t: ChartWidget['t'];
30
+ readonly toolbar: ChartWidget['toolbar'];
31
+ updateUI: ChartWidget['updateUI'];
32
+ }
33
+ /**
34
+ * The widget's layouts: what one holds (the chart's state and the widget's), the named layouts
35
+ * and the one in use, saving it as it changes, a symbol's own layout, and the state shared by link.
36
+ */
37
+ export declare class WidgetLayouts {
38
+ private readonly host;
39
+ constructor(host: LayoutsHost);
40
+ layoutSession: LayoutSession | null;
41
+ layoutsUI: WidgetLayoutsUI | null;
42
+ layoutKeyPrefix: string | null;
43
+ layoutDebounceMs: number;
44
+ private activeLayoutKey;
45
+ /** A view shared in the URL (`#tcw=`), when `shareUrl` is on. */
46
+ restoreSharedView(): void;
47
+ /**
48
+ * Encode the current view (symbol, timeframe, chart type, scale,
49
+ * indicators, drawings, and the Chart Settings changed from the defaults
50
+ * but the viewer's time zone and number format; for the switches the
51
+ * host's features set, from where they set them).
52
+ */
53
+ exportState(): string;
54
+ /** Restore a view from an `exportState()` string. Returns false if malformed. */
55
+ importState(encoded: string): Promise<boolean>;
56
+ /** Copy a shareable deep-link (current view encoded in the URL hash) to the clipboard. */
57
+ copyShareLink(): Promise<void>;
58
+ /** Named layouts: save, open, rename, delete, auto-save. `null` with `layouts: false`. */
59
+ getLayoutSession(): LayoutSession | null;
60
+ /**
61
+ * This chart as a layout: symbol, interval, scale, the Chart Settings (but
62
+ * the viewer's time zone and number format) and the chart's state (no
63
+ * theme). A copy, free to keep.
64
+ */
65
+ captureLayout(): WidgetLayoutContent;
66
+ /** Show a layout from `captureLayout()`. */
67
+ restoreLayout(content: WidgetLayoutContent): Promise<void>;
68
+ /** `captureLayout()` as JSON. */
69
+ getLayoutContent(): string;
70
+ /** Show a layout from `getLayoutContent()`; `false` when it is not one. */
71
+ applyLayoutContent(content: string): Promise<boolean>;
72
+ setupLayouts(cfg: import('./types.js').WidgetLayoutsOptions): void;
73
+ /** Save into the open layout, or ask for a name when there is none. */
74
+ saveLayout(): Promise<void>;
75
+ /** Open a saved layout by id; `false` when it could not be. */
76
+ openLayout(id: string): Promise<boolean>;
77
+ /**
78
+ * Wipe the layout saved for `symbol` (or the active symbol if omitted).
79
+ * Useful as an "Reset layout" command in user-facing menus.
80
+ */
81
+ clearSavedLayout(symbol?: string): void;
82
+ applySymbolLayout(symbol: string): void;
83
+ flushActiveLayout(): void;
84
+ }
85
+ //# sourceMappingURL=WidgetLayouts.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"WidgetLayouts.d.ts","sourceRoot":"","sources":["../../src/widget/WidgetLayouts.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,54 @@
1
+ import { WidgetContextMenu } from './WidgetContextMenu.js';
2
+ import { PaneAction } from './WidgetIndicatorLegend.js';
3
+ import { ChartWidget } from './ChartWidget.js';
4
+ /** Gap between the on-chart indicator rows and the plot or pane edge, px. */
5
+ export declare const LEGEND_INSET = 4;
6
+ /** How far under the OHLCV legend's foot the indicator rows start (px). */
7
+ export declare const STACK_GAP = 1;
8
+ /**
9
+ * Whether an indicator's lines are in the chart's own prices, written as it
10
+ * writes them: not another symbol's (a compare, a spread, a ratio), nor one
11
+ * on a scale of its own on the left.
12
+ */
13
+ export declare function readsChartPrices(ind: {
14
+ id: string;
15
+ scale?: 'left';
16
+ }): boolean;
17
+ /** What the legend reads of the widget around it, and asks of it. */
18
+ export interface LegendHost {
19
+ readonly chart: ChartWidget['chart'];
20
+ readonly destroyed: ChartWidget['destroyed'];
21
+ readonly featureState: ChartWidget['featureState'];
22
+ handleRemoveIndicator: ChartWidget['handleRemoveIndicator'];
23
+ readonly indicatorLegend: ChartWidget['indicatorLegend'];
24
+ indicatorValueText: ChartWidget['indicatorValueText'];
25
+ readonly legendHoverIndex: ChartWidget['legendHoverIndex'];
26
+ openIndicatorSettings: ChartWidget['openIndicatorSettings'];
27
+ readonly options: ChartWidget['options'];
28
+ readonly root: ChartWidget['root'];
29
+ readonly settingsState: ChartWidget['chartSettings']['settingsState'];
30
+ readonly t: ChartWidget['t'];
31
+ }
32
+ /**
33
+ * The legend over the chart: drawn once a frame when something it shows changed, the
34
+ * indicators' rows by pane with their buttons, a pane's actions, and an indicator's menu.
35
+ */
36
+ export declare class WidgetLegendView {
37
+ private readonly host;
38
+ constructor(host: LegendHost);
39
+ legendFrame: number;
40
+ /** The legend row's "more" menu: move the indicator to another pane. */
41
+ legendMenu: WidgetContextMenu | null;
42
+ /** Redraw the on-chart indicator list on the next frame (coalesced). */
43
+ scheduleLegend(): void;
44
+ private renderLegend;
45
+ /** A pane's button on the chart. */
46
+ runPaneAction(instanceId: string, action: PaneAction): void;
47
+ /**
48
+ * An indicator's "more" menu: into the pane above or below it (the price
49
+ * pane at the top), a pane of its own, back to the price pane; then its
50
+ * settings and remove.
51
+ */
52
+ openLegendMenu(instanceId: string, anchor: HTMLElement): void;
53
+ }
54
+ //# sourceMappingURL=WidgetLegendView.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"WidgetLegendView.d.ts","sourceRoot":"","sources":["../../src/widget/WidgetLegendView.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,iBAAiB,EAAyB,MAAM,wBAAwB,CAAC;AAClF,OAAO,EAAqD,KAAK,UAAU,EAAE,MAAM,4BAA4B,CAAC;AAKhH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAWpD,6EAA6E;AAC7E,eAAO,MAAM,YAAY,IAAI,CAAC;AAE9B,2EAA2E;AAC3E,eAAO,MAAM,SAAS,IAAI,CAAC;AAE3B;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,GAAG,EAAE;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,OAAO,CAE7E;AAED,qEAAqE;AACrE,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,KAAK,EAAE,WAAW,CAAC,OAAO,CAAC,CAAC;IACrC,QAAQ,CAAC,SAAS,EAAE,WAAW,CAAC,WAAW,CAAC,CAAC;IAC7C,QAAQ,CAAC,YAAY,EAAE,WAAW,CAAC,cAAc,CAAC,CAAC;IACnD,qBAAqB,EAAE,WAAW,CAAC,uBAAuB,CAAC,CAAC;IAC5D,QAAQ,CAAC,eAAe,EAAE,WAAW,CAAC,iBAAiB,CAAC,CAAC;IACzD,kBAAkB,EAAE,WAAW,CAAC,oBAAoB,CAAC,CAAC;IACtD,QAAQ,CAAC,gBAAgB,EAAE,WAAW,CAAC,kBAAkB,CAAC,CAAC;IAC3D,qBAAqB,EAAE,WAAW,CAAC,uBAAuB,CAAC,CAAC;IAC5D,QAAQ,CAAC,OAAO,EAAE,WAAW,CAAC,SAAS,CAAC,CAAC;IACzC,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IACnC,QAAQ,CAAC,aAAa,EAAE,WAAW,CAAC,eAAe,CAAC,CAAC,eAAe,CAAC,CAAC;IACtE,QAAQ,CAAC,CAAC,EAAE,WAAW,CAAC,GAAG,CAAC,CAAC;CAC9B;AAED;;;GAGG;AACH,qBAAa,gBAAgB;IACf,OAAO,CAAC,QAAQ,CAAC,IAAI;gBAAJ,IAAI,EAAE,UAAU;IAE7C,WAAW,SAAK;IAEhB,wEAAwE;IACxE,UAAU,EAAE,iBAAiB,GAAG,IAAI,CAAQ;IAE5C,wEAAwE;IACxE,cAAc,IAAI,IAAI;IAQtB,OAAO,CAAC,YAAY;IAgEpB,oCAAoC;IACpC,aAAa,CAAC,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,GAAG,IAAI;IAO3D;;;;OAIG;IACH,cAAc,CAAC,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,GAAG,IAAI;CAwC9D"}
@@ -0,0 +1,79 @@
1
+ import { WidgetContextMenu } from './WidgetContextMenu.js';
2
+ import { ChartMenuContext } from './chartMenu.js';
3
+ import { ChartWidget } from './ChartWidget.js';
4
+ /** What the context menus read of the widget around them, and ask of it. */
5
+ export interface MenusHost {
6
+ readonly adapter: ChartWidget['adapter'];
7
+ readonly alerting: ChartWidget['alerting'];
8
+ readonly canExport: ChartWidget['canExport'];
9
+ changeSettings: ChartWidget['chartSettings']['changeSettings'];
10
+ changeStyle: ChartWidget['chartSettings']['changeStyle'];
11
+ readonly chart: ChartWidget['chart'];
12
+ readonly chartContainer: ChartWidget['chartContainer'];
13
+ readonly drawingSettings: ChartWidget['drawingSettings'];
14
+ effectiveScaleMode: ChartWidget['chartSettings']['effectiveScaleMode'];
15
+ readonly featureState: ChartWidget['featureState'];
16
+ formatAlertPrice: ChartWidget['formatAlertPrice'];
17
+ readonly objectTree: ChartWidget['objectTree'];
18
+ openDrawingSettings: ChartWidget['drawingEdit']['openDrawingSettings'];
19
+ openSettings: ChartWidget['chartSettings']['openSettings'];
20
+ readonly options: ChartWidget['options'];
21
+ refreshDrawingsState: ChartWidget['refreshDrawingsState'];
22
+ refreshObjects: ChartWidget['docking']['refreshObjects'];
23
+ resetView: ChartWidget['resetView'];
24
+ readonly root: ChartWidget['root'];
25
+ say: ChartWidget['say'];
26
+ readonly settingsState: ChartWidget['chartSettings']['settingsState'];
27
+ state: ChartWidget['state'];
28
+ readonly t: ChartWidget['t'];
29
+ toggleGoToDate: ChartWidget['toggleGoToDate'];
30
+ readonly trading: ChartWidget['trading'];
31
+ updateUI: ChartWidget['updateUI'];
32
+ }
33
+ /**
34
+ * The widget's context menus: the chart's (what was under the pointer, its price, its pane),
35
+ * a drawing's, and the clear menu, with what each of their entries does.
36
+ */
37
+ export declare class WidgetMenus {
38
+ private readonly host;
39
+ constructor(host: MenusHost);
40
+ drawingMenu: WidgetContextMenu | null;
41
+ /** The trash button's menu, made the first time it opens. */
42
+ clearMenu: WidgetContextMenu | null;
43
+ chartMenu: WidgetContextMenu | null;
44
+ /** The pane a chart menu was opened on (its scale switches act on it). */
45
+ menuPane: string | null;
46
+ /** The menu of a right-clicked drawing; the chart has selected it (and its group) by now. */
47
+ openDrawingMenu(id: string, x: number, y: number): void;
48
+ private runDrawingMenuAction;
49
+ /** What the chart's menus can offer here, and how the chart is set now. */
50
+ chartMenuContext(price: number | undefined): ChartMenuContext;
51
+ /** The indicators "Remove indicators" takes away: a comparison with another symbol stays, as it has a dialog of its own. */
52
+ private removableIndicators;
53
+ /**
54
+ * The exchange's zone, offered when the chart knows one (the symbol's, or
55
+ * its market's) or the adapter can name the symbol's; its zone is null
56
+ * while unknown.
57
+ */
58
+ exchangeChoice(): {
59
+ label: string;
60
+ zone: string | null;
61
+ } | undefined;
62
+ /** The time zones on offer, the exchange's among them when there is one. */
63
+ private timezoneChoices;
64
+ /**
65
+ * Open a chart menu at (x, y) in the chart's pixels, the host's own entries
66
+ * last; nothing when it has no entries.
67
+ */
68
+ openChartMenu(entries: import('./WidgetContextMenu.js').ContextMenuEntry[], x: number, y: number, context: import('./types.js').ChartMenuItemsContext): void;
69
+ private runChartMenuAction;
70
+ /**
71
+ * The trash button's menu: the drawings, the indicators, or both, each with
72
+ * how many would go (locked drawings stay). Nothing to remove, no menu; a
73
+ * second press closes it.
74
+ */
75
+ openClearMenu(anchor: HTMLElement): void;
76
+ /** Remove the drawings, the indicators or both, as one undo step, and leave any drawing tool. */
77
+ removeAll(what: 'drawings' | 'indicators' | 'all'): void;
78
+ }
79
+ //# sourceMappingURL=WidgetMenus.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"WidgetMenus.d.ts","sourceRoot":"","sources":["../../src/widget/WidgetMenus.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,199 @@
1
+ import { DataAdapter, DataSeries, TimeFrame } from '@tradecanvas/commons';
2
+ import { Chart } from '../Chart.js';
3
+ import { MessageKey } from './i18n.js';
4
+ import { ChartWidgetOptions } from './types.js';
5
+ import { WidgetLoadingOverlay } from './WidgetLoadingOverlay.js';
6
+ /**
7
+ * What bar replay reads of the widget around it, and asks of it. `root`, `chartContainer`,
8
+ * `options` and `loading` are given once: the widget keeps the same ones for its whole life.
9
+ */
10
+ export interface ReplayHost {
11
+ chart(): Chart;
12
+ readonly root: HTMLElement;
13
+ readonly chartContainer: HTMLElement;
14
+ readonly options: ChartWidgetOptions;
15
+ t(key: MessageKey): string;
16
+ /** Whether the replay's switch is on. */
17
+ isOn(): boolean;
18
+ isDestroyed(): boolean;
19
+ /** The overlay over the chart while bars load. */
20
+ readonly loading: WidgetLoadingOverlay;
21
+ symbol(): string;
22
+ timeframe(): TimeFrame;
23
+ /** The widget's feed, if it has one. */
24
+ adapter(): DataAdapter | null;
25
+ /** The bars given without a feed, at their own interval, and that interval (ms). */
26
+ baseSeries(): DataSeries | null;
27
+ baseTimeframeMs(): number;
28
+ resampleOptions(zone: string | null): {
29
+ weekStartsOn: 0 | 1;
30
+ timeZone?: string;
31
+ };
32
+ textLocale(): string;
33
+ intlLocale(): string;
34
+ say(text: string, kind: 'info' | 'error'): void;
35
+ /** Shows the toolbar's Bar replay button on or off. */
36
+ markActive(on: boolean): void;
37
+ /** The widget's body, under its toolbar. */
38
+ bodyEl(): HTMLElement | null;
39
+ }
40
+ /**
41
+ * Bar replay in the widget: the panel over the chart, picking the start bar on it, the
42
+ * session it drives on the chart (in whole bars or finer steps), and its keys.
43
+ */
44
+ export declare class WidgetReplay {
45
+ private readonly host;
46
+ private replayBar;
47
+ private replayPollInterval;
48
+ /** The replay's speed, a multiplier: 1 plays one bar of the chart a second. */
49
+ private replaySpeed;
50
+ /** The chart's bars the replay goes through, and when the step shown opened (from `replayStep`). */
51
+ private replayBarsTotal;
52
+ private replayStepTime;
53
+ /** The symbol and interval of the finer steps given to the replay running (null: none given). */
54
+ private replayStepsKey;
55
+ /** `'auto'`, `'bar'`, or the finer interval a replay steps through. */
56
+ private replayStep;
57
+ private replayStartSeq;
58
+ /** The time of a bar picked while the next bars loaded: the replay starts there once they come. */
59
+ private replayPickTime;
60
+ /** A replay start waiting for its finer steps: a Play pressed meanwhile plays it once it starts. */
61
+ private replayStartPending;
62
+ private replayPlayWanted;
63
+ /** Finer bars fetched or built for the last replay in steps. */
64
+ private replayStepsCache;
65
+ /** While picking the start bar: shades the bars right of the pointer. */
66
+ private replayShade;
67
+ constructor(host: ReplayHost);
68
+ private get chart();
69
+ private get root();
70
+ private get chartContainer();
71
+ private get t();
72
+ /** Whether the replay's panel is open. */
73
+ isOpen(): boolean;
74
+ /** Follows the chart: a click picks the start bar or moves the replay there, and the panel keeps up. */
75
+ attach(): void;
76
+ destroy(): void;
77
+ /** Open (or close) bar replay with its scrubber — what the toolbar's Replay button does. */
78
+ toggleReplay(): void;
79
+ /**
80
+ * Open replay in "pick a start bar" mode: the bars right of the pointer
81
+ * are shaded, and a click cuts the chart there and waits paused. Play
82
+ * starts from a default point; "random bar" picks one.
83
+ */
84
+ private enterReplay;
85
+ /** While picking the start bar: the shade over the bars a pick would hide. */
86
+ private showReplayShade;
87
+ private removeReplayShade;
88
+ /**
89
+ * Select bar, inside the replay: it pauses and picks again among the bars
90
+ * shown, so the bars still to come stay hidden, the view stays and grid
91
+ * followers go on. Cancel (or Esc) comes back to the same place.
92
+ */
93
+ private pickReplayBarAgain;
94
+ /** Cancel picking: back to the replay when there is one, else out of it. */
95
+ private cancelReplayPick;
96
+ /**
97
+ * Where the bar sits: on the main pane's foot (bottom panes stay
98
+ * readable), centred on its plot, in the tier its width allows; and how
99
+ * high it reaches, for the toasts and the drawing button to clear it.
100
+ */
101
+ private layoutReplayBar;
102
+ /**
103
+ * How high the bar reaches over the widget's foot and its body's, for the
104
+ * toasts and the drawing button to clear it. Also run as the panel follows
105
+ * the chart: the bar's height changes with its rows and its words.
106
+ */
107
+ private liftOverReplayBar;
108
+ /**
109
+ * Where the replay is, as the readout says it: the step's open time in
110
+ * the display timezone and the widget's language; the date alone on a
111
+ * daily chart and above, seconds under a minute (or with no interval),
112
+ * the year only when it isn't this one.
113
+ */
114
+ private replayTimeText;
115
+ /** The chart's bars the replay goes through (not its steps), or those loaded before it starts. */
116
+ private replayBarCount;
117
+ private readonly hideReplayShade;
118
+ /**
119
+ * Open replay (if it isn't open) and start it at bar `index` — paused, or
120
+ * playing when `play` is set — skipping the pick-a-bar step.
121
+ */
122
+ replayFrom(index: number, play?: boolean): void;
123
+ /**
124
+ * The steps a replay can take on this interval, the one picked kept while
125
+ * it is still one of them (else whole bars).
126
+ */
127
+ private replayStepMenu;
128
+ /** The interval changed: the step menu offers its steps. */
129
+ private refreshReplaySteps;
130
+ /**
131
+ * The replay went on over new bars at the same time: the panel shows their
132
+ * total, and a replay in finer steps fetches them for the new bars and
133
+ * goes on from the bar it is on.
134
+ */
135
+ private afterReplayCarryOver;
136
+ /**
137
+ * A bar picked while the next bars loaded: once they are in, start the replay at the bar
138
+ * holding its time; let it go if they failed or the pick was left.
139
+ */
140
+ private startPickedReplay;
141
+ /** Whether the bars on screen are about to be replaced: a new symbol's or interval's on their way. */
142
+ private seriesPending;
143
+ /** The panel follows the chart, and whether the bars are on their way, a few times a second. */
144
+ private watchReplayBar;
145
+ /**
146
+ * Cut the chart at `index` and wait paused (or play at once). `ofBars`:
147
+ * `index` is one of the chart's bars (a pick), not a step of the replay.
148
+ */
149
+ private startReplayAt;
150
+ private replayStepsKeyNow;
151
+ /** How many steps of `tf` make a bar of the chart (1 for whole bars, or a chart without an interval). */
152
+ private replayStepsPerBar;
153
+ /** Finer intervals a replay can step through: they divide the chart's, and the feed (or the bars loaded) has them. */
154
+ private replayStepOptions;
155
+ /** Whether the feed serves `tf`, or the bars loaded build it. */
156
+ private hasReplayStep;
157
+ /** The finer interval the step picked stands for (`'auto'` worked out here); null for whole bars. */
158
+ private replayStepInterval;
159
+ /**
160
+ * Whether the chart fetches a replay's finer bars itself: its bars form, a
161
+ * step is picked and the feed pages back. A feed that can't page back gets
162
+ * its finer bars fetched here, in one request, as before.
163
+ */
164
+ private chartFetchesReplaySteps;
165
+ /** The finer bars for a replay in `tf` steps: from the feed, or built from the bars loaded. Null when there are none. */
166
+ private replayStepsFor;
167
+ /**
168
+ * The zone the feed's wrapper builds `tf` in for `symbol` ('' when the feed
169
+ * serves it): after no answer about the symbol it builds on UTC's days
170
+ * until the chart loads the symbol afresh, so steps fetched before then
171
+ * are stale after it.
172
+ */
173
+ private builtStepsZone;
174
+ /** Bars available to replay: the whole series, not the slice on screen. */
175
+ private replayTotal;
176
+ /** Mirror the replay engine in the bar; close it if the session ended elsewhere. */
177
+ syncReplayBar(): void;
178
+ private stepReplay;
179
+ /**
180
+ * Replay shortcuts: Shift+←/→ step one bar, Space on the chart plays or
181
+ * pauses, Escape cancels picking a start bar. Only for the widget used
182
+ * last, with focus in it (or nowhere), not while typing or in a dialog.
183
+ */
184
+ handleReplayKey(e: KeyboardEvent): boolean;
185
+ /** Focus on the chart itself (its container or the canvas in it), not on a control over it. */
186
+ private onChartSurface;
187
+ private toggleReplayPlay;
188
+ private replayBarAtEnd;
189
+ private positionReplayShade;
190
+ /** Leave replay and return to the live series (with updates that arrived meanwhile). */
191
+ exitReplay(): void;
192
+ private teardownReplayUi;
193
+ /**
194
+ * Focus was in the bar: back to the toolbar's Bar replay button, or the
195
+ * "more" menu that folds it on a narrow toolbar, or the chart.
196
+ */
197
+ private focusAfterReplay;
198
+ }
199
+ //# sourceMappingURL=WidgetReplay.d.ts.map