@oanda/labs-instruments-price-chart-widget 1.0.13 → 1.0.15

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 (98) hide show
  1. package/CHANGELOG.md +124 -0
  2. package/codegen.ts +2 -5
  3. package/dist/main/InstrumentsPriceChartWidget/InstrumentsPriceChartWidget.js +6 -2
  4. package/dist/main/InstrumentsPriceChartWidget/InstrumentsPriceChartWidget.js.map +1 -1
  5. package/dist/main/InstrumentsPriceChartWidget/Main.js +32 -16
  6. package/dist/main/InstrumentsPriceChartWidget/Main.js.map +1 -1
  7. package/dist/main/InstrumentsPriceChartWidget/components/Chart.js +4 -2
  8. package/dist/main/InstrumentsPriceChartWidget/components/Chart.js.map +1 -1
  9. package/dist/main/InstrumentsPriceChartWidget/components/TimeZoneLabel.js +29 -0
  10. package/dist/main/InstrumentsPriceChartWidget/components/TimeZoneLabel.js.map +1 -0
  11. package/dist/main/InstrumentsPriceChartWidget/components/formatters.js +50 -11
  12. package/dist/main/InstrumentsPriceChartWidget/components/formatters.js.map +1 -1
  13. package/dist/main/InstrumentsPriceChartWidget/components/getOption.js +13 -13
  14. package/dist/main/InstrumentsPriceChartWidget/components/getOption.js.map +1 -1
  15. package/dist/main/InstrumentsPriceChartWidget/components/types.js.map +1 -1
  16. package/dist/main/InstrumentsPriceChartWidget/config.js +14 -7
  17. package/dist/main/InstrumentsPriceChartWidget/config.js.map +1 -1
  18. package/dist/main/InstrumentsPriceChartWidget/render.js +10 -2
  19. package/dist/main/InstrumentsPriceChartWidget/render.js.map +1 -1
  20. package/dist/main/InstrumentsPriceChartWidget/types.js.map +1 -1
  21. package/dist/main/InstrumentsPriceChartWidget/utils.js +12 -0
  22. package/dist/main/InstrumentsPriceChartWidget/utils.js.map +1 -0
  23. package/dist/main/gql/{mock/getPriceCandles.js → priceCandles.js} +9 -8
  24. package/dist/main/gql/priceCandles.js.map +1 -0
  25. package/dist/main/gql/types/gql.js +1 -1
  26. package/dist/main/gql/types/gql.js.map +1 -1
  27. package/dist/main/gql/types/graphql.js +53 -24
  28. package/dist/main/gql/types/graphql.js.map +1 -1
  29. package/dist/main/translations/sources/en.json +2 -1
  30. package/dist/module/InstrumentsPriceChartWidget/InstrumentsPriceChartWidget.js +6 -2
  31. package/dist/module/InstrumentsPriceChartWidget/InstrumentsPriceChartWidget.js.map +1 -1
  32. package/dist/module/InstrumentsPriceChartWidget/Main.js +33 -17
  33. package/dist/module/InstrumentsPriceChartWidget/Main.js.map +1 -1
  34. package/dist/module/InstrumentsPriceChartWidget/components/Chart.js +4 -2
  35. package/dist/module/InstrumentsPriceChartWidget/components/Chart.js.map +1 -1
  36. package/dist/module/InstrumentsPriceChartWidget/components/TimeZoneLabel.js +21 -0
  37. package/dist/module/InstrumentsPriceChartWidget/components/TimeZoneLabel.js.map +1 -0
  38. package/dist/module/InstrumentsPriceChartWidget/components/formatters.js +47 -9
  39. package/dist/module/InstrumentsPriceChartWidget/components/formatters.js.map +1 -1
  40. package/dist/module/InstrumentsPriceChartWidget/components/getOption.js +14 -14
  41. package/dist/module/InstrumentsPriceChartWidget/components/getOption.js.map +1 -1
  42. package/dist/module/InstrumentsPriceChartWidget/components/types.js.map +1 -1
  43. package/dist/module/InstrumentsPriceChartWidget/config.js +14 -7
  44. package/dist/module/InstrumentsPriceChartWidget/config.js.map +1 -1
  45. package/dist/module/InstrumentsPriceChartWidget/render.js +11 -3
  46. package/dist/module/InstrumentsPriceChartWidget/render.js.map +1 -1
  47. package/dist/module/InstrumentsPriceChartWidget/types.js.map +1 -1
  48. package/dist/module/InstrumentsPriceChartWidget/utils.js +4 -0
  49. package/dist/module/InstrumentsPriceChartWidget/utils.js.map +1 -0
  50. package/dist/module/gql/{mock/getPriceCandles.js → priceCandles.js} +9 -8
  51. package/dist/module/gql/priceCandles.js.map +1 -0
  52. package/dist/module/gql/types/gql.js +1 -1
  53. package/dist/module/gql/types/gql.js.map +1 -1
  54. package/dist/module/gql/types/graphql.js +52 -23
  55. package/dist/module/gql/types/graphql.js.map +1 -1
  56. package/dist/module/translations/sources/en.json +2 -1
  57. package/dist/types/InstrumentsPriceChartWidget/InstrumentsPriceChartWidget.d.ts +1 -1
  58. package/dist/types/InstrumentsPriceChartWidget/Main.d.ts +1 -1
  59. package/dist/types/InstrumentsPriceChartWidget/components/Chart.d.ts +1 -1
  60. package/dist/types/InstrumentsPriceChartWidget/components/TimeZoneLabel.d.ts +2 -0
  61. package/dist/types/InstrumentsPriceChartWidget/components/formatters.d.ts +5 -1
  62. package/dist/types/InstrumentsPriceChartWidget/components/types.d.ts +6 -4
  63. package/dist/types/InstrumentsPriceChartWidget/config.d.ts +5 -3
  64. package/dist/types/InstrumentsPriceChartWidget/types.d.ts +5 -1
  65. package/dist/types/InstrumentsPriceChartWidget/utils.d.ts +3 -0
  66. package/dist/types/gql/priceCandles.d.ts +2 -0
  67. package/dist/types/gql/types/gql.d.ts +4 -3
  68. package/dist/types/gql/types/graphql.d.ts +31 -27
  69. package/package.json +5 -3
  70. package/src/InstrumentsPriceChartWidget/InstrumentsPriceChartWidget.tsx +7 -1
  71. package/src/InstrumentsPriceChartWidget/Main.tsx +45 -19
  72. package/src/InstrumentsPriceChartWidget/components/Chart.tsx +2 -1
  73. package/src/InstrumentsPriceChartWidget/components/TimeZoneLabel.tsx +24 -0
  74. package/src/InstrumentsPriceChartWidget/components/formatters.ts +72 -13
  75. package/src/InstrumentsPriceChartWidget/components/getOption.ts +20 -21
  76. package/src/InstrumentsPriceChartWidget/components/types.ts +6 -4
  77. package/src/InstrumentsPriceChartWidget/config.ts +16 -7
  78. package/src/InstrumentsPriceChartWidget/render.tsx +12 -2
  79. package/src/InstrumentsPriceChartWidget/types.ts +5 -1
  80. package/src/InstrumentsPriceChartWidget/utils.ts +16 -0
  81. package/src/gql/{mock/getPriceCandles.ts → priceCandles.ts} +8 -7
  82. package/src/gql/types/gql.ts +4 -4
  83. package/src/gql/types/graphql.ts +62 -37
  84. package/src/translations/sources/en.json +2 -1
  85. package/test/Main.test.tsx +6 -2
  86. package/test/mocks/chartMock.ts +201 -37
  87. package/dist/main/InstrumentsPriceChartWidget/getPriceCandlesMock.js +0 -83
  88. package/dist/main/InstrumentsPriceChartWidget/getPriceCandlesMock.js.map +0 -1
  89. package/dist/main/gql/mock/getPriceCandles.js.map +0 -1
  90. package/dist/main/gql/mock/schema.graphqls +0 -62
  91. package/dist/module/InstrumentsPriceChartWidget/getPriceCandlesMock.js +0 -76
  92. package/dist/module/InstrumentsPriceChartWidget/getPriceCandlesMock.js.map +0 -1
  93. package/dist/module/gql/mock/getPriceCandles.js.map +0 -1
  94. package/dist/module/gql/mock/schema.graphqls +0 -62
  95. package/dist/types/InstrumentsPriceChartWidget/getPriceCandlesMock.d.ts +0 -9
  96. package/dist/types/gql/mock/getPriceCandles.d.ts +0 -2
  97. package/src/InstrumentsPriceChartWidget/getPriceCandlesMock.tsx +0 -75
  98. package/src/gql/mock/schema.graphqls +0 -62
package/CHANGELOG.md CHANGED
@@ -3,6 +3,130 @@
3
3
  All notable changes to this project will be documented in this file.
4
4
  See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
5
5
 
