@oanda/labs-ticker-tape-widget 1.0.27 → 1.0.29
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 +236 -0
- package/dist/main/TickerTapeWidget/TickerTapeWidget.js +29 -29
- package/dist/main/TickerTapeWidget/TickerTapeWidget.js.map +1 -1
- package/dist/main/TickerTapeWidget/ValidationWrapper.js +2 -4
- package/dist/main/TickerTapeWidget/ValidationWrapper.js.map +1 -1
- package/dist/module/TickerTapeWidget/TickerTapeWidget.js +30 -29
- package/dist/module/TickerTapeWidget/TickerTapeWidget.js.map +1 -1
- package/dist/module/TickerTapeWidget/ValidationWrapper.js +3 -3
- package/dist/module/TickerTapeWidget/ValidationWrapper.js.map +1 -1
- package/package.json +3 -3
- package/src/TickerTapeWidget/TickerTapeWidget.tsx +31 -29
- package/src/TickerTapeWidget/ValidationWrapper.tsx +3 -3
- package/test/Main.test.tsx +12 -10
package/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,242 @@
|
|
|
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.29 (2024-12-11)
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
## 1.0.172 (2024-11-29)
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
## 1.0.171 (2024-11-28)
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
## 1.0.170 (2024-11-28)
|
|
19
|
+
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
## 1.0.169 (2024-11-20)
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
|
|
26
|
+
## 1.0.168 (2024-11-19)
|
|
27
|
+
|
|
28
|
+
|
|
29
|
+
|
|
30
|
+
## 1.0.167 (2024-10-14)
|
|
31
|
+
|
|
32
|
+
|
|
33
|
+
|
|
34
|
+
## 1.0.166 (2024-10-07)
|
|
35
|
+
|
|
36
|
+
|
|
37
|
+
|
|
38
|
+
## 1.0.165 (2024-10-03)
|
|
39
|
+
|
|
40
|
+
|
|
41
|
+
|
|
42
|
+
## 1.0.164 (2024-09-26)
|
|
43
|
+
|
|
44
|
+
|
|
45
|
+
|
|
46
|
+
## 1.0.163 (2024-09-18)
|
|
47
|
+
|
|
48
|
+
|
|
49
|
+
|
|
50
|
+
## 1.0.162 (2024-09-12)
|
|
51
|
+
|
|
52
|
+
|
|
53
|
+
|
|
54
|
+
## 1.0.161 (2024-09-11)
|
|
55
|
+
|
|
56
|
+
|
|
57
|
+
|
|
58
|
+
## 1.0.160 (2024-09-10)
|
|
59
|
+
|
|
60
|
+
|
|
61
|
+
|
|
62
|
+
## 1.0.159 (2024-09-09)
|
|
63
|
+
|
|
64
|
+
|
|
65
|
+
|
|
66
|
+
## 1.0.158 (2024-09-04)
|
|
67
|
+
|
|
68
|
+
|
|
69
|
+
|
|
70
|
+
## 1.0.157 (2024-09-04)
|
|
71
|
+
|
|
72
|
+
|
|
73
|
+
|
|
74
|
+
## 1.0.156 (2024-09-02)
|
|
75
|
+
|
|
76
|
+
|
|
77
|
+
|
|
78
|
+
## 1.0.155 (2024-08-29)
|
|
79
|
+
|
|
80
|
+
|
|
81
|
+
|
|
82
|
+
## 1.0.154 (2024-08-29)
|
|
83
|
+
|
|
84
|
+
|
|
85
|
+
|
|
86
|
+
## 1.0.153 (2024-08-23)
|
|
87
|
+
|
|
88
|
+
|
|
89
|
+
|
|
90
|
+
## 1.0.152 (2024-08-23)
|
|
91
|
+
|
|
92
|
+
|
|
93
|
+
|
|
94
|
+
## 1.0.151 (2024-08-20)
|
|
95
|
+
|
|
96
|
+
|
|
97
|
+
|
|
98
|
+
## 1.0.150 (2024-08-19)
|
|
99
|
+
|
|
100
|
+
|
|
101
|
+
|
|
102
|
+
## 1.0.149 (2024-08-07)
|
|
103
|
+
|
|
104
|
+
|
|
105
|
+
|
|
106
|
+
## 1.0.148 (2024-08-01)
|
|
107
|
+
|
|
108
|
+
|
|
109
|
+
|
|
110
|
+
## 1.0.147 (2024-08-01)
|
|
111
|
+
|
|
112
|
+
|
|
113
|
+
|
|
114
|
+
## 1.0.146 (2024-07-26)
|
|
115
|
+
|
|
116
|
+
|
|
117
|
+
|
|
118
|
+
## 1.0.145 (2024-07-25)
|
|
119
|
+
|
|
120
|
+
**Note:** Version bump only for package @oanda/labs-ticker-tape-widget
|
|
121
|
+
|
|
122
|
+
|
|
123
|
+
|
|
124
|
+
|
|
125
|
+
|
|
126
|
+
## 1.0.28 (2024-11-29)
|
|
127
|
+
|
|
128
|
+
|
|
129
|
+
|
|
130
|
+
## 1.0.171 (2024-11-28)
|
|
131
|
+
|
|
132
|
+
|
|
133
|
+
|
|
134
|
+
## 1.0.170 (2024-11-28)
|
|
135
|
+
|
|
136
|
+
|
|
137
|
+
|
|
138
|
+
## 1.0.169 (2024-11-20)
|
|
139
|
+
|
|
140
|
+
|
|
141
|
+
|
|
142
|
+
## 1.0.168 (2024-11-19)
|
|
143
|
+
|
|
144
|
+
|
|
145
|
+
|
|
146
|
+
## 1.0.167 (2024-10-14)
|
|
147
|
+
|
|
148
|
+
|
|
149
|
+
|
|
150
|
+
## 1.0.166 (2024-10-07)
|
|
151
|
+
|
|
152
|
+
|
|
153
|
+
|
|
154
|
+
## 1.0.165 (2024-10-03)
|
|
155
|
+
|
|
156
|
+
|
|
157
|
+
|
|
158
|
+
## 1.0.164 (2024-09-26)
|
|
159
|
+
|
|
160
|
+
|
|
161
|
+
|
|
162
|
+
## 1.0.163 (2024-09-18)
|
|
163
|
+
|
|
164
|
+
|
|
165
|
+
|
|
166
|
+
## 1.0.162 (2024-09-12)
|
|
167
|
+
|
|
168
|
+
|
|
169
|
+
|
|
170
|
+
## 1.0.161 (2024-09-11)
|
|
171
|
+
|
|
172
|
+
|
|
173
|
+
|
|
174
|
+
## 1.0.160 (2024-09-10)
|
|
175
|
+
|
|
176
|
+
|
|
177
|
+
|
|
178
|
+
## 1.0.159 (2024-09-09)
|
|
179
|
+
|
|
180
|
+
|
|
181
|
+
|
|
182
|
+
## 1.0.158 (2024-09-04)
|
|
183
|
+
|
|
184
|
+
|
|
185
|
+
|
|
186
|
+
## 1.0.157 (2024-09-04)
|
|
187
|
+
|
|
188
|
+
|
|
189
|
+
|
|
190
|
+
## 1.0.156 (2024-09-02)
|
|
191
|
+
|
|
192
|
+
|
|
193
|
+
|
|
194
|
+
## 1.0.155 (2024-08-29)
|
|
195
|
+
|
|
196
|
+
|
|
197
|
+
|
|
198
|
+
## 1.0.154 (2024-08-29)
|
|
199
|
+
|
|
200
|
+
|
|
201
|
+
|
|
202
|
+
## 1.0.153 (2024-08-23)
|
|
203
|
+
|
|
204
|
+
|
|
205
|
+
|
|
206
|
+
## 1.0.152 (2024-08-23)
|
|
207
|
+
|
|
208
|
+
|
|
209
|
+
|
|
210
|
+
## 1.0.151 (2024-08-20)
|
|
211
|
+
|
|
212
|
+
|
|
213
|
+
|
|
214
|
+
## 1.0.150 (2024-08-19)
|
|
215
|
+
|
|
216
|
+
|
|
217
|
+
|
|
218
|
+
## 1.0.149 (2024-08-07)
|
|
219
|
+
|
|
220
|
+
|
|
221
|
+
|
|
222
|
+
## 1.0.148 (2024-08-01)
|
|
223
|
+
|
|
224
|
+
|
|
225
|
+
|
|
226
|
+
## 1.0.147 (2024-08-01)
|
|
227
|
+
|
|
228
|
+
|
|
229
|
+
|
|
230
|
+
## 1.0.146 (2024-07-26)
|
|
231
|
+
|
|
232
|
+
|
|
233
|
+
|
|
234
|
+
## 1.0.145 (2024-07-25)
|
|
235
|
+
|
|
236
|
+
**Note:** Version bump only for package @oanda/labs-ticker-tape-widget
|
|
237
|
+
|
|
238
|
+
|
|
239
|
+
|
|
240
|
+
|
|
241
|
+
|
|
6
242
|
## 1.0.27 (2024-11-28)
|
|
7
243
|
|
|
8
244
|
|
|
@@ -4,15 +4,13 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.TickerTapeWidget = void 0;
|
|
7
|
-
var _react =
|
|
7
|
+
var _react = _interopRequireDefault(require("react"));
|
|
8
8
|
var _client = require("@apollo/client");
|
|
9
|
-
var _monoI18n = require("@oanda/mono-i18n");
|
|
10
9
|
var _labsWidgetCommon = require("@oanda/labs-widget-common");
|
|
11
10
|
var _translations = require("../translations");
|
|
12
11
|
var _types = require("./types");
|
|
13
12
|
var _ValidationWrapper = require("./ValidationWrapper");
|
|
14
|
-
function
|
|
15
|
-
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
|
|
13
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
16
14
|
const TickerTapeWidget = _ref => {
|
|
17
15
|
let {
|
|
18
16
|
graphqlUrl,
|
|
@@ -33,32 +31,34 @@ const TickerTapeWidget = _ref => {
|
|
|
33
31
|
});
|
|
34
32
|
const divisionCode = division === _types.Division.Opt ? _types.Division.Ogm : division;
|
|
35
33
|
const dataSource = divisionCode === _types.Division.Ogm ? 'MT5' : 'V20';
|
|
36
|
-
return _react.default.createElement(
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
options: {
|
|
42
|
-
divisionCode,
|
|
43
|
-
dataSource
|
|
44
|
-
}
|
|
45
|
-
}, _react.default.createElement(_client.ApolloProvider, {
|
|
46
|
-
client: client
|
|
47
|
-
}, _react.default.createElement(_react.Suspense, null, _react.default.createElement(_labsWidgetCommon.ThemeProvider, {
|
|
48
|
-
removePadding: removePadding,
|
|
34
|
+
return _react.default.createElement(_labsWidgetCommon.WidgetProvider, {
|
|
35
|
+
withSuspense: true,
|
|
36
|
+
locale: locale,
|
|
37
|
+
translations: _translations.translations,
|
|
38
|
+
client: client,
|
|
49
39
|
theme: theme,
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
}
|
|
40
|
+
styling: {
|
|
41
|
+
removePadding,
|
|
42
|
+
fitContent: motion === 'none'
|
|
43
|
+
},
|
|
44
|
+
liveRates: {
|
|
45
|
+
url: liveRatesUrl,
|
|
46
|
+
options: {
|
|
47
|
+
divisionCode,
|
|
48
|
+
dataSource
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
}, _react.default.createElement(_labsWidgetCommon.WidgetWrapper, {
|
|
52
|
+
logoLink: logoLink,
|
|
53
|
+
linkArea: "full",
|
|
54
|
+
isParamError: isParamError
|
|
55
|
+
}, _react.default.createElement(_ValidationWrapper.ValidationWrapper, {
|
|
56
|
+
size: size,
|
|
57
|
+
motion: motion,
|
|
58
|
+
instruments: instruments,
|
|
59
|
+
division: division,
|
|
60
|
+
isParamError: isParamError
|
|
61
|
+
})));
|
|
62
62
|
};
|
|
63
63
|
exports.TickerTapeWidget = TickerTapeWidget;
|
|
64
64
|
//# sourceMappingURL=TickerTapeWidget.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TickerTapeWidget.js","names":["_react","
|
|
1
|
+
{"version":3,"file":"TickerTapeWidget.js","names":["_react","_interopRequireDefault","require","_client","_labsWidgetCommon","_translations","_types","_ValidationWrapper","e","__esModule","default","TickerTapeWidget","_ref","graphqlUrl","liveRatesUrl","instruments","division","locale","theme","isParamError","removePadding","size","motion","logoLink","client","ApolloClient","uri","cache","InMemoryCache","divisionCode","Division","Opt","Ogm","dataSource","createElement","WidgetProvider","withSuspense","translations","styling","fitContent","liveRates","url","options","WidgetWrapper","linkArea","ValidationWrapper","exports"],"sources":["../../../src/TickerTapeWidget/TickerTapeWidget.tsx"],"sourcesContent":["import React from 'react';\nimport { ApolloClient, InMemoryCache } from '@apollo/client';\nimport { WidgetProvider, WidgetWrapper } from '@oanda/labs-widget-common';\nimport { translations } from '../translations';\nimport { Division, TickerTapeConfig } from './types';\nimport { ValidationWrapper } from './ValidationWrapper';\n\nconst TickerTapeWidget = ({\n graphqlUrl,\n liveRatesUrl,\n instruments,\n division,\n locale,\n theme,\n isParamError,\n removePadding,\n size,\n motion,\n logoLink,\n}: TickerTapeConfig) => {\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 <WidgetProvider\n withSuspense\n locale={locale}\n translations={translations}\n client={client}\n theme={theme}\n styling={{\n removePadding,\n fitContent: motion === 'none',\n }}\n liveRates={{\n url: liveRatesUrl,\n options: { divisionCode, dataSource },\n }}\n >\n <WidgetWrapper\n logoLink={logoLink}\n linkArea=\"full\"\n isParamError={isParamError}\n >\n <ValidationWrapper\n size={size}\n motion={motion}\n instruments={instruments}\n division={division}\n isParamError={isParamError}\n />\n </WidgetWrapper>\n </WidgetProvider>\n );\n};\n\nexport { TickerTapeWidget };\n"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,OAAA,GAAAD,OAAA;AACA,IAAAE,iBAAA,GAAAF,OAAA;AACA,IAAAG,aAAA,GAAAH,OAAA;AACA,IAAAI,MAAA,GAAAJ,OAAA;AACA,IAAAK,kBAAA,GAAAL,OAAA;AAAwD,SAAAD,uBAAAO,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAExD,MAAMG,gBAAgB,GAAGC,IAAA,IAYD;EAAA,IAZE;IACxBC,UAAU;IACVC,YAAY;IACZC,WAAW;IACXC,QAAQ;IACRC,MAAM;IACNC,KAAK;IACLC,YAAY;IACZC,aAAa;IACbC,IAAI;IACJC,MAAM;IACNC;EACgB,CAAC,GAAAX,IAAA;EACjB,MAAMY,MAAM,GAAG,IAAIC,oBAAY,CAAC;IAC9BC,GAAG,EAAEb,UAAU;IACfc,KAAK,EAAE,IAAIC,qBAAa,CAAC;EAC3B,CAAC,CAAC;EAEF,MAAMC,YAAY,GAAGb,QAAQ,KAAKc,eAAQ,CAACC,GAAG,GAAGD,eAAQ,CAACE,GAAG,GAAGhB,QAAQ;EACxE,MAAMiB,UAAU,GAAGJ,YAAY,KAAKC,eAAQ,CAACE,GAAG,GAAG,KAAK,GAAG,KAAK;EAEhE,OACEhC,MAAA,CAAAU,OAAA,CAAAwB,aAAA,CAAC9B,iBAAA,CAAA+B,cAAc;IACbC,YAAY;IACZnB,MAAM,EAAEA,MAAO;IACfoB,YAAY,EAAEA,0BAAa;IAC3Bb,MAAM,EAAEA,MAAO;IACfN,KAAK,EAAEA,KAAM;IACboB,OAAO,EAAE;MACPlB,aAAa;MACbmB,UAAU,EAAEjB,MAAM,KAAK;IACzB,CAAE;IACFkB,SAAS,EAAE;MACTC,GAAG,EAAE3B,YAAY;MACjB4B,OAAO,EAAE;QAAEb,YAAY;QAAEI;MAAW;IACtC;EAAE,GAEFjC,MAAA,CAAAU,OAAA,CAAAwB,aAAA,CAAC9B,iBAAA,CAAAuC,aAAa;IACZpB,QAAQ,EAAEA,QAAS;IACnBqB,QAAQ,EAAC,MAAM;IACfzB,YAAY,EAAEA;EAAa,GAE3BnB,MAAA,CAAAU,OAAA,CAAAwB,aAAA,CAAC3B,kBAAA,CAAAsC,iBAAiB;IAChBxB,IAAI,EAAEA,IAAK;IACXC,MAAM,EAAEA,MAAO;IACfP,WAAW,EAAEA,WAAY;IACzBC,QAAQ,EAAEA,QAAS;IACnBG,YAAY,EAAEA;EAAa,CAC5B,CACY,CACD,CAAC;AAErB,CAAC;AAAC2B,OAAA,CAAAnC,gBAAA,GAAAA,gBAAA","ignoreList":[]}
|
|
@@ -4,7 +4,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.ValidationWrapper = void 0;
|
|
7
|
-
var _react =
|
|
7
|
+
var _react = _interopRequireDefault(require("react"));
|
|
8
8
|
var _client = require("@apollo/client");
|
|
9
9
|
var _classnames = _interopRequireDefault(require("classnames"));
|
|
10
10
|
var _labsWidgetCommon = require("@oanda/labs-widget-common");
|
|
@@ -12,8 +12,6 @@ var _validateInstruments = require("../gql/validateInstruments");
|
|
|
12
12
|
var _Main = require("./Main");
|
|
13
13
|
var _utils = require("./utils");
|
|
14
14
|
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
15
|
-
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
|
|
16
|
-
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
|
|
17
15
|
const ValidationWrapper = _ref => {
|
|
18
16
|
let {
|
|
19
17
|
instruments,
|
|
@@ -24,7 +22,7 @@ const ValidationWrapper = _ref => {
|
|
|
24
22
|
} = _ref;
|
|
25
23
|
const {
|
|
26
24
|
size
|
|
27
|
-
} = (0,
|
|
25
|
+
} = (0, _labsWidgetCommon.useLayoutProvider)();
|
|
28
26
|
const {
|
|
29
27
|
data,
|
|
30
28
|
error
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ValidationWrapper.js","names":["_react","
|
|
1
|
+
{"version":3,"file":"ValidationWrapper.js","names":["_react","_interopRequireDefault","require","_client","_classnames","_labsWidgetCommon","_validateInstruments","_Main","_utils","e","__esModule","default","ValidationWrapper","_ref","instruments","division","size","widgetSize","motion","isParamError","useLayoutProvider","data","error","useSuspenseQuery","validateInstruments","variables","fetchPolicy","errorPolicy","showError","createElement","Fragment","Main","records","getRecords","className","classnames","Error","exports"],"sources":["../../../src/TickerTapeWidget/ValidationWrapper.tsx"],"sourcesContent":["import React from 'react';\nimport { useSuspenseQuery } from '@apollo/client';\nimport classnames from 'classnames';\nimport { Error, useLayoutProvider } from '@oanda/labs-widget-common';\nimport { validateInstruments } from '../gql/validateInstruments';\nimport { ValidateInstrumentsQuery, ValidateInstrumentsQueryVariables } from '../gql/types/graphql';\nimport { Main } from './Main';\nimport { getRecords } from './utils';\nimport { ValidationWrapperProps } from './types';\n\nconst ValidationWrapper = ({\n instruments,\n division,\n size: widgetSize,\n motion,\n isParamError,\n}: ValidationWrapperProps) => {\n const { size } = useLayoutProvider();\n const { data, error } = useSuspenseQuery<\n ValidateInstrumentsQuery,\n ValidateInstrumentsQueryVariables\n >(validateInstruments, {\n variables: {\n instruments,\n division,\n },\n fetchPolicy: 'network-only',\n errorPolicy: 'all',\n });\n\n const showError = !!error || isParamError;\n\n return (\n <>\n {!showError && size && (\n <Main\n size={widgetSize}\n division={division}\n records={getRecords(data!)!}\n motion={motion}\n />\n )}\n {showError && (\n <div className={classnames('lw-flex lw-border lw-border-solid lw-border-border-primary lw-px-4 lw-text-sm lw-tracking-normal lw-text-text-primary', {\n 'lw-h-[82px]': widgetSize !== 'compact',\n 'lw-h-[54px]': widgetSize === 'compact',\n })}\n >\n <Error />\n </div>\n )}\n </>\n );\n};\n\nexport { ValidationWrapper };\n"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,OAAA,GAAAD,OAAA;AACA,IAAAE,WAAA,GAAAH,sBAAA,CAAAC,OAAA;AACA,IAAAG,iBAAA,GAAAH,OAAA;AACA,IAAAI,oBAAA,GAAAJ,OAAA;AAEA,IAAAK,KAAA,GAAAL,OAAA;AACA,IAAAM,MAAA,GAAAN,OAAA;AAAqC,SAAAD,uBAAAQ,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAGrC,MAAMG,iBAAiB,GAAGC,IAAA,IAMI;EAAA,IANH;IACzBC,WAAW;IACXC,QAAQ;IACRC,IAAI,EAAEC,UAAU;IAChBC,MAAM;IACNC;EACsB,CAAC,GAAAN,IAAA;EACvB,MAAM;IAAEG;EAAK,CAAC,GAAG,IAAAI,mCAAiB,EAAC,CAAC;EACpC,MAAM;IAAEC,IAAI;IAAEC;EAAM,CAAC,GAAG,IAAAC,wBAAgB,EAGtCC,wCAAmB,EAAE;IACrBC,SAAS,EAAE;MACTX,WAAW;MACXC;IACF,CAAC;IACDW,WAAW,EAAE,cAAc;IAC3BC,WAAW,EAAE;EACf,CAAC,CAAC;EAEF,MAAMC,SAAS,GAAG,CAAC,CAACN,KAAK,IAAIH,YAAY;EAEzC,OACEnB,MAAA,CAAAW,OAAA,CAAAkB,aAAA,CAAA7B,MAAA,CAAAW,OAAA,CAAAmB,QAAA,QACG,CAACF,SAAS,IAAIZ,IAAI,IACjBhB,MAAA,CAAAW,OAAA,CAAAkB,aAAA,CAACtB,KAAA,CAAAwB,IAAI;IACHf,IAAI,EAAEC,UAAW;IACjBF,QAAQ,EAAEA,QAAS;IACnBiB,OAAO,EAAE,IAAAC,iBAAU,EAACZ,IAAK,CAAG;IAC5BH,MAAM,EAAEA;EAAO,CAChB,CACF,EACAU,SAAS,IACV5B,MAAA,CAAAW,OAAA,CAAAkB,aAAA;IAAKK,SAAS,EAAE,IAAAC,mBAAU,EAAC,uHAAuH,EAAE;MAClJ,aAAa,EAAElB,UAAU,KAAK,SAAS;MACvC,aAAa,EAAEA,UAAU,KAAK;IAChC,CAAC;EAAE,GAEDjB,MAAA,CAAAW,OAAA,CAAAkB,aAAA,CAACxB,iBAAA,CAAA+B,KAAK,MAAE,CACL,CAEL,CAAC;AAEP,CAAC;AAACC,OAAA,CAAAzB,iBAAA,GAAAA,iBAAA","ignoreList":[]}
|
|
@@ -1,7 +1,6 @@
|
|
|
1
|
-
import React
|
|
2
|
-
import { ApolloClient, InMemoryCache
|
|
3
|
-
import {
|
|
4
|
-
import { LiveRatesProvider, ThemeProvider, getLocale, renderComponent } from '@oanda/labs-widget-common';
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { ApolloClient, InMemoryCache } from '@apollo/client';
|
|
3
|
+
import { WidgetProvider, WidgetWrapper } from '@oanda/labs-widget-common';
|
|
5
4
|
import { translations } from '../translations';
|
|
6
5
|
import { Division } from './types';
|
|
7
6
|
import { ValidationWrapper } from './ValidationWrapper';
|
|
@@ -25,32 +24,34 @@ const TickerTapeWidget = _ref => {
|
|
|
25
24
|
});
|
|
26
25
|
const divisionCode = division === Division.Opt ? Division.Ogm : division;
|
|
27
26
|
const dataSource = divisionCode === Division.Ogm ? 'MT5' : 'V20';
|
|
28
|
-
return React.createElement(
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
options: {
|
|
34
|
-
divisionCode,
|
|
35
|
-
dataSource
|
|
36
|
-
}
|
|
37
|
-
}, React.createElement(ApolloProvider, {
|
|
38
|
-
client: client
|
|
39
|
-
}, React.createElement(Suspense, null, React.createElement(ThemeProvider, {
|
|
40
|
-
removePadding: removePadding,
|
|
27
|
+
return React.createElement(WidgetProvider, {
|
|
28
|
+
withSuspense: true,
|
|
29
|
+
locale: locale,
|
|
30
|
+
translations: translations,
|
|
31
|
+
client: client,
|
|
41
32
|
theme: theme,
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
}
|
|
33
|
+
styling: {
|
|
34
|
+
removePadding,
|
|
35
|
+
fitContent: motion === 'none'
|
|
36
|
+
},
|
|
37
|
+
liveRates: {
|
|
38
|
+
url: liveRatesUrl,
|
|
39
|
+
options: {
|
|
40
|
+
divisionCode,
|
|
41
|
+
dataSource
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
}, React.createElement(WidgetWrapper, {
|
|
45
|
+
logoLink: logoLink,
|
|
46
|
+
linkArea: "full",
|
|
47
|
+
isParamError: isParamError
|
|
48
|
+
}, React.createElement(ValidationWrapper, {
|
|
49
|
+
size: size,
|
|
50
|
+
motion: motion,
|
|
51
|
+
instruments: instruments,
|
|
52
|
+
division: division,
|
|
53
|
+
isParamError: isParamError
|
|
54
|
+
})));
|
|
54
55
|
};
|
|
55
56
|
export { TickerTapeWidget };
|
|
56
57
|
//# sourceMappingURL=TickerTapeWidget.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TickerTapeWidget.js","names":["React","
|
|
1
|
+
{"version":3,"file":"TickerTapeWidget.js","names":["React","ApolloClient","InMemoryCache","WidgetProvider","WidgetWrapper","translations","Division","ValidationWrapper","TickerTapeWidget","_ref","graphqlUrl","liveRatesUrl","instruments","division","locale","theme","isParamError","removePadding","size","motion","logoLink","client","uri","cache","divisionCode","Opt","Ogm","dataSource","createElement","withSuspense","styling","fitContent","liveRates","url","options","linkArea"],"sources":["../../../src/TickerTapeWidget/TickerTapeWidget.tsx"],"sourcesContent":["import React from 'react';\nimport { ApolloClient, InMemoryCache } from '@apollo/client';\nimport { WidgetProvider, WidgetWrapper } from '@oanda/labs-widget-common';\nimport { translations } from '../translations';\nimport { Division, TickerTapeConfig } from './types';\nimport { ValidationWrapper } from './ValidationWrapper';\n\nconst TickerTapeWidget = ({\n graphqlUrl,\n liveRatesUrl,\n instruments,\n division,\n locale,\n theme,\n isParamError,\n removePadding,\n size,\n motion,\n logoLink,\n}: TickerTapeConfig) => {\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 <WidgetProvider\n withSuspense\n locale={locale}\n translations={translations}\n client={client}\n theme={theme}\n styling={{\n removePadding,\n fitContent: motion === 'none',\n }}\n liveRates={{\n url: liveRatesUrl,\n options: { divisionCode, dataSource },\n }}\n >\n <WidgetWrapper\n logoLink={logoLink}\n linkArea=\"full\"\n isParamError={isParamError}\n >\n <ValidationWrapper\n size={size}\n motion={motion}\n instruments={instruments}\n division={division}\n isParamError={isParamError}\n />\n </WidgetWrapper>\n </WidgetProvider>\n );\n};\n\nexport { TickerTapeWidget };\n"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAASC,YAAY,EAAEC,aAAa,QAAQ,gBAAgB;AAC5D,SAASC,cAAc,EAAEC,aAAa,QAAQ,2BAA2B;AACzE,SAASC,YAAY,QAAQ,iBAAiB;AAC9C,SAASC,QAAQ,QAA0B,SAAS;AACpD,SAASC,iBAAiB,QAAQ,qBAAqB;AAEvD,MAAMC,gBAAgB,GAAGC,IAAA,IAYD;EAAA,IAZE;IACxBC,UAAU;IACVC,YAAY;IACZC,WAAW;IACXC,QAAQ;IACRC,MAAM;IACNC,KAAK;IACLC,YAAY;IACZC,aAAa;IACbC,IAAI;IACJC,MAAM;IACNC;EACgB,CAAC,GAAAX,IAAA;EACjB,MAAMY,MAAM,GAAG,IAAIpB,YAAY,CAAC;IAC9BqB,GAAG,EAAEZ,UAAU;IACfa,KAAK,EAAE,IAAIrB,aAAa,CAAC;EAC3B,CAAC,CAAC;EAEF,MAAMsB,YAAY,GAAGX,QAAQ,KAAKP,QAAQ,CAACmB,GAAG,GAAGnB,QAAQ,CAACoB,GAAG,GAAGb,QAAQ;EACxE,MAAMc,UAAU,GAAGH,YAAY,KAAKlB,QAAQ,CAACoB,GAAG,GAAG,KAAK,GAAG,KAAK;EAEhE,OACE1B,KAAA,CAAA4B,aAAA,CAACzB,cAAc;IACb0B,YAAY;IACZf,MAAM,EAAEA,MAAO;IACfT,YAAY,EAAEA,YAAa;IAC3BgB,MAAM,EAAEA,MAAO;IACfN,KAAK,EAAEA,KAAM;IACbe,OAAO,EAAE;MACPb,aAAa;MACbc,UAAU,EAAEZ,MAAM,KAAK;IACzB,CAAE;IACFa,SAAS,EAAE;MACTC,GAAG,EAAEtB,YAAY;MACjBuB,OAAO,EAAE;QAAEV,YAAY;QAAEG;MAAW;IACtC;EAAE,GAEF3B,KAAA,CAAA4B,aAAA,CAACxB,aAAa;IACZgB,QAAQ,EAAEA,QAAS;IACnBe,QAAQ,EAAC,MAAM;IACfnB,YAAY,EAAEA;EAAa,GAE3BhB,KAAA,CAAA4B,aAAA,CAACrB,iBAAiB;IAChBW,IAAI,EAAEA,IAAK;IACXC,MAAM,EAAEA,MAAO;IACfP,WAAW,EAAEA,WAAY;IACzBC,QAAQ,EAAEA,QAAS;IACnBG,YAAY,EAAEA;EAAa,CAC5B,CACY,CACD,CAAC;AAErB,CAAC;AAED,SAASR,gBAAgB","ignoreList":[]}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import React
|
|
1
|
+
import React from 'react';
|
|
2
2
|
import { useSuspenseQuery } from '@apollo/client';
|
|
3
3
|
import classnames from 'classnames';
|
|
4
|
-
import { Error,
|
|
4
|
+
import { Error, useLayoutProvider } from '@oanda/labs-widget-common';
|
|
5
5
|
import { validateInstruments } from '../gql/validateInstruments';
|
|
6
6
|
import { Main } from './Main';
|
|
7
7
|
import { getRecords } from './utils';
|
|
@@ -15,7 +15,7 @@ const ValidationWrapper = _ref => {
|
|
|
15
15
|
} = _ref;
|
|
16
16
|
const {
|
|
17
17
|
size
|
|
18
|
-
} =
|
|
18
|
+
} = useLayoutProvider();
|
|
19
19
|
const {
|
|
20
20
|
data,
|
|
21
21
|
error
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ValidationWrapper.js","names":["React","
|
|
1
|
+
{"version":3,"file":"ValidationWrapper.js","names":["React","useSuspenseQuery","classnames","Error","useLayoutProvider","validateInstruments","Main","getRecords","ValidationWrapper","_ref","instruments","division","size","widgetSize","motion","isParamError","data","error","variables","fetchPolicy","errorPolicy","showError","createElement","Fragment","records","className"],"sources":["../../../src/TickerTapeWidget/ValidationWrapper.tsx"],"sourcesContent":["import React from 'react';\nimport { useSuspenseQuery } from '@apollo/client';\nimport classnames from 'classnames';\nimport { Error, useLayoutProvider } from '@oanda/labs-widget-common';\nimport { validateInstruments } from '../gql/validateInstruments';\nimport { ValidateInstrumentsQuery, ValidateInstrumentsQueryVariables } from '../gql/types/graphql';\nimport { Main } from './Main';\nimport { getRecords } from './utils';\nimport { ValidationWrapperProps } from './types';\n\nconst ValidationWrapper = ({\n instruments,\n division,\n size: widgetSize,\n motion,\n isParamError,\n}: ValidationWrapperProps) => {\n const { size } = useLayoutProvider();\n const { data, error } = useSuspenseQuery<\n ValidateInstrumentsQuery,\n ValidateInstrumentsQueryVariables\n >(validateInstruments, {\n variables: {\n instruments,\n division,\n },\n fetchPolicy: 'network-only',\n errorPolicy: 'all',\n });\n\n const showError = !!error || isParamError;\n\n return (\n <>\n {!showError && size && (\n <Main\n size={widgetSize}\n division={division}\n records={getRecords(data!)!}\n motion={motion}\n />\n )}\n {showError && (\n <div className={classnames('lw-flex lw-border lw-border-solid lw-border-border-primary lw-px-4 lw-text-sm lw-tracking-normal lw-text-text-primary', {\n 'lw-h-[82px]': widgetSize !== 'compact',\n 'lw-h-[54px]': widgetSize === 'compact',\n })}\n >\n <Error />\n </div>\n )}\n </>\n );\n};\n\nexport { ValidationWrapper };\n"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAASC,gBAAgB,QAAQ,gBAAgB;AACjD,OAAOC,UAAU,MAAM,YAAY;AACnC,SAASC,KAAK,EAAEC,iBAAiB,QAAQ,2BAA2B;AACpE,SAASC,mBAAmB,QAAQ,4BAA4B;AAEhE,SAASC,IAAI,QAAQ,QAAQ;AAC7B,SAASC,UAAU,QAAQ,SAAS;AAGpC,MAAMC,iBAAiB,GAAGC,IAAA,IAMI;EAAA,IANH;IACzBC,WAAW;IACXC,QAAQ;IACRC,IAAI,EAAEC,UAAU;IAChBC,MAAM;IACNC;EACsB,CAAC,GAAAN,IAAA;EACvB,MAAM;IAAEG;EAAK,CAAC,GAAGR,iBAAiB,CAAC,CAAC;EACpC,MAAM;IAAEY,IAAI;IAAEC;EAAM,CAAC,GAAGhB,gBAAgB,CAGtCI,mBAAmB,EAAE;IACrBa,SAAS,EAAE;MACTR,WAAW;MACXC;IACF,CAAC;IACDQ,WAAW,EAAE,cAAc;IAC3BC,WAAW,EAAE;EACf,CAAC,CAAC;EAEF,MAAMC,SAAS,GAAG,CAAC,CAACJ,KAAK,IAAIF,YAAY;EAEzC,OACEf,KAAA,CAAAsB,aAAA,CAAAtB,KAAA,CAAAuB,QAAA,QACG,CAACF,SAAS,IAAIT,IAAI,IACjBZ,KAAA,CAAAsB,aAAA,CAAChB,IAAI;IACHM,IAAI,EAAEC,UAAW;IACjBF,QAAQ,EAAEA,QAAS;IACnBa,OAAO,EAAEjB,UAAU,CAACS,IAAK,CAAG;IAC5BF,MAAM,EAAEA;EAAO,CAChB,CACF,EACAO,SAAS,IACVrB,KAAA,CAAAsB,aAAA;IAAKG,SAAS,EAAEvB,UAAU,CAAC,uHAAuH,EAAE;MAClJ,aAAa,EAAEW,UAAU,KAAK,SAAS;MACvC,aAAa,EAAEA,UAAU,KAAK;IAChC,CAAC;EAAE,GAEDb,KAAA,CAAAsB,aAAA,CAACnB,KAAK,MAAE,CACL,CAEL,CAAC;AAEP,CAAC;AAED,SAASK,iBAAiB","ignoreList":[]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@oanda/labs-ticker-tape-widget",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.29",
|
|
4
4
|
"description": "Labs Ticker Tape 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.173",
|
|
16
16
|
"@oanda/mono-i18n": "10.0.1",
|
|
17
17
|
"graphql": "16.8.1",
|
|
18
18
|
"react-fast-marquee": "1.6.5"
|
|
@@ -21,5 +21,5 @@
|
|
|
21
21
|
"@graphql-codegen/cli": "5.0.0",
|
|
22
22
|
"@graphql-codegen/client-preset": "4.1.0"
|
|
23
23
|
},
|
|
24
|
-
"gitHead": "
|
|
24
|
+
"gitHead": "67a7801f99f0bab94dd6067a102761f51de786c1"
|
|
25
25
|
}
|
|
@@ -1,9 +1,6 @@
|
|
|
1
|
-
import React
|
|
2
|
-
import { ApolloClient, InMemoryCache
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
LiveRatesProvider, ThemeProvider, getLocale, renderComponent,
|
|
6
|
-
} from '@oanda/labs-widget-common';
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { ApolloClient, InMemoryCache } from '@apollo/client';
|
|
3
|
+
import { WidgetProvider, WidgetWrapper } from '@oanda/labs-widget-common';
|
|
7
4
|
import { translations } from '../translations';
|
|
8
5
|
import { Division, TickerTapeConfig } from './types';
|
|
9
6
|
import { ValidationWrapper } from './ValidationWrapper';
|
|
@@ -30,30 +27,35 @@ const TickerTapeWidget = ({
|
|
|
30
27
|
const dataSource = divisionCode === Division.Ogm ? 'MT5' : 'V20';
|
|
31
28
|
|
|
32
29
|
return (
|
|
33
|
-
<
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
30
|
+
<WidgetProvider
|
|
31
|
+
withSuspense
|
|
32
|
+
locale={locale}
|
|
33
|
+
translations={translations}
|
|
34
|
+
client={client}
|
|
35
|
+
theme={theme}
|
|
36
|
+
styling={{
|
|
37
|
+
removePadding,
|
|
38
|
+
fitContent: motion === 'none',
|
|
39
|
+
}}
|
|
40
|
+
liveRates={{
|
|
41
|
+
url: liveRatesUrl,
|
|
42
|
+
options: { divisionCode, dataSource },
|
|
43
|
+
}}
|
|
44
|
+
>
|
|
45
|
+
<WidgetWrapper
|
|
46
|
+
logoLink={logoLink}
|
|
47
|
+
linkArea="full"
|
|
48
|
+
isParamError={isParamError}
|
|
37
49
|
>
|
|
38
|
-
<
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
isParamError={isParamError}
|
|
48
|
-
/>,
|
|
49
|
-
logoLink,
|
|
50
|
-
linkArea: 'full',
|
|
51
|
-
})}
|
|
52
|
-
</ThemeProvider>
|
|
53
|
-
</Suspense>
|
|
54
|
-
</ApolloProvider>
|
|
55
|
-
</LiveRatesProvider>
|
|
56
|
-
</LocaleProvider>
|
|
50
|
+
<ValidationWrapper
|
|
51
|
+
size={size}
|
|
52
|
+
motion={motion}
|
|
53
|
+
instruments={instruments}
|
|
54
|
+
division={division}
|
|
55
|
+
isParamError={isParamError}
|
|
56
|
+
/>
|
|
57
|
+
</WidgetWrapper>
|
|
58
|
+
</WidgetProvider>
|
|
57
59
|
);
|
|
58
60
|
};
|
|
59
61
|
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import React
|
|
1
|
+
import React from 'react';
|
|
2
2
|
import { useSuspenseQuery } from '@apollo/client';
|
|
3
3
|
import classnames from 'classnames';
|
|
4
|
-
import { Error,
|
|
4
|
+
import { Error, useLayoutProvider } from '@oanda/labs-widget-common';
|
|
5
5
|
import { validateInstruments } from '../gql/validateInstruments';
|
|
6
6
|
import { ValidateInstrumentsQuery, ValidateInstrumentsQueryVariables } from '../gql/types/graphql';
|
|
7
7
|
import { Main } from './Main';
|
|
@@ -15,7 +15,7 @@ const ValidationWrapper = ({
|
|
|
15
15
|
motion,
|
|
16
16
|
isParamError,
|
|
17
17
|
}: ValidationWrapperProps) => {
|
|
18
|
-
const { size } =
|
|
18
|
+
const { size } = useLayoutProvider();
|
|
19
19
|
const { data, error } = useSuspenseQuery<
|
|
20
20
|
ValidateInstrumentsQuery,
|
|
21
21
|
ValidateInstrumentsQueryVariables
|
package/test/Main.test.tsx
CHANGED
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
import React from 'react';
|
|
5
5
|
import { render } from '@testing-library/react';
|
|
6
6
|
import { MockedProvider } from '@apollo/client/testing';
|
|
7
|
-
import {
|
|
7
|
+
import { MockLayoutProvider, LiveRatesProvider } from '@oanda/labs-widget-common';
|
|
8
8
|
import { Division } from '../src/gql/types/graphql';
|
|
9
9
|
import { widgetMocks } from './mocks';
|
|
10
10
|
import { Main } from '../src/TickerTapeWidget/Main';
|
|
@@ -17,15 +17,17 @@ describe('Main component', () => {
|
|
|
17
17
|
it('should render ticker tape component', async () => {
|
|
18
18
|
const { findByTestId } = render(
|
|
19
19
|
<MockedProvider mocks={widgetMocks}>
|
|
20
|
-
<
|
|
21
|
-
<
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
20
|
+
<LiveRatesProvider url="oanda.com">
|
|
21
|
+
<MockLayoutProvider>
|
|
22
|
+
<Main
|
|
23
|
+
division={Division.Oc}
|
|
24
|
+
records={[{
|
|
25
|
+
instrument: 'EUR_USD',
|
|
26
|
+
displayName: 'EUR/USD',
|
|
27
|
+
}]}
|
|
28
|
+
/>
|
|
29
|
+
</MockLayoutProvider>
|
|
30
|
+
</LiveRatesProvider>
|
|
29
31
|
</MockedProvider>,
|
|
30
32
|
);
|
|
31
33
|
|