@oanda/labs-widget-common 1.0.205 → 1.0.207

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.
Files changed (70) hide show
  1. package/CHANGELOG.md +1628 -0
  2. package/dist/main/components/Table/TableCell.js +3 -1
  3. package/dist/main/components/Table/TableCell.js.map +1 -1
  4. package/dist/main/components/Table/TableHeader.js +24 -11
  5. package/dist/main/components/Table/TableHeader.js.map +1 -1
  6. package/dist/main/components/Table/columns/InstrumentColumn.js +9 -4
  7. package/dist/main/components/Table/columns/InstrumentColumn.js.map +1 -1
  8. package/dist/main/components/Table/types.js.map +1 -1
  9. package/dist/main/components/TableWidget/ColumnRenderer.js +15 -1
  10. package/dist/main/components/TableWidget/ColumnRenderer.js.map +1 -1
  11. package/dist/main/components/TableWidget/DataRecordRow.js +4 -2
  12. package/dist/main/components/TableWidget/DataRecordRow.js.map +1 -1
  13. package/dist/main/components/TableWidget/TableWidget.js +3 -1
  14. package/dist/main/components/TableWidget/TableWidget.js.map +1 -1
  15. package/dist/main/components/TableWidget/index.js +11 -0
  16. package/dist/main/components/TableWidget/index.js.map +1 -1
  17. package/dist/main/components/TableWidget/utils.js +4 -1
  18. package/dist/main/components/TableWidget/utils.js.map +1 -1
  19. package/dist/main/hooks/useLiveRatesQuery.js +5 -8
  20. package/dist/main/hooks/useLiveRatesQuery.js.map +1 -1
  21. package/dist/main/providers/LiveRates/LiveRatesContext.js +4 -1
  22. package/dist/main/providers/LiveRates/LiveRatesContext.js.map +1 -1
  23. package/dist/main/types/dataTypes.js +2 -0
  24. package/dist/main/types/dataTypes.js.map +1 -1
  25. package/dist/module/components/Table/TableCell.js +3 -1
  26. package/dist/module/components/Table/TableCell.js.map +1 -1
  27. package/dist/module/components/Table/TableHeader.js +24 -11
  28. package/dist/module/components/Table/TableHeader.js.map +1 -1
  29. package/dist/module/components/Table/columns/InstrumentColumn.js +9 -4
  30. package/dist/module/components/Table/columns/InstrumentColumn.js.map +1 -1
  31. package/dist/module/components/Table/types.js.map +1 -1
  32. package/dist/module/components/TableWidget/ColumnRenderer.js +15 -1
  33. package/dist/module/components/TableWidget/ColumnRenderer.js.map +1 -1
  34. package/dist/module/components/TableWidget/DataRecordRow.js +4 -2
  35. package/dist/module/components/TableWidget/DataRecordRow.js.map +1 -1
  36. package/dist/module/components/TableWidget/TableWidget.js +3 -1
  37. package/dist/module/components/TableWidget/TableWidget.js.map +1 -1
  38. package/dist/module/components/TableWidget/index.js +1 -0
  39. package/dist/module/components/TableWidget/index.js.map +1 -1
  40. package/dist/module/components/TableWidget/utils.js +4 -1
  41. package/dist/module/components/TableWidget/utils.js.map +1 -1
  42. package/dist/module/hooks/useLiveRatesQuery.js +5 -8
  43. package/dist/module/hooks/useLiveRatesQuery.js.map +1 -1
  44. package/dist/module/providers/LiveRates/LiveRatesContext.js +4 -1
  45. package/dist/module/providers/LiveRates/LiveRatesContext.js.map +1 -1
  46. package/dist/module/types/dataTypes.js +2 -0
  47. package/dist/module/types/dataTypes.js.map +1 -1
  48. package/dist/types/components/Table/columns/InstrumentColumn.d.ts +3 -2
  49. package/dist/types/components/Table/types.d.ts +11 -3
  50. package/dist/types/components/TableWidget/DataRecordRow.d.ts +2 -1
  51. package/dist/types/components/TableWidget/TableWidget.d.ts +2 -1
  52. package/dist/types/components/TableWidget/index.d.ts +1 -0
  53. package/dist/types/components/TableWidget/utils.d.ts +2 -2
  54. package/dist/types/hooks/useLiveRatesQuery.d.ts +1 -1
  55. package/dist/types/providers/LiveRates/LiveRatesContext.d.ts +1 -1
  56. package/dist/types/types/dataTypes.d.ts +3 -1
  57. package/package.json +2 -2
  58. package/src/components/Table/TableCell.tsx +2 -0
  59. package/src/components/Table/TableHeader.tsx +36 -20
  60. package/src/components/Table/columns/InstrumentColumn.tsx +10 -4
  61. package/src/components/Table/types.ts +13 -3
  62. package/src/components/TableWidget/ColumnRenderer.tsx +22 -0
  63. package/src/components/TableWidget/DataRecordRow.tsx +3 -0
  64. package/src/components/TableWidget/TableWidget.tsx +3 -0
  65. package/src/components/TableWidget/index.ts +1 -0
  66. package/src/components/TableWidget/utils.ts +12 -6
  67. package/src/hooks/useLiveRatesQuery.ts +7 -5
  68. package/src/providers/LiveRates/LiveRatesContext.tsx +5 -1
  69. package/src/types/dataTypes.ts +2 -0
  70. package/test/components/Table/Table.test.tsx +4 -4