6
+ ## 1.0.15 (2025-09-02)
7
+
8
+
9
+
10
+ ## 1.0.218 (2025-09-01)
11
+
12
+
13
+
14
+ ## 1.0.217 (2025-08-25)
15
+
16
+
17
+
18
+ ## 1.0.216 (2025-08-18)
19
+
20
+
21
+
22
+ ## 1.0.215 (2025-08-18)
23
+
24
+
25
+
26
+ ## 1.0.214 (2025-08-14)
27
+
28
+
29
+
30
+ ## 1.0.213 (2025-08-12)
31
+
32
+
33
+
34
+ ## 1.0.212 (2025-08-05)
35
+
36
+
37
+
38
+ ## 1.0.211 (2025-08-05)
39
+
40
+
41
+
42
+ ## 1.0.210 (2025-07-31)
43
+
44
+
45
+
46
+ ## 1.0.209 (2025-07-31)
47
+
48
+
49
+
50
+ ## 1.0.208 (2025-07-24)
51
+
52
+
53
+
54
+ ## 1.0.207 (2025-07-18)
55
+
56
+
57
+
58
+ ## 1.0.206 (2025-07-18)
59
+
60
+
61
+
62
+ ## 1.0.205 (2025-07-17)
63
+
64
+ **Note:** Version bump only for package @oanda/labs-instruments-price-chart-widget
65
+
66
+
67
+
68
+
69
+
70
+ ## 1.0.14 (2025-09-01)
71
+
72
+
73
+
74
+ ## 1.0.217 (2025-08-25)
75
+
76
+
77
+
78
+ ## 1.0.216 (2025-08-18)
79
+
80
+
81
+
82
+ ## 1.0.215 (2025-08-18)
83
+
84
+
85
+
86
+ ## 1.0.214 (2025-08-14)
87
+
88
+
89
+
90
+ ## 1.0.213 (2025-08-12)
91
+
92
+
93
+
94
+ ## 1.0.212 (2025-08-05)
95
+
96
+
97
+
98
+ ## 1.0.211 (2025-08-05)
99
+
100
+
101
+
102
+ ## 1.0.210 (2025-07-31)
103
+
104
+
105
+
106
+ ## 1.0.209 (2025-07-31)
107
+
108
+
109
+
110
+ ## 1.0.208 (2025-07-24)
111
+
112
+
113
+
114
+ ## 1.0.207 (2025-07-18)
115
+
116
+
117
+
118
+ ## 1.0.206 (2025-07-18)
119
+
120
+
121
+
122
+ ## 1.0.205 (2025-07-17)
123
+
124
+ **Note:** Version bump only for package @oanda/labs-instruments-price-chart-widget
125
+
126
+
127
+
128
+
129
+
6
130
  ## 1.0.13 (2025-08-25)
7
131
 
8
132
 
package/codegen.ts CHANGED
@@ -2,11 +2,8 @@ import type { CodegenConfig } from '@graphql-codegen/cli';
2
2
 
3
3
  const config: CodegenConfig = {
4
4
  overwrite: true,
5
- schema: [
6
- 'https://labs-api.uat.oanda.com/graphql',
7
- 'src/gql/mock/schema.graphqls',
8
- ],
9
- documents: ['src/gql/**/*.ts', 'src/**/*.ts'],
5
+ schema: 'https://labs-api.uat.oanda.com/graphql',
6
+ documents: 'src/**/*.ts',
10
7
  generates: {
11
8
  'src/gql/types/': {
12
9
  preset: 'client',
@@ -17,7 +17,9 @@ const InstrumentsPriceChartWidget = _ref => {
17
17
  theme,
18
18
  isParamError,
19
19
  logoLink,
20
- division
20
+ division,
21
+ instrument,
22
+ dataSource
21
23
  } = _ref;
22
24
  const client = new _client.ApolloClient({
23
25
  uri: graphqlUrl,
@@ -33,7 +35,9 @@ const InstrumentsPriceChartWidget = _ref => {
33
35
  linkArea: "logo",
34
36
  logoLink: logoLink
35
37
  }, _react.default.createElement(_Main.Main, {
36
- division: division
38
+ dataSource: dataSource,
39
+ division: division,
40
+ instrument: instrument
37
41
  })));
38
42
  };
39
43
  exports.InstrumentsPriceChartWidget = InstrumentsPriceChartWidget;
@@ -1 +1 @@
1
- {"version":3,"file":"InstrumentsPriceChartWidget.js","names":["_client","require","_labsWidgetCommon","_react","_interopRequireDefault","_translations","_Main","e","__esModule","default","InstrumentsPriceChartWidget","_ref","graphqlUrl","locale","theme","isParamError","logoLink","division","client","ApolloClient","uri","cache","InMemoryCache","createElement","WidgetProvider","translations","WidgetWrapper","linkArea","Main","exports"],"sources":["../../../src/InstrumentsPriceChartWidget/InstrumentsPriceChartWidget.tsx"],"sourcesContent":["import { ApolloClient, InMemoryCache } from '@apollo/client';\nimport { WidgetProvider, WidgetWrapper } from '@oanda/labs-widget-common';\nimport React from 'react';\n\nimport { translations } from '../translations';\nimport { Main } from './Main';\nimport type { InstrumentsPriceChartConfig } from './types';\n\nconst InstrumentsPriceChartWidget = ({\n graphqlUrl,\n locale,\n theme,\n isParamError,\n logoLink,\n division,\n}: InstrumentsPriceChartConfig) => {\n const client = new ApolloClient({\n uri: graphqlUrl,\n cache: new InMemoryCache(),\n });\n\n return (\n <WidgetProvider\n client={client}\n locale={locale}\n theme={theme}\n translations={translations}\n >\n <WidgetWrapper\n isParamError={isParamError}\n linkArea=\"logo\"\n logoLink={logoLink}\n >\n <Main division={division} />\n </WidgetWrapper>\n </WidgetProvider>\n );\n};\n\nexport { InstrumentsPriceChartWidget };\n"],"mappings":";;;;;;AAAA,IAAAA,OAAA,GAAAC,OAAA;AACA,IAAAC,iBAAA,GAAAD,OAAA;AACA,IAAAE,MAAA,GAAAC,sBAAA,CAAAH,OAAA;AAEA,IAAAI,aAAA,GAAAJ,OAAA;AACA,IAAAK,KAAA,GAAAL,OAAA;AAA8B,SAAAG,uBAAAG,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAG9B,MAAMG,2BAA2B,GAAGC,IAAA,IAOD;EAAA,IAPE;IACnCC,UAAU;IACVC,MAAM;IACNC,KAAK;IACLC,YAAY;IACZC,QAAQ;IACRC;EAC2B,CAAC,GAAAN,IAAA;EAC5B,MAAMO,MAAM,GAAG,IAAIC,oBAAY,CAAC;IAC9BC,GAAG,EAAER,UAAU;IACfS,KAAK,EAAE,IAAIC,qBAAa,CAAC;EAC3B,CAAC,CAAC;EAEF,OACEnB,MAAA,CAAAM,OAAA,CAAAc,aAAA,CAACrB,iBAAA,CAAAsB,cAAc;IACbN,MAAM,EAAEA,MAAO;IACfL,MAAM,EAAEA,MAAO;IACfC,KAAK,EAAEA,KAAM;IACbW,YAAY,EAAEA;EAAa,GAE3BtB,MAAA,CAAAM,OAAA,CAAAc,aAAA,CAACrB,iBAAA,CAAAwB,aAAa;IACZX,YAAY,EAAEA,YAAa;IAC3BY,QAAQ,EAAC,MAAM;IACfX,QAAQ,EAAEA;EAAS,GAEnBb,MAAA,CAAAM,OAAA,CAAAc,aAAA,CAACjB,KAAA,CAAAsB,IAAI;IAACX,QAAQ,EAAEA;EAAS,CAAE,CACd,CACD,CAAC;AAErB,CAAC;AAACY,OAAA,CAAAnB,2BAAA,GAAAA,2BAAA","ignoreList":[]}
1
+ {"version":3,"file":"InstrumentsPriceChartWidget.js","names":["_client","require","_labsWidgetCommon","_react","_interopRequireDefault","_translations","_Main","e","__esModule","default","InstrumentsPriceChartWidget","_ref","graphqlUrl","locale","theme","isParamError","logoLink","division","instrument","dataSource","client","ApolloClient","uri","cache","InMemoryCache","createElement","WidgetProvider","translations","WidgetWrapper","linkArea","Main","exports"],"sources":["../../../src/InstrumentsPriceChartWidget/InstrumentsPriceChartWidget.tsx"],"sourcesContent":["import { ApolloClient, InMemoryCache } from '@apollo/client';\nimport { WidgetProvider, WidgetWrapper } from '@oanda/labs-widget-common';\nimport React from 'react';\n\nimport { translations } from '../translations';\nimport { Main } from './Main';\nimport type { InstrumentsPriceChartConfig } from './types';\n\nconst InstrumentsPriceChartWidget = ({\n graphqlUrl,\n locale,\n theme,\n isParamError,\n logoLink,\n division,\n instrument,\n dataSource,\n}: InstrumentsPriceChartConfig) => {\n const client = new ApolloClient({\n uri: graphqlUrl,\n cache: new InMemoryCache(),\n });\n\n return (\n <WidgetProvider\n client={client}\n locale={locale}\n theme={theme}\n translations={translations}\n >\n <WidgetWrapper\n isParamError={isParamError}\n linkArea=\"logo\"\n logoLink={logoLink}\n >\n <Main\n dataSource={dataSource}\n division={division}\n instrument={instrument}\n />\n </WidgetWrapper>\n </WidgetProvider>\n );\n};\n\nexport { InstrumentsPriceChartWidget };\n"],"mappings":";;;;;;AAAA,IAAAA,OAAA,GAAAC,OAAA;AACA,IAAAC,iBAAA,GAAAD,OAAA;AACA,IAAAE,MAAA,GAAAC,sBAAA,CAAAH,OAAA;AAEA,IAAAI,aAAA,GAAAJ,OAAA;AACA,IAAAK,KAAA,GAAAL,OAAA;AAA8B,SAAAG,uBAAAG,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAG9B,MAAMG,2BAA2B,GAAGC,IAAA,IASD;EAAA,IATE;IACnCC,UAAU;IACVC,MAAM;IACNC,KAAK;IACLC,YAAY;IACZC,QAAQ;IACRC,QAAQ;IACRC,UAAU;IACVC;EAC2B,CAAC,GAAAR,IAAA;EAC5B,MAAMS,MAAM,GAAG,IAAIC,oBAAY,CAAC;IAC9BC,GAAG,EAAEV,UAAU;IACfW,KAAK,EAAE,IAAIC,qBAAa,CAAC;EAC3B,CAAC,CAAC;EAEF,OACErB,MAAA,CAAAM,OAAA,CAAAgB,aAAA,CAACvB,iBAAA,CAAAwB,cAAc;IACbN,MAAM,EAAEA,MAAO;IACfP,MAAM,EAAEA,MAAO;IACfC,KAAK,EAAEA,KAAM;IACba,YAAY,EAAEA;EAAa,GAE3BxB,MAAA,CAAAM,OAAA,CAAAgB,aAAA,CAACvB,iBAAA,CAAA0B,aAAa;IACZb,YAAY,EAAEA,YAAa;IAC3Bc,QAAQ,EAAC,MAAM;IACfb,QAAQ,EAAEA;EAAS,GAEnBb,MAAA,CAAAM,OAAA,CAAAgB,aAAA,CAACnB,KAAA,CAAAwB,IAAI;IACHX,UAAU,EAAEA,UAAW;IACvBF,QAAQ,EAAEA,QAAS;IACnBC,UAAU,EAAEA;EAAW,CACxB,CACY,CACD,CAAC;AAErB,CAAC;AAACa,OAAA,CAAArB,2BAAA,GAAAA,2BAAA","ignoreList":[]}
@@ -4,44 +4,60 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.Main = void 0;
7
+ var _client = require("@apollo/client");
7
8
  var _labsWidgetCommon = require("@oanda/labs-widget-common");
8
9
  var _react = _interopRequireWildcard(require("react"));
10
+ var _priceCandles = require("../gql/priceCandles");
11
+ var _graphql = require("../gql/types/graphql");
9
12
  var _Chart = require("./components/Chart");
13
+ var _TimeZoneLabel = require("./components/TimeZoneLabel");
10
14
  var _config = require("./config");
11
- var _getPriceCandlesMock = require("./getPriceCandlesMock");
12
- var _types = require("./types");
15
+ var _utils = require("./utils");
13
16
  function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
14
17
  function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
15
18
  const Main = _ref => {
16
19
  let {
17
- division
20
+ division,
21
+ instrument,
22
+ dataSource
18
23
  } = _ref;
19
- const [selectedTimeUnit, setSelectedTimeUnit] = (0, _react.useState)(_types.TimeSpanSubset.Day_1);
24
+ const [selectedTimeUnit, setSelectedTimeUnit] = (0, _react.useState)(_graphql.TimeSpan.Day_1);
20
25
  const {
21
26
  loading,
22
27
  data,
23
28
  error
24
- } = (0, _getPriceCandlesMock.getPriceCandlesMock)({
25
- division
29
+ } = (0, _client.useQuery)(_priceCandles.priceCandles, {
30
+ variables: {
31
+ dataSource,
32
+ division,
33
+ instrument,
34
+ granularity: (0, _utils.getGranularityForTimeSpan)(selectedTimeUnit),
35
+ timeSpan: selectedTimeUnit
36
+ },
37
+ fetchPolicy: 'cache-and-network'
26
38
  });
27
- const showError = data?.getPriceCandles.length === 0 || !data?.getPriceCandles || !!error;
39
+ const candles = (0, _utils.getCandles)(data);
40
+ const showError = candles?.length === 0 || !candles || !!error;
28
41
  return _react.default.createElement("div", {
29
42
  "data-testid": "instruments-price-chart-wrapper"
30
- }, loading && _react.default.createElement("div", {
31
- className: "lw-mb-[50px] lw-flex lw-h-[425px] lw-w-full lw-items-center lw-border lw-border-solid lw-border-border-primary"
32
- }, _react.default.createElement(_labsWidgetCommon.Spinner, {
33
- size: _labsWidgetCommon.SpinnerSize.lg
34
- })), !loading && !showError && _react.default.createElement("div", {
35
- "data-testid": "instruments-price-chart-widget"
36
43
  }, _react.default.createElement("div", {
37
44
  className: "lw-flex lw-pt-2"
38
45
  }, _react.default.createElement(_labsWidgetCommon.TimeUnitSwitch, {
39
46
  callback: setSelectedTimeUnit,
40
47
  options: _config.timeUnitConfig,
41
48
  selected: selectedTimeUnit
42
- })), _react.default.createElement(_Chart.Chart, {
43
- values: data?.getPriceCandles
44
- })));
49
+ })), loading && _react.default.createElement("div", {
50
+ className: "lw-flex lw-h-[425px] lw-w-full lw-items-center lw-border lw-border-solid lw-border-border-primary"
51
+ }, _react.default.createElement(_labsWidgetCommon.Spinner, {
52
+ size: _labsWidgetCommon.SpinnerSize.lg
53
+ })), !loading && showError && _react.default.createElement("div", {
54
+ className: "lw-flex lw-h-[425px] lw-w-full lw-items-center lw-border lw-border-solid lw-border-border-primary"
55
+ }, _react.default.createElement(_labsWidgetCommon.ChartError, null)), !loading && !showError && _react.default.createElement("div", {
56
+ "data-testid": "instruments-price-chart-widget"
57
+ }, _react.default.createElement(_Chart.Chart, {
58
+ timeSpan: selectedTimeUnit,
59
+ values: candles
60
+ })), _react.default.createElement(_TimeZoneLabel.TimeZoneLabel, null));
45
61
  };
