@oanda/labs-instrument-live-rate-widget 1.0.1
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 +8 -0
- package/codegen.ts +15 -0
- package/dist/main/InstrumentLiveRateWidget/InstrumentLiveRateWidget.js +56 -0
- package/dist/main/InstrumentLiveRateWidget/InstrumentLiveRateWidget.js.map +1 -0
- package/dist/main/InstrumentLiveRateWidget/Main.js +77 -0
- package/dist/main/InstrumentLiveRateWidget/Main.js.map +1 -0
- package/dist/main/InstrumentLiveRateWidget/components/InstrumentRateWithData/InstrumentRateWithData.js +83 -0
- package/dist/main/InstrumentLiveRateWidget/components/InstrumentRateWithData/InstrumentRateWithData.js.map +1 -0
- package/dist/main/InstrumentLiveRateWidget/components/InstrumentRateWithData/index.js +28 -0
- package/dist/main/InstrumentLiveRateWidget/components/InstrumentRateWithData/index.js.map +1 -0
- package/dist/main/InstrumentLiveRateWidget/components/InstrumentRateWithData/utils.js +25 -0
- package/dist/main/InstrumentLiveRateWidget/components/InstrumentRateWithData/utils.js.map +1 -0
- package/dist/main/InstrumentLiveRateWidget/components/LineChartWithData/LineChartWithData.js +44 -0
- package/dist/main/InstrumentLiveRateWidget/components/LineChartWithData/LineChartWithData.js.map +1 -0
- package/dist/main/InstrumentLiveRateWidget/components/LineChartWithData/index.js +17 -0
- package/dist/main/InstrumentLiveRateWidget/components/LineChartWithData/index.js.map +1 -0
- package/dist/main/InstrumentLiveRateWidget/components/LineChartWithData/types.js +6 -0
- package/dist/main/InstrumentLiveRateWidget/components/LineChartWithData/types.js.map +1 -0
- package/dist/main/InstrumentLiveRateWidget/components/index.js +17 -0
- package/dist/main/InstrumentLiveRateWidget/components/index.js.map +1 -0
- package/dist/main/InstrumentLiveRateWidget/constant.js +8 -0
- package/dist/main/InstrumentLiveRateWidget/constant.js.map +1 -0
- package/dist/main/InstrumentLiveRateWidget/render.js +51 -0
- package/dist/main/InstrumentLiveRateWidget/render.js.map +1 -0
- package/dist/main/InstrumentLiveRateWidget/types.js +20 -0
- package/dist/main/InstrumentLiveRateWidget/types.js.map +1 -0
- package/dist/main/InstrumentLiveRateWidget/utils.js +43 -0
- package/dist/main/InstrumentLiveRateWidget/utils.js.map +1 -0
- package/dist/main/gql/getInstrumentsChart.js +16 -0
- package/dist/main/gql/getInstrumentsChart.js.map +1 -0
- package/dist/main/gql/types/fragment-masking.js +23 -0
- package/dist/main/gql/types/fragment-masking.js.map +1 -0
- package/dist/main/gql/types/gql.js +17 -0
- package/dist/main/gql/types/gql.js.map +1 -0
- package/dist/main/gql/types/graphql.js +326 -0
- package/dist/main/gql/types/graphql.js.map +1 -0
- package/dist/main/gql/types/index.js +28 -0
- package/dist/main/gql/types/index.js.map +1 -0
- package/dist/main/gql/validateInstruments.js +16 -0
- package/dist/main/gql/validateInstruments.js.map +1 -0
- package/dist/main/index.js +28 -0
- package/dist/main/index.js.map +1 -0
- package/dist/main/translations/index.js +27 -0
- package/dist/main/translations/index.js.map +1 -0
- package/dist/main/translations/sources/en.json +4 -0
- package/dist/main/translations/sources/es.json +4 -0
- package/dist/main/translations/sources/th.json +4 -0
- package/dist/main/translations/sources/zh_TW.json +4 -0
- package/dist/main/translations/translations.js +11 -0
- package/dist/main/translations/translations.js.map +1 -0
- package/dist/module/InstrumentLiveRateWidget/InstrumentLiveRateWidget.js +49 -0
- package/dist/module/InstrumentLiveRateWidget/InstrumentLiveRateWidget.js.map +1 -0
- package/dist/module/InstrumentLiveRateWidget/Main.js +69 -0
- package/dist/module/InstrumentLiveRateWidget/Main.js.map +1 -0
- package/dist/module/InstrumentLiveRateWidget/components/InstrumentRateWithData/InstrumentRateWithData.js +74 -0
- package/dist/module/InstrumentLiveRateWidget/components/InstrumentRateWithData/InstrumentRateWithData.js.map +1 -0
- package/dist/module/InstrumentLiveRateWidget/components/InstrumentRateWithData/index.js +3 -0
- package/dist/module/InstrumentLiveRateWidget/components/InstrumentRateWithData/index.js.map +1 -0
- package/dist/module/InstrumentLiveRateWidget/components/InstrumentRateWithData/utils.js +18 -0
- package/dist/module/InstrumentLiveRateWidget/components/InstrumentRateWithData/utils.js.map +1 -0
- package/dist/module/InstrumentLiveRateWidget/components/LineChartWithData/LineChartWithData.js +37 -0
- package/dist/module/InstrumentLiveRateWidget/components/LineChartWithData/LineChartWithData.js.map +1 -0
- package/dist/module/InstrumentLiveRateWidget/components/LineChartWithData/index.js +2 -0
- package/dist/module/InstrumentLiveRateWidget/components/LineChartWithData/index.js.map +1 -0
- package/dist/module/InstrumentLiveRateWidget/components/LineChartWithData/types.js +2 -0
- package/dist/module/InstrumentLiveRateWidget/components/LineChartWithData/types.js.map +1 -0
- package/dist/module/InstrumentLiveRateWidget/components/index.js +2 -0
- package/dist/module/InstrumentLiveRateWidget/components/index.js.map +1 -0
- package/dist/module/InstrumentLiveRateWidget/constant.js +3 -0
- package/dist/module/InstrumentLiveRateWidget/constant.js.map +1 -0
- package/dist/module/InstrumentLiveRateWidget/render.js +48 -0
- package/dist/module/InstrumentLiveRateWidget/render.js.map +1 -0
- package/dist/module/InstrumentLiveRateWidget/types.js +3 -0
- package/dist/module/InstrumentLiveRateWidget/types.js.map +1 -0
- package/dist/module/InstrumentLiveRateWidget/utils.js +36 -0
- package/dist/module/InstrumentLiveRateWidget/utils.js.map +1 -0
- package/dist/module/gql/getInstrumentsChart.js +10 -0
- package/dist/module/gql/getInstrumentsChart.js.map +1 -0
- package/dist/module/gql/types/fragment-masking.js +15 -0
- package/dist/module/gql/types/fragment-masking.js.map +1 -0
- package/dist/module/gql/types/gql.js +9 -0
- package/dist/module/gql/types/gql.js.map +1 -0
- package/dist/module/gql/types/graphql.js +320 -0
- package/dist/module/gql/types/graphql.js.map +1 -0
- package/dist/module/gql/types/index.js +3 -0
- package/dist/module/gql/types/index.js.map +1 -0
- package/dist/module/gql/validateInstruments.js +10 -0
- package/dist/module/gql/validateInstruments.js.map +1 -0
- package/dist/module/index.js +3 -0
- package/dist/module/index.js.map +1 -0
- package/dist/module/translations/index.js +20 -0
- package/dist/module/translations/index.js.map +1 -0
- package/dist/module/translations/sources/en.json +4 -0
- package/dist/module/translations/sources/es.json +4 -0
- package/dist/module/translations/sources/th.json +4 -0
- package/dist/module/translations/sources/zh_TW.json +4 -0
- package/dist/module/translations/translations.js +5 -0
- package/dist/module/translations/translations.js.map +1 -0
- package/dist/types/InstrumentLiveRateWidget/InstrumentLiveRateWidget.d.ts +4 -0
- package/dist/types/InstrumentLiveRateWidget/Main.d.ts +4 -0
- package/dist/types/InstrumentLiveRateWidget/components/InstrumentRateWithData/InstrumentRateWithData.d.ts +4 -0
- package/dist/types/InstrumentLiveRateWidget/components/InstrumentRateWithData/index.d.ts +2 -0
- package/dist/types/InstrumentLiveRateWidget/components/InstrumentRateWithData/utils.d.ts +3 -0
- package/dist/types/InstrumentLiveRateWidget/components/LineChartWithData/LineChartWithData.d.ts +4 -0
- package/dist/types/InstrumentLiveRateWidget/components/LineChartWithData/index.d.ts +1 -0
- package/dist/types/InstrumentLiveRateWidget/components/LineChartWithData/types.d.ts +11 -0
- package/dist/types/InstrumentLiveRateWidget/components/index.d.ts +1 -0
- package/dist/types/InstrumentLiveRateWidget/constant.d.ts +2 -0
- package/dist/types/InstrumentLiveRateWidget/render.d.ts +1 -0
- package/dist/types/InstrumentLiveRateWidget/types.d.ts +43 -0
- package/dist/types/InstrumentLiveRateWidget/utils.d.ts +12 -0
- package/dist/types/gql/getInstrumentsChart.d.ts +1 -0
- package/dist/types/gql/types/fragment-masking.d.ts +15 -0
- package/dist/types/gql/types/gql.d.ts +45 -0
- package/dist/types/gql/types/graphql.d.ts +397 -0
- package/dist/types/gql/types/index.d.ts +2 -0
- package/dist/types/gql/validateInstruments.d.ts +1 -0
- package/dist/types/index.d.ts +2 -0
- package/dist/types/translations/index.d.ts +4 -0
- package/dist/types/translations/translations.d.ts +4 -0
- package/index.ts +1 -0
- package/lokalise.config.json +18 -0
- package/package.json +25 -0
- package/src/InstrumentLiveRateWidget/InstrumentLiveRateWidget.tsx +57 -0
- package/src/InstrumentLiveRateWidget/Main.tsx +82 -0
- package/src/InstrumentLiveRateWidget/components/InstrumentRateWithData/InstrumentRateWithData.tsx +92 -0
- package/src/InstrumentLiveRateWidget/components/InstrumentRateWithData/index.ts +2 -0
- package/src/InstrumentLiveRateWidget/components/InstrumentRateWithData/utils.ts +25 -0
- package/src/InstrumentLiveRateWidget/components/LineChartWithData/LineChartWithData.tsx +48 -0
- package/src/InstrumentLiveRateWidget/components/LineChartWithData/index.ts +1 -0
- package/src/InstrumentLiveRateWidget/components/LineChartWithData/types.tsx +12 -0
- package/src/InstrumentLiveRateWidget/components/index.ts +1 -0
- package/src/InstrumentLiveRateWidget/constant.ts +5 -0
- package/src/InstrumentLiveRateWidget/render.tsx +48 -0
- package/src/InstrumentLiveRateWidget/types.tsx +50 -0
- package/src/InstrumentLiveRateWidget/utils.ts +49 -0
- package/src/gql/getInstrumentsChart.ts +10 -0
- package/src/gql/types/fragment-masking.ts +66 -0
- package/src/gql/types/gql.ts +47 -0
- package/src/gql/types/graphql.ts +432 -0
- package/src/gql/types/index.ts +2 -0
- package/src/gql/validateInstruments.ts +10 -0
- package/src/index.ts +2 -0
- package/src/translations/index.ts +17 -0
- package/src/translations/sources/en.json +4 -0
- package/src/translations/sources/es.json +4 -0
- package/src/translations/sources/th.json +4 -0
- package/src/translations/sources/zh_TW.json +4 -0
- package/src/translations/translations.ts +4 -0
- package/test/LineChartWithData.test.tsx +164 -0
- package/test/Main.test.tsx +27 -0
- package/test/components/InstrumentRateWithData.test.tsx +62 -0
- package/test/components/utils.test.ts +13 -0
- package/test/mocks.ts +52 -0
- package/tsconfig.types.json +12 -0
package/CHANGELOG.md
ADDED
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
# Change Log
|
|
2
|
+
|
|
3
|
+
All notable changes to this project will be documented in this file.
|
|
4
|
+
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
|
5
|
+
|
|
6
|
+
## 1.0.1 (2024-07-12)
|
|
7
|
+
|
|
8
|
+
**Note:** Version bump only for package @oanda/labs-instrument-live-rate-widget
|
package/codegen.ts
ADDED
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import type { CodegenConfig } from '@graphql-codegen/cli';
|
|
2
|
+
|
|
3
|
+
const config: CodegenConfig = {
|
|
4
|
+
overwrite: true,
|
|
5
|
+
schema: 'https://labs-api.uat.oanda.com/graphql',
|
|
6
|
+
documents: 'src/**/*.ts',
|
|
7
|
+
generates: {
|
|
8
|
+
'src/gql/types/': {
|
|
9
|
+
preset: 'client',
|
|
10
|
+
plugins: [],
|
|
11
|
+
},
|
|
12
|
+
},
|
|
13
|
+
};
|
|
14
|
+
|
|
15
|
+
export default config;
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.InstrumentLiveRateWidget = void 0;
|
|
7
|
+
var _react = _interopRequireDefault(require("react"));
|
|
8
|
+
var _client = require("@apollo/client");
|
|
9
|
+
var _monoI18n = require("@oanda/mono-i18n");
|
|
10
|
+
var _labsWidgetCommon = require("@oanda/labs-widget-common");
|
|
11
|
+
var _translations = require("../translations");
|
|
12
|
+
var _Main = require("./Main");
|
|
13
|
+
var _types = require("./types");
|
|
14
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
15
|
+
const InstrumentLiveRateWidget = _ref => {
|
|
16
|
+
let {
|
|
17
|
+
graphqlUrl,
|
|
18
|
+
liveRatesUrl,
|
|
19
|
+
instrument,
|
|
20
|
+
division,
|
|
21
|
+
locale,
|
|
22
|
+
theme,
|
|
23
|
+
isParamError,
|
|
24
|
+
removePadding,
|
|
25
|
+
size
|
|
26
|
+
} = _ref;
|
|
27
|
+
const client = new _client.ApolloClient({
|
|
28
|
+
uri: graphqlUrl,
|
|
29
|
+
cache: new _client.InMemoryCache()
|
|
30
|
+
});
|
|
31
|
+
const divisionCode = division === _types.Division.Opt ? _types.Division.Ogm : division;
|
|
32
|
+
const dataSource = divisionCode === _types.Division.Ogm ? 'MT5' : 'V20';
|
|
33
|
+
return _react.default.createElement(_labsWidgetCommon.ThemeProvider, {
|
|
34
|
+
removePadding: removePadding,
|
|
35
|
+
theme: theme
|
|
36
|
+
}, _react.default.createElement(_monoI18n.LocaleProvider, {
|
|
37
|
+
locale: (0, _labsWidgetCommon.getLocale)(locale),
|
|
38
|
+
translations: _translations.translations
|
|
39
|
+
}, _react.default.createElement(_labsWidgetCommon.LiveRatesProvider, {
|
|
40
|
+
url: liveRatesUrl,
|
|
41
|
+
options: {
|
|
42
|
+
divisionCode,
|
|
43
|
+
dataSource
|
|
44
|
+
}
|
|
45
|
+
}, _react.default.createElement(_client.ApolloProvider, {
|
|
46
|
+
client: client
|
|
47
|
+
}, isParamError ? _react.default.createElement("div", {
|
|
48
|
+
className: "lw-flex lw-h-[425px] lw-w-full lw-items-center lw-border lw-border-solid lw-border-border-primary"
|
|
49
|
+
}, _react.default.createElement(_labsWidgetCommon.ChartError, null)) : _react.default.createElement(_Main.Main, {
|
|
50
|
+
size: size,
|
|
51
|
+
instrument: instrument,
|
|
52
|
+
division: division
|
|
53
|
+
})))));
|
|
54
|
+
};
|
|
55
|
+
exports.InstrumentLiveRateWidget = InstrumentLiveRateWidget;
|
|
56
|
+
//# sourceMappingURL=InstrumentLiveRateWidget.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"InstrumentLiveRateWidget.js","names":["_react","_interopRequireDefault","require","_client","_monoI18n","_labsWidgetCommon","_translations","_Main","_types","e","__esModule","default","InstrumentLiveRateWidget","_ref","graphqlUrl","liveRatesUrl","instrument","division","locale","theme","isParamError","removePadding","size","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/InstrumentLiveRateWidget/InstrumentLiveRateWidget.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, InstrumentLiveRateConfig } from './types';\n\nconst InstrumentLiveRateWidget = ({\n graphqlUrl,\n liveRatesUrl,\n instrument,\n division,\n locale,\n theme,\n isParamError,\n removePadding,\n size,\n}: InstrumentLiveRateConfig) => {\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 size={size}\n instrument={instrument}\n division={division}\n />\n )}\n </ApolloProvider>\n </LiveRatesProvider>\n </LocaleProvider>\n </ThemeProvider>\n );\n};\n\nexport { InstrumentLiveRateWidget };\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;AAA6D,SAAAD,uBAAAQ,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAE7D,MAAMG,wBAAwB,GAAGC,IAAA,IAUD;EAAA,IAVE;IAChCC,UAAU;IACVC,YAAY;IACZC,UAAU;IACVC,QAAQ;IACRC,MAAM;IACNC,KAAK;IACLC,YAAY;IACZC,aAAa;IACbC;EACwB,CAAC,GAAAT,IAAA;EACzB,MAAMU,MAAM,GAAG,IAAIC,oBAAY,CAAC;IAC9BC,GAAG,EAAEX,UAAU;IACfY,KAAK,EAAE,IAAIC,qBAAa,CAAC;EAC3B,CAAC,CAAC;EAEF,MAAMC,YAAY,GAAGX,QAAQ,KAAKY,eAAQ,CAACC,GAAG,GAAGD,eAAQ,CAACE,GAAG,GAAGd,QAAQ;EACxE,MAAMe,UAAU,GAAGJ,YAAY,KAAKC,eAAQ,CAACE,GAAG,GAAG,KAAK,GAAG,KAAK;EAEhE,OACE/B,MAAA,CAAAW,OAAA,CAAAsB,aAAA,CAAC5B,iBAAA,CAAA6B,aAAa;IAACb,aAAa,EAAEA,aAAc;IAACF,KAAK,EAAEA;EAAM,GACxDnB,MAAA,CAAAW,OAAA,CAAAsB,aAAA,CAAC7B,SAAA,CAAA+B,cAAc;IAACjB,MAAM,EAAE,IAAAkB,2BAAS,EAAClB,MAAM,CAAE;IAACmB,YAAY,EAAEA;EAAa,GACpErC,MAAA,CAAAW,OAAA,CAAAsB,aAAA,CAAC5B,iBAAA,CAAAiC,iBAAiB;IAChBC,GAAG,EAAExB,YAAa;IAClByB,OAAO,EAAE;MAAEZ,YAAY;MAAEI;IAAW;EAAE,GAEtChC,MAAA,CAAAW,OAAA,CAAAsB,aAAA,CAAC9B,OAAA,CAAAsC,cAAc;IAAClB,MAAM,EAAEA;EAAO,GAC5BH,YAAY,GACXpB,MAAA,CAAAW,OAAA,CAAAsB,aAAA;IAAKS,SAAS,EAAC;EAAmG,GAChH1C,MAAA,CAAAW,OAAA,CAAAsB,aAAA,CAAC5B,iBAAA,CAAAsC,UAAU,MAAE,CACV,CAAC,GAGJ3C,MAAA,CAAAW,OAAA,CAAAsB,aAAA,CAAC1B,KAAA,CAAAqC,IAAI;IACHtB,IAAI,EAAEA,IAAK;IACXN,UAAU,EAAEA,UAAW;IACvBC,QAAQ,EAAEA;EAAS,CACpB,CAES,CACC,CACL,CACH,CAAC;AAEpB,CAAC;AAAC4B,OAAA,CAAAjC,wBAAA,GAAAA,wBAAA","ignoreList":[]}
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.Main = void 0;
|
|
7
|
+
var _react = _interopRequireWildcard(require("react"));
|
|
8
|
+
var _client = require("@apollo/client");
|
|
9
|
+
var _labsWidgetCommon = require("@oanda/labs-widget-common");
|
|
10
|
+
var _utils = require("./utils");
|
|
11
|
+
var _constant = require("./constant");
|
|
12
|
+
var _validateInstruments = require("../gql/validateInstruments");
|
|
13
|
+
var _InstrumentRateWithData = require("./components/InstrumentRateWithData");
|
|
14
|
+
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); }
|
|
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; }
|
|
16
|
+
const Main = _ref => {
|
|
17
|
+
let {
|
|
18
|
+
instrument,
|
|
19
|
+
division,
|
|
20
|
+
size: widgetSize
|
|
21
|
+
} = _ref;
|
|
22
|
+
const {
|
|
23
|
+
size
|
|
24
|
+
} = (0, _react.useContext)(_labsWidgetCommon.ThemeContext);
|
|
25
|
+
const isDesktop = size === _labsWidgetCommon.Size.DESKTOP;
|
|
26
|
+
const {
|
|
27
|
+
target,
|
|
28
|
+
setQuery
|
|
29
|
+
} = (0, _labsWidgetCommon.useLiveRatesQuery)();
|
|
30
|
+
const [records, setRecords] = (0, _react.useState)([]);
|
|
31
|
+
const {
|
|
32
|
+
loading,
|
|
33
|
+
data,
|
|
34
|
+
error
|
|
35
|
+
} = (0, _client.useQuery)(_validateInstruments.validateInstruments, {
|
|
36
|
+
variables: {
|
|
37
|
+
instruments: [instrument],
|
|
38
|
+
division
|
|
39
|
+
},
|
|
40
|
+
fetchPolicy: 'network-only'
|
|
41
|
+
});
|
|
42
|
+
(0, _react.useEffect)(() => {
|
|
43
|
+
if (!loading && data) {
|
|
44
|
+
setRecords((0, _utils.getRecords)(data));
|
|
45
|
+
}
|
|
46
|
+
}, [loading, data]);
|
|
47
|
+
const instrumentsNames = records.map(_ref2 => {
|
|
48
|
+
let {
|
|
49
|
+
instrument: instrumentName
|
|
50
|
+
} = _ref2;
|
|
51
|
+
return instrumentName;
|
|
52
|
+
});
|
|
53
|
+
(0, _react.useEffect)(() => {
|
|
54
|
+
if (instrumentsNames[0]) {
|
|
55
|
+
setQuery({
|
|
56
|
+
instruments: instrumentsNames
|
|
57
|
+
});
|
|
58
|
+
}
|
|
59
|
+
}, [records, isDesktop]);
|
|
60
|
+
const showError = !!error;
|
|
61
|
+
return _react.default.createElement(_react.default.Fragment, null, records.length > 0 && _react.default.createElement("div", {
|
|
62
|
+
"data-testid": "instrument-live-rate-wrapper",
|
|
63
|
+
className: "lw-relative lw-border lw-border-solid lw-border-border-primary lw-text-sm lw-tracking-normal lw-text-text-primary"
|
|
64
|
+
}, _react.default.createElement(_InstrumentRateWithData.InstrumentRateWithData, {
|
|
65
|
+
loading: loading,
|
|
66
|
+
record: records[0],
|
|
67
|
+
target: target,
|
|
68
|
+
division: division,
|
|
69
|
+
size: widgetSize
|
|
70
|
+
}), _react.default.createElement(_labsWidgetCommon.Tooltip, {
|
|
71
|
+
id: _constant.INSTRUMENT_TOOLTIP_ID
|
|
72
|
+
})), !loading && showError && _react.default.createElement("div", {
|
|
73
|
+
className: "lw-flex lw-h-[150px] lw-w-full lw-items-center lw-border lw-border-solid lw-border-border-primary"
|
|
74
|
+
}, _react.default.createElement(_labsWidgetCommon.ChartError, null)));
|
|
75
|
+
};
|
|
76
|
+
exports.Main = Main;
|
|
77
|
+
//# sourceMappingURL=Main.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Main.js","names":["_react","_interopRequireWildcard","require","_client","_labsWidgetCommon","_utils","_constant","_validateInstruments","_InstrumentRateWithData","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","Main","_ref","instrument","division","size","widgetSize","useContext","ThemeContext","isDesktop","Size","DESKTOP","target","setQuery","useLiveRatesQuery","records","setRecords","useState","loading","data","error","useQuery","validateInstruments","variables","instruments","fetchPolicy","useEffect","getRecords","instrumentsNames","map","_ref2","instrumentName","showError","createElement","Fragment","length","className","InstrumentRateWithData","record","Tooltip","id","INSTRUMENT_TOOLTIP_ID","ChartError","exports"],"sources":["../../../src/InstrumentLiveRateWidget/Main.tsx"],"sourcesContent":["import React, { useEffect, useState, useContext } from 'react';\nimport { useQuery } from '@apollo/client';\nimport {\n ChartError,\n Size,\n ThemeContext,\n Tooltip,\n useLiveRatesQuery,\n} from '@oanda/labs-widget-common';\nimport { getRecords } from './utils';\nimport { DataRecord, MainProps } from './types';\nimport { INSTRUMENT_TOOLTIP_ID } from './constant';\nimport { validateInstruments } from '../gql/validateInstruments';\nimport { ValidateInstrumentsQuery, ValidateInstrumentsQueryVariables } from '../gql/types/graphql';\nimport { InstrumentRateWithData } from './components/InstrumentRateWithData';\n\nconst Main = ({\n instrument,\n division,\n size: widgetSize,\n}: MainProps) => {\n const { size } = useContext(ThemeContext);\n const isDesktop = size === Size.DESKTOP;\n const { target, setQuery } = useLiveRatesQuery();\n const [records, setRecords] = useState<DataRecord[]>([]);\n\n const { loading, data, error } = useQuery<\n ValidateInstrumentsQuery,\n ValidateInstrumentsQueryVariables\n >(validateInstruments, {\n variables: {\n instruments: [instrument],\n division,\n },\n fetchPolicy: 'network-only',\n });\n\n useEffect(() => {\n if (!loading && data) {\n setRecords(getRecords(data)!);\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [loading, data]);\n\n const instrumentsNames = records.map(({ instrument: instrumentName }) => instrumentName);\n\n useEffect(() => {\n if (instrumentsNames[0]) {\n setQuery({ instruments: instrumentsNames });\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [records, isDesktop]);\n\n const showError = !!error;\n\n return (\n <>\n {records.length > 0 && (\n <div\n data-testid=\"instrument-live-rate-wrapper\"\n className=\"lw-relative lw-border lw-border-solid lw-border-border-primary lw-text-sm lw-tracking-normal lw-text-text-primary\"\n >\n <InstrumentRateWithData\n loading={loading}\n record={records[0]}\n target={target}\n division={division}\n size={widgetSize}\n />\n <Tooltip id={INSTRUMENT_TOOLTIP_ID} />\n </div>\n )}\n {!loading && showError && (\n <div className=\"lw-flex lw-h-[150px] lw-w-full lw-items-center lw-border lw-border-solid lw-border-border-primary\">\n <ChartError />\n </div>\n )}\n </>\n );\n};\n\nexport { Main };\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.InstrumentRateWithData = void 0;
|
|
7
|
+
var _react = _interopRequireWildcard(require("react"));
|
|
8
|
+
var _labsWidgetCommon = require("@oanda/labs-widget-common");
|
|
9
|
+
var _classnames = _interopRequireDefault(require("classnames"));
|
|
10
|
+
var _LineChartWithData = require("../LineChartWithData");
|
|
11
|
+
var _utils = require("../../utils");
|
|
12
|
+
var _constant = require("../../constant");
|
|
13
|
+
var _utils2 = require("./utils");
|
|
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
|
+
const InstrumentRateWithData = _ref => {
|
|
18
|
+
let {
|
|
19
|
+
loading,
|
|
20
|
+
record,
|
|
21
|
+
target,
|
|
22
|
+
division,
|
|
23
|
+
size = 'fullWithChart'
|
|
24
|
+
} = _ref;
|
|
25
|
+
const {
|
|
26
|
+
isDark
|
|
27
|
+
} = (0, _react.useContext)(_labsWidgetCommon.ThemeContext);
|
|
28
|
+
const {
|
|
29
|
+
updatedRecord,
|
|
30
|
+
error
|
|
31
|
+
} = (0, _utils.useRecords)(record, record.instrument ? target : null);
|
|
32
|
+
const checkLoading = id => loading || !error && updatedRecord?.[id] === undefined;
|
|
33
|
+
const indicator = (0, _utils2.getColorIndicator)(updatedRecord.dailyPercentChange);
|
|
34
|
+
return _react.default.createElement("div", {
|
|
35
|
+
className: "lw-flex lw-flex-col lw-px-4 lw-pb-1 lw-pt-2"
|
|
36
|
+
}, _react.default.createElement("div", {
|
|
37
|
+
className: "lw-flex lw-items-center lw-gap-x-2"
|
|
38
|
+
}, _react.default.createElement(_labsWidgetCommon.LabelWrapper, {
|
|
39
|
+
isLoading: checkLoading('instrument'),
|
|
40
|
+
isError: !!error
|
|
41
|
+
}, _react.default.createElement("span", {
|
|
42
|
+
className: "lw-text-xl lw-font-bold"
|
|
43
|
+
}, _react.default.createElement(_labsWidgetCommon.Truncate, {
|
|
44
|
+
maxWidth: 130,
|
|
45
|
+
text: record.displayName,
|
|
46
|
+
tooltipId: _constant.INSTRUMENT_TOOLTIP_ID
|
|
47
|
+
}))), _react.default.createElement(_labsWidgetCommon.LabelWrapper, {
|
|
48
|
+
isLoading: checkLoading('buy'),
|
|
49
|
+
isError: !!error
|
|
50
|
+
}, _react.default.createElement("div", {
|
|
51
|
+
className: "lw-text-xl lw-font-bold"
|
|
52
|
+
}, _react.default.createElement(_labsWidgetCommon.Price, {
|
|
53
|
+
priceMovement: updatedRecord.buyPriceMovement,
|
|
54
|
+
withoutArrow: true
|
|
55
|
+
}, _react.default.createElement("span", null, updatedRecord.buy?.toFixed(updatedRecord.displayPrecision)))))), size !== 'compact' && _react.default.createElement("div", {
|
|
56
|
+
className: "lw-mt-1 lw-flex lw-items-center lw-gap-x-2"
|
|
57
|
+
}, _react.default.createElement(_labsWidgetCommon.LabelWrapper, {
|
|
58
|
+
isLoading: checkLoading('dailyPercentChange'),
|
|
59
|
+
isError: !!error
|
|
60
|
+
}, _react.default.createElement("span", {
|
|
61
|
+
className: (0, _classnames.default)('lw-font-bold', {
|
|
62
|
+
'lw-text-text-ok': indicator > 0,
|
|
63
|
+
'lw-text-text-danger': indicator < 0,
|
|
64
|
+
'lw-text-text-disabled': indicator === 0
|
|
65
|
+
})
|
|
66
|
+
}, updatedRecord.dailyPercentChange)), _react.default.createElement(_labsWidgetCommon.LabelWrapper, {
|
|
67
|
+
isLoading: checkLoading('dailyPipsChange'),
|
|
68
|
+
isError: !!error
|
|
69
|
+
}, _react.default.createElement("span", {
|
|
70
|
+
className: (0, _classnames.default)('lw-font-bold', {
|
|
71
|
+
'lw-text-text-ok': indicator > 0,
|
|
72
|
+
'lw-text-text-danger': indicator < 0,
|
|
73
|
+
'lw-text-text-disabled': indicator === 0
|
|
74
|
+
})
|
|
75
|
+
}, `(${updatedRecord.dailyPipsChange})`)), size === 'fullWithChart' && _react.default.createElement(_LineChartWithData.LineChartWithData, {
|
|
76
|
+
record: updatedRecord,
|
|
77
|
+
isLoading: checkLoading('instrument'),
|
|
78
|
+
division: division,
|
|
79
|
+
color: (0, _utils2.getChartColor)(indicator, isDark)
|
|
80
|
+
})));
|
|
81
|
+
};
|
|
82
|
+
exports.InstrumentRateWithData = InstrumentRateWithData;
|
|
83
|
+
//# sourceMappingURL=InstrumentRateWithData.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"InstrumentRateWithData.js","names":["_react","_interopRequireWildcard","require","_labsWidgetCommon","_classnames","_interopRequireDefault","_LineChartWithData","_utils","_constant","_utils2","e","__esModule","default","_getRequireWildcardCache","WeakMap","r","t","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","InstrumentRateWithData","_ref","loading","record","target","division","size","isDark","useContext","ThemeContext","updatedRecord","error","useRecords","instrument","checkLoading","id","undefined","indicator","getColorIndicator","dailyPercentChange","createElement","className","LabelWrapper","isLoading","isError","Truncate","maxWidth","text","displayName","tooltipId","INSTRUMENT_TOOLTIP_ID","Price","priceMovement","buyPriceMovement","withoutArrow","buy","toFixed","displayPrecision","classNames","dailyPipsChange","LineChartWithData","color","getChartColor","exports"],"sources":["../../../../../src/InstrumentLiveRateWidget/components/InstrumentRateWithData/InstrumentRateWithData.tsx"],"sourcesContent":["import React, { useContext } from 'react';\nimport {\n LabelWrapper, Price, ThemeContext, Truncate,\n} from '@oanda/labs-widget-common';\nimport classNames from 'classnames';\nimport { InstrumentRateWithDataProps } from '../../types';\nimport { LineChartWithData } from '../LineChartWithData';\nimport { useRecords } from '../../utils';\nimport { INSTRUMENT_TOOLTIP_ID } from '../../constant';\nimport { getChartColor, getColorIndicator } from './utils';\n\nconst InstrumentRateWithData = ({\n loading,\n record,\n target,\n division,\n size = 'fullWithChart',\n}: InstrumentRateWithDataProps) => {\n const { isDark } = useContext(ThemeContext);\n const { updatedRecord, error } = useRecords(record, record.instrument ? target : null);\n\n const checkLoading = (id: string) => loading || (!error && updatedRecord?.[id] === undefined);\n\n const indicator = getColorIndicator(updatedRecord.dailyPercentChange);\n\n return (\n <div className=\"lw-flex lw-flex-col lw-px-4 lw-pb-1 lw-pt-2\">\n <div className=\"lw-flex lw-items-center lw-gap-x-2\">\n <LabelWrapper\n isLoading={checkLoading('instrument')}\n isError={!!error}\n >\n <span className=\"lw-text-xl lw-font-bold\">\n <Truncate maxWidth={130} text={record.displayName} tooltipId={INSTRUMENT_TOOLTIP_ID} />\n </span>\n </LabelWrapper>\n <LabelWrapper\n isLoading={checkLoading('buy')}\n isError={!!error}\n >\n <div className=\"lw-text-xl lw-font-bold\">\n <Price priceMovement={updatedRecord.buyPriceMovement} withoutArrow>\n <span>{updatedRecord.buy?.toFixed(updatedRecord.displayPrecision)}</span>\n </Price>\n </div>\n </LabelWrapper>\n </div>\n {size !== 'compact'\n && (\n <div className=\"lw-mt-1 lw-flex lw-items-center lw-gap-x-2\">\n <LabelWrapper\n isLoading={checkLoading('dailyPercentChange')}\n isError={!!error}\n >\n <span className={classNames('lw-font-bold', {\n 'lw-text-text-ok': indicator > 0,\n 'lw-text-text-danger': indicator < 0,\n 'lw-text-text-disabled': indicator === 0,\n })}\n >\n {updatedRecord.dailyPercentChange}\n </span>\n\n </LabelWrapper>\n <LabelWrapper\n isLoading={checkLoading('dailyPipsChange')}\n isError={!!error}\n >\n <span className={classNames('lw-font-bold', {\n 'lw-text-text-ok': indicator > 0,\n 'lw-text-text-danger': indicator < 0,\n 'lw-text-text-disabled': indicator === 0,\n })}\n >\n {`(${updatedRecord.dailyPipsChange})`}\n </span>\n </LabelWrapper>\n {size === 'fullWithChart' && (\n <LineChartWithData\n record={updatedRecord}\n isLoading={checkLoading('instrument')}\n division={division}\n color={getChartColor(indicator, isDark)}\n />\n )}\n </div>\n )}\n </div>\n );\n};\n\nexport { InstrumentRateWithData };\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
var _InstrumentRateWithData = require("./InstrumentRateWithData");
|
|
7
|
+
Object.keys(_InstrumentRateWithData).forEach(function (key) {
|
|
8
|
+
if (key === "default" || key === "__esModule") return;
|
|
9
|
+
if (key in exports && exports[key] === _InstrumentRateWithData[key]) return;
|
|
10
|
+
Object.defineProperty(exports, key, {
|
|
11
|
+
enumerable: true,
|
|
12
|
+
get: function () {
|
|
13
|
+
return _InstrumentRateWithData[key];
|
|
14
|
+
}
|
|
15
|
+
});
|
|
16
|
+
});
|
|
17
|
+
var _utils = require("./utils");
|
|
18
|
+
Object.keys(_utils).forEach(function (key) {
|
|
19
|
+
if (key === "default" || key === "__esModule") return;
|
|
20
|
+
if (key in exports && exports[key] === _utils[key]) return;
|
|
21
|
+
Object.defineProperty(exports, key, {
|
|
22
|
+
enumerable: true,
|
|
23
|
+
get: function () {
|
|
24
|
+
return _utils[key];
|
|
25
|
+
}
|
|
26
|
+
});
|
|
27
|
+
});
|
|
28
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","names":["_InstrumentRateWithData","require","Object","keys","forEach","key","exports","defineProperty","enumerable","get","_utils"],"sources":["../../../../../src/InstrumentLiveRateWidget/components/InstrumentRateWithData/index.ts"],"sourcesContent":["export * from './InstrumentRateWithData';\nexport * from './utils';\n"],"mappings":";;;;;AAAA,IAAAA,uBAAA,GAAAC,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAH,uBAAA,EAAAI,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAL,uBAAA,CAAAK,GAAA;EAAAH,MAAA,CAAAK,cAAA,CAAAD,OAAA,EAAAD,GAAA;IAAAG,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAT,uBAAA,CAAAK,GAAA;IAAA;EAAA;AAAA;AACA,IAAAK,MAAA,GAAAT,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAO,MAAA,EAAAN,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAK,MAAA,CAAAL,GAAA;EAAAH,MAAA,CAAAK,cAAA,CAAAD,OAAA,EAAAD,GAAA;IAAAG,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAC,MAAA,CAAAL,GAAA;IAAA;EAAA;AAAA","ignoreList":[]}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.getColorIndicator = exports.getChartColor = void 0;
|
|
7
|
+
var _labsWidgetCommon = require("@oanda/labs-widget-common");
|
|
8
|
+
const getColorIndicator = dailyChange => {
|
|
9
|
+
const numberValue = Number(dailyChange?.substring(0, dailyChange.length - 1));
|
|
10
|
+
return Math.sign(numberValue);
|
|
11
|
+
};
|
|
12
|
+
exports.getColorIndicator = getColorIndicator;
|
|
13
|
+
const getChartColor = (indicator, isDarkMode) => {
|
|
14
|
+
const theme = isDarkMode ? _labsWidgetCommon.darkTheme : _labsWidgetCommon.lightTheme;
|
|
15
|
+
switch (indicator) {
|
|
16
|
+
case 1:
|
|
17
|
+
return theme.textOk;
|
|
18
|
+
case -1:
|
|
19
|
+
return theme.textDanger;
|
|
20
|
+
default:
|
|
21
|
+
return theme.textDisabled;
|
|
22
|
+
}
|
|
23
|
+
};
|
|
24
|
+
exports.getChartColor = getChartColor;
|
|
25
|
+
//# sourceMappingURL=utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.js","names":["_labsWidgetCommon","require","getColorIndicator","dailyChange","numberValue","Number","substring","length","Math","sign","exports","getChartColor","indicator","isDarkMode","theme","darkTheme","lightTheme","textOk","textDanger","textDisabled"],"sources":["../../../../../src/InstrumentLiveRateWidget/components/InstrumentRateWithData/utils.ts"],"sourcesContent":["import { lightTheme, darkTheme } from '@oanda/labs-widget-common';\n\nconst getColorIndicator = (dailyChange?: string) => {\n const numberValue = Number(dailyChange?.substring(0, dailyChange.length - 1));\n\n return Math.sign(numberValue);\n};\n\nconst getChartColor = (indicator?: number, isDarkMode?: boolean) => {\n const theme = isDarkMode ? darkTheme : lightTheme;\n\n switch (indicator) {\n case 1:\n return theme.textOk;\n case -1:\n return theme.textDanger;\n default:\n return theme.textDisabled;\n }\n};\n\nexport {\n getColorIndicator,\n getChartColor,\n};\n"],"mappings":";;;;;;AAAA,IAAAA,iBAAA,GAAAC,OAAA;AAEA,MAAMC,iBAAiB,GAAIC,WAAoB,IAAK;EAClD,MAAMC,WAAW,GAAGC,MAAM,CAACF,WAAW,EAAEG,SAAS,CAAC,CAAC,EAAEH,WAAW,CAACI,MAAM,GAAG,CAAC,CAAC,CAAC;EAE7E,OAAOC,IAAI,CAACC,IAAI,CAACL,WAAW,CAAC;AAC/B,CAAC;AAACM,OAAA,CAAAR,iBAAA,GAAAA,iBAAA;AAEF,MAAMS,aAAa,GAAGA,CAACC,SAAkB,EAAEC,UAAoB,KAAK;EAClE,MAAMC,KAAK,GAAGD,UAAU,GAAGE,2BAAS,GAAGC,4BAAU;EAEjD,QAAQJ,SAAS;IACf,KAAK,CAAC;MACJ,OAAOE,KAAK,CAACG,MAAM;IACrB,KAAK,CAAC,CAAC;MACL,OAAOH,KAAK,CAACI,UAAU;IACzB;MACE,OAAOJ,KAAK,CAACK,YAAY;EAC7B;AACF,CAAC;AAACT,OAAA,CAAAC,aAAA,GAAAA,aAAA","ignoreList":[]}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.LineChartWithData = void 0;
|
|
7
|
+
var _react = _interopRequireDefault(require("react"));
|
|
8
|
+
var _client = require("@apollo/client");
|
|
9
|
+
var _labsWidgetCommon = require("@oanda/labs-widget-common");
|
|
10
|
+
var _getInstrumentsChart = require("../../../gql/getInstrumentsChart");
|
|
11
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
12
|
+
const LineChartWithData = _ref => {
|
|
13
|
+
let {
|
|
14
|
+
padding,
|
|
15
|
+
record,
|
|
16
|
+
size,
|
|
17
|
+
isLoading,
|
|
18
|
+
division,
|
|
19
|
+
color
|
|
20
|
+
} = _ref;
|
|
21
|
+
const {
|
|
22
|
+
loading,
|
|
23
|
+
data
|
|
24
|
+
} = (0, _client.useQuery)(_getInstrumentsChart.getInstrumentsChart, {
|
|
25
|
+
variables: {
|
|
26
|
+
instruments: [record.instrument],
|
|
27
|
+
division
|
|
28
|
+
},
|
|
29
|
+
fetchPolicy: 'network-only',
|
|
30
|
+
skip: !record.instrument
|
|
31
|
+
});
|
|
32
|
+
const showLoader = isLoading || loading;
|
|
33
|
+
const chart = data?.topicalInstrumentsCharts?.[0].chart || [];
|
|
34
|
+
return _react.default.createElement(_react.default.Fragment, null, showLoader && _react.default.createElement(_labsWidgetCommon.Loader, {
|
|
35
|
+
size: _labsWidgetCommon.LoaderSize.md
|
|
36
|
+
}), !showLoader && _react.default.createElement(_labsWidgetCommon.LineChart, {
|
|
37
|
+
padding: padding,
|
|
38
|
+
size: size,
|
|
39
|
+
color: color,
|
|
40
|
+
data: chart
|
|
41
|
+
}));
|
|
42
|
+
};
|
|
43
|
+
exports.LineChartWithData = LineChartWithData;
|
|
44
|
+
//# sourceMappingURL=LineChartWithData.js.map
|
package/dist/main/InstrumentLiveRateWidget/components/LineChartWithData/LineChartWithData.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"LineChartWithData.js","names":["_react","_interopRequireDefault","require","_client","_labsWidgetCommon","_getInstrumentsChart","e","__esModule","default","LineChartWithData","_ref","padding","record","size","isLoading","division","color","loading","data","useQuery","getInstrumentsChart","variables","instruments","instrument","fetchPolicy","skip","showLoader","chart","topicalInstrumentsCharts","createElement","Fragment","Loader","LoaderSize","md","LineChart","exports"],"sources":["../../../../../src/InstrumentLiveRateWidget/components/LineChartWithData/LineChartWithData.tsx"],"sourcesContent":["import React from 'react';\nimport { useQuery } from '@apollo/client';\nimport {\n LineChart, Loader, LoaderSize,\n} from '@oanda/labs-widget-common';\nimport { LineChartWithDataProps } from './types';\nimport { getInstrumentsChart } from '../../../gql/getInstrumentsChart';\nimport { GetInstrumentsChartQuery, GetInstrumentsChartQueryVariables } from '../../../gql/types/graphql';\n\nconst LineChartWithData = ({\n padding,\n record,\n size,\n isLoading,\n division,\n color,\n}: LineChartWithDataProps) => {\n const { loading, data } = useQuery<\n GetInstrumentsChartQuery,\n GetInstrumentsChartQueryVariables\n >(getInstrumentsChart, {\n variables: {\n instruments: [record.instrument],\n division,\n },\n fetchPolicy: 'network-only',\n skip: !record.instrument,\n });\n\n const showLoader = isLoading || loading;\n const chart = data?.topicalInstrumentsCharts?.[0].chart || [];\n\n return (\n <>\n {showLoader && <Loader size={LoaderSize.md} />}\n {!showLoader && (\n <LineChart\n padding={padding}\n size={size}\n color={color}\n data={chart}\n />\n )}\n </>\n );\n};\n\nexport { LineChartWithData };\n"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,OAAA,GAAAD,OAAA;AACA,IAAAE,iBAAA,GAAAF,OAAA;AAIA,IAAAG,oBAAA,GAAAH,OAAA;AAAuE,SAAAD,uBAAAK,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAGvE,MAAMG,iBAAiB,GAAGC,IAAA,IAOI;EAAA,IAPH;IACzBC,OAAO;IACPC,MAAM;IACNC,IAAI;IACJC,SAAS;IACTC,QAAQ;IACRC;EACsB,CAAC,GAAAN,IAAA;EACvB,MAAM;IAAEO,OAAO;IAAEC;EAAK,CAAC,GAAG,IAAAC,gBAAQ,EAGhCC,wCAAmB,EAAE;IACrBC,SAAS,EAAE;MACTC,WAAW,EAAE,CAACV,MAAM,CAACW,UAAU,CAAC;MAChCR;IACF,CAAC;IACDS,WAAW,EAAE,cAAc;IAC3BC,IAAI,EAAE,CAACb,MAAM,CAACW;EAChB,CAAC,CAAC;EAEF,MAAMG,UAAU,GAAGZ,SAAS,IAAIG,OAAO;EACvC,MAAMU,KAAK,GAAGT,IAAI,EAAEU,wBAAwB,GAAG,CAAC,CAAC,CAACD,KAAK,IAAI,EAAE;EAE7D,OACE3B,MAAA,CAAAQ,OAAA,CAAAqB,aAAA,CAAA7B,MAAA,CAAAQ,OAAA,CAAAsB,QAAA,QACGJ,UAAU,IAAI1B,MAAA,CAAAQ,OAAA,CAAAqB,aAAA,CAACzB,iBAAA,CAAA2B,MAAM;IAAClB,IAAI,EAAEmB,4BAAU,CAACC;EAAG,CAAE,CAAC,EAC7C,CAACP,UAAU,IACV1B,MAAA,CAAAQ,OAAA,CAAAqB,aAAA,CAACzB,iBAAA,CAAA8B,SAAS;IACRvB,OAAO,EAAEA,OAAQ;IACjBE,IAAI,EAAEA,IAAK;IACXG,KAAK,EAAEA,KAAM;IACbE,IAAI,EAAES;EAAM,CACb,CAEH,CAAC;AAEP,CAAC;AAACQ,OAAA,CAAA1B,iBAAA,GAAAA,iBAAA","ignoreList":[]}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
var _LineChartWithData = require("./LineChartWithData");
|
|
7
|
+
Object.keys(_LineChartWithData).forEach(function (key) {
|
|
8
|
+
if (key === "default" || key === "__esModule") return;
|
|
9
|
+
if (key in exports && exports[key] === _LineChartWithData[key]) return;
|
|
10
|
+
Object.defineProperty(exports, key, {
|
|
11
|
+
enumerable: true,
|
|
12
|
+
get: function () {
|
|
13
|
+
return _LineChartWithData[key];
|
|
14
|
+
}
|
|
15
|
+
});
|
|
16
|
+
});
|
|
17
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","names":["_LineChartWithData","require","Object","keys","forEach","key","exports","defineProperty","enumerable","get"],"sources":["../../../../../src/InstrumentLiveRateWidget/components/LineChartWithData/index.ts"],"sourcesContent":["export * from './LineChartWithData';\n"],"mappings":";;;;;AAAA,IAAAA,kBAAA,GAAAC,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAH,kBAAA,EAAAI,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAL,kBAAA,CAAAK,GAAA;EAAAH,MAAA,CAAAK,cAAA,CAAAD,OAAA,EAAAD,GAAA;IAAAG,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAT,kBAAA,CAAAK,GAAA;IAAA;EAAA;AAAA","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","names":[],"sources":["../../../../../src/InstrumentLiveRateWidget/components/LineChartWithData/types.tsx"],"sourcesContent":["import { LineChartSize } from '@oanda/labs-widget-common';\nimport { DataRecord } from '../../types';\nimport { Division } from '../../../gql/types/graphql';\n\nexport interface LineChartWithDataProps {\n padding?: number;\n record: DataRecord;\n size?: LineChartSize;\n isLoading: boolean;\n division: Division;\n color: string;\n}\n"],"mappings":"","ignoreList":[]}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
var _LineChartWithData = require("./LineChartWithData");
|
|
7
|
+
Object.keys(_LineChartWithData).forEach(function (key) {
|
|
8
|
+
if (key === "default" || key === "__esModule") return;
|
|
9
|
+
if (key in exports && exports[key] === _LineChartWithData[key]) return;
|
|
10
|
+
Object.defineProperty(exports, key, {
|
|
11
|
+
enumerable: true,
|
|
12
|
+
get: function () {
|
|
13
|
+
return _LineChartWithData[key];
|
|
14
|
+
}
|
|
15
|
+
});
|
|
16
|
+
});
|
|
17
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","names":["_LineChartWithData","require","Object","keys","forEach","key","exports","defineProperty","enumerable","get"],"sources":["../../../../src/InstrumentLiveRateWidget/components/index.ts"],"sourcesContent":["export * from './LineChartWithData';\n"],"mappings":";;;;;AAAA,IAAAA,kBAAA,GAAAC,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAH,kBAAA,EAAAI,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAL,kBAAA,CAAAK,GAAA;EAAAH,MAAA,CAAAK,cAAA,CAAAD,OAAA,EAAAD,GAAA;IAAAG,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAT,kBAAA,CAAAK,GAAA;IAAA;EAAA;AAAA","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"constant.js","names":["INSTRUMENT_TOOLTIP_ID","exports"],"sources":["../../../src/InstrumentLiveRateWidget/constant.ts"],"sourcesContent":["const INSTRUMENT_TOOLTIP_ID = 'instrument_tooltip_id';\n\nexport {\n INSTRUMENT_TOOLTIP_ID,\n};\n"],"mappings":";;;;;;AAAA,MAAMA,qBAAqB,GAAAC,OAAA,CAAAD,qBAAA,GAAG,uBAAuB","ignoreList":[]}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _react = _interopRequireDefault(require("react"));
|
|
4
|
+
var _client = require("react-dom/client");
|
|
5
|
+
var _labsWidgetCommon = require("@oanda/labs-widget-common");
|
|
6
|
+
var _InstrumentLiveRateWidget = require("./InstrumentLiveRateWidget");
|
|
7
|
+
var _graphql = require("../gql/types/graphql");
|
|
8
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
9
|
+
const {
|
|
10
|
+
graphqlUrl,
|
|
11
|
+
liveRatesUrl
|
|
12
|
+
} = window.widgetsConfig || {};
|
|
13
|
+
const instrumentLiveRateElements = document.querySelectorAll('div[data-instrument-live-rate-params]');
|
|
14
|
+
instrumentLiveRateElements.forEach(element => {
|
|
15
|
+
const root = (0, _client.createRoot)(element);
|
|
16
|
+
const params = element.getAttribute('data-instrument-live-rate-params');
|
|
17
|
+
const mode = element.getAttribute('data-mode');
|
|
18
|
+
const {
|
|
19
|
+
instrument,
|
|
20
|
+
division,
|
|
21
|
+
locale,
|
|
22
|
+
size
|
|
23
|
+
} = JSON.parse(params);
|
|
24
|
+
const isParamError = (0, _labsWidgetCommon.validateToolParams)({
|
|
25
|
+
division,
|
|
26
|
+
locale,
|
|
27
|
+
graphqlUrl,
|
|
28
|
+
liveRatesUrl
|
|
29
|
+
}, [{
|
|
30
|
+
name: 'locale',
|
|
31
|
+
valueCheck: value => (0, _labsWidgetCommon.validateLocale)(value)
|
|
32
|
+
}, {
|
|
33
|
+
name: 'division',
|
|
34
|
+
valueCheck: value => Object.values(_graphql.Division).includes(value)
|
|
35
|
+
}, {
|
|
36
|
+
name: 'graphqlUrl'
|
|
37
|
+
}, {
|
|
38
|
+
name: 'liveRatesUrl'
|
|
39
|
+
}]);
|
|
40
|
+
root.render(_react.default.createElement(_InstrumentLiveRateWidget.InstrumentLiveRateWidget, {
|
|
41
|
+
graphqlUrl: graphqlUrl,
|
|
42
|
+
liveRatesUrl: liveRatesUrl,
|
|
43
|
+
division: division,
|
|
44
|
+
instrument: instrument,
|
|
45
|
+
locale: locale,
|
|
46
|
+
theme: mode,
|
|
47
|
+
isParamError: isParamError,
|
|
48
|
+
size: size
|
|
49
|
+
}));
|
|
50
|
+
});
|
|
51
|
+
//# sourceMappingURL=render.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"render.js","names":["_react","_interopRequireDefault","require","_client","_labsWidgetCommon","_InstrumentLiveRateWidget","_graphql","e","__esModule","default","graphqlUrl","liveRatesUrl","window","widgetsConfig","instrumentLiveRateElements","document","querySelectorAll","forEach","element","root","createRoot","params","getAttribute","mode","instrument","division","locale","size","JSON","parse","isParamError","validateToolParams","name","valueCheck","value","validateLocale","Object","values","Division","includes","render","createElement","InstrumentLiveRateWidget","theme"],"sources":["../../../src/InstrumentLiveRateWidget/render.tsx"],"sourcesContent":["import React from 'react';\nimport { createRoot } from 'react-dom/client';\nimport { Theme, validateLocale, validateToolParams } from '@oanda/labs-widget-common';\nimport { InstrumentLiveRateWidget } from './InstrumentLiveRateWidget';\nimport { Division } from '../gql/types/graphql';\n\nconst {\n graphqlUrl,\n liveRatesUrl,\n} = window.widgetsConfig || {};\n\nconst instrumentLiveRateElements = document.querySelectorAll('div[data-instrument-live-rate-params]');\n\ninstrumentLiveRateElements.forEach((element) => {\n const root = createRoot(element);\n const params = element.getAttribute('data-instrument-live-rate-params');\n const mode = element.getAttribute('data-mode');\n const {\n instrument, division, locale, size,\n } = JSON.parse(params as string);\n\n const isParamError = validateToolParams({\n division, locale, graphqlUrl, liveRatesUrl,\n }, [{\n name: 'locale',\n valueCheck: (value) => validateLocale(value),\n }, {\n name: 'division',\n valueCheck: (value) => Object.values(Division).includes(value),\n }, {\n name: 'graphqlUrl',\n }, {\n name: 'liveRatesUrl',\n }]);\n\n root.render(\n <InstrumentLiveRateWidget\n graphqlUrl={graphqlUrl}\n liveRatesUrl={liveRatesUrl}\n division={division}\n instrument={instrument}\n locale={locale}\n theme={mode as Theme}\n isParamError={isParamError}\n size={size}\n />,\n );\n});\n"],"mappings":";;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,OAAA,GAAAD,OAAA;AACA,IAAAE,iBAAA,GAAAF,OAAA;AACA,IAAAG,yBAAA,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,0BAA0B,GAAGC,QAAQ,CAACC,gBAAgB,CAAC,uCAAuC,CAAC;AAErGF,0BAA0B,CAACG,OAAO,CAAEC,OAAO,IAAK;EAC9C,MAAMC,IAAI,GAAG,IAAAC,kBAAU,EAACF,OAAO,CAAC;EAChC,MAAMG,MAAM,GAAGH,OAAO,CAACI,YAAY,CAAC,kCAAkC,CAAC;EACvE,MAAMC,IAAI,GAAGL,OAAO,CAACI,YAAY,CAAC,WAAW,CAAC;EAC9C,MAAM;IACJE,UAAU;IAAEC,QAAQ;IAAEC,MAAM;IAAEC;EAChC,CAAC,GAAGC,IAAI,CAACC,KAAK,CAACR,MAAgB,CAAC;EAEhC,MAAMS,YAAY,GAAG,IAAAC,oCAAkB,EAAC;IACtCN,QAAQ;IAAEC,MAAM;IAAEhB,UAAU;IAAEC;EAChC,CAAC,EAAE,CAAC;IACFqB,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;EACR,CAAC,EAAE;IACDA,IAAI,EAAE;EACR,CAAC,CAAC,CAAC;EAEHb,IAAI,CAACqB,MAAM,CACTxC,MAAA,CAAAS,OAAA,CAAAgC,aAAA,CAACpC,yBAAA,CAAAqC,wBAAwB;IACvBhC,UAAU,EAAEA,UAAW;IACvBC,YAAY,EAAEA,YAAa;IAC3Bc,QAAQ,EAAEA,QAAS;IACnBD,UAAU,EAAEA,UAAW;IACvBE,MAAM,EAAEA,MAAO;IACfiB,KAAK,EAAEpB,IAAc;IACrBO,YAAY,EAAEA,YAAa;IAC3BH,IAAI,EAAEA;EAAK,CACZ,CACH,CAAC;AACH,CAAC,CAAC","ignoreList":[]}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
Object.defineProperty(exports, "Division", {
|
|
7
|
+
enumerable: true,
|
|
8
|
+
get: function () {
|
|
9
|
+
return _graphql.Division;
|
|
10
|
+
}
|
|
11
|
+
});
|
|
12
|
+
Object.defineProperty(exports, "Locale", {
|
|
13
|
+
enumerable: true,
|
|
14
|
+
get: function () {
|
|
15
|
+
return _monoI18n.Locale;
|
|
16
|
+
}
|
|
17
|
+
});
|
|
18
|
+
var _monoI18n = require("@oanda/mono-i18n");
|
|
19
|
+
var _graphql = require("../gql/types/graphql");
|
|
20
|
+
//# sourceMappingURL=types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","names":["_monoI18n","require","_graphql"],"sources":["../../../src/InstrumentLiveRateWidget/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 InstrumentLiveRateConfig {\n graphqlUrl: string;\n division: Division;\n liveRatesUrl: string;\n instrument: string;\n locale: Locale;\n theme?: Theme;\n isParamError?: boolean;\n removePadding?: boolean;\n size?: 'compact' | 'full' | 'fullWithChart';\n}\n\nexport interface MainProps {\n instrument: string;\n division: Division;\n size?: 'compact' | 'full' | 'fullWithChart'\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 buyPriceMovement?: number;\n dailyPercentChange?: string;\n dailyPipsChange?: number;\n displayPrecision?: number;\n}\n\nexport interface InstrumentRateWithDataProps {\n loading: boolean;\n record: DataRecord;\n target: EventTarget | null;\n division: Division;\n size?: 'compact' | 'full' | 'fullWithChart'\n}\n"],"mappings":";;;;;;;;;;;;;;;;;AAIA,IAAAA,SAAA,GAAAC,OAAA;AACA,IAAAC,QAAA,GAAAD,OAAA","ignoreList":[]}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.useRecords = exports.getRecords = void 0;
|
|
7
|
+
var _react = require("react");
|
|
8
|
+
var _labsWidgetCommon = require("@oanda/labs-widget-common");
|
|
9
|
+
const getRecords = data => data?.mapInstrumentNames?.map(item => ({
|
|
10
|
+
instrument: item?.name || '',
|
|
11
|
+
displayName: item?.displayName || ''
|
|
12
|
+
}));
|
|
13
|
+
exports.getRecords = getRecords;
|
|
14
|
+
const useRecords = (record, target) => {
|
|
15
|
+
const [updatedRecord, setUpdatedRecord] = (0, _react.useState)({
|
|
16
|
+
displayName: record.displayName,
|
|
17
|
+
instrument: record.instrument,
|
|
18
|
+
sentiment: record.sentiment
|
|
19
|
+
});
|
|
20
|
+
const [error, setError] = (0, _react.useState)(null);
|
|
21
|
+
const {
|
|
22
|
+
update,
|
|
23
|
+
error: liveRatesError
|
|
24
|
+
} = (0, _labsWidgetCommon.useLiveRatesMessage)(record.instrument, target);
|
|
25
|
+
(0, _react.useEffect)(() => {
|
|
26
|
+
setUpdatedRecord({
|
|
27
|
+
displayName: record.displayName,
|
|
28
|
+
instrument: record.instrument,
|
|
29
|
+
buy: update?.bid,
|
|
30
|
+
buyPriceMovement: update?.bidPriceMovement,
|
|
31
|
+
dailyPercentChange: update?.dailyPercentChangeFromOpen,
|
|
32
|
+
dailyPipsChange: update?.dailyPipsChangeFromOpen,
|
|
33
|
+
displayPrecision: update?.displayPrecision
|
|
34
|
+
});
|
|
35
|
+
setError(liveRatesError);
|
|
36
|
+
}, [update, record, liveRatesError]);
|
|
37
|
+
return {
|
|
38
|
+
updatedRecord,
|
|
39
|
+
error
|
|
40
|
+
};
|
|
41
|
+
};
|
|
42
|
+
exports.useRecords = useRecords;
|
|
43
|
+
//# sourceMappingURL=utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.js","names":["_react","require","_labsWidgetCommon","getRecords","data","mapInstrumentNames","map","item","instrument","name","displayName","exports","useRecords","record","target","updatedRecord","setUpdatedRecord","useState","sentiment","error","setError","update","liveRatesError","useLiveRatesMessage","useEffect","buy","bid","buyPriceMovement","bidPriceMovement","dailyPercentChange","dailyPercentChangeFromOpen","dailyPipsChange","dailyPipsChangeFromOpen","displayPrecision"],"sources":["../../../src/InstrumentLiveRateWidget/utils.ts"],"sourcesContent":["import { useState, useEffect } from 'react';\nimport { LiveRatesErrorMessage, useLiveRatesMessage } from '@oanda/labs-widget-common';\nimport { DataRecord, EmptyRecord } from './types';\nimport { ValidateInstrumentsQuery } from '../gql/types/graphql';\n\nconst getRecords = (data: ValidateInstrumentsQuery) => data?.mapInstrumentNames?.map((item) => ({\n instrument: item?.name || '',\n displayName: item?.displayName || '',\n}));\n\nconst useRecords = (\n record: DataRecord | EmptyRecord,\n target: EventTarget | null,\n) => {\n const [updatedRecord, setUpdatedRecord] = useState<DataRecord>({\n displayName: record.displayName,\n instrument: record.instrument,\n sentiment: record.sentiment,\n });\n const [error, setError] = useState<LiveRatesErrorMessage | null>(null);\n\n const { update, error: liveRatesError } = useLiveRatesMessage(\n record.instrument,\n target,\n );\n\n useEffect(() => {\n setUpdatedRecord({\n displayName: record.displayName,\n instrument: record.instrument,\n buy: update?.bid,\n buyPriceMovement: update?.bidPriceMovement,\n dailyPercentChange: update?.dailyPercentChangeFromOpen,\n dailyPipsChange: update?.dailyPipsChangeFromOpen,\n displayPrecision: update?.displayPrecision,\n });\n setError(liveRatesError);\n }, [update, record, liveRatesError]);\n\n return {\n updatedRecord,\n error,\n };\n};\n\nexport {\n getRecords,\n useRecords,\n};\n"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AACA,IAAAC,iBAAA,GAAAD,OAAA;AAIA,MAAME,UAAU,GAAIC,IAA8B,IAAKA,IAAI,EAAEC,kBAAkB,EAAEC,GAAG,CAAEC,IAAI,KAAM;EAC9FC,UAAU,EAAED,IAAI,EAAEE,IAAI,IAAI,EAAE;EAC5BC,WAAW,EAAEH,IAAI,EAAEG,WAAW,IAAI;AACpC,CAAC,CAAC,CAAC;AAACC,OAAA,CAAAR,UAAA,GAAAA,UAAA;AAEJ,MAAMS,UAAU,GAAGA,CACjBC,MAAgC,EAChCC,MAA0B,KACvB;EACH,MAAM,CAACC,aAAa,EAAEC,gBAAgB,CAAC,GAAG,IAAAC,eAAQ,EAAa;IAC7DP,WAAW,EAAEG,MAAM,CAACH,WAAW;IAC/BF,UAAU,EAAEK,MAAM,CAACL,UAAU;IAC7BU,SAAS,EAAEL,MAAM,CAACK;EACpB,CAAC,CAAC;EACF,MAAM,CAACC,KAAK,EAAEC,QAAQ,CAAC,GAAG,IAAAH,eAAQ,EAA+B,IAAI,CAAC;EAEtE,MAAM;IAAEI,MAAM;IAAEF,KAAK,EAAEG;EAAe,CAAC,GAAG,IAAAC,qCAAmB,EAC3DV,MAAM,CAACL,UAAU,EACjBM,MACF,CAAC;EAED,IAAAU,gBAAS,EAAC,MAAM;IACdR,gBAAgB,CAAC;MACfN,WAAW,EAAEG,MAAM,CAACH,WAAW;MAC/BF,UAAU,EAAEK,MAAM,CAACL,UAAU;MAC7BiB,GAAG,EAAEJ,MAAM,EAAEK,GAAG;MAChBC,gBAAgB,EAAEN,MAAM,EAAEO,gBAAgB;MAC1CC,kBAAkB,EAAER,MAAM,EAAES,0BAA0B;MACtDC,eAAe,EAAEV,MAAM,EAAEW,uBAAuB;MAChDC,gBAAgB,EAAEZ,MAAM,EAAEY;IAC5B,CAAC,CAAC;IACFb,QAAQ,CAACE,cAAc,CAAC;EAC1B,CAAC,EAAE,CAACD,MAAM,EAAER,MAAM,EAAES,cAAc,CAAC,CAAC;EAEpC,OAAO;IACLP,aAAa;IACbI;EACF,CAAC;AACH,CAAC;AAACR,OAAA,CAAAC,UAAA,GAAAA,UAAA","ignoreList":[]}
|