@@ -93,6 +93,28 @@ export const ColumnRenderer = ({
93
93
  <span>{record.low}</span>
94
94
  </TableCell>
95
95
  ),
96
+ [DataRecordType.SYMBOL]: () => (
97
+ <TableCell
98
+ key={DataRecordType.SYMBOL}
99
+ isError={isError}
100
+ isLoading={isLoading}
101
+ loaderSize={LoaderSize.md}
102
+ type="textCentered"
103
+ >
104
+ <span>{record.instrument}</span>
105
+ </TableCell>
106
+ ),
107
+ [DataRecordType.TRADE_MODE]: () => (
108
+ <TableCell
109
+ key={DataRecordType.TRADE_MODE}
110
+ additionalPaddingRight={true}
111
+ isError={isError}
112
+ isLoading={isLoading}
113
+ loaderSize={LoaderSize.sm}
114
+ >
115
+ <span>{'Long Only'}</span>
116
+ </TableCell>
117
+ ),
96
118
  };
97
119
 
98
120
  return activeColumns.map((item) => (
@@ -15,6 +15,7 @@ export interface DataRecordRowProps {
15
15
  target: EventTarget | null;
16
16
  isScrolled?: boolean;
17
17
  toolTipId: string;
18
+ instrumentColumnWidth?: string;
18
19
  activeColumns: DataRecordType[];
19
20
  }
20
21
 
@@ -27,6 +28,7 @@ export const DataRecordRow = ({
27
28
  isScrolled,
28
29
  toolTipId,
29
30
  activeColumns,
31
+ instrumentColumnWidth,
30
32
  }: DataRecordRowProps) => {
31
33
  const { isDark } = useLayoutProvider();
32
34
 
@@ -47,6 +49,7 @@ export const DataRecordRow = ({
47
49
  isLoading={isLoading}
48
50
  isScrolled={isScrolled}
49
51
  tooltipId={toolTipId}
52
+ width={instrumentColumnWidth}
50
53
  />
51
54
  <ColumnRenderer
52
55
  activeColumns={activeColumns}
@@ -33,6 +33,7 @@ interface TableWidgetProps<TTabs> {
33
33
  pageNumber: number;
34
34
  count: number;
35
35
  viewType?: 'table' | 'cards';
36
+ instrumentColumnWidth?: string;
36
37
  }
37
38
 
38
39
  export const TableWidget = <TTabs,>({
@@ -51,6 +52,7 @@ export const TableWidget = <TTabs,>({
51
52
  pageNumber,
52
53
  count,
53
54
  viewType,
55
+ instrumentColumnWidth,
54
56
  }: TableWidgetProps<TTabs>) => {
55
57
  const { lang } = useLocale();
56
58
  const { size } = useLayoutProvider();
@@ -79,6 +81,7 @@ export const TableWidget = <TTabs,>({
79
81
  key={`row_${index}`}
80
82
  activeColumns={activeColumns}
81
83
  hasBackgroundColor={index % 2 === 0}
84
+ instrumentColumnWidth={instrumentColumnWidth}
82
85
  isChartLoading={isChartLoading}
83
86
  isLoading={isLoading}
84
87
  isScrolled={isScrolled}
@@ -1 +1,2 @@
1
1
  export * from './TableWidget';
2
+ export * from './utils';
@@ -1,12 +1,18 @@
1
1
  import { DataRecordType } from '../../types';
2
- import type { HeaderColumns } from '../Table';
2
+ import type { HeaderColumns, HeaderConfigType } from '../Table';
3
3
 
4
4
  export const getTableRowIndex = () => ({});
5
5
 
6
6
  export const getHeaderConfig = (
7
7
  activeColumns: DataRecordType[],
8
- headerConfig: Record<DataRecordType, HeaderColumns>
9
- ): HeaderColumns[] =>
10
- [DataRecordType.INSTRUMENT, ...activeColumns].map(
11
- (item) => headerConfig[item]
12
- );
8
+ headerConfig: HeaderConfigType
9
+ ): HeaderColumns[] => {
10
+ const columns: DataRecordType[] = [
11
+ DataRecordType.INSTRUMENT,
12
+ ...activeColumns,
13
+ ];
14
+
15
+ return columns
16
+ .map((item) => headerConfig[item])
17
+ .filter((headerCell) => headerCell !== undefined);
18
+ };
@@ -5,18 +5,20 @@ import type {
5
5
  LiveRatesTargetHookReturnObject,
6
6
  } from '../types';
7
7
 
8
- export const useLiveRatesQuery = (): LiveRatesTargetHookReturnObject => {
9
- const { target, source } = useLiveRatesProvider();
8
+ export const useLiveRatesQuery = (
9
+ skip?: boolean
10
+ ): LiveRatesTargetHookReturnObject => {
11
+ const liveRates = useLiveRatesProvider(skip);
10
12
 
11
13
  const setQuery = (query: LiveRatesProviderQuery) => {
12
- target?.dispatchEvent(
14
+ liveRates?.target?.dispatchEvent(
13
15
  new CustomEvent(SET_QUERY_EVENT_NAME, { detail: query })
14
16
  );
15
17
  };
16
18
 
17
19
  const closeQuery = () => {
18
- source?.close();
20
+ liveRates?.source?.close();
19
21
  };
20
22
 
21
- return { target, setQuery, closeQuery };
23
+ return { target: liveRates?.target || null, setQuery, closeQuery };
22
24
  };
@@ -12,9 +12,13 @@ export const LiveRatesContext =
12
12
 
13
13
  LiveRatesContext.displayName = 'LiveRatesContext';
14
14
 
15
- export const useLiveRatesProvider = () => {
15
+ export const useLiveRatesProvider = (skip?: boolean) => {
16
16
  const liveRates = useContext(LiveRatesContext);
17
17
 
18
+ if (skip) {
19
+ return null;
20
+ }
21
+
18
22
  if (!liveRates) {
19
23
  throw new Error('Hook used outside of LiveRatesContextProvider');
20
24
  }
@@ -37,4 +37,6 @@ export enum DataRecordType {
37
37
  SENTIMENT = 'sentiment',
38
38
  LOW = 'low',
39
39
  HIGH = 'high',
40
+ SYMBOL = 'symbol',
41
+ TRADE_MODE = 'tradeMode',
40
42
  }
@@ -21,10 +21,10 @@ const records = [
21
21
  ];
22
22
 
23
23
  const config = [
24
- { displayName: 'Column 1', additionalStyles: '' },
25
- { displayName: 'Column 2', additionalStyles: '' },
26
- { displayName: 'Column 3', additionalStyles: '' },
27
- { displayName: 'Column 4', additionalStyles: '' },
24
+ { displayName: 'Column 1', additionalStyles: {} },
25
+ { displayName: 'Column 2', additionalStyles: {} },
26
+ { displayName: 'Column 3', additionalStyles: {} },
27
+ { displayName: 'Column 4', additionalStyles: {} },
28
28
  ];
29
29
 
30
30
  const renderRow = (record: any) => (