46
62
  exports.Main = Main;
47
63
  //# sourceMappingURL=Main.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Main.js","names":["_labsWidgetCommon","require","_react","_interopRequireWildcard","_Chart","_config","_getPriceCandlesMock","_types","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","Main","_ref","division","selectedTimeUnit","setSelectedTimeUnit","useState","TimeSpanSubset","Day_1","loading","data","error","getPriceCandlesMock","showError","getPriceCandles","length","createElement","className","Spinner","size","SpinnerSize","lg","TimeUnitSwitch","callback","options","timeUnitConfig","selected","Chart","values","exports"],"sources":["../../../src/InstrumentsPriceChartWidget/Main.tsx"],"sourcesContent":["import {\n Spinner,\n SpinnerSize,\n TimeUnitSwitch,\n} from '@oanda/labs-widget-common';\nimport React, { useState } from 'react';\n\nimport { Chart } from './components/Chart';\nimport { timeUnitConfig } from './config';\nimport { getPriceCandlesMock } from './getPriceCandlesMock';\nimport { type MainProps, TimeSpanSubset } from './types';\n\nconst Main = ({ division }: MainProps) => {\n const [selectedTimeUnit, setSelectedTimeUnit] = useState(\n TimeSpanSubset.Day_1\n );\n\n const { loading, data, error } = getPriceCandlesMock({ division });\n\n const showError =\n data?.getPriceCandles.length === 0 || !data?.getPriceCandles || !!error;\n\n return (\n <div data-testid=\"instruments-price-chart-wrapper\">\n {loading && (\n <div className=\"lw-mb-[50px] lw-flex lw-h-[425px] lw-w-full lw-items-center lw-border lw-border-solid lw-border-border-primary\">\n <Spinner size={SpinnerSize.lg} />\n </div>\n )}\n\n {!loading && !showError && (\n <div data-testid=\"instruments-price-chart-widget\">\n <div className=\"lw-flex lw-pt-2\">\n <TimeUnitSwitch<TimeSpanSubset>\n callback={setSelectedTimeUnit}\n options={timeUnitConfig}\n selected={selectedTimeUnit}\n />\n </div>\n\n <Chart values={data?.getPriceCandles} />\n </div>\n )}\n </div>\n );\n};\n\nexport { Main };\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"Main.js","names":["_client","require","_labsWidgetCommon","_react","_interopRequireWildcard","_priceCandles","_graphql","_Chart","_TimeZoneLabel","_config","_utils","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","Main","_ref","division","instrument","dataSource","selectedTimeUnit","setSelectedTimeUnit","useState","TimeSpan","Day_1","loading","data","error","useQuery","priceCandles","variables","granularity","getGranularityForTimeSpan","timeSpan","fetchPolicy","candles","getCandles","showError","length","createElement","className","TimeUnitSwitch","callback","options","timeUnitConfig","selected","Spinner","size","SpinnerSize","lg","ChartError","Chart","values","TimeZoneLabel","exports"],"sources":["../../../src/InstrumentsPriceChartWidget/Main.tsx"],"sourcesContent":["import { useQuery } from '@apollo/client';\nimport {\n ChartError,\n Spinner,\n SpinnerSize,\n TimeUnitSwitch,\n} from '@oanda/labs-widget-common';\nimport React, { useState } from 'react';\n\nimport { priceCandles } from '../gql/priceCandles';\nimport {\n type PriceCandlesQuery,\n type PriceCandlesQueryVariables,\n TimeSpan,\n} from '../gql/types/graphql';\nimport { Chart } from './components/Chart';\nimport { TimeZoneLabel } from './components/TimeZoneLabel';\nimport { timeUnitConfig } from './config';\nimport { type MainProps } from './types';\nimport { getCandles, getGranularityForTimeSpan } from './utils';\n\nconst Main = ({ division, instrument, dataSource }: MainProps) => {\n const [selectedTimeUnit, setSelectedTimeUnit] = useState(TimeSpan.Day_1);\n\n const { loading, data, error } = useQuery<\n PriceCandlesQuery,\n PriceCandlesQueryVariables\n >(priceCandles, {\n variables: {\n dataSource,\n division,\n instrument,\n granularity: getGranularityForTimeSpan(selectedTimeUnit),\n timeSpan: selectedTimeUnit,\n },\n fetchPolicy: 'cache-and-network',\n });\n\n const candles = getCandles(data);\n const showError = candles?.length === 0 || !candles || !!error;\n\n return (\n <div data-testid=\"instruments-price-chart-wrapper\">\n <div className=\"lw-flex lw-pt-2\">\n <TimeUnitSwitch<TimeSpan>\n callback={setSelectedTimeUnit}\n options={timeUnitConfig}\n selected={selectedTimeUnit}\n />\n </div>\n\n {loading && (\n <div className=\"lw-flex lw-h-[425px] lw-w-full lw-items-center lw-border lw-border-solid lw-border-border-primary\">\n <Spinner size={SpinnerSize.lg} />\n </div>\n )}\n\n {!loading && showError && (\n <div className=\"lw-flex lw-h-[425px] lw-w-full lw-items-center lw-border lw-border-solid lw-border-border-primary\">\n <ChartError />\n </div>\n )}\n\n {!loading && !showError && (\n <div data-testid=\"instruments-price-chart-widget\">\n <Chart timeSpan={selectedTimeUnit} values={candles} />\n </div>\n )}\n <TimeZoneLabel />\n </div>\n );\n};\n\nexport { Main };\n"],"mappings":"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","ignoreList":[]}
