@oanda/labs-sentiment-widget 1.0.43 → 1.0.44

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 CHANGED
@@ -3,6 +3,170 @@
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.44 (2023-11-22)
7
+
8
+
9
+
10
+ ## 1.0.43 (2023-11-15)
11
+
12
+
13
+
14
+ ## 1.0.42 (2023-11-10)
15
+
16
+
17
+
18
+ ## 1.0.41 (2023-11-03)
19
+
20
+
21
+
22
+ ## 1.0.40 (2023-11-02)
23
+
24
+
25
+
26
+ ## 1.0.39 (2023-11-02)
27
+
28
+
29
+
30
+ ## 1.0.38 (2023-10-26)
31
+
32
+
33
+
34
+ ## 1.0.37 (2023-10-26)
35
+
36
+
37
+
38
+ ## 1.0.36 (2023-10-25)
39
+
40
+
41
+
42
+ ## 1.0.35 (2023-10-24)
43
+
44
+
45
+
46
+ ## 1.0.34 (2023-10-23)
47
+
48
+
49
+
50
+ ## 1.0.33 (2023-10-23)
51
+
52
+
53
+
54
+ ## 1.0.32 (2023-10-23)
55
+
56
+
57
+
58
+ ## 1.0.31 (2023-10-20)
59
+
60
+
61
+
62
+ ## 1.0.30 (2023-10-19)
63
+
64
+
65
+
66
+ ## 1.0.29 (2023-10-19)
67
+
68
+
69
+
70
+ ## 1.0.28 (2023-10-19)
71
+
72
+
73
+
74
+ ## 1.0.27 (2023-10-18)
75
+
76
+
77
+
78
+ ## 1.0.26 (2023-10-18)
79
+
80
+
81
+
82
+ ## 1.0.25 (2023-10-17)
83
+
84
+
85
+
86
+ ## 1.0.24 (2023-10-13)
87
+
88
+
89
+
90
+ ## 1.0.23 (2023-10-13)
91
+
92
+
93
+
94
+ ## 1.0.22 (2023-10-11)
95
+
96
+
97
+
98
+ ## 1.0.21 (2023-10-10)
99
+
100
+
101
+
102
+ ## 1.0.20 (2023-10-06)
103
+
104
+
105
+
106
+ ## 1.0.19 (2023-10-06)
107
+
108
+
109
+
110
+ ## 1.0.18 (2023-10-05)
111
+
112
+
113
+
114
+ ## 1.0.17 (2023-10-04)
115
+
116
+
117
+
118
+ ## 1.0.16 (2023-10-04)
119
+
120
+
121
+
122
+ ## 1.0.15 (2023-10-04)
123
+
124
+
125
+
126
+ ## 1.0.14 (2023-10-03)
127
+
128
+
129
+
130
+ ## 1.0.13 (2023-10-03)
131
+
132
+
133
+
134
+ ## 1.0.12 (2023-10-03)
135
+
136
+
137
+
138
+ ## 1.0.11 (2023-10-02)
139
+
140
+
141
+
142
+ ## 1.0.10 (2023-09-29)
143
+
144
+
145
+
146
+ ## 1.0.9 (2023-09-28)
147
+
148
+
149
+
150
+ ## 1.0.8 (2023-09-27)
151
+
152
+
153
+
154
+ ## 1.0.7 (2023-09-26)
155
+
156
+
157
+
158
+ ## 1.0.6 (2023-09-21)
159
+
160
+
161
+
162
+ ## 1.0.5 (2023-09-13)
163
+
164
+ **Note:** Version bump only for package @oanda/labs-sentiment-widget
165
+
166
+
167
+
168
+
169
+
6
170
  ## 1.0.43 (2023-11-15)
7
171
 
8
172
 
@@ -7,6 +7,7 @@ exports.Tool = void 0;
7
7
  var _react = _interopRequireWildcard(require("react"));
8
8
  var _labsWidgetCommon = require("@oanda/labs-widget-common");
9
9
  var _client = require("@apollo/client");
10
+ var _monoI18n = require("@oanda/mono-i18n");
10
11
  var _getSentimentList = require("../gql/getSentimentList");
11
12
  var _utils = require("./utils");
12
13
  var _SortSwitch = require("./components/SortSwitch");
