@oanda/labs-instruments-price-chart-widget 1.0.39 → 1.0.41

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (38) hide show
  1. package/CHANGELOG.md +332 -0
  2. package/dist/main/InstrumentsPriceChartWidget/Main.js +1 -1
  3. package/dist/main/InstrumentsPriceChartWidget/Main.js.map +1 -1
  4. package/dist/main/InstrumentsPriceChartWidget/components/TimeZoneLabel.js +2 -2
  5. package/dist/main/InstrumentsPriceChartWidget/components/TimeZoneLabel.js.map +1 -1
  6. package/dist/main/InstrumentsPriceChartWidget/components/formatters.js +10 -2
  7. package/dist/main/InstrumentsPriceChartWidget/components/formatters.js.map +1 -1
  8. package/dist/main/InstrumentsPriceChartWidget/components/getOption.js +8 -12
  9. package/dist/main/InstrumentsPriceChartWidget/components/getOption.js.map +1 -1
  10. package/dist/main/InstrumentsPriceChartWidget/utils.js +1 -1
  11. package/dist/main/InstrumentsPriceChartWidget/utils.js.map +1 -1
  12. package/dist/main/gql/priceCandles.js +26 -3
  13. package/dist/main/gql/priceCandles.js.map +1 -1
  14. package/dist/main/gql/types/fragment-masking.js +2 -3
  15. package/dist/main/gql/types/fragment-masking.js.map +1 -1
  16. package/dist/main/gql/types/gql.js +1 -2
  17. package/dist/main/gql/types/gql.js.map +1 -1
  18. package/dist/main/gql/validateInstruments.js +8 -3
  19. package/dist/main/gql/validateInstruments.js.map +1 -1
  20. package/dist/module/InstrumentsPriceChartWidget/Main.js +1 -1
  21. package/dist/module/InstrumentsPriceChartWidget/Main.js.map +1 -1
  22. package/dist/module/InstrumentsPriceChartWidget/components/TimeZoneLabel.js +2 -2
  23. package/dist/module/InstrumentsPriceChartWidget/components/TimeZoneLabel.js.map +1 -1
  24. package/dist/module/InstrumentsPriceChartWidget/components/formatters.js +10 -2
  25. package/dist/module/InstrumentsPriceChartWidget/components/formatters.js.map +1 -1
  26. package/dist/module/InstrumentsPriceChartWidget/components/getOption.js +8 -12
  27. package/dist/module/InstrumentsPriceChartWidget/components/getOption.js.map +1 -1
  28. package/dist/module/InstrumentsPriceChartWidget/utils.js +1 -1
  29. package/dist/module/InstrumentsPriceChartWidget/utils.js.map +1 -1
  30. package/dist/module/gql/priceCandles.js +26 -3
  31. package/dist/module/gql/priceCandles.js.map +1 -1
  32. package/dist/module/gql/types/fragment-masking.js +2 -3
  33. package/dist/module/gql/types/fragment-masking.js.map +1 -1
  34. package/dist/module/gql/types/gql.js +1 -2
  35. package/dist/module/gql/types/gql.js.map +1 -1
  36. package/dist/module/gql/validateInstruments.js +8 -3
  37. package/dist/module/gql/validateInstruments.js.map +1 -1
  38. package/package.json +3 -3