@@ -21,7 +21,8 @@ echarts.registerTheme('dark_theme', (0, _labsWidgetCommon.getChartTheme)(_labsWi
21
21
  echarts.registerTheme('light_theme', (0, _labsWidgetCommon.getChartTheme)(_labsWidgetCommon.Theme.Light));
22
22
  const Chart = _ref => {
23
23
  let {
24
- values
24
+ values,
25
+ timeSpan
25
26
  } = _ref;
26
27
  const {
27
28
  isDark
@@ -36,7 +37,8 @@ const Chart = _ref => {
36
37
  option: (0, _getOption.getOption)({
37
38
  values,
38
39
  isDark,
39
- lang
40
+ lang,
41
+ timeSpan
40
42
  })
41
43
  });
42
44
  };
@@ -1 +1 @@
1
- {"version":3,"file":"Chart.js","names":["_labsWidgetCommon","require","_monoI18n","_charts","_components","echarts","_interopRequireWildcard","_renderers","_react","_interopRequireDefault","_constants","_getOption","e","__esModule","default","_getRequireWildcardCache","WeakMap","r","t","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","use","GridSimpleComponent","GraphicComponent","LineChart","DatasetComponent","CustomChart","CanvasRenderer","TooltipComponent","registerTheme","getChartTheme","Theme","Dark","Light","Chart","_ref","values","isDark","useLayoutProvider","lang","useLocale","createElement","BaseChart","chartHeight","CHART_HEIGHT","option","getOption","exports"],"sources":["../../../../src/InstrumentsPriceChartWidget/components/Chart.tsx"],"sourcesContent":["import {\n BaseChart,\n getChartTheme,\n Theme,\n useLayoutProvider,\n} from '@oanda/labs-widget-common';\nimport { useLocale } from '@oanda/mono-i18n';\nimport { CustomChart, LineChart } from 'echarts/charts';\nimport {\n DatasetComponent,\n GraphicComponent,\n GridSimpleComponent,\n TooltipComponent,\n} from 'echarts/components';\nimport * as echarts from 'echarts/core';\nimport { CanvasRenderer } from 'echarts/renderers';\nimport React from 'react';\n\nimport { CHART_HEIGHT } from './constants';\nimport { getOption } from './getOption';\nimport type { ChartProps } from './types';\n\necharts.use([\n GridSimpleComponent,\n GraphicComponent,\n LineChart,\n DatasetComponent,\n CustomChart,\n CanvasRenderer,\n TooltipComponent,\n]);\n\necharts.registerTheme('dark_theme', getChartTheme(Theme.Dark));\necharts.registerTheme('light_theme', getChartTheme(Theme.Light));\n\nexport const Chart = ({ values }: ChartProps) => {\n const { isDark } = useLayoutProvider();\n const { lang } = useLocale();\n\n return (\n <BaseChart\n chartHeight={CHART_HEIGHT}\n echarts={echarts}\n isDark={isDark}\n option={getOption({\n values,\n isDark,\n lang,\n })}\n />\n );\n};\n"],"mappings":";;;;;;AAAA,IAAAA,iBAAA,GAAAC,OAAA;AAMA,IAAAC,SAAA,GAAAD,OAAA;AACA,IAAAE,OAAA,GAAAF,OAAA;AACA,IAAAG,WAAA,GAAAH,OAAA;AAMA,IAAAI,OAAA,GAAAC,uBAAA,CAAAL,OAAA;AACA,IAAAM,UAAA,GAAAN,OAAA;AACA,IAAAO,MAAA,GAAAC,sBAAA,CAAAR,OAAA;AAEA,IAAAS,UAAA,GAAAT,OAAA;AACA,IAAAU,UAAA,GAAAV,OAAA;AAAwC,SAAAQ,uBAAAG,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAAA,SAAAG,yBAAAH,CAAA,6BAAAI,OAAA,mBAAAC,CAAA,OAAAD,OAAA,IAAAE,CAAA,OAAAF,OAAA,YAAAD,wBAAA,YAAAA,CAAAH,CAAA,WAAAA,CAAA,GAAAM,CAAA,GAAAD,CAAA,KAAAL,CAAA;AAAA,SAAAN,wBAAAM,CAAA,EAAAK,CAAA,SAAAA,CAAA,IAAAL,CAAA,IAAAA,CAAA,CAAAC,UAAA,SAAAD,CAAA,eAAAA,CAAA,uBAAAA,CAAA,yBAAAA,CAAA,WAAAE,OAAA,EAAAF,CAAA,QAAAM,CAAA,GAAAH,wBAAA,CAAAE,CAAA,OAAAC,CAAA,IAAAA,CAAA,CAAAC,GAAA,CAAAP,CAAA,UAAAM,CAAA,CAAAE,GAAA,CAAAR,CAAA,OAAAS,CAAA,KAAAC,SAAA,UAAAC,CAAA,GAAAC,MAAA,CAAAC,cAAA,IAAAD,MAAA,CAAAE,wBAAA,WAAAC,CAAA,IAAAf,CAAA,oBAAAe,CAAA,OAAAC,cAAA,CAAAC,IAAA,CAAAjB,CAAA,EAAAe,CAAA,SAAAG,CAAA,GAAAP,CAAA,GAAAC,MAAA,CAAAE,wBAAA,CAAAd,CAAA,EAAAe,CAAA,UAAAG,CAAA,KAAAA,CAAA,CAAAV,GAAA,IAAAU,CAAA,CAAAC,GAAA,IAAAP,MAAA,CAAAC,cAAA,CAAAJ,CAAA,EAAAM,CAAA,EAAAG,CAAA,IAAAT,CAAA,CAAAM,CAAA,IAAAf,CAAA,CAAAe,CAAA,YAAAN,CAAA,CAAAP,OAAA,GAAAF,CAAA,EAAAM,CAAA,IAAAA,CAAA,CAAAa,GAAA,CAAAnB,CAAA,EAAAS,CAAA,GAAAA,CAAA;AAGxChB,OAAO,CAAC2B,GAAG,CAAC,CACVC,+BAAmB,EACnBC,4BAAgB,EAChBC,iBAAS,EACTC,4BAAgB,EAChBC,mBAAW,EACXC,yBAAc,EACdC,4BAAgB,CACjB,CAAC;AAEFlC,OAAO,CAACmC,aAAa,CAAC,YAAY,EAAE,IAAAC,+BAAa,EAACC,uBAAK,CAACC,IAAI,CAAC,CAAC;AAC9DtC,OAAO,CAACmC,aAAa,CAAC,aAAa,EAAE,IAAAC,+BAAa,EAACC,uBAAK,CAACE,KAAK,CAAC,CAAC;AAEzD,MAAMC,KAAK,GAAGC,IAAA,IAA4B;EAAA,IAA3B;IAAEC;EAAmB,CAAC,GAAAD,IAAA;EAC1C,MAAM;IAAEE;EAAO,CAAC,GAAG,IAAAC,mCAAiB,EAAC,CAAC;EACtC,MAAM;IAAEC;EAAK,CAAC,GAAG,IAAAC,mBAAS,EAAC,CAAC;EAE5B,OACE3C,MAAA,CAAAM,OAAA,CAAAsC,aAAA,CAACpD,iBAAA,CAAAqD,SAAS;IACRC,WAAW,EAAEC,uBAAa;IAC1BlD,OAAO,EAAEA,OAAQ;IACjB2C,MAAM,EAAEA,MAAO;IACfQ,MAAM,EAAE,IAAAC,oBAAS,EAAC;MAChBV,MAAM;MACNC,MAAM;MACNE;IACF,CAAC;EAAE,CACJ,CAAC;AAEN,CAAC;AAACQ,OAAA,CAAAb,KAAA,GAAAA,KAAA","ignoreList":[]}
1
+ {"version":3,"file":"Chart.js","names":["_labsWidgetCommon","require","_monoI18n","_charts","_components","echarts","_interopRequireWildcard","_renderers","_react","_interopRequireDefault","_constants","_getOption","e","__esModule","default","_getRequireWildcardCache","WeakMap","r","t","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","use","GridSimpleComponent","GraphicComponent","LineChart","DatasetComponent","CustomChart","CanvasRenderer","TooltipComponent","registerTheme","getChartTheme","Theme","Dark","Light","Chart","_ref","values","timeSpan","isDark","useLayoutProvider","lang","useLocale","createElement","BaseChart","chartHeight","CHART_HEIGHT","option","getOption","exports"],"sources":["../../../../src/InstrumentsPriceChartWidget/components/Chart.tsx"],"sourcesContent":["import {\n BaseChart,\n getChartTheme,\n Theme,\n useLayoutProvider,\n} from '@oanda/labs-widget-common';\nimport { useLocale } from '@oanda/mono-i18n';\nimport { CustomChart, LineChart } from 'echarts/charts';\nimport {\n DatasetComponent,\n GraphicComponent,\n GridSimpleComponent,\n TooltipComponent,\n} from 'echarts/components';\nimport * as echarts from 'echarts/core';\nimport { CanvasRenderer } from 'echarts/renderers';\nimport React from 'react';\n\nimport { CHART_HEIGHT } from './constants';\nimport { getOption } from './getOption';\nimport type { ChartProps } from './types';\n\necharts.use([\n GridSimpleComponent,\n GraphicComponent,\n LineChart,\n DatasetComponent,\n CustomChart,\n CanvasRenderer,\n TooltipComponent,\n]);\n\necharts.registerTheme('dark_theme', getChartTheme(Theme.Dark));\necharts.registerTheme('light_theme', getChartTheme(Theme.Light));\n\nexport const Chart = ({ values, timeSpan }: ChartProps) => {\n const { isDark } = useLayoutProvider();\n const { lang } = useLocale();\n\n return (\n <BaseChart\n chartHeight={CHART_HEIGHT}\n echarts={echarts}\n isDark={isDark}\n option={getOption({\n values,\n isDark,\n lang,\n timeSpan,\n })}\n />\n );\n};\n"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,29 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.TimeZoneLabel = void 0;
7
+ var _monoI18n = require("@oanda/mono-i18n");
8
+ var _react = _interopRequireDefault(require("react"));
9
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
10
+ const getBrowserOffsetLabel = () => {
11
+ const parts = new Intl.DateTimeFormat(undefined, {
12
+ timeZoneName: 'longOffset'
13
+ }).formatToParts(new Date());
14
+ const tzPart = parts.find(p => p.type === 'timeZoneName');
15
+ return tzPart ? tzPart.value : '';
16
+ };
17
+ const TimeZoneLabel = () => {
18
+ const {
19
+ lang
20
+ } = (0, _monoI18n.useLocale)();
21
+ return _react.default.createElement("span", {
22
+ className: "lw-ml-1 lw-font-sans lw-text-xs lw-font-bold",
23
+ "data-testid": "timezone-label"
24
+ }, `${lang('timezone_display', {
25
+ timezone: getBrowserOffsetLabel()
26
+ })}`);
27
+ };
28
+ exports.TimeZoneLabel = TimeZoneLabel;
29
+ //# sourceMappingURL=TimeZoneLabel.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TimeZoneLabel.js","names":["_monoI18n","require","_react","_interopRequireDefault","e","__esModule","default","getBrowserOffsetLabel","parts","Intl","DateTimeFormat","undefined","timeZoneName","formatToParts","Date","tzPart","find","p","type","value","TimeZoneLabel","lang","useLocale","createElement","className","timezone","exports"],"sources":["../../../../src/InstrumentsPriceChartWidget/components/TimeZoneLabel.tsx"],"sourcesContent":["import { useLocale } from '@oanda/mono-i18n';\nimport React from 'react';\n\nconst getBrowserOffsetLabel = (): string => {\n const parts = new Intl.DateTimeFormat(undefined, {\n timeZoneName: 'longOffset',\n }).formatToParts(new Date());\n\n const tzPart = parts.find((p) => p.type === 'timeZoneName');\n return tzPart ? tzPart.value : '';\n};\n\nexport const TimeZoneLabel = () => {\n const { lang } = useLocale();\n\n return (\n <span\n className=\"lw-ml-1 lw-font-sans lw-text-xs lw-font-bold\"\n data-testid=\"timezone-label\"\n >{`${lang('timezone_display', {\n timezone: getBrowserOffsetLabel(),\n })}`}</span>\n );\n};\n"],"mappings":";;;;;;AAAA,IAAAA,SAAA,GAAAC,OAAA;AACA,IAAAC,MAAA,GAAAC,sBAAA,CAAAF,OAAA;AAA0B,SAAAE,uBAAAC,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAE1B,MAAMG,qBAAqB,GAAGA,CAAA,KAAc;EAC1C,MAAMC,KAAK,GAAG,IAAIC,IAAI,CAACC,cAAc,CAACC,SAAS,EAAE;IAC/CC,YAAY,EAAE;EAChB,CAAC,CAAC,CAACC,aAAa,CAAC,IAAIC,IAAI,CAAC,CAAC,CAAC;EAE5B,MAAMC,MAAM,GAAGP,KAAK,CAACQ,IAAI,CAAEC,CAAC,IAAKA,CAAC,CAACC,IAAI,KAAK,cAAc,CAAC;EAC3D,OAAOH,MAAM,GAAGA,MAAM,CAACI,KAAK,GAAG,EAAE;AACnC,CAAC;AAEM,MAAMC,aAAa,GAAGA,CAAA,KAAM;EACjC,MAAM;IAAEC;EAAK,CAAC,GAAG,IAAAC,mBAAS,EAAC,CAAC;EAE5B,OACEpB,MAAA,CAAAI,OAAA,CAAAiB,aAAA;IACEC,SAAS,EAAC,8CAA8C;IACxD,eAAY;EAAgB,GAC5B,GAAGH,IAAI,CAAC,kBAAkB,EAAE;IAC5BI,QAAQ,EAAElB,qBAAqB,CAAC;EAClC,CAAC,CAAC,EAAS,CAAC;AAEhB,CAAC;AAACmB,OAAA,CAAAN,aAAA,GAAAA,aAAA","ignoreList":[]}
@@ -3,16 +3,55 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.tooltipFormatter = exports.dailyFormatter = void 0;
7
- var _labsWidgetCommon = require("@oanda/labs-widget-common");
8
- const dailyFormatter = timestamp => {
9
- const date = new Date(timestamp);
10
- return date.toLocaleTimeString(undefined, {
11
- hour: 'numeric',
12
- hour12: true
13
- });
6
+ exports.tooltipFormatter = exports.showSplitLine = exports.labelFormatter = void 0;
7
+ var _graphql = require("../../gql/types/graphql");
8
+ const showSplitLine = (index, total) => {
9
+ const interval = Math.max(1, Math.floor(total / 6));
10
+ return index % interval === 0;
14
11
  };
15
- exports.dailyFormatter = dailyFormatter;
12
+ exports.showSplitLine = showSplitLine;
13
+ const showChartIntervalLabel = (timeSpan, values, index) => {
14
+ const date = new Date(values[index].point);
15
+ const labelInterval = Math.max(1, Math.floor(values.length / 6));
16
+ if (timeSpan === _graphql.TimeSpan.Month_6 || timeSpan === _graphql.TimeSpan.Year_1 || timeSpan === _graphql.TimeSpan.Year_5) {
17
+ const prev = index > 0 ? new Date(values[index - 1].point) : null;
18
+ const monthChanged = !prev || date.getMonth() !== prev.getMonth() || date.getFullYear() !== prev.getFullYear();
19
+ return monthChanged;
20
+ }
21
+ return index % labelInterval === 0;
22
+ };
23
+ const labelFormatter = (timeSpan, values) => (_, index) => {
24
+ const date = new Date(values[index].point);
25
+ if (!showChartIntervalLabel(timeSpan, values, index)) return '';
26
+ switch (timeSpan) {
27
+ case _graphql.TimeSpan.Day_1:
28
+ const hour = date.getHours();
29
+ return `${String(hour).padStart(2, '0')}:00`;
30
+ case _graphql.TimeSpan.Week_1:
31
+ case _graphql.TimeSpan.Month_1:
32
+ return date.toLocaleDateString(undefined, {
33
+ day: '2-digit',
34
+ month: 'short'
35
+ });
36
+ case _graphql.TimeSpan.Month_6:
37
+ case _graphql.TimeSpan.Year_1:
38
+ case _graphql.TimeSpan.Year_5:
39
+ return date.toLocaleDateString(undefined, {
40
+ month: 'short'
41
+ });
42
+ default:
43
+ return '';
44
+ }
45
+ };
46
+ exports.labelFormatter = labelFormatter;
47
+ const chartDateTimeFormat = iso => new Date(iso).toLocaleString(undefined, {
48
+ year: 'numeric',
49
+ month: '2-digit',
50
+ day: '2-digit',
51
+ hour: '2-digit',
52
+ minute: '2-digit',
53
+ hour12: false
54
+ });
16
55
  const tooltipFormatter = _ref => {
17
56
  let {
18
57
  lang,
@@ -23,9 +62,9 @@ const tooltipFormatter = _ref => {
23
62
  high,
24
63
  close,
25
64
  low,
26
- time
65
+ point
27
66
  } = data;
28
- const date = (0, _labsWidgetCommon.chartDateTimeFormat)((0, _labsWidgetCommon.getChartDateAndTime)(time));
67
+ const date = chartDateTimeFormat(point);
29
68
  return `
30
69
  <div style="display:flex; flex-direction:column;">
31
70
  <span style="margin-bottom:5px;">${date}</span>
@@ -1 +1 @@
1
- {"version":3,"file":"formatters.js","names":["_labsWidgetCommon","require","dailyFormatter","timestamp","date","Date","toLocaleTimeString","undefined","hour","hour12","exports","tooltipFormatter","_ref","lang","data","open","high","close","low","time","chartDateTimeFormat","getChartDateAndTime","toFixed"],"sources":["../../../../src/InstrumentsPriceChartWidget/components/formatters.ts"],"sourcesContent":["import {\n chartDateTimeFormat,\n getChartDateAndTime,\n} from '@oanda/labs-widget-common';\n\nimport type { TooltipFormatterParams } from './types';\n\nexport const dailyFormatter = (timestamp: string) => {\n const date = new Date(timestamp);\n return date.toLocaleTimeString(undefined, {\n hour: 'numeric',\n hour12: true,\n });\n};\n\nexport const tooltipFormatter = ({ lang, data }: TooltipFormatterParams) => {\n const { open, high, close, low, time } = data;\n const date = chartDateTimeFormat(getChartDateAndTime(time));\n\n return `\n <div style=\"display:flex; flex-direction:column;\">\n <span style=\"margin-bottom:5px;\">${date}</span>\n ${lang('open')}: ${open.toFixed(4)}<br />\n ${lang('high')}: ${high.toFixed(4)}<br />\n ${lang('low')}: ${low.toFixed(4)}<br />\n ${lang('close')}: ${close.toFixed(4)}\n </div>\n `;\n};\n"],"mappings":";;;;;;AAAA,IAAAA,iBAAA,GAAAC,OAAA;AAOO,MAAMC,cAAc,GAAIC,SAAiB,IAAK;EACnD,MAAMC,IAAI,GAAG,IAAIC,IAAI,CAACF,SAAS,CAAC;EAChC,OAAOC,IAAI,CAACE,kBAAkB,CAACC,SAAS,EAAE;IACxCC,IAAI,EAAE,SAAS;IACfC,MAAM,EAAE;EACV,CAAC,CAAC;AACJ,CAAC;AAACC,OAAA,CAAAR,cAAA,GAAAA,cAAA;AAEK,MAAMS,gBAAgB,GAAGC,IAAA,IAA4C;EAAA,IAA3C;IAAEC,IAAI;IAAEC;EAA6B,CAAC,GAAAF,IAAA;EACrE,MAAM;IAAEG,IAAI;IAAEC,IAAI;IAAEC,KAAK;IAAEC,GAAG;IAAEC;EAAK,CAAC,GAAGL,IAAI;EAC7C,MAAMV,IAAI,GAAG,IAAAgB,qCAAmB,EAAC,IAAAC,qCAAmB,EAACF,IAAI,CAAC,CAAC;EAE3D,OAAO;AACT;AACA,yCAAyCf,IAAI;AAC7C,QAAQS,IAAI,CAAC,MAAM,CAAC,KAAKE,IAAI,CAACO,OAAO,CAAC,CAAC,CAAC;AACxC,QAAQT,IAAI,CAAC,MAAM,CAAC,KAAKG,IAAI,CAACM,OAAO,CAAC,CAAC,CAAC;AACxC,QAAQT,IAAI,CAAC,KAAK,CAAC,KAAKK,GAAG,CAACI,OAAO,CAAC,CAAC,CAAC;AACtC,QAAQT,IAAI,CAAC,OAAO,CAAC,KAAKI,KAAK,CAACK,OAAO,CAAC,CAAC,CAAC;AAC1C;AACA,GAAG;AACH,CAAC;AAACZ,OAAA,CAAAC,gBAAA,GAAAA,gBAAA","ignoreList":[]}
1
+ {"version":3,"file":"formatters.js","names":["_graphql","require","showSplitLine","index","total","interval","Math","max","floor","exports","showChartIntervalLabel","timeSpan","values","date","Date","point","labelInterval","length","TimeSpan","Month_6","Year_1","Year_5","prev","monthChanged","getMonth","getFullYear","labelFormatter","_","Day_1","hour","getHours","String","padStart","Week_1","Month_1","toLocaleDateString","undefined","day","month","chartDateTimeFormat","iso","toLocaleString","year","minute","hour12","tooltipFormatter","_ref","lang","data","open","high","close","low","toFixed"],"sources":["../../../../src/InstrumentsPriceChartWidget/components/formatters.ts"],"sourcesContent":["import { TimeSpan } from '../../gql/types/graphql';\nimport type { TooltipFormatterParams } from './types';\n\nexport const showSplitLine = (index: number, total: number): boolean => {\n const interval = Math.max(1, Math.floor(total / 6));\n return index % interval === 0;\n};\n\nconst showChartIntervalLabel = (\n timeSpan: TimeSpan,\n values: { point: string }[],\n index: number\n): boolean => {\n const date = new Date(values[index].point);\n const labelInterval = Math.max(1, Math.floor(values.length / 6));\n\n if (\n timeSpan === TimeSpan.Month_6 ||\n timeSpan === TimeSpan.Year_1 ||\n timeSpan === TimeSpan.Year_5\n ) {\n const prev = index > 0 ? new Date(values[index - 1].point) : null;\n const monthChanged =\n !prev ||\n date.getMonth() !== prev.getMonth() ||\n date.getFullYear() !== prev.getFullYear();\n\n return monthChanged;\n }\n\n return index % labelInterval === 0;\n};\n\nexport const labelFormatter =\n (timeSpan: TimeSpan, values: { point: string }[]) =>\n (_: string, index: number): string => {\n const date = new Date(values[index].point);\n\n if (!showChartIntervalLabel(timeSpan, values, index)) return '';\n\n switch (timeSpan) {\n case TimeSpan.Day_1:\n const hour = date.getHours();\n return `${String(hour).padStart(2, '0')}:00`;\n\n case TimeSpan.Week_1:\n case TimeSpan.Month_1:\n return date.toLocaleDateString(undefined, {\n day: '2-digit',\n month: 'short',\n });\n\n case TimeSpan.Month_6:\n case TimeSpan.Year_1:\n case TimeSpan.Year_5:\n return date.toLocaleDateString(undefined, {\n month: 'short',\n });\n\n default:\n return '';\n }\n };\n\nconst chartDateTimeFormat = (iso: string) =>\n new Date(iso).toLocaleString(undefined, {\n year: 'numeric',\n month: '2-digit',\n day: '2-digit',\n hour: '2-digit',\n minute: '2-digit',\n hour12: false,\n });\n\nexport const tooltipFormatter = ({ lang, data }: TooltipFormatterParams) => {\n const { open, high, close, low, point } = data;\n const date = chartDateTimeFormat(point);\n\n return `\n <div style=\"display:flex; flex-direction:column;\">\n <span style=\"margin-bottom:5px;\">${date}</span>\n ${lang('open')}: ${open.toFixed(4)}<br />\n ${lang('high')}: ${high.toFixed(4)}<br />\n ${lang('low')}: ${low.toFixed(4)}<br />\n ${lang('close')}: ${close.toFixed(4)}\n </div>\n `;\n};\n"],"mappings":"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","ignoreList":[]}
@@ -11,11 +11,10 @@ const getOption = _ref => {
11
11
  let {
12
12
  values,
13
13
  isDark,
14
- lang
14
+ lang,
15
+ timeSpan
15
16
  } = _ref;
16
- const priceValues = values.map(d => d.candle.high);
17
- const timestamps = values.map(d => (0, _formatters.dailyFormatter)(d.time));
18
- const labelInterval = Math.max(1, Math.floor(timestamps.length / 6));
17
+ const priceValues = values.map(d => d.high);
19
18
  const gridLines = (0, _labsWidgetCommon.getGridLines)({
20
19
  isDark,
21
20
  chartWidth: _constants.CHART_WIDTH,
@@ -25,6 +24,7 @@ const getOption = _ref => {
25
24
  bottomLeftBox: false
26
25
  });
27
26
  return {
27
+ animation: false,
28
28
  tooltip: {
29
29
  trigger: 'axis',
30
30
  axisPointer: {
@@ -42,18 +42,18 @@ const getOption = _ref => {
42
42
  xAxis: {
43
43
  type: 'category',
44
44
  boundaryGap: false,
45
- data: timestamps,
45
+ data: values.map(d => d.point),
46
46
  axisTick: {
47
47
  show: false
48
48
  },
49
49
  axisLabel: {
50
- margin: 10,
51
- interval: index => index % labelInterval === 0,
52
- formatter: (value, index) => index % labelInterval === 0 ? value : ''
50
+ padding: [0, 0, 0, 30],
51
+ interval: 'auto',
52
+ formatter: (0, _formatters.labelFormatter)(timeSpan, values)
53
53
  },
54
54
  splitLine: {
55
55
  show: true,
56
- interval: index => index % labelInterval === 0
56
+ interval: index => (0, _formatters.showSplitLine)(index, values.length)
57
57
  }
58
58
  },
59
59
  yAxis: {
@@ -69,7 +69,7 @@ const getOption = _ref => {
69
69
  show: false
70
70
  },
71
71
  axisLabel: {
72
- margin: 8,
72
+ margin: 10,
73
73
  formatter: value => {
74
74
  const dataMin = Math.floor(Math.min(...priceValues) * 100) / 100;
75
75
  const dataMax = Math.ceil(Math.max(...priceValues) * 100) / 100;
@@ -87,9 +87,9 @@ const getOption = _ref => {
87
87
  name: 'price-close',
88
88
  type: 'line',
89
89
  data: values.map(d => ({
90
- value: d.candle.high,
91
- ...d.candle,
92
- time: d.time
90
+ value: d.high,
91
+ ...d,
92
+ time: d.point
93
93
  })),
94
94
  smooth: true,
95
95
  symbol: 'none',
@@ -1 +1 @@
1
- {"version":3,"file":"getOption.js","names":["_labsWidgetCommon","require","_constants","_formatters","getOption","_ref","values","isDark","lang","priceValues","map","d","candle","high","timestamps","dailyFormatter","time","labelInterval","Math","max","floor","length","gridLines","getGridLines","chartWidth","CHART_WIDTH","chartHeight","CHART_HEIGHT","xLabelsSize","X_LABEL_SIZE","yLabelSize","Y_LABEL_SIZE_DESKTOP","bottomLeftBox","tooltip","trigger","axisPointer","axis","formatter","params","p","Array","isArray","data","tooltipFormatter","xAxis","type","boundaryGap","axisTick","show","axisLabel","margin","interval","index","value","splitLine","yAxis","position","min","CHART_INTERVAL","ceil","axisLine","dataMin","dataMax","toFixed","series","name","smooth","symbol","lineStyle","color","colorPalette","navyBlue","width","areaStyle","x","y","x2","y2","colorStops","offset","brightBlue30","brightBlue","grid","top","left","right","bottom","graphic","getLineCommons","shape","x1","y1","exports"],"sources":["../../../../src/InstrumentsPriceChartWidget/components/getOption.ts"],"sourcesContent":["import {\n colorPalette,\n getGridLines,\n getLineCommons,\n} from '@oanda/labs-widget-common';\n\nimport {\n CHART_HEIGHT,\n CHART_INTERVAL,\n CHART_WIDTH,\n X_LABEL_SIZE,\n Y_LABEL_SIZE_DESKTOP,\n} from './constants';\nimport { dailyFormatter, tooltipFormatter } from './formatters';\nimport type { ChartValue, GetOptionType } from './types';\n\nexport const getOption: GetOptionType = ({ values, isDark, lang }) => {\n const priceValues = values.map((d) => d.candle.high);\n\n const timestamps = values.map((d) => dailyFormatter(d.time));\n\n const labelInterval = Math.max(1, Math.floor(timestamps.length / 6));\n\n const gridLines = getGridLines({\n isDark,\n chartWidth: CHART_WIDTH,\n chartHeight: CHART_HEIGHT,\n xLabelsSize: X_LABEL_SIZE,\n yLabelSize: Y_LABEL_SIZE_DESKTOP,\n bottomLeftBox: false,\n });\n\n return {\n tooltip: {\n trigger: 'axis',\n axisPointer: {\n axis: 'x',\n },\n formatter: (params) => {\n const p = Array.isArray(params) ? params[0] : params;\n const data = p.data as {\n time: string;\n open: number;\n high: number;\n low: number;\n close: number;\n };\n\n return tooltipFormatter({ lang, data });\n },\n },\n xAxis: {\n type: 'category',\n boundaryGap: false,\n data: timestamps,\n axisTick: {\n show: false,\n },\n axisLabel: {\n margin: 10,\n interval: (index: number) => index % labelInterval === 0,\n formatter: (value: string, index: number) =>\n index % labelInterval === 0 ? value : '',\n },\n splitLine: {\n show: true,\n interval: (index: number) => index % labelInterval === 0,\n },\n },\n yAxis: {\n type: 'value',\n position: 'right',\n min: (value: ChartValue) =>\n Math.floor(value.min * 100) / 100 - CHART_INTERVAL,\n max: (value: ChartValue) =>\n Math.ceil(value.max * 100) / 100 + CHART_INTERVAL,\n interval: CHART_INTERVAL,\n axisLine: { show: false },\n axisTick: { show: false },\n axisLabel: {\n margin: 8,\n formatter: (value: number) => {\n const dataMin = Math.floor(Math.min(...priceValues) * 100) / 100;\n const dataMax = Math.ceil(Math.max(...priceValues) * 100) / 100;\n if (value < dataMin || value > dataMax) {\n return '';\n }\n return value.toFixed(2);\n },\n },\n splitLine: {\n show: true,\n },\n },\n series: [\n {\n name: 'price-close',\n type: 'line',\n data: values.map((d) => ({\n value: d.candle.high,\n ...d.candle,\n time: d.time,\n })),\n smooth: true,\n symbol: 'none',\n lineStyle: {\n color: colorPalette.navyBlue,\n width: 2,\n },\n areaStyle: {\n color: {\n type: 'linear',\n x: 0,\n y: 0,\n x2: 0,\n y2: 1,\n colorStops: [\n { offset: 0, color: colorPalette.brightBlue30 },\n { offset: 1, color: colorPalette.brightBlue },\n ],\n },\n },\n },\n ],\n grid: [\n {\n name: 'main-grid',\n top: 0,\n left: 0,\n right: `${Y_LABEL_SIZE_DESKTOP}px`,\n bottom: `${X_LABEL_SIZE}px`,\n },\n ],\n graphic: [\n ...gridLines,\n {\n ...getLineCommons(isDark),\n top: 0,\n right: 0,\n shape: {\n x1: 0,\n y1: 0,\n x2: 0,\n y2: 0,\n },\n },\n ],\n };\n};\n"],"mappings":";;;;;;AAAA,IAAAA,iBAAA,GAAAC,OAAA;AAMA,IAAAC,UAAA,GAAAD,OAAA;AAOA,IAAAE,WAAA,GAAAF,OAAA;AAGO,MAAMG,SAAwB,GAAGC,IAAA,IAA8B;EAAA,IAA7B;IAAEC,MAAM;IAAEC,MAAM;IAAEC;EAAK,CAAC,GAAAH,IAAA;EAC/D,MAAMI,WAAW,GAAGH,MAAM,CAACI,GAAG,CAAEC,CAAC,IAAKA,CAAC,CAACC,MAAM,CAACC,IAAI,CAAC;EAEpD,MAAMC,UAAU,GAAGR,MAAM,CAACI,GAAG,CAAEC,CAAC,IAAK,IAAAI,0BAAc,EAACJ,CAAC,CAACK,IAAI,CAAC,CAAC;EAE5D,MAAMC,aAAa,GAAGC,IAAI,CAACC,GAAG,CAAC,CAAC,EAAED,IAAI,CAACE,KAAK,CAACN,UAAU,CAACO,MAAM,GAAG,CAAC,CAAC,CAAC;EAEpE,MAAMC,SAAS,GAAG,IAAAC,8BAAY,EAAC;IAC7BhB,MAAM;IACNiB,UAAU,EAAEC,sBAAW;IACvBC,WAAW,EAAEC,uBAAY;IACzBC,WAAW,EAAEC,uBAAY;IACzBC,UAAU,EAAEC,+BAAoB;IAChCC,aAAa,EAAE;EACjB,CAAC,CAAC;EAEF,OAAO;IACLC,OAAO,EAAE;MACPC,OAAO,EAAE,MAAM;MACfC,WAAW,EAAE;QACXC,IAAI,EAAE;MACR,CAAC;MACDC,SAAS,EAAGC,MAAM,IAAK;QACrB,MAAMC,CAAC,GAAGC,KAAK,CAACC,OAAO,CAACH,MAAM,CAAC,GAAGA,MAAM,CAAC,CAAC,CAAC,GAAGA,MAAM;QACpD,MAAMI,IAAI,GAAGH,CAAC,CAACG,IAMd;QAED,OAAO,IAAAC,4BAAgB,EAAC;UAAEnC,IAAI;UAAEkC;QAAK,CAAC,CAAC;MACzC;IACF,CAAC;IACDE,KAAK,EAAE;MACLC,IAAI,EAAE,UAAU;MAChBC,WAAW,EAAE,KAAK;MAClBJ,IAAI,EAAE5B,UAAU;MAChBiC,QAAQ,EAAE;QACRC,IAAI,EAAE;MACR,CAAC;MACDC,SAAS,EAAE;QACTC,MAAM,EAAE,EAAE;QACVC,QAAQ,EAAGC,KAAa,IAAKA,KAAK,GAAGnC,aAAa,KAAK,CAAC;QACxDoB,SAAS,EAAEA,CAACgB,KAAa,EAAED,KAAa,KACtCA,KAAK,GAAGnC,aAAa,KAAK,CAAC,GAAGoC,KAAK,GAAG;MAC1C,CAAC;MACDC,SAAS,EAAE;QACTN,IAAI,EAAE,IAAI;QACVG,QAAQ,EAAGC,KAAa,IAAKA,KAAK,GAAGnC,aAAa,KAAK;MACzD;IACF,CAAC;IACDsC,KAAK,EAAE;MACLV,IAAI,EAAE,OAAO;MACbW,QAAQ,EAAE,OAAO;MACjBC,GAAG,EAAGJ,KAAiB,IACrBnC,IAAI,CAACE,KAAK,CAACiC,KAAK,CAACI,GAAG,GAAG,GAAG,CAAC,GAAG,GAAG,GAAGC,yBAAc;MACpDvC,GAAG,EAAGkC,KAAiB,IACrBnC,IAAI,CAACyC,IAAI,CAACN,KAAK,CAAClC,GAAG,GAAG,GAAG,CAAC,GAAG,GAAG,GAAGuC,yBAAc;MACnDP,QAAQ,EAAEO,yBAAc;MACxBE,QAAQ,EAAE;QAAEZ,IAAI,EAAE;MAAM,CAAC;MACzBD,QAAQ,EAAE;QAAEC,IAAI,EAAE;MAAM,CAAC;MACzBC,SAAS,EAAE;QACTC,MAAM,EAAE,CAAC;QACTb,SAAS,EAAGgB,KAAa,IAAK;UAC5B,MAAMQ,OAAO,GAAG3C,IAAI,CAACE,KAAK,CAACF,IAAI,CAACuC,GAAG,CAAC,GAAGhD,WAAW,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG;UAChE,MAAMqD,OAAO,GAAG5C,IAAI,CAACyC,IAAI,CAACzC,IAAI,CAACC,GAAG,CAAC,GAAGV,WAAW,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG;UAC/D,IAAI4C,KAAK,GAAGQ,OAAO,IAAIR,KAAK,GAAGS,OAAO,EAAE;YACtC,OAAO,EAAE;UACX;UACA,OAAOT,KAAK,CAACU,OAAO,CAAC,CAAC,CAAC;QACzB;MACF,CAAC;MACDT,SAAS,EAAE;QACTN,IAAI,EAAE;MACR;IACF,CAAC;IACDgB,MAAM,EAAE,CACN;MACEC,IAAI,EAAE,aAAa;MACnBpB,IAAI,EAAE,MAAM;MACZH,IAAI,EAAEpC,MAAM,CAACI,GAAG,CAAEC,CAAC,KAAM;QACvB0C,KAAK,EAAE1C,CAAC,CAACC,MAAM,CAACC,IAAI;QACpB,GAAGF,CAAC,CAACC,MAAM;QACXI,IAAI,EAAEL,CAAC,CAACK;MACV,CAAC,CAAC,CAAC;MACHkD,MAAM,EAAE,IAAI;MACZC,MAAM,EAAE,MAAM;MACdC,SAAS,EAAE;QACTC,KAAK,EAAEC,8BAAY,CAACC,QAAQ;QAC5BC,KAAK,EAAE;MACT,CAAC;MACDC,SAAS,EAAE;QACTJ,KAAK,EAAE;UACLxB,IAAI,EAAE,QAAQ;UACd6B,CAAC,EAAE,CAAC;UACJC,CAAC,EAAE,CAAC;UACJC,EAAE,EAAE,CAAC;UACLC,EAAE,EAAE,CAAC;UACLC,UAAU,EAAE,CACV;YAAEC,MAAM,EAAE,CAAC;YAAEV,KAAK,EAAEC,8BAAY,CAACU;UAAa,CAAC,EAC/C;YAAED,MAAM,EAAE,CAAC;YAAEV,KAAK,EAAEC,8BAAY,CAACW;UAAW,CAAC;QAEjD;MACF;IACF,CAAC,CACF;IACDC,IAAI,EAAE,CACJ;MACEjB,IAAI,EAAE,WAAW;MACjBkB,GAAG,EAAE,CAAC;MACNC,IAAI,EAAE,CAAC;MACPC,KAAK,EAAE,GAAGtD,+BAAoB,IAAI;MAClCuD,MAAM,EAAE,GAAGzD,uBAAY;IACzB,CAAC,CACF;IACD0D,OAAO,EAAE,CACP,GAAGjE,SAAS,EACZ;MACE,GAAG,IAAAkE,gCAAc,EAACjF,MAAM,CAAC;MACzB4E,GAAG,EAAE,CAAC;MACNE,KAAK,EAAE,CAAC;MACRI,KAAK,EAAE;QACLC,EAAE,EAAE,CAAC;QACLC,EAAE,EAAE,CAAC;QACLf,EAAE,EAAE,CAAC;QACLC,EAAE,EAAE;MACN;IACF,CAAC;EAEL,CAAC;AACH,CAAC;AAACe,OAAA,CAAAxF,SAAA,GAAAA,SAAA","ignoreList":[]}
1
+ {"version":3,"file":"getOption.js","names":["_labsWidgetCommon","require","_constants","_formatters","getOption","_ref","values","isDark","lang","timeSpan","priceValues","map","d","high","gridLines","getGridLines","chartWidth","CHART_WIDTH","chartHeight","CHART_HEIGHT","xLabelsSize","X_LABEL_SIZE","yLabelSize","Y_LABEL_SIZE_DESKTOP","bottomLeftBox","animation","tooltip","trigger","axisPointer","axis","formatter","params","p","Array","isArray","data","tooltipFormatter","xAxis","type","boundaryGap","point","axisTick","show","axisLabel","padding","interval","labelFormatter","splitLine","index","showSplitLine","length","yAxis","position","min","value","Math","floor","CHART_INTERVAL","max","ceil","axisLine","margin","dataMin","dataMax","toFixed","series","name","time","smooth","symbol","lineStyle","color","colorPalette","navyBlue","width","areaStyle","x","y","x2","y2","colorStops","offset","brightBlue30","brightBlue","grid","top","left","right","bottom","graphic","getLineCommons","shape","x1","y1","exports"],"sources":["../../../../src/InstrumentsPriceChartWidget/components/getOption.ts"],"sourcesContent":["import {\n colorPalette,\n getGridLines,\n getLineCommons,\n} from '@oanda/labs-widget-common';\n\nimport {\n CHART_HEIGHT,\n CHART_INTERVAL,\n CHART_WIDTH,\n X_LABEL_SIZE,\n Y_LABEL_SIZE_DESKTOP,\n} from './constants';\nimport { labelFormatter, showSplitLine, tooltipFormatter } from './formatters';\nimport type { ChartValue, GetOptionType } from './types';\n\nexport const getOption: GetOptionType = ({\n values,\n isDark,\n lang,\n timeSpan,\n}) => {\n const priceValues = values.map((d) => d.high);\n\n const gridLines = getGridLines({\n isDark,\n chartWidth: CHART_WIDTH,\n chartHeight: CHART_HEIGHT,\n xLabelsSize: X_LABEL_SIZE,\n yLabelSize: Y_LABEL_SIZE_DESKTOP,\n bottomLeftBox: false,\n });\n\n return {\n animation: false,\n tooltip: {\n trigger: 'axis',\n axisPointer: {\n axis: 'x',\n },\n formatter: (params) => {\n const p = Array.isArray(params) ? params[0] : params;\n const data = p.data as {\n point: string;\n open: number;\n high: number;\n low: number;\n close: number;\n };\n\n return tooltipFormatter({ lang, data });\n },\n },\n xAxis: {\n type: 'category',\n boundaryGap: false,\n data: values.map((d) => d.point),\n axisTick: { show: false },\n axisLabel: {\n padding: [0, 0, 0, 30],\n interval: 'auto',\n formatter: labelFormatter(timeSpan, values),\n },\n splitLine: {\n show: true,\n interval: (index: number) => showSplitLine(index, values.length),\n },\n },\n yAxis: {\n type: 'value',\n position: 'right',\n min: (value: ChartValue) =>\n Math.floor(value.min * 100) / 100 - CHART_INTERVAL,\n max: (value: ChartValue) =>\n Math.ceil(value.max * 100) / 100 + CHART_INTERVAL,\n interval: CHART_INTERVAL,\n axisLine: { show: false },\n axisTick: { show: false },\n axisLabel: {\n margin: 10,\n formatter: (value: number) => {\n const dataMin = Math.floor(Math.min(...priceValues) * 100) / 100;\n const dataMax = Math.ceil(Math.max(...priceValues) * 100) / 100;\n if (value < dataMin || value > dataMax) {\n return '';\n }\n return value.toFixed(2);\n },\n },\n splitLine: {\n show: true,\n },\n },\n series: [\n {\n name: 'price-close',\n type: 'line',\n data: values.map((d) => ({\n value: d.high,\n ...d,\n time: d.point,\n })),\n smooth: true,\n symbol: 'none',\n lineStyle: {\n color: colorPalette.navyBlue,\n width: 2,\n },\n areaStyle: {\n color: {\n type: 'linear',\n x: 0,\n y: 0,\n x2: 0,\n y2: 1,\n colorStops: [\n { offset: 0, color: colorPalette.brightBlue30 },\n { offset: 1, color: colorPalette.brightBlue },\n ],\n },\n },\n },\n ],\n grid: [\n {\n name: 'main-grid',\n top: 0,\n left: 0,\n right: `${Y_LABEL_SIZE_DESKTOP}px`,\n bottom: `${X_LABEL_SIZE}px`,\n },\n ],\n graphic: [\n ...gridLines,\n {\n ...getLineCommons(isDark),\n top: 0,\n right: 0,\n shape: {\n x1: 0,\n y1: 0,\n x2: 0,\n y2: 0,\n },\n },\n ],\n };\n};\n"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","names":[],"sources":["../../../../src/InstrumentsPriceChartWidget/components/types.ts"],"sourcesContent":["import type { EChartsOption } from 'echarts';\n\nimport type { CandlesData } from '../../gql/types/graphql';\n\nexport interface ChartProps {\n values: CandlesData[];\n}\n\nexport interface GetOptionProps {\n values: CandlesData[];\n isDark: boolean;\n lang: (label: string) => string;\n}\n\nexport type GetOptionType = (props: GetOptionProps) => EChartsOption;\n\nexport interface ChartValue {\n min: number;\n max: number;\n}\n\nexport interface TooltipData {\n time: string;\n open: number;\n high: number;\n low: number;\n close: number;\n}\n\nexport interface TooltipFormatterParams {\n data: TooltipData;\n lang: (label: string) => string;\n}\n"],"mappings":"","ignoreList":[]}
1
+ {"version":3,"file":"types.js","names":[],"sources":["../../../../src/InstrumentsPriceChartWidget/components/types.ts"],"sourcesContent":["import type { EChartsOption } from 'echarts';\n\nimport type { Candle, TimeSpan } from '../../gql/types/graphql';\n\nexport interface ChartProps {\n values: Candle[];\n timeSpan: TimeSpan;\n}\n\nexport interface GetOptionProps {\n values: Candle[];\n isDark: boolean;\n lang: (label: string) => string;\n timeSpan: TimeSpan;\n}\n\nexport type GetOptionType = (props: GetOptionProps) => EChartsOption;\n\nexport interface ChartValue {\n min: number;\n max: number;\n}\n\nexport interface TooltipData {\n point: string;\n open: number;\n high: number;\n low: number;\n close: number;\n}\n\nexport interface TooltipFormatterParams {\n data: TooltipData;\n lang: (label: string) => string;\n}\n"],"mappings":"","ignoreList":[]}