@@ -34,6 +35,9 @@ const Tool = _ref => {
34
35
  setSortedData((0, _utils.sortData)(data, sort));
35
36
  }
36
37
  }, [data, sort]);
38
+ const {
39
+ lang
40
+ } = (0, _monoI18n.useLocale)();
37
41
  return _react.default.createElement("div", {
38
42
  "data-testid": "sentiment-tool",
39
43
  className: "lw-relative lw-overflow-hidden lw-text-sm lw-tracking-normal lw-text-black"
@@ -48,7 +52,13 @@ const Tool = _ref => {
48
52
  onClickButtonUp: () => setSort(_graphql.Sort.Bullish)
49
53
  })), _react.default.createElement("div", {
50
54
  className: "lw-flex lw-flex-col lw-border lw-border-solid lw-border-grey lw-p-2"
51
- }, sortedData.map((item, index) => _react.default.createElement("div", {
55
+ }, _react.default.createElement("div", {
56
+ className: "lw-flex lw-font-semibold lw-justify-between lw-mb-2"
57
+ }, _react.default.createElement("span", {
58
+ className: "lw-ml-[7.5rem] md:lw-ml-40 lw-uppercase"
59
+ }, lang('net_short')), _react.default.createElement("span", {
60
+ className: "lw-text-right md:lw-mr-10 lw-uppercase"
61
+ }, lang('net_long'))), sortedData.map((item, index) => _react.default.createElement("div", {
52
62
  className: "lw-flex lw-h-8 lw-w-full lw-items-center",
53
63
  key: item.name || index
54
64
  }, _react.default.createElement("div", {
@@ -1 +1 @@
1
- {"version":3,"file":"Tool.js","names":["_react","_interopRequireWildcard","require","_labsWidgetCommon","_client","_getSentimentList","_utils","_SortSwitch","_graphql","_constant","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","prototype","hasOwnProperty","call","i","set","Tool","_ref","division","sort","setSort","useState","Sort","Bullish","sortedData","setSortedData","Array","fill","loading","data","error","useQuery","getSentimentList","variables","useEffect","sortData","createElement","className","length","ChartError","Fragment","SortSwitch","disabled","selected","SelectedArrow","UP","DOWN","onClickButtonDown","Bearish","onClickButtonUp","map","item","index","key","name","Loader","size","LoaderSize","md","Truncate","maxWidth","tooltipId","INSTRUMENT_TOOLTIP_ID","text","displayName","Sentiment","isLoading","height","SentimentHeight","sentiment","Tooltip","id","exports"],"sources":["../../../src/SentimentWidget/Tool.tsx"],"sourcesContent":["import React, { useEffect, useState } from 'react';\nimport {\n Sentiment, SentimentHeight, Loader, LoaderSize, ChartError, Truncate, Tooltip,\n} from '@oanda/labs-widget-common';\nimport { useQuery } from '@apollo/client';\nimport { getSentimentList } from '../gql/getSentimentList';\nimport { SentimentToolConfig } from './types';\nimport { sortData } from './utils';\nimport { SelectedArrow, SortSwitch } from './components/SortSwitch';\nimport {\n GetSentimentListQuery, GetSentimentListQueryVariables, SentimentInstrument, Sort,\n} from '../gql/types/graphql';\nimport { INSTRUMENT_TOOLTIP_ID } from '../constant';\n\nconst Tool = ({ division }: SentimentToolConfig) => {\n const [sort, setSort] = useState(Sort.Bullish);\n const [sortedData, setSortedData] = useState<Omit<SentimentInstrument, 'id'>[]>(new Array(20).fill({}));\n const { loading, data, error } = useQuery<\n GetSentimentListQuery,\n GetSentimentListQueryVariables\n >(getSentimentList, {\n variables: {\n division,\n },\n });\n\n useEffect(() => {\n if (data) {\n setSortedData(sortData(data, sort));\n }\n }, [data, sort]);\n\n return (\n <div data-testid=\"sentiment-tool\" className=\"lw-relative lw-overflow-hidden lw-text-sm lw-tracking-normal lw-text-black\">\n {error || sortedData.length === 0 ? (\n <div className=\"lw-flex lw-h-[200px] lw-items-center lw-justify-center lw-border lw-border-solid lw-border-grey lw-p-2\">\n <ChartError />\n </div>\n ) : (\n <>\n <div className=\"lw-flex lw-justify-end lw-pb-5\">\n <SortSwitch\n disabled={loading}\n selected={sort === Sort.Bullish ? SelectedArrow.UP : SelectedArrow.DOWN}\n onClickButtonDown={() => setSort(Sort.Bearish)}\n onClickButtonUp={() => setSort(Sort.Bullish)}\n />\n </div>\n <div className=\"lw-flex lw-flex-col lw-border lw-border-solid lw-border-grey lw-p-2\">\n {sortedData.map((item, index) => (\n <div className=\"lw-flex lw-h-8 lw-w-full lw-items-center\" key={item.name || index}>\n <div className=\"lw-w-[120px] lw-shrink-0\">\n {loading ? (\n <Loader size={LoaderSize.md} />\n ) : (\n <Truncate\n maxWidth={120}\n tooltipId={INSTRUMENT_TOOLTIP_ID}\n className=\"lw-pr-2 lw-font-sans lw-text-sm lw-font-bold\"\n text={item.displayName || '\\u2014'}\n />\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 <Tooltip id={INSTRUMENT_TOOLTIP_ID} />\n </div>\n );\n};\n\nexport { Tool };\n"],"mappings":"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"}
1
+ {"version":3,"file":"Tool.js","names":["_react","_interopRequireWildcard","require","_labsWidgetCommon","_client","_monoI18n","_getSentimentList","_utils","_SortSwitch","_graphql","_constant","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","prototype","hasOwnProperty","call","i","set","Tool","_ref","division","sort","setSort","useState","Sort","Bullish","sortedData","setSortedData","Array","fill","loading","data","error","useQuery","getSentimentList","variables","useEffect","sortData","lang","useLocale","createElement","className","length","ChartError","Fragment","SortSwitch","disabled","selected","SelectedArrow","UP","DOWN","onClickButtonDown","Bearish","onClickButtonUp","map","item","index","key","name","Loader","size","LoaderSize","md","Truncate","maxWidth","tooltipId","INSTRUMENT_TOOLTIP_ID","text","displayName","Sentiment","isLoading","height","SentimentHeight","sentiment","Tooltip","id","exports"],"sources":["../../../src/SentimentWidget/Tool.tsx"],"sourcesContent":["import React, { useEffect, useState } from 'react';\nimport {\n Sentiment, SentimentHeight, Loader, LoaderSize, ChartError, Truncate, Tooltip,\n} from '@oanda/labs-widget-common';\nimport { useQuery } from '@apollo/client';\nimport { useLocale } from '@oanda/mono-i18n';\nimport { getSentimentList } from '../gql/getSentimentList';\nimport { SentimentToolConfig } from './types';\nimport { sortData } from './utils';\nimport { SelectedArrow, SortSwitch } from './components/SortSwitch';\nimport {\n GetSentimentListQuery, GetSentimentListQueryVariables, SentimentInstrument, Sort,\n} from '../gql/types/graphql';\nimport { INSTRUMENT_TOOLTIP_ID } from '../constant';\n\nconst Tool = ({ division }: SentimentToolConfig) => {\n const [sort, setSort] = useState(Sort.Bullish);\n const [sortedData, setSortedData] = useState<Omit<SentimentInstrument, 'id'>[]>(new Array(20).fill({}));\n const { loading, data, error } = useQuery<\n GetSentimentListQuery,\n GetSentimentListQueryVariables\n >(getSentimentList, {\n variables: {\n division,\n },\n });\n\n useEffect(() => {\n if (data) {\n setSortedData(sortData(data, sort));\n }\n }, [data, sort]);\n\n const { lang } = useLocale();\n\n return (\n <div data-testid=\"sentiment-tool\" className=\"lw-relative lw-overflow-hidden lw-text-sm lw-tracking-normal lw-text-black\">\n {error || sortedData.length === 0 ? (\n <div className=\"lw-flex lw-h-[200px] lw-items-center lw-justify-center lw-border lw-border-solid lw-border-grey lw-p-2\">\n <ChartError />\n </div>\n ) : (\n <>\n <div className=\"lw-flex lw-justify-end lw-pb-5\">\n <SortSwitch\n disabled={loading}\n selected={sort === Sort.Bullish ? SelectedArrow.UP : SelectedArrow.DOWN}\n onClickButtonDown={() => setSort(Sort.Bearish)}\n onClickButtonUp={() => setSort(Sort.Bullish)}\n />\n </div>\n <div className=\"lw-flex lw-flex-col lw-border lw-border-solid lw-border-grey lw-p-2\">\n <div className=\"lw-flex lw-font-semibold lw-justify-between lw-mb-2\">\n <span className=\"lw-ml-[7.5rem] md:lw-ml-40 lw-uppercase\">{lang('net_short')}</span>\n <span className=\"lw-text-right md:lw-mr-10 lw-uppercase\">{lang('net_long')}</span>\n </div>\n {sortedData.map((item, index) => (\n <div className=\"lw-flex lw-h-8 lw-w-full lw-items-center\" key={item.name || index}>\n <div className=\"lw-w-[120px] lw-shrink-0\">\n {loading ? (\n <Loader size={LoaderSize.md} />\n ) : (\n <Truncate\n maxWidth={120}\n tooltipId={INSTRUMENT_TOOLTIP_ID}\n className=\"lw-pr-2 lw-font-sans lw-text-sm lw-font-bold\"\n text={item.displayName || '\\u2014'}\n />\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 <Tooltip id={INSTRUMENT_TOOLTIP_ID} />\n </div>\n );\n};\n\nexport { Tool };\n"],"mappings":"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"}
@@ -1,4 +1,6 @@
1
1
  {
2
2
  "data_unavailable": "Data unavailable",
3
+ "net_long": "Net-long",
4
+ "net_short": "Net-short",
3
5
  "pagination_entries_range": "{{firstItemOnPage}}-{{lastItemOnPage}} of {{itemCount}} entries"
4
6
  }
@@ -1,4 +1,6 @@
1
1
  {
2
2
  "data_unavailable": "沒有數據",
3
+ "net_long": "淨長倉",
4
+ "net_short": "淨短倉",
3
5
  "pagination_entries_range": "{{itemCount}}个挂单中的{{firstItemOnPage}}-{{lastItemOnPage}}"
4
6
  }
@@ -1,6 +1,7 @@
1
1
  import React, { useEffect, useState } from 'react';
2
2
  import { Sentiment, SentimentHeight, Loader, LoaderSize, ChartError, Truncate, Tooltip } from '@oanda/labs-widget-common';
3
3
  import { useQuery } from '@apollo/client';
4
+ import { useLocale } from '@oanda/mono-i18n';
4
5
  import { getSentimentList } from '../gql/getSentimentList';
5
6
  import { sortData } from './utils';
6
7
  import { SelectedArrow, SortSwitch } from './components/SortSwitch';
@@ -26,6 +27,9 @@ const Tool = _ref => {
26
27
  setSortedData(sortData(data, sort));
27
28
  }
28
29
  }, [data, sort]);
30
+ const {
31
+ lang
32
+ } = useLocale();
29
33
  return React.createElement("div", {
30
34
  "data-testid": "sentiment-tool",
31
35
  className: "lw-relative lw-overflow-hidden lw-text-sm lw-tracking-normal lw-text-black"
@@ -40,7 +44,13 @@ const Tool = _ref => {
40
44
  onClickButtonUp: () => setSort(Sort.Bullish)
41
45
  })), React.createElement("div", {
42
46
  className: "lw-flex lw-flex-col lw-border lw-border-solid lw-border-grey lw-p-2"
43
- }, sortedData.map((item, index) => React.createElement("div", {
47
+ }, React.createElement("div", {
48
+ className: "lw-flex lw-font-semibold lw-justify-between lw-mb-2"
49
+ }, React.createElement("span", {
50
+ className: "lw-ml-[7.5rem] md:lw-ml-40 lw-uppercase"
51
+ }, lang('net_short')), React.createElement("span", {
52
+ className: "lw-text-right md:lw-mr-10 lw-uppercase"
53
+ }, lang('net_long'))), sortedData.map((item, index) => React.createElement("div", {
44
54
  className: "lw-flex lw-h-8 lw-w-full lw-items-center",
45
55
  key: item.name || index
46
56
  }, React.createElement("div", {
@@ -1 +1 @@
1
- {"version":3,"file":"Tool.js","names":["React","useEffect","useState","Sentiment","SentimentHeight","Loader","LoaderSize","ChartError","Truncate","Tooltip","useQuery","getSentimentList","sortData","SelectedArrow","SortSwitch","Sort","INSTRUMENT_TOOLTIP_ID","Tool","_ref","division","sort","setSort","Bullish","sortedData","setSortedData","Array","fill","loading","data","error","variables","createElement","className","length","Fragment","disabled","selected","UP","DOWN","onClickButtonDown","Bearish","onClickButtonUp","map","item","index","key","name","size","md","maxWidth","tooltipId","text","displayName","isLoading","height","sentiment","id"],"sources":["../../../src/SentimentWidget/Tool.tsx"],"sourcesContent":["import React, { useEffect, useState } from 'react';\nimport {\n Sentiment, SentimentHeight, Loader, LoaderSize, ChartError, Truncate, Tooltip,\n} from '@oanda/labs-widget-common';\nimport { useQuery } from '@apollo/client';\nimport { getSentimentList } from '../gql/getSentimentList';\nimport { SentimentToolConfig } from './types';\nimport { sortData } from './utils';\nimport { SelectedArrow, SortSwitch } from './components/SortSwitch';\nimport {\n GetSentimentListQuery, GetSentimentListQueryVariables, SentimentInstrument, Sort,\n} from '../gql/types/graphql';\nimport { INSTRUMENT_TOOLTIP_ID } from '../constant';\n\nconst Tool = ({ division }: SentimentToolConfig) => {\n const [sort, setSort] = useState(Sort.Bullish);\n const [sortedData, setSortedData] = useState<Omit<SentimentInstrument, 'id'>[]>(new Array(20).fill({}));\n const { loading, data, error } = useQuery<\n GetSentimentListQuery,\n GetSentimentListQueryVariables\n >(getSentimentList, {\n variables: {\n division,\n },\n });\n\n useEffect(() => {\n if (data) {\n setSortedData(sortData(data, sort));\n }\n }, [data, sort]);\n\n return (\n <div data-testid=\"sentiment-tool\" className=\"lw-relative lw-overflow-hidden lw-text-sm lw-tracking-normal lw-text-black\">\n {error || sortedData.length === 0 ? (\n <div className=\"lw-flex lw-h-[200px] lw-items-center lw-justify-center lw-border lw-border-solid lw-border-grey lw-p-2\">\n <ChartError />\n </div>\n ) : (\n <>\n <div className=\"lw-flex lw-justify-end lw-pb-5\">\n <SortSwitch\n disabled={loading}\n selected={sort === Sort.Bullish ? SelectedArrow.UP : SelectedArrow.DOWN}\n onClickButtonDown={() => setSort(Sort.Bearish)}\n onClickButtonUp={() => setSort(Sort.Bullish)}\n />\n </div>\n <div className=\"lw-flex lw-flex-col lw-border lw-border-solid lw-border-grey lw-p-2\">\n {sortedData.map((item, index) => (\n <div className=\"lw-flex lw-h-8 lw-w-full lw-items-center\" key={item.name || index}>\n <div className=\"lw-w-[120px] lw-shrink-0\">\n {loading ? (\n <Loader size={LoaderSize.md} />\n ) : (\n <Truncate\n maxWidth={120}\n tooltipId={INSTRUMENT_TOOLTIP_ID}\n className=\"lw-pr-2 lw-font-sans lw-text-sm lw-font-bold\"\n text={item.displayName || '\\u2014'}\n />\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 <Tooltip id={INSTRUMENT_TOOLTIP_ID} />\n </div>\n );\n};\n\nexport { Tool };\n"],"mappings":"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"}
1
+ {"version":3,"file":"Tool.js","names":["React","useEffect","useState","Sentiment","SentimentHeight","Loader","LoaderSize","ChartError","Truncate","Tooltip","useQuery","useLocale","getSentimentList","sortData","SelectedArrow","SortSwitch","Sort","INSTRUMENT_TOOLTIP_ID","Tool","_ref","division","sort","setSort","Bullish","sortedData","setSortedData","Array","fill","loading","data","error","variables","lang","createElement","className","length","Fragment","disabled","selected","UP","DOWN","onClickButtonDown","Bearish","onClickButtonUp","map","item","index","key","name","size","md","maxWidth","tooltipId","text","displayName","isLoading","height","sentiment","id"],"sources":["../../../src/SentimentWidget/Tool.tsx"],"sourcesContent":["import React, { useEffect, useState } from 'react';\nimport {\n Sentiment, SentimentHeight, Loader, LoaderSize, ChartError, Truncate, Tooltip,\n} from '@oanda/labs-widget-common';\nimport { useQuery } from '@apollo/client';\nimport { useLocale } from '@oanda/mono-i18n';\nimport { getSentimentList } from '../gql/getSentimentList';\nimport { SentimentToolConfig } from './types';\nimport { sortData } from './utils';\nimport { SelectedArrow, SortSwitch } from './components/SortSwitch';\nimport {\n GetSentimentListQuery, GetSentimentListQueryVariables, SentimentInstrument, Sort,\n} from '../gql/types/graphql';\nimport { INSTRUMENT_TOOLTIP_ID } from '../constant';\n\nconst Tool = ({ division }: SentimentToolConfig) => {\n const [sort, setSort] = useState(Sort.Bullish);\n const [sortedData, setSortedData] = useState<Omit<SentimentInstrument, 'id'>[]>(new Array(20).fill({}));\n const { loading, data, error } = useQuery<\n GetSentimentListQuery,\n GetSentimentListQueryVariables\n >(getSentimentList, {\n variables: {\n division,\n },\n });\n\n useEffect(() => {\n if (data) {\n setSortedData(sortData(data, sort));\n }\n }, [data, sort]);\n\n const { lang } = useLocale();\n\n return (\n <div data-testid=\"sentiment-tool\" className=\"lw-relative lw-overflow-hidden lw-text-sm lw-tracking-normal lw-text-black\">\n {error || sortedData.length === 0 ? (\n <div className=\"lw-flex lw-h-[200px] lw-items-center lw-justify-center lw-border lw-border-solid lw-border-grey lw-p-2\">\n <ChartError />\n </div>\n ) : (\n <>\n <div className=\"lw-flex lw-justify-end lw-pb-5\">\n <SortSwitch\n disabled={loading}\n selected={sort === Sort.Bullish ? SelectedArrow.UP : SelectedArrow.DOWN}\n onClickButtonDown={() => setSort(Sort.Bearish)}\n onClickButtonUp={() => setSort(Sort.Bullish)}\n />\n </div>\n <div className=\"lw-flex lw-flex-col lw-border lw-border-solid lw-border-grey lw-p-2\">\n <div className=\"lw-flex lw-font-semibold lw-justify-between lw-mb-2\">\n <span className=\"lw-ml-[7.5rem] md:lw-ml-40 lw-uppercase\">{lang('net_short')}</span>\n <span className=\"lw-text-right md:lw-mr-10 lw-uppercase\">{lang('net_long')}</span>\n </div>\n {sortedData.map((item, index) => (\n <div className=\"lw-flex lw-h-8 lw-w-full lw-items-center\" key={item.name || index}>\n <div className=\"lw-w-[120px] lw-shrink-0\">\n {loading ? (\n <Loader size={LoaderSize.md} />\n ) : (\n <Truncate\n maxWidth={120}\n tooltipId={INSTRUMENT_TOOLTIP_ID}\n className=\"lw-pr-2 lw-font-sans lw-text-sm lw-font-bold\"\n text={item.displayName || '\\u2014'}\n />\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 <Tooltip id={INSTRUMENT_TOOLTIP_ID} />\n </div>\n );\n};\n\nexport { Tool };\n"],"mappings":"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"}
@@ -1,4 +1,6 @@
1
1
  {
2
2
  "data_unavailable": "Data unavailable",
3
+ "net_long": "Net-long",
4
+ "net_short": "Net-short",
3
5
  "pagination_entries_range": "{{firstItemOnPage}}-{{lastItemOnPage}} of {{itemCount}} entries"
4
6
  }
@@ -1,4 +1,6 @@
1
1
  {
2
2
  "data_unavailable": "沒有數據",
3
+ "net_long": "淨長倉",
4
+ "net_short": "淨短倉",
3
5
  "pagination_entries_range": "{{itemCount}}个挂单中的{{firstItemOnPage}}-{{lastItemOnPage}}"
4
6
  }
@@ -12,7 +12,7 @@
12
12
  "indentation": "2sp",
13
13
  "plural_format": "i18next",
14
14
  "export_empty_as": "skip",
15
- "include_tags": ["common_widgets"],
15
+ "include_tags": ["common_widgets", "sentiment_widget"],
16
16
  "filter_langs": ["en", "zh_TW"]
17
17
  }
18
18
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@oanda/labs-sentiment-widget",
3
- "version": "1.0.43",
3
+ "version": "1.0.44",
4
4
  "description": "Labs Sentiment Widget",
5
5
  "main": "dist/main/index.js",
6
6
  "module": "dist/module/index.js",
@@ -13,7 +13,7 @@
13
13
  "license": "UNLICENSED",
14
14
  "dependencies": {
15
15
  "@apollo/client": "3.7.17",
16
- "@oanda/labs-widget-common": "^1.0.43",
16
+ "@oanda/labs-widget-common": "^1.0.44",
17
17
  "@oanda/mono-i18n": "9.0.0",
18
18
  "classnames": "2.3.2",
19
19
  "graphql": "16.7.1"
@@ -22,5 +22,5 @@
22
22
  "@graphql-codegen/cli": "5.0.0",
23
23
  "@graphql-codegen/client-preset": "4.1.0"
24
24
  },
25
- "gitHead": "234507d7e89e90d9688f45a78fd8f3149932aba1"
25
+ "gitHead": "15e01ba5d62037bd78b7086848360d6a83ee2307"
26
26
  }
@@ -3,6 +3,7 @@ import {
3
3
  Sentiment, SentimentHeight, Loader, LoaderSize, ChartError, Truncate, Tooltip,
4
4
  } from '@oanda/labs-widget-common';
5
5
  import { useQuery } from '@apollo/client';
6
+ import { useLocale } from '@oanda/mono-i18n';
6
7
  import { getSentimentList } from '../gql/getSentimentList';
7
8
  import { SentimentToolConfig } from './types';
8
9
  import { sortData } from './utils';
@@ -30,6 +31,8 @@ const Tool = ({ division }: SentimentToolConfig) => {
30
31
  }
31
32
  }, [data, sort]);
32
33
 
34
+ const { lang } = useLocale();
35
+
33
36
  return (
34
37
  <div data-testid="sentiment-tool" className="lw-relative lw-overflow-hidden lw-text-sm lw-tracking-normal lw-text-black">
35
38
  {error || sortedData.length === 0 ? (
@@ -47,6 +50,10 @@ const Tool = ({ division }: SentimentToolConfig) => {
47
50
  />
48
51
  </div>
49
52
  <div className="lw-flex lw-flex-col lw-border lw-border-solid lw-border-grey lw-p-2">
53
+ <div className="lw-flex lw-font-semibold lw-justify-between lw-mb-2">
54
+ <span className="lw-ml-[7.5rem] md:lw-ml-40 lw-uppercase">{lang('net_short')}</span>
55
+ <span className="lw-text-right md:lw-mr-10 lw-uppercase">{lang('net_long')}</span>
56
+ </div>
50
57
  {sortedData.map((item, index) => (
51
58
  <div className="lw-flex lw-h-8 lw-w-full lw-items-center" key={item.name || index}>
52
59
  <div className="lw-w-[120px] lw-shrink-0">
@@ -1,4 +1,6 @@
1
1
  {
2
2
  "data_unavailable": "Data unavailable",
3
+ "net_long": "Net-long",
4
+ "net_short": "Net-short",
3
5
  "pagination_entries_range": "{{firstItemOnPage}}-{{lastItemOnPage}} of {{itemCount}} entries"
4
6
  }
@@ -1,4 +1,6 @@
1
1
  {
2
2
  "data_unavailable": "沒有數據",
3
+ "net_long": "淨長倉",
4
+ "net_short": "淨短倉",
3
5
  "pagination_entries_range": "{{itemCount}}个挂单中的{{firstItemOnPage}}-{{lastItemOnPage}}"
4
6
  }