package/CHANGELOG.md CHANGED
@@ -3,6 +3,338 @@
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.41 (2026-01-07)
7
+
8
+
9
+
10
+ ## 1.0.244 (2026-01-02)
11
+
12
+
13
+
14
+ ## 1.0.243 (2025-12-30)
15
+
16
+
17
+
18
+ ## 1.0.242 (2025-12-16)
19
+
20
+
21
+
22
+ ## 1.0.241 (2025-12-16)
23
+
24
+
25
+
26
+ ## 1.0.240 (2025-12-15)
27
+
28
+
29
+
30
+ ## 1.0.239 (2025-12-12)
31
+
32
+
33
+
34
+ ## 1.0.238 (2025-12-11)
35
+
36
+
37
+
38
+ ## 1.0.237 (2025-12-09)
39
+
40
+
41
+
42
+ ## 1.0.236 (2025-12-05)
43
+
44
+
45
+
46
+ ## 1.0.235 (2025-12-04)
47
+
48
+
49
+
50
+ ## 1.0.234 (2025-11-27)
51
+
52
+
53
+
54
+ ## 1.0.233 (2025-11-27)
55
+
56
+
57
+
58
+ ## 1.0.232 (2025-11-27)
59
+
60
+
61
+
62
+ ## 1.0.231 (2025-11-07)
63
+
64
+
65
+
66
+ ## 1.0.230 (2025-11-05)
67
+
68
+
69
+
70
+ ## 1.0.229 (2025-11-05)
71
+
72
+
73
+
74
+ ## 1.0.228 (2025-11-05)
75
+
76
+
77
+
78
+ ## 1.0.227 (2025-10-31)
79
+
80
+
81
+
82
+ ## 1.0.226 (2025-10-29)
83
+
84
+
85
+
86
+ ## 1.0.225 (2025-10-09)
87
+
88
+
89
+
90
+ ## 1.0.224 (2025-09-29)
91
+
92
+
93
+
94
+ ## 1.0.223 (2025-09-29)
95
+
96
+
97
+
98
+ ## 1.0.222 (2025-09-17)
99
+
100
+
101
+
102
+ ## 1.0.221 (2025-09-11)
103
+
104
+
105
+
106
+ ## 1.0.220 (2025-09-09)
107
+
108
+
109
+
110
+ ## 1.0.219 (2025-09-02)
111
+
112
+
113
+
114
+ ## 1.0.218 (2025-09-01)
115
+
116
+
117
+
118
+ ## 1.0.217 (2025-08-25)
119
+
120
+
121
+
122
+ ## 1.0.216 (2025-08-18)
123
+
124
+
125
+
126
+ ## 1.0.215 (2025-08-18)
127
+
128
+
129
+
130
+ ## 1.0.214 (2025-08-14)
131
+
132
+
133
+
134
+ ## 1.0.213 (2025-08-12)
135
+
136
+
137
+
138
+ ## 1.0.212 (2025-08-05)
139
+
140
+
141
+
142
+ ## 1.0.211 (2025-08-05)
143
+
144
+
145
+
146
+ ## 1.0.210 (2025-07-31)
147
+
148
+
149
+
150
+ ## 1.0.209 (2025-07-31)
151
+
152
+
153
+
154
+ ## 1.0.208 (2025-07-24)
155
+
156
+
157
+
158
+ ## 1.0.207 (2025-07-18)
159
+
160
+
161
+
162
+ ## 1.0.206 (2025-07-18)
163
+
164
+
165
+
166
+ ## 1.0.205 (2025-07-17)
167
+
168
+ **Note:** Version bump only for package @oanda/labs-instruments-price-chart-widget
169
+
170
+
171
+
172
+
173
+
174
+ ## 1.0.40 (2026-01-02)
175
+
176
+
177
+
178
+ ## 1.0.243 (2025-12-30)
179
+
180
+
181
+
182
+ ## 1.0.242 (2025-12-16)
183
+
184
+
185
+
186
+ ## 1.0.241 (2025-12-16)
187
+
188
+
189
+
190
+ ## 1.0.240 (2025-12-15)
191
+
192
+
193
+
194
+ ## 1.0.239 (2025-12-12)
195
+
196
+
197
+
198
+ ## 1.0.238 (2025-12-11)
199
+
200
+
201
+
202
+ ## 1.0.237 (2025-12-09)
203
+
204
+
205
+
206
+ ## 1.0.236 (2025-12-05)
207
+
208
+
209
+
210
+ ## 1.0.235 (2025-12-04)
211
+
212
+
213
+
214
+ ## 1.0.234 (2025-11-27)
215
+
216
+
217
+
218
+ ## 1.0.233 (2025-11-27)
219
+
220
+
221
+
222
+ ## 1.0.232 (2025-11-27)
223
+
224
+
225
+
226
+ ## 1.0.231 (2025-11-07)
227
+
228
+
229
+
230
+ ## 1.0.230 (2025-11-05)
231
+
232
+
233
+
234
+ ## 1.0.229 (2025-11-05)
235
+
236
+
237
+
238
+ ## 1.0.228 (2025-11-05)
239
+
240
+
241
+
242
+ ## 1.0.227 (2025-10-31)
243
+
244
+
245
+
246
+ ## 1.0.226 (2025-10-29)
247
+
248
+
249
+
250
+ ## 1.0.225 (2025-10-09)
251
+
252
+
253
+
254
+ ## 1.0.224 (2025-09-29)
255
+
256
+
257
+
258
+ ## 1.0.223 (2025-09-29)
259
+
260
+
261
+
262
+ ## 1.0.222 (2025-09-17)
263
+
264
+
265
+
266
+ ## 1.0.221 (2025-09-11)
267
+
268
+
269
+
270
+ ## 1.0.220 (2025-09-09)
271
+
272
+
273
+
274
+ ## 1.0.219 (2025-09-02)
275
+
276
+
277
+
278
+ ## 1.0.218 (2025-09-01)
279
+
280
+
281
+
282
+ ## 1.0.217 (2025-08-25)
283
+
284
+
285
+
286
+ ## 1.0.216 (2025-08-18)
287
+
288
+
289
+
290
+ ## 1.0.215 (2025-08-18)
291
+
292
+
293
+
294
+ ## 1.0.214 (2025-08-14)
295
+
296
+
297
+
298
+ ## 1.0.213 (2025-08-12)
299
+
300
+
301
+
302
+ ## 1.0.212 (2025-08-05)
303
+
304
+
305
+
306
+ ## 1.0.211 (2025-08-05)
307
+
308
+
309
+
310
+ ## 1.0.210 (2025-07-31)
311
+
312
+
313
+
314
+ ## 1.0.209 (2025-07-31)
315
+
316
+
317
+
318
+ ## 1.0.208 (2025-07-24)
319
+
320
+
321
+
322
+ ## 1.0.207 (2025-07-18)
323
+
324
+
325
+
326
+ ## 1.0.206 (2025-07-18)
327
+
328
+
329
+
330
+ ## 1.0.205 (2025-07-17)
331
+
332
+ **Note:** Version bump only for package @oanda/labs-instruments-price-chart-widget
333
+
334
+
335
+
336
+
337
+
6
338
  ## 1.0.39 (2025-12-30)
