@oanda/labs-instruments-price-chart-widget 1.0.17 → 1.0.19
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +156 -0
- package/dist/main/InstrumentsPriceChartWidget/Main.js +2 -3
- package/dist/main/InstrumentsPriceChartWidget/Main.js.map +1 -1
- package/dist/main/InstrumentsPriceChartWidget/components/Chart.js +1 -2
- package/dist/main/InstrumentsPriceChartWidget/components/Chart.js.map +1 -1
- package/dist/main/InstrumentsPriceChartWidget/components/TimeZoneLabel.js +2 -2
- package/dist/main/InstrumentsPriceChartWidget/components/TimeZoneLabel.js.map +1 -1
- package/dist/main/InstrumentsPriceChartWidget/components/formatters.js +2 -10
- package/dist/main/InstrumentsPriceChartWidget/components/formatters.js.map +1 -1
- package/dist/main/InstrumentsPriceChartWidget/components/getOption.js +12 -8
- package/dist/main/InstrumentsPriceChartWidget/components/getOption.js.map +1 -1
- package/dist/main/InstrumentsPriceChartWidget/utils.js +1 -1
- package/dist/main/InstrumentsPriceChartWidget/utils.js.map +1 -1
- package/dist/main/gql/priceCandles.js +3 -26
- package/dist/main/gql/priceCandles.js.map +1 -1
- package/dist/main/gql/types/fragment-masking.js +3 -2
- package/dist/main/gql/types/fragment-masking.js.map +1 -1
- package/dist/main/gql/types/gql.js +3 -3
- package/dist/main/gql/types/gql.js.map +1 -1
- package/dist/main/gql/validateInstruments.js +3 -8
- package/dist/main/gql/validateInstruments.js.map +1 -1
- package/dist/module/InstrumentsPriceChartWidget/Main.js +1 -1
- package/dist/module/InstrumentsPriceChartWidget/Main.js.map +1 -1
- package/dist/module/InstrumentsPriceChartWidget/components/TimeZoneLabel.js +2 -2
- package/dist/module/InstrumentsPriceChartWidget/components/TimeZoneLabel.js.map +1 -1
- package/dist/module/InstrumentsPriceChartWidget/components/formatters.js +2 -10
- package/dist/module/InstrumentsPriceChartWidget/components/formatters.js.map +1 -1
- package/dist/module/InstrumentsPriceChartWidget/components/getOption.js +12 -8
- package/dist/module/InstrumentsPriceChartWidget/components/getOption.js.map +1 -1
- package/dist/module/InstrumentsPriceChartWidget/utils.js +1 -1
- package/dist/module/InstrumentsPriceChartWidget/utils.js.map +1 -1
- package/dist/module/gql/priceCandles.js +3 -26
- package/dist/module/gql/priceCandles.js.map +1 -1
- package/dist/module/gql/types/fragment-masking.js +3 -2
- package/dist/module/gql/types/fragment-masking.js.map +1 -1
- package/dist/module/gql/types/gql.js +2 -1
- package/dist/module/gql/types/gql.js.map +1 -1
- package/dist/module/gql/validateInstruments.js +3 -8
- package/dist/module/gql/validateInstruments.js.map +1 -1
- package/package.json +4 -4
package/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,162 @@
|
|
|
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.19 (2025-09-29)
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
## 1.0.222 (2025-09-17)
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
## 1.0.221 (2025-09-11)
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
## 1.0.220 (2025-09-09)
|
|
19
|
+
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
## 1.0.219 (2025-09-02)
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
|
|
26
|
+
## 1.0.218 (2025-09-01)
|
|
27
|
+
|
|
28
|
+
|
|
29
|
+
|
|
30
|
+
## 1.0.217 (2025-08-25)
|
|
31
|
+
|
|
32
|
+
|
|
33
|
+
|
|
34
|
+
## 1.0.216 (2025-08-18)
|
|
35
|
+
|
|
36
|
+
|
|
37
|
+
|
|
38
|
+
## 1.0.215 (2025-08-18)
|
|
39
|
+
|
|
40
|
+
|
|
41
|
+
|
|
42
|
+
## 1.0.214 (2025-08-14)
|
|
43
|
+
|
|
44
|
+
|
|
45
|
+
|
|
46
|
+
## 1.0.213 (2025-08-12)
|
|
47
|
+
|
|
48
|
+
|
|
49
|
+
|
|
50
|
+
## 1.0.212 (2025-08-05)
|
|
51
|
+
|
|
52
|
+
|
|
53
|
+
|
|
54
|
+
## 1.0.211 (2025-08-05)
|
|
55
|
+
|
|
56
|
+
|
|
57
|
+
|
|
58
|
+
## 1.0.210 (2025-07-31)
|
|
59
|
+
|
|
60
|
+
|
|
61
|
+
|
|
62
|
+
## 1.0.209 (2025-07-31)
|
|
63
|
+
|
|
64
|
+
|
|
65
|
+
|
|
66
|
+
## 1.0.208 (2025-07-24)
|
|
67
|
+
|
|
68
|
+
|
|
69
|
+
|
|
70
|
+
## 1.0.207 (2025-07-18)
|
|
71
|
+
|
|
72
|
+
|
|
73
|
+
|
|
74
|
+
## 1.0.206 (2025-07-18)
|
|
75
|
+
|
|
76
|
+
|
|
77
|
+
|
|
78
|
+
## 1.0.205 (2025-07-17)
|
|
79
|
+
|
|
80
|
+
**Note:** Version bump only for package @oanda/labs-instruments-price-chart-widget
|
|
81
|
+
|
|
82
|
+
|
|
83
|
+
|
|
84
|
+
|
|
85
|
+
|
|
86
|
+
## 1.0.18 (2025-09-17)
|
|
87
|
+
|
|
88
|
+
|
|
89
|
+
|
|
90
|
+
## 1.0.221 (2025-09-11)
|
|
91
|
+
|
|
92
|
+
|
|
93
|
+
|
|
94
|
+
## 1.0.220 (2025-09-09)
|
|
95
|
+
|
|
96
|
+
|
|
97
|
+
|
|
98
|
+
## 1.0.219 (2025-09-02)
|
|
99
|
+
|
|
100
|
+
|
|
101
|
+
|
|
102
|
+
## 1.0.218 (2025-09-01)
|
|
103
|
+
|
|
104
|
+
|
|
105
|
+
|
|
106
|
+
## 1.0.217 (2025-08-25)
|
|
107
|
+
|
|
108
|
+
|
|
109
|
+
|
|
110
|
+
## 1.0.216 (2025-08-18)
|
|
111
|
+
|
|
112
|
+
|
|
113
|
+
|
|
114
|
+
## 1.0.215 (2025-08-18)
|
|
115
|
+
|
|
116
|
+
|
|
117
|
+
|
|
118
|
+
## 1.0.214 (2025-08-14)
|
|
119
|
+
|
|
120
|
+
|
|
121
|
+
|
|
122
|
+
## 1.0.213 (2025-08-12)
|
|
123
|
+
|
|
124
|
+
|
|
125
|
+
|
|
126
|
+
## 1.0.212 (2025-08-05)
|
|
127
|
+
|
|
128
|
+
|
|
129
|
+
|
|
130
|
+
## 1.0.211 (2025-08-05)
|
|
131
|
+
|
|
132
|
+
|
|
133
|
+
|
|
134
|
+
## 1.0.210 (2025-07-31)
|
|
135
|
+
|
|
136
|
+
|
|
137
|
+
|
|
138
|
+
## 1.0.209 (2025-07-31)
|
|
139
|
+
|
|
140
|
+
|
|
141
|
+
|
|
142
|
+
## 1.0.208 (2025-07-24)
|
|
143
|
+
|
|
144
|
+
|
|
145
|
+
|
|
146
|
+
## 1.0.207 (2025-07-18)
|
|
147
|
+
|
|
148
|
+
|
|
149
|
+
|
|
150
|
+
## 1.0.206 (2025-07-18)
|
|
151
|
+
|
|
152
|
+
|
|
153
|
+
|
|
154
|
+
## 1.0.205 (2025-07-17)
|
|
155
|
+
|
|
156
|
+
**Note:** Version bump only for package @oanda/labs-instruments-price-chart-widget
|
|
157
|
+
|
|
158
|
+
|
|
159
|
+
|
|
160
|
+
|
|
161
|
+
|
|
6
162
|
## 1.0.17 (2025-09-11)
|
|
7
163
|
|
|
8
164
|
|
|
@@ -13,8 +13,7 @@ var _Chart = require("./components/Chart");
|
|
|
13
13
|
var _TimeZoneLabel = require("./components/TimeZoneLabel");
|
|
14
14
|
var _config = require("./config");
|
|
15
15
|
var _utils = require("./utils");
|
|
16
|
-
function
|
|
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; }
|
|
16
|
+
function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
|
|
18
17
|
const Main = _ref => {
|
|
19
18
|
let {
|
|
20
19
|
division,
|
|
@@ -37,7 +36,7 @@ const Main = _ref => {
|
|
|
37
36
|
fetchPolicy: 'cache-and-network'
|
|
38
37
|
});
|
|
39
38
|
const candles = (0, _utils.getCandles)(data);
|
|
40
|
-
const showError = candles
|
|
39
|
+
const showError = (candles === null || candles === void 0 ? void 0 : candles.length) === 0 || !candles || !!error;
|
|
41
40
|
return _react.default.createElement("div", {
|
|
42
41
|
"data-testid": "instruments-price-chart-wrapper"
|
|
43
42
|
}, _react.default.createElement("div", {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Main.js","names":["_client","require","_labsWidgetCommon","_react","_interopRequireWildcard","_priceCandles","_graphql","_Chart","_TimeZoneLabel","_config","_utils","
|
|
1
|
+
{"version":3,"file":"Main.js","names":["_client","require","_labsWidgetCommon","_react","_interopRequireWildcard","_priceCandles","_graphql","_Chart","_TimeZoneLabel","_config","_utils","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","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":[]}
|
|
@@ -14,8 +14,7 @@ var _react = _interopRequireDefault(require("react"));
|
|
|
14
14
|
var _constants = require("./constants");
|
|
15
15
|
var _getOption = require("./getOption");
|
|
16
16
|
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
17
|
-
function
|
|
18
|
-
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; }
|
|
17
|
+
function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
|
|
19
18
|
echarts.use([_components.GridSimpleComponent, _components.GraphicComponent, _charts.LineChart, _components.DatasetComponent, _charts.CustomChart, _renderers.CanvasRenderer, _components.TooltipComponent]);
|
|
20
19
|
echarts.registerTheme('dark_theme', (0, _labsWidgetCommon.getChartTheme)(_labsWidgetCommon.Theme.Dark));
|
|
21
20
|
echarts.registerTheme('light_theme', (0, _labsWidgetCommon.getChartTheme)(_labsWidgetCommon.Theme.Light));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Chart.js","names":["_labsWidgetCommon","require","_monoI18n","_charts","_components","echarts","_interopRequireWildcard","_renderers","_react","_interopRequireDefault","_constants","_getOption","e","__esModule","default","
|
|
1
|
+
{"version":3,"file":"Chart.js","names":["_labsWidgetCommon","require","_monoI18n","_charts","_components","echarts","_interopRequireWildcard","_renderers","_react","_interopRequireDefault","_constants","_getOption","e","__esModule","default","t","WeakMap","r","n","o","i","f","__proto__","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","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":";;;;;;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,SAAAN,wBAAAM,CAAA,EAAAG,CAAA,6BAAAC,OAAA,MAAAC,CAAA,OAAAD,OAAA,IAAAE,CAAA,OAAAF,OAAA,YAAAV,uBAAA,YAAAA,CAAAM,CAAA,EAAAG,CAAA,SAAAA,CAAA,IAAAH,CAAA,IAAAA,CAAA,CAAAC,UAAA,SAAAD,CAAA,MAAAO,CAAA,EAAAC,CAAA,EAAAC,CAAA,KAAAC,SAAA,QAAAR,OAAA,EAAAF,CAAA,iBAAAA,CAAA,uBAAAA,CAAA,yBAAAA,CAAA,SAAAS,CAAA,MAAAF,CAAA,GAAAJ,CAAA,GAAAG,CAAA,GAAAD,CAAA,QAAAE,CAAA,CAAAI,GAAA,CAAAX,CAAA,UAAAO,CAAA,CAAAK,GAAA,CAAAZ,CAAA,GAAAO,CAAA,CAAAM,GAAA,CAAAb,CAAA,EAAAS,CAAA,gBAAAN,CAAA,IAAAH,CAAA,gBAAAG,CAAA,OAAAW,cAAA,CAAAC,IAAA,CAAAf,CAAA,EAAAG,CAAA,OAAAK,CAAA,IAAAD,CAAA,GAAAS,MAAA,CAAAC,cAAA,KAAAD,MAAA,CAAAE,wBAAA,CAAAlB,CAAA,EAAAG,CAAA,OAAAK,CAAA,CAAAI,GAAA,IAAAJ,CAAA,CAAAK,GAAA,IAAAN,CAAA,CAAAE,CAAA,EAAAN,CAAA,EAAAK,CAAA,IAAAC,CAAA,CAAAN,CAAA,IAAAH,CAAA,CAAAG,CAAA,WAAAM,CAAA,KAAAT,CAAA,EAAAG,CAAA;AAGxCV,OAAO,CAAC0B,GAAG,CAAC,CACVC,+BAAmB,EACnBC,4BAAgB,EAChBC,iBAAS,EACTC,4BAAgB,EAChBC,mBAAW,EACXC,yBAAc,EACdC,4BAAgB,CACjB,CAAC;AAEFjC,OAAO,CAACkC,aAAa,CAAC,YAAY,EAAE,IAAAC,+BAAa,EAACC,uBAAK,CAACC,IAAI,CAAC,CAAC;AAC9DrC,OAAO,CAACkC,aAAa,CAAC,aAAa,EAAE,IAAAC,+BAAa,EAACC,uBAAK,CAACE,KAAK,CAAC,CAAC;AAEzD,MAAMC,KAAK,GAAGC,IAAA,IAAsC;EAAA,IAArC;IAAEC,MAAM;IAAEC;EAAqB,CAAC,GAAAF,IAAA;EACpD,MAAM;IAAEG;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;MAChBX,MAAM;MACNE,MAAM;MACNE,IAAI;MACJH;IACF,CAAC;EAAE,CACJ,CAAC;AAEN,CAAC;AAACW,OAAA,CAAAd,KAAA,GAAAA,KAAA","ignoreList":[]}
|
|
@@ -21,9 +21,9 @@ const TimeZoneLabel = () => {
|
|
|
21
21
|
return _react.default.createElement("span", {
|
|
22
22
|
className: "lw-ml-1 lw-font-sans lw-text-xs lw-font-bold",
|
|
23
23
|
"data-testid": "timezone-label"
|
|
24
|
-
},
|
|
24
|
+
}, "".concat(lang('timezone_display', {
|
|
25
25
|
timezone: getBrowserOffsetLabel()
|
|
26
|
-
})
|
|
26
|
+
})));
|
|
27
27
|
};
|
|
28
28
|
exports.TimeZoneLabel = TimeZoneLabel;
|
|
29
29
|
//# sourceMappingURL=TimeZoneLabel.js.map
|
|
@@ -1 +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,
|
|
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","concat","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,MAAAC,MAAA,CACzBJ,IAAI,CAAC,kBAAkB,EAAE;IAC5BK,QAAQ,EAAEnB,qBAAqB,CAAC;EAClC,CAAC,CAAC,CAAS,CAAC;AAEhB,CAAC;AAACoB,OAAA,CAAAP,aAAA,GAAAA,aAAA","ignoreList":[]}
|
|
@@ -26,7 +26,7 @@ const labelFormatter = (timeSpan, values) => (_, index) => {
|
|
|
26
26
|
switch (timeSpan) {
|
|
27
27
|
case _graphql.TimeSpan.Day_1:
|
|
28
28
|
const hour = date.getHours();
|
|
29
|
-
return
|
|
29
|
+
return "".concat(String(hour).padStart(2, '0'), ":00");
|
|
30
30
|
case _graphql.TimeSpan.Week_1:
|
|
31
31
|
case _graphql.TimeSpan.Month_1:
|
|
32
32
|
return date.toLocaleDateString(undefined, {
|
|
@@ -65,15 +65,7 @@ const tooltipFormatter = _ref => {
|
|
|
65
65
|
point
|
|
66
66
|
} = data;
|
|
67
67
|
const date = chartDateTimeFormat(point);
|
|
68
|
-
return
|
|
69
|
-
<div style="display:flex; flex-direction:column;">
|
|
70
|
-
<span style="margin-bottom:5px;">${date}</span>
|
|
71
|
-
${lang('open')}: ${open.toFixed(4)}<br />
|
|
72
|
-
${lang('high')}: ${high.toFixed(4)}<br />
|
|
73
|
-
${lang('low')}: ${low.toFixed(4)}<br />
|
|
74
|
-
${lang('close')}: ${close.toFixed(4)}
|
|
75
|
-
</div>
|
|
76
|
-
`;
|
|
68
|
+
return "\n <div style=\"display:flex; flex-direction:column;\">\n <span style=\"margin-bottom:5px;\">".concat(date, "</span>\n ").concat(lang('open'), ": ").concat(open.toFixed(4), "<br />\n ").concat(lang('high'), ": ").concat(high.toFixed(4), "<br />\n ").concat(lang('low'), ": ").concat(low.toFixed(4), "<br />\n ").concat(lang('close'), ": ").concat(close.toFixed(4), "\n </div>\n ");
|
|
77
69
|
};
|
|
78
70
|
exports.tooltipFormatter = tooltipFormatter;
|
|
79
71
|
//# sourceMappingURL=formatters.js.map
|
|
@@ -1 +1 @@
|
|
|
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":";;;;;;AAAA,IAAAA,QAAA,GAAAC,OAAA;AAGO,MAAMC,aAAa,GAAGA,CAACC,KAAa,EAAEC,KAAa,KAAc;EACtE,MAAMC,QAAQ,GAAGC,IAAI,CAACC,GAAG,CAAC,CAAC,EAAED,IAAI,CAACE,KAAK,CAACJ,KAAK,GAAG,CAAC,CAAC,CAAC;EACnD,OAAOD,KAAK,GAAGE,QAAQ,KAAK,CAAC;AAC/B,CAAC;AAACI,OAAA,CAAAP,aAAA,GAAAA,aAAA;AAEF,MAAMQ,sBAAsB,GAAGA,CAC7BC,QAAkB,EAClBC,MAA2B,EAC3BT,KAAa,KACD;EACZ,MAAMU,IAAI,GAAG,IAAIC,IAAI,CAACF,MAAM,CAACT,KAAK,CAAC,CAACY,KAAK,CAAC;EAC1C,MAAMC,aAAa,GAAGV,IAAI,CAACC,GAAG,CAAC,CAAC,EAAED,IAAI,CAACE,KAAK,CAACI,MAAM,CAACK,MAAM,GAAG,CAAC,CAAC,CAAC;EAEhE,IACEN,QAAQ,KAAKO,iBAAQ,CAACC,OAAO,IAC7BR,QAAQ,KAAKO,iBAAQ,CAACE,MAAM,IAC5BT,QAAQ,KAAKO,iBAAQ,CAACG,MAAM,EAC5B;IACA,MAAMC,IAAI,GAAGnB,KAAK,GAAG,CAAC,GAAG,IAAIW,IAAI,CAACF,MAAM,CAACT,KAAK,GAAG,CAAC,CAAC,CAACY,KAAK,CAAC,GAAG,IAAI;IACjE,MAAMQ,YAAY,GAChB,CAACD,IAAI,IACLT,IAAI,CAACW,QAAQ,CAAC,CAAC,KAAKF,IAAI,CAACE,QAAQ,CAAC,CAAC,IACnCX,IAAI,CAACY,WAAW,CAAC,CAAC,KAAKH,IAAI,CAACG,WAAW,CAAC,CAAC;IAE3C,OAAOF,YAAY;EACrB;EAEA,OAAOpB,KAAK,GAAGa,aAAa,KAAK,CAAC;AACpC,CAAC;AAEM,MAAMU,cAAc,GACzBA,CAACf,QAAkB,EAAEC,MAA2B,KAChD,CAACe,CAAS,EAAExB,KAAa,KAAa;EACpC,MAAMU,IAAI,GAAG,IAAIC,IAAI,CAACF,MAAM,CAACT,KAAK,CAAC,CAACY,KAAK,CAAC;EAE1C,IAAI,CAACL,sBAAsB,CAACC,QAAQ,EAAEC,MAAM,EAAET,KAAK,CAAC,EAAE,OAAO,EAAE;EAE/D,QAAQQ,QAAQ;IACd,KAAKO,iBAAQ,CAACU,KAAK;MACjB,MAAMC,IAAI,GAAGhB,IAAI,CAACiB,QAAQ,CAAC,CAAC;MAC5B,
|
|
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","concat","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":";;;;;;AAAA,IAAAA,QAAA,GAAAC,OAAA;AAGO,MAAMC,aAAa,GAAGA,CAACC,KAAa,EAAEC,KAAa,KAAc;EACtE,MAAMC,QAAQ,GAAGC,IAAI,CAACC,GAAG,CAAC,CAAC,EAAED,IAAI,CAACE,KAAK,CAACJ,KAAK,GAAG,CAAC,CAAC,CAAC;EACnD,OAAOD,KAAK,GAAGE,QAAQ,KAAK,CAAC;AAC/B,CAAC;AAACI,OAAA,CAAAP,aAAA,GAAAA,aAAA;AAEF,MAAMQ,sBAAsB,GAAGA,CAC7BC,QAAkB,EAClBC,MAA2B,EAC3BT,KAAa,KACD;EACZ,MAAMU,IAAI,GAAG,IAAIC,IAAI,CAACF,MAAM,CAACT,KAAK,CAAC,CAACY,KAAK,CAAC;EAC1C,MAAMC,aAAa,GAAGV,IAAI,CAACC,GAAG,CAAC,CAAC,EAAED,IAAI,CAACE,KAAK,CAACI,MAAM,CAACK,MAAM,GAAG,CAAC,CAAC,CAAC;EAEhE,IACEN,QAAQ,KAAKO,iBAAQ,CAACC,OAAO,IAC7BR,QAAQ,KAAKO,iBAAQ,CAACE,MAAM,IAC5BT,QAAQ,KAAKO,iBAAQ,CAACG,MAAM,EAC5B;IACA,MAAMC,IAAI,GAAGnB,KAAK,GAAG,CAAC,GAAG,IAAIW,IAAI,CAACF,MAAM,CAACT,KAAK,GAAG,CAAC,CAAC,CAACY,KAAK,CAAC,GAAG,IAAI;IACjE,MAAMQ,YAAY,GAChB,CAACD,IAAI,IACLT,IAAI,CAACW,QAAQ,CAAC,CAAC,KAAKF,IAAI,CAACE,QAAQ,CAAC,CAAC,IACnCX,IAAI,CAACY,WAAW,CAAC,CAAC,KAAKH,IAAI,CAACG,WAAW,CAAC,CAAC;IAE3C,OAAOF,YAAY;EACrB;EAEA,OAAOpB,KAAK,GAAGa,aAAa,KAAK,CAAC;AACpC,CAAC;AAEM,MAAMU,cAAc,GACzBA,CAACf,QAAkB,EAAEC,MAA2B,KAChD,CAACe,CAAS,EAAExB,KAAa,KAAa;EACpC,MAAMU,IAAI,GAAG,IAAIC,IAAI,CAACF,MAAM,CAACT,KAAK,CAAC,CAACY,KAAK,CAAC;EAE1C,IAAI,CAACL,sBAAsB,CAACC,QAAQ,EAAEC,MAAM,EAAET,KAAK,CAAC,EAAE,OAAO,EAAE;EAE/D,QAAQQ,QAAQ;IACd,KAAKO,iBAAQ,CAACU,KAAK;MACjB,MAAMC,IAAI,GAAGhB,IAAI,CAACiB,QAAQ,CAAC,CAAC;MAC5B,UAAAC,MAAA,CAAUC,MAAM,CAACH,IAAI,CAAC,CAACI,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC;IAEzC,KAAKf,iBAAQ,CAACgB,MAAM;IACpB,KAAKhB,iBAAQ,CAACiB,OAAO;MACnB,OAAOtB,IAAI,CAACuB,kBAAkB,CAACC,SAAS,EAAE;QACxCC,GAAG,EAAE,SAAS;QACdC,KAAK,EAAE;MACT,CAAC,CAAC;IAEJ,KAAKrB,iBAAQ,CAACC,OAAO;IACrB,KAAKD,iBAAQ,CAACE,MAAM;IACpB,KAAKF,iBAAQ,CAACG,MAAM;MAClB,OAAOR,IAAI,CAACuB,kBAAkB,CAACC,SAAS,EAAE;QACxCE,KAAK,EAAE;MACT,CAAC,CAAC;IAEJ;MACE,OAAO,EAAE;EACb;AACF,CAAC;AAAC9B,OAAA,CAAAiB,cAAA,GAAAA,cAAA;AAEJ,MAAMc,mBAAmB,GAAIC,GAAW,IACtC,IAAI3B,IAAI,CAAC2B,GAAG,CAAC,CAACC,cAAc,CAACL,SAAS,EAAE;EACtCM,IAAI,EAAE,SAAS;EACfJ,KAAK,EAAE,SAAS;EAChBD,GAAG,EAAE,SAAS;EACdT,IAAI,EAAE,SAAS;EACfe,MAAM,EAAE,SAAS;EACjBC,MAAM,EAAE;AACV,CAAC,CAAC;AAEG,MAAMC,gBAAgB,GAAGC,IAAA,IAA4C;EAAA,IAA3C;IAAEC,IAAI;IAAEC;EAA6B,CAAC,GAAAF,IAAA;EACrE,MAAM;IAAEG,IAAI;IAAEC,IAAI;IAAEC,KAAK;IAAEC,GAAG;IAAEtC;EAAM,CAAC,GAAGkC,IAAI;EAC9C,MAAMpC,IAAI,GAAG2B,mBAAmB,CAACzB,KAAK,CAAC;EAEvC,+GAAAgB,MAAA,CAEuClB,IAAI,qBAAAkB,MAAA,CACrCiB,IAAI,CAAC,MAAM,CAAC,QAAAjB,MAAA,CAAKmB,IAAI,CAACI,OAAO,CAAC,CAAC,CAAC,oBAAAvB,MAAA,CAChCiB,IAAI,CAAC,MAAM,CAAC,QAAAjB,MAAA,CAAKoB,IAAI,CAACG,OAAO,CAAC,CAAC,CAAC,oBAAAvB,MAAA,CAChCiB,IAAI,CAAC,KAAK,CAAC,QAAAjB,MAAA,CAAKsB,GAAG,CAACC,OAAO,CAAC,CAAC,CAAC,oBAAAvB,MAAA,CAC9BiB,IAAI,CAAC,OAAO,CAAC,QAAAjB,MAAA,CAAKqB,KAAK,CAACE,OAAO,CAAC,CAAC,CAAC;AAG1C,CAAC;AAAC7C,OAAA,CAAAqC,gBAAA,GAAAA,gBAAA","ignoreList":[]}
|
|
@@ -7,6 +7,11 @@ exports.getOption = void 0;
|
|
|
7
7
|
var _labsWidgetCommon = require("@oanda/labs-widget-common");
|
|
8
8
|
var _constants = require("./constants");
|
|
9
9
|
var _formatters = require("./formatters");
|
|
10
|
+
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
11
|
+
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
12
|
+
function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
|
|
13
|
+
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
|
|
14
|
+
function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
|
|
10
15
|
const getOption = _ref => {
|
|
11
16
|
let {
|
|
12
17
|
values,
|
|
@@ -86,9 +91,9 @@ const getOption = _ref => {
|
|
|
86
91
|
series: [{
|
|
87
92
|
name: 'price-close',
|
|
88
93
|
type: 'line',
|
|
89
|
-
data: values.map(d => ({
|
|
90
|
-
value: d.high
|
|
91
|
-
|
|
94
|
+
data: values.map(d => _objectSpread(_objectSpread({
|
|
95
|
+
value: d.high
|
|
96
|
+
}, d), {}, {
|
|
92
97
|
time: d.point
|
|
93
98
|
})),
|
|
94
99
|
smooth: true,
|
|
@@ -118,11 +123,10 @@ const getOption = _ref => {
|
|
|
118
123
|
name: 'main-grid',
|
|
119
124
|
top: 0,
|
|
120
125
|
left: 0,
|
|
121
|
-
right:
|
|
122
|
-
bottom:
|
|
126
|
+
right: "".concat(_constants.Y_LABEL_SIZE_DESKTOP, "px"),
|
|
127
|
+
bottom: "".concat(_constants.X_LABEL_SIZE, "px")
|
|
123
128
|
}],
|
|
124
|
-
graphic: [...gridLines, {
|
|
125
|
-
...(0, _labsWidgetCommon.getLineCommons)(isDark),
|
|
129
|
+
graphic: [...gridLines, _objectSpread(_objectSpread({}, (0, _labsWidgetCommon.getLineCommons)(isDark)), {}, {
|
|
126
130
|
top: 0,
|
|
127
131
|
right: 0,
|
|
128
132
|
shape: {
|
|
@@ -131,7 +135,7 @@ const getOption = _ref => {
|
|
|
131
135
|
x2: 0,
|
|
132
136
|
y2: 0
|
|
133
137
|
}
|
|
134
|
-
}]
|
|
138
|
+
})]
|
|
135
139
|
};
|
|
136
140
|
};
|
|
137
141
|
exports.getOption = getOption;
|
|
@@ -1 +1 @@
|
|
|
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","
|
|
1
|
+
{"version":3,"file":"getOption.js","names":["_labsWidgetCommon","require","_constants","_formatters","ownKeys","e","r","t","Object","keys","getOwnPropertySymbols","o","filter","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","defineProperty","_toPropertyKey","value","configurable","writable","i","_toPrimitive","Symbol","toPrimitive","call","TypeError","String","Number","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","yAxis","position","min","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","concat","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":[]}
|
|
@@ -7,6 +7,6 @@ exports.getGranularityForTimeSpan = exports.getCandles = void 0;
|
|
|
7
7
|
var _config = require("./config");
|
|
8
8
|
const getGranularityForTimeSpan = timeSpan => _config.granularityForTimeSpan[timeSpan];
|
|
9
9
|
exports.getGranularityForTimeSpan = getGranularityForTimeSpan;
|
|
10
|
-
const getCandles = data => data
|
|
10
|
+
const getCandles = data => data === null || data === void 0 ? void 0 : data.priceCandles.candle.filter(c => c !== null);
|
|
11
11
|
exports.getCandles = getCandles;
|
|
12
12
|
//# sourceMappingURL=utils.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","names":["_config","require","getGranularityForTimeSpan","timeSpan","granularityForTimeSpan","exports","getCandles","data","priceCandles","candle","filter","c"],"sources":["../../../src/InstrumentsPriceChartWidget/utils.ts"],"sourcesContent":["import type {\n Candle,\n Granularity,\n PriceCandlesQuery,\n TimeSpan,\n} from '../gql/types/graphql';\nimport { granularityForTimeSpan } from './config';\nimport type { TimeSpanSubset } from './types';\n\nexport const getGranularityForTimeSpan = (timeSpan: TimeSpan): Granularity =>\n granularityForTimeSpan[timeSpan as unknown as TimeSpanSubset];\n\nexport const getCandles = (\n data: PriceCandlesQuery | undefined\n): Candle[] | undefined =>\n data?.priceCandles.candle.filter((c): c is Candle => c !== null);\n"],"mappings":";;;;;;AAMA,IAAAA,OAAA,GAAAC,OAAA;AAGO,MAAMC,yBAAyB,GAAIC,QAAkB,IAC1DC,8BAAsB,CAACD,QAAQ,CAA8B;AAACE,OAAA,CAAAH,yBAAA,GAAAA,yBAAA;AAEzD,MAAMI,UAAU,GACrBC,IAAmC,IAEnCA,IAAI,
|
|
1
|
+
{"version":3,"file":"utils.js","names":["_config","require","getGranularityForTimeSpan","timeSpan","granularityForTimeSpan","exports","getCandles","data","priceCandles","candle","filter","c"],"sources":["../../../src/InstrumentsPriceChartWidget/utils.ts"],"sourcesContent":["import type {\n Candle,\n Granularity,\n PriceCandlesQuery,\n TimeSpan,\n} from '../gql/types/graphql';\nimport { granularityForTimeSpan } from './config';\nimport type { TimeSpanSubset } from './types';\n\nexport const getGranularityForTimeSpan = (timeSpan: TimeSpan): Granularity =>\n granularityForTimeSpan[timeSpan as unknown as TimeSpanSubset];\n\nexport const getCandles = (\n data: PriceCandlesQuery | undefined\n): Candle[] | undefined =>\n data?.priceCandles.candle.filter((c): c is Candle => c !== null);\n"],"mappings":";;;;;;AAMA,IAAAA,OAAA,GAAAC,OAAA;AAGO,MAAMC,yBAAyB,GAAIC,QAAkB,IAC1DC,8BAAsB,CAACD,QAAQ,CAA8B;AAACE,OAAA,CAAAH,yBAAA,GAAAA,yBAAA;AAEzD,MAAMI,UAAU,GACrBC,IAAmC,IAEnCA,IAAI,aAAJA,IAAI,uBAAJA,IAAI,CAAEC,YAAY,CAACC,MAAM,CAACC,MAAM,CAAEC,CAAC,IAAkBA,CAAC,KAAK,IAAI,CAAC;AAACN,OAAA,CAAAC,UAAA,GAAAA,UAAA","ignoreList":[]}
|
|
@@ -5,30 +5,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
});
|
|
6
6
|
exports.priceCandles = void 0;
|
|
7
7
|
var _client = require("@apollo/client");
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
$division: Division
|
|
11
|
-
$dataSource: InstrumentDataSource!
|
|
12
|
-
$instrument: String!
|
|
13
|
-
$granularity: Granularity!
|
|
14
|
-
$timeSpan: TimeSpan!
|
|
15
|
-
) {
|
|
16
|
-
priceCandles(
|
|
17
|
-
division: $division
|
|
18
|
-
dataSource: $dataSource
|
|
19
|
-
instrument: $instrument
|
|
20
|
-
granularity: $granularity
|
|
21
|
-
timeSpan: $timeSpan
|
|
22
|
-
) {
|
|
23
|
-
candle {
|
|
24
|
-
point
|
|
25
|
-
high
|
|
26
|
-
low
|
|
27
|
-
open
|
|
28
|
-
close
|
|
29
|
-
}
|
|
30
|
-
timeSpan
|
|
31
|
-
}
|
|
32
|
-
}
|
|
33
|
-
`;
|
|
8
|
+
var _templateObject;
|
|
9
|
+
function _taggedTemplateLiteral(e, t) { return t || (t = e.slice(0)), Object.freeze(Object.defineProperties(e, { raw: { value: Object.freeze(t) } })); }
|
|
10
|
+
const priceCandles = exports.priceCandles = (0, _client.gql)(_templateObject || (_templateObject = _taggedTemplateLiteral(["\n query PriceCandles(\n $division: Division!\n $dataSource: InstrumentDataSource!\n $instrument: String!\n $granularity: Granularity!\n $timeSpan: TimeSpan!\n ) {\n priceCandles(\n division: $division\n dataSource: $dataSource\n instrument: $instrument\n granularity: $granularity\n timeSpan: $timeSpan\n ) {\n candle {\n point\n high\n low\n open\n close\n }\n timeSpan\n }\n }\n"])));
|
|
34
11
|
//# sourceMappingURL=priceCandles.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"priceCandles.js","names":["_client","require","priceCandles","exports","gql"],"sources":["../../../src/gql/priceCandles.ts"],"sourcesContent":["import { gql } from '@apollo/client';\n\nconst priceCandles = gql`\n query PriceCandles(\n $division: Division!\n $dataSource: InstrumentDataSource!\n $instrument: String!\n $granularity: Granularity!\n $timeSpan: TimeSpan!\n ) {\n priceCandles(\n division: $division\n dataSource: $dataSource\n instrument: $instrument\n granularity: $granularity\n timeSpan: $timeSpan\n ) {\n candle {\n point\n high\n low\n open\n close\n }\n timeSpan\n }\n }\n`;\n\nexport { priceCandles };\n"],"mappings":";;;;;;AAAA,IAAAA,OAAA,GAAAC,OAAA;
|
|
1
|
+
{"version":3,"file":"priceCandles.js","names":["_client","require","_templateObject","_taggedTemplateLiteral","e","t","slice","Object","freeze","defineProperties","raw","value","priceCandles","exports","gql"],"sources":["../../../src/gql/priceCandles.ts"],"sourcesContent":["import { gql } from '@apollo/client';\n\nconst priceCandles = gql`\n query PriceCandles(\n $division: Division!\n $dataSource: InstrumentDataSource!\n $instrument: String!\n $granularity: Granularity!\n $timeSpan: TimeSpan!\n ) {\n priceCandles(\n division: $division\n dataSource: $dataSource\n instrument: $instrument\n granularity: $granularity\n timeSpan: $timeSpan\n ) {\n candle {\n point\n high\n low\n open\n close\n }\n timeSpan\n }\n }\n`;\n\nexport { priceCandles };\n"],"mappings":";;;;;;AAAA,IAAAA,OAAA,GAAAC,OAAA;AAAqC,IAAAC,eAAA;AAAA,SAAAC,uBAAAC,CAAA,EAAAC,CAAA,WAAAA,CAAA,KAAAA,CAAA,GAAAD,CAAA,CAAAE,KAAA,MAAAC,MAAA,CAAAC,MAAA,CAAAD,MAAA,CAAAE,gBAAA,CAAAL,CAAA,IAAAM,GAAA,IAAAC,KAAA,EAAAJ,MAAA,CAAAC,MAAA,CAAAH,CAAA;AAErC,MAAMO,YAAY,GAAAC,OAAA,CAAAD,YAAA,OAAGE,WAAG,EAAAZ,eAAA,KAAAA,eAAA,GAAAC,sBAAA,2eAyBvB","ignoreList":[]}
|
|
@@ -13,10 +13,11 @@ function makeFragmentData(data, _fragment) {
|
|
|
13
13
|
return data;
|
|
14
14
|
}
|
|
15
15
|
function isFragmentReady(queryNode, fragmentNode, data) {
|
|
16
|
-
|
|
16
|
+
var _meta__, _fragDef$name;
|
|
17
|
+
const deferredFields = (_meta__ = queryNode.__meta__) === null || _meta__ === void 0 ? void 0 : _meta__.deferredFields;
|
|
17
18
|
if (!deferredFields) return true;
|
|
18
19
|
const fragDef = fragmentNode.definitions[0];
|
|
19
|
-
const fragName = fragDef
|
|
20
|
+
const fragName = fragDef === null || fragDef === void 0 || (_fragDef$name = fragDef.name) === null || _fragDef$name === void 0 ? void 0 : _fragDef$name.value;
|
|
20
21
|
const fields = fragName && deferredFields[fragName] || [];
|
|
21
22
|
return fields.length > 0 && fields.every(field => data && field in data);
|
|
22
23
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fragment-masking.js","names":["useFragment","_documentNode","fragmentType","makeFragmentData","data","_fragment","isFragmentReady","queryNode","fragmentNode","deferredFields","__meta__","fragDef","definitions","fragName","name","value","fields","length","every","field"],"sources":["../../../../src/gql/types/fragment-masking.ts"],"sourcesContent":["import {\n ResultOf,\n DocumentTypeDecoration,\n TypedDocumentNode,\n} from '@graphql-typed-document-node/core';\nimport { FragmentDefinitionNode } from 'graphql';\nimport { Incremental } from './graphql';\n\nexport type FragmentType<\n TDocumentType extends DocumentTypeDecoration<any, any>,\n> =\n TDocumentType extends DocumentTypeDecoration<infer TType, any>\n ? [TType] extends [{ ' $fragmentName'?: infer TKey }]\n ? TKey extends string\n ? { ' $fragmentRefs'?: { [key in TKey]: TType } }\n : never\n : never\n : never;\n\n// return non-nullable if `fragmentType` is non-nullable\nexport function useFragment<TType>(\n _documentNode: DocumentTypeDecoration<TType, any>,\n fragmentType: FragmentType<DocumentTypeDecoration<TType, any>>\n): TType;\n// return nullable if `fragmentType` is nullable\nexport function useFragment<TType>(\n _documentNode: DocumentTypeDecoration<TType, any>,\n fragmentType:\n | FragmentType<DocumentTypeDecoration<TType, any>>\n | null\n | undefined\n): TType | null | undefined;\n// return array of non-nullable if `fragmentType` is array of non-nullable\nexport function useFragment<TType>(\n _documentNode: DocumentTypeDecoration<TType, any>,\n fragmentType: ReadonlyArray<FragmentType<DocumentTypeDecoration<TType, any>>>\n): ReadonlyArray<TType>;\n// return array of nullable if `fragmentType` is array of nullable\nexport function useFragment<TType>(\n _documentNode: DocumentTypeDecoration<TType, any>,\n fragmentType:\n | ReadonlyArray<FragmentType<DocumentTypeDecoration<TType, any>>>\n | null\n | undefined\n): ReadonlyArray<TType> | null | undefined;\nexport function useFragment<TType>(\n _documentNode: DocumentTypeDecoration<TType, any>,\n fragmentType:\n | FragmentType<DocumentTypeDecoration<TType, any>>\n | ReadonlyArray<FragmentType<DocumentTypeDecoration<TType, any>>>\n | null\n | undefined\n): TType | ReadonlyArray<TType> | null | undefined {\n return fragmentType as any;\n}\n\nexport function makeFragmentData<\n F extends DocumentTypeDecoration<any, any>,\n FT extends ResultOf<F>,\n>(data: FT, _fragment: F): FragmentType<F> {\n return data as FragmentType<F>;\n}\nexport function isFragmentReady<TQuery, TFrag>(\n queryNode: DocumentTypeDecoration<TQuery, any>,\n fragmentNode: TypedDocumentNode<TFrag>,\n data:\n | FragmentType<TypedDocumentNode<Incremental<TFrag>, any>>\n | null\n | undefined\n): data is FragmentType<typeof fragmentNode> {\n const deferredFields = (\n queryNode as {\n __meta__?: { deferredFields: Record<string, (keyof TFrag)[]> };\n }\n ).__meta__?.deferredFields;\n\n if (!deferredFields) return true;\n\n const fragDef = fragmentNode.definitions[0] as\n | FragmentDefinitionNode\n | undefined;\n const fragName = fragDef?.name?.value;\n\n const fields = (fragName && deferredFields[fragName]) || [];\n return fields.length > 0 && fields.every((field) => data && field in data);\n}\n"],"mappings":";;;;;;;;AA6CO,SAASA,WAAWA,CACzBC,aAAiD,EACjDC,YAIa,EACoC;EACjD,OAAOA,YAAY;AACrB;AAEO,SAASC,gBAAgBA,CAG9BC,IAAQ,EAAEC,SAAY,EAAmB;EACzC,OAAOD,IAAI;AACb;AACO,SAASE,eAAeA,CAC7BC,SAA8C,EAC9CC,YAAsC,EACtCJ,IAGa,EAC8B;EAC3C,
|
|
1
|
+
{"version":3,"file":"fragment-masking.js","names":["useFragment","_documentNode","fragmentType","makeFragmentData","data","_fragment","isFragmentReady","queryNode","fragmentNode","_meta__","_fragDef$name","deferredFields","__meta__","fragDef","definitions","fragName","name","value","fields","length","every","field"],"sources":["../../../../src/gql/types/fragment-masking.ts"],"sourcesContent":["import {\n ResultOf,\n DocumentTypeDecoration,\n TypedDocumentNode,\n} from '@graphql-typed-document-node/core';\nimport { FragmentDefinitionNode } from 'graphql';\nimport { Incremental } from './graphql';\n\nexport type FragmentType<\n TDocumentType extends DocumentTypeDecoration<any, any>,\n> =\n TDocumentType extends DocumentTypeDecoration<infer TType, any>\n ? [TType] extends [{ ' $fragmentName'?: infer TKey }]\n ? TKey extends string\n ? { ' $fragmentRefs'?: { [key in TKey]: TType } }\n : never\n : never\n : never;\n\n// return non-nullable if `fragmentType` is non-nullable\nexport function useFragment<TType>(\n _documentNode: DocumentTypeDecoration<TType, any>,\n fragmentType: FragmentType<DocumentTypeDecoration<TType, any>>\n): TType;\n// return nullable if `fragmentType` is nullable\nexport function useFragment<TType>(\n _documentNode: DocumentTypeDecoration<TType, any>,\n fragmentType:\n | FragmentType<DocumentTypeDecoration<TType, any>>\n | null\n | undefined\n): TType | null | undefined;\n// return array of non-nullable if `fragmentType` is array of non-nullable\nexport function useFragment<TType>(\n _documentNode: DocumentTypeDecoration<TType, any>,\n fragmentType: ReadonlyArray<FragmentType<DocumentTypeDecoration<TType, any>>>\n): ReadonlyArray<TType>;\n// return array of nullable if `fragmentType` is array of nullable\nexport function useFragment<TType>(\n _documentNode: DocumentTypeDecoration<TType, any>,\n fragmentType:\n | ReadonlyArray<FragmentType<DocumentTypeDecoration<TType, any>>>\n | null\n | undefined\n): ReadonlyArray<TType> | null | undefined;\nexport function useFragment<TType>(\n _documentNode: DocumentTypeDecoration<TType, any>,\n fragmentType:\n | FragmentType<DocumentTypeDecoration<TType, any>>\n | ReadonlyArray<FragmentType<DocumentTypeDecoration<TType, any>>>\n | null\n | undefined\n): TType | ReadonlyArray<TType> | null | undefined {\n return fragmentType as any;\n}\n\nexport function makeFragmentData<\n F extends DocumentTypeDecoration<any, any>,\n FT extends ResultOf<F>,\n>(data: FT, _fragment: F): FragmentType<F> {\n return data as FragmentType<F>;\n}\nexport function isFragmentReady<TQuery, TFrag>(\n queryNode: DocumentTypeDecoration<TQuery, any>,\n fragmentNode: TypedDocumentNode<TFrag>,\n data:\n | FragmentType<TypedDocumentNode<Incremental<TFrag>, any>>\n | null\n | undefined\n): data is FragmentType<typeof fragmentNode> {\n const deferredFields = (\n queryNode as {\n __meta__?: { deferredFields: Record<string, (keyof TFrag)[]> };\n }\n ).__meta__?.deferredFields;\n\n if (!deferredFields) return true;\n\n const fragDef = fragmentNode.definitions[0] as\n | FragmentDefinitionNode\n | undefined;\n const fragName = fragDef?.name?.value;\n\n const fields = (fragName && deferredFields[fragName]) || [];\n return fields.length > 0 && fields.every((field) => data && field in data);\n}\n"],"mappings":";;;;;;;;AA6CO,SAASA,WAAWA,CACzBC,aAAiD,EACjDC,YAIa,EACoC;EACjD,OAAOA,YAAY;AACrB;AAEO,SAASC,gBAAgBA,CAG9BC,IAAQ,EAAEC,SAAY,EAAmB;EACzC,OAAOD,IAAI;AACb;AACO,SAASE,eAAeA,CAC7BC,SAA8C,EAC9CC,YAAsC,EACtCJ,IAGa,EAC8B;EAAA,IAAAK,OAAA,EAAAC,aAAA;EAC3C,MAAMC,cAAc,IAAAF,OAAA,GAClBF,SAAS,CAGTK,QAAQ,cAAAH,OAAA,uBAJaA,OAAA,CAIXE,cAAc;EAE1B,IAAI,CAACA,cAAc,EAAE,OAAO,IAAI;EAEhC,MAAME,OAAO,GAAGL,YAAY,CAACM,WAAW,CAAC,CAAC,CAE7B;EACb,MAAMC,QAAQ,GAAGF,OAAO,aAAPA,OAAO,gBAAAH,aAAA,GAAPG,OAAO,CAAEG,IAAI,cAAAN,aAAA,uBAAbA,aAAA,CAAeO,KAAK;EAErC,MAAMC,MAAM,GAAIH,QAAQ,IAAIJ,cAAc,CAACI,QAAQ,CAAC,IAAK,EAAE;EAC3D,OAAOG,MAAM,CAACC,MAAM,GAAG,CAAC,IAAID,MAAM,CAACE,KAAK,CAAEC,KAAK,IAAKjB,IAAI,IAAIiB,KAAK,IAAIjB,IAAI,CAAC;AAC5E","ignoreList":[]}
|
|
@@ -5,13 +5,13 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
});
|
|
6
6
|
exports.graphql = graphql;
|
|
7
7
|
var types = _interopRequireWildcard(require("./graphql"));
|
|
8
|
-
function
|
|
9
|
-
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; }
|
|
8
|
+
function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
|
|
10
9
|
const documents = {
|
|
11
10
|
'\n query PriceCandles(\n $division: Division!\n $dataSource: InstrumentDataSource!\n $instrument: String!\n $granularity: Granularity!\n $timeSpan: TimeSpan!\n ) {\n priceCandles(\n division: $division\n dataSource: $dataSource\n instrument: $instrument\n granularity: $granularity\n timeSpan: $timeSpan\n ) {\n candle {\n point\n high\n low\n open\n close\n }\n timeSpan\n }\n }\n': types.PriceCandlesDocument,
|
|
12
11
|
'\n query validateInstruments($instruments: [String]!, $division: Division) {\n mapInstrumentNames(instruments: $instruments, division: $division) {\n name\n displayName\n }\n }\n': types.ValidateInstrumentsDocument
|
|
13
12
|
};
|
|
14
13
|
function graphql(source) {
|
|
15
|
-
|
|
14
|
+
var _source;
|
|
15
|
+
return (_source = documents[source]) !== null && _source !== void 0 ? _source : {};
|
|
16
16
|
}
|
|
17
17
|
//# sourceMappingURL=gql.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gql.js","names":["types","_interopRequireWildcard","require","
|
|
1
|
+
{"version":3,"file":"gql.js","names":["types","_interopRequireWildcard","require","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","documents","PriceCandlesDocument","ValidateInstrumentsDocument","graphql","source","_source"],"sources":["../../../../src/gql/types/gql.ts"],"sourcesContent":["/* eslint-disable */\nimport * as types from './graphql';\nimport { TypedDocumentNode as DocumentNode } from '@graphql-typed-document-node/core';\n\n/**\n * Map of all GraphQL operations in the project.\n *\n * This map has several performance disadvantages:\n * 1. It is not tree-shakeable, so it will include all operations in the project.\n * 2. It is not minifiable, so the string of a GraphQL query will be multiple times inside the bundle.\n * 3. It does not support dead code elimination, so it will add unused operations.\n *\n * Therefore it is highly recommended to use the babel or swc plugin for production.\n */\nconst documents = {\n '\\n query PriceCandles(\\n $division: Division!\\n $dataSource: InstrumentDataSource!\\n $instrument: String!\\n $granularity: Granularity!\\n $timeSpan: TimeSpan!\\n ) {\\n priceCandles(\\n division: $division\\n dataSource: $dataSource\\n instrument: $instrument\\n granularity: $granularity\\n timeSpan: $timeSpan\\n ) {\\n candle {\\n point\\n high\\n low\\n open\\n close\\n }\\n timeSpan\\n }\\n }\\n':\n types.PriceCandlesDocument,\n '\\n query validateInstruments($instruments: [String]!, $division: Division) {\\n mapInstrumentNames(instruments: $instruments, division: $division) {\\n name\\n displayName\\n }\\n }\\n':\n types.ValidateInstrumentsDocument,\n};\n\n/**\n * The graphql function is used to parse GraphQL queries into a document that can be used by GraphQL clients.\n *\n *\n * @example\n * ```ts\n * const query = graphql(`query GetUser($id: ID!) { user(id: $id) { name } }`);\n * ```\n *\n * The query argument is unknown!\n * Please regenerate the types.\n */\nexport function graphql(source: string): unknown;\n\n/**\n * The graphql function is used to parse GraphQL queries into a document that can be used by GraphQL clients.\n */\nexport function graphql(\n source: '\\n query PriceCandles(\\n $division: Division!\\n $dataSource: InstrumentDataSource!\\n $instrument: String!\\n $granularity: Granularity!\\n $timeSpan: TimeSpan!\\n ) {\\n priceCandles(\\n division: $division\\n dataSource: $dataSource\\n instrument: $instrument\\n granularity: $granularity\\n timeSpan: $timeSpan\\n ) {\\n candle {\\n point\\n high\\n low\\n open\\n close\\n }\\n timeSpan\\n }\\n }\\n'\n): (typeof documents)['\\n query PriceCandles(\\n $division: Division!\\n $dataSource: InstrumentDataSource!\\n $instrument: String!\\n $granularity: Granularity!\\n $timeSpan: TimeSpan!\\n ) {\\n priceCandles(\\n division: $division\\n dataSource: $dataSource\\n instrument: $instrument\\n granularity: $granularity\\n timeSpan: $timeSpan\\n ) {\\n candle {\\n point\\n high\\n low\\n open\\n close\\n }\\n timeSpan\\n }\\n }\\n'];\n/**\n * The graphql function is used to parse GraphQL queries into a document that can be used by GraphQL clients.\n */\nexport function graphql(\n source: '\\n query validateInstruments($instruments: [String]!, $division: Division) {\\n mapInstrumentNames(instruments: $instruments, division: $division) {\\n name\\n displayName\\n }\\n }\\n'\n): (typeof documents)['\\n query validateInstruments($instruments: [String]!, $division: Division) {\\n mapInstrumentNames(instruments: $instruments, division: $division) {\\n name\\n displayName\\n }\\n }\\n'];\n\nexport function graphql(source: string) {\n return (documents as any)[source] ?? {};\n}\n\nexport type DocumentType<TDocumentNode extends DocumentNode<any, any>> =\n TDocumentNode extends DocumentNode<infer TType, any> ? TType : never;\n"],"mappings":";;;;;;AACA,IAAAA,KAAA,GAAAC,uBAAA,CAAAC,OAAA;AAAmC,SAAAD,wBAAAE,CAAA,EAAAC,CAAA,6BAAAC,OAAA,MAAAC,CAAA,OAAAD,OAAA,IAAAE,CAAA,OAAAF,OAAA,YAAAJ,uBAAA,YAAAA,CAAAE,CAAA,EAAAC,CAAA,SAAAA,CAAA,IAAAD,CAAA,IAAAA,CAAA,CAAAK,UAAA,SAAAL,CAAA,MAAAM,CAAA,EAAAC,CAAA,EAAAC,CAAA,KAAAC,SAAA,QAAAC,OAAA,EAAAV,CAAA,iBAAAA,CAAA,uBAAAA,CAAA,yBAAAA,CAAA,SAAAQ,CAAA,MAAAF,CAAA,GAAAL,CAAA,GAAAG,CAAA,GAAAD,CAAA,QAAAG,CAAA,CAAAK,GAAA,CAAAX,CAAA,UAAAM,CAAA,CAAAM,GAAA,CAAAZ,CAAA,GAAAM,CAAA,CAAAO,GAAA,CAAAb,CAAA,EAAAQ,CAAA,gBAAAP,CAAA,IAAAD,CAAA,gBAAAC,CAAA,OAAAa,cAAA,CAAAC,IAAA,CAAAf,CAAA,EAAAC,CAAA,OAAAM,CAAA,IAAAD,CAAA,GAAAU,MAAA,CAAAC,cAAA,KAAAD,MAAA,CAAAE,wBAAA,CAAAlB,CAAA,EAAAC,CAAA,OAAAM,CAAA,CAAAK,GAAA,IAAAL,CAAA,CAAAM,GAAA,IAAAP,CAAA,CAAAE,CAAA,EAAAP,CAAA,EAAAM,CAAA,IAAAC,CAAA,CAAAP,CAAA,IAAAD,CAAA,CAAAC,CAAA,WAAAO,CAAA,KAAAR,CAAA,EAAAC,CAAA;AAanC,MAAMkB,SAAS,GAAG;EAChB,qeAAqe,EACnetB,KAAK,CAACuB,oBAAoB;EAC5B,sMAAsM,EACpMvB,KAAK,CAACwB;AACV,CAAC;AA6BM,SAASC,OAAOA,CAACC,MAAc,EAAE;EAAA,IAAAC,OAAA;EACtC,QAAAA,OAAA,GAAQL,SAAS,CAASI,MAAM,CAAC,cAAAC,OAAA,cAAAA,OAAA,GAAI,CAAC,CAAC;AACzC","ignoreList":[]}
|
|
@@ -5,12 +5,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
});
|
|
6
6
|
exports.validateInstruments = void 0;
|
|
7
7
|
var _client = require("@apollo/client");
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
mapInstrumentNames(instruments: $instruments, division: $division) {
|
|
11
|
-
name
|
|
12
|
-
displayName
|
|
13
|
-
}
|
|
14
|
-
}
|
|
15
|
-
`;
|
|
8
|
+
var _templateObject;
|
|
9
|
+
function _taggedTemplateLiteral(e, t) { return t || (t = e.slice(0)), Object.freeze(Object.defineProperties(e, { raw: { value: Object.freeze(t) } })); }
|
|
10
|
+
const validateInstruments = exports.validateInstruments = (0, _client.gql)(_templateObject || (_templateObject = _taggedTemplateLiteral(["\n query validateInstruments($instruments: [String]!, $division: Division) {\n mapInstrumentNames(instruments: $instruments, division: $division) {\n name\n displayName\n }\n }\n"])));
|
|
16
11
|
//# sourceMappingURL=validateInstruments.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validateInstruments.js","names":["_client","require","validateInstruments","exports","gql"],"sources":["../../../src/gql/validateInstruments.ts"],"sourcesContent":["import { gql } from '@apollo/client';\n\nexport const validateInstruments = gql`\n query validateInstruments($instruments: [String]!, $division: Division) {\n mapInstrumentNames(instruments: $instruments, division: $division) {\n name\n displayName\n }\n }\n`;\n"],"mappings":";;;;;;AAAA,IAAAA,OAAA,GAAAC,OAAA;
|
|
1
|
+
{"version":3,"file":"validateInstruments.js","names":["_client","require","_templateObject","_taggedTemplateLiteral","e","t","slice","Object","freeze","defineProperties","raw","value","validateInstruments","exports","gql"],"sources":["../../../src/gql/validateInstruments.ts"],"sourcesContent":["import { gql } from '@apollo/client';\n\nexport const validateInstruments = gql`\n query validateInstruments($instruments: [String]!, $division: Division) {\n mapInstrumentNames(instruments: $instruments, division: $division) {\n name\n displayName\n }\n }\n`;\n"],"mappings":";;;;;;AAAA,IAAAA,OAAA,GAAAC,OAAA;AAAqC,IAAAC,eAAA;AAAA,SAAAC,uBAAAC,CAAA,EAAAC,CAAA,WAAAA,CAAA,KAAAA,CAAA,GAAAD,CAAA,CAAAE,KAAA,MAAAC,MAAA,CAAAC,MAAA,CAAAD,MAAA,CAAAE,gBAAA,CAAAL,CAAA,IAAAM,GAAA,IAAAC,KAAA,EAAAJ,MAAA,CAAAC,MAAA,CAAAH,CAAA;AAE9B,MAAMO,mBAAmB,GAAAC,OAAA,CAAAD,mBAAA,OAAGE,WAAG,EAAAZ,eAAA,KAAAA,eAAA,GAAAC,sBAAA,4MAOrC","ignoreList":[]}
|
|
@@ -29,7 +29,7 @@ const Main = _ref => {
|
|
|
29
29
|
fetchPolicy: 'cache-and-network'
|
|
30
30
|
});
|
|
31
31
|
const candles = getCandles(data);
|
|
32
|
-
const showError = candles
|
|
32
|
+
const showError = (candles === null || candles === void 0 ? void 0 : candles.length) === 0 || !candles || !!error;
|
|
33
33
|
return React.createElement("div", {
|
|
34
34
|
"data-testid": "instruments-price-chart-wrapper"
|
|
35
35
|
}, React.createElement("div", {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Main.js","names":["useQuery","ChartError","Spinner","SpinnerSize","TimeUnitSwitch","React","useState","priceCandles","TimeSpan","Chart","TimeZoneLabel","timeUnitConfig","getCandles","getGranularityForTimeSpan","Main","_ref","division","instrument","dataSource","selectedTimeUnit","setSelectedTimeUnit","Day_1","loading","data","error","variables","granularity","timeSpan","fetchPolicy","candles","showError","length","createElement","className","callback","options","selected","size","lg","values"],"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":"AAAA,SAASA,QAAQ,QAAQ,gBAAgB;AACzC,SACEC,UAAU,EACVC,OAAO,EACPC,WAAW,EACXC,cAAc,QACT,2BAA2B;AAClC,OAAOC,KAAK,IAAIC,QAAQ,QAAQ,OAAO;AAEvC,SAASC,YAAY,QAAQ,qBAAqB;AAClD,SAGEC,QAAQ,QACH,sBAAsB;AAC7B,SAASC,KAAK,QAAQ,oBAAoB;AAC1C,SAASC,aAAa,QAAQ,4BAA4B;AAC1D,SAASC,cAAc,QAAQ,UAAU;AAEzC,SAASC,UAAU,EAAEC,yBAAyB,QAAQ,SAAS;AAE/D,MAAMC,IAAI,GAAGC,IAAA,IAAqD;EAAA,IAApD;IAAEC,QAAQ;IAAEC,UAAU;IAAEC;EAAsB,CAAC,GAAAH,IAAA;EAC3D,MAAM,CAACI,gBAAgB,EAAEC,mBAAmB,CAAC,GAAGd,QAAQ,CAACE,QAAQ,CAACa,KAAK,CAAC;EAExE,MAAM;IAAEC,OAAO;IAAEC,IAAI;IAAEC;EAAM,CAAC,GAAGxB,QAAQ,CAGvCO,YAAY,EAAE;IACdkB,SAAS,EAAE;MACTP,UAAU;MACVF,QAAQ;MACRC,UAAU;MACVS,WAAW,EAAEb,yBAAyB,CAACM,gBAAgB,CAAC;MACxDQ,QAAQ,EAAER;IACZ,CAAC;IACDS,WAAW,EAAE;EACf,CAAC,CAAC;EAEF,MAAMC,OAAO,GAAGjB,UAAU,CAACW,IAAI,CAAC;EAChC,MAAMO,SAAS,
|
|
1
|
+
{"version":3,"file":"Main.js","names":["useQuery","ChartError","Spinner","SpinnerSize","TimeUnitSwitch","React","useState","priceCandles","TimeSpan","Chart","TimeZoneLabel","timeUnitConfig","getCandles","getGranularityForTimeSpan","Main","_ref","division","instrument","dataSource","selectedTimeUnit","setSelectedTimeUnit","Day_1","loading","data","error","variables","granularity","timeSpan","fetchPolicy","candles","showError","length","createElement","className","callback","options","selected","size","lg","values"],"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":"AAAA,SAASA,QAAQ,QAAQ,gBAAgB;AACzC,SACEC,UAAU,EACVC,OAAO,EACPC,WAAW,EACXC,cAAc,QACT,2BAA2B;AAClC,OAAOC,KAAK,IAAIC,QAAQ,QAAQ,OAAO;AAEvC,SAASC,YAAY,QAAQ,qBAAqB;AAClD,SAGEC,QAAQ,QACH,sBAAsB;AAC7B,SAASC,KAAK,QAAQ,oBAAoB;AAC1C,SAASC,aAAa,QAAQ,4BAA4B;AAC1D,SAASC,cAAc,QAAQ,UAAU;AAEzC,SAASC,UAAU,EAAEC,yBAAyB,QAAQ,SAAS;AAE/D,MAAMC,IAAI,GAAGC,IAAA,IAAqD;EAAA,IAApD;IAAEC,QAAQ;IAAEC,UAAU;IAAEC;EAAsB,CAAC,GAAAH,IAAA;EAC3D,MAAM,CAACI,gBAAgB,EAAEC,mBAAmB,CAAC,GAAGd,QAAQ,CAACE,QAAQ,CAACa,KAAK,CAAC;EAExE,MAAM;IAAEC,OAAO;IAAEC,IAAI;IAAEC;EAAM,CAAC,GAAGxB,QAAQ,CAGvCO,YAAY,EAAE;IACdkB,SAAS,EAAE;MACTP,UAAU;MACVF,QAAQ;MACRC,UAAU;MACVS,WAAW,EAAEb,yBAAyB,CAACM,gBAAgB,CAAC;MACxDQ,QAAQ,EAAER;IACZ,CAAC;IACDS,WAAW,EAAE;EACf,CAAC,CAAC;EAEF,MAAMC,OAAO,GAAGjB,UAAU,CAACW,IAAI,CAAC;EAChC,MAAMO,SAAS,GAAG,CAAAD,OAAO,aAAPA,OAAO,uBAAPA,OAAO,CAAEE,MAAM,MAAK,CAAC,IAAI,CAACF,OAAO,IAAI,CAAC,CAACL,KAAK;EAE9D,OACEnB,KAAA,CAAA2B,aAAA;IAAK,eAAY;EAAiC,GAChD3B,KAAA,CAAA2B,aAAA;IAAKC,SAAS,EAAC;EAAiB,GAC9B5B,KAAA,CAAA2B,aAAA,CAAC5B,cAAc;IACb8B,QAAQ,EAAEd,mBAAoB;IAC9Be,OAAO,EAAExB,cAAe;IACxByB,QAAQ,EAAEjB;EAAiB,CAC5B,CACE,CAAC,EAELG,OAAO,IACNjB,KAAA,CAAA2B,aAAA;IAAKC,SAAS,EAAC;EAAmG,GAChH5B,KAAA,CAAA2B,aAAA,CAAC9B,OAAO;IAACmC,IAAI,EAAElC,WAAW,CAACmC;EAAG,CAAE,CAC7B,CACN,EAEA,CAAChB,OAAO,IAAIQ,SAAS,IACpBzB,KAAA,CAAA2B,aAAA;IAAKC,SAAS,EAAC;EAAmG,GAChH5B,KAAA,CAAA2B,aAAA,CAAC/B,UAAU,MAAE,CACV,CACN,EAEA,CAACqB,OAAO,IAAI,CAACQ,SAAS,IACrBzB,KAAA,CAAA2B,aAAA;IAAK,eAAY;EAAgC,GAC/C3B,KAAA,CAAA2B,aAAA,CAACvB,KAAK;IAACkB,QAAQ,EAAER,gBAAiB;IAACoB,MAAM,EAAEV;EAAQ,CAAE,CAClD,CACN,EACDxB,KAAA,CAAA2B,aAAA,CAACtB,aAAa,MAAE,CACb,CAAC;AAEV,CAAC;AAED,SAASI,IAAI","ignoreList":[]}
|
|
@@ -14,8 +14,8 @@ export const TimeZoneLabel = () => {
|
|
|
14
14
|
return React.createElement("span", {
|
|
15
15
|
className: "lw-ml-1 lw-font-sans lw-text-xs lw-font-bold",
|
|
16
16
|
"data-testid": "timezone-label"
|
|
17
|
-
},
|
|
17
|
+
}, "".concat(lang('timezone_display', {
|
|
18
18
|
timezone: getBrowserOffsetLabel()
|
|
19
|
-
})
|
|
19
|
+
})));
|
|
20
20
|
};
|
|
21
21
|
//# sourceMappingURL=TimeZoneLabel.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TimeZoneLabel.js","names":["useLocale","React","getBrowserOffsetLabel","parts","Intl","DateTimeFormat","undefined","timeZoneName","formatToParts","Date","tzPart","find","p","type","value","TimeZoneLabel","lang","createElement","className","timezone"],"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,SAASA,SAAS,QAAQ,kBAAkB;AAC5C,OAAOC,KAAK,MAAM,OAAO;AAEzB,MAAMC,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;AAED,OAAO,MAAMC,aAAa,GAAGA,CAAA,KAAM;EACjC,MAAM;IAAEC;EAAK,CAAC,GAAGhB,SAAS,CAAC,CAAC;EAE5B,OACEC,KAAA,CAAAgB,aAAA;IACEC,SAAS,EAAC,8CAA8C;IACxD,eAAY;EAAgB,
|
|
1
|
+
{"version":3,"file":"TimeZoneLabel.js","names":["useLocale","React","getBrowserOffsetLabel","parts","Intl","DateTimeFormat","undefined","timeZoneName","formatToParts","Date","tzPart","find","p","type","value","TimeZoneLabel","lang","createElement","className","concat","timezone"],"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,SAASA,SAAS,QAAQ,kBAAkB;AAC5C,OAAOC,KAAK,MAAM,OAAO;AAEzB,MAAMC,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;AAED,OAAO,MAAMC,aAAa,GAAGA,CAAA,KAAM;EACjC,MAAM;IAAEC;EAAK,CAAC,GAAGhB,SAAS,CAAC,CAAC;EAE5B,OACEC,KAAA,CAAAgB,aAAA;IACEC,SAAS,EAAC,8CAA8C;IACxD,eAAY;EAAgB,MAAAC,MAAA,CACzBH,IAAI,CAAC,kBAAkB,EAAE;IAC5BI,QAAQ,EAAElB,qBAAqB,CAAC;EAClC,CAAC,CAAC,CAAS,CAAC;AAEhB,CAAC","ignoreList":[]}
|
|
@@ -19,7 +19,7 @@ export const labelFormatter = (timeSpan, values) => (_, index) => {
|
|
|
19
19
|
switch (timeSpan) {
|
|
20
20
|
case TimeSpan.Day_1:
|
|
21
21
|
const hour = date.getHours();
|
|
22
|
-
return
|
|
22
|
+
return "".concat(String(hour).padStart(2, '0'), ":00");
|
|
23
23
|
case TimeSpan.Week_1:
|
|
24
24
|
case TimeSpan.Month_1:
|
|
25
25
|
return date.toLocaleDateString(undefined, {
|
|
@@ -57,14 +57,6 @@ export const tooltipFormatter = _ref => {
|
|
|
57
57
|
point
|
|
58
58
|
} = data;
|
|
59
59
|
const date = chartDateTimeFormat(point);
|
|
60
|
-
return
|
|
61
|
-
<div style="display:flex; flex-direction:column;">
|
|
62
|
-
<span style="margin-bottom:5px;">${date}</span>
|
|
63
|
-
${lang('open')}: ${open.toFixed(4)}<br />
|
|
64
|
-
${lang('high')}: ${high.toFixed(4)}<br />
|
|
65
|
-
${lang('low')}: ${low.toFixed(4)}<br />
|
|
66
|
-
${lang('close')}: ${close.toFixed(4)}
|
|
67
|
-
</div>
|
|
68
|
-
`;
|
|
60
|
+
return "\n <div style=\"display:flex; flex-direction:column;\">\n <span style=\"margin-bottom:5px;\">".concat(date, "</span>\n ").concat(lang('open'), ": ").concat(open.toFixed(4), "<br />\n ").concat(lang('high'), ": ").concat(high.toFixed(4), "<br />\n ").concat(lang('low'), ": ").concat(low.toFixed(4), "<br />\n ").concat(lang('close'), ": ").concat(close.toFixed(4), "\n </div>\n ");
|
|
69
61
|
};
|
|
70
62
|
//# sourceMappingURL=formatters.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"formatters.js","names":["TimeSpan","showSplitLine","index","total","interval","Math","max","floor","showChartIntervalLabel","timeSpan","values","date","Date","point","labelInterval","length","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":"AAAA,SAASA,QAAQ,QAAQ,yBAAyB;AAGlD,OAAO,MAAMC,aAAa,GAAGA,CAACC,KAAa,EAAEC,KAAa,KAAc;EACtE,MAAMC,QAAQ,GAAGC,IAAI,CAACC,GAAG,CAAC,CAAC,EAAED,IAAI,CAACE,KAAK,CAACJ,KAAK,GAAG,CAAC,CAAC,CAAC;EACnD,OAAOD,KAAK,GAAGE,QAAQ,KAAK,CAAC;AAC/B,CAAC;AAED,MAAMI,sBAAsB,GAAGA,CAC7BC,QAAkB,EAClBC,MAA2B,EAC3BR,KAAa,KACD;EACZ,MAAMS,IAAI,GAAG,IAAIC,IAAI,CAACF,MAAM,CAACR,KAAK,CAAC,CAACW,KAAK,CAAC;EAC1C,MAAMC,aAAa,GAAGT,IAAI,CAACC,GAAG,CAAC,CAAC,EAAED,IAAI,CAACE,KAAK,CAACG,MAAM,CAACK,MAAM,GAAG,CAAC,CAAC,CAAC;EAEhE,IACEN,QAAQ,KAAKT,QAAQ,CAACgB,OAAO,IAC7BP,QAAQ,KAAKT,QAAQ,CAACiB,MAAM,IAC5BR,QAAQ,KAAKT,QAAQ,CAACkB,MAAM,EAC5B;IACA,MAAMC,IAAI,GAAGjB,KAAK,GAAG,CAAC,GAAG,IAAIU,IAAI,CAACF,MAAM,CAACR,KAAK,GAAG,CAAC,CAAC,CAACW,KAAK,CAAC,GAAG,IAAI;IACjE,MAAMO,YAAY,GAChB,CAACD,IAAI,IACLR,IAAI,CAACU,QAAQ,CAAC,CAAC,KAAKF,IAAI,CAACE,QAAQ,CAAC,CAAC,IACnCV,IAAI,CAACW,WAAW,CAAC,CAAC,KAAKH,IAAI,CAACG,WAAW,CAAC,CAAC;IAE3C,OAAOF,YAAY;EACrB;EAEA,OAAOlB,KAAK,GAAGY,aAAa,KAAK,CAAC;AACpC,CAAC;AAED,OAAO,MAAMS,cAAc,GACzBA,CAACd,QAAkB,EAAEC,MAA2B,KAChD,CAACc,CAAS,EAAEtB,KAAa,KAAa;EACpC,MAAMS,IAAI,GAAG,IAAIC,IAAI,CAACF,MAAM,CAACR,KAAK,CAAC,CAACW,KAAK,CAAC;EAE1C,IAAI,CAACL,sBAAsB,CAACC,QAAQ,EAAEC,MAAM,EAAER,KAAK,CAAC,EAAE,OAAO,EAAE;EAE/D,QAAQO,QAAQ;IACd,KAAKT,QAAQ,CAACyB,KAAK;MACjB,MAAMC,IAAI,GAAGf,IAAI,CAACgB,QAAQ,CAAC,CAAC;MAC5B,
|
|
1
|
+
{"version":3,"file":"formatters.js","names":["TimeSpan","showSplitLine","index","total","interval","Math","max","floor","showChartIntervalLabel","timeSpan","values","date","Date","point","labelInterval","length","Month_6","Year_1","Year_5","prev","monthChanged","getMonth","getFullYear","labelFormatter","_","Day_1","hour","getHours","concat","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":[]}
|
|
@@ -1,3 +1,8 @@
|
|
|
1
|
+
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
2
|
+
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
3
|
+
function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
|
|
4
|
+
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
|
|
5
|
+
function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
|
|
1
6
|
import { colorPalette, getGridLines, getLineCommons } from '@oanda/labs-widget-common';
|
|
2
7
|
import { CHART_HEIGHT, CHART_INTERVAL, CHART_WIDTH, X_LABEL_SIZE, Y_LABEL_SIZE_DESKTOP } from './constants';
|
|
3
8
|
import { labelFormatter, showSplitLine, tooltipFormatter } from './formatters';
|
|
@@ -80,9 +85,9 @@ export const getOption = _ref => {
|
|
|
80
85
|
series: [{
|
|
81
86
|
name: 'price-close',
|
|
82
87
|
type: 'line',
|
|
83
|
-
data: values.map(d => ({
|
|
84
|
-
value: d.high
|
|
85
|
-
|
|
88
|
+
data: values.map(d => _objectSpread(_objectSpread({
|
|
89
|
+
value: d.high
|
|
90
|
+
}, d), {}, {
|
|
86
91
|
time: d.point
|
|
87
92
|
})),
|
|
88
93
|
smooth: true,
|
|
@@ -112,11 +117,10 @@ export const getOption = _ref => {
|
|
|
112
117
|
name: 'main-grid',
|
|
113
118
|
top: 0,
|
|
114
119
|
left: 0,
|
|
115
|
-
right:
|
|
116
|
-
bottom:
|
|
120
|
+
right: "".concat(Y_LABEL_SIZE_DESKTOP, "px"),
|
|
121
|
+
bottom: "".concat(X_LABEL_SIZE, "px")
|
|
117
122
|
}],
|
|
118
|
-
graphic: [...gridLines, {
|
|
119
|
-
...getLineCommons(isDark),
|
|
123
|
+
graphic: [...gridLines, _objectSpread(_objectSpread({}, getLineCommons(isDark)), {}, {
|
|
120
124
|
top: 0,
|
|
121
125
|
right: 0,
|
|
122
126
|
shape: {
|
|
@@ -125,7 +129,7 @@ export const getOption = _ref => {
|
|
|
125
129
|
x2: 0,
|
|
126
130
|
y2: 0
|
|
127
131
|
}
|
|
128
|
-
}]
|
|
132
|
+
})]
|
|
129
133
|
};
|
|
130
134
|
};
|
|
131
135
|
//# sourceMappingURL=getOption.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getOption.js","names":["colorPalette","getGridLines","getLineCommons","CHART_HEIGHT","CHART_INTERVAL","CHART_WIDTH","X_LABEL_SIZE","Y_LABEL_SIZE_DESKTOP","labelFormatter","showSplitLine","tooltipFormatter","getOption","_ref","values","isDark","lang","timeSpan","priceValues","map","d","high","gridLines","chartWidth","chartHeight","xLabelsSize","yLabelSize","bottomLeftBox","animation","tooltip","trigger","axisPointer","axis","formatter","params","p","Array","isArray","data","xAxis","type","boundaryGap","point","axisTick","show","axisLabel","padding","interval","splitLine","index","length","yAxis","position","min","value","Math","floor","max","ceil","axisLine","margin","dataMin","dataMax","toFixed","series","name","time","smooth","symbol","lineStyle","color","navyBlue","width","areaStyle","x","y","x2","y2","colorStops","offset","brightBlue30","brightBlue","grid","top","left","right","bottom","graphic","shape","x1","y1"],"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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
|
|
1
|
+
{"version":3,"file":"getOption.js","names":["colorPalette","getGridLines","getLineCommons","CHART_HEIGHT","CHART_INTERVAL","CHART_WIDTH","X_LABEL_SIZE","Y_LABEL_SIZE_DESKTOP","labelFormatter","showSplitLine","tooltipFormatter","getOption","_ref","values","isDark","lang","timeSpan","priceValues","map","d","high","gridLines","chartWidth","chartHeight","xLabelsSize","yLabelSize","bottomLeftBox","animation","tooltip","trigger","axisPointer","axis","formatter","params","p","Array","isArray","data","xAxis","type","boundaryGap","point","axisTick","show","axisLabel","padding","interval","splitLine","index","length","yAxis","position","min","value","Math","floor","max","ceil","axisLine","margin","dataMin","dataMax","toFixed","series","name","_objectSpread","time","smooth","symbol","lineStyle","color","navyBlue","width","areaStyle","x","y","x2","y2","colorStops","offset","brightBlue30","brightBlue","grid","top","left","right","concat","bottom","graphic","shape","x1","y1"],"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,4 +1,4 @@
|
|
|
1
1
|
import { granularityForTimeSpan } from './config';
|
|
2
2
|
export const getGranularityForTimeSpan = timeSpan => granularityForTimeSpan[timeSpan];
|
|
3
|
-
export const getCandles = data => data
|
|
3
|
+
export const getCandles = data => data === null || data === void 0 ? void 0 : data.priceCandles.candle.filter(c => c !== null);
|
|
4
4
|
//# sourceMappingURL=utils.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","names":["granularityForTimeSpan","getGranularityForTimeSpan","timeSpan","getCandles","data","priceCandles","candle","filter","c"],"sources":["../../../src/InstrumentsPriceChartWidget/utils.ts"],"sourcesContent":["import type {\n Candle,\n Granularity,\n PriceCandlesQuery,\n TimeSpan,\n} from '../gql/types/graphql';\nimport { granularityForTimeSpan } from './config';\nimport type { TimeSpanSubset } from './types';\n\nexport const getGranularityForTimeSpan = (timeSpan: TimeSpan): Granularity =>\n granularityForTimeSpan[timeSpan as unknown as TimeSpanSubset];\n\nexport const getCandles = (\n data: PriceCandlesQuery | undefined\n): Candle[] | undefined =>\n data?.priceCandles.candle.filter((c): c is Candle => c !== null);\n"],"mappings":"AAMA,SAASA,sBAAsB,QAAQ,UAAU;AAGjD,OAAO,MAAMC,yBAAyB,GAAIC,QAAkB,IAC1DF,sBAAsB,CAACE,QAAQ,CAA8B;AAE/D,OAAO,MAAMC,UAAU,GACrBC,IAAmC,IAEnCA,IAAI,
|
|
1
|
+
{"version":3,"file":"utils.js","names":["granularityForTimeSpan","getGranularityForTimeSpan","timeSpan","getCandles","data","priceCandles","candle","filter","c"],"sources":["../../../src/InstrumentsPriceChartWidget/utils.ts"],"sourcesContent":["import type {\n Candle,\n Granularity,\n PriceCandlesQuery,\n TimeSpan,\n} from '../gql/types/graphql';\nimport { granularityForTimeSpan } from './config';\nimport type { TimeSpanSubset } from './types';\n\nexport const getGranularityForTimeSpan = (timeSpan: TimeSpan): Granularity =>\n granularityForTimeSpan[timeSpan as unknown as TimeSpanSubset];\n\nexport const getCandles = (\n data: PriceCandlesQuery | undefined\n): Candle[] | undefined =>\n data?.priceCandles.candle.filter((c): c is Candle => c !== null);\n"],"mappings":"AAMA,SAASA,sBAAsB,QAAQ,UAAU;AAGjD,OAAO,MAAMC,yBAAyB,GAAIC,QAAkB,IAC1DF,sBAAsB,CAACE,QAAQ,CAA8B;AAE/D,OAAO,MAAMC,UAAU,GACrBC,IAAmC,IAEnCA,IAAI,aAAJA,IAAI,uBAAJA,IAAI,CAAEC,YAAY,CAACC,MAAM,CAACC,MAAM,CAAEC,CAAC,IAAkBA,CAAC,KAAK,IAAI,CAAC","ignoreList":[]}
|
|
@@ -1,29 +1,6 @@
|
|
|
1
|
+
var _templateObject;
|
|
2
|
+
function _taggedTemplateLiteral(e, t) { return t || (t = e.slice(0)), Object.freeze(Object.defineProperties(e, { raw: { value: Object.freeze(t) } })); }
|
|
1
3
|
import { gql } from '@apollo/client';
|
|
2
|
-
const priceCandles = gql
|
|
3
|
-
query PriceCandles(
|
|
4
|
-
$division: Division!
|
|
5
|
-
$dataSource: InstrumentDataSource!
|
|
6
|
-
$instrument: String!
|
|
7
|
-
$granularity: Granularity!
|
|
8
|
-
$timeSpan: TimeSpan!
|
|
9
|
-
) {
|
|
10
|
-
priceCandles(
|
|
11
|
-
division: $division
|
|
12
|
-
dataSource: $dataSource
|
|
13
|
-
instrument: $instrument
|
|
14
|
-
granularity: $granularity
|
|
15
|
-
timeSpan: $timeSpan
|
|
16
|
-
) {
|
|
17
|
-
candle {
|
|
18
|
-
point
|
|
19
|
-
high
|
|
20
|
-
low
|
|
21
|
-
open
|
|
22
|
-
close
|
|
23
|
-
}
|
|
24
|
-
timeSpan
|
|
25
|
-
}
|
|
26
|
-
}
|
|
27
|
-
`;
|
|
4
|
+
const priceCandles = gql(_templateObject || (_templateObject = _taggedTemplateLiteral(["\n query PriceCandles(\n $division: Division!\n $dataSource: InstrumentDataSource!\n $instrument: String!\n $granularity: Granularity!\n $timeSpan: TimeSpan!\n ) {\n priceCandles(\n division: $division\n dataSource: $dataSource\n instrument: $instrument\n granularity: $granularity\n timeSpan: $timeSpan\n ) {\n candle {\n point\n high\n low\n open\n close\n }\n timeSpan\n }\n }\n"])));
|
|
28
5
|
export { priceCandles };
|
|
29
6
|
//# sourceMappingURL=priceCandles.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"priceCandles.js","names":["gql","priceCandles"],"sources":["../../../src/gql/priceCandles.ts"],"sourcesContent":["import { gql } from '@apollo/client';\n\nconst priceCandles = gql`\n query PriceCandles(\n $division: Division!\n $dataSource: InstrumentDataSource!\n $instrument: String!\n $granularity: Granularity!\n $timeSpan: TimeSpan!\n ) {\n priceCandles(\n division: $division\n dataSource: $dataSource\n instrument: $instrument\n granularity: $granularity\n timeSpan: $timeSpan\n ) {\n candle {\n point\n high\n low\n open\n close\n }\n timeSpan\n }\n }\n`;\n\nexport { priceCandles };\n"],"mappings":"AAAA,SAASA,GAAG,QAAQ,gBAAgB;AAEpC,MAAMC,YAAY,GAAGD,GAAG
|
|
1
|
+
{"version":3,"file":"priceCandles.js","names":["gql","priceCandles","_templateObject","_taggedTemplateLiteral"],"sources":["../../../src/gql/priceCandles.ts"],"sourcesContent":["import { gql } from '@apollo/client';\n\nconst priceCandles = gql`\n query PriceCandles(\n $division: Division!\n $dataSource: InstrumentDataSource!\n $instrument: String!\n $granularity: Granularity!\n $timeSpan: TimeSpan!\n ) {\n priceCandles(\n division: $division\n dataSource: $dataSource\n instrument: $instrument\n granularity: $granularity\n timeSpan: $timeSpan\n ) {\n candle {\n point\n high\n low\n open\n close\n }\n timeSpan\n }\n }\n`;\n\nexport { priceCandles };\n"],"mappings":";;AAAA,SAASA,GAAG,QAAQ,gBAAgB;AAEpC,MAAMC,YAAY,GAAGD,GAAG,CAAAE,eAAA,KAAAA,eAAA,GAAAC,sBAAA,2eAyBvB;AAED,SAASF,YAAY","ignoreList":[]}
|
|
@@ -5,10 +5,11 @@ export function makeFragmentData(data, _fragment) {
|
|
|
5
5
|
return data;
|
|
6
6
|
}
|
|
7
7
|
export function isFragmentReady(queryNode, fragmentNode, data) {
|
|
8
|
-
|
|
8
|
+
var _meta__, _fragDef$name;
|
|
9
|
+
const deferredFields = (_meta__ = queryNode.__meta__) === null || _meta__ === void 0 ? void 0 : _meta__.deferredFields;
|
|
9
10
|
if (!deferredFields) return true;
|
|
10
11
|
const fragDef = fragmentNode.definitions[0];
|
|
11
|
-
const fragName = fragDef
|
|
12
|
+
const fragName = fragDef === null || fragDef === void 0 || (_fragDef$name = fragDef.name) === null || _fragDef$name === void 0 ? void 0 : _fragDef$name.value;
|
|
12
13
|
const fields = fragName && deferredFields[fragName] || [];
|
|
13
14
|
return fields.length > 0 && fields.every(field => data && field in data);
|
|
14
15
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fragment-masking.js","names":["useFragment","_documentNode","fragmentType","makeFragmentData","data","_fragment","isFragmentReady","queryNode","fragmentNode","deferredFields","__meta__","fragDef","definitions","fragName","name","value","fields","length","every","field"],"sources":["../../../../src/gql/types/fragment-masking.ts"],"sourcesContent":["import {\n ResultOf,\n DocumentTypeDecoration,\n TypedDocumentNode,\n} from '@graphql-typed-document-node/core';\nimport { FragmentDefinitionNode } from 'graphql';\nimport { Incremental } from './graphql';\n\nexport type FragmentType<\n TDocumentType extends DocumentTypeDecoration<any, any>,\n> =\n TDocumentType extends DocumentTypeDecoration<infer TType, any>\n ? [TType] extends [{ ' $fragmentName'?: infer TKey }]\n ? TKey extends string\n ? { ' $fragmentRefs'?: { [key in TKey]: TType } }\n : never\n : never\n : never;\n\n// return non-nullable if `fragmentType` is non-nullable\nexport function useFragment<TType>(\n _documentNode: DocumentTypeDecoration<TType, any>,\n fragmentType: FragmentType<DocumentTypeDecoration<TType, any>>\n): TType;\n// return nullable if `fragmentType` is nullable\nexport function useFragment<TType>(\n _documentNode: DocumentTypeDecoration<TType, any>,\n fragmentType:\n | FragmentType<DocumentTypeDecoration<TType, any>>\n | null\n | undefined\n): TType | null | undefined;\n// return array of non-nullable if `fragmentType` is array of non-nullable\nexport function useFragment<TType>(\n _documentNode: DocumentTypeDecoration<TType, any>,\n fragmentType: ReadonlyArray<FragmentType<DocumentTypeDecoration<TType, any>>>\n): ReadonlyArray<TType>;\n// return array of nullable if `fragmentType` is array of nullable\nexport function useFragment<TType>(\n _documentNode: DocumentTypeDecoration<TType, any>,\n fragmentType:\n | ReadonlyArray<FragmentType<DocumentTypeDecoration<TType, any>>>\n | null\n | undefined\n): ReadonlyArray<TType> | null | undefined;\nexport function useFragment<TType>(\n _documentNode: DocumentTypeDecoration<TType, any>,\n fragmentType:\n | FragmentType<DocumentTypeDecoration<TType, any>>\n | ReadonlyArray<FragmentType<DocumentTypeDecoration<TType, any>>>\n | null\n | undefined\n): TType | ReadonlyArray<TType> | null | undefined {\n return fragmentType as any;\n}\n\nexport function makeFragmentData<\n F extends DocumentTypeDecoration<any, any>,\n FT extends ResultOf<F>,\n>(data: FT, _fragment: F): FragmentType<F> {\n return data as FragmentType<F>;\n}\nexport function isFragmentReady<TQuery, TFrag>(\n queryNode: DocumentTypeDecoration<TQuery, any>,\n fragmentNode: TypedDocumentNode<TFrag>,\n data:\n | FragmentType<TypedDocumentNode<Incremental<TFrag>, any>>\n | null\n | undefined\n): data is FragmentType<typeof fragmentNode> {\n const deferredFields = (\n queryNode as {\n __meta__?: { deferredFields: Record<string, (keyof TFrag)[]> };\n }\n ).__meta__?.deferredFields;\n\n if (!deferredFields) return true;\n\n const fragDef = fragmentNode.definitions[0] as\n | FragmentDefinitionNode\n | undefined;\n const fragName = fragDef?.name?.value;\n\n const fields = (fragName && deferredFields[fragName]) || [];\n return fields.length > 0 && fields.every((field) => data && field in data);\n}\n"],"mappings":"AA6CA,OAAO,SAASA,WAAWA,CACzBC,aAAiD,EACjDC,YAIa,EACoC;EACjD,OAAOA,YAAY;AACrB;AAEA,OAAO,SAASC,gBAAgBA,CAG9BC,IAAQ,EAAEC,SAAY,EAAmB;EACzC,OAAOD,IAAI;AACb;AACA,OAAO,SAASE,eAAeA,CAC7BC,SAA8C,EAC9CC,YAAsC,EACtCJ,IAGa,EAC8B;EAC3C,
|
|
1
|
+
{"version":3,"file":"fragment-masking.js","names":["useFragment","_documentNode","fragmentType","makeFragmentData","data","_fragment","isFragmentReady","queryNode","fragmentNode","_meta__","_fragDef$name","deferredFields","__meta__","fragDef","definitions","fragName","name","value","fields","length","every","field"],"sources":["../../../../src/gql/types/fragment-masking.ts"],"sourcesContent":["import {\n ResultOf,\n DocumentTypeDecoration,\n TypedDocumentNode,\n} from '@graphql-typed-document-node/core';\nimport { FragmentDefinitionNode } from 'graphql';\nimport { Incremental } from './graphql';\n\nexport type FragmentType<\n TDocumentType extends DocumentTypeDecoration<any, any>,\n> =\n TDocumentType extends DocumentTypeDecoration<infer TType, any>\n ? [TType] extends [{ ' $fragmentName'?: infer TKey }]\n ? TKey extends string\n ? { ' $fragmentRefs'?: { [key in TKey]: TType } }\n : never\n : never\n : never;\n\n// return non-nullable if `fragmentType` is non-nullable\nexport function useFragment<TType>(\n _documentNode: DocumentTypeDecoration<TType, any>,\n fragmentType: FragmentType<DocumentTypeDecoration<TType, any>>\n): TType;\n// return nullable if `fragmentType` is nullable\nexport function useFragment<TType>(\n _documentNode: DocumentTypeDecoration<TType, any>,\n fragmentType:\n | FragmentType<DocumentTypeDecoration<TType, any>>\n | null\n | undefined\n): TType | null | undefined;\n// return array of non-nullable if `fragmentType` is array of non-nullable\nexport function useFragment<TType>(\n _documentNode: DocumentTypeDecoration<TType, any>,\n fragmentType: ReadonlyArray<FragmentType<DocumentTypeDecoration<TType, any>>>\n): ReadonlyArray<TType>;\n// return array of nullable if `fragmentType` is array of nullable\nexport function useFragment<TType>(\n _documentNode: DocumentTypeDecoration<TType, any>,\n fragmentType:\n | ReadonlyArray<FragmentType<DocumentTypeDecoration<TType, any>>>\n | null\n | undefined\n): ReadonlyArray<TType> | null | undefined;\nexport function useFragment<TType>(\n _documentNode: DocumentTypeDecoration<TType, any>,\n fragmentType:\n | FragmentType<DocumentTypeDecoration<TType, any>>\n | ReadonlyArray<FragmentType<DocumentTypeDecoration<TType, any>>>\n | null\n | undefined\n): TType | ReadonlyArray<TType> | null | undefined {\n return fragmentType as any;\n}\n\nexport function makeFragmentData<\n F extends DocumentTypeDecoration<any, any>,\n FT extends ResultOf<F>,\n>(data: FT, _fragment: F): FragmentType<F> {\n return data as FragmentType<F>;\n}\nexport function isFragmentReady<TQuery, TFrag>(\n queryNode: DocumentTypeDecoration<TQuery, any>,\n fragmentNode: TypedDocumentNode<TFrag>,\n data:\n | FragmentType<TypedDocumentNode<Incremental<TFrag>, any>>\n | null\n | undefined\n): data is FragmentType<typeof fragmentNode> {\n const deferredFields = (\n queryNode as {\n __meta__?: { deferredFields: Record<string, (keyof TFrag)[]> };\n }\n ).__meta__?.deferredFields;\n\n if (!deferredFields) return true;\n\n const fragDef = fragmentNode.definitions[0] as\n | FragmentDefinitionNode\n | undefined;\n const fragName = fragDef?.name?.value;\n\n const fields = (fragName && deferredFields[fragName]) || [];\n return fields.length > 0 && fields.every((field) => data && field in data);\n}\n"],"mappings":"AA6CA,OAAO,SAASA,WAAWA,CACzBC,aAAiD,EACjDC,YAIa,EACoC;EACjD,OAAOA,YAAY;AACrB;AAEA,OAAO,SAASC,gBAAgBA,CAG9BC,IAAQ,EAAEC,SAAY,EAAmB;EACzC,OAAOD,IAAI;AACb;AACA,OAAO,SAASE,eAAeA,CAC7BC,SAA8C,EAC9CC,YAAsC,EACtCJ,IAGa,EAC8B;EAAA,IAAAK,OAAA,EAAAC,aAAA;EAC3C,MAAMC,cAAc,IAAAF,OAAA,GAClBF,SAAS,CAGTK,QAAQ,cAAAH,OAAA,uBAJaA,OAAA,CAIXE,cAAc;EAE1B,IAAI,CAACA,cAAc,EAAE,OAAO,IAAI;EAEhC,MAAME,OAAO,GAAGL,YAAY,CAACM,WAAW,CAAC,CAAC,CAE7B;EACb,MAAMC,QAAQ,GAAGF,OAAO,aAAPA,OAAO,gBAAAH,aAAA,GAAPG,OAAO,CAAEG,IAAI,cAAAN,aAAA,uBAAbA,aAAA,CAAeO,KAAK;EAErC,MAAMC,MAAM,GAAIH,QAAQ,IAAIJ,cAAc,CAACI,QAAQ,CAAC,IAAK,EAAE;EAC3D,OAAOG,MAAM,CAACC,MAAM,GAAG,CAAC,IAAID,MAAM,CAACE,KAAK,CAAEC,KAAK,IAAKjB,IAAI,IAAIiB,KAAK,IAAIjB,IAAI,CAAC;AAC5E","ignoreList":[]}
|
|
@@ -4,6 +4,7 @@ const documents = {
|
|
|
4
4
|
'\n query validateInstruments($instruments: [String]!, $division: Division) {\n mapInstrumentNames(instruments: $instruments, division: $division) {\n name\n displayName\n }\n }\n': types.ValidateInstrumentsDocument
|
|
5
5
|
};
|
|
6
6
|
export function graphql(source) {
|
|
7
|
-
|
|
7
|
+
var _source;
|
|
8
|
+
return (_source = documents[source]) !== null && _source !== void 0 ? _source : {};
|
|
8
9
|
}
|
|
9
10
|
//# sourceMappingURL=gql.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gql.js","names":["types","documents","PriceCandlesDocument","ValidateInstrumentsDocument","graphql","source"],"sources":["../../../../src/gql/types/gql.ts"],"sourcesContent":["/* eslint-disable */\nimport * as types from './graphql';\nimport { TypedDocumentNode as DocumentNode } from '@graphql-typed-document-node/core';\n\n/**\n * Map of all GraphQL operations in the project.\n *\n * This map has several performance disadvantages:\n * 1. It is not tree-shakeable, so it will include all operations in the project.\n * 2. It is not minifiable, so the string of a GraphQL query will be multiple times inside the bundle.\n * 3. It does not support dead code elimination, so it will add unused operations.\n *\n * Therefore it is highly recommended to use the babel or swc plugin for production.\n */\nconst documents = {\n '\\n query PriceCandles(\\n $division: Division!\\n $dataSource: InstrumentDataSource!\\n $instrument: String!\\n $granularity: Granularity!\\n $timeSpan: TimeSpan!\\n ) {\\n priceCandles(\\n division: $division\\n dataSource: $dataSource\\n instrument: $instrument\\n granularity: $granularity\\n timeSpan: $timeSpan\\n ) {\\n candle {\\n point\\n high\\n low\\n open\\n close\\n }\\n timeSpan\\n }\\n }\\n':\n types.PriceCandlesDocument,\n '\\n query validateInstruments($instruments: [String]!, $division: Division) {\\n mapInstrumentNames(instruments: $instruments, division: $division) {\\n name\\n displayName\\n }\\n }\\n':\n types.ValidateInstrumentsDocument,\n};\n\n/**\n * The graphql function is used to parse GraphQL queries into a document that can be used by GraphQL clients.\n *\n *\n * @example\n * ```ts\n * const query = graphql(`query GetUser($id: ID!) { user(id: $id) { name } }`);\n * ```\n *\n * The query argument is unknown!\n * Please regenerate the types.\n */\nexport function graphql(source: string): unknown;\n\n/**\n * The graphql function is used to parse GraphQL queries into a document that can be used by GraphQL clients.\n */\nexport function graphql(\n source: '\\n query PriceCandles(\\n $division: Division!\\n $dataSource: InstrumentDataSource!\\n $instrument: String!\\n $granularity: Granularity!\\n $timeSpan: TimeSpan!\\n ) {\\n priceCandles(\\n division: $division\\n dataSource: $dataSource\\n instrument: $instrument\\n granularity: $granularity\\n timeSpan: $timeSpan\\n ) {\\n candle {\\n point\\n high\\n low\\n open\\n close\\n }\\n timeSpan\\n }\\n }\\n'\n): (typeof documents)['\\n query PriceCandles(\\n $division: Division!\\n $dataSource: InstrumentDataSource!\\n $instrument: String!\\n $granularity: Granularity!\\n $timeSpan: TimeSpan!\\n ) {\\n priceCandles(\\n division: $division\\n dataSource: $dataSource\\n instrument: $instrument\\n granularity: $granularity\\n timeSpan: $timeSpan\\n ) {\\n candle {\\n point\\n high\\n low\\n open\\n close\\n }\\n timeSpan\\n }\\n }\\n'];\n/**\n * The graphql function is used to parse GraphQL queries into a document that can be used by GraphQL clients.\n */\nexport function graphql(\n source: '\\n query validateInstruments($instruments: [String]!, $division: Division) {\\n mapInstrumentNames(instruments: $instruments, division: $division) {\\n name\\n displayName\\n }\\n }\\n'\n): (typeof documents)['\\n query validateInstruments($instruments: [String]!, $division: Division) {\\n mapInstrumentNames(instruments: $instruments, division: $division) {\\n name\\n displayName\\n }\\n }\\n'];\n\nexport function graphql(source: string) {\n return (documents as any)[source] ?? {};\n}\n\nexport type DocumentType<TDocumentNode extends DocumentNode<any, any>> =\n TDocumentNode extends DocumentNode<infer TType, any> ? TType : never;\n"],"mappings":"AACA,OAAO,KAAKA,KAAK,MAAM,WAAW;AAalC,MAAMC,SAAS,GAAG;EAChB,qeAAqe,EACneD,KAAK,CAACE,oBAAoB;EAC5B,sMAAsM,EACpMF,KAAK,CAACG;AACV,CAAC;AA6BD,OAAO,SAASC,OAAOA,CAACC,MAAc,EAAE;EACtC,
|
|
1
|
+
{"version":3,"file":"gql.js","names":["types","documents","PriceCandlesDocument","ValidateInstrumentsDocument","graphql","source","_source"],"sources":["../../../../src/gql/types/gql.ts"],"sourcesContent":["/* eslint-disable */\nimport * as types from './graphql';\nimport { TypedDocumentNode as DocumentNode } from '@graphql-typed-document-node/core';\n\n/**\n * Map of all GraphQL operations in the project.\n *\n * This map has several performance disadvantages:\n * 1. It is not tree-shakeable, so it will include all operations in the project.\n * 2. It is not minifiable, so the string of a GraphQL query will be multiple times inside the bundle.\n * 3. It does not support dead code elimination, so it will add unused operations.\n *\n * Therefore it is highly recommended to use the babel or swc plugin for production.\n */\nconst documents = {\n '\\n query PriceCandles(\\n $division: Division!\\n $dataSource: InstrumentDataSource!\\n $instrument: String!\\n $granularity: Granularity!\\n $timeSpan: TimeSpan!\\n ) {\\n priceCandles(\\n division: $division\\n dataSource: $dataSource\\n instrument: $instrument\\n granularity: $granularity\\n timeSpan: $timeSpan\\n ) {\\n candle {\\n point\\n high\\n low\\n open\\n close\\n }\\n timeSpan\\n }\\n }\\n':\n types.PriceCandlesDocument,\n '\\n query validateInstruments($instruments: [String]!, $division: Division) {\\n mapInstrumentNames(instruments: $instruments, division: $division) {\\n name\\n displayName\\n }\\n }\\n':\n types.ValidateInstrumentsDocument,\n};\n\n/**\n * The graphql function is used to parse GraphQL queries into a document that can be used by GraphQL clients.\n *\n *\n * @example\n * ```ts\n * const query = graphql(`query GetUser($id: ID!) { user(id: $id) { name } }`);\n * ```\n *\n * The query argument is unknown!\n * Please regenerate the types.\n */\nexport function graphql(source: string): unknown;\n\n/**\n * The graphql function is used to parse GraphQL queries into a document that can be used by GraphQL clients.\n */\nexport function graphql(\n source: '\\n query PriceCandles(\\n $division: Division!\\n $dataSource: InstrumentDataSource!\\n $instrument: String!\\n $granularity: Granularity!\\n $timeSpan: TimeSpan!\\n ) {\\n priceCandles(\\n division: $division\\n dataSource: $dataSource\\n instrument: $instrument\\n granularity: $granularity\\n timeSpan: $timeSpan\\n ) {\\n candle {\\n point\\n high\\n low\\n open\\n close\\n }\\n timeSpan\\n }\\n }\\n'\n): (typeof documents)['\\n query PriceCandles(\\n $division: Division!\\n $dataSource: InstrumentDataSource!\\n $instrument: String!\\n $granularity: Granularity!\\n $timeSpan: TimeSpan!\\n ) {\\n priceCandles(\\n division: $division\\n dataSource: $dataSource\\n instrument: $instrument\\n granularity: $granularity\\n timeSpan: $timeSpan\\n ) {\\n candle {\\n point\\n high\\n low\\n open\\n close\\n }\\n timeSpan\\n }\\n }\\n'];\n/**\n * The graphql function is used to parse GraphQL queries into a document that can be used by GraphQL clients.\n */\nexport function graphql(\n source: '\\n query validateInstruments($instruments: [String]!, $division: Division) {\\n mapInstrumentNames(instruments: $instruments, division: $division) {\\n name\\n displayName\\n }\\n }\\n'\n): (typeof documents)['\\n query validateInstruments($instruments: [String]!, $division: Division) {\\n mapInstrumentNames(instruments: $instruments, division: $division) {\\n name\\n displayName\\n }\\n }\\n'];\n\nexport function graphql(source: string) {\n return (documents as any)[source] ?? {};\n}\n\nexport type DocumentType<TDocumentNode extends DocumentNode<any, any>> =\n TDocumentNode extends DocumentNode<infer TType, any> ? TType : never;\n"],"mappings":"AACA,OAAO,KAAKA,KAAK,MAAM,WAAW;AAalC,MAAMC,SAAS,GAAG;EAChB,qeAAqe,EACneD,KAAK,CAACE,oBAAoB;EAC5B,sMAAsM,EACpMF,KAAK,CAACG;AACV,CAAC;AA6BD,OAAO,SAASC,OAAOA,CAACC,MAAc,EAAE;EAAA,IAAAC,OAAA;EACtC,QAAAA,OAAA,GAAQL,SAAS,CAASI,MAAM,CAAC,cAAAC,OAAA,cAAAA,OAAA,GAAI,CAAC,CAAC;AACzC","ignoreList":[]}
|
|
@@ -1,10 +1,5 @@
|
|
|
1
|
+
var _templateObject;
|
|
2
|
+
function _taggedTemplateLiteral(e, t) { return t || (t = e.slice(0)), Object.freeze(Object.defineProperties(e, { raw: { value: Object.freeze(t) } })); }
|
|
1
3
|
import { gql } from '@apollo/client';
|
|
2
|
-
export const validateInstruments = gql
|
|
3
|
-
query validateInstruments($instruments: [String]!, $division: Division) {
|
|
4
|
-
mapInstrumentNames(instruments: $instruments, division: $division) {
|
|
5
|
-
name
|
|
6
|
-
displayName
|
|
7
|
-
}
|
|
8
|
-
}
|
|
9
|
-
`;
|
|
4
|
+
export const validateInstruments = gql(_templateObject || (_templateObject = _taggedTemplateLiteral(["\n query validateInstruments($instruments: [String]!, $division: Division) {\n mapInstrumentNames(instruments: $instruments, division: $division) {\n name\n displayName\n }\n }\n"])));
|
|
10
5
|
//# sourceMappingURL=validateInstruments.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validateInstruments.js","names":["gql","validateInstruments"],"sources":["../../../src/gql/validateInstruments.ts"],"sourcesContent":["import { gql } from '@apollo/client';\n\nexport const validateInstruments = gql`\n query validateInstruments($instruments: [String]!, $division: Division) {\n mapInstrumentNames(instruments: $instruments, division: $division) {\n name\n displayName\n }\n }\n`;\n"],"mappings":"AAAA,SAASA,GAAG,QAAQ,gBAAgB;AAEpC,OAAO,MAAMC,mBAAmB,GAAGD,GAAG
|
|
1
|
+
{"version":3,"file":"validateInstruments.js","names":["gql","validateInstruments","_templateObject","_taggedTemplateLiteral"],"sources":["../../../src/gql/validateInstruments.ts"],"sourcesContent":["import { gql } from '@apollo/client';\n\nexport const validateInstruments = gql`\n query validateInstruments($instruments: [String]!, $division: Division) {\n mapInstrumentNames(instruments: $instruments, division: $division) {\n name\n displayName\n }\n }\n`;\n"],"mappings":";;AAAA,SAASA,GAAG,QAAQ,gBAAgB;AAEpC,OAAO,MAAMC,mBAAmB,GAAGD,GAAG,CAAAE,eAAA,KAAAA,eAAA,GAAAC,sBAAA,4MAOrC","ignoreList":[]}
|
package/package.json
CHANGED
|
@@ -1,19 +1,19 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@oanda/labs-instruments-price-chart-widget",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.19",
|
|
4
4
|
"description": "Labs Instruments Price Chart Widget",
|
|
5
5
|
"main": "dist/main/index.js",
|
|
6
6
|
"module": "dist/module/index.js",
|
|
7
7
|
"types": "dist/types/index.d.ts",
|
|
8
8
|
"scripts": {
|
|
9
9
|
"codegen": "graphql-codegen --config codegen.ts",
|
|
10
|
-
"translations:pull": "lokalise pull"
|
|
10
|
+
"translations:pull": "op run --env-file=\"../../.env\" -- lokalise pull"
|
|
11
11
|
},
|
|
12
12
|
"keywords": [],
|
|
13
13
|
"author": "OANDA",
|
|
14
14
|
"license": "UNLICENSED",
|
|
15
15
|
"dependencies": {
|
|
16
|
-
"@oanda/labs-widget-common": "^1.0.
|
|
16
|
+
"@oanda/labs-widget-common": "^1.0.223",
|
|
17
17
|
"@oanda/mono-i18n": "10.0.1",
|
|
18
18
|
"echarts": "6.0.0",
|
|
19
19
|
"echarts-for-react": "3.0.4",
|
|
@@ -23,5 +23,5 @@
|
|
|
23
23
|
"@graphql-codegen/cli": "5.0.0",
|
|
24
24
|
"@graphql-codegen/client-preset": "4.1.0"
|
|
25
25
|
},
|
|
26
|
-
"gitHead": "
|
|
26
|
+
"gitHead": "7c2d64b34f681788d8c9fb9199e6b15999853a2d"
|
|
27
27
|
}
|