@oanda/labs-sentiment-widget 1.0.4 → 1.0.6
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 +20 -0
- package/dist/main/SentimentWidget/SentimentWidget.js +4 -3
- package/dist/main/SentimentWidget/SentimentWidget.js.map +1 -1
- package/dist/main/SentimentWidget/Tool.js +59 -0
- package/dist/main/SentimentWidget/Tool.js.map +1 -0
- package/dist/main/SentimentWidget/{Main.js → Widget.js} +4 -4
- package/dist/main/SentimentWidget/Widget.js.map +1 -0
- package/dist/main/SentimentWidget/components/SortSwitch/SortSwitch.js +55 -0
- package/dist/main/SentimentWidget/components/SortSwitch/SortSwitch.js.map +1 -0
- package/dist/main/SentimentWidget/components/SortSwitch/index.js +28 -0
- package/dist/main/SentimentWidget/components/SortSwitch/index.js.map +1 -0
- package/dist/main/SentimentWidget/components/SortSwitch/types.js +13 -0
- package/dist/main/SentimentWidget/components/SortSwitch/types.js.map +1 -0
- package/dist/main/SentimentWidget/types.js +7 -0
- package/dist/main/SentimentWidget/types.js.map +1 -1
- package/dist/main/SentimentWidget/utils.js +15 -0
- package/dist/main/SentimentWidget/utils.js.map +1 -0
- package/dist/main/gql/getSentimentList.js +12 -0
- package/dist/main/gql/getSentimentList.js.map +1 -0
- package/dist/module/SentimentWidget/SentimentWidget.js +4 -3
- package/dist/module/SentimentWidget/SentimentWidget.js.map +1 -1
- package/dist/module/SentimentWidget/Tool.js +51 -0
- package/dist/module/SentimentWidget/Tool.js.map +1 -0
- package/dist/module/SentimentWidget/{Main.js → Widget.js} +3 -3
- package/dist/module/SentimentWidget/Widget.js.map +1 -0
- package/dist/module/SentimentWidget/components/SortSwitch/SortSwitch.js +48 -0
- package/dist/module/SentimentWidget/components/SortSwitch/SortSwitch.js.map +1 -0
- package/dist/module/SentimentWidget/components/SortSwitch/index.js +3 -0
- package/dist/module/SentimentWidget/components/SortSwitch/index.js.map +1 -0
- package/dist/module/SentimentWidget/components/SortSwitch/types.js +6 -0
- package/dist/module/SentimentWidget/components/SortSwitch/types.js.map +1 -0
- package/dist/module/SentimentWidget/types.js +5 -1
- package/dist/module/SentimentWidget/types.js.map +1 -1
- package/dist/module/SentimentWidget/utils.js +8 -0
- package/dist/module/SentimentWidget/utils.js.map +1 -0
- package/dist/module/gql/getSentimentList.js +6 -0
- package/dist/module/gql/getSentimentList.js.map +1 -0
- package/dist/types/SentimentWidget/SentimentWidget.d.ts +2 -2
- package/dist/types/SentimentWidget/Tool.d.ts +3 -0
- package/dist/types/SentimentWidget/{Main.d.ts → Widget.d.ts} +2 -2
- package/dist/types/SentimentWidget/components/SortSwitch/SortSwitch.d.ts +4 -0
- package/dist/types/SentimentWidget/components/SortSwitch/index.d.ts +2 -0
- package/dist/types/SentimentWidget/components/SortSwitch/types.d.ts +10 -0
- package/dist/types/SentimentWidget/types.d.ts +22 -0
- package/dist/types/SentimentWidget/utils.d.ts +2 -0
- package/dist/types/gql/getSentimentList.d.ts +2 -0
- package/package.json +4 -3
- package/src/SentimentWidget/SentimentWidget.tsx +9 -4
- package/src/SentimentWidget/Tool.tsx +62 -0
- package/src/SentimentWidget/{Main.tsx → Widget.tsx} +2 -2
- package/src/SentimentWidget/components/SortSwitch/SortSwitch.tsx +66 -0
- package/src/SentimentWidget/components/SortSwitch/index.ts +2 -0
- package/src/SentimentWidget/components/SortSwitch/types.tsx +11 -0
- package/src/SentimentWidget/types.ts +27 -0
- package/src/SentimentWidget/utils.ts +8 -0
- package/src/gql/getSentimentList.ts +15 -0
- package/test/SortSwitch.test.tsx +80 -0
- package/test/Tool.test.tsx +55 -0
- package/test/{Main.test.tsx → Widget.test.tsx} +5 -5
- package/test/sortData.test.ts +74 -0
- package/dist/main/SentimentWidget/Main.js.map +0 -1
- package/dist/module/SentimentWidget/Main.js.map +0 -1
package/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,26 @@
|
|
|
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.6 (2023-09-21)
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
## 1.0.5 (2023-09-13)
|
|
11
|
+
|
|
12
|
+
**Note:** Version bump only for package @oanda/labs-sentiment-widget
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
## 1.0.5 (2023-09-13)
|
|
19
|
+
|
|
20
|
+
**Note:** Version bump only for package @oanda/labs-sentiment-widget
|
|
21
|
+
|
|
22
|
+
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
|
|
6
26
|
## 1.0.4 (2023-09-13)
|
|
7
27
|
|
|
8
28
|
**Note:** Version bump only for package @oanda/labs-sentiment-widget
|
|
@@ -6,7 +6,8 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
6
6
|
exports.SentimentWidget = void 0;
|
|
7
7
|
var _react = _interopRequireDefault(require("react"));
|
|
8
8
|
var _client = require("@apollo/client");
|
|
9
|
-
var
|
|
9
|
+
var _Widget = require("./Widget");
|
|
10
|
+
var _Tool = require("./Tool");
|
|
10
11
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
11
12
|
const SentimentWidget = _ref => {
|
|
12
13
|
let {
|
|
@@ -19,9 +20,9 @@ const SentimentWidget = _ref => {
|
|
|
19
20
|
});
|
|
20
21
|
return _react.default.createElement(_client.ApolloProvider, {
|
|
21
22
|
client: client
|
|
22
|
-
}, _react.default.createElement(
|
|
23
|
+
}, instrument ? _react.default.createElement(_Widget.Widget, {
|
|
23
24
|
instrument: instrument
|
|
24
|
-
}));
|
|
25
|
+
}) : _react.default.createElement(_Tool.Tool, null));
|
|
25
26
|
};
|
|
26
27
|
exports.SentimentWidget = SentimentWidget;
|
|
27
28
|
//# sourceMappingURL=SentimentWidget.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SentimentWidget.js","names":["_react","_interopRequireDefault","require","_client","
|
|
1
|
+
{"version":3,"file":"SentimentWidget.js","names":["_react","_interopRequireDefault","require","_client","_Widget","_Tool","obj","__esModule","default","SentimentWidget","_ref","graphqlUrl","instrument","client","ApolloClient","uri","cache","InMemoryCache","createElement","ApolloProvider","Widget","Tool","exports"],"sources":["../../../src/SentimentWidget/SentimentWidget.tsx"],"sourcesContent":["import React from 'react';\nimport { ApolloClient, InMemoryCache, ApolloProvider } from '@apollo/client';\nimport { Widget } from './Widget';\nimport { Tool } from './Tool';\nimport { SentimentConfig } from './types';\n\nconst SentimentWidget = ({ graphqlUrl, instrument }: SentimentConfig) => {\n const client = new ApolloClient({\n uri: graphqlUrl,\n cache: new InMemoryCache(),\n });\n\n return (\n <ApolloProvider client={client}>\n {instrument ? (\n <Widget instrument={instrument} />\n ) : (\n <Tool />\n )}\n </ApolloProvider>\n );\n};\n\nexport { SentimentWidget };\n"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,OAAA,GAAAD,OAAA;AACA,IAAAE,OAAA,GAAAF,OAAA;AACA,IAAAG,KAAA,GAAAH,OAAA;AAA8B,SAAAD,uBAAAK,GAAA,WAAAA,GAAA,IAAAA,GAAA,CAAAC,UAAA,GAAAD,GAAA,KAAAE,OAAA,EAAAF,GAAA;AAG9B,MAAMG,eAAe,GAAGC,IAAA,IAAiD;EAAA,IAAhD;IAAEC,UAAU;IAAEC;EAA4B,CAAC,GAAAF,IAAA;EAClE,MAAMG,MAAM,GAAG,IAAIC,oBAAY,CAAC;IAC9BC,GAAG,EAAEJ,UAAU;IACfK,KAAK,EAAE,IAAIC,qBAAa,CAAC;EAC3B,CAAC,CAAC;EAEF,OACEjB,MAAA,CAAAQ,OAAA,CAAAU,aAAA,CAACf,OAAA,CAAAgB,cAAc;IAACN,MAAM,EAAEA;EAAO,GAC5BD,UAAU,GACTZ,MAAA,CAAAQ,OAAA,CAAAU,aAAA,CAACd,OAAA,CAAAgB,MAAM;IAACR,UAAU,EAAEA;EAAW,CAAE,CAAC,GAElCZ,MAAA,CAAAQ,OAAA,CAAAU,aAAA,CAACb,KAAA,CAAAgB,IAAI,MAAE,CAEK,CAAC;AAErB,CAAC;AAACC,OAAA,CAAAb,eAAA,GAAAA,eAAA"}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.Tool = void 0;
|
|
7
|
+
var _react = _interopRequireWildcard(require("react"));
|
|
8
|
+
var _labsWidgetCommon = require("@oanda/labs-widget-common");
|
|
9
|
+
var _client = require("@apollo/client");
|
|
10
|
+
var _getSentimentList = require("../gql/getSentimentList");
|
|
11
|
+
var _types = require("./types");
|
|
12
|
+
var _utils = require("./utils");
|
|
13
|
+
var _SortSwitch = require("./components/SortSwitch");
|
|
14
|
+
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
15
|
+
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
16
|
+
const Tool = () => {
|
|
17
|
+
const [sort, setSort] = (0, _react.useState)(_types.SentimentSort.Bullish);
|
|
18
|
+
const [sortedData, setSortedData] = (0, _react.useState)(new Array(20).fill({}));
|
|
19
|
+
const {
|
|
20
|
+
loading,
|
|
21
|
+
data,
|
|
22
|
+
error
|
|
23
|
+
} = (0, _client.useQuery)(_getSentimentList.getSentimentList);
|
|
24
|
+
(0, _react.useEffect)(() => {
|
|
25
|
+
if (data) {
|
|
26
|
+
setSortedData((0, _utils.sortData)(data.sentimentList, sort));
|
|
27
|
+
}
|
|
28
|
+
}, [data, sort]);
|
|
29
|
+
return _react.default.createElement("div", {
|
|
30
|
+
"data-testid": "sentiment-tool",
|
|
31
|
+
className: "text-sm text-black"
|
|
32
|
+
}, error ? _react.default.createElement("div", {
|
|
33
|
+
className: "flex h-[200px] items-center justify-center border border-solid border-grey p-2"
|
|
34
|
+
}, _react.default.createElement(_labsWidgetCommon.ChartError, null)) : _react.default.createElement(_react.default.Fragment, null, _react.default.createElement("div", {
|
|
35
|
+
className: "flex justify-end pb-5"
|
|
36
|
+
}, _react.default.createElement(_SortSwitch.SortSwitch, {
|
|
37
|
+
disabled: loading,
|
|
38
|
+
selected: sort === _types.SentimentSort.Bullish ? _SortSwitch.SelectedArrow.UP : _SortSwitch.SelectedArrow.DOWN,
|
|
39
|
+
onClickButtonDown: () => setSort(_types.SentimentSort.Bearish),
|
|
40
|
+
onClickButtonUp: () => setSort(_types.SentimentSort.Bullish)
|
|
41
|
+
})), _react.default.createElement("div", {
|
|
42
|
+
className: "flex flex-col border border-solid border-grey p-2"
|
|
43
|
+
}, sortedData.map((item, index) => _react.default.createElement("div", {
|
|
44
|
+
className: "flex h-8 w-full items-center",
|
|
45
|
+
key: item.name || index
|
|
46
|
+
}, _react.default.createElement("div", {
|
|
47
|
+
className: "w-[120px] shrink-0"
|
|
48
|
+
}, loading ? _react.default.createElement(_labsWidgetCommon.Loader, {
|
|
49
|
+
size: _labsWidgetCommon.LoaderSize.md
|
|
50
|
+
}) : _react.default.createElement("p", {
|
|
51
|
+
className: "truncate font-sans font-bold"
|
|
52
|
+
}, item.name || '\u2014')), _react.default.createElement(_labsWidgetCommon.Sentiment, {
|
|
53
|
+
isLoading: loading,
|
|
54
|
+
height: _labsWidgetCommon.SentimentHeight.md,
|
|
55
|
+
sentiment: item.sentiment
|
|
56
|
+
}))))));
|
|
57
|
+
};
|
|
58
|
+
exports.Tool = Tool;
|
|
59
|
+
//# sourceMappingURL=Tool.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Tool.js","names":["_react","_interopRequireWildcard","require","_labsWidgetCommon","_client","_getSentimentList","_types","_utils","_SortSwitch","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","obj","__esModule","default","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","Tool","sort","setSort","useState","SentimentSort","Bullish","sortedData","setSortedData","Array","fill","loading","data","error","useQuery","getSentimentList","useEffect","sortData","sentimentList","createElement","className","ChartError","Fragment","SortSwitch","disabled","selected","SelectedArrow","UP","DOWN","onClickButtonDown","Bearish","onClickButtonUp","map","item","index","name","Loader","size","LoaderSize","md","Sentiment","isLoading","height","SentimentHeight","sentiment","exports"],"sources":["../../../src/SentimentWidget/Tool.tsx"],"sourcesContent":["import React, { useEffect, useState } from 'react';\nimport {\n Sentiment, SentimentHeight, Loader, LoaderSize, ChartError,\n} from '@oanda/labs-widget-common';\nimport { useQuery } from '@apollo/client';\nimport { getSentimentList } from '../gql/getSentimentList';\nimport { SentimentListResponse, SentimentSort, SentimentListData } from './types';\nimport { sortData } from './utils';\nimport { SelectedArrow, SortSwitch } from './components/SortSwitch';\n\nconst Tool = () => {\n const [sort, setSort] = useState(SentimentSort.Bullish);\n const [sortedData, setSortedData] = useState<SentimentListData[]>(new Array(20).fill({}));\n const { loading, data, error } = useQuery<SentimentListResponse>(getSentimentList);\n\n useEffect(() => {\n if (data) {\n setSortedData(sortData(data.sentimentList, sort));\n }\n }, [data, sort]);\n\n return (\n <div data-testid=\"sentiment-tool\" className=\"text-sm text-black\">\n {error ? (\n <div className=\"flex h-[200px] items-center justify-center border border-solid border-grey p-2\">\n <ChartError />\n </div>\n ) : (\n <>\n <div className=\"flex justify-end pb-5\">\n <SortSwitch\n disabled={loading}\n selected={sort === SentimentSort.Bullish ? SelectedArrow.UP : SelectedArrow.DOWN}\n onClickButtonDown={() => setSort(SentimentSort.Bearish)}\n onClickButtonUp={() => setSort(SentimentSort.Bullish)}\n />\n </div>\n <div className=\"flex flex-col border border-solid border-grey p-2\">\n {sortedData.map((item, index) => (\n <div className=\"flex h-8 w-full items-center\" key={item.name || index}>\n <div className=\"w-[120px] shrink-0\">\n {loading ? (\n <Loader size={LoaderSize.md} />\n ) : (\n <p className=\"truncate font-sans font-bold\">{item.name || '\\u2014'}</p>\n )}\n </div>\n <Sentiment\n isLoading={loading}\n height={SentimentHeight.md}\n sentiment={item.sentiment}\n />\n </div>\n ))}\n </div>\n </>\n )}\n </div>\n );\n};\n\nexport { Tool };\n"],"mappings":"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"}
|
|
@@ -3,13 +3,13 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
exports.
|
|
6
|
+
exports.Widget = void 0;
|
|
7
7
|
var _react = _interopRequireDefault(require("react"));
|
|
8
8
|
var _labsWidgetCommon = require("@oanda/labs-widget-common");
|
|
9
9
|
var _client = require("@apollo/client");
|
|
10
10
|
var _getInstrumentSentiment = require("../gql/getInstrumentSentiment");
|
|
11
11
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
12
|
-
const
|
|
12
|
+
const Widget = _ref => {
|
|
13
13
|
let {
|
|
14
14
|
instrument
|
|
15
15
|
} = _ref;
|
|
@@ -37,5 +37,5 @@ const Main = _ref => {
|
|
|
37
37
|
sentiment: sentiment
|
|
38
38
|
}), isError && _react.default.createElement(_labsWidgetCommon.Error, null)) : _react.default.createElement(_labsWidgetCommon.Spinner, null));
|
|
39
39
|
};
|
|
40
|
-
exports.
|
|
41
|
-
//# sourceMappingURL=
|
|
40
|
+
exports.Widget = Widget;
|
|
41
|
+
//# sourceMappingURL=Widget.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Widget.js","names":["_react","_interopRequireDefault","require","_labsWidgetCommon","_client","_getInstrumentSentiment","obj","__esModule","default","Widget","_ref","instrument","loading","data","error","useQuery","getInstrumentSentiment","variables","division","name","sentiment","isError","shortPercent","longPercent","undefined","createElement","className","Fragment","Sentiment","height","SentimentHeight","md","Error","Spinner","exports"],"sources":["../../../src/SentimentWidget/Widget.tsx"],"sourcesContent":["import React from 'react';\nimport {\n Sentiment, SentimentHeight, Spinner, Error,\n} from '@oanda/labs-widget-common';\nimport { useQuery } from '@apollo/client';\nimport { getInstrumentSentiment } from '../gql/getInstrumentSentiment';\n\nconst Widget = ({ instrument }: { instrument: string }) => {\n const { loading, data, error } = useQuery(getInstrumentSentiment, {\n variables: {\n division: 'OJ',\n name: instrument,\n },\n });\n\n const { sentiment } = data?.sentiment[0] || {};\n const isError = error\n || (sentiment?.shortPercent === 0 && sentiment?.longPercent === 0)\n || sentiment?.shortPercent === undefined\n || sentiment?.longPercent === undefined;\n\n return (\n <div data-testid=\"sentiment-widget\" className=\"flex items-center justify-between border border-solid border-grey p-4 text-sm text-black\">\n {!loading\n ? (\n <>\n <p className=\"mr-12 font-sans font-bold\">{instrument}</p>\n {!isError && <Sentiment height={SentimentHeight.md} sentiment={sentiment} />}\n {isError && <Error />}\n </>\n ) : <Spinner />}\n </div>\n );\n};\n\nexport { Widget };\n"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,iBAAA,GAAAD,OAAA;AAGA,IAAAE,OAAA,GAAAF,OAAA;AACA,IAAAG,uBAAA,GAAAH,OAAA;AAAuE,SAAAD,uBAAAK,GAAA,WAAAA,GAAA,IAAAA,GAAA,CAAAC,UAAA,GAAAD,GAAA,KAAAE,OAAA,EAAAF,GAAA;AAEvE,MAAMG,MAAM,GAAGC,IAAA,IAA4C;EAAA,IAA3C;IAAEC;EAAmC,CAAC,GAAAD,IAAA;EACpD,MAAM;IAAEE,OAAO;IAAEC,IAAI;IAAEC;EAAM,CAAC,GAAG,IAAAC,gBAAQ,EAACC,8CAAsB,EAAE;IAChEC,SAAS,EAAE;MACTC,QAAQ,EAAE,IAAI;MACdC,IAAI,EAAER;IACR;EACF,CAAC,CAAC;EAEF,MAAM;IAAES;EAAU,CAAC,GAAG,CAAAP,IAAI,aAAJA,IAAI,uBAAJA,IAAI,CAAEO,SAAS,CAAC,CAAC,CAAC,KAAI,CAAC,CAAC;EAC9C,MAAMC,OAAO,GAAGP,KAAK,IACf,CAAAM,SAAS,aAATA,SAAS,uBAATA,SAAS,CAAEE,YAAY,MAAK,CAAC,IAAI,CAAAF,SAAS,aAATA,SAAS,uBAATA,SAAS,CAAEG,WAAW,MAAK,CAAE,IAC/D,CAAAH,SAAS,aAATA,SAAS,uBAATA,SAAS,CAAEE,YAAY,MAAKE,SAAS,IACrC,CAAAJ,SAAS,aAATA,SAAS,uBAATA,SAAS,CAAEG,WAAW,MAAKC,SAAS;EAEzC,OACExB,MAAA,CAAAQ,OAAA,CAAAiB,aAAA;IAAK,eAAY,kBAAkB;IAACC,SAAS,EAAC;EAA0F,GACrI,CAACd,OAAO,GAELZ,MAAA,CAAAQ,OAAA,CAAAiB,aAAA,CAAAzB,MAAA,CAAAQ,OAAA,CAAAmB,QAAA,QACE3B,MAAA,CAAAQ,OAAA,CAAAiB,aAAA;IAAGC,SAAS,EAAC;EAA2B,GAAEf,UAAc,CAAC,EACxD,CAACU,OAAO,IAAIrB,MAAA,CAAAQ,OAAA,CAAAiB,aAAA,CAACtB,iBAAA,CAAAyB,SAAS;IAACC,MAAM,EAAEC,iCAAe,CAACC,EAAG;IAACX,SAAS,EAAEA;EAAU,CAAE,CAAC,EAC3EC,OAAO,IAAIrB,MAAA,CAAAQ,OAAA,CAAAiB,aAAA,CAACtB,iBAAA,CAAA6B,KAAK,MAAE,CACpB,CAAC,GACDhC,MAAA,CAAAQ,OAAA,CAAAiB,aAAA,CAACtB,iBAAA,CAAA8B,OAAO,MAAE,CACb,CAAC;AAEV,CAAC;AAACC,OAAA,CAAAzB,MAAA,GAAAA,MAAA"}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.SortSwitch = void 0;
|
|
7
|
+
var _react = _interopRequireDefault(require("react"));
|
|
8
|
+
var _classnames = _interopRequireDefault(require("classnames"));
|
|
9
|
+
var _labsWidgetCommon = require("@oanda/labs-widget-common");
|
|
10
|
+
var _types = require("./types");
|
|
11
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
12
|
+
const SortSwitch = _ref => {
|
|
13
|
+
let {
|
|
14
|
+
onClickButtonDown,
|
|
15
|
+
onClickButtonUp,
|
|
16
|
+
selected,
|
|
17
|
+
disabled
|
|
18
|
+
} = _ref;
|
|
19
|
+
return _react.default.createElement("div", {
|
|
20
|
+
"data-testid": "sort-switch",
|
|
21
|
+
className: (0, _classnames.default)('flex rounded border-[1px] border-solid font-sans text-xs', {
|
|
22
|
+
'border-darkGrey': disabled,
|
|
23
|
+
'border-navyBlue': !disabled
|
|
24
|
+
})
|
|
25
|
+
}, _react.default.createElement("button", {
|
|
26
|
+
"data-testid": "sort-switch-button-up",
|
|
27
|
+
disabled: disabled || selected === _types.SelectedArrow.UP,
|
|
28
|
+
type: "button",
|
|
29
|
+
onClick: onClickButtonUp,
|
|
30
|
+
className: (0, _classnames.default)('flex h-11 w-11 grow-0 items-center justify-center border-r-[1px] border-solid [&:enabled:hover>*]:-translate-y-1', {
|
|
31
|
+
'border-darkGrey': disabled,
|
|
32
|
+
'border-navyBlue': !disabled
|
|
33
|
+
})
|
|
34
|
+
}, _react.default.createElement(_labsWidgetCommon.LongArrowUp, {
|
|
35
|
+
className: (0, _classnames.default)('transition-transform', {
|
|
36
|
+
'stroke-darkGrey': disabled,
|
|
37
|
+
'stroke-navyBlue': selected !== _types.SelectedArrow.UP && !disabled,
|
|
38
|
+
'stroke-green': selected === _types.SelectedArrow.UP && !disabled
|
|
39
|
+
})
|
|
40
|
+
})), _react.default.createElement("button", {
|
|
41
|
+
"data-testid": "sort-switch-button-down",
|
|
42
|
+
disabled: disabled || selected === _types.SelectedArrow.DOWN,
|
|
43
|
+
type: "button",
|
|
44
|
+
onClick: onClickButtonDown,
|
|
45
|
+
className: "flex h-11 w-11 grow-0 items-center justify-center text-center [&:enabled:hover>*]:translate-y-1"
|
|
46
|
+
}, _react.default.createElement(_labsWidgetCommon.LongArrowDown, {
|
|
47
|
+
className: (0, _classnames.default)('transition-transform', {
|
|
48
|
+
'stroke-darkGrey': disabled,
|
|
49
|
+
'stroke-navyBlue': selected !== _types.SelectedArrow.DOWN && !disabled,
|
|
50
|
+
'stroke-green': selected === _types.SelectedArrow.DOWN && !disabled
|
|
51
|
+
})
|
|
52
|
+
})));
|
|
53
|
+
};
|
|
54
|
+
exports.SortSwitch = SortSwitch;
|
|
55
|
+
//# sourceMappingURL=SortSwitch.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SortSwitch.js","names":["_react","_interopRequireDefault","require","_classnames","_labsWidgetCommon","_types","obj","__esModule","default","SortSwitch","_ref","onClickButtonDown","onClickButtonUp","selected","disabled","createElement","className","classnames","SelectedArrow","UP","type","onClick","LongArrowUp","DOWN","LongArrowDown","exports"],"sources":["../../../../../src/SentimentWidget/components/SortSwitch/SortSwitch.tsx"],"sourcesContent":["import React from 'react';\nimport classnames from 'classnames';\nimport { LongArrowUp, LongArrowDown } from '@oanda/labs-widget-common';\nimport { SelectedArrow, SortSwitchProps } from './types';\n\nconst SortSwitch = ({\n onClickButtonDown, onClickButtonUp, selected, disabled,\n}: SortSwitchProps) => (\n <div\n data-testid=\"sort-switch\"\n className={classnames(\n 'flex rounded border-[1px] border-solid font-sans text-xs',\n {\n 'border-darkGrey': disabled,\n 'border-navyBlue': !disabled,\n },\n )}\n >\n <button\n data-testid=\"sort-switch-button-up\"\n disabled={disabled || selected === SelectedArrow.UP}\n type=\"button\"\n onClick={onClickButtonUp}\n className={classnames(\n 'flex h-11 w-11 grow-0 items-center justify-center border-r-[1px] border-solid [&:enabled:hover>*]:-translate-y-1',\n {\n 'border-darkGrey': disabled,\n 'border-navyBlue': !disabled,\n },\n )}\n >\n <LongArrowUp\n className={classnames(\n 'transition-transform',\n {\n 'stroke-darkGrey': disabled,\n 'stroke-navyBlue': selected !== SelectedArrow.UP && !disabled,\n 'stroke-green': selected === SelectedArrow.UP && !disabled,\n },\n )}\n />\n </button>\n <button\n data-testid=\"sort-switch-button-down\"\n disabled={disabled || selected === SelectedArrow.DOWN}\n type=\"button\"\n onClick={onClickButtonDown}\n className=\"flex h-11 w-11 grow-0 items-center justify-center text-center [&:enabled:hover>*]:translate-y-1\"\n >\n <LongArrowDown\n className={classnames(\n 'transition-transform',\n {\n 'stroke-darkGrey': disabled,\n 'stroke-navyBlue': selected !== SelectedArrow.DOWN && !disabled,\n 'stroke-green': selected === SelectedArrow.DOWN && !disabled,\n },\n )}\n />\n </button>\n </div>\n);\n\nexport {\n SortSwitch,\n};\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;AAAyD,SAAAD,uBAAAK,GAAA,WAAAA,GAAA,IAAAA,GAAA,CAAAC,UAAA,GAAAD,GAAA,KAAAE,OAAA,EAAAF,GAAA;AAEzD,MAAMG,UAAU,GAAGC,IAAA;EAAA,IAAC;IAClBC,iBAAiB;IAAEC,eAAe;IAAEC,QAAQ;IAAEC;EAC/B,CAAC,GAAAJ,IAAA;EAAA,OAChBV,MAAA,CAAAQ,OAAA,CAAAO,aAAA;IACE,eAAY,aAAa;IACzBC,SAAS,EAAE,IAAAC,mBAAU,EACnB,0DAA0D,EAC1D;MACE,iBAAiB,EAAEH,QAAQ;MAC3B,iBAAiB,EAAE,CAACA;IACtB,CACF;EAAE,GAEFd,MAAA,CAAAQ,OAAA,CAAAO,aAAA;IACE,eAAY,uBAAuB;IACnCD,QAAQ,EAAEA,QAAQ,IAAID,QAAQ,KAAKK,oBAAa,CAACC,EAAG;IACpDC,IAAI,EAAC,QAAQ;IACbC,OAAO,EAAET,eAAgB;IACzBI,SAAS,EAAE,IAAAC,mBAAU,EACnB,mHAAmH,EACnH;MACE,iBAAiB,EAAEH,QAAQ;MAC3B,iBAAiB,EAAE,CAACA;IACtB,CACF;EAAE,GAEFd,MAAA,CAAAQ,OAAA,CAAAO,aAAA,CAACX,iBAAA,CAAAkB,WAAW;IACVN,SAAS,EAAE,IAAAC,mBAAU,EACnB,sBAAsB,EACtB;MACE,iBAAiB,EAAEH,QAAQ;MAC3B,iBAAiB,EAAED,QAAQ,KAAKK,oBAAa,CAACC,EAAE,IAAI,CAACL,QAAQ;MAC7D,cAAc,EAAED,QAAQ,KAAKK,oBAAa,CAACC,EAAE,IAAI,CAACL;IACpD,CACF;EAAE,CACH,CACK,CAAC,EACTd,MAAA,CAAAQ,OAAA,CAAAO,aAAA;IACE,eAAY,yBAAyB;IACrCD,QAAQ,EAAEA,QAAQ,IAAID,QAAQ,KAAKK,oBAAa,CAACK,IAAK;IACtDH,IAAI,EAAC,QAAQ;IACbC,OAAO,EAAEV,iBAAkB;IAC3BK,SAAS,EAAC;EAAiG,GAE3GhB,MAAA,CAAAQ,OAAA,CAAAO,aAAA,CAACX,iBAAA,CAAAoB,aAAa;IACZR,SAAS,EAAE,IAAAC,mBAAU,EACnB,sBAAsB,EACtB;MACE,iBAAiB,EAAEH,QAAQ;MAC3B,iBAAiB,EAAED,QAAQ,KAAKK,oBAAa,CAACK,IAAI,IAAI,CAACT,QAAQ;MAC/D,cAAc,EAAED,QAAQ,KAAKK,oBAAa,CAACK,IAAI,IAAI,CAACT;IACtD,CACF;EAAE,CACH,CACK,CACL,CAAC;AAAA,CACP;AAACW,OAAA,CAAAhB,UAAA,GAAAA,UAAA"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
var _SortSwitch = require("./SortSwitch");
|
|
7
|
+
Object.keys(_SortSwitch).forEach(function (key) {
|
|
8
|
+
if (key === "default" || key === "__esModule") return;
|
|
9
|
+
if (key in exports && exports[key] === _SortSwitch[key]) return;
|
|
10
|
+
Object.defineProperty(exports, key, {
|
|
11
|
+
enumerable: true,
|
|
12
|
+
get: function () {
|
|
13
|
+
return _SortSwitch[key];
|
|
14
|
+
}
|
|
15
|
+
});
|
|
16
|
+
});
|
|
17
|
+
var _types = require("./types");
|
|
18
|
+
Object.keys(_types).forEach(function (key) {
|
|
19
|
+
if (key === "default" || key === "__esModule") return;
|
|
20
|
+
if (key in exports && exports[key] === _types[key]) return;
|
|
21
|
+
Object.defineProperty(exports, key, {
|
|
22
|
+
enumerable: true,
|
|
23
|
+
get: function () {
|
|
24
|
+
return _types[key];
|
|
25
|
+
}
|
|
26
|
+
});
|
|
27
|
+
});
|
|
28
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","names":["_SortSwitch","require","Object","keys","forEach","key","exports","defineProperty","enumerable","get","_types"],"sources":["../../../../../src/SentimentWidget/components/SortSwitch/index.ts"],"sourcesContent":["export * from './SortSwitch';\nexport * from './types';\n"],"mappings":";;;;;AAAA,IAAAA,WAAA,GAAAC,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAH,WAAA,EAAAI,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAL,WAAA,CAAAK,GAAA;EAAAH,MAAA,CAAAK,cAAA,CAAAD,OAAA,EAAAD,GAAA;IAAAG,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAT,WAAA,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"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.SelectedArrow = void 0;
|
|
7
|
+
let SelectedArrow = function (SelectedArrow) {
|
|
8
|
+
SelectedArrow["UP"] = "up";
|
|
9
|
+
SelectedArrow["DOWN"] = "down";
|
|
10
|
+
return SelectedArrow;
|
|
11
|
+
}({});
|
|
12
|
+
exports.SelectedArrow = SelectedArrow;
|
|
13
|
+
//# sourceMappingURL=types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","names":["SelectedArrow","exports"],"sources":["../../../../../src/SentimentWidget/components/SortSwitch/types.tsx"],"sourcesContent":["export enum SelectedArrow {\n UP = 'up',\n DOWN = 'down',\n}\n\nexport interface SortSwitchProps {\n onClickButtonUp: () => void;\n onClickButtonDown: () => void;\n selected: SelectedArrow;\n disabled?: boolean;\n}\n"],"mappings":";;;;;;IAAYA,aAAa,aAAbA,aAAa;EAAbA,aAAa;EAAbA,aAAa;EAAA,OAAbA,aAAa;AAAA;AAAAC,OAAA,CAAAD,aAAA,GAAAA,aAAA"}
|
|
@@ -3,4 +3,11 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
+
exports.SentimentSort = void 0;
|
|
7
|
+
let SentimentSort = function (SentimentSort) {
|
|
8
|
+
SentimentSort["Bearish"] = "BEARISH";
|
|
9
|
+
SentimentSort["Bullish"] = "BULLISH";
|
|
10
|
+
return SentimentSort;
|
|
11
|
+
}({});
|
|
12
|
+
exports.SentimentSort = SentimentSort;
|
|
6
13
|
//# sourceMappingURL=types.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","names":[],"sources":["../../../src/SentimentWidget/types.ts"],"sourcesContent":["export interface SentimentWidgetConfig {\n graphqlUrl: string;\n instrument: string;\n}\n"],"mappings":""}
|
|
1
|
+
{"version":3,"file":"types.js","names":["SentimentSort","exports"],"sources":["../../../src/SentimentWidget/types.ts"],"sourcesContent":["export interface SentimentConfig {\n graphqlUrl: string;\n instrument?: string;\n count?: number;\n}\n\nexport interface SentimentWidgetConfig {\n graphqlUrl: string;\n instrument: string;\n}\n\nexport interface SentimentToolConfig {\n graphqlUrl: string;\n}\n\nexport interface SentimentListData {\n name: string;\n sentiment: {\n shortPercent: number;\n longPercent: number;\n }\n}\n\nexport interface SentimentListResponse {\n sentimentList: SentimentListData[]\n}\n\nexport enum SentimentSort {\n Bearish = 'BEARISH',\n Bullish = 'BULLISH',\n}\n"],"mappings":";;;;;;IA2BYA,aAAa,aAAbA,aAAa;EAAbA,aAAa;EAAbA,aAAa;EAAA,OAAbA,aAAa;AAAA;AAAAC,OAAA,CAAAD,aAAA,GAAAA,aAAA"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.sortData = void 0;
|
|
7
|
+
var _types = require("./types");
|
|
8
|
+
const sortData = (data, sort) => {
|
|
9
|
+
if (sort === _types.SentimentSort.Bullish) {
|
|
10
|
+
return [...data].sort((a, b) => a.sentiment.shortPercent - b.sentiment.shortPercent);
|
|
11
|
+
}
|
|
12
|
+
return [...data].sort((a, b) => a.sentiment.longPercent - b.sentiment.longPercent);
|
|
13
|
+
};
|
|
14
|
+
exports.sortData = sortData;
|
|
15
|
+
//# sourceMappingURL=utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.js","names":["_types","require","sortData","data","sort","SentimentSort","Bullish","a","b","sentiment","shortPercent","longPercent","exports"],"sources":["../../../src/SentimentWidget/utils.ts"],"sourcesContent":["import { SentimentSort, SentimentListData } from './types';\n\nexport const sortData = (data: SentimentListData[], sort: SentimentSort) => {\n if (sort === SentimentSort.Bullish) {\n return [...data].sort((a, b) => a.sentiment.shortPercent - b.sentiment.shortPercent);\n }\n return [...data].sort((a, b) => a.sentiment.longPercent - b.sentiment.longPercent);\n};\n"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AAEO,MAAMC,QAAQ,GAAGA,CAACC,IAAyB,EAAEC,IAAmB,KAAK;EAC1E,IAAIA,IAAI,KAAKC,oBAAa,CAACC,OAAO,EAAE;IAClC,OAAO,CAAC,GAAGH,IAAI,CAAC,CAACC,IAAI,CAAC,CAACG,CAAC,EAAEC,CAAC,KAAKD,CAAC,CAACE,SAAS,CAACC,YAAY,GAAGF,CAAC,CAACC,SAAS,CAACC,YAAY,CAAC;EACtF;EACA,OAAO,CAAC,GAAGP,IAAI,CAAC,CAACC,IAAI,CAAC,CAACG,CAAC,EAAEC,CAAC,KAAKD,CAAC,CAACE,SAAS,CAACE,WAAW,GAAGH,CAAC,CAACC,SAAS,CAACE,WAAW,CAAC;AACpF,CAAC;AAACC,OAAA,CAAAV,QAAA,GAAAA,QAAA"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.getSentimentList = void 0;
|
|
7
|
+
var _client = require("@apollo/client");
|
|
8
|
+
var _templateObject;
|
|
9
|
+
function _taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(0); } return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }
|
|
10
|
+
const getSentimentList = (0, _client.gql)(_templateObject || (_templateObject = _taggedTemplateLiteral(["\n query GetSentimentList {\n sentimentList {\n name\n sentiment {\n shortPercent\n longPercent\n }\n }\n }\n"])));
|
|
11
|
+
exports.getSentimentList = getSentimentList;
|
|
12
|
+
//# sourceMappingURL=getSentimentList.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getSentimentList.js","names":["_client","require","_templateObject","_taggedTemplateLiteral","strings","raw","slice","Object","freeze","defineProperties","value","getSentimentList","gql","exports"],"sources":["../../../src/gql/getSentimentList.ts"],"sourcesContent":["import { gql } from '@apollo/client';\n\nconst getSentimentList = gql`\n query GetSentimentList {\n sentimentList {\n name\n sentiment {\n shortPercent\n longPercent\n }\n }\n }\n`;\n\nexport { getSentimentList };\n"],"mappings":";;;;;;AAAA,IAAAA,OAAA,GAAAC,OAAA;AAAqC,IAAAC,eAAA;AAAA,SAAAC,uBAAAC,OAAA,EAAAC,GAAA,SAAAA,GAAA,IAAAA,GAAA,GAAAD,OAAA,CAAAE,KAAA,cAAAC,MAAA,CAAAC,MAAA,CAAAD,MAAA,CAAAE,gBAAA,CAAAL,OAAA,IAAAC,GAAA,IAAAK,KAAA,EAAAH,MAAA,CAAAC,MAAA,CAAAH,GAAA;AAErC,MAAMM,gBAAgB,OAAGC,WAAG,EAAAV,eAAA,KAAAA,eAAA,GAAAC,sBAAA,0JAU3B;AAACU,OAAA,CAAAF,gBAAA,GAAAA,gBAAA"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import { ApolloClient, InMemoryCache, ApolloProvider } from '@apollo/client';
|
|
3
|
-
import {
|
|
3
|
+
import { Widget } from './Widget';
|
|
4
|
+
import { Tool } from './Tool';
|
|
4
5
|
const SentimentWidget = _ref => {
|
|
5
6
|
let {
|
|
6
7
|
graphqlUrl,
|
|
@@ -12,9 +13,9 @@ const SentimentWidget = _ref => {
|
|
|
12
13
|
});
|
|
13
14
|
return React.createElement(ApolloProvider, {
|
|
14
15
|
client: client
|
|
15
|
-
}, React.createElement(
|
|
16
|
+
}, instrument ? React.createElement(Widget, {
|
|
16
17
|
instrument: instrument
|
|
17
|
-
}));
|
|
18
|
+
}) : React.createElement(Tool, null));
|
|
18
19
|
};
|
|
19
20
|
export { SentimentWidget };
|
|
20
21
|
//# sourceMappingURL=SentimentWidget.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SentimentWidget.js","names":["React","ApolloClient","InMemoryCache","ApolloProvider","
|
|
1
|
+
{"version":3,"file":"SentimentWidget.js","names":["React","ApolloClient","InMemoryCache","ApolloProvider","Widget","Tool","SentimentWidget","_ref","graphqlUrl","instrument","client","uri","cache","createElement"],"sources":["../../../src/SentimentWidget/SentimentWidget.tsx"],"sourcesContent":["import React from 'react';\nimport { ApolloClient, InMemoryCache, ApolloProvider } from '@apollo/client';\nimport { Widget } from './Widget';\nimport { Tool } from './Tool';\nimport { SentimentConfig } from './types';\n\nconst SentimentWidget = ({ graphqlUrl, instrument }: SentimentConfig) => {\n const client = new ApolloClient({\n uri: graphqlUrl,\n cache: new InMemoryCache(),\n });\n\n return (\n <ApolloProvider client={client}>\n {instrument ? (\n <Widget instrument={instrument} />\n ) : (\n <Tool />\n )}\n </ApolloProvider>\n );\n};\n\nexport { SentimentWidget };\n"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAASC,YAAY,EAAEC,aAAa,EAAEC,cAAc,QAAQ,gBAAgB;AAC5E,SAASC,MAAM,QAAQ,UAAU;AACjC,SAASC,IAAI,QAAQ,QAAQ;AAG7B,MAAMC,eAAe,GAAGC,IAAA,IAAiD;EAAA,IAAhD;IAAEC,UAAU;IAAEC;EAA4B,CAAC,GAAAF,IAAA;EAClE,MAAMG,MAAM,GAAG,IAAIT,YAAY,CAAC;IAC9BU,GAAG,EAAEH,UAAU;IACfI,KAAK,EAAE,IAAIV,aAAa,CAAC;EAC3B,CAAC,CAAC;EAEF,OACEF,KAAA,CAAAa,aAAA,CAACV,cAAc;IAACO,MAAM,EAAEA;EAAO,GAC5BD,UAAU,GACTT,KAAA,CAAAa,aAAA,CAACT,MAAM;IAACK,UAAU,EAAEA;EAAW,CAAE,CAAC,GAElCT,KAAA,CAAAa,aAAA,CAACR,IAAI,MAAE,CAEK,CAAC;AAErB,CAAC;AAED,SAASC,eAAe"}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import React, { useEffect, useState } from 'react';
|
|
2
|
+
import { Sentiment, SentimentHeight, Loader, LoaderSize, ChartError } from '@oanda/labs-widget-common';
|
|
3
|
+
import { useQuery } from '@apollo/client';
|
|
4
|
+
import { getSentimentList } from '../gql/getSentimentList';
|
|
5
|
+
import { SentimentSort } from './types';
|
|
6
|
+
import { sortData } from './utils';
|
|
7
|
+
import { SelectedArrow, SortSwitch } from './components/SortSwitch';
|
|
8
|
+
const Tool = () => {
|
|
9
|
+
const [sort, setSort] = useState(SentimentSort.Bullish);
|
|
10
|
+
const [sortedData, setSortedData] = useState(new Array(20).fill({}));
|
|
11
|
+
const {
|
|
12
|
+
loading,
|
|
13
|
+
data,
|
|
14
|
+
error
|
|
15
|
+
} = useQuery(getSentimentList);
|
|
16
|
+
useEffect(() => {
|
|
17
|
+
if (data) {
|
|
18
|
+
setSortedData(sortData(data.sentimentList, sort));
|
|
19
|
+
}
|
|
20
|
+
}, [data, sort]);
|
|
21
|
+
return React.createElement("div", {
|
|
22
|
+
"data-testid": "sentiment-tool",
|
|
23
|
+
className: "text-sm text-black"
|
|
24
|
+
}, error ? React.createElement("div", {
|
|
25
|
+
className: "flex h-[200px] items-center justify-center border border-solid border-grey p-2"
|
|
26
|
+
}, React.createElement(ChartError, null)) : React.createElement(React.Fragment, null, React.createElement("div", {
|
|
27
|
+
className: "flex justify-end pb-5"
|
|
28
|
+
}, React.createElement(SortSwitch, {
|
|
29
|
+
disabled: loading,
|
|
30
|
+
selected: sort === SentimentSort.Bullish ? SelectedArrow.UP : SelectedArrow.DOWN,
|
|
31
|
+
onClickButtonDown: () => setSort(SentimentSort.Bearish),
|
|
32
|
+
onClickButtonUp: () => setSort(SentimentSort.Bullish)
|
|
33
|
+
})), React.createElement("div", {
|
|
34
|
+
className: "flex flex-col border border-solid border-grey p-2"
|
|
35
|
+
}, sortedData.map((item, index) => React.createElement("div", {
|
|
36
|
+
className: "flex h-8 w-full items-center",
|
|
37
|
+
key: item.name || index
|
|
38
|
+
}, React.createElement("div", {
|
|
39
|
+
className: "w-[120px] shrink-0"
|
|
40
|
+
}, loading ? React.createElement(Loader, {
|
|
41
|
+
size: LoaderSize.md
|
|
42
|
+
}) : React.createElement("p", {
|
|
43
|
+
className: "truncate font-sans font-bold"
|
|
44
|
+
}, item.name || '\u2014')), React.createElement(Sentiment, {
|
|
45
|
+
isLoading: loading,
|
|
46
|
+
height: SentimentHeight.md,
|
|
47
|
+
sentiment: item.sentiment
|
|
48
|
+
}))))));
|
|
49
|
+
};
|
|
50
|
+
export { Tool };
|
|
51
|
+
//# sourceMappingURL=Tool.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Tool.js","names":["React","useEffect","useState","Sentiment","SentimentHeight","Loader","LoaderSize","ChartError","useQuery","getSentimentList","SentimentSort","sortData","SelectedArrow","SortSwitch","Tool","sort","setSort","Bullish","sortedData","setSortedData","Array","fill","loading","data","error","sentimentList","createElement","className","Fragment","disabled","selected","UP","DOWN","onClickButtonDown","Bearish","onClickButtonUp","map","item","index","key","name","size","md","isLoading","height","sentiment"],"sources":["../../../src/SentimentWidget/Tool.tsx"],"sourcesContent":["import React, { useEffect, useState } from 'react';\nimport {\n Sentiment, SentimentHeight, Loader, LoaderSize, ChartError,\n} from '@oanda/labs-widget-common';\nimport { useQuery } from '@apollo/client';\nimport { getSentimentList } from '../gql/getSentimentList';\nimport { SentimentListResponse, SentimentSort, SentimentListData } from './types';\nimport { sortData } from './utils';\nimport { SelectedArrow, SortSwitch } from './components/SortSwitch';\n\nconst Tool = () => {\n const [sort, setSort] = useState(SentimentSort.Bullish);\n const [sortedData, setSortedData] = useState<SentimentListData[]>(new Array(20).fill({}));\n const { loading, data, error } = useQuery<SentimentListResponse>(getSentimentList);\n\n useEffect(() => {\n if (data) {\n setSortedData(sortData(data.sentimentList, sort));\n }\n }, [data, sort]);\n\n return (\n <div data-testid=\"sentiment-tool\" className=\"text-sm text-black\">\n {error ? (\n <div className=\"flex h-[200px] items-center justify-center border border-solid border-grey p-2\">\n <ChartError />\n </div>\n ) : (\n <>\n <div className=\"flex justify-end pb-5\">\n <SortSwitch\n disabled={loading}\n selected={sort === SentimentSort.Bullish ? SelectedArrow.UP : SelectedArrow.DOWN}\n onClickButtonDown={() => setSort(SentimentSort.Bearish)}\n onClickButtonUp={() => setSort(SentimentSort.Bullish)}\n />\n </div>\n <div className=\"flex flex-col border border-solid border-grey p-2\">\n {sortedData.map((item, index) => (\n <div className=\"flex h-8 w-full items-center\" key={item.name || index}>\n <div className=\"w-[120px] shrink-0\">\n {loading ? (\n <Loader size={LoaderSize.md} />\n ) : (\n <p className=\"truncate font-sans font-bold\">{item.name || '\\u2014'}</p>\n )}\n </div>\n <Sentiment\n isLoading={loading}\n height={SentimentHeight.md}\n sentiment={item.sentiment}\n />\n </div>\n ))}\n </div>\n </>\n )}\n </div>\n );\n};\n\nexport { Tool };\n"],"mappings":"AAAA,OAAOA,KAAK,IAAIC,SAAS,EAAEC,QAAQ,QAAQ,OAAO;AAClD,SACEC,SAAS,EAAEC,eAAe,EAAEC,MAAM,EAAEC,UAAU,EAAEC,UAAU,QACrD,2BAA2B;AAClC,SAASC,QAAQ,QAAQ,gBAAgB;AACzC,SAASC,gBAAgB,QAAQ,yBAAyB;AAC1D,SAAgCC,aAAa,QAA2B,SAAS;AACjF,SAASC,QAAQ,QAAQ,SAAS;AAClC,SAASC,aAAa,EAAEC,UAAU,QAAQ,yBAAyB;AAEnE,MAAMC,IAAI,GAAGA,CAAA,KAAM;EACjB,MAAM,CAACC,IAAI,EAAEC,OAAO,CAAC,GAAGd,QAAQ,CAACQ,aAAa,CAACO,OAAO,CAAC;EACvD,MAAM,CAACC,UAAU,EAAEC,aAAa,CAAC,GAAGjB,QAAQ,CAAsB,IAAIkB,KAAK,CAAC,EAAE,CAAC,CAACC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;EACzF,MAAM;IAAEC,OAAO;IAAEC,IAAI;IAAEC;EAAM,CAAC,GAAGhB,QAAQ,CAAwBC,gBAAgB,CAAC;EAElFR,SAAS,CAAC,MAAM;IACd,IAAIsB,IAAI,EAAE;MACRJ,aAAa,CAACR,QAAQ,CAACY,IAAI,CAACE,aAAa,EAAEV,IAAI,CAAC,CAAC;IACnD;EACF,CAAC,EAAE,CAACQ,IAAI,EAAER,IAAI,CAAC,CAAC;EAEhB,OACEf,KAAA,CAAA0B,aAAA;IAAK,eAAY,gBAAgB;IAACC,SAAS,EAAC;EAAoB,GAC7DH,KAAK,GACJxB,KAAA,CAAA0B,aAAA;IAAKC,SAAS,EAAC;EAAgF,GAC7F3B,KAAA,CAAA0B,aAAA,CAACnB,UAAU,MAAE,CACV,CAAC,GAENP,KAAA,CAAA0B,aAAA,CAAA1B,KAAA,CAAA4B,QAAA,QACE5B,KAAA,CAAA0B,aAAA;IAAKC,SAAS,EAAC;EAAuB,GACpC3B,KAAA,CAAA0B,aAAA,CAACb,UAAU;IACTgB,QAAQ,EAAEP,OAAQ;IAClBQ,QAAQ,EAAEf,IAAI,KAAKL,aAAa,CAACO,OAAO,GAAGL,aAAa,CAACmB,EAAE,GAAGnB,aAAa,CAACoB,IAAK;IACjFC,iBAAiB,EAAEA,CAAA,KAAMjB,OAAO,CAACN,aAAa,CAACwB,OAAO,CAAE;IACxDC,eAAe,EAAEA,CAAA,KAAMnB,OAAO,CAACN,aAAa,CAACO,OAAO;EAAE,CACvD,CACE,CAAC,EACNjB,KAAA,CAAA0B,aAAA;IAAKC,SAAS,EAAC;EAAmD,GAC/DT,UAAU,CAACkB,GAAG,CAAC,CAACC,IAAI,EAAEC,KAAK,KAC1BtC,KAAA,CAAA0B,aAAA;IAAKC,SAAS,EAAC,8BAA8B;IAACY,GAAG,EAAEF,IAAI,CAACG,IAAI,IAAIF;EAAM,GACpEtC,KAAA,CAAA0B,aAAA;IAAKC,SAAS,EAAC;EAAoB,GAChCL,OAAO,GACNtB,KAAA,CAAA0B,aAAA,CAACrB,MAAM;IAACoC,IAAI,EAAEnC,UAAU,CAACoC;EAAG,CAAE,CAAC,GAE/B1C,KAAA,CAAA0B,aAAA;IAAGC,SAAS,EAAC;EAA8B,GAAEU,IAAI,CAACG,IAAI,IAAI,QAAY,CAErE,CAAC,EACNxC,KAAA,CAAA0B,aAAA,CAACvB,SAAS;IACRwC,SAAS,EAAErB,OAAQ;IACnBsB,MAAM,EAAExC,eAAe,CAACsC,EAAG;IAC3BG,SAAS,EAAER,IAAI,CAACQ;EAAU,CAC3B,CACE,CACN,CACE,CACL,CAED,CAAC;AAEV,CAAC;AAED,SAAS/B,IAAI"}
|
|
@@ -2,7 +2,7 @@ import React from 'react';
|
|
|
2
2
|
import { Sentiment, SentimentHeight, Spinner, Error } from '@oanda/labs-widget-common';
|
|
3
3
|
import { useQuery } from '@apollo/client';
|
|
4
4
|
import { getInstrumentSentiment } from '../gql/getInstrumentSentiment';
|
|
5
|
-
const
|
|
5
|
+
const Widget = _ref => {
|
|
6
6
|
let {
|
|
7
7
|
instrument
|
|
8
8
|
} = _ref;
|
|
@@ -30,5 +30,5 @@ const Main = _ref => {
|
|
|
30
30
|
sentiment: sentiment
|
|
31
31
|
}), isError && React.createElement(Error, null)) : React.createElement(Spinner, null));
|
|
32
32
|
};
|
|
33
|
-
export {
|
|
34
|
-
//# sourceMappingURL=
|
|
33
|
+
export { Widget };
|
|
34
|
+
//# sourceMappingURL=Widget.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Widget.js","names":["React","Sentiment","SentimentHeight","Spinner","Error","useQuery","getInstrumentSentiment","Widget","_ref","instrument","loading","data","error","variables","division","name","sentiment","isError","shortPercent","longPercent","undefined","createElement","className","Fragment","height","md"],"sources":["../../../src/SentimentWidget/Widget.tsx"],"sourcesContent":["import React from 'react';\nimport {\n Sentiment, SentimentHeight, Spinner, Error,\n} from '@oanda/labs-widget-common';\nimport { useQuery } from '@apollo/client';\nimport { getInstrumentSentiment } from '../gql/getInstrumentSentiment';\n\nconst Widget = ({ instrument }: { instrument: string }) => {\n const { loading, data, error } = useQuery(getInstrumentSentiment, {\n variables: {\n division: 'OJ',\n name: instrument,\n },\n });\n\n const { sentiment } = data?.sentiment[0] || {};\n const isError = error\n || (sentiment?.shortPercent === 0 && sentiment?.longPercent === 0)\n || sentiment?.shortPercent === undefined\n || sentiment?.longPercent === undefined;\n\n return (\n <div data-testid=\"sentiment-widget\" className=\"flex items-center justify-between border border-solid border-grey p-4 text-sm text-black\">\n {!loading\n ? (\n <>\n <p className=\"mr-12 font-sans font-bold\">{instrument}</p>\n {!isError && <Sentiment height={SentimentHeight.md} sentiment={sentiment} />}\n {isError && <Error />}\n </>\n ) : <Spinner />}\n </div>\n );\n};\n\nexport { Widget };\n"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SACEC,SAAS,EAAEC,eAAe,EAAEC,OAAO,EAAEC,KAAK,QACrC,2BAA2B;AAClC,SAASC,QAAQ,QAAQ,gBAAgB;AACzC,SAASC,sBAAsB,QAAQ,+BAA+B;AAEtE,MAAMC,MAAM,GAAGC,IAAA,IAA4C;EAAA,IAA3C;IAAEC;EAAmC,CAAC,GAAAD,IAAA;EACpD,MAAM;IAAEE,OAAO;IAAEC,IAAI;IAAEC;EAAM,CAAC,GAAGP,QAAQ,CAACC,sBAAsB,EAAE;IAChEO,SAAS,EAAE;MACTC,QAAQ,EAAE,IAAI;MACdC,IAAI,EAAEN;IACR;EACF,CAAC,CAAC;EAEF,MAAM;IAAEO;EAAU,CAAC,GAAG,CAAAL,IAAI,aAAJA,IAAI,uBAAJA,IAAI,CAAEK,SAAS,CAAC,CAAC,CAAC,KAAI,CAAC,CAAC;EAC9C,MAAMC,OAAO,GAAGL,KAAK,IACf,CAAAI,SAAS,aAATA,SAAS,uBAATA,SAAS,CAAEE,YAAY,MAAK,CAAC,IAAI,CAAAF,SAAS,aAATA,SAAS,uBAATA,SAAS,CAAEG,WAAW,MAAK,CAAE,IAC/D,CAAAH,SAAS,aAATA,SAAS,uBAATA,SAAS,CAAEE,YAAY,MAAKE,SAAS,IACrC,CAAAJ,SAAS,aAATA,SAAS,uBAATA,SAAS,CAAEG,WAAW,MAAKC,SAAS;EAEzC,OACEpB,KAAA,CAAAqB,aAAA;IAAK,eAAY,kBAAkB;IAACC,SAAS,EAAC;EAA0F,GACrI,CAACZ,OAAO,GAELV,KAAA,CAAAqB,aAAA,CAAArB,KAAA,CAAAuB,QAAA,QACEvB,KAAA,CAAAqB,aAAA;IAAGC,SAAS,EAAC;EAA2B,GAAEb,UAAc,CAAC,EACxD,CAACQ,OAAO,IAAIjB,KAAA,CAAAqB,aAAA,CAACpB,SAAS;IAACuB,MAAM,EAAEtB,eAAe,CAACuB,EAAG;IAACT,SAAS,EAAEA;EAAU,CAAE,CAAC,EAC3EC,OAAO,IAAIjB,KAAA,CAAAqB,aAAA,CAACjB,KAAK,MAAE,CACpB,CAAC,GACDJ,KAAA,CAAAqB,aAAA,CAAClB,OAAO,MAAE,CACb,CAAC;AAEV,CAAC;AAED,SAASI,MAAM"}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import classnames from 'classnames';
|
|
3
|
+
import { LongArrowUp, LongArrowDown } from '@oanda/labs-widget-common';
|
|
4
|
+
import { SelectedArrow } from './types';
|
|
5
|
+
const SortSwitch = _ref => {
|
|
6
|
+
let {
|
|
7
|
+
onClickButtonDown,
|
|
8
|
+
onClickButtonUp,
|
|
9
|
+
selected,
|
|
10
|
+
disabled
|
|
11
|
+
} = _ref;
|
|
12
|
+
return React.createElement("div", {
|
|
13
|
+
"data-testid": "sort-switch",
|
|
14
|
+
className: classnames('flex rounded border-[1px] border-solid font-sans text-xs', {
|
|
15
|
+
'border-darkGrey': disabled,
|
|
16
|
+
'border-navyBlue': !disabled
|
|
17
|
+
})
|
|
18
|
+
}, React.createElement("button", {
|
|
19
|
+
"data-testid": "sort-switch-button-up",
|
|
20
|
+
disabled: disabled || selected === SelectedArrow.UP,
|
|
21
|
+
type: "button",
|
|
22
|
+
onClick: onClickButtonUp,
|
|
23
|
+
className: classnames('flex h-11 w-11 grow-0 items-center justify-center border-r-[1px] border-solid [&:enabled:hover>*]:-translate-y-1', {
|
|
24
|
+
'border-darkGrey': disabled,
|
|
25
|
+
'border-navyBlue': !disabled
|
|
26
|
+
})
|
|
27
|
+
}, React.createElement(LongArrowUp, {
|
|
28
|
+
className: classnames('transition-transform', {
|
|
29
|
+
'stroke-darkGrey': disabled,
|
|
30
|
+
'stroke-navyBlue': selected !== SelectedArrow.UP && !disabled,
|
|
31
|
+
'stroke-green': selected === SelectedArrow.UP && !disabled
|
|
32
|
+
})
|
|
33
|
+
})), React.createElement("button", {
|
|
34
|
+
"data-testid": "sort-switch-button-down",
|
|
35
|
+
disabled: disabled || selected === SelectedArrow.DOWN,
|
|
36
|
+
type: "button",
|
|
37
|
+
onClick: onClickButtonDown,
|
|
38
|
+
className: "flex h-11 w-11 grow-0 items-center justify-center text-center [&:enabled:hover>*]:translate-y-1"
|
|
39
|
+
}, React.createElement(LongArrowDown, {
|
|
40
|
+
className: classnames('transition-transform', {
|
|
41
|
+
'stroke-darkGrey': disabled,
|
|
42
|
+
'stroke-navyBlue': selected !== SelectedArrow.DOWN && !disabled,
|
|
43
|
+
'stroke-green': selected === SelectedArrow.DOWN && !disabled
|
|
44
|
+
})
|
|
45
|
+
})));
|
|
46
|
+
};
|
|
47
|
+
export { SortSwitch };
|
|
48
|
+
//# sourceMappingURL=SortSwitch.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SortSwitch.js","names":["React","classnames","LongArrowUp","LongArrowDown","SelectedArrow","SortSwitch","_ref","onClickButtonDown","onClickButtonUp","selected","disabled","createElement","className","UP","type","onClick","DOWN"],"sources":["../../../../../src/SentimentWidget/components/SortSwitch/SortSwitch.tsx"],"sourcesContent":["import React from 'react';\nimport classnames from 'classnames';\nimport { LongArrowUp, LongArrowDown } from '@oanda/labs-widget-common';\nimport { SelectedArrow, SortSwitchProps } from './types';\n\nconst SortSwitch = ({\n onClickButtonDown, onClickButtonUp, selected, disabled,\n}: SortSwitchProps) => (\n <div\n data-testid=\"sort-switch\"\n className={classnames(\n 'flex rounded border-[1px] border-solid font-sans text-xs',\n {\n 'border-darkGrey': disabled,\n 'border-navyBlue': !disabled,\n },\n )}\n >\n <button\n data-testid=\"sort-switch-button-up\"\n disabled={disabled || selected === SelectedArrow.UP}\n type=\"button\"\n onClick={onClickButtonUp}\n className={classnames(\n 'flex h-11 w-11 grow-0 items-center justify-center border-r-[1px] border-solid [&:enabled:hover>*]:-translate-y-1',\n {\n 'border-darkGrey': disabled,\n 'border-navyBlue': !disabled,\n },\n )}\n >\n <LongArrowUp\n className={classnames(\n 'transition-transform',\n {\n 'stroke-darkGrey': disabled,\n 'stroke-navyBlue': selected !== SelectedArrow.UP && !disabled,\n 'stroke-green': selected === SelectedArrow.UP && !disabled,\n },\n )}\n />\n </button>\n <button\n data-testid=\"sort-switch-button-down\"\n disabled={disabled || selected === SelectedArrow.DOWN}\n type=\"button\"\n onClick={onClickButtonDown}\n className=\"flex h-11 w-11 grow-0 items-center justify-center text-center [&:enabled:hover>*]:translate-y-1\"\n >\n <LongArrowDown\n className={classnames(\n 'transition-transform',\n {\n 'stroke-darkGrey': disabled,\n 'stroke-navyBlue': selected !== SelectedArrow.DOWN && !disabled,\n 'stroke-green': selected === SelectedArrow.DOWN && !disabled,\n },\n )}\n />\n </button>\n </div>\n);\n\nexport {\n SortSwitch,\n};\n"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,OAAOC,UAAU,MAAM,YAAY;AACnC,SAASC,WAAW,EAAEC,aAAa,QAAQ,2BAA2B;AACtE,SAASC,aAAa,QAAyB,SAAS;AAExD,MAAMC,UAAU,GAAGC,IAAA;EAAA,IAAC;IAClBC,iBAAiB;IAAEC,eAAe;IAAEC,QAAQ;IAAEC;EAC/B,CAAC,GAAAJ,IAAA;EAAA,OAChBN,KAAA,CAAAW,aAAA;IACE,eAAY,aAAa;IACzBC,SAAS,EAAEX,UAAU,CACnB,0DAA0D,EAC1D;MACE,iBAAiB,EAAES,QAAQ;MAC3B,iBAAiB,EAAE,CAACA;IACtB,CACF;EAAE,GAEFV,KAAA,CAAAW,aAAA;IACE,eAAY,uBAAuB;IACnCD,QAAQ,EAAEA,QAAQ,IAAID,QAAQ,KAAKL,aAAa,CAACS,EAAG;IACpDC,IAAI,EAAC,QAAQ;IACbC,OAAO,EAAEP,eAAgB;IACzBI,SAAS,EAAEX,UAAU,CACnB,mHAAmH,EACnH;MACE,iBAAiB,EAAES,QAAQ;MAC3B,iBAAiB,EAAE,CAACA;IACtB,CACF;EAAE,GAEFV,KAAA,CAAAW,aAAA,CAACT,WAAW;IACVU,SAAS,EAAEX,UAAU,CACnB,sBAAsB,EACtB;MACE,iBAAiB,EAAES,QAAQ;MAC3B,iBAAiB,EAAED,QAAQ,KAAKL,aAAa,CAACS,EAAE,IAAI,CAACH,QAAQ;MAC7D,cAAc,EAAED,QAAQ,KAAKL,aAAa,CAACS,EAAE,IAAI,CAACH;IACpD,CACF;EAAE,CACH,CACK,CAAC,EACTV,KAAA,CAAAW,aAAA;IACE,eAAY,yBAAyB;IACrCD,QAAQ,EAAEA,QAAQ,IAAID,QAAQ,KAAKL,aAAa,CAACY,IAAK;IACtDF,IAAI,EAAC,QAAQ;IACbC,OAAO,EAAER,iBAAkB;IAC3BK,SAAS,EAAC;EAAiG,GAE3GZ,KAAA,CAAAW,aAAA,CAACR,aAAa;IACZS,SAAS,EAAEX,UAAU,CACnB,sBAAsB,EACtB;MACE,iBAAiB,EAAES,QAAQ;MAC3B,iBAAiB,EAAED,QAAQ,KAAKL,aAAa,CAACY,IAAI,IAAI,CAACN,QAAQ;MAC/D,cAAc,EAAED,QAAQ,KAAKL,aAAa,CAACY,IAAI,IAAI,CAACN;IACtD,CACF;EAAE,CACH,CACK,CACL,CAAC;AAAA,CACP;AAED,SACEL,UAAU"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","names":[],"sources":["../../../../../src/SentimentWidget/components/SortSwitch/index.ts"],"sourcesContent":["export * from './SortSwitch';\nexport * from './types';\n"],"mappings":"AAAA,cAAc,cAAc;AAC5B,cAAc,SAAS"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","names":["SelectedArrow"],"sources":["../../../../../src/SentimentWidget/components/SortSwitch/types.tsx"],"sourcesContent":["export enum SelectedArrow {\n UP = 'up',\n DOWN = 'down',\n}\n\nexport interface SortSwitchProps {\n onClickButtonUp: () => void;\n onClickButtonDown: () => void;\n selected: SelectedArrow;\n disabled?: boolean;\n}\n"],"mappings":"AAAA,WAAYA,aAAa,aAAbA,aAAa;EAAbA,aAAa;EAAbA,aAAa;EAAA,OAAbA,aAAa;AAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","names":[],"sources":["../../../src/SentimentWidget/types.ts"],"sourcesContent":["export interface SentimentWidgetConfig {\n graphqlUrl: string;\n instrument: string;\n}\n"],"mappings":""}
|
|
1
|
+
{"version":3,"file":"types.js","names":["SentimentSort"],"sources":["../../../src/SentimentWidget/types.ts"],"sourcesContent":["export interface SentimentConfig {\n graphqlUrl: string;\n instrument?: string;\n count?: number;\n}\n\nexport interface SentimentWidgetConfig {\n graphqlUrl: string;\n instrument: string;\n}\n\nexport interface SentimentToolConfig {\n graphqlUrl: string;\n}\n\nexport interface SentimentListData {\n name: string;\n sentiment: {\n shortPercent: number;\n longPercent: number;\n }\n}\n\nexport interface SentimentListResponse {\n sentimentList: SentimentListData[]\n}\n\nexport enum SentimentSort {\n Bearish = 'BEARISH',\n Bullish = 'BULLISH',\n}\n"],"mappings":"AA2BA,WAAYA,aAAa,aAAbA,aAAa;EAAbA,aAAa;EAAbA,aAAa;EAAA,OAAbA,aAAa;AAAA"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { SentimentSort } from './types';
|
|
2
|
+
export const sortData = (data, sort) => {
|
|
3
|
+
if (sort === SentimentSort.Bullish) {
|
|
4
|
+
return [...data].sort((a, b) => a.sentiment.shortPercent - b.sentiment.shortPercent);
|
|
5
|
+
}
|
|
6
|
+
return [...data].sort((a, b) => a.sentiment.longPercent - b.sentiment.longPercent);
|
|
7
|
+
};
|
|
8
|
+
//# sourceMappingURL=utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.js","names":["SentimentSort","sortData","data","sort","Bullish","a","b","sentiment","shortPercent","longPercent"],"sources":["../../../src/SentimentWidget/utils.ts"],"sourcesContent":["import { SentimentSort, SentimentListData } from './types';\n\nexport const sortData = (data: SentimentListData[], sort: SentimentSort) => {\n if (sort === SentimentSort.Bullish) {\n return [...data].sort((a, b) => a.sentiment.shortPercent - b.sentiment.shortPercent);\n }\n return [...data].sort((a, b) => a.sentiment.longPercent - b.sentiment.longPercent);\n};\n"],"mappings":"AAAA,SAASA,aAAa,QAA2B,SAAS;AAE1D,OAAO,MAAMC,QAAQ,GAAGA,CAACC,IAAyB,EAAEC,IAAmB,KAAK;EAC1E,IAAIA,IAAI,KAAKH,aAAa,CAACI,OAAO,EAAE;IAClC,OAAO,CAAC,GAAGF,IAAI,CAAC,CAACC,IAAI,CAAC,CAACE,CAAC,EAAEC,CAAC,KAAKD,CAAC,CAACE,SAAS,CAACC,YAAY,GAAGF,CAAC,CAACC,SAAS,CAACC,YAAY,CAAC;EACtF;EACA,OAAO,CAAC,GAAGN,IAAI,CAAC,CAACC,IAAI,CAAC,CAACE,CAAC,EAAEC,CAAC,KAAKD,CAAC,CAACE,SAAS,CAACE,WAAW,GAAGH,CAAC,CAACC,SAAS,CAACE,WAAW,CAAC;AACpF,CAAC"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
var _templateObject;
|
|
2
|
+
function _taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(0); } return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }
|
|
3
|
+
import { gql } from '@apollo/client';
|
|
4
|
+
const getSentimentList = gql(_templateObject || (_templateObject = _taggedTemplateLiteral(["\n query GetSentimentList {\n sentimentList {\n name\n sentiment {\n shortPercent\n longPercent\n }\n }\n }\n"])));
|
|
5
|
+
export { getSentimentList };
|
|
6
|
+
//# sourceMappingURL=getSentimentList.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getSentimentList.js","names":["gql","getSentimentList","_templateObject","_taggedTemplateLiteral"],"sources":["../../../src/gql/getSentimentList.ts"],"sourcesContent":["import { gql } from '@apollo/client';\n\nconst getSentimentList = gql`\n query GetSentimentList {\n sentimentList {\n name\n sentiment {\n shortPercent\n longPercent\n }\n }\n }\n`;\n\nexport { getSentimentList };\n"],"mappings":";;AAAA,SAASA,GAAG,QAAQ,gBAAgB;AAEpC,MAAMC,gBAAgB,GAAGD,GAAG,CAAAE,eAAA,KAAAA,eAAA,GAAAC,sBAAA,0JAU3B;AAED,SAASF,gBAAgB"}
|