7
339
 
8
340
 
@@ -36,7 +36,7 @@ const Main = _ref => {
36
36
  fetchPolicy: 'cache-and-network'
37
37
  });
38
38
  const candles = (0, _utils.getCandles)(data);
39
- const showError = (candles === null || candles === void 0 ? void 0 : candles.length) === 0 || !candles || !!error;
39
+ const showError = candles?.length === 0 || !candles || !!error;
40
40
  return _react.default.createElement("div", {
41
41
  "data-testid": "instruments-price-chart-wrapper"
42
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","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":[]}
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":[]}
@@ -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
- }, "".concat(lang('timezone_display', {
24
+ }, `${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","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":[]}
1
+ {"version":3,"file":"TimeZoneLabel.js","names":["_monoI18n","require","_react","_interopRequireDefault","e","__esModule","default","getBrowserOffsetLabel","parts","Intl","DateTimeFormat","undefined","timeZoneName","formatToParts","Date","tzPart","find","p","type","value","TimeZoneLabel","lang","useLocale","createElement","className","timezone","exports"],"sources":["../../../../src/InstrumentsPriceChartWidget/components/TimeZoneLabel.tsx"],"sourcesContent":["import { useLocale } from '@oanda/mono-i18n';\nimport React from 'react';\n\nconst getBrowserOffsetLabel = (): string => {\n const parts = new Intl.DateTimeFormat(undefined, {\n timeZoneName: 'longOffset',\n }).formatToParts(new Date());\n\n const tzPart = parts.find((p) => p.type === 'timeZoneName');\n return tzPart ? tzPart.value : '';\n};\n\nexport const TimeZoneLabel = () => {\n const { lang } = useLocale();\n\n return (\n <span\n className=\"lw-ml-1 lw-font-sans lw-text-xs lw-font-bold\"\n data-testid=\"timezone-label\"\n >{`${lang('timezone_display', {\n timezone: getBrowserOffsetLabel(),\n })}`}</span>\n );\n};\n"],"mappings":";;;;;;AAAA,IAAAA,SAAA,GAAAC,OAAA;AACA,IAAAC,MAAA,GAAAC,sBAAA,CAAAF,OAAA;AAA0B,SAAAE,uBAAAC,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAE1B,MAAMG,qBAAqB,GAAGA,CAAA,KAAc;EAC1C,MAAMC,KAAK,GAAG,IAAIC,IAAI,CAACC,cAAc,CAACC,SAAS,EAAE;IAC/CC,YAAY,EAAE;EAChB,CAAC,CAAC,CAACC,aAAa,CAAC,IAAIC,IAAI,CAAC,CAAC,CAAC;EAE5B,MAAMC,MAAM,GAAGP,KAAK,CAACQ,IAAI,CAAEC,CAAC,IAAKA,CAAC,CAACC,IAAI,KAAK,cAAc,CAAC;EAC3D,OAAOH,MAAM,GAAGA,MAAM,CAACI,KAAK,GAAG,EAAE;AACnC,CAAC;AAEM,MAAMC,aAAa,GAAGA,CAAA,KAAM;EACjC,MAAM;IAAEC;EAAK,CAAC,GAAG,IAAAC,mBAAS,EAAC,CAAC;EAE5B,OACEpB,MAAA,CAAAI,OAAA,CAAAiB,aAAA;IACEC,SAAS,EAAC,8CAA8C;IACxD,eAAY;EAAgB,GAC5B,GAAGH,IAAI,CAAC,kBAAkB,EAAE;IAC5BI,QAAQ,EAAElB,qBAAqB,CAAC;EAClC,CAAC,CAAC,EAAS,CAAC;AAEhB,CAAC;AAACmB,OAAA,CAAAN,aAAA,GAAAA,aAAA","ignoreList":[]}
@@ -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 "".concat(String(hour).padStart(2, '0'), ":00");
29
+ return `${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,7 +65,15 @@ const tooltipFormatter = _ref => {
65
65
  point
66
66
  } = data;
67
67
  const date = chartDateTimeFormat(point);
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 ");
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
+ `;
69
77
  };
70
78
  exports.tooltipFormatter = tooltipFormatter;
71
79
  //# 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","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
+ {"version":3,"file":"formatters.js","names":["_graphql","require","showSplitLine","index","total","interval","Math","max","floor","exports","showChartIntervalLabel","timeSpan","values","date","Date","point","labelInterval","length","TimeSpan","Month_6","Year_1","Year_5","prev","monthChanged","getMonth","getFullYear","labelFormatter","_","Day_1","hour","getHours","String","padStart","Week_1","Month_1","toLocaleDateString","undefined","day","month","chartDateTimeFormat","iso","toLocaleString","year","minute","hour12","tooltipFormatter","_ref","lang","data","open","high","close","low","toFixed"],"sources":["../../../../src/InstrumentsPriceChartWidget/components/formatters.ts"],"sourcesContent":["import { TimeSpan } from '../../gql/types/graphql';\nimport type { TooltipFormatterParams } from './types';\n\nexport const showSplitLine = (index: number, total: number): boolean => {\n const interval = Math.max(1, Math.floor(total / 6));\n return index % interval === 0;\n};\n\nconst showChartIntervalLabel = (\n timeSpan: TimeSpan,\n values: { point: string }[],\n index: number\n): boolean => {\n const date = new Date(values[index].point);\n const labelInterval = Math.max(1, Math.floor(values.length / 6));\n\n if (\n timeSpan === TimeSpan.Month_6 ||\n timeSpan === TimeSpan.Year_1 ||\n timeSpan === TimeSpan.Year_5\n ) {\n const prev = index > 0 ? new Date(values[index - 1].point) : null;\n const monthChanged =\n !prev ||\n date.getMonth() !== prev.getMonth() ||\n date.getFullYear() !== prev.getFullYear();\n\n return monthChanged;\n }\n\n return index % labelInterval === 0;\n};\n\nexport const labelFormatter =\n (timeSpan: TimeSpan, values: { point: string }[]) =>\n (_: string, index: number): string => {\n const date = new Date(values[index].point);\n\n if (!showChartIntervalLabel(timeSpan, values, index)) return '';\n\n switch (timeSpan) {\n case TimeSpan.Day_1:\n const hour = date.getHours();\n return `${String(hour).padStart(2, '0')}:00`;\n\n case TimeSpan.Week_1:\n case TimeSpan.Month_1:\n return date.toLocaleDateString(undefined, {\n day: '2-digit',\n month: 'short',\n });\n\n case TimeSpan.Month_6:\n case TimeSpan.Year_1:\n case TimeSpan.Year_5:\n return date.toLocaleDateString(undefined, {\n month: 'short',\n });\n\n default:\n return '';\n }\n };\n\nconst chartDateTimeFormat = (iso: string) =>\n new Date(iso).toLocaleString(undefined, {\n year: 'numeric',\n month: '2-digit',\n day: '2-digit',\n hour: '2-digit',\n minute: '2-digit',\n hour12: false,\n });\n\nexport const tooltipFormatter = ({ lang, data }: TooltipFormatterParams) => {\n const { open, high, close, low, point } = data;\n const date = chartDateTimeFormat(point);\n\n return `\n <div style=\"display:flex; flex-direction:column;\">\n <span style=\"margin-bottom:5px;\">${date}</span>\n ${lang('open')}: ${open.toFixed(4)}<br />\n ${lang('high')}: ${high.toFixed(4)}<br />\n ${lang('low')}: ${low.toFixed(4)}<br />\n ${lang('close')}: ${close.toFixed(4)}\n </div>\n `;\n};\n"],"mappings":"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","ignoreList":[]}
@@ -7,11 +7,6 @@ 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); }
15
10
  const getOption = _ref => {
16
11
  let {
17
12
  values,
@@ -91,9 +86,9 @@ const getOption = _ref => {
91
86
  series: [{
92
87
  name: 'price-close',
93
88
  type: 'line',
94
- data: values.map(d => _objectSpread(_objectSpread({
95
- value: d.high
96
- }, d), {}, {
89
+ data: values.map(d => ({
90
+ value: d.high,
91
+ ...d,
97
92
  time: d.point
98
93
  })),
99
94
  smooth: true,
@@ -123,10 +118,11 @@ const getOption = _ref => {
123
118
  name: 'main-grid',
124
119
  top: 0,
125
120
  left: 0,
126
- right: "".concat(_constants.Y_LABEL_SIZE_DESKTOP, "px"),
127
- bottom: "".concat(_constants.X_LABEL_SIZE, "px")
121
+ right: `${_constants.Y_LABEL_SIZE_DESKTOP}px`,
122
+ bottom: `${_constants.X_LABEL_SIZE}px`
128
123
  }],
129
- graphic: [...gridLines, _objectSpread(_objectSpread({}, (0, _labsWidgetCommon.getLineCommons)(isDark)), {}, {
124
+ graphic: [...gridLines, {
125
+ ...(0, _labsWidgetCommon.getLineCommons)(isDark),
130
126
  top: 0,
131
127
  right: 0,
132
128
  shape: {
@@ -135,7 +131,7 @@ const getOption = _ref => {
135
131
  x2: 0,
136
132
  y2: 0
137
133
  }
138
- })]
134
+ }]
139
135
  };
140
136
  };
141
137
  exports.getOption = getOption;
@@ -1 +1 @@
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":[]}
1
+ {"version":3,"file":"getOption.js","names":["_labsWidgetCommon","require","_constants","_formatters","getOption","_ref","values","isDark","lang","timeSpan","priceValues","map","d","high","gridLines","getGridLines","chartWidth","CHART_WIDTH","chartHeight","CHART_HEIGHT","xLabelsSize","X_LABEL_SIZE","yLabelSize","Y_LABEL_SIZE_DESKTOP","bottomLeftBox","animation","tooltip","trigger","axisPointer","axis","formatter","params","p","Array","isArray","data","tooltipFormatter","xAxis","type","boundaryGap","point","axisTick","show","axisLabel","padding","interval","labelFormatter","splitLine","index","showSplitLine","length","yAxis","position","min","value","Math","floor","CHART_INTERVAL","max","ceil","axisLine","margin","dataMin","dataMax","toFixed","series","name","time","smooth","symbol","lineStyle","color","colorPalette","navyBlue","width","areaStyle","x","y","x2","y2","colorStops","offset","brightBlue30","brightBlue","grid","top","left","right","bottom","graphic","getLineCommons","shape","x1","y1","exports"],"sources":["../../../../src/InstrumentsPriceChartWidget/components/getOption.ts"],"sourcesContent":["import {\n colorPalette,\n getGridLines,\n getLineCommons,\n} from '@oanda/labs-widget-common';\n\nimport {\n CHART_HEIGHT,\n CHART_INTERVAL,\n CHART_WIDTH,\n X_LABEL_SIZE,\n Y_LABEL_SIZE_DESKTOP,\n} from './constants';\nimport { labelFormatter, showSplitLine, tooltipFormatter } from './formatters';\nimport type { ChartValue, GetOptionType } from './types';\n\nexport const getOption: GetOptionType = ({\n values,\n isDark,\n lang,\n timeSpan,\n}) => {\n const priceValues = values.map((d) => d.high);\n\n const gridLines = getGridLines({\n isDark,\n chartWidth: CHART_WIDTH,\n chartHeight: CHART_HEIGHT,\n xLabelsSize: X_LABEL_SIZE,\n yLabelSize: Y_LABEL_SIZE_DESKTOP,\n bottomLeftBox: false,\n });\n\n return {\n animation: false,\n tooltip: {\n trigger: 'axis',\n axisPointer: {\n axis: 'x',\n },\n formatter: (params) => {\n const p = Array.isArray(params) ? params[0] : params;\n const data = p.data as {\n point: string;\n open: number;\n high: number;\n low: number;\n close: number;\n };\n\n return tooltipFormatter({ lang, data });\n },\n },\n xAxis: {\n type: 'category',\n boundaryGap: false,\n data: values.map((d) => d.point),\n axisTick: { show: false },\n axisLabel: {\n padding: [0, 0, 0, 30],\n interval: 'auto',\n formatter: labelFormatter(timeSpan, values),\n },\n splitLine: {\n show: true,\n interval: (index: number) => showSplitLine(index, values.length),\n },\n },\n yAxis: {\n type: 'value',\n position: 'right',\n min: (value: ChartValue) =>\n Math.floor(value.min * 100) / 100 - CHART_INTERVAL,\n max: (value: ChartValue) =>\n Math.ceil(value.max * 100) / 100 + CHART_INTERVAL,\n interval: CHART_INTERVAL,\n axisLine: { show: false },\n axisTick: { show: false },\n axisLabel: {\n margin: 10,\n formatter: (value: number) => {\n const dataMin = Math.floor(Math.min(...priceValues) * 100) / 100;\n const dataMax = Math.ceil(Math.max(...priceValues) * 100) / 100;\n if (value < dataMin || value > dataMax) {\n return '';\n }\n return value.toFixed(2);\n },\n },\n splitLine: {\n show: true,\n },\n },\n series: [\n {\n name: 'price-close',\n type: 'line',\n data: values.map((d) => ({\n value: d.high,\n ...d,\n time: d.point,\n })),\n smooth: true,\n symbol: 'none',\n lineStyle: {\n color: colorPalette.navyBlue,\n width: 2,\n },\n areaStyle: {\n color: {\n type: 'linear',\n x: 0,\n y: 0,\n x2: 0,\n y2: 1,\n colorStops: [\n { offset: 0, color: colorPalette.brightBlue30 },\n { offset: 1, color: colorPalette.brightBlue },\n ],\n },\n },\n },\n ],\n grid: [\n {\n name: 'main-grid',\n top: 0,\n left: 0,\n right: `${Y_LABEL_SIZE_DESKTOP}px`,\n bottom: `${X_LABEL_SIZE}px`,\n },\n ],\n graphic: [\n ...gridLines,\n {\n ...getLineCommons(isDark),\n top: 0,\n right: 0,\n shape: {\n x1: 0,\n y1: 0,\n x2: 0,\n y2: 0,\n },\n },\n ],\n };\n};\n"],"mappings":"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","ignoreList":[]}
@@ -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 === null || data === void 0 ? void 0 : data.priceCandles.candle.filter(c => c !== null);
10
+ const getCandles = data => 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,aAAJA,IAAI,uBAAJA,IAAI,CAAEC,YAAY,CAACC,MAAM,CAACC,MAAM,CAAEC,CAAC,IAAkBA,CAAC,KAAK,IAAI,CAAC;AAACN,OAAA,CAAAC,UAAA,GAAAA,UAAA","ignoreList":[]}
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,EAAEC,YAAY,CAACC,MAAM,CAACC,MAAM,CAAEC,CAAC,IAAkBA,CAAC,KAAK,IAAI,CAAC;AAACN,OAAA,CAAAC,UAAA,GAAAA,UAAA","ignoreList":[]}
@@ -5,7 +5,30 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.priceCandles = void 0;
7
7
  var _client = require("@apollo/client");
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"])));
8
+ const priceCandles = exports.priceCandles = (0, _client.gql)`
9
+ query PriceCandles(
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
+ `;
11
34
  //# sourceMappingURL=priceCandles.js.map
@@ -1 +1 @@
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":[]}
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;AAEA,MAAMC,YAAY,GAAAC,OAAA,CAAAD,YAAA,GAAG,IAAAE,WAAG;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC","ignoreList":[]}
@@ -13,11 +13,10 @@ function makeFragmentData(data, _fragment) {
13
13
  return data;
14
14
  }
15
15
  function isFragmentReady(queryNode, fragmentNode, data) {
16
- var _meta__, _fragDef$name;
17
- const deferredFields = (_meta__ = queryNode.__meta__) === null || _meta__ === void 0 ? void 0 : _meta__.deferredFields;
16
+ const deferredFields = queryNode.__meta__?.deferredFields;
18
17
  if (!deferredFields) return true;
19
18
  const fragDef = fragmentNode.definitions[0];
20
- const fragName = fragDef === null || fragDef === void 0 || (_fragDef$name = fragDef.name) === null || _fragDef$name === void 0 ? void 0 : _fragDef$name.value;
19
+ const fragName = fragDef?.name?.value;
21
20
  const fields = fragName && deferredFields[fragName] || [];
22
21
  return fields.length > 0 && fields.every(field => data && field in data);
23
22
  }
@@ -1 +1 @@
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":[]}
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,MAAMK,cAAc,GAClBF,SAAS,CAGTG,QAAQ,EAAED,cAAc;EAE1B,IAAI,CAACA,cAAc,EAAE,OAAO,IAAI;EAEhC,MAAME,OAAO,GAAGH,YAAY,CAACI,WAAW,CAAC,CAAC,CAE7B;EACb,MAAMC,QAAQ,GAAGF,OAAO,EAAEG,IAAI,EAAEC,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,IAAKf,IAAI,IAAIe,KAAK,IAAIf,IAAI,CAAC;AAC5E","ignoreList":[]}
@@ -11,7 +11,6 @@ const documents = {
11
11
  '\n query validateInstruments($instruments: [String]!, $division: Division) {\n mapInstrumentNames(instruments: $instruments, division: $division) {\n name\n displayName\n }\n }\n': types.ValidateInstrumentsDocument
12
12
  };
13
13
  function graphql(source) {
14
- var _source;
15
- return (_source = documents[source]) !== null && _source !== void 0 ? _source : {};
14
+ return documents[source] ?? {};
16
15
  }
17
16
  //# sourceMappingURL=gql.js.map
@@ -1 +1 @@
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":[]}
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"],"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;EACtC,OAAQJ,SAAS,CAASI,MAAM,CAAC,IAAI,CAAC,CAAC;AACzC","ignoreList":[]}
@@ -5,7 +5,12 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.validateInstruments = void 0;
7
7
  var _client = require("@apollo/client");
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"])));
8
+ const validateInstruments = exports.validateInstruments = (0, _client.gql)`
9
+ query validateInstruments($instruments: [String]!, $division: Division) {
10
+ mapInstrumentNames(instruments: $instruments, division: $division) {
11
+ name
12
+ displayName
13
+ }
14
+ }
15
+ `;
11
16
  //# sourceMappingURL=validateInstruments.js.map
@@ -1 +1 @@
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":[]}
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;AAEO,MAAMC,mBAAmB,GAAAC,OAAA,CAAAD,mBAAA,GAAG,IAAAE,WAAG;AACtC;AACA;AACA;AACA;AACA;AACA;AACA,CAAC","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 === null || candles === void 0 ? void 0 : candles.length) === 0 || !candles || !!error;
32
+ const showError = 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,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":[]}
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,GAAGD,OAAO,EAAEE,MAAM,KAAK,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
- }, "".concat(lang('timezone_display', {
17
+ }, `${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","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":[]}
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,GAC5B,GAAGF,IAAI,CAAC,kBAAkB,EAAE;IAC5BG,QAAQ,EAAEjB,qBAAqB,CAAC;EAClC,CAAC,CAAC,EAAS,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 "".concat(String(hour).padStart(2, '0'), ":00");
22
+ return `${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,6 +57,14 @@ export const tooltipFormatter = _ref => {
57
57
  point
58
58
  } = data;
59
59
  const date = chartDateTimeFormat(point);
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 ");
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
+ `;
61
69
  };
62
70
  //# 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","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
+ {"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":"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","ignoreList":[]}
@@ -1,8 +1,3 @@
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); }
6
1
  import { colorPalette, getGridLines, getLineCommons } from '@oanda/labs-widget-common';
7
2
  import { CHART_HEIGHT, CHART_INTERVAL, CHART_WIDTH, X_LABEL_SIZE, Y_LABEL_SIZE_DESKTOP } from './constants';
8
3
  import { labelFormatter, showSplitLine, tooltipFormatter } from './formatters';
@@ -85,9 +80,9 @@ export const getOption = _ref => {
85
80
  series: [{
86
81
  name: 'price-close',
87
82
  type: 'line',
88
- data: values.map(d => _objectSpread(_objectSpread({
89
- value: d.high
90
- }, d), {}, {
83
+ data: values.map(d => ({
84
+ value: d.high,
85
+ ...d,
91
86
  time: d.point
92
87
  })),
93
88
  smooth: true,
@@ -117,10 +112,11 @@ export const getOption = _ref => {
117
112
  name: 'main-grid',
118
113
  top: 0,
119
114
  left: 0,
120
- right: "".concat(Y_LABEL_SIZE_DESKTOP, "px"),
121
- bottom: "".concat(X_LABEL_SIZE, "px")
115
+ right: `${Y_LABEL_SIZE_DESKTOP}px`,
116
+ bottom: `${X_LABEL_SIZE}px`
122
117
  }],
123
- graphic: [...gridLines, _objectSpread(_objectSpread({}, getLineCommons(isDark)), {}, {
118
+ graphic: [...gridLines, {
119
+ ...getLineCommons(isDark),
124
120
  top: 0,
125
121
  right: 0,
126
122
  shape: {
@@ -129,7 +125,7 @@ export const getOption = _ref => {
129
125
  x2: 0,
130
126
  y2: 0
131
127
  }
132
- })]
128
+ }]
133
129
  };
134
130
  };
135
131
  //# 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","_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
+ {"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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","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 === null || data === void 0 ? void 0 : data.priceCandles.candle.filter(c => c !== null);
3
+ export const getCandles = data => 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,aAAJA,IAAI,uBAAJA,IAAI,CAAEC,YAAY,CAACC,MAAM,CAACC,MAAM,CAAEC,CAAC,IAAkBA,CAAC,KAAK,IAAI,CAAC","ignoreList":[]}
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,EAAEC,YAAY,CAACC,MAAM,CAACC,MAAM,CAAEC,CAAC,IAAkBA,CAAC,KAAK,IAAI,CAAC","ignoreList":[]}
@@ -1,6 +1,29 @@
1
- var _templateObject;
2
- function _taggedTemplateLiteral(e, t) { return t || (t = e.slice(0)), Object.freeze(Object.defineProperties(e, { raw: { value: Object.freeze(t) } })); }
3
1
  import { gql } from '@apollo/client';
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"])));
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
+ `;
5
28
  export { priceCandles };
6
29
  //# sourceMappingURL=priceCandles.js.map
@@ -1 +1 @@
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":[]}
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;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AAED,SAASC,YAAY","ignoreList":[]}
@@ -5,11 +5,10 @@ export function makeFragmentData(data, _fragment) {
5
5
  return data;
6
6
  }
7
7
  export function isFragmentReady(queryNode, fragmentNode, data) {
8
- var _meta__, _fragDef$name;
9
- const deferredFields = (_meta__ = queryNode.__meta__) === null || _meta__ === void 0 ? void 0 : _meta__.deferredFields;
8
+ const deferredFields = queryNode.__meta__?.deferredFields;
10
9
  if (!deferredFields) return true;
11
10
  const fragDef = fragmentNode.definitions[0];
12
- const fragName = fragDef === null || fragDef === void 0 || (_fragDef$name = fragDef.name) === null || _fragDef$name === void 0 ? void 0 : _fragDef$name.value;
11
+ const fragName = fragDef?.name?.value;
13
12
  const fields = fragName && deferredFields[fragName] || [];
14
13
  return fields.length > 0 && fields.every(field => data && field in data);
15
14
  }
@@ -1 +1 @@
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":[]}
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,MAAMK,cAAc,GAClBF,SAAS,CAGTG,QAAQ,EAAED,cAAc;EAE1B,IAAI,CAACA,cAAc,EAAE,OAAO,IAAI;EAEhC,MAAME,OAAO,GAAGH,YAAY,CAACI,WAAW,CAAC,CAAC,CAE7B;EACb,MAAMC,QAAQ,GAAGF,OAAO,EAAEG,IAAI,EAAEC,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,IAAKf,IAAI,IAAIe,KAAK,IAAIf,IAAI,CAAC;AAC5E","ignoreList":[]}
@@ -4,7 +4,6 @@ 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
- var _source;
8
- return (_source = documents[source]) !== null && _source !== void 0 ? _source : {};
7
+ return documents[source] ?? {};
9
8
  }
10
9
  //# sourceMappingURL=gql.js.map
@@ -1 +1 @@
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
+ {"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,OAAQJ,SAAS,CAASI,MAAM,CAAC,IAAI,CAAC,CAAC;AACzC","ignoreList":[]}
@@ -1,5 +1,10 @@
1
- var _templateObject;
2
- function _taggedTemplateLiteral(e, t) { return t || (t = e.slice(0)), Object.freeze(Object.defineProperties(e, { raw: { value: Object.freeze(t) } })); }
3
1
  import { gql } from '@apollo/client';
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"])));
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
+ `;
5
10
  //# sourceMappingURL=validateInstruments.js.map
@@ -1 +1 @@
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":[]}
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;AACtC;AACA;AACA;AACA;AACA;AACA;AACA,CAAC","ignoreList":[]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@oanda/labs-instruments-price-chart-widget",
3
- "version": "1.0.39",
3
+ "version": "1.0.41",
4
4
  "description": "Labs Instruments Price Chart Widget",
5
5
  "main": "dist/main/index.js",
6
6
  "module": "dist/module/index.js",
@@ -13,7 +13,7 @@
13
13
  "author": "OANDA",
14
14
  "license": "UNLICENSED",
15
15
  "dependencies": {
16
- "@oanda/labs-widget-common": "^1.0.243",
16
+ "@oanda/labs-widget-common": "^1.0.245",
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": "f3d41f07e0f42d2885b8e6aac34c886d24f321c6"
26
+ "gitHead": "688bf7bf93110e0714926f15f6ae0ca04e2dc9af"
27
27
  }