@oanda/labs-currency-cross-table 1.0.5 → 1.0.7
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 +60 -0
- package/codegen.ts +15 -0
- package/dist/main/CurrencyCrossTableWidget/CurrencyCrossTableWidget.js +12 -4
- package/dist/main/CurrencyCrossTableWidget/CurrencyCrossTableWidget.js.map +1 -1
- package/dist/main/CurrencyCrossTableWidget/Main.js +11 -9
- package/dist/main/CurrencyCrossTableWidget/Main.js.map +1 -1
- package/dist/main/CurrencyCrossTableWidget/ValidationWrapper.js +2 -1
- package/dist/main/CurrencyCrossTableWidget/ValidationWrapper.js.map +1 -1
- package/dist/main/CurrencyCrossTableWidget/components/CellValidationWrapper.js +51 -0
- package/dist/main/CurrencyCrossTableWidget/components/CellValidationWrapper.js.map +1 -0
- package/dist/main/CurrencyCrossTableWidget/components/CellWithData.js +19 -11
- package/dist/main/CurrencyCrossTableWidget/components/CellWithData.js.map +1 -1
- package/dist/main/CurrencyCrossTableWidget/components/types.js.map +1 -1
- package/dist/main/CurrencyCrossTableWidget/render.js +7 -2
- package/dist/main/CurrencyCrossTableWidget/render.js.map +1 -1
- package/dist/main/CurrencyCrossTableWidget/types.js +0 -13
- package/dist/main/CurrencyCrossTableWidget/types.js.map +1 -1
- package/dist/main/CurrencyCrossTableWidget/utils.js +13 -30
- package/dist/main/CurrencyCrossTableWidget/utils.js.map +1 -1
- 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 +16 -0
- package/dist/main/gql/types/gql.js.map +1 -0
- package/dist/main/gql/types/graphql.js +223 -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/module/CurrencyCrossTableWidget/CurrencyCrossTableWidget.js +10 -2
- package/dist/module/CurrencyCrossTableWidget/CurrencyCrossTableWidget.js.map +1 -1
- package/dist/module/CurrencyCrossTableWidget/Main.js +13 -11
- package/dist/module/CurrencyCrossTableWidget/Main.js.map +1 -1
- package/dist/module/CurrencyCrossTableWidget/ValidationWrapper.js +2 -1
- package/dist/module/CurrencyCrossTableWidget/ValidationWrapper.js.map +1 -1
- package/dist/module/CurrencyCrossTableWidget/components/CellValidationWrapper.js +44 -0
- package/dist/module/CurrencyCrossTableWidget/components/CellValidationWrapper.js.map +1 -0
- package/dist/module/CurrencyCrossTableWidget/components/CellWithData.js +20 -12
- package/dist/module/CurrencyCrossTableWidget/components/CellWithData.js.map +1 -1
- package/dist/module/CurrencyCrossTableWidget/components/types.js.map +1 -1
- package/dist/module/CurrencyCrossTableWidget/render.js +6 -1
- package/dist/module/CurrencyCrossTableWidget/render.js.map +1 -1
- package/dist/module/CurrencyCrossTableWidget/types.js +0 -12
- package/dist/module/CurrencyCrossTableWidget/types.js.map +1 -1
- package/dist/module/CurrencyCrossTableWidget/utils.js +10 -29
- package/dist/module/CurrencyCrossTableWidget/utils.js.map +1 -1
- 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 +8 -0
- package/dist/module/gql/types/gql.js.map +1 -0
- package/dist/module/gql/types/graphql.js +217 -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/types/CurrencyCrossTableWidget/CurrencyCrossTableWidget.d.ts +1 -1
- package/dist/types/CurrencyCrossTableWidget/Main.d.ts +1 -1
- package/dist/types/CurrencyCrossTableWidget/components/CellValidationWrapper.d.ts +4 -0
- package/dist/types/CurrencyCrossTableWidget/components/CellWithData.d.ts +1 -1
- package/dist/types/CurrencyCrossTableWidget/components/types.d.ts +15 -1
- package/dist/types/CurrencyCrossTableWidget/types.d.ts +3 -11
- package/dist/types/CurrencyCrossTableWidget/utils.d.ts +5 -6
- package/dist/types/gql/types/fragment-masking.d.ts +15 -0
- package/dist/types/gql/types/gql.d.ts +37 -0
- package/dist/types/gql/types/graphql.d.ts +384 -0
- package/dist/types/gql/types/index.d.ts +2 -0
- package/dist/types/gql/validateInstruments.d.ts +1 -0
- package/package.json +12 -4
- package/src/CurrencyCrossTableWidget/CurrencyCrossTableWidget.tsx +16 -6
- package/src/CurrencyCrossTableWidget/Main.tsx +19 -13
- package/src/CurrencyCrossTableWidget/ValidationWrapper.tsx +1 -0
- package/src/CurrencyCrossTableWidget/components/CellValidationWrapper.tsx +51 -0
- package/src/CurrencyCrossTableWidget/components/CellWithData.tsx +30 -14
- package/src/CurrencyCrossTableWidget/components/types.ts +15 -1
- package/src/CurrencyCrossTableWidget/render.tsx +6 -2
- package/src/CurrencyCrossTableWidget/types.tsx +3 -12
- package/src/CurrencyCrossTableWidget/utils.ts +17 -37
- package/src/gql/types/fragment-masking.ts +66 -0
- package/src/gql/types/gql.ts +42 -0
- package/src/gql/types/graphql.ts +423 -0
- package/src/gql/types/index.ts +2 -0
- package/src/gql/validateInstruments.ts +10 -0
- package/test/Main.test.tsx +12 -6
- package/test/mocks.ts +225 -0
package/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,66 @@
|
|
|
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.7 (2024-09-02)
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
## 1.0.155 (2024-08-29)
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
## 1.0.154 (2024-08-29)
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
## 1.0.153 (2024-08-23)
|
|
19
|
+
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
## 1.0.152 (2024-08-23)
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
|
|
26
|
+
## 1.0.151 (2024-08-20)
|
|
27
|
+
|
|
28
|
+
|
|
29
|
+
|
|
30
|
+
## 1.0.150 (2024-08-19)
|
|
31
|
+
|
|
32
|
+
**Note:** Version bump only for package @oanda/labs-currency-cross-table
|
|
33
|
+
|
|
34
|
+
|
|
35
|
+
|
|
36
|
+
|
|
37
|
+
|
|
38
|
+
## 1.0.6 (2024-08-29)
|
|
39
|
+
|
|
40
|
+
|
|
41
|
+
|
|
42
|
+
## 1.0.154 (2024-08-29)
|
|
43
|
+
|
|
44
|
+
|
|
45
|
+
|
|
46
|
+
## 1.0.153 (2024-08-23)
|
|
47
|
+
|
|
48
|
+
|
|
49
|
+
|
|
50
|
+
## 1.0.152 (2024-08-23)
|
|
51
|
+
|
|
52
|
+
|
|
53
|
+
|
|
54
|
+
## 1.0.151 (2024-08-20)
|
|
55
|
+
|
|
56
|
+
|
|
57
|
+
|
|
58
|
+
## 1.0.150 (2024-08-19)
|
|
59
|
+
|
|
60
|
+
**Note:** Version bump only for package @oanda/labs-currency-cross-table
|
|
61
|
+
|
|
62
|
+
|
|
63
|
+
|
|
64
|
+
|
|
65
|
+
|
|
6
66
|
## 1.0.5 (2024-08-29)
|
|
7
67
|
|
|
8
68
|
|
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;
|
|
@@ -5,14 +5,16 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
});
|
|
6
6
|
exports.CurrencyCrossTableWidget = void 0;
|
|
7
7
|
var _react = _interopRequireDefault(require("react"));
|
|
8
|
+
var _client = require("@apollo/client");
|
|
8
9
|
var _monoI18n = require("@oanda/mono-i18n");
|
|
9
10
|
var _labsWidgetCommon = require("@oanda/labs-widget-common");
|
|
10
11
|
var _translations = require("../translations");
|
|
11
|
-
var _types = require("./types");
|
|
12
12
|
var _ValidationWrapper = require("./ValidationWrapper");
|
|
13
|
+
var _graphql = require("../gql/types/graphql");
|
|
13
14
|
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
14
15
|
const CurrencyCrossTableWidget = _ref => {
|
|
15
16
|
let {
|
|
17
|
+
graphqlUrl,
|
|
16
18
|
liveRatesUrl,
|
|
17
19
|
currencies,
|
|
18
20
|
division,
|
|
@@ -21,8 +23,12 @@ const CurrencyCrossTableWidget = _ref => {
|
|
|
21
23
|
isParamError,
|
|
22
24
|
removePadding
|
|
23
25
|
} = _ref;
|
|
24
|
-
const
|
|
25
|
-
|
|
26
|
+
const client = new _client.ApolloClient({
|
|
27
|
+
uri: graphqlUrl,
|
|
28
|
+
cache: new _client.InMemoryCache()
|
|
29
|
+
});
|
|
30
|
+
const divisionCode = division === _graphql.Division.Opt ? _graphql.Division.Ogm : division;
|
|
31
|
+
const dataSource = divisionCode === _graphql.Division.Ogm ? 'MT5' : 'V20';
|
|
26
32
|
return _react.default.createElement(_labsWidgetCommon.ThemeProvider, {
|
|
27
33
|
removePadding: removePadding,
|
|
28
34
|
theme: theme
|
|
@@ -35,11 +41,13 @@ const CurrencyCrossTableWidget = _ref => {
|
|
|
35
41
|
divisionCode,
|
|
36
42
|
dataSource
|
|
37
43
|
}
|
|
44
|
+
}, _react.default.createElement(_client.ApolloProvider, {
|
|
45
|
+
client: client
|
|
38
46
|
}, _react.default.createElement(_ValidationWrapper.ValidationWrapper, {
|
|
39
47
|
currencies: currencies,
|
|
40
48
|
division: division,
|
|
41
49
|
isParamError: isParamError
|
|
42
|
-
}))));
|
|
50
|
+
})))));
|
|
43
51
|
};
|
|
44
52
|
exports.CurrencyCrossTableWidget = CurrencyCrossTableWidget;
|
|
45
53
|
//# sourceMappingURL=CurrencyCrossTableWidget.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CurrencyCrossTableWidget.js","names":["_react","_interopRequireDefault","require","_monoI18n","_labsWidgetCommon","_translations","
|
|
1
|
+
{"version":3,"file":"CurrencyCrossTableWidget.js","names":["_react","_interopRequireDefault","require","_client","_monoI18n","_labsWidgetCommon","_translations","_ValidationWrapper","_graphql","e","__esModule","default","CurrencyCrossTableWidget","_ref","graphqlUrl","liveRatesUrl","currencies","division","locale","theme","isParamError","removePadding","client","ApolloClient","uri","cache","InMemoryCache","divisionCode","Division","Opt","Ogm","dataSource","createElement","ThemeProvider","LocaleProvider","getLocale","translations","LiveRatesProvider","url","options","ApolloProvider","ValidationWrapper","exports"],"sources":["../../../src/CurrencyCrossTableWidget/CurrencyCrossTableWidget.tsx"],"sourcesContent":["import React from 'react';\nimport { ApolloClient, InMemoryCache, ApolloProvider } from '@apollo/client';\nimport { LocaleProvider } from '@oanda/mono-i18n';\nimport {\n LiveRatesProvider, ThemeProvider, getLocale,\n} from '@oanda/labs-widget-common';\nimport { translations } from '../translations';\nimport { CurrencyCrossTableConfig } from './types';\nimport { ValidationWrapper } from './ValidationWrapper';\nimport { Division } from '../gql/types/graphql';\n\nconst CurrencyCrossTableWidget = ({\n graphqlUrl,\n liveRatesUrl,\n currencies,\n division,\n locale,\n theme,\n isParamError,\n removePadding,\n}: CurrencyCrossTableConfig) => {\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 <ValidationWrapper\n currencies={currencies}\n division={division}\n isParamError={isParamError}\n />\n </ApolloProvider>\n </LiveRatesProvider>\n </LocaleProvider>\n </ThemeProvider>\n );\n};\n\nexport { CurrencyCrossTableWidget };\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;AAEA,IAAAK,kBAAA,GAAAL,OAAA;AACA,IAAAM,QAAA,GAAAN,OAAA;AAAgD,SAAAD,uBAAAQ,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAEhD,MAAMG,wBAAwB,GAAGC,IAAA,IASD;EAAA,IATE;IAChCC,UAAU;IACVC,YAAY;IACZC,UAAU;IACVC,QAAQ;IACRC,MAAM;IACNC,KAAK;IACLC,YAAY;IACZC;EACwB,CAAC,GAAAR,IAAA;EACzB,MAAMS,MAAM,GAAG,IAAIC,oBAAY,CAAC;IAC9BC,GAAG,EAAEV,UAAU;IACfW,KAAK,EAAE,IAAIC,qBAAa,CAAC;EAC3B,CAAC,CAAC;EAEF,MAAMC,YAAY,GAAGV,QAAQ,KAAKW,iBAAQ,CAACC,GAAG,GAAGD,iBAAQ,CAACE,GAAG,GAAGb,QAAQ;EACxE,MAAMc,UAAU,GAAGJ,YAAY,KAAKC,iBAAQ,CAACE,GAAG,GAAG,KAAK,GAAG,KAAK;EAEhE,OACE9B,MAAA,CAAAW,OAAA,CAAAqB,aAAA,CAAC3B,iBAAA,CAAA4B,aAAa;IAACZ,aAAa,EAAEA,aAAc;IAACF,KAAK,EAAEA;EAAM,GACxDnB,MAAA,CAAAW,OAAA,CAAAqB,aAAA,CAAC5B,SAAA,CAAA8B,cAAc;IAAChB,MAAM,EAAE,IAAAiB,2BAAS,EAACjB,MAAM,CAAE;IAACkB,YAAY,EAAEA;EAAa,GACpEpC,MAAA,CAAAW,OAAA,CAAAqB,aAAA,CAAC3B,iBAAA,CAAAgC,iBAAiB;IAChBC,GAAG,EAAEvB,YAAa;IAClBwB,OAAO,EAAE;MAAEZ,YAAY;MAAEI;IAAW;EAAE,GAEtC/B,MAAA,CAAAW,OAAA,CAAAqB,aAAA,CAAC7B,OAAA,CAAAqC,cAAc;IAAClB,MAAM,EAAEA;EAAO,GAC7BtB,MAAA,CAAAW,OAAA,CAAAqB,aAAA,CAACzB,kBAAA,CAAAkC,iBAAiB;IAChBzB,UAAU,EAAEA,UAAW;IACvBC,QAAQ,EAAEA,QAAS;IACnBG,YAAY,EAAEA;EAAa,CAC5B,CACa,CACC,CACL,CACH,CAAC;AAEpB,CAAC;AAACsB,OAAA,CAAA9B,wBAAA,GAAAA,wBAAA","ignoreList":[]}
|
|
@@ -7,12 +7,15 @@ exports.Main = void 0;
|
|
|
7
7
|
var _react = _interopRequireWildcard(require("react"));
|
|
8
8
|
var _labsWidgetCommon = require("@oanda/labs-widget-common");
|
|
9
9
|
var _components = require("./components");
|
|
10
|
+
var _CellValidationWrapper = require("./components/CellValidationWrapper");
|
|
11
|
+
var _utils = require("./utils");
|
|
10
12
|
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); }
|
|
11
13
|
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; }
|
|
12
14
|
const Main = _ref => {
|
|
13
15
|
let {
|
|
14
16
|
instruments,
|
|
15
|
-
currencies
|
|
17
|
+
currencies,
|
|
18
|
+
division
|
|
16
19
|
} = _ref;
|
|
17
20
|
const [selectedCurrency, setSelectedCurrency] = (0, _react.useState)('');
|
|
18
21
|
const [selectedPair, setSelectedPair] = (0, _react.useState)('');
|
|
@@ -46,17 +49,16 @@ const Main = _ref => {
|
|
|
46
49
|
hovered: currency === selectedCurrency
|
|
47
50
|
}), arr.map(pair => _react.default.createElement(_react.Fragment, {
|
|
48
51
|
key: `${currency}_${pair}`
|
|
49
|
-
}, currency !== pair ? _react.default.createElement(
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
displayName: `${currency}/${pair}`
|
|
54
|
-
},
|
|
52
|
+
}, currency !== pair ? _react.default.createElement(_react.Suspense, null, _react.default.createElement(_CellValidationWrapper.CellValidationWrapper, {
|
|
53
|
+
currency: currency,
|
|
54
|
+
pair: pair,
|
|
55
|
+
instrument: `${currency}${(0, _utils.divisionMapper)(division)}${pair}`,
|
|
55
56
|
target: target,
|
|
56
57
|
additionalBorderBottom: index === arr.length - 1,
|
|
57
58
|
setSelectedCurrency: setSelectedCurrency,
|
|
58
|
-
setSelectedPair: setSelectedPair
|
|
59
|
-
|
|
59
|
+
setSelectedPair: setSelectedPair,
|
|
60
|
+
division: division
|
|
61
|
+
})) : _react.default.createElement(_components.TextCell, {
|
|
60
62
|
additionalBorderBottom: index === arr.length - 1,
|
|
61
63
|
emptyIndicator: true
|
|
62
64
|
}))))));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Main.js","names":["_react","_interopRequireWildcard","require","_labsWidgetCommon","_components","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","Main","_ref","instruments","currencies","selectedCurrency","setSelectedCurrency","useState","selectedPair","setSelectedPair","hasInstruments","length","target","setQuery","useLiveRatesQuery","useEffect","createElement","className","TextCell","map","pair","key","label","hovered","currency","index","arr","additionalBorderBottom","Fragment","
|
|
1
|
+
{"version":3,"file":"Main.js","names":["_react","_interopRequireWildcard","require","_labsWidgetCommon","_components","_CellValidationWrapper","_utils","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","Main","_ref","instruments","currencies","division","selectedCurrency","setSelectedCurrency","useState","selectedPair","setSelectedPair","hasInstruments","length","target","setQuery","useLiveRatesQuery","useEffect","createElement","className","TextCell","map","pair","key","label","hovered","currency","index","arr","additionalBorderBottom","Fragment","Suspense","CellValidationWrapper","instrument","divisionMapper","emptyIndicator","exports"],"sources":["../../../src/CurrencyCrossTableWidget/Main.tsx"],"sourcesContent":["import React, {\n Fragment, Suspense, useEffect, useState,\n} from 'react';\nimport { useLiveRatesQuery } from '@oanda/labs-widget-common';\nimport { MainProps } from './types';\nimport { TextCell } from './components';\nimport { CellValidationWrapper } from './components/CellValidationWrapper';\nimport { divisionMapper } from './utils';\n\nconst Main = ({\n instruments,\n currencies,\n division,\n}: MainProps) => {\n const [selectedCurrency, setSelectedCurrency] = useState('');\n const [selectedPair, setSelectedPair] = useState('');\n\n const hasInstruments = instruments.length > 0;\n\n const { target, setQuery } = useLiveRatesQuery();\n\n useEffect(() => {\n if (hasInstruments) {\n setQuery({ instruments });\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, instruments);\n\n return (\n <div data-testid=\"currency-cross-table-wrapper\" className=\"lw-w-full\">\n <div className=\"lw-flex lw-border-l lw-border-t lw-border-solid lw-border-border-primary\">\n <TextCell />\n {currencies.map(((pair) => (\n <TextCell\n key={pair}\n label={pair}\n hovered={pair === selectedPair}\n />\n )))}\n </div>\n {currencies.map(((currency, index, arr) => (\n <div\n key={currency}\n className=\"lw-flex lw-border-l lw-border-t lw-border-solid lw-border-border-primary\"\n >\n <TextCell\n label={currency}\n additionalBorderBottom={index === arr.length - 1}\n hovered={currency === selectedCurrency}\n />\n {arr.map((pair) => (\n <Fragment key={`${currency}_${pair}`}>\n {currency !== pair ? (\n <Suspense>\n <CellValidationWrapper\n currency={currency}\n pair={pair}\n instrument={`${currency}${divisionMapper(division)}${pair}`}\n target={target}\n additionalBorderBottom={index === arr.length - 1}\n setSelectedCurrency={setSelectedCurrency}\n setSelectedPair={setSelectedPair}\n division={division}\n />\n </Suspense>\n ) : (\n <TextCell\n additionalBorderBottom={index === arr.length - 1}\n emptyIndicator\n />\n )}\n </Fragment>\n ))}\n </div>\n )))}\n </div>\n );\n};\n\nexport { Main };\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -21,7 +21,8 @@ const ValidationWrapper = _ref => {
|
|
|
21
21
|
className: "lw-flex lw-w-full lw-text-sm lw-tracking-normal lw-text-text-primary"
|
|
22
22
|
}, !showError && _react.default.createElement(_Main.Main, {
|
|
23
23
|
instruments: (0, _utils.currenciesToInstruments)(currencies, division),
|
|
24
|
-
currencies: currencies
|
|
24
|
+
currencies: currencies,
|
|
25
|
+
division: division
|
|
25
26
|
}), showError && _react.default.createElement("div", {
|
|
26
27
|
className: (0, _classnames.default)('lw-flex lw-h-[250px] lw-w-full lw-items-center lw-border lw-border-solid lw-border-border-primary')
|
|
27
28
|
}, _react.default.createElement(_labsWidgetCommon.ChartError, null))));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ValidationWrapper.js","names":["_react","_interopRequireDefault","require","_classnames","_labsWidgetCommon","_utils","_Main","e","__esModule","default","ValidationWrapper","_ref","currencies","division","isParamError","showError","validCurrencies","createElement","Fragment","className","Main","instruments","currenciesToInstruments","classnames","ChartError","exports"],"sources":["../../../src/CurrencyCrossTableWidget/ValidationWrapper.tsx"],"sourcesContent":["import React from 'react';\nimport classnames from 'classnames';\nimport { ChartError } from '@oanda/labs-widget-common';\nimport { currenciesToInstruments, validCurrencies } from './utils';\nimport { ValidationWrapperProps } from './types';\nimport { Main } from './Main';\n\nconst ValidationWrapper = ({\n currencies,\n division,\n isParamError,\n}: ValidationWrapperProps) => {\n const showError = !validCurrencies(currencies) || isParamError;\n\n return (\n <>\n <div\n className=\"lw-flex lw-w-full lw-text-sm lw-tracking-normal lw-text-text-primary\"\n >\n {!showError && (\n <Main\n instruments={currenciesToInstruments(currencies, division)}\n currencies={currencies}\n />\n )}\n {showError && (\n <div className={classnames('lw-flex lw-h-[250px] lw-w-full lw-items-center lw-border lw-border-solid lw-border-border-primary')}>\n <ChartError />\n </div>\n )}\n </div>\n </>\n );\n};\n\nexport { ValidationWrapper };\n"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,WAAA,GAAAF,sBAAA,CAAAC,OAAA;AACA,IAAAE,iBAAA,GAAAF,OAAA;AACA,IAAAG,MAAA,GAAAH,OAAA;AAEA,IAAAI,KAAA,GAAAJ,OAAA;AAA8B,SAAAD,uBAAAM,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAE9B,MAAMG,iBAAiB,GAAGC,IAAA,IAII;EAAA,IAJH;IACzBC,UAAU;IACVC,QAAQ;IACRC;EACsB,CAAC,GAAAH,IAAA;EACvB,MAAMI,SAAS,GAAG,CAAC,IAAAC,sBAAe,EAACJ,UAAU,CAAC,IAAIE,YAAY;EAE9D,OACEd,MAAA,CAAAS,OAAA,CAAAQ,aAAA,CAAAjB,MAAA,CAAAS,OAAA,CAAAS,QAAA,QACElB,MAAA,CAAAS,OAAA,CAAAQ,aAAA;IACEE,SAAS,EAAC;EAAsE,GAE/E,CAACJ,SAAS,IACTf,MAAA,CAAAS,OAAA,CAAAQ,aAAA,CAACX,KAAA,CAAAc,IAAI;IACHC,WAAW,EAAE,IAAAC,8BAAuB,EAACV,UAAU,EAAEC,QAAQ,CAAE;IAC3DD,UAAU,EAAEA;
|
|
1
|
+
{"version":3,"file":"ValidationWrapper.js","names":["_react","_interopRequireDefault","require","_classnames","_labsWidgetCommon","_utils","_Main","e","__esModule","default","ValidationWrapper","_ref","currencies","division","isParamError","showError","validCurrencies","createElement","Fragment","className","Main","instruments","currenciesToInstruments","classnames","ChartError","exports"],"sources":["../../../src/CurrencyCrossTableWidget/ValidationWrapper.tsx"],"sourcesContent":["import React from 'react';\nimport classnames from 'classnames';\nimport { ChartError } from '@oanda/labs-widget-common';\nimport { currenciesToInstruments, validCurrencies } from './utils';\nimport { ValidationWrapperProps } from './types';\nimport { Main } from './Main';\n\nconst ValidationWrapper = ({\n currencies,\n division,\n isParamError,\n}: ValidationWrapperProps) => {\n const showError = !validCurrencies(currencies) || isParamError;\n\n return (\n <>\n <div\n className=\"lw-flex lw-w-full lw-text-sm lw-tracking-normal lw-text-text-primary\"\n >\n {!showError && (\n <Main\n instruments={currenciesToInstruments(currencies, division)}\n currencies={currencies}\n division={division}\n />\n )}\n {showError && (\n <div className={classnames('lw-flex lw-h-[250px] lw-w-full lw-items-center lw-border lw-border-solid lw-border-border-primary')}>\n <ChartError />\n </div>\n )}\n </div>\n </>\n );\n};\n\nexport { ValidationWrapper };\n"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,WAAA,GAAAF,sBAAA,CAAAC,OAAA;AACA,IAAAE,iBAAA,GAAAF,OAAA;AACA,IAAAG,MAAA,GAAAH,OAAA;AAEA,IAAAI,KAAA,GAAAJ,OAAA;AAA8B,SAAAD,uBAAAM,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAE9B,MAAMG,iBAAiB,GAAGC,IAAA,IAII;EAAA,IAJH;IACzBC,UAAU;IACVC,QAAQ;IACRC;EACsB,CAAC,GAAAH,IAAA;EACvB,MAAMI,SAAS,GAAG,CAAC,IAAAC,sBAAe,EAACJ,UAAU,CAAC,IAAIE,YAAY;EAE9D,OACEd,MAAA,CAAAS,OAAA,CAAAQ,aAAA,CAAAjB,MAAA,CAAAS,OAAA,CAAAS,QAAA,QACElB,MAAA,CAAAS,OAAA,CAAAQ,aAAA;IACEE,SAAS,EAAC;EAAsE,GAE/E,CAACJ,SAAS,IACTf,MAAA,CAAAS,OAAA,CAAAQ,aAAA,CAACX,KAAA,CAAAc,IAAI;IACHC,WAAW,EAAE,IAAAC,8BAAuB,EAACV,UAAU,EAAEC,QAAQ,CAAE;IAC3DD,UAAU,EAAEA,UAAW;IACvBC,QAAQ,EAAEA;EAAS,CACpB,CACF,EACAE,SAAS,IACRf,MAAA,CAAAS,OAAA,CAAAQ,aAAA;IAAKE,SAAS,EAAE,IAAAI,mBAAU,EAAC,mGAAmG;EAAE,GAC9HvB,MAAA,CAAAS,OAAA,CAAAQ,aAAA,CAACb,iBAAA,CAAAoB,UAAU,MAAE,CACV,CAEJ,CACL,CAAC;AAEP,CAAC;AAACC,OAAA,CAAAf,iBAAA,GAAAA,iBAAA","ignoreList":[]}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.CellValidationWrapper = void 0;
|
|
7
|
+
var _react = _interopRequireDefault(require("react"));
|
|
8
|
+
var _client = require("@apollo/client");
|
|
9
|
+
var _validateInstruments = require("../../gql/validateInstruments");
|
|
10
|
+
var _CellWithData = require("./CellWithData");
|
|
11
|
+
var _utils = require("../utils");
|
|
12
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
13
|
+
const CellValidationWrapper = _ref => {
|
|
14
|
+
let {
|
|
15
|
+
currency,
|
|
16
|
+
pair,
|
|
17
|
+
instrument,
|
|
18
|
+
target,
|
|
19
|
+
additionalBorderBottom,
|
|
20
|
+
setSelectedCurrency,
|
|
21
|
+
setSelectedPair,
|
|
22
|
+
division
|
|
23
|
+
} = _ref;
|
|
24
|
+
const {
|
|
25
|
+
error
|
|
26
|
+
} = (0, _client.useSuspenseQuery)(_validateInstruments.validateInstruments, {
|
|
27
|
+
variables: {
|
|
28
|
+
instruments: [instrument],
|
|
29
|
+
division
|
|
30
|
+
},
|
|
31
|
+
fetchPolicy: 'network-only',
|
|
32
|
+
errorPolicy: 'all'
|
|
33
|
+
});
|
|
34
|
+
const instrumentForCalculations = error ? `${pair}${(0, _utils.divisionMapper)(division)}${currency}` : '';
|
|
35
|
+
return _react.default.createElement(_CellWithData.CellWithData, {
|
|
36
|
+
currency: currency,
|
|
37
|
+
pair: pair,
|
|
38
|
+
record: {
|
|
39
|
+
instrument,
|
|
40
|
+
displayName: `${currency}${(0, _utils.divisionMapper)(division)}${pair}`
|
|
41
|
+
},
|
|
42
|
+
instrumentForCalculations: instrumentForCalculations,
|
|
43
|
+
target: target,
|
|
44
|
+
additionalBorderBottom: additionalBorderBottom,
|
|
45
|
+
setSelectedCurrency: setSelectedCurrency,
|
|
46
|
+
setSelectedPair: setSelectedPair,
|
|
47
|
+
division: division
|
|
48
|
+
});
|
|
49
|
+
};
|
|
50
|
+
exports.CellValidationWrapper = CellValidationWrapper;
|
|
51
|
+
//# sourceMappingURL=CellValidationWrapper.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CellValidationWrapper.js","names":["_react","_interopRequireDefault","require","_client","_validateInstruments","_CellWithData","_utils","e","__esModule","default","CellValidationWrapper","_ref","currency","pair","instrument","target","additionalBorderBottom","setSelectedCurrency","setSelectedPair","division","error","useSuspenseQuery","validateInstruments","variables","instruments","fetchPolicy","errorPolicy","instrumentForCalculations","divisionMapper","createElement","CellWithData","record","displayName","exports"],"sources":["../../../../src/CurrencyCrossTableWidget/components/CellValidationWrapper.tsx"],"sourcesContent":["import React from 'react';\nimport { useSuspenseQuery } from '@apollo/client';\nimport { CellValidationWrapperProps } from './types';\nimport { ValidateInstrumentsQuery, ValidateInstrumentsQueryVariables } from '../../gql/types/graphql';\nimport { validateInstruments } from '../../gql/validateInstruments';\nimport { CellWithData } from './CellWithData';\nimport { divisionMapper } from '../utils';\n\nconst CellValidationWrapper = ({\n currency,\n pair,\n instrument,\n target,\n additionalBorderBottom,\n setSelectedCurrency,\n setSelectedPair,\n division,\n}: CellValidationWrapperProps) => {\n const { error } = useSuspenseQuery<\n ValidateInstrumentsQuery,\n ValidateInstrumentsQueryVariables\n >(validateInstruments, {\n variables: {\n instruments: [instrument],\n division,\n },\n fetchPolicy: 'network-only',\n errorPolicy: 'all',\n });\n\n const instrumentForCalculations = error ? `${pair}${divisionMapper(division)}${currency}` : '';\n\n return (\n <CellWithData\n currency={currency}\n pair={pair}\n record={{\n instrument,\n displayName: `${currency}${divisionMapper(division)}${pair}`,\n }}\n instrumentForCalculations={instrumentForCalculations}\n target={target}\n additionalBorderBottom={additionalBorderBottom}\n setSelectedCurrency={setSelectedCurrency}\n setSelectedPair={setSelectedPair}\n division={division}\n />\n );\n};\n\nexport { CellValidationWrapper };\n"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,OAAA,GAAAD,OAAA;AAGA,IAAAE,oBAAA,GAAAF,OAAA;AACA,IAAAG,aAAA,GAAAH,OAAA;AACA,IAAAI,MAAA,GAAAJ,OAAA;AAA0C,SAAAD,uBAAAM,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAE1C,MAAMG,qBAAqB,GAAGC,IAAA,IASI;EAAA,IATH;IAC7BC,QAAQ;IACRC,IAAI;IACJC,UAAU;IACVC,MAAM;IACNC,sBAAsB;IACtBC,mBAAmB;IACnBC,eAAe;IACfC;EAC0B,CAAC,GAAAR,IAAA;EAC3B,MAAM;IAAES;EAAM,CAAC,GAAG,IAAAC,wBAAgB,EAGhCC,wCAAmB,EAAE;IACrBC,SAAS,EAAE;MACTC,WAAW,EAAE,CAACV,UAAU,CAAC;MACzBK;IACF,CAAC;IACDM,WAAW,EAAE,cAAc;IAC3BC,WAAW,EAAE;EACf,CAAC,CAAC;EAEF,MAAMC,yBAAyB,GAAGP,KAAK,GAAG,GAAGP,IAAI,GAAG,IAAAe,qBAAc,EAACT,QAAQ,CAAC,GAAGP,QAAQ,EAAE,GAAG,EAAE;EAE9F,OACEZ,MAAA,CAAAS,OAAA,CAAAoB,aAAA,CAACxB,aAAA,CAAAyB,YAAY;IACXlB,QAAQ,EAAEA,QAAS;IACnBC,IAAI,EAAEA,IAAK;IACXkB,MAAM,EAAE;MACNjB,UAAU;MACVkB,WAAW,EAAE,GAAGpB,QAAQ,GAAG,IAAAgB,qBAAc,EAACT,QAAQ,CAAC,GAAGN,IAAI;IAC5D,CAAE;IACFc,yBAAyB,EAAEA,yBAA0B;IACrDZ,MAAM,EAAEA,MAAO;IACfC,sBAAsB,EAAEA,sBAAuB;IAC/CC,mBAAmB,EAAEA,mBAAoB;IACzCC,eAAe,EAAEA,eAAgB;IACjCC,QAAQ,EAAEA;EAAS,CACpB,CAAC;AAEN,CAAC;AAACc,OAAA,CAAAvB,qBAAA,GAAAA,qBAAA","ignoreList":[]}
|
|
@@ -6,29 +6,37 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
6
6
|
exports.CellWithData = void 0;
|
|
7
7
|
var _react = _interopRequireWildcard(require("react"));
|
|
8
8
|
var _labsWidgetCommon = require("@oanda/labs-widget-common");
|
|
9
|
-
var _utils = require("../utils");
|
|
10
9
|
var _Cell = require("./Cell");
|
|
10
|
+
var _utils = require("../utils");
|
|
11
11
|
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); }
|
|
12
12
|
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
13
|
const CellWithData = _ref => {
|
|
14
14
|
let {
|
|
15
|
-
|
|
15
|
+
currency,
|
|
16
|
+
pair,
|
|
16
17
|
record,
|
|
18
|
+
instrumentForCalculations,
|
|
17
19
|
target,
|
|
18
20
|
additionalBorderBottom,
|
|
19
21
|
setSelectedCurrency,
|
|
20
22
|
setSelectedPair
|
|
21
23
|
} = _ref;
|
|
22
24
|
const [hovered, setHovered] = (0, _react.useState)(false);
|
|
25
|
+
const instrumentForUpdates = instrumentForCalculations || record.instrument;
|
|
23
26
|
const {
|
|
24
|
-
|
|
25
|
-
error
|
|
26
|
-
} = (0,
|
|
27
|
-
const
|
|
27
|
+
update,
|
|
28
|
+
error: liveRatesError
|
|
29
|
+
} = (0, _labsWidgetCommon.useLiveRatesMessage)(instrumentForUpdates, target);
|
|
30
|
+
const updatedRecord = {
|
|
31
|
+
displayName: record.displayName,
|
|
32
|
+
instrument: record.instrument,
|
|
33
|
+
buy: update?.ask,
|
|
34
|
+
buyPriceMovement: update?.askPriceMovement,
|
|
35
|
+
displayPrecision: update?.displayPrecision
|
|
36
|
+
};
|
|
37
|
+
const checkLoading = id => !liveRatesError && updatedRecord?.[id] === undefined;
|
|
28
38
|
const handleMouseEnter = () => {
|
|
29
39
|
setHovered(true);
|
|
30
|
-
const currency = record.instrument.substring(0, 3);
|
|
31
|
-
const pair = record.instrument.substring(record.instrument.length - 3);
|
|
32
40
|
setSelectedCurrency(currency);
|
|
33
41
|
setSelectedPair(pair);
|
|
34
42
|
};
|
|
@@ -39,15 +47,15 @@ const CellWithData = _ref => {
|
|
|
39
47
|
};
|
|
40
48
|
return _react.default.createElement(_Cell.Cell, {
|
|
41
49
|
isLoading: checkLoading('buy'),
|
|
42
|
-
isError: !!
|
|
50
|
+
isError: !!liveRatesError,
|
|
43
51
|
additionalBorderBottom: additionalBorderBottom,
|
|
44
52
|
hovered: hovered,
|
|
45
53
|
mouseEnterHandler: handleMouseEnter,
|
|
46
54
|
mouseLeaveHandler: handleMouseLeave
|
|
47
55
|
}, _react.default.createElement(_labsWidgetCommon.Price, {
|
|
48
|
-
priceMovement: updatedRecord.buyPriceMovement,
|
|
56
|
+
priceMovement: (0, _utils.getPriceMovement)(updatedRecord.buyPriceMovement, !!instrumentForCalculations),
|
|
49
57
|
movementIndicator: "background"
|
|
50
|
-
}, _react.default.createElement("span", null, updatedRecord.buy
|
|
58
|
+
}, _react.default.createElement("span", null, (0, _utils.getBuyPrice)(updatedRecord.buy, !!instrumentForCalculations).toFixed(updatedRecord.displayPrecision))));
|
|
51
59
|
};
|
|
52
60
|
exports.CellWithData = CellWithData;
|
|
53
61
|
//# sourceMappingURL=CellWithData.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CellWithData.js","names":["_react","_interopRequireWildcard","require","_labsWidgetCommon","
|
|
1
|
+
{"version":3,"file":"CellWithData.js","names":["_react","_interopRequireWildcard","require","_labsWidgetCommon","_Cell","_utils","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","CellWithData","_ref","currency","pair","record","instrumentForCalculations","target","additionalBorderBottom","setSelectedCurrency","setSelectedPair","hovered","setHovered","useState","instrumentForUpdates","instrument","update","error","liveRatesError","useLiveRatesMessage","updatedRecord","displayName","buy","ask","buyPriceMovement","askPriceMovement","displayPrecision","checkLoading","id","undefined","handleMouseEnter","handleMouseLeave","createElement","Cell","isLoading","isError","mouseEnterHandler","mouseLeaveHandler","Price","priceMovement","getPriceMovement","movementIndicator","getBuyPrice","toFixed","exports"],"sources":["../../../../src/CurrencyCrossTableWidget/components/CellWithData.tsx"],"sourcesContent":["import React, { useState } from 'react';\nimport { Price, useLiveRatesMessage } from '@oanda/labs-widget-common';\nimport { Cell } from './Cell';\nimport { CellWithDataProps } from './types';\nimport { getBuyPrice, getPriceMovement } from '../utils';\n\nconst CellWithData = ({\n currency,\n pair,\n record,\n instrumentForCalculations,\n target,\n additionalBorderBottom,\n setSelectedCurrency,\n setSelectedPair,\n}: CellWithDataProps) => {\n const [hovered, setHovered] = useState(false);\n\n const instrumentForUpdates = instrumentForCalculations || record.instrument;\n\n const { update, error: liveRatesError } = useLiveRatesMessage(\n instrumentForUpdates,\n target,\n );\n\n const updatedRecord: Record<string, any> = {\n displayName: record.displayName,\n instrument: record.instrument,\n buy: update?.ask,\n buyPriceMovement: update?.askPriceMovement,\n displayPrecision: update?.displayPrecision,\n };\n\n const checkLoading = (id: string) => (!liveRatesError && updatedRecord?.[id] === undefined);\n\n const handleMouseEnter = () => {\n setHovered(true);\n setSelectedCurrency(currency);\n setSelectedPair(pair);\n };\n\n const handleMouseLeave = () => {\n setHovered(false);\n setSelectedCurrency('');\n setSelectedPair('');\n };\n\n return (\n <Cell\n isLoading={checkLoading('buy')}\n isError={!!liveRatesError}\n additionalBorderBottom={additionalBorderBottom}\n hovered={hovered}\n mouseEnterHandler={handleMouseEnter}\n mouseLeaveHandler={handleMouseLeave}\n >\n <Price priceMovement={getPriceMovement(updatedRecord.buyPriceMovement, !!instrumentForCalculations)} movementIndicator=\"background\">\n <span>\n {getBuyPrice(\n updatedRecord.buy,\n !!instrumentForCalculations,\n ).toFixed(updatedRecord.displayPrecision)}\n </span>\n </Price>\n </Cell>\n );\n};\n\nexport { CellWithData };\n"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,uBAAA,CAAAC,OAAA;AACA,IAAAC,iBAAA,GAAAD,OAAA;AACA,IAAAE,KAAA,GAAAF,OAAA;AAEA,IAAAG,MAAA,GAAAH,OAAA;AAAyD,SAAAI,yBAAAC,CAAA,6BAAAC,OAAA,mBAAAC,CAAA,OAAAD,OAAA,IAAAE,CAAA,OAAAF,OAAA,YAAAF,wBAAA,YAAAA,CAAAC,CAAA,WAAAA,CAAA,GAAAG,CAAA,GAAAD,CAAA,KAAAF,CAAA;AAAA,SAAAN,wBAAAM,CAAA,EAAAE,CAAA,SAAAA,CAAA,IAAAF,CAAA,IAAAA,CAAA,CAAAI,UAAA,SAAAJ,CAAA,eAAAA,CAAA,uBAAAA,CAAA,yBAAAA,CAAA,WAAAK,OAAA,EAAAL,CAAA,QAAAG,CAAA,GAAAJ,wBAAA,CAAAG,CAAA,OAAAC,CAAA,IAAAA,CAAA,CAAAG,GAAA,CAAAN,CAAA,UAAAG,CAAA,CAAAI,GAAA,CAAAP,CAAA,OAAAQ,CAAA,KAAAC,SAAA,UAAAC,CAAA,GAAAC,MAAA,CAAAC,cAAA,IAAAD,MAAA,CAAAE,wBAAA,WAAAC,CAAA,IAAAd,CAAA,oBAAAc,CAAA,OAAAC,cAAA,CAAAC,IAAA,CAAAhB,CAAA,EAAAc,CAAA,SAAAG,CAAA,GAAAP,CAAA,GAAAC,MAAA,CAAAE,wBAAA,CAAAb,CAAA,EAAAc,CAAA,UAAAG,CAAA,KAAAA,CAAA,CAAAV,GAAA,IAAAU,CAAA,CAAAC,GAAA,IAAAP,MAAA,CAAAC,cAAA,CAAAJ,CAAA,EAAAM,CAAA,EAAAG,CAAA,IAAAT,CAAA,CAAAM,CAAA,IAAAd,CAAA,CAAAc,CAAA,YAAAN,CAAA,CAAAH,OAAA,GAAAL,CAAA,EAAAG,CAAA,IAAAA,CAAA,CAAAe,GAAA,CAAAlB,CAAA,EAAAQ,CAAA,GAAAA,CAAA;AAEzD,MAAMW,YAAY,GAAGC,IAAA,IASI;EAAA,IATH;IACpBC,QAAQ;IACRC,IAAI;IACJC,MAAM;IACNC,yBAAyB;IACzBC,MAAM;IACNC,sBAAsB;IACtBC,mBAAmB;IACnBC;EACiB,CAAC,GAAAR,IAAA;EAClB,MAAM,CAACS,OAAO,EAAEC,UAAU,CAAC,GAAG,IAAAC,eAAQ,EAAC,KAAK,CAAC;EAE7C,MAAMC,oBAAoB,GAAGR,yBAAyB,IAAID,MAAM,CAACU,UAAU;EAE3E,MAAM;IAAEC,MAAM;IAAEC,KAAK,EAAEC;EAAe,CAAC,GAAG,IAAAC,qCAAmB,EAC3DL,oBAAoB,EACpBP,MACF,CAAC;EAED,MAAMa,aAAkC,GAAG;IACzCC,WAAW,EAAEhB,MAAM,CAACgB,WAAW;IAC/BN,UAAU,EAAEV,MAAM,CAACU,UAAU;IAC7BO,GAAG,EAAEN,MAAM,EAAEO,GAAG;IAChBC,gBAAgB,EAAER,MAAM,EAAES,gBAAgB;IAC1CC,gBAAgB,EAAEV,MAAM,EAAEU;EAC5B,CAAC;EAED,MAAMC,YAAY,GAAIC,EAAU,IAAM,CAACV,cAAc,IAAIE,aAAa,GAAGQ,EAAE,CAAC,KAAKC,SAAU;EAE3F,MAAMC,gBAAgB,GAAGA,CAAA,KAAM;IAC7BlB,UAAU,CAAC,IAAI,CAAC;IAChBH,mBAAmB,CAACN,QAAQ,CAAC;IAC7BO,eAAe,CAACN,IAAI,CAAC;EACvB,CAAC;EAED,MAAM2B,gBAAgB,GAAGA,CAAA,KAAM;IAC7BnB,UAAU,CAAC,KAAK,CAAC;IACjBH,mBAAmB,CAAC,EAAE,CAAC;IACvBC,eAAe,CAAC,EAAE,CAAC;EACrB,CAAC;EAED,OACEnC,MAAA,CAAAY,OAAA,CAAA6C,aAAA,CAACrD,KAAA,CAAAsD,IAAI;IACHC,SAAS,EAAEP,YAAY,CAAC,KAAK,CAAE;IAC/BQ,OAAO,EAAE,CAAC,CAACjB,cAAe;IAC1BV,sBAAsB,EAAEA,sBAAuB;IAC/CG,OAAO,EAAEA,OAAQ;IACjByB,iBAAiB,EAAEN,gBAAiB;IACpCO,iBAAiB,EAAEN;EAAiB,GAEpCxD,MAAA,CAAAY,OAAA,CAAA6C,aAAA,CAACtD,iBAAA,CAAA4D,KAAK;IAACC,aAAa,EAAE,IAAAC,uBAAgB,EAACpB,aAAa,CAACI,gBAAgB,EAAE,CAAC,CAAClB,yBAAyB,CAAE;IAACmC,iBAAiB,EAAC;EAAY,GACjIlE,MAAA,CAAAY,OAAA,CAAA6C,aAAA,eACG,IAAAU,kBAAW,EACVtB,aAAa,CAACE,GAAG,EACjB,CAAC,CAAChB,yBACJ,CAAC,CAACqC,OAAO,CAACvB,aAAa,CAACM,gBAAgB,CACpC,CACD,CACH,CAAC;AAEX,CAAC;AAACkB,OAAA,CAAA3C,YAAA,GAAAA,YAAA","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","names":[],"sources":["../../../../src/CurrencyCrossTableWidget/components/types.ts"],"sourcesContent":["import { DataRecord, LoaderSize } from '@oanda/labs-widget-common';\n\nexport interface
|
|
1
|
+
{"version":3,"file":"types.js","names":[],"sources":["../../../../src/CurrencyCrossTableWidget/components/types.ts"],"sourcesContent":["import { DataRecord, LoaderSize } from '@oanda/labs-widget-common';\nimport { Division } from '../../gql/types/graphql';\n\nexport interface CellValidationWrapperProps {\n currency: string;\n pair: string;\n instrument: string;\n target: EventTarget | null;\n additionalBorderBottom? : boolean;\n division: Division;\n setSelectedCurrency: React.Dispatch<React.SetStateAction<string>>;\n setSelectedPair: React.Dispatch<React.SetStateAction<string>>;\n}\nexport interface CellWithDataProps {\n currency: string;\n pair: string;\n instrumentForCalculations: string;\n record: DataRecord;\n target: EventTarget | null;\n additionalBorderBottom? : boolean;\n division: Division;\n setSelectedCurrency: React.Dispatch<React.SetStateAction<string>>;\n setSelectedPair: React.Dispatch<React.SetStateAction<string>>;\n}\n\nexport interface CellProps {\n children: React.ReactNode;\n isLoading?: boolean;\n isError?: boolean;\n loaderSize?: LoaderSize;\n additionalBorderBottom? : boolean;\n hovered: boolean;\n mouseEnterHandler: () => void;\n mouseLeaveHandler: () => void;\n}\n\nexport interface TextCellProps {\n label?: string;\n emptyIndicator?: boolean;\n additionalBorderBottom? : boolean;\n hovered?: boolean;\n}\n"],"mappings":"","ignoreList":[]}
|
|
@@ -4,9 +4,10 @@ var _react = _interopRequireDefault(require("react"));
|
|
|
4
4
|
var _client = require("react-dom/client");
|
|
5
5
|
var _labsWidgetCommon = require("@oanda/labs-widget-common");
|
|
6
6
|
var _CurrencyCrossTableWidget = require("./CurrencyCrossTableWidget");
|
|
7
|
-
var
|
|
7
|
+
var _graphql = require("../gql/types/graphql");
|
|
8
8
|
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
9
9
|
const {
|
|
10
|
+
graphqlUrl,
|
|
10
11
|
liveRatesUrl
|
|
11
12
|
} = window.widgetsConfig || {};
|
|
12
13
|
const currencyCrossTableElements = document.querySelectorAll('div[data-currency-cross-table-params]');
|
|
@@ -23,20 +24,24 @@ currencyCrossTableElements.forEach(element => {
|
|
|
23
24
|
division,
|
|
24
25
|
locale,
|
|
25
26
|
currencies,
|
|
27
|
+
graphqlUrl,
|
|
26
28
|
liveRatesUrl
|
|
27
29
|
}, [{
|
|
28
30
|
name: 'locale',
|
|
29
31
|
valueCheck: value => (0, _labsWidgetCommon.validateLocale)(value)
|
|
30
32
|
}, {
|
|
31
33
|
name: 'division',
|
|
32
|
-
valueCheck: value => Object.values(
|
|
34
|
+
valueCheck: value => Object.values(_graphql.Division).includes(value)
|
|
33
35
|
}, {
|
|
34
36
|
name: 'currencies',
|
|
35
37
|
valueCheck: value => value.length > 0 && value.length <= 8
|
|
38
|
+
}, {
|
|
39
|
+
name: 'graphqlUrl'
|
|
36
40
|
}, {
|
|
37
41
|
name: 'liveRatesUrl'
|
|
38
42
|
}]);
|
|
39
43
|
root.render(_react.default.createElement(_CurrencyCrossTableWidget.CurrencyCrossTableWidget, {
|
|
44
|
+
graphqlUrl: graphqlUrl,
|
|
40
45
|
liveRatesUrl: liveRatesUrl,
|
|
41
46
|
division: division,
|
|
42
47
|
currencies: currencies,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"render.js","names":["_react","_interopRequireDefault","require","_client","_labsWidgetCommon","_CurrencyCrossTableWidget","
|
|
1
|
+
{"version":3,"file":"render.js","names":["_react","_interopRequireDefault","require","_client","_labsWidgetCommon","_CurrencyCrossTableWidget","_graphql","e","__esModule","default","graphqlUrl","liveRatesUrl","window","widgetsConfig","currencyCrossTableElements","document","querySelectorAll","forEach","element","root","createRoot","params","getAttribute","mode","currencies","division","locale","JSON","parse","isParamError","validateToolParams","name","valueCheck","value","validateLocale","Object","values","Division","includes","length","render","createElement","CurrencyCrossTableWidget","theme"],"sources":["../../../src/CurrencyCrossTableWidget/render.tsx"],"sourcesContent":["import React from 'react';\nimport { createRoot } from 'react-dom/client';\nimport { Theme, validateLocale, validateToolParams } from '@oanda/labs-widget-common';\nimport { CurrencyCrossTableWidget } from './CurrencyCrossTableWidget';\nimport { Division } from '../gql/types/graphql';\n\nconst {\n graphqlUrl,\n liveRatesUrl,\n} = window.widgetsConfig || {};\n\nconst currencyCrossTableElements = document.querySelectorAll('div[data-currency-cross-table-params]');\n\ncurrencyCrossTableElements.forEach((element) => {\n const root = createRoot(element);\n const params = element.getAttribute('data-currency-cross-table-params');\n const mode = element.getAttribute('data-mode');\n const {\n currencies, division, locale,\n } = JSON.parse(params as string);\n\n const isParamError = validateToolParams({\n division, locale, currencies, 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: 'currencies',\n valueCheck: (value) => (value as string[]).length > 0 && (value as string[]).length <= 8,\n }, {\n name: 'graphqlUrl',\n }, {\n name: 'liveRatesUrl',\n }]);\n\n root.render(\n <CurrencyCrossTableWidget\n graphqlUrl={graphqlUrl}\n liveRatesUrl={liveRatesUrl}\n division={division}\n currencies={currencies}\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,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;EACxB,CAAC,GAAGC,IAAI,CAACC,KAAK,CAACP,MAAgB,CAAC;EAEhC,MAAMQ,YAAY,GAAG,IAAAC,oCAAkB,EAAC;IACtCL,QAAQ;IAAEC,MAAM;IAAEF,UAAU;IAAEd,UAAU;IAAEC;EAC5C,CAAC,EAAE,CAAC;IACFoB,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,YAAY;IAClBC,UAAU,EAAGC,KAAK,IAAMA,KAAK,CAAcM,MAAM,GAAG,CAAC,IAAKN,KAAK,CAAcM,MAAM,IAAI;EACzF,CAAC,EAAE;IACDR,IAAI,EAAE;EACR,CAAC,EAAE;IACDA,IAAI,EAAE;EACR,CAAC,CAAC,CAAC;EAEHZ,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;IACrBM,YAAY,EAAEA;EAAa,CAC5B,CACH,CAAC;AACH,CAAC,CAAC","ignoreList":[]}
|
|
@@ -3,7 +3,6 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
exports.Division = void 0;
|
|
7
6
|
Object.defineProperty(exports, "Locale", {
|
|
8
7
|
enumerable: true,
|
|
9
8
|
get: function () {
|
|
@@ -11,16 +10,4 @@ Object.defineProperty(exports, "Locale", {
|
|
|
11
10
|
}
|
|
12
11
|
});
|
|
13
12
|
var _monoI18n = require("@oanda/mono-i18n");
|
|
14
|
-
let Division = exports.Division = function (Division) {
|
|
15
|
-
Division["Oap"] = "OAP";
|
|
16
|
-
Division["Oau"] = "OAU";
|
|
17
|
-
Division["Oc"] = "OC";
|
|
18
|
-
Division["Ocan"] = "OCAN";
|
|
19
|
-
Division["Oel"] = "OEL";
|
|
20
|
-
Division["Ogm"] = "OGM";
|
|
21
|
-
Division["Oj"] = "OJ";
|
|
22
|
-
Division["Opt"] = "OPT";
|
|
23
|
-
Division["Otms"] = "OTMS";
|
|
24
|
-
return Division;
|
|
25
|
-
}({});
|
|
26
13
|
//# sourceMappingURL=types.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","names":["_monoI18n","require"
|
|
1
|
+
{"version":3,"file":"types.js","names":["_monoI18n","require"],"sources":["../../../src/CurrencyCrossTableWidget/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';\n\nexport interface CurrencyCrossTableConfig {\n division: Division;\n graphqlUrl: string;\n liveRatesUrl: string;\n currencies: string[];\n locale: Locale;\n theme?: Theme;\n isParamError?: boolean;\n removePadding?: boolean;\n}\n\nexport interface ValidationWrapperProps {\n currencies: string[];\n division: Division;\n isParamError?: boolean;\n}\nexport interface MainProps {\n currencies: string[];\n instruments: string[];\n division: Division;\n}\n"],"mappings":";;;;;;;;;;;AAIA,IAAAA,SAAA,GAAAC,OAAA","ignoreList":[]}
|
|
@@ -3,45 +3,28 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
exports.validCurrencies = exports.
|
|
7
|
-
var _react = require("react");
|
|
8
|
-
var _labsWidgetCommon = require("@oanda/labs-widget-common");
|
|
6
|
+
exports.validCurrencies = exports.getPriceMovement = exports.getBuyPrice = exports.divisionMapper = exports.currenciesToInstruments = void 0;
|
|
9
7
|
var _constant = require("./constant");
|
|
10
8
|
const validCurrencies = currencies => currencies.every(currency => _constant.MAJOR_CURRENCIES.includes(currency));
|
|
11
9
|
exports.validCurrencies = validCurrencies;
|
|
10
|
+
const divisionMapper = division => division === 'OGM' ? '' : '_';
|
|
11
|
+
exports.divisionMapper = divisionMapper;
|
|
12
12
|
const currenciesToInstruments = (currencies, division) => {
|
|
13
|
-
const divisionMapper = division === 'OGM' ? '' : '_';
|
|
14
13
|
const pairs = currencies.reduce((acc, cV, index, array) => {
|
|
15
14
|
const unique = array.filter((_item, idx) => index !== idx);
|
|
16
|
-
return [...acc, ...unique.map(el => `${cV}${divisionMapper}${el}`)];
|
|
15
|
+
return [...acc, ...unique.map(el => `${cV}${divisionMapper(division)}${el}`)];
|
|
17
16
|
}, []);
|
|
18
17
|
return pairs;
|
|
19
18
|
};
|
|
20
19
|
exports.currenciesToInstruments = currenciesToInstruments;
|
|
21
|
-
const
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
instrument: record.instrument
|
|
25
|
-
});
|
|
26
|
-
const [error, setError] = (0, _react.useState)(null);
|
|
27
|
-
const {
|
|
28
|
-
update,
|
|
29
|
-
error: liveRatesError
|
|
30
|
-
} = (0, _labsWidgetCommon.useLiveRatesMessage)(record.instrument, target);
|
|
31
|
-
(0, _react.useEffect)(() => {
|
|
32
|
-
setUpdatedRecord({
|
|
33
|
-
displayName: record.displayName,
|
|
34
|
-
instrument: record.instrument,
|
|
35
|
-
buy: update?.ask,
|
|
36
|
-
buyPriceMovement: update?.askPriceMovement,
|
|
37
|
-
displayPrecision: update?.displayPrecision
|
|
38
|
-
});
|
|
39
|
-
setError(liveRatesError);
|
|
40
|
-
}, [update, record, liveRatesError]);
|
|
41
|
-
return {
|
|
42
|
-
updatedRecord,
|
|
43
|
-
error
|
|
44
|
-
};
|
|
20
|
+
const getPriceMovement = (priceMovement, isReversed) => {
|
|
21
|
+
if (priceMovement === undefined) return 0;
|
|
22
|
+
return isReversed ? priceMovement * -1 : priceMovement;
|
|
45
23
|
};
|
|
46
|
-
exports.
|
|
24
|
+
exports.getPriceMovement = getPriceMovement;
|
|
25
|
+
const getBuyPrice = (price, isReversed) => {
|
|
26
|
+
if (price === undefined) return 0;
|
|
27
|
+
return isReversed ? 1 / price : price;
|
|
28
|
+
};
|
|
29
|
+
exports.getBuyPrice = getBuyPrice;
|
|
47
30
|
//# sourceMappingURL=utils.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","names":["
|
|
1
|
+
{"version":3,"file":"utils.js","names":["_constant","require","validCurrencies","currencies","every","currency","MAJOR_CURRENCIES","includes","exports","divisionMapper","division","currenciesToInstruments","pairs","reduce","acc","cV","index","array","unique","filter","_item","idx","map","el","getPriceMovement","priceMovement","isReversed","undefined","getBuyPrice","price"],"sources":["../../../src/CurrencyCrossTableWidget/utils.ts"],"sourcesContent":["import { MAJOR_CURRENCIES } from './constant';\nimport { Division } from '../gql/types/graphql';\n\nconst validCurrencies = (currencies: string[]) => currencies\n .every((currency) => MAJOR_CURRENCIES.includes(currency));\n\nconst divisionMapper = (division: Division) => (division === 'OGM' ? '' : '_');\n\nconst currenciesToInstruments = (currencies: string[], division: any) => {\n const pairs = currencies.reduce((acc, cV, index, array) => {\n const unique = array.filter((_item, idx) => index !== idx);\n\n return [\n ...acc,\n ...unique.map((el) => `${cV}${divisionMapper(division)}${el}`),\n ];\n }, [] as string[]);\n\n return pairs;\n};\n\nconst getPriceMovement = (priceMovement: number | undefined, isReversed: boolean) => {\n if (priceMovement === undefined) return 0;\n\n return isReversed ? priceMovement * -1 : priceMovement;\n};\n\nconst getBuyPrice = (price: number | undefined, isReversed: boolean) => {\n if (price === undefined) return 0;\n\n return isReversed ? 1 / price : price;\n};\n\nexport {\n validCurrencies,\n currenciesToInstruments,\n divisionMapper,\n getPriceMovement,\n getBuyPrice,\n};\n"],"mappings":";;;;;;AAAA,IAAAA,SAAA,GAAAC,OAAA;AAGA,MAAMC,eAAe,GAAIC,UAAoB,IAAKA,UAAU,CACzDC,KAAK,CAAEC,QAAQ,IAAKC,0BAAgB,CAACC,QAAQ,CAACF,QAAQ,CAAC,CAAC;AAACG,OAAA,CAAAN,eAAA,GAAAA,eAAA;AAE5D,MAAMO,cAAc,GAAIC,QAAkB,IAAMA,QAAQ,KAAK,KAAK,GAAG,EAAE,GAAG,GAAI;AAACF,OAAA,CAAAC,cAAA,GAAAA,cAAA;AAE/E,MAAME,uBAAuB,GAAGA,CAACR,UAAoB,EAAEO,QAAa,KAAK;EACvE,MAAME,KAAK,GAAGT,UAAU,CAACU,MAAM,CAAC,CAACC,GAAG,EAAEC,EAAE,EAAEC,KAAK,EAAEC,KAAK,KAAK;IACzD,MAAMC,MAAM,GAAGD,KAAK,CAACE,MAAM,CAAC,CAACC,KAAK,EAAEC,GAAG,KAAKL,KAAK,KAAKK,GAAG,CAAC;IAE1D,OAAO,CACL,GAAGP,GAAG,EACN,GAAGI,MAAM,CAACI,GAAG,CAAEC,EAAE,IAAK,GAAGR,EAAE,GAAGN,cAAc,CAACC,QAAQ,CAAC,GAAGa,EAAE,EAAE,CAAC,CAC/D;EACH,CAAC,EAAE,EAAc,CAAC;EAElB,OAAOX,KAAK;AACd,CAAC;AAACJ,OAAA,CAAAG,uBAAA,GAAAA,uBAAA;AAEF,MAAMa,gBAAgB,GAAGA,CAACC,aAAiC,EAAEC,UAAmB,KAAK;EACnF,IAAID,aAAa,KAAKE,SAAS,EAAE,OAAO,CAAC;EAEzC,OAAOD,UAAU,GAAGD,aAAa,GAAG,CAAC,CAAC,GAAGA,aAAa;AACxD,CAAC;AAACjB,OAAA,CAAAgB,gBAAA,GAAAA,gBAAA;AAEF,MAAMI,WAAW,GAAGA,CAACC,KAAyB,EAAEH,UAAmB,KAAK;EACtE,IAAIG,KAAK,KAAKF,SAAS,EAAE,OAAO,CAAC;EAEjC,OAAOD,UAAU,GAAG,CAAC,GAAGG,KAAK,GAAGA,KAAK;AACvC,CAAC;AAACrB,OAAA,CAAAoB,WAAA,GAAAA,WAAA","ignoreList":[]}
|