@oanda/labs-live-rates-table-widget 1.0.26 → 1.0.27
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +112 -0
- package/dist/main/LiveRatesTableWidget/LiveRatesTableWidget.js +5 -2
- package/dist/main/LiveRatesTableWidget/LiveRatesTableWidget.js.map +1 -1
- package/dist/main/LiveRatesTableWidget/config.js +6 -1
- package/dist/main/LiveRatesTableWidget/config.js.map +1 -1
- package/dist/main/LiveRatesTableWidget/render.js +4 -2
- package/dist/main/LiveRatesTableWidget/render.js.map +1 -1
- package/dist/main/LiveRatesTableWidget/types.js +6 -0
- package/dist/main/LiveRatesTableWidget/types.js.map +1 -1
- package/dist/module/LiveRatesTableWidget/LiveRatesTableWidget.js +5 -2
- package/dist/module/LiveRatesTableWidget/LiveRatesTableWidget.js.map +1 -1
- package/dist/module/LiveRatesTableWidget/config.js +7 -2
- package/dist/module/LiveRatesTableWidget/config.js.map +1 -1
- package/dist/module/LiveRatesTableWidget/render.js +4 -2
- package/dist/module/LiveRatesTableWidget/render.js.map +1 -1
- package/dist/module/LiveRatesTableWidget/types.js +5 -0
- package/dist/module/LiveRatesTableWidget/types.js.map +1 -1
- package/dist/types/LiveRatesTableWidget/LiveRatesTableWidget.d.ts +1 -1
- package/dist/types/LiveRatesTableWidget/config.d.ts +6 -1
- package/dist/types/LiveRatesTableWidget/types.d.ts +5 -0
- package/package.json +3 -3
- package/src/LiveRatesTableWidget/LiveRatesTableWidget.tsx +3 -1
- package/src/LiveRatesTableWidget/config.ts +8 -1
- package/src/LiveRatesTableWidget/render.tsx +2 -1
- package/src/LiveRatesTableWidget/types.tsx +6 -0
package/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,118 @@
|
|
|
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.27 (2024-09-11)
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
## 1.0.160 (2024-09-10)
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
## 1.0.159 (2024-09-09)
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
## 1.0.158 (2024-09-04)
|
|
19
|
+
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
## 1.0.157 (2024-09-04)
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
|
|
26
|
+
## 1.0.156 (2024-09-02)
|
|
27
|
+
|
|
28
|
+
|
|
29
|
+
|
|
30
|
+
## 1.0.155 (2024-08-29)
|
|
31
|
+
|
|
32
|
+
|
|
33
|
+
|
|
34
|
+
## 1.0.154 (2024-08-29)
|
|
35
|
+
|
|
36
|
+
|
|
37
|
+
|
|
38
|
+
## 1.0.153 (2024-08-23)
|
|
39
|
+
|
|
40
|
+
|
|
41
|
+
|
|
42
|
+
## 1.0.152 (2024-08-23)
|
|
43
|
+
|
|
44
|
+
|
|
45
|
+
|
|
46
|
+
## 1.0.151 (2024-08-20)
|
|
47
|
+
|
|
48
|
+
|
|
49
|
+
|
|
50
|
+
## 1.0.150 (2024-08-19)
|
|
51
|
+
|
|
52
|
+
|
|
53
|
+
|
|
54
|
+
## 1.0.149 (2024-08-07)
|
|
55
|
+
|
|
56
|
+
|
|
57
|
+
|
|
58
|
+
## 1.0.148 (2024-08-01)
|
|
59
|
+
|
|
60
|
+
|
|
61
|
+
|
|
62
|
+
## 1.0.147 (2024-08-01)
|
|
63
|
+
|
|
64
|
+
|
|
65
|
+
|
|
66
|
+
## 1.0.146 (2024-07-26)
|
|
67
|
+
|
|
68
|
+
|
|
69
|
+
|
|
70
|
+
## 1.0.145 (2024-07-25)
|
|
71
|
+
|
|
72
|
+
|
|
73
|
+
|
|
74
|
+
## 1.0.144 (2024-07-22)
|
|
75
|
+
|
|
76
|
+
|
|
77
|
+
|
|
78
|
+
## 1.0.143 (2024-07-19)
|
|
79
|
+
|
|
80
|
+
|
|
81
|
+
|
|
82
|
+
## 1.0.142 (2024-07-16)
|
|
83
|
+
|
|
84
|
+
|
|
85
|
+
|
|
86
|
+
## 1.0.141 (2024-07-16)
|
|
87
|
+
|
|
88
|
+
|
|
89
|
+
|
|
90
|
+
## 1.0.140 (2024-07-12)
|
|
91
|
+
|
|
92
|
+
|
|
93
|
+
|
|
94
|
+
## 1.0.139 (2024-07-12)
|
|
95
|
+
|
|
96
|
+
|
|
97
|
+
|
|
98
|
+
## 1.0.138 (2024-07-10)
|
|
99
|
+
|
|
100
|
+
|
|
101
|
+
|
|
102
|
+
## 1.0.137 (2024-07-05)
|
|
103
|
+
|
|
104
|
+
|
|
105
|
+
|
|
106
|
+
## 1.0.136 (2024-07-03)
|
|
107
|
+
|
|
108
|
+
|
|
109
|
+
|
|
110
|
+
## 1.0.135 (2024-07-03)
|
|
111
|
+
|
|
112
|
+
**Note:** Version bump only for package @oanda/labs-live-rates-table-widget
|
|
113
|
+
|
|
114
|
+
|
|
115
|
+
|
|
116
|
+
|
|
117
|
+
|
|
6
118
|
## 1.0.26 (2024-09-10)
|
|
7
119
|
|
|
8
120
|
|
|
@@ -11,6 +11,7 @@ var _labsWidgetCommon = require("@oanda/labs-widget-common");
|
|
|
11
11
|
var _translations = require("../translations");
|
|
12
12
|
var _Main = require("./Main");
|
|
13
13
|
var _types = require("./types");
|
|
14
|
+
var _config = require("./config");
|
|
14
15
|
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
15
16
|
const LiveRatesTableWidget = _ref => {
|
|
16
17
|
let {
|
|
@@ -22,7 +23,8 @@ const LiveRatesTableWidget = _ref => {
|
|
|
22
23
|
locale,
|
|
23
24
|
theme,
|
|
24
25
|
isParamError,
|
|
25
|
-
removePadding
|
|
26
|
+
removePadding,
|
|
27
|
+
view
|
|
26
28
|
} = _ref;
|
|
27
29
|
const client = new _client.ApolloClient({
|
|
28
30
|
uri: graphqlUrl,
|
|
@@ -32,7 +34,8 @@ const LiveRatesTableWidget = _ref => {
|
|
|
32
34
|
const dataSource = divisionCode === _types.Division.Ogm ? 'MT5' : 'V20';
|
|
33
35
|
return _react.default.createElement(_labsWidgetCommon.ThemeProvider, {
|
|
34
36
|
removePadding: removePadding,
|
|
35
|
-
theme: theme
|
|
37
|
+
theme: theme,
|
|
38
|
+
size: view && _config.sizeConfig[view]
|
|
36
39
|
}, _react.default.createElement(_monoI18n.LocaleProvider, {
|
|
37
40
|
locale: (0, _labsWidgetCommon.getLocale)(locale),
|
|
38
41
|
translations: _translations.translations
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LiveRatesTableWidget.js","names":["_react","_interopRequireDefault","require","_client","_monoI18n","_labsWidgetCommon","_translations","_Main","_types","e","__esModule","default","LiveRatesTableWidget","_ref","graphqlUrl","liveRatesUrl","instruments","division","columns","locale","theme","isParamError","removePadding","client","ApolloClient","uri","cache","InMemoryCache","divisionCode","Division","Opt","Ogm","dataSource","createElement","ThemeProvider","LocaleProvider","getLocale","translations","LiveRatesProvider","url","options","ApolloProvider","className","ChartError","Main","exports"],"sources":["../../../src/LiveRatesTableWidget/LiveRatesTableWidget.tsx"],"sourcesContent":["import React from 'react';\nimport { ApolloClient, InMemoryCache, ApolloProvider } from '@apollo/client';\nimport { LocaleProvider } from '@oanda/mono-i18n';\nimport {\n ChartError, LiveRatesProvider, ThemeProvider, getLocale,\n} from '@oanda/labs-widget-common';\nimport { translations } from '../translations';\nimport { Main } from './Main';\nimport { Division, LiveRatesTableConfig } from './types';\n\nconst LiveRatesTableWidget = ({\n graphqlUrl,\n liveRatesUrl,\n instruments,\n division,\n columns,\n locale,\n theme,\n isParamError,\n removePadding,\n}: LiveRatesTableConfig) => {\n const client = new ApolloClient({\n uri: graphqlUrl,\n cache: new InMemoryCache(),\n });\n\n const divisionCode = division === Division.Opt ? Division.Ogm : division;\n const dataSource = divisionCode === Division.Ogm ? 'MT5' : 'V20';\n\n return (\n <ThemeProvider removePadding={removePadding} theme={theme}>\n <LocaleProvider locale={getLocale(locale)} translations={translations}>\n <LiveRatesProvider\n url={liveRatesUrl}\n options={{ divisionCode, dataSource }}\n >\n <ApolloProvider client={client}>\n {isParamError ? (\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 <Main\n instruments={instruments}\n division={division}\n columns={columns}\n />\n )}\n </ApolloProvider>\n </LiveRatesProvider>\n </LocaleProvider>\n </ThemeProvider>\n );\n};\n\nexport { LiveRatesTableWidget };\n"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,OAAA,GAAAD,OAAA;AACA,IAAAE,SAAA,GAAAF,OAAA;AACA,IAAAG,iBAAA,GAAAH,OAAA;AAGA,IAAAI,aAAA,GAAAJ,OAAA;AACA,IAAAK,KAAA,GAAAL,OAAA;AACA,IAAAM,MAAA,GAAAN,OAAA;
|
|
1
|
+
{"version":3,"file":"LiveRatesTableWidget.js","names":["_react","_interopRequireDefault","require","_client","_monoI18n","_labsWidgetCommon","_translations","_Main","_types","_config","e","__esModule","default","LiveRatesTableWidget","_ref","graphqlUrl","liveRatesUrl","instruments","division","columns","locale","theme","isParamError","removePadding","view","client","ApolloClient","uri","cache","InMemoryCache","divisionCode","Division","Opt","Ogm","dataSource","createElement","ThemeProvider","size","sizeConfig","LocaleProvider","getLocale","translations","LiveRatesProvider","url","options","ApolloProvider","className","ChartError","Main","exports"],"sources":["../../../src/LiveRatesTableWidget/LiveRatesTableWidget.tsx"],"sourcesContent":["import React from 'react';\nimport { ApolloClient, InMemoryCache, ApolloProvider } from '@apollo/client';\nimport { LocaleProvider } from '@oanda/mono-i18n';\nimport {\n ChartError, LiveRatesProvider, ThemeProvider, getLocale,\n} from '@oanda/labs-widget-common';\nimport { translations } from '../translations';\nimport { Main } from './Main';\nimport { Division, LiveRatesTableConfig } from './types';\nimport { sizeConfig } from './config';\n\nconst LiveRatesTableWidget = ({\n graphqlUrl,\n liveRatesUrl,\n instruments,\n division,\n columns,\n locale,\n theme,\n isParamError,\n removePadding,\n view,\n}: LiveRatesTableConfig) => {\n const client = new ApolloClient({\n uri: graphqlUrl,\n cache: new InMemoryCache(),\n });\n\n const divisionCode = division === Division.Opt ? Division.Ogm : division;\n const dataSource = divisionCode === Division.Ogm ? 'MT5' : 'V20';\n\n return (\n <ThemeProvider removePadding={removePadding} theme={theme} size={view && sizeConfig[view]}>\n <LocaleProvider locale={getLocale(locale)} translations={translations}>\n <LiveRatesProvider\n url={liveRatesUrl}\n options={{ divisionCode, dataSource }}\n >\n <ApolloProvider client={client}>\n {isParamError ? (\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 <Main\n instruments={instruments}\n division={division}\n columns={columns}\n />\n )}\n </ApolloProvider>\n </LiveRatesProvider>\n </LocaleProvider>\n </ThemeProvider>\n );\n};\n\nexport { LiveRatesTableWidget };\n"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,OAAA,GAAAD,OAAA;AACA,IAAAE,SAAA,GAAAF,OAAA;AACA,IAAAG,iBAAA,GAAAH,OAAA;AAGA,IAAAI,aAAA,GAAAJ,OAAA;AACA,IAAAK,KAAA,GAAAL,OAAA;AACA,IAAAM,MAAA,GAAAN,OAAA;AACA,IAAAO,OAAA,GAAAP,OAAA;AAAsC,SAAAD,uBAAAS,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAEtC,MAAMG,oBAAoB,GAAGC,IAAA,IAWD;EAAA,IAXE;IAC5BC,UAAU;IACVC,YAAY;IACZC,WAAW;IACXC,QAAQ;IACRC,OAAO;IACPC,MAAM;IACNC,KAAK;IACLC,YAAY;IACZC,aAAa;IACbC;EACoB,CAAC,GAAAV,IAAA;EACrB,MAAMW,MAAM,GAAG,IAAIC,oBAAY,CAAC;IAC9BC,GAAG,EAAEZ,UAAU;IACfa,KAAK,EAAE,IAAIC,qBAAa,CAAC;EAC3B,CAAC,CAAC;EAEF,MAAMC,YAAY,GAAGZ,QAAQ,KAAKa,eAAQ,CAACC,GAAG,GAAGD,eAAQ,CAACE,GAAG,GAAGf,QAAQ;EACxE,MAAMgB,UAAU,GAAGJ,YAAY,KAAKC,eAAQ,CAACE,GAAG,GAAG,KAAK,GAAG,KAAK;EAEhE,OACEjC,MAAA,CAAAY,OAAA,CAAAuB,aAAA,CAAC9B,iBAAA,CAAA+B,aAAa;IAACb,aAAa,EAAEA,aAAc;IAACF,KAAK,EAAEA,KAAM;IAACgB,IAAI,EAAEb,IAAI,IAAIc,kBAAU,CAACd,IAAI;EAAE,GACxFxB,MAAA,CAAAY,OAAA,CAAAuB,aAAA,CAAC/B,SAAA,CAAAmC,cAAc;IAACnB,MAAM,EAAE,IAAAoB,2BAAS,EAACpB,MAAM,CAAE;IAACqB,YAAY,EAAEA;EAAa,GACpEzC,MAAA,CAAAY,OAAA,CAAAuB,aAAA,CAAC9B,iBAAA,CAAAqC,iBAAiB;IAChBC,GAAG,EAAE3B,YAAa;IAClB4B,OAAO,EAAE;MAAEd,YAAY;MAAEI;IAAW;EAAE,GAEtClC,MAAA,CAAAY,OAAA,CAAAuB,aAAA,CAAChC,OAAA,CAAA0C,cAAc;IAACpB,MAAM,EAAEA;EAAO,GAC5BH,YAAY,GACXtB,MAAA,CAAAY,OAAA,CAAAuB,aAAA;IAAKW,SAAS,EAAC;EAAmG,GAChH9C,MAAA,CAAAY,OAAA,CAAAuB,aAAA,CAAC9B,iBAAA,CAAA0C,UAAU,MAAE,CACV,CAAC,GAGJ/C,MAAA,CAAAY,OAAA,CAAAuB,aAAA,CAAC5B,KAAA,CAAAyC,IAAI;IACH/B,WAAW,EAAEA,WAAY;IACzBC,QAAQ,EAAEA,QAAS;IACnBC,OAAO,EAAEA;EAAQ,CAClB,CAES,CACC,CACL,CACH,CAAC;AAEpB,CAAC;AAAC8B,OAAA,CAAApC,oBAAA,GAAAA,oBAAA","ignoreList":[]}
|
|
@@ -3,7 +3,8 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
exports.headerConfig = void 0;
|
|
6
|
+
exports.sizeConfig = exports.headerConfig = void 0;
|
|
7
|
+
var _labsWidgetCommon = require("@oanda/labs-widget-common");
|
|
7
8
|
var _types = require("./types");
|
|
8
9
|
const headerConfig = exports.headerConfig = {
|
|
9
10
|
[_types.ColumnsNames.INSTRUMENT]: {
|
|
@@ -31,4 +32,8 @@ const headerConfig = exports.headerConfig = {
|
|
|
31
32
|
additionalStyles: 'lw-text-right lw-min-w-[50px]'
|
|
32
33
|
}
|
|
33
34
|
};
|
|
35
|
+
const sizeConfig = exports.sizeConfig = {
|
|
36
|
+
[_types.View.CARDS]: _labsWidgetCommon.Size.MOBILE,
|
|
37
|
+
[_types.View.TABLE]: _labsWidgetCommon.Size.DESKTOP
|
|
38
|
+
};
|
|
34
39
|
//# sourceMappingURL=config.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","names":["
|
|
1
|
+
{"version":3,"file":"config.js","names":["_labsWidgetCommon","require","_types","headerConfig","exports","ColumnsNames","INSTRUMENT","displayName","additionalStyles","SELL","BUY","DAILY_CHANGE","CHART","SPREAD","sizeConfig","View","CARDS","Size","MOBILE","TABLE","DESKTOP"],"sources":["../../../src/LiveRatesTableWidget/config.ts"],"sourcesContent":["import { Size } from '@oanda/labs-widget-common';\nimport { ColumnsNames, View } from './types';\n\nconst headerConfig = {\n [ColumnsNames.INSTRUMENT]: {\n displayName: 'instrument',\n additionalStyles: 'lw-text-left lw-min-w-[130px]',\n },\n [ColumnsNames.SELL]: {\n displayName: 'sell',\n additionalStyles: 'lw-text-right lw-min-w-[75px] lw-pr-4',\n },\n [ColumnsNames.BUY]: {\n displayName: 'buy',\n additionalStyles: 'lw-text-right lw-min-w-[75px] lw-pr-4',\n },\n [ColumnsNames.DAILY_CHANGE]: {\n displayName: 'daily_percent_change',\n additionalStyles: 'lw-text-right lw-min-w-[80px]',\n },\n [ColumnsNames.CHART]: {\n displayName: '24h_chart',\n additionalStyles: 'lw-text-center lw-min-w-[100px]',\n },\n [ColumnsNames.SPREAD]: {\n displayName: 'spread',\n additionalStyles: 'lw-text-right lw-min-w-[50px]',\n },\n};\n\nconst sizeConfig = {\n [View.CARDS]: Size.MOBILE,\n [View.TABLE]: Size.DESKTOP,\n};\n\nexport {\n headerConfig,\n sizeConfig,\n};\n"],"mappings":";;;;;;AAAA,IAAAA,iBAAA,GAAAC,OAAA;AACA,IAAAC,MAAA,GAAAD,OAAA;AAEA,MAAME,YAAY,GAAAC,OAAA,CAAAD,YAAA,GAAG;EACnB,CAACE,mBAAY,CAACC,UAAU,GAAG;IACzBC,WAAW,EAAE,YAAY;IACzBC,gBAAgB,EAAE;EACpB,CAAC;EACD,CAACH,mBAAY,CAACI,IAAI,GAAG;IACnBF,WAAW,EAAE,MAAM;IACnBC,gBAAgB,EAAE;EACpB,CAAC;EACD,CAACH,mBAAY,CAACK,GAAG,GAAG;IAClBH,WAAW,EAAE,KAAK;IAClBC,gBAAgB,EAAE;EACpB,CAAC;EACD,CAACH,mBAAY,CAACM,YAAY,GAAG;IAC3BJ,WAAW,EAAE,sBAAsB;IACnCC,gBAAgB,EAAE;EACpB,CAAC;EACD,CAACH,mBAAY,CAACO,KAAK,GAAG;IACpBL,WAAW,EAAE,WAAW;IACxBC,gBAAgB,EAAE;EACpB,CAAC;EACD,CAACH,mBAAY,CAACQ,MAAM,GAAG;IACrBN,WAAW,EAAE,QAAQ;IACrBC,gBAAgB,EAAE;EACpB;AACF,CAAC;AAED,MAAMM,UAAU,GAAAV,OAAA,CAAAU,UAAA,GAAG;EACjB,CAACC,WAAI,CAACC,KAAK,GAAGC,sBAAI,CAACC,MAAM;EACzB,CAACH,WAAI,CAACI,KAAK,GAAGF,sBAAI,CAACG;AACrB,CAAC","ignoreList":[]}
|
|
@@ -19,7 +19,8 @@ liveRatesTableParamsElements.forEach(element => {
|
|
|
19
19
|
instruments,
|
|
20
20
|
columns,
|
|
21
21
|
division,
|
|
22
|
-
locale
|
|
22
|
+
locale,
|
|
23
|
+
view
|
|
23
24
|
} = JSON.parse(params);
|
|
24
25
|
const isParamError = (0, _labsWidgetCommon.validateToolParams)({
|
|
25
26
|
division,
|
|
@@ -53,7 +54,8 @@ liveRatesTableParamsElements.forEach(element => {
|
|
|
53
54
|
columns: columns,
|
|
54
55
|
locale: locale,
|
|
55
56
|
theme: mode,
|
|
56
|
-
isParamError: isParamError
|
|
57
|
+
isParamError: isParamError,
|
|
58
|
+
view: view
|
|
57
59
|
}));
|
|
58
60
|
});
|
|
59
61
|
//# sourceMappingURL=render.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"render.js","names":["_react","_interopRequireDefault","require","_client","_labsWidgetCommon","_LiveRatesTableWidget","_graphql","e","__esModule","default","graphqlUrl","liveRatesUrl","window","widgetsConfig","liveRatesTableParamsElements","document","querySelectorAll","forEach","element","root","createRoot","params","getAttribute","mode","instruments","columns","division","locale","JSON","parse","isParamError","validateToolParams","name","valueCheck","value","validateLocale","Object","values","Division","includes","length","render","createElement","LiveRatesTableWidget","theme"],"sources":["../../../src/LiveRatesTableWidget/render.tsx"],"sourcesContent":["import React from 'react';\nimport { createRoot } from 'react-dom/client';\nimport { Theme, validateLocale, validateToolParams } from '@oanda/labs-widget-common';\nimport { LiveRatesTableWidget } from './LiveRatesTableWidget';\nimport { Division } from '../gql/types/graphql';\n\nconst {\n graphqlUrl,\n liveRatesUrl,\n} = window.widgetsConfig || {};\n\nconst liveRatesTableParamsElements = document.querySelectorAll('div[data-live-rates-table-params]');\n\nliveRatesTableParamsElements.forEach((element) => {\n const root = createRoot(element);\n const params = element.getAttribute('data-live-rates-table-params');\n const mode = element.getAttribute('data-mode');\n const {\n instruments, columns, division, locale,\n } = JSON.parse(params as string);\n\n const isParamError = validateToolParams({\n division, locale, graphqlUrl, liveRatesUrl, instruments, columns,\n }, [{\n name: 'locale',\n valueCheck: (value) => validateLocale(value),\n }, {\n name: 'division',\n valueCheck: (value) => Object.values(Division).includes(value),\n }, {\n name: 'instruments',\n valueCheck: (value) => (value as string[]).length > 0 && (value as string[]).length <= 10,\n }, {\n name: 'columns',\n valueCheck: (value) => (value as string[]).length > 0,\n }, {\n name: 'graphqlUrl',\n }, {\n name: 'liveRatesUrl',\n }]);\n\n root.render(\n <LiveRatesTableWidget\n graphqlUrl={graphqlUrl}\n liveRatesUrl={liveRatesUrl}\n division={division}\n instruments={instruments}\n columns={columns}\n locale={locale}\n theme={mode as Theme}\n isParamError={isParamError}\n />,\n );\n});\n"],"mappings":";;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,OAAA,GAAAD,OAAA;AACA,IAAAE,iBAAA,GAAAF,OAAA;AACA,IAAAG,qBAAA,GAAAH,OAAA;AACA,IAAAI,QAAA,GAAAJ,OAAA;AAAgD,SAAAD,uBAAAM,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAEhD,MAAM;EACJG,UAAU;EACVC;AACF,CAAC,GAAGC,MAAM,CAACC,aAAa,IAAI,CAAC,CAAC;AAE9B,MAAMC,4BAA4B,GAAGC,QAAQ,CAACC,gBAAgB,CAAC,mCAAmC,CAAC;AAEnGF,4BAA4B,CAACG,OAAO,CAAEC,OAAO,IAAK;EAChD,MAAMC,IAAI,GAAG,IAAAC,kBAAU,EAACF,OAAO,CAAC;EAChC,MAAMG,MAAM,GAAGH,OAAO,CAACI,YAAY,CAAC,8BAA8B,CAAC;EACnE,MAAMC,IAAI,GAAGL,OAAO,CAACI,YAAY,CAAC,WAAW,CAAC;EAC9C,MAAM;IACJE,WAAW;IAAEC,OAAO;IAAEC,QAAQ;IAAEC;
|
|
1
|
+
{"version":3,"file":"render.js","names":["_react","_interopRequireDefault","require","_client","_labsWidgetCommon","_LiveRatesTableWidget","_graphql","e","__esModule","default","graphqlUrl","liveRatesUrl","window","widgetsConfig","liveRatesTableParamsElements","document","querySelectorAll","forEach","element","root","createRoot","params","getAttribute","mode","instruments","columns","division","locale","view","JSON","parse","isParamError","validateToolParams","name","valueCheck","value","validateLocale","Object","values","Division","includes","length","render","createElement","LiveRatesTableWidget","theme"],"sources":["../../../src/LiveRatesTableWidget/render.tsx"],"sourcesContent":["import React from 'react';\nimport { createRoot } from 'react-dom/client';\nimport { Theme, validateLocale, validateToolParams } from '@oanda/labs-widget-common';\nimport { LiveRatesTableWidget } from './LiveRatesTableWidget';\nimport { Division } from '../gql/types/graphql';\n\nconst {\n graphqlUrl,\n liveRatesUrl,\n} = window.widgetsConfig || {};\n\nconst liveRatesTableParamsElements = document.querySelectorAll('div[data-live-rates-table-params]');\n\nliveRatesTableParamsElements.forEach((element) => {\n const root = createRoot(element);\n const params = element.getAttribute('data-live-rates-table-params');\n const mode = element.getAttribute('data-mode');\n const {\n instruments, columns, division, locale, view,\n } = JSON.parse(params as string);\n\n const isParamError = validateToolParams({\n division, locale, graphqlUrl, liveRatesUrl, instruments, columns,\n }, [{\n name: 'locale',\n valueCheck: (value) => validateLocale(value),\n }, {\n name: 'division',\n valueCheck: (value) => Object.values(Division).includes(value),\n }, {\n name: 'instruments',\n valueCheck: (value) => (value as string[]).length > 0 && (value as string[]).length <= 10,\n }, {\n name: 'columns',\n valueCheck: (value) => (value as string[]).length > 0,\n }, {\n name: 'graphqlUrl',\n }, {\n name: 'liveRatesUrl',\n }]);\n\n root.render(\n <LiveRatesTableWidget\n graphqlUrl={graphqlUrl}\n liveRatesUrl={liveRatesUrl}\n division={division}\n instruments={instruments}\n columns={columns}\n locale={locale}\n theme={mode as Theme}\n isParamError={isParamError}\n view={view}\n />,\n );\n});\n"],"mappings":";;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,OAAA,GAAAD,OAAA;AACA,IAAAE,iBAAA,GAAAF,OAAA;AACA,IAAAG,qBAAA,GAAAH,OAAA;AACA,IAAAI,QAAA,GAAAJ,OAAA;AAAgD,SAAAD,uBAAAM,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAEhD,MAAM;EACJG,UAAU;EACVC;AACF,CAAC,GAAGC,MAAM,CAACC,aAAa,IAAI,CAAC,CAAC;AAE9B,MAAMC,4BAA4B,GAAGC,QAAQ,CAACC,gBAAgB,CAAC,mCAAmC,CAAC;AAEnGF,4BAA4B,CAACG,OAAO,CAAEC,OAAO,IAAK;EAChD,MAAMC,IAAI,GAAG,IAAAC,kBAAU,EAACF,OAAO,CAAC;EAChC,MAAMG,MAAM,GAAGH,OAAO,CAACI,YAAY,CAAC,8BAA8B,CAAC;EACnE,MAAMC,IAAI,GAAGL,OAAO,CAACI,YAAY,CAAC,WAAW,CAAC;EAC9C,MAAM;IACJE,WAAW;IAAEC,OAAO;IAAEC,QAAQ;IAAEC,MAAM;IAAEC;EAC1C,CAAC,GAAGC,IAAI,CAACC,KAAK,CAACT,MAAgB,CAAC;EAEhC,MAAMU,YAAY,GAAG,IAAAC,oCAAkB,EAAC;IACtCN,QAAQ;IAAEC,MAAM;IAAEjB,UAAU;IAAEC,YAAY;IAAEa,WAAW;IAAEC;EAC3D,CAAC,EAAE,CAAC;IACFQ,IAAI,EAAE,QAAQ;IACdC,UAAU,EAAGC,KAAK,IAAK,IAAAC,gCAAc,EAACD,KAAK;EAC7C,CAAC,EAAE;IACDF,IAAI,EAAE,UAAU;IAChBC,UAAU,EAAGC,KAAK,IAAKE,MAAM,CAACC,MAAM,CAACC,iBAAQ,CAAC,CAACC,QAAQ,CAACL,KAAK;EAC/D,CAAC,EAAE;IACDF,IAAI,EAAE,aAAa;IACnBC,UAAU,EAAGC,KAAK,IAAMA,KAAK,CAAcM,MAAM,GAAG,CAAC,IAAKN,KAAK,CAAcM,MAAM,IAAI;EACzF,CAAC,EAAE;IACDR,IAAI,EAAE,SAAS;IACfC,UAAU,EAAGC,KAAK,IAAMA,KAAK,CAAcM,MAAM,GAAG;EACtD,CAAC,EAAE;IACDR,IAAI,EAAE;EACR,CAAC,EAAE;IACDA,IAAI,EAAE;EACR,CAAC,CAAC,CAAC;EAEHd,IAAI,CAACuB,MAAM,CACT1C,MAAA,CAAAS,OAAA,CAAAkC,aAAA,CAACtC,qBAAA,CAAAuC,oBAAoB;IACnBlC,UAAU,EAAEA,UAAW;IACvBC,YAAY,EAAEA,YAAa;IAC3Be,QAAQ,EAAEA,QAAS;IACnBF,WAAW,EAAEA,WAAY;IACzBC,OAAO,EAAEA,OAAQ;IACjBE,MAAM,EAAEA,MAAO;IACfkB,KAAK,EAAEtB,IAAc;IACrBQ,YAAY,EAAEA,YAAa;IAC3BH,IAAI,EAAEA;EAAK,CACZ,CACH,CAAC;AACH,CAAC,CAAC","ignoreList":[]}
|
|
@@ -16,8 +16,14 @@ Object.defineProperty(exports, "Locale", {
|
|
|
16
16
|
return _monoI18n.Locale;
|
|
17
17
|
}
|
|
18
18
|
});
|
|
19
|
+
exports.View = void 0;
|
|
19
20
|
var _monoI18n = require("@oanda/mono-i18n");
|
|
20
21
|
var _graphql = require("../gql/types/graphql");
|
|
22
|
+
let View = exports.View = function (View) {
|
|
23
|
+
View["TABLE"] = "table";
|
|
24
|
+
View["CARDS"] = "cards";
|
|
25
|
+
return View;
|
|
26
|
+
}({});
|
|
21
27
|
let ColumnsNames = exports.ColumnsNames = function (ColumnsNames) {
|
|
22
28
|
ColumnsNames["INSTRUMENT"] = "instrument";
|
|
23
29
|
ColumnsNames["SELL"] = "sell";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","names":["_monoI18n","require","_graphql","
|
|
1
|
+
{"version":3,"file":"types.js","names":["_monoI18n","require","_graphql","View","exports","ColumnsNames"],"sources":["../../../src/LiveRatesTableWidget/types.tsx"],"sourcesContent":["import { Locale } from '@oanda/mono-i18n';\nimport { Theme } from '@oanda/labs-widget-common';\nimport { Division } from '../gql/types/graphql';\n\nexport { Locale } from '@oanda/mono-i18n';\nexport { Division } from '../gql/types/graphql';\n\nexport enum View {\n TABLE = 'table',\n CARDS = 'cards',\n}\n\nexport interface LiveRatesTableConfig {\n graphqlUrl: string;\n division: Division;\n liveRatesUrl: string;\n instruments: string[];\n columns?: ColumnsNames[];\n locale: Locale;\n theme?: Theme;\n isParamError?: boolean;\n removePadding?: boolean;\n view?: View;\n}\n\nexport enum ColumnsNames {\n INSTRUMENT = 'instrument',\n SELL = 'sell',\n BUY = 'buy',\n DAILY_CHANGE = 'dailyChange',\n CHART = 'chart',\n SPREAD = 'spread',\n}\n\nexport interface MainProps {\n instruments: string[];\n division: Division;\n columns?: ColumnsNames[];\n}\n\nexport interface Sentiment {\n shortPercent: number;\n longPercent: number;\n}\n\nexport type EmptyRecord = Record<any, never>;\n\nexport interface DataRecord {\n [key: string]: string | number | undefined;\n instrument: string;\n displayName: string;\n buy?: number;\n sell?: number;\n spread?: number;\n sellPriceMovement?: number;\n buyPriceMovement?: number;\n dailyPercentChange?: string;\n displayPrecision?: number;\n}\n\nexport interface RowWithDataProps {\n loading: boolean;\n record: DataRecord;\n hasBackgroundColor: boolean;\n target: EventTarget | null;\n activeColumns: ColumnsNames[];\n division: Division;\n isScrolled?: boolean;\n}\n\nexport interface CardWithDataProps {\n index: number;\n isLoading?: boolean;\n isError?: boolean;\n record: DataRecord;\n target: EventTarget | null;\n activeColumns: ColumnsNames[];\n division: Division;\n isLast?: boolean;\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;AAIA,IAAAA,SAAA,GAAAC,OAAA;AACA,IAAAC,QAAA,GAAAD,OAAA;AAAgD,IAEpCE,IAAI,GAAAC,OAAA,CAAAD,IAAA,aAAJA,IAAI;EAAJA,IAAI;EAAJA,IAAI;EAAA,OAAJA,IAAI;AAAA;AAAA,IAkBJE,YAAY,GAAAD,OAAA,CAAAC,YAAA,aAAZA,YAAY;EAAZA,YAAY;EAAZA,YAAY;EAAZA,YAAY;EAAZA,YAAY;EAAZA,YAAY;EAAZA,YAAY;EAAA,OAAZA,YAAY;AAAA","ignoreList":[]}
|
|
@@ -5,6 +5,7 @@ import { ChartError, LiveRatesProvider, ThemeProvider, getLocale } from '@oanda/
|
|
|
5
5
|
import { translations } from '../translations';
|
|
6
6
|
import { Main } from './Main';
|
|
7
7
|
import { Division } from './types';
|
|
8
|
+
import { sizeConfig } from './config';
|
|
8
9
|
const LiveRatesTableWidget = _ref => {
|
|
9
10
|
let {
|
|
10
11
|
graphqlUrl,
|
|
@@ -15,7 +16,8 @@ const LiveRatesTableWidget = _ref => {
|
|
|
15
16
|
locale,
|
|
16
17
|
theme,
|
|
17
18
|
isParamError,
|
|
18
|
-
removePadding
|
|
19
|
+
removePadding,
|
|
20
|
+
view
|
|
19
21
|
} = _ref;
|
|
20
22
|
const client = new ApolloClient({
|
|
21
23
|
uri: graphqlUrl,
|
|
@@ -25,7 +27,8 @@ const LiveRatesTableWidget = _ref => {
|
|
|
25
27
|
const dataSource = divisionCode === Division.Ogm ? 'MT5' : 'V20';
|
|
26
28
|
return React.createElement(ThemeProvider, {
|
|
27
29
|
removePadding: removePadding,
|
|
28
|
-
theme: theme
|
|
30
|
+
theme: theme,
|
|
31
|
+
size: view && sizeConfig[view]
|
|
29
32
|
}, React.createElement(LocaleProvider, {
|
|
30
33
|
locale: getLocale(locale),
|
|
31
34
|
translations: translations
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LiveRatesTableWidget.js","names":["React","ApolloClient","InMemoryCache","ApolloProvider","LocaleProvider","ChartError","LiveRatesProvider","ThemeProvider","getLocale","translations","Main","Division","LiveRatesTableWidget","_ref","graphqlUrl","liveRatesUrl","instruments","division","columns","locale","theme","isParamError","removePadding","client","uri","cache","divisionCode","Opt","Ogm","dataSource","createElement","url","options","className"],"sources":["../../../src/LiveRatesTableWidget/LiveRatesTableWidget.tsx"],"sourcesContent":["import React from 'react';\nimport { ApolloClient, InMemoryCache, ApolloProvider } from '@apollo/client';\nimport { LocaleProvider } from '@oanda/mono-i18n';\nimport {\n ChartError, LiveRatesProvider, ThemeProvider, getLocale,\n} from '@oanda/labs-widget-common';\nimport { translations } from '../translations';\nimport { Main } from './Main';\nimport { Division, LiveRatesTableConfig } from './types';\n\nconst LiveRatesTableWidget = ({\n graphqlUrl,\n liveRatesUrl,\n instruments,\n division,\n columns,\n locale,\n theme,\n isParamError,\n removePadding,\n}: LiveRatesTableConfig) => {\n const client = new ApolloClient({\n uri: graphqlUrl,\n cache: new InMemoryCache(),\n });\n\n const divisionCode = division === Division.Opt ? Division.Ogm : division;\n const dataSource = divisionCode === Division.Ogm ? 'MT5' : 'V20';\n\n return (\n <ThemeProvider removePadding={removePadding} theme={theme}>\n <LocaleProvider locale={getLocale(locale)} translations={translations}>\n <LiveRatesProvider\n url={liveRatesUrl}\n options={{ divisionCode, dataSource }}\n >\n <ApolloProvider client={client}>\n {isParamError ? (\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 <Main\n instruments={instruments}\n division={division}\n columns={columns}\n />\n )}\n </ApolloProvider>\n </LiveRatesProvider>\n </LocaleProvider>\n </ThemeProvider>\n );\n};\n\nexport { LiveRatesTableWidget };\n"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAASC,YAAY,EAAEC,aAAa,EAAEC,cAAc,QAAQ,gBAAgB;AAC5E,SAASC,cAAc,QAAQ,kBAAkB;AACjD,SACEC,UAAU,EAAEC,iBAAiB,EAAEC,aAAa,EAAEC,SAAS,QAClD,2BAA2B;AAClC,SAASC,YAAY,QAAQ,iBAAiB;AAC9C,SAASC,IAAI,QAAQ,QAAQ;AAC7B,SAASC,QAAQ,QAA8B,SAAS;
|
|
1
|
+
{"version":3,"file":"LiveRatesTableWidget.js","names":["React","ApolloClient","InMemoryCache","ApolloProvider","LocaleProvider","ChartError","LiveRatesProvider","ThemeProvider","getLocale","translations","Main","Division","sizeConfig","LiveRatesTableWidget","_ref","graphqlUrl","liveRatesUrl","instruments","division","columns","locale","theme","isParamError","removePadding","view","client","uri","cache","divisionCode","Opt","Ogm","dataSource","createElement","size","url","options","className"],"sources":["../../../src/LiveRatesTableWidget/LiveRatesTableWidget.tsx"],"sourcesContent":["import React from 'react';\nimport { ApolloClient, InMemoryCache, ApolloProvider } from '@apollo/client';\nimport { LocaleProvider } from '@oanda/mono-i18n';\nimport {\n ChartError, LiveRatesProvider, ThemeProvider, getLocale,\n} from '@oanda/labs-widget-common';\nimport { translations } from '../translations';\nimport { Main } from './Main';\nimport { Division, LiveRatesTableConfig } from './types';\nimport { sizeConfig } from './config';\n\nconst LiveRatesTableWidget = ({\n graphqlUrl,\n liveRatesUrl,\n instruments,\n division,\n columns,\n locale,\n theme,\n isParamError,\n removePadding,\n view,\n}: LiveRatesTableConfig) => {\n const client = new ApolloClient({\n uri: graphqlUrl,\n cache: new InMemoryCache(),\n });\n\n const divisionCode = division === Division.Opt ? Division.Ogm : division;\n const dataSource = divisionCode === Division.Ogm ? 'MT5' : 'V20';\n\n return (\n <ThemeProvider removePadding={removePadding} theme={theme} size={view && sizeConfig[view]}>\n <LocaleProvider locale={getLocale(locale)} translations={translations}>\n <LiveRatesProvider\n url={liveRatesUrl}\n options={{ divisionCode, dataSource }}\n >\n <ApolloProvider client={client}>\n {isParamError ? (\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 <Main\n instruments={instruments}\n division={division}\n columns={columns}\n />\n )}\n </ApolloProvider>\n </LiveRatesProvider>\n </LocaleProvider>\n </ThemeProvider>\n );\n};\n\nexport { LiveRatesTableWidget };\n"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAASC,YAAY,EAAEC,aAAa,EAAEC,cAAc,QAAQ,gBAAgB;AAC5E,SAASC,cAAc,QAAQ,kBAAkB;AACjD,SACEC,UAAU,EAAEC,iBAAiB,EAAEC,aAAa,EAAEC,SAAS,QAClD,2BAA2B;AAClC,SAASC,YAAY,QAAQ,iBAAiB;AAC9C,SAASC,IAAI,QAAQ,QAAQ;AAC7B,SAASC,QAAQ,QAA8B,SAAS;AACxD,SAASC,UAAU,QAAQ,UAAU;AAErC,MAAMC,oBAAoB,GAAGC,IAAA,IAWD;EAAA,IAXE;IAC5BC,UAAU;IACVC,YAAY;IACZC,WAAW;IACXC,QAAQ;IACRC,OAAO;IACPC,MAAM;IACNC,KAAK;IACLC,YAAY;IACZC,aAAa;IACbC;EACoB,CAAC,GAAAV,IAAA;EACrB,MAAMW,MAAM,GAAG,IAAIxB,YAAY,CAAC;IAC9ByB,GAAG,EAAEX,UAAU;IACfY,KAAK,EAAE,IAAIzB,aAAa,CAAC;EAC3B,CAAC,CAAC;EAEF,MAAM0B,YAAY,GAAGV,QAAQ,KAAKP,QAAQ,CAACkB,GAAG,GAAGlB,QAAQ,CAACmB,GAAG,GAAGZ,QAAQ;EACxE,MAAMa,UAAU,GAAGH,YAAY,KAAKjB,QAAQ,CAACmB,GAAG,GAAG,KAAK,GAAG,KAAK;EAEhE,OACE9B,KAAA,CAAAgC,aAAA,CAACzB,aAAa;IAACgB,aAAa,EAAEA,aAAc;IAACF,KAAK,EAAEA,KAAM;IAACY,IAAI,EAAET,IAAI,IAAIZ,UAAU,CAACY,IAAI;EAAE,GACxFxB,KAAA,CAAAgC,aAAA,CAAC5B,cAAc;IAACgB,MAAM,EAAEZ,SAAS,CAACY,MAAM,CAAE;IAACX,YAAY,EAAEA;EAAa,GACpET,KAAA,CAAAgC,aAAA,CAAC1B,iBAAiB;IAChB4B,GAAG,EAAElB,YAAa;IAClBmB,OAAO,EAAE;MAAEP,YAAY;MAAEG;IAAW;EAAE,GAEtC/B,KAAA,CAAAgC,aAAA,CAAC7B,cAAc;IAACsB,MAAM,EAAEA;EAAO,GAC5BH,YAAY,GACXtB,KAAA,CAAAgC,aAAA;IAAKI,SAAS,EAAC;EAAmG,GAChHpC,KAAA,CAAAgC,aAAA,CAAC3B,UAAU,MAAE,CACV,CAAC,GAGJL,KAAA,CAAAgC,aAAA,CAACtB,IAAI;IACHO,WAAW,EAAEA,WAAY;IACzBC,QAAQ,EAAEA,QAAS;IACnBC,OAAO,EAAEA;EAAQ,CAClB,CAES,CACC,CACL,CACH,CAAC;AAEpB,CAAC;AAED,SAASN,oBAAoB","ignoreList":[]}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { Size } from '@oanda/labs-widget-common';
|
|
2
|
+
import { ColumnsNames, View } from './types';
|
|
2
3
|
const headerConfig = {
|
|
3
4
|
[ColumnsNames.INSTRUMENT]: {
|
|
4
5
|
displayName: 'instrument',
|
|
@@ -25,5 +26,9 @@ const headerConfig = {
|
|
|
25
26
|
additionalStyles: 'lw-text-right lw-min-w-[50px]'
|
|
26
27
|
}
|
|
27
28
|
};
|
|
28
|
-
|
|
29
|
+
const sizeConfig = {
|
|
30
|
+
[View.CARDS]: Size.MOBILE,
|
|
31
|
+
[View.TABLE]: Size.DESKTOP
|
|
32
|
+
};
|
|
33
|
+
export { headerConfig, sizeConfig };
|
|
29
34
|
//# sourceMappingURL=config.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","names":["ColumnsNames","headerConfig","INSTRUMENT","displayName","additionalStyles","SELL","BUY","DAILY_CHANGE","CHART","SPREAD"],"sources":["../../../src/LiveRatesTableWidget/config.ts"],"sourcesContent":["import { ColumnsNames } from './types';\n\nconst headerConfig = {\n [ColumnsNames.INSTRUMENT]: {\n displayName: 'instrument',\n additionalStyles: 'lw-text-left lw-min-w-[130px]',\n },\n [ColumnsNames.SELL]: {\n displayName: 'sell',\n additionalStyles: 'lw-text-right lw-min-w-[75px] lw-pr-4',\n },\n [ColumnsNames.BUY]: {\n displayName: 'buy',\n additionalStyles: 'lw-text-right lw-min-w-[75px] lw-pr-4',\n },\n [ColumnsNames.DAILY_CHANGE]: {\n displayName: 'daily_percent_change',\n additionalStyles: 'lw-text-right lw-min-w-[80px]',\n },\n [ColumnsNames.CHART]: {\n displayName: '24h_chart',\n additionalStyles: 'lw-text-center lw-min-w-[100px]',\n },\n [ColumnsNames.SPREAD]: {\n displayName: 'spread',\n additionalStyles: 'lw-text-right lw-min-w-[50px]',\n },\n};\n\nexport {\n headerConfig,\n};\n"],"mappings":"AAAA,SAASA,YAAY,QAAQ,SAAS;
|
|
1
|
+
{"version":3,"file":"config.js","names":["Size","ColumnsNames","View","headerConfig","INSTRUMENT","displayName","additionalStyles","SELL","BUY","DAILY_CHANGE","CHART","SPREAD","sizeConfig","CARDS","MOBILE","TABLE","DESKTOP"],"sources":["../../../src/LiveRatesTableWidget/config.ts"],"sourcesContent":["import { Size } from '@oanda/labs-widget-common';\nimport { ColumnsNames, View } from './types';\n\nconst headerConfig = {\n [ColumnsNames.INSTRUMENT]: {\n displayName: 'instrument',\n additionalStyles: 'lw-text-left lw-min-w-[130px]',\n },\n [ColumnsNames.SELL]: {\n displayName: 'sell',\n additionalStyles: 'lw-text-right lw-min-w-[75px] lw-pr-4',\n },\n [ColumnsNames.BUY]: {\n displayName: 'buy',\n additionalStyles: 'lw-text-right lw-min-w-[75px] lw-pr-4',\n },\n [ColumnsNames.DAILY_CHANGE]: {\n displayName: 'daily_percent_change',\n additionalStyles: 'lw-text-right lw-min-w-[80px]',\n },\n [ColumnsNames.CHART]: {\n displayName: '24h_chart',\n additionalStyles: 'lw-text-center lw-min-w-[100px]',\n },\n [ColumnsNames.SPREAD]: {\n displayName: 'spread',\n additionalStyles: 'lw-text-right lw-min-w-[50px]',\n },\n};\n\nconst sizeConfig = {\n [View.CARDS]: Size.MOBILE,\n [View.TABLE]: Size.DESKTOP,\n};\n\nexport {\n headerConfig,\n sizeConfig,\n};\n"],"mappings":"AAAA,SAASA,IAAI,QAAQ,2BAA2B;AAChD,SAASC,YAAY,EAAEC,IAAI,QAAQ,SAAS;AAE5C,MAAMC,YAAY,GAAG;EACnB,CAACF,YAAY,CAACG,UAAU,GAAG;IACzBC,WAAW,EAAE,YAAY;IACzBC,gBAAgB,EAAE;EACpB,CAAC;EACD,CAACL,YAAY,CAACM,IAAI,GAAG;IACnBF,WAAW,EAAE,MAAM;IACnBC,gBAAgB,EAAE;EACpB,CAAC;EACD,CAACL,YAAY,CAACO,GAAG,GAAG;IAClBH,WAAW,EAAE,KAAK;IAClBC,gBAAgB,EAAE;EACpB,CAAC;EACD,CAACL,YAAY,CAACQ,YAAY,GAAG;IAC3BJ,WAAW,EAAE,sBAAsB;IACnCC,gBAAgB,EAAE;EACpB,CAAC;EACD,CAACL,YAAY,CAACS,KAAK,GAAG;IACpBL,WAAW,EAAE,WAAW;IACxBC,gBAAgB,EAAE;EACpB,CAAC;EACD,CAACL,YAAY,CAACU,MAAM,GAAG;IACrBN,WAAW,EAAE,QAAQ;IACrBC,gBAAgB,EAAE;EACpB;AACF,CAAC;AAED,MAAMM,UAAU,GAAG;EACjB,CAACV,IAAI,CAACW,KAAK,GAAGb,IAAI,CAACc,MAAM;EACzB,CAACZ,IAAI,CAACa,KAAK,GAAGf,IAAI,CAACgB;AACrB,CAAC;AAED,SACEb,YAAY,EACZS,UAAU","ignoreList":[]}
|
|
@@ -16,7 +16,8 @@ liveRatesTableParamsElements.forEach(element => {
|
|
|
16
16
|
instruments,
|
|
17
17
|
columns,
|
|
18
18
|
division,
|
|
19
|
-
locale
|
|
19
|
+
locale,
|
|
20
|
+
view
|
|
20
21
|
} = JSON.parse(params);
|
|
21
22
|
const isParamError = validateToolParams({
|
|
22
23
|
division,
|
|
@@ -50,7 +51,8 @@ liveRatesTableParamsElements.forEach(element => {
|
|
|
50
51
|
columns: columns,
|
|
51
52
|
locale: locale,
|
|
52
53
|
theme: mode,
|
|
53
|
-
isParamError: isParamError
|
|
54
|
+
isParamError: isParamError,
|
|
55
|
+
view: view
|
|
54
56
|
}));
|
|
55
57
|
});
|
|
56
58
|
//# sourceMappingURL=render.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"render.js","names":["React","createRoot","validateLocale","validateToolParams","LiveRatesTableWidget","Division","graphqlUrl","liveRatesUrl","window","widgetsConfig","liveRatesTableParamsElements","document","querySelectorAll","forEach","element","root","params","getAttribute","mode","instruments","columns","division","locale","JSON","parse","isParamError","name","valueCheck","value","Object","values","includes","length","render","createElement","theme"],"sources":["../../../src/LiveRatesTableWidget/render.tsx"],"sourcesContent":["import React from 'react';\nimport { createRoot } from 'react-dom/client';\nimport { Theme, validateLocale, validateToolParams } from '@oanda/labs-widget-common';\nimport { LiveRatesTableWidget } from './LiveRatesTableWidget';\nimport { Division } from '../gql/types/graphql';\n\nconst {\n graphqlUrl,\n liveRatesUrl,\n} = window.widgetsConfig || {};\n\nconst liveRatesTableParamsElements = document.querySelectorAll('div[data-live-rates-table-params]');\n\nliveRatesTableParamsElements.forEach((element) => {\n const root = createRoot(element);\n const params = element.getAttribute('data-live-rates-table-params');\n const mode = element.getAttribute('data-mode');\n const {\n instruments, columns, division, locale,\n } = JSON.parse(params as string);\n\n const isParamError = validateToolParams({\n division, locale, graphqlUrl, liveRatesUrl, instruments, columns,\n }, [{\n name: 'locale',\n valueCheck: (value) => validateLocale(value),\n }, {\n name: 'division',\n valueCheck: (value) => Object.values(Division).includes(value),\n }, {\n name: 'instruments',\n valueCheck: (value) => (value as string[]).length > 0 && (value as string[]).length <= 10,\n }, {\n name: 'columns',\n valueCheck: (value) => (value as string[]).length > 0,\n }, {\n name: 'graphqlUrl',\n }, {\n name: 'liveRatesUrl',\n }]);\n\n root.render(\n <LiveRatesTableWidget\n graphqlUrl={graphqlUrl}\n liveRatesUrl={liveRatesUrl}\n division={division}\n instruments={instruments}\n columns={columns}\n locale={locale}\n theme={mode as Theme}\n isParamError={isParamError}\n />,\n );\n});\n"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAASC,UAAU,QAAQ,kBAAkB;AAC7C,SAAgBC,cAAc,EAAEC,kBAAkB,QAAQ,2BAA2B;AACrF,SAASC,oBAAoB,QAAQ,wBAAwB;AAC7D,SAASC,QAAQ,QAAQ,sBAAsB;AAE/C,MAAM;EACJC,UAAU;EACVC;AACF,CAAC,GAAGC,MAAM,CAACC,aAAa,IAAI,CAAC,CAAC;AAE9B,MAAMC,4BAA4B,GAAGC,QAAQ,CAACC,gBAAgB,CAAC,mCAAmC,CAAC;AAEnGF,4BAA4B,CAACG,OAAO,CAAEC,OAAO,IAAK;EAChD,MAAMC,IAAI,GAAGd,UAAU,CAACa,OAAO,CAAC;EAChC,MAAME,MAAM,GAAGF,OAAO,CAACG,YAAY,CAAC,8BAA8B,CAAC;EACnE,MAAMC,IAAI,GAAGJ,OAAO,CAACG,YAAY,CAAC,WAAW,CAAC;EAC9C,MAAM;IACJE,WAAW;IAAEC,OAAO;IAAEC,QAAQ;IAAEC;
|
|
1
|
+
{"version":3,"file":"render.js","names":["React","createRoot","validateLocale","validateToolParams","LiveRatesTableWidget","Division","graphqlUrl","liveRatesUrl","window","widgetsConfig","liveRatesTableParamsElements","document","querySelectorAll","forEach","element","root","params","getAttribute","mode","instruments","columns","division","locale","view","JSON","parse","isParamError","name","valueCheck","value","Object","values","includes","length","render","createElement","theme"],"sources":["../../../src/LiveRatesTableWidget/render.tsx"],"sourcesContent":["import React from 'react';\nimport { createRoot } from 'react-dom/client';\nimport { Theme, validateLocale, validateToolParams } from '@oanda/labs-widget-common';\nimport { LiveRatesTableWidget } from './LiveRatesTableWidget';\nimport { Division } from '../gql/types/graphql';\n\nconst {\n graphqlUrl,\n liveRatesUrl,\n} = window.widgetsConfig || {};\n\nconst liveRatesTableParamsElements = document.querySelectorAll('div[data-live-rates-table-params]');\n\nliveRatesTableParamsElements.forEach((element) => {\n const root = createRoot(element);\n const params = element.getAttribute('data-live-rates-table-params');\n const mode = element.getAttribute('data-mode');\n const {\n instruments, columns, division, locale, view,\n } = JSON.parse(params as string);\n\n const isParamError = validateToolParams({\n division, locale, graphqlUrl, liveRatesUrl, instruments, columns,\n }, [{\n name: 'locale',\n valueCheck: (value) => validateLocale(value),\n }, {\n name: 'division',\n valueCheck: (value) => Object.values(Division).includes(value),\n }, {\n name: 'instruments',\n valueCheck: (value) => (value as string[]).length > 0 && (value as string[]).length <= 10,\n }, {\n name: 'columns',\n valueCheck: (value) => (value as string[]).length > 0,\n }, {\n name: 'graphqlUrl',\n }, {\n name: 'liveRatesUrl',\n }]);\n\n root.render(\n <LiveRatesTableWidget\n graphqlUrl={graphqlUrl}\n liveRatesUrl={liveRatesUrl}\n division={division}\n instruments={instruments}\n columns={columns}\n locale={locale}\n theme={mode as Theme}\n isParamError={isParamError}\n view={view}\n />,\n );\n});\n"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAASC,UAAU,QAAQ,kBAAkB;AAC7C,SAAgBC,cAAc,EAAEC,kBAAkB,QAAQ,2BAA2B;AACrF,SAASC,oBAAoB,QAAQ,wBAAwB;AAC7D,SAASC,QAAQ,QAAQ,sBAAsB;AAE/C,MAAM;EACJC,UAAU;EACVC;AACF,CAAC,GAAGC,MAAM,CAACC,aAAa,IAAI,CAAC,CAAC;AAE9B,MAAMC,4BAA4B,GAAGC,QAAQ,CAACC,gBAAgB,CAAC,mCAAmC,CAAC;AAEnGF,4BAA4B,CAACG,OAAO,CAAEC,OAAO,IAAK;EAChD,MAAMC,IAAI,GAAGd,UAAU,CAACa,OAAO,CAAC;EAChC,MAAME,MAAM,GAAGF,OAAO,CAACG,YAAY,CAAC,8BAA8B,CAAC;EACnE,MAAMC,IAAI,GAAGJ,OAAO,CAACG,YAAY,CAAC,WAAW,CAAC;EAC9C,MAAM;IACJE,WAAW;IAAEC,OAAO;IAAEC,QAAQ;IAAEC,MAAM;IAAEC;EAC1C,CAAC,GAAGC,IAAI,CAACC,KAAK,CAACT,MAAgB,CAAC;EAEhC,MAAMU,YAAY,GAAGvB,kBAAkB,CAAC;IACtCkB,QAAQ;IAAEC,MAAM;IAAEhB,UAAU;IAAEC,YAAY;IAAEY,WAAW;IAAEC;EAC3D,CAAC,EAAE,CAAC;IACFO,IAAI,EAAE,QAAQ;IACdC,UAAU,EAAGC,KAAK,IAAK3B,cAAc,CAAC2B,KAAK;EAC7C,CAAC,EAAE;IACDF,IAAI,EAAE,UAAU;IAChBC,UAAU,EAAGC,KAAK,IAAKC,MAAM,CAACC,MAAM,CAAC1B,QAAQ,CAAC,CAAC2B,QAAQ,CAACH,KAAK;EAC/D,CAAC,EAAE;IACDF,IAAI,EAAE,aAAa;IACnBC,UAAU,EAAGC,KAAK,IAAMA,KAAK,CAAcI,MAAM,GAAG,CAAC,IAAKJ,KAAK,CAAcI,MAAM,IAAI;EACzF,CAAC,EAAE;IACDN,IAAI,EAAE,SAAS;IACfC,UAAU,EAAGC,KAAK,IAAMA,KAAK,CAAcI,MAAM,GAAG;EACtD,CAAC,EAAE;IACDN,IAAI,EAAE;EACR,CAAC,EAAE;IACDA,IAAI,EAAE;EACR,CAAC,CAAC,CAAC;EAEHZ,IAAI,CAACmB,MAAM,CACTlC,KAAA,CAAAmC,aAAA,CAAC/B,oBAAoB;IACnBE,UAAU,EAAEA,UAAW;IACvBC,YAAY,EAAEA,YAAa;IAC3Bc,QAAQ,EAAEA,QAAS;IACnBF,WAAW,EAAEA,WAAY;IACzBC,OAAO,EAAEA,OAAQ;IACjBE,MAAM,EAAEA,MAAO;IACfc,KAAK,EAAElB,IAAc;IACrBQ,YAAY,EAAEA,YAAa;IAC3BH,IAAI,EAAEA;EAAK,CACZ,CACH,CAAC;AACH,CAAC,CAAC","ignoreList":[]}
|
|
@@ -1,5 +1,10 @@
|
|
|
1
1
|
export { Locale } from '@oanda/mono-i18n';
|
|
2
2
|
export { Division } from '../gql/types/graphql';
|
|
3
|
+
export let View = function (View) {
|
|
4
|
+
View["TABLE"] = "table";
|
|
5
|
+
View["CARDS"] = "cards";
|
|
6
|
+
return View;
|
|
7
|
+
}({});
|
|
3
8
|
export let ColumnsNames = function (ColumnsNames) {
|
|
4
9
|
ColumnsNames["INSTRUMENT"] = "instrument";
|
|
5
10
|
ColumnsNames["SELL"] = "sell";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","names":["Locale","Division","ColumnsNames"],"sources":["../../../src/LiveRatesTableWidget/types.tsx"],"sourcesContent":["import { Locale } from '@oanda/mono-i18n';\nimport { Theme } from '@oanda/labs-widget-common';\nimport { Division } from '../gql/types/graphql';\n\nexport { Locale } from '@oanda/mono-i18n';\nexport { Division } from '../gql/types/graphql';\n\nexport interface LiveRatesTableConfig {\n graphqlUrl: string;\n division: Division;\n liveRatesUrl: string;\n instruments: string[];\n columns?: ColumnsNames[];\n locale: Locale;\n theme?: Theme;\n isParamError?: boolean;\n removePadding?: boolean;\n}\n\nexport enum ColumnsNames {\n INSTRUMENT = 'instrument',\n SELL = 'sell',\n BUY = 'buy',\n DAILY_CHANGE = 'dailyChange',\n CHART = 'chart',\n SPREAD = 'spread',\n}\n\nexport interface MainProps {\n instruments: string[];\n division: Division;\n columns?: ColumnsNames[];\n}\n\nexport interface Sentiment {\n shortPercent: number;\n longPercent: number;\n}\n\nexport type EmptyRecord = Record<any, never>;\n\nexport interface DataRecord {\n [key: string]: string | number | undefined;\n instrument: string;\n displayName: string;\n buy?: number;\n sell?: number;\n spread?: number;\n sellPriceMovement?: number;\n buyPriceMovement?: number;\n dailyPercentChange?: string;\n displayPrecision?: number;\n}\n\nexport interface RowWithDataProps {\n loading: boolean;\n record: DataRecord;\n hasBackgroundColor: boolean;\n target: EventTarget | null;\n activeColumns: ColumnsNames[];\n division: Division;\n isScrolled?: boolean;\n}\n\nexport interface CardWithDataProps {\n index: number;\n isLoading?: boolean;\n isError?: boolean;\n record: DataRecord;\n target: EventTarget | null;\n activeColumns: ColumnsNames[];\n division: Division;\n isLast?: boolean;\n}\n"],"mappings":"AAIA,SAASA,MAAM,QAAQ,kBAAkB;AACzC,SAASC,QAAQ,QAAQ,sBAAsB;
|
|
1
|
+
{"version":3,"file":"types.js","names":["Locale","Division","View","ColumnsNames"],"sources":["../../../src/LiveRatesTableWidget/types.tsx"],"sourcesContent":["import { Locale } from '@oanda/mono-i18n';\nimport { Theme } from '@oanda/labs-widget-common';\nimport { Division } from '../gql/types/graphql';\n\nexport { Locale } from '@oanda/mono-i18n';\nexport { Division } from '../gql/types/graphql';\n\nexport enum View {\n TABLE = 'table',\n CARDS = 'cards',\n}\n\nexport interface LiveRatesTableConfig {\n graphqlUrl: string;\n division: Division;\n liveRatesUrl: string;\n instruments: string[];\n columns?: ColumnsNames[];\n locale: Locale;\n theme?: Theme;\n isParamError?: boolean;\n removePadding?: boolean;\n view?: View;\n}\n\nexport enum ColumnsNames {\n INSTRUMENT = 'instrument',\n SELL = 'sell',\n BUY = 'buy',\n DAILY_CHANGE = 'dailyChange',\n CHART = 'chart',\n SPREAD = 'spread',\n}\n\nexport interface MainProps {\n instruments: string[];\n division: Division;\n columns?: ColumnsNames[];\n}\n\nexport interface Sentiment {\n shortPercent: number;\n longPercent: number;\n}\n\nexport type EmptyRecord = Record<any, never>;\n\nexport interface DataRecord {\n [key: string]: string | number | undefined;\n instrument: string;\n displayName: string;\n buy?: number;\n sell?: number;\n spread?: number;\n sellPriceMovement?: number;\n buyPriceMovement?: number;\n dailyPercentChange?: string;\n displayPrecision?: number;\n}\n\nexport interface RowWithDataProps {\n loading: boolean;\n record: DataRecord;\n hasBackgroundColor: boolean;\n target: EventTarget | null;\n activeColumns: ColumnsNames[];\n division: Division;\n isScrolled?: boolean;\n}\n\nexport interface CardWithDataProps {\n index: number;\n isLoading?: boolean;\n isError?: boolean;\n record: DataRecord;\n target: EventTarget | null;\n activeColumns: ColumnsNames[];\n division: Division;\n isLast?: boolean;\n}\n"],"mappings":"AAIA,SAASA,MAAM,QAAQ,kBAAkB;AACzC,SAASC,QAAQ,QAAQ,sBAAsB;AAE/C,WAAYC,IAAI,aAAJA,IAAI;EAAJA,IAAI;EAAJA,IAAI;EAAA,OAAJA,IAAI;AAAA;AAkBhB,WAAYC,YAAY,aAAZA,YAAY;EAAZA,YAAY;EAAZA,YAAY;EAAZA,YAAY;EAAZA,YAAY;EAAZA,YAAY;EAAZA,YAAY;EAAA,OAAZA,YAAY;AAAA","ignoreList":[]}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import { LiveRatesTableConfig } from './types';
|
|
3
|
-
declare const LiveRatesTableWidget: ({ graphqlUrl, liveRatesUrl, instruments, division, columns, locale, theme, isParamError, removePadding, }: LiveRatesTableConfig) => React.JSX.Element;
|
|
3
|
+
declare const LiveRatesTableWidget: ({ graphqlUrl, liveRatesUrl, instruments, division, columns, locale, theme, isParamError, removePadding, view, }: LiveRatesTableConfig) => React.JSX.Element;
|
|
4
4
|
export { LiveRatesTableWidget };
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { Size } from '@oanda/labs-widget-common';
|
|
1
2
|
declare const headerConfig: {
|
|
2
3
|
instrument: {
|
|
3
4
|
displayName: string;
|
|
@@ -24,4 +25,8 @@ declare const headerConfig: {
|
|
|
24
25
|
additionalStyles: string;
|
|
25
26
|
};
|
|
26
27
|
};
|
|
27
|
-
|
|
28
|
+
declare const sizeConfig: {
|
|
29
|
+
cards: Size;
|
|
30
|
+
table: Size;
|
|
31
|
+
};
|
|
32
|
+
export { headerConfig, sizeConfig, };
|
|
@@ -3,6 +3,10 @@ import { Theme } from '@oanda/labs-widget-common';
|
|
|
3
3
|
import { Division } from '../gql/types/graphql';
|
|
4
4
|
export { Locale } from '@oanda/mono-i18n';
|
|
5
5
|
export { Division } from '../gql/types/graphql';
|
|
6
|
+
export declare enum View {
|
|
7
|
+
TABLE = "table",
|
|
8
|
+
CARDS = "cards"
|
|
9
|
+
}
|
|
6
10
|
export interface LiveRatesTableConfig {
|
|
7
11
|
graphqlUrl: string;
|
|
8
12
|
division: Division;
|
|
@@ -13,6 +17,7 @@ export interface LiveRatesTableConfig {
|
|
|
13
17
|
theme?: Theme;
|
|
14
18
|
isParamError?: boolean;
|
|
15
19
|
removePadding?: boolean;
|
|
20
|
+
view?: View;
|
|
16
21
|
}
|
|
17
22
|
export declare enum ColumnsNames {
|
|
18
23
|
INSTRUMENT = "instrument",
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@oanda/labs-live-rates-table-widget",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.27",
|
|
4
4
|
"description": "Labs Live Rates Table Widget",
|
|
5
5
|
"main": "dist/main/index.js",
|
|
6
6
|
"module": "dist/module/index.js",
|
|
@@ -12,7 +12,7 @@
|
|
|
12
12
|
"author": "OANDA",
|
|
13
13
|
"license": "UNLICENSED",
|
|
14
14
|
"dependencies": {
|
|
15
|
-
"@oanda/labs-widget-common": "^1.0.
|
|
15
|
+
"@oanda/labs-widget-common": "^1.0.161",
|
|
16
16
|
"@oanda/mono-i18n": "10.0.1",
|
|
17
17
|
"graphql": "16.8.1"
|
|
18
18
|
},
|
|
@@ -20,5 +20,5 @@
|
|
|
20
20
|
"@graphql-codegen/cli": "5.0.0",
|
|
21
21
|
"@graphql-codegen/client-preset": "4.1.0"
|
|
22
22
|
},
|
|
23
|
-
"gitHead": "
|
|
23
|
+
"gitHead": "7270a2445f422d216bb6a35bc4e5a7edfbf43f7d"
|
|
24
24
|
}
|
|
@@ -7,6 +7,7 @@ import {
|
|
|
7
7
|
import { translations } from '../translations';
|
|
8
8
|
import { Main } from './Main';
|
|
9
9
|
import { Division, LiveRatesTableConfig } from './types';
|
|
10
|
+
import { sizeConfig } from './config';
|
|
10
11
|
|
|
11
12
|
const LiveRatesTableWidget = ({
|
|
12
13
|
graphqlUrl,
|
|
@@ -18,6 +19,7 @@ const LiveRatesTableWidget = ({
|
|
|
18
19
|
theme,
|
|
19
20
|
isParamError,
|
|
20
21
|
removePadding,
|
|
22
|
+
view,
|
|
21
23
|
}: LiveRatesTableConfig) => {
|
|
22
24
|
const client = new ApolloClient({
|
|
23
25
|
uri: graphqlUrl,
|
|
@@ -28,7 +30,7 @@ const LiveRatesTableWidget = ({
|
|
|
28
30
|
const dataSource = divisionCode === Division.Ogm ? 'MT5' : 'V20';
|
|
29
31
|
|
|
30
32
|
return (
|
|
31
|
-
<ThemeProvider removePadding={removePadding} theme={theme}>
|
|
33
|
+
<ThemeProvider removePadding={removePadding} theme={theme} size={view && sizeConfig[view]}>
|
|
32
34
|
<LocaleProvider locale={getLocale(locale)} translations={translations}>
|
|
33
35
|
<LiveRatesProvider
|
|
34
36
|
url={liveRatesUrl}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { Size } from '@oanda/labs-widget-common';
|
|
2
|
+
import { ColumnsNames, View } from './types';
|
|
2
3
|
|
|
3
4
|
const headerConfig = {
|
|
4
5
|
[ColumnsNames.INSTRUMENT]: {
|
|
@@ -27,6 +28,12 @@ const headerConfig = {
|
|
|
27
28
|
},
|
|
28
29
|
};
|
|
29
30
|
|
|
31
|
+
const sizeConfig = {
|
|
32
|
+
[View.CARDS]: Size.MOBILE,
|
|
33
|
+
[View.TABLE]: Size.DESKTOP,
|
|
34
|
+
};
|
|
35
|
+
|
|
30
36
|
export {
|
|
31
37
|
headerConfig,
|
|
38
|
+
sizeConfig,
|
|
32
39
|
};
|
|
@@ -16,7 +16,7 @@ liveRatesTableParamsElements.forEach((element) => {
|
|
|
16
16
|
const params = element.getAttribute('data-live-rates-table-params');
|
|
17
17
|
const mode = element.getAttribute('data-mode');
|
|
18
18
|
const {
|
|
19
|
-
instruments, columns, division, locale,
|
|
19
|
+
instruments, columns, division, locale, view,
|
|
20
20
|
} = JSON.parse(params as string);
|
|
21
21
|
|
|
22
22
|
const isParamError = validateToolParams({
|
|
@@ -49,6 +49,7 @@ liveRatesTableParamsElements.forEach((element) => {
|
|
|
49
49
|
locale={locale}
|
|
50
50
|
theme={mode as Theme}
|
|
51
51
|
isParamError={isParamError}
|
|
52
|
+
view={view}
|
|
52
53
|
/>,
|
|
53
54
|
);
|
|
54
55
|
});
|
|
@@ -5,6 +5,11 @@ import { Division } from '../gql/types/graphql';
|
|
|
5
5
|
export { Locale } from '@oanda/mono-i18n';
|
|
6
6
|
export { Division } from '../gql/types/graphql';
|
|
7
7
|
|
|
8
|
+
export enum View {
|
|
9
|
+
TABLE = 'table',
|
|
10
|
+
CARDS = 'cards',
|
|
11
|
+
}
|
|
12
|
+
|
|
8
13
|
export interface LiveRatesTableConfig {
|
|
9
14
|
graphqlUrl: string;
|
|
10
15
|
division: Division;
|
|
@@ -15,6 +20,7 @@ export interface LiveRatesTableConfig {
|
|
|
15
20
|
theme?: Theme;
|
|
16
21
|
isParamError?: boolean;
|
|
17
22
|
removePadding?: boolean;
|
|
23
|
+
view?: View;
|
|
18
24
|
}
|
|
19
25
|
|
|
20
26
|
export enum ColumnsNames {
|