@oanda/labs-crowd-view-widget 1.0.45 → 1.0.46

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 (125) hide show
  1. package/CHANGELOG.md +188 -0
  2. package/dist/main/CrowdViewWidget/Main.js +3 -1
  3. package/dist/main/CrowdViewWidget/Main.js.map +1 -1
  4. package/dist/main/CrowdViewWidget/components/Chart/chartOptions.js +16 -5
  5. package/dist/main/CrowdViewWidget/components/Chart/chartOptions.js.map +1 -1
  6. package/dist/main/CrowdViewWidget/components/Chart/index.js +4 -4
  7. package/dist/main/CrowdViewWidget/components/Chart/index.js.map +1 -1
  8. package/dist/main/CrowdViewWidget/components/Chart/types.js.map +1 -1
  9. package/dist/main/CrowdViewWidget/components/Chart/useCrowdViewData.js +17 -101
  10. package/dist/main/CrowdViewWidget/components/Chart/useCrowdViewData.js.map +1 -1
  11. package/dist/main/CrowdViewWidget/components/Chart/utils/aggregateBuckets.js +37 -0
  12. package/dist/main/CrowdViewWidget/components/Chart/utils/aggregateBuckets.js.map +1 -0
  13. package/dist/main/CrowdViewWidget/components/Chart/utils/chartUtils.js +19 -4
  14. package/dist/main/CrowdViewWidget/components/Chart/utils/chartUtils.js.map +1 -1
  15. package/dist/main/CrowdViewWidget/components/Chart/utils/getTargetBucketWidth.js +14 -0
  16. package/dist/main/CrowdViewWidget/components/Chart/utils/getTargetBucketWidth.js.map +1 -0
  17. package/dist/main/CrowdViewWidget/components/Chart/utils/index.js +83 -0
  18. package/dist/main/CrowdViewWidget/components/Chart/utils/index.js.map +1 -0
  19. package/dist/main/CrowdViewWidget/components/Chart/utils/processBuckets.js +29 -0
  20. package/dist/main/CrowdViewWidget/components/Chart/utils/processBuckets.js.map +1 -0
  21. package/dist/main/CrowdViewWidget/components/Chart/utils/processOrderPositionBooks.js +23 -0
  22. package/dist/main/CrowdViewWidget/components/Chart/utils/processOrderPositionBooks.js.map +1 -0
  23. package/dist/main/CrowdViewWidget/components/Chart/utils/processPriceCandles.js +43 -0
  24. package/dist/main/CrowdViewWidget/components/Chart/utils/processPriceCandles.js.map +1 -0
  25. package/dist/main/CrowdViewWidget/components/Chart/utils/validateData.js +23 -0
  26. package/dist/main/CrowdViewWidget/components/Chart/utils/validateData.js.map +1 -0
  27. package/dist/main/CrowdViewWidget/components/Legend/Legend.js +5 -3
  28. package/dist/main/CrowdViewWidget/components/Legend/Legend.js.map +1 -1
  29. package/dist/main/CrowdViewWidget/constants.js +104 -5
  30. package/dist/main/CrowdViewWidget/constants.js.map +1 -1
  31. package/dist/main/CrowdViewWidget/selectConfig.js +18 -60
  32. package/dist/main/CrowdViewWidget/selectConfig.js.map +1 -1
  33. package/dist/main/CrowdViewWidget/types.js +20 -0
  34. package/dist/main/CrowdViewWidget/types.js.map +1 -1
  35. package/dist/main/translations/sources/en.json +21 -16
  36. package/dist/module/CrowdViewWidget/Main.js +3 -1
  37. package/dist/module/CrowdViewWidget/Main.js.map +1 -1
  38. package/dist/module/CrowdViewWidget/components/Chart/chartOptions.js +16 -5
  39. package/dist/module/CrowdViewWidget/components/Chart/chartOptions.js.map +1 -1
  40. package/dist/module/CrowdViewWidget/components/Chart/index.js +1 -1
  41. package/dist/module/CrowdViewWidget/components/Chart/index.js.map +1 -1
  42. package/dist/module/CrowdViewWidget/components/Chart/types.js.map +1 -1
  43. package/dist/module/CrowdViewWidget/components/Chart/useCrowdViewData.js +13 -97
  44. package/dist/module/CrowdViewWidget/components/Chart/useCrowdViewData.js.map +1 -1
  45. package/dist/module/CrowdViewWidget/components/Chart/utils/aggregateBuckets.js +29 -0
  46. package/dist/module/CrowdViewWidget/components/Chart/utils/aggregateBuckets.js.map +1 -0
  47. package/dist/module/CrowdViewWidget/components/Chart/utils/chartUtils.js +20 -5
  48. package/dist/module/CrowdViewWidget/components/Chart/utils/chartUtils.js.map +1 -1
  49. package/dist/module/CrowdViewWidget/components/Chart/utils/getTargetBucketWidth.js +7 -0
  50. package/dist/module/CrowdViewWidget/components/Chart/utils/getTargetBucketWidth.js.map +1 -0
  51. package/dist/module/CrowdViewWidget/components/Chart/utils/index.js +8 -0
  52. package/dist/module/CrowdViewWidget/components/Chart/utils/index.js.map +1 -0
  53. package/dist/module/CrowdViewWidget/components/Chart/utils/processBuckets.js +22 -0
  54. package/dist/module/CrowdViewWidget/components/Chart/utils/processBuckets.js.map +1 -0
  55. package/dist/module/CrowdViewWidget/components/Chart/utils/processOrderPositionBooks.js +16 -0
  56. package/dist/module/CrowdViewWidget/components/Chart/utils/processOrderPositionBooks.js.map +1 -0
  57. package/dist/module/CrowdViewWidget/components/Chart/utils/processPriceCandles.js +36 -0
  58. package/dist/module/CrowdViewWidget/components/Chart/utils/processPriceCandles.js.map +1 -0
  59. package/dist/module/CrowdViewWidget/components/Chart/utils/validateData.js +16 -0
  60. package/dist/module/CrowdViewWidget/components/Chart/utils/validateData.js.map +1 -0
  61. package/dist/module/CrowdViewWidget/components/Legend/Legend.js +5 -3
  62. package/dist/module/CrowdViewWidget/components/Legend/Legend.js.map +1 -1
  63. package/dist/module/CrowdViewWidget/constants.js +103 -4
  64. package/dist/module/CrowdViewWidget/constants.js.map +1 -1
  65. package/dist/module/CrowdViewWidget/selectConfig.js +3 -45
  66. package/dist/module/CrowdViewWidget/selectConfig.js.map +1 -1
  67. package/dist/module/CrowdViewWidget/types.js +19 -1
  68. package/dist/module/CrowdViewWidget/types.js.map +1 -1
  69. package/dist/module/translations/sources/en.json +21 -16
  70. package/dist/types/CrowdViewWidget/components/Chart/index.d.ts +1 -1
  71. package/dist/types/CrowdViewWidget/components/Chart/types.d.ts +11 -7
  72. package/dist/types/CrowdViewWidget/components/Chart/utils/aggregateBuckets.d.ts +2 -0
  73. package/dist/types/CrowdViewWidget/components/Chart/utils/chartUtils.d.ts +11 -6
  74. package/dist/types/CrowdViewWidget/components/Chart/utils/getTargetBucketWidth.d.ts +3 -0
  75. package/dist/types/CrowdViewWidget/components/Chart/utils/index.d.ts +7 -0
  76. package/dist/types/CrowdViewWidget/components/Chart/utils/processBuckets.d.ts +3 -0
  77. package/dist/types/CrowdViewWidget/components/Chart/utils/processOrderPositionBooks.d.ts +8 -0
  78. package/dist/types/CrowdViewWidget/components/Chart/utils/processPriceCandles.d.ts +27 -0
  79. package/dist/types/CrowdViewWidget/components/Chart/utils/validateData.d.ts +2 -0
  80. package/dist/types/CrowdViewWidget/components/Legend/Legend.d.ts +3 -1
  81. package/dist/types/CrowdViewWidget/constants.d.ts +11 -4
  82. package/dist/types/CrowdViewWidget/selectConfig.d.ts +2 -2
  83. package/dist/types/CrowdViewWidget/types.d.ts +18 -1
  84. package/dist/types/CrowdViewWidget/utils/instrumentUtils.d.ts +1 -4
  85. package/package.json +4 -3
  86. package/src/CrowdViewWidget/Main.tsx +2 -3
  87. package/src/CrowdViewWidget/components/Chart/chartOptions.ts +35 -25
  88. package/src/CrowdViewWidget/components/Chart/index.ts +1 -1
  89. package/src/CrowdViewWidget/components/Chart/types.ts +12 -4
  90. package/src/CrowdViewWidget/components/Chart/useCrowdViewData.ts +30 -154
  91. package/src/CrowdViewWidget/components/Chart/utils/aggregateBuckets.ts +44 -0
  92. package/src/CrowdViewWidget/components/Chart/utils/chartUtils.ts +37 -12
  93. package/src/CrowdViewWidget/components/Chart/utils/getTargetBucketWidth.ts +13 -0
  94. package/src/CrowdViewWidget/components/Chart/utils/index.ts +7 -0
  95. package/src/CrowdViewWidget/components/Chart/utils/processBuckets.ts +43 -0
  96. package/src/CrowdViewWidget/components/Chart/utils/processOrderPositionBooks.ts +30 -0
  97. package/src/CrowdViewWidget/components/Chart/utils/processPriceCandles.ts +53 -0
  98. package/src/CrowdViewWidget/components/Chart/utils/validateData.ts +27 -0
  99. package/src/CrowdViewWidget/components/Legend/Legend.tsx +13 -2
  100. package/src/CrowdViewWidget/constants.ts +113 -4
  101. package/src/CrowdViewWidget/selectConfig.ts +5 -60
  102. package/src/CrowdViewWidget/types.ts +18 -1
  103. package/src/translations/sources/en.json +21 -16
  104. package/test/Main.test.tsx +1 -1
  105. package/test/components/Chart/utils/chartUtils.test.ts +12 -26
  106. package/test/components/Legend.test.tsx +6 -1
  107. package/test/utils/aggregateBuckets.test.ts +82 -0
  108. package/test/utils/getTargetBucketWidth.test.ts +37 -0
  109. package/test/utils/instrumentUtils.test.ts +13 -7
  110. package/test/utils/processBuckets.test.ts +153 -0
  111. package/test/utils/processOrderPositionBooks.test.ts +127 -0
  112. package/test/utils/processPriceCandles.test.ts +245 -0
  113. package/test/utils/validateData.test.ts +201 -0
  114. package/dist/main/CrowdViewWidget/types/index.js +0 -17
  115. package/dist/main/CrowdViewWidget/types/index.js.map +0 -1
  116. package/dist/main/CrowdViewWidget/types/instruments.js +0 -45
  117. package/dist/main/CrowdViewWidget/types/instruments.js.map +0 -1
  118. package/dist/module/CrowdViewWidget/types/index.js +0 -2
  119. package/dist/module/CrowdViewWidget/types/index.js.map +0 -1
  120. package/dist/module/CrowdViewWidget/types/instruments.js +0 -39
  121. package/dist/module/CrowdViewWidget/types/instruments.js.map +0 -1
  122. package/dist/types/CrowdViewWidget/types/index.d.ts +0 -1
  123. package/dist/types/CrowdViewWidget/types/instruments.d.ts +0 -36
  124. package/src/CrowdViewWidget/types/index.ts +0 -1
  125. package/src/CrowdViewWidget/types/instruments.ts +0 -37
@@ -3,13 +3,14 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.TIME_THRESHOLDS = exports.COLOR_MAP = exports.CHART_CONFIG = exports.BUCKET_CONFIG = exports.BOOKS_THRESHOLDS = void 0;
6
+ exports.TIME_THRESHOLDS = exports.INSTRUMENTS_CONFIG = exports.COLOR_MAP = exports.CHART_CONFIG = exports.BUCKET_CONFIG = exports.BOOKS_THRESHOLDS = void 0;
7
+ var _types = require("./types");
7
8
  const BOOKS_THRESHOLDS = exports.BOOKS_THRESHOLDS = {
8
9
  MIN: 0.15,
9
10
  MAX: 0.55
10
11
  };
11
12
  const BUCKET_CONFIG = exports.BUCKET_CONFIG = {
12
- DEFAULT_WIDTH: 0.0005,
13
+ MULTIPLIER: 4,
13
14
  PRICE_PADDING_MULTIPLIER: 2
14
15
  };
15
16
  const TIME_THRESHOLDS = exports.TIME_THRESHOLDS = {
@@ -20,12 +21,110 @@ const CHART_CONFIG = exports.CHART_CONFIG = {
20
21
  WIDTH: 9999,
21
22
  X_LABEL_SIZE: 40,
22
23
  Y_LABEL_SIZE_DESKTOP: 60,
23
- INITIAL_START_ZOOM: 0,
24
+ INITIAL_START_ZOOM: 80,
24
25
  INITIAL_END_ZOOM: 100,
25
26
  X_AXIS_DATE_PADDING: ' '
26
27
  };
27
28
  const COLOR_MAP = exports.COLOR_MAP = {
28
- long: ['#fcedca', '#FAB313'],
29
- short: ['#c8ebfa', '#309DCC']
29
+ long: ['#eaf5fa', '#83c4e0'],
30
+ short: ['#fef7e7', '#fcd171']
31
+ };
32
+ const INSTRUMENTS_CONFIG = exports.INSTRUMENTS_CONFIG = {
33
+ [_types.InstrumentId.EUR_AUD]: {
34
+ mt5name: 'EURAUD',
35
+ v20name: 'EUR_AUD',
36
+ precision: 5,
37
+ defaultBucketWidth: 0.0005
38
+ },
39
+ [_types.InstrumentId.EUR_GBP]: {
40
+ mt5name: 'EURGBP',
41
+ v20name: 'EUR_GBP',
42
+ precision: 5,
43
+ defaultBucketWidth: 0.0005
44
+ },
45
+ [_types.InstrumentId.EUR_JPY]: {
46
+ mt5name: 'EURJPY',
47
+ v20name: 'EUR_JPY',
48
+ precision: 3,
49
+ defaultBucketWidth: 0.05
50
+ },
51
+ [_types.InstrumentId.EUR_USD]: {
52
+ mt5name: 'EURUSD',
53
+ v20name: 'EUR_USD',
54
+ precision: 5,
55
+ defaultBucketWidth: 0.0005
56
+ },
57
+ [_types.InstrumentId.EUR_CHF]: {
58
+ mt5name: 'EURCHF',
59
+ v20name: 'EUR_CHF',
60
+ precision: 5,
61
+ defaultBucketWidth: 0.0005
62
+ },
63
+ [_types.InstrumentId.USD_CHF]: {
64
+ mt5name: 'USDCHF',
65
+ v20name: 'USD_CHF',
66
+ precision: 5,
67
+ defaultBucketWidth: 0.0005
68
+ },
69
+ [_types.InstrumentId.USD_JPY]: {
70
+ mt5name: 'USDJPY',
71
+ v20name: 'USD_JPY',
72
+ precision: 3,
73
+ defaultBucketWidth: 0.05
74
+ },
75
+ [_types.InstrumentId.USD_CAD]: {
76
+ mt5name: 'USDCAD',
77
+ v20name: 'USD_CAD',
78
+ precision: 5,
79
+ defaultBucketWidth: 0.0005
80
+ },
81
+ [_types.InstrumentId.GBP_USD]: {
82
+ mt5name: 'GBPUSD',
83
+ v20name: 'GBP_USD',
84
+ precision: 5,
85
+ defaultBucketWidth: 0.0005
86
+ },
87
+ [_types.InstrumentId.GBP_JPY]: {
88
+ mt5name: 'GBPJPY',
89
+ v20name: 'GBP_JPY',
90
+ precision: 3,
91
+ defaultBucketWidth: 0.05
92
+ },
93
+ [_types.InstrumentId.GBP_CHF]: {
94
+ mt5name: 'GBPCHF',
95
+ v20name: 'GBP_CHF',
96
+ precision: 5,
97
+ defaultBucketWidth: 0.0005
98
+ },
99
+ [_types.InstrumentId.AUD_JPY]: {
100
+ mt5name: 'AUDJPY',
101
+ v20name: 'AUD_JPY',
102
+ precision: 3,
103
+ defaultBucketWidth: 0.05
104
+ },
105
+ [_types.InstrumentId.AUD_USD]: {
106
+ mt5name: 'AUDUSD',
107
+ v20name: 'AUD_USD',
108
+ precision: 5,
109
+ defaultBucketWidth: 0.0005
110
+ },
111
+ [_types.InstrumentId.NZD_USD]: {
112
+ mt5name: 'NZDUSD',
113
+ v20name: 'NZD_USD',
114
+ precision: 5,
115
+ defaultBucketWidth: 0.0005
116
+ },
117
+ [_types.InstrumentId.XAU_USD]: {
118
+ mt5name: 'XAUUSD',
119
+ v20name: 'XAU_USD',
120
+ precision: 3,
121
+ defaultBucketWidth: 0.5
122
+ },
123
+ [_types.InstrumentId.XAG_USD]: {
124
+ mt5name: 'XAGUSD',
125
+ v20name: 'XAG_USD',
126
+ precision: 5,
127
+ defaultBucketWidth: 0.0005
128
+ }
30
129
  };
31
130
  //# sourceMappingURL=constants.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"constants.js","names":["BOOKS_THRESHOLDS","exports","MIN","MAX","BUCKET_CONFIG","DEFAULT_WIDTH","PRICE_PADDING_MULTIPLIER","TIME_THRESHOLDS","TWO_WEEKS_MS","CHART_CONFIG","HEIGHT","WIDTH","X_LABEL_SIZE","Y_LABEL_SIZE_DESKTOP","INITIAL_START_ZOOM","INITIAL_END_ZOOM","X_AXIS_DATE_PADDING","COLOR_MAP","long","short"],"sources":["../../../src/CrowdViewWidget/constants.ts"],"sourcesContent":["export const BOOKS_THRESHOLDS = {\n MIN: 0.15,\n MAX: 0.55,\n} as const;\n\nexport const BUCKET_CONFIG = {\n DEFAULT_WIDTH: 0.0005,\n PRICE_PADDING_MULTIPLIER: 2,\n} as const;\n\nexport const TIME_THRESHOLDS = {\n TWO_WEEKS_MS: 14 * 24 * 60 * 60 * 1000,\n} as const;\n\nexport const CHART_CONFIG = {\n HEIGHT: 425,\n WIDTH: 9999,\n X_LABEL_SIZE: 40,\n Y_LABEL_SIZE_DESKTOP: 60,\n INITIAL_START_ZOOM: 0,\n INITIAL_END_ZOOM: 100,\n X_AXIS_DATE_PADDING: ' ',\n} as const;\n\nexport const COLOR_MAP = {\n long: ['#fcedca', '#FAB313'],\n short: ['#c8ebfa', '#309DCC'],\n} as const;\n"],"mappings":";;;;;;AAAO,MAAMA,gBAAgB,GAAAC,OAAA,CAAAD,gBAAA,GAAG;EAC9BE,GAAG,EAAE,IAAI;EACTC,GAAG,EAAE;AACP,CAAU;AAEH,MAAMC,aAAa,GAAAH,OAAA,CAAAG,aAAA,GAAG;EAC3BC,aAAa,EAAE,MAAM;EACrBC,wBAAwB,EAAE;AAC5B,CAAU;AAEH,MAAMC,eAAe,GAAAN,OAAA,CAAAM,eAAA,GAAG;EAC7BC,YAAY,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;AACpC,CAAU;AAEH,MAAMC,YAAY,GAAAR,OAAA,CAAAQ,YAAA,GAAG;EAC1BC,MAAM,EAAE,GAAG;EACXC,KAAK,EAAE,IAAI;EACXC,YAAY,EAAE,EAAE;EAChBC,oBAAoB,EAAE,EAAE;EACxBC,kBAAkB,EAAE,CAAC;EACrBC,gBAAgB,EAAE,GAAG;EACrBC,mBAAmB,EAAE;AACvB,CAAU;AAEH,MAAMC,SAAS,GAAAhB,OAAA,CAAAgB,SAAA,GAAG;EACvBC,IAAI,EAAE,CAAC,SAAS,EAAE,SAAS,CAAC;EAC5BC,KAAK,EAAE,CAAC,SAAS,EAAE,SAAS;AAC9B,CAAU","ignoreList":[]}
1
+ {"version":3,"file":"constants.js","names":["_types","require","BOOKS_THRESHOLDS","exports","MIN","MAX","BUCKET_CONFIG","MULTIPLIER","PRICE_PADDING_MULTIPLIER","TIME_THRESHOLDS","TWO_WEEKS_MS","CHART_CONFIG","HEIGHT","WIDTH","X_LABEL_SIZE","Y_LABEL_SIZE_DESKTOP","INITIAL_START_ZOOM","INITIAL_END_ZOOM","X_AXIS_DATE_PADDING","COLOR_MAP","long","short","INSTRUMENTS_CONFIG","InstrumentId","EUR_AUD","mt5name","v20name","precision","defaultBucketWidth","EUR_GBP","EUR_JPY","EUR_USD","EUR_CHF","USD_CHF","USD_JPY","USD_CAD","GBP_USD","GBP_JPY","GBP_CHF","AUD_JPY","AUD_USD","NZD_USD","XAU_USD","XAG_USD"],"sources":["../../../src/CrowdViewWidget/constants.ts"],"sourcesContent":["import { InstrumentId } from './types';\n\nexport const BOOKS_THRESHOLDS = {\n MIN: 0.15,\n MAX: 0.55,\n} as const;\n\nexport const BUCKET_CONFIG = {\n MULTIPLIER: 4,\n PRICE_PADDING_MULTIPLIER: 2,\n} as const;\n\nexport const TIME_THRESHOLDS = {\n TWO_WEEKS_MS: 14 * 24 * 60 * 60 * 1000,\n} as const;\n\nexport const CHART_CONFIG = {\n HEIGHT: 425,\n WIDTH: 9999,\n X_LABEL_SIZE: 40,\n Y_LABEL_SIZE_DESKTOP: 60,\n INITIAL_START_ZOOM: 80,\n INITIAL_END_ZOOM: 100,\n X_AXIS_DATE_PADDING: ' ',\n} as const;\n\nexport const COLOR_MAP = {\n long: ['#eaf5fa', '#83c4e0'],\n short: ['#fef7e7', '#fcd171'],\n} as const;\n\nexport const INSTRUMENTS_CONFIG: Record<\n InstrumentId,\n {\n precision: number;\n defaultBucketWidth: number;\n v20name: string;\n mt5name: string;\n }\n> = {\n [InstrumentId.EUR_AUD]: {\n mt5name: 'EURAUD',\n v20name: 'EUR_AUD',\n precision: 5,\n defaultBucketWidth: 0.0005,\n },\n [InstrumentId.EUR_GBP]: {\n mt5name: 'EURGBP',\n v20name: 'EUR_GBP',\n precision: 5,\n defaultBucketWidth: 0.0005,\n },\n [InstrumentId.EUR_JPY]: {\n mt5name: 'EURJPY',\n v20name: 'EUR_JPY',\n precision: 3,\n defaultBucketWidth: 0.05,\n },\n [InstrumentId.EUR_USD]: {\n mt5name: 'EURUSD',\n v20name: 'EUR_USD',\n precision: 5,\n defaultBucketWidth: 0.0005,\n },\n [InstrumentId.EUR_CHF]: {\n mt5name: 'EURCHF',\n v20name: 'EUR_CHF',\n precision: 5,\n defaultBucketWidth: 0.0005,\n },\n [InstrumentId.USD_CHF]: {\n mt5name: 'USDCHF',\n v20name: 'USD_CHF',\n precision: 5,\n defaultBucketWidth: 0.0005,\n },\n [InstrumentId.USD_JPY]: {\n mt5name: 'USDJPY',\n v20name: 'USD_JPY',\n precision: 3,\n defaultBucketWidth: 0.05,\n },\n [InstrumentId.USD_CAD]: {\n mt5name: 'USDCAD',\n v20name: 'USD_CAD',\n precision: 5,\n defaultBucketWidth: 0.0005,\n },\n [InstrumentId.GBP_USD]: {\n mt5name: 'GBPUSD',\n v20name: 'GBP_USD',\n precision: 5,\n defaultBucketWidth: 0.0005,\n },\n [InstrumentId.GBP_JPY]: {\n mt5name: 'GBPJPY',\n v20name: 'GBP_JPY',\n precision: 3,\n defaultBucketWidth: 0.05,\n },\n [InstrumentId.GBP_CHF]: {\n mt5name: 'GBPCHF',\n v20name: 'GBP_CHF',\n precision: 5,\n defaultBucketWidth: 0.0005,\n },\n [InstrumentId.AUD_JPY]: {\n mt5name: 'AUDJPY',\n v20name: 'AUD_JPY',\n precision: 3,\n defaultBucketWidth: 0.05,\n },\n [InstrumentId.AUD_USD]: {\n mt5name: 'AUDUSD',\n v20name: 'AUD_USD',\n precision: 5,\n defaultBucketWidth: 0.0005,\n },\n [InstrumentId.NZD_USD]: {\n mt5name: 'NZDUSD',\n v20name: 'NZD_USD',\n precision: 5,\n defaultBucketWidth: 0.0005,\n },\n [InstrumentId.XAU_USD]: {\n mt5name: 'XAUUSD',\n v20name: 'XAU_USD',\n precision: 3,\n defaultBucketWidth: 0.5,\n },\n [InstrumentId.XAG_USD]: {\n mt5name: 'XAGUSD',\n v20name: 'XAG_USD',\n precision: 5,\n defaultBucketWidth: 0.0005,\n },\n};\n"],"mappings":"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","ignoreList":[]}
@@ -5,7 +5,7 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.navigationConfig = exports.instrumentSelectConfigOC = exports.instrumentSelectConfig = exports.granularitySelectConfig = void 0;
7
7
  var _graphql = require("../gql/types/graphql");
8
- var _instruments = require("./types/instruments");
8
+ var _types = require("./types");
9
9
  const navigationConfig = exports.navigationConfig = [{
10
10
  id: _graphql.BookType.Order,
11
11
  label: 'order_book'
@@ -14,95 +14,53 @@ const navigationConfig = exports.navigationConfig = [{
14
14
  label: 'position_book'
15
15
  }];
16
16
  const instrumentSelectConfigOC = exports.instrumentSelectConfigOC = [{
17
- id: _instruments.InstrumentIdOC.EUR_AUD,
17
+ id: _types.InstrumentId.EUR_AUD,
18
18
  label: 'EUR/AUD'
19
19
  }, {
20
- id: _instruments.InstrumentIdOC.EUR_GBP,
20
+ id: _types.InstrumentId.EUR_GBP,
21
21
  label: 'EUR/GBP'
22
22
  }, {
23
- id: _instruments.InstrumentIdOC.EUR_JPY,
23
+ id: _types.InstrumentId.EUR_JPY,
24
24
  label: 'EUR/JPY'
25
25
  }, {
26
- id: _instruments.InstrumentIdOC.EUR_USD,
26
+ id: _types.InstrumentId.EUR_USD,
27
27
  label: 'EUR/USD'
28
28
  }, {
29
- id: _instruments.InstrumentIdOC.EUR_CHF,
29
+ id: _types.InstrumentId.EUR_CHF,
30
30
  label: 'EUR/CHF'
31
31
  }, {
32
- id: _instruments.InstrumentIdOC.USD_CHF,
32
+ id: _types.InstrumentId.USD_CHF,
33
33
  label: 'USD/CHF'
34
34
  }, {
35
- id: _instruments.InstrumentIdOC.USD_JPY,
35
+ id: _types.InstrumentId.USD_JPY,
36
36
  label: 'USD/JPY'
37
37
  }, {
38
- id: _instruments.InstrumentIdOC.USD_CAD,
38
+ id: _types.InstrumentId.USD_CAD,
39
39
  label: 'USD/CAD'
40
40
  }, {
41
- id: _instruments.InstrumentIdOC.GBP_USD,
41
+ id: _types.InstrumentId.GBP_USD,
42
42
  label: 'GBP/USD'
43
43
  }, {
44
- id: _instruments.InstrumentIdOC.GBP_JPY,
44
+ id: _types.InstrumentId.GBP_JPY,
45
45
  label: 'GBP/JPY'
46
46
  }, {
47
- id: _instruments.InstrumentIdOC.GBP_CHF,
47
+ id: _types.InstrumentId.GBP_CHF,
48
48
  label: 'GBP/CHF'
49
49
  }, {
50
- id: _instruments.InstrumentIdOC.AUD_JPY,
50
+ id: _types.InstrumentId.AUD_JPY,
51
51
  label: 'AUD/JPY'
52
52
  }, {
53
- id: _instruments.InstrumentIdOC.AUD_USD,
53
+ id: _types.InstrumentId.AUD_USD,
54
54
  label: 'AUD/USD'
55
55
  }, {
56
- id: _instruments.InstrumentIdOC.NZD_USD,
56
+ id: _types.InstrumentId.NZD_USD,
57
57
  label: 'NZD/USD'
58
58
  }];
59
- const instrumentSelectConfig = exports.instrumentSelectConfig = [{
60
- id: _instruments.InstrumentId.EUR_AUD,
61
- label: 'EUR/AUD'
62
- }, {
63
- id: _instruments.InstrumentId.EUR_GBP,
64
- label: 'EUR/GBP'
65
- }, {
66
- id: _instruments.InstrumentId.EUR_JPY,
67
- label: 'EUR/JPY'
68
- }, {
69
- id: _instruments.InstrumentId.EUR_USD,
70
- label: 'EUR/USD'
71
- }, {
72
- id: _instruments.InstrumentId.EUR_CHF,
73
- label: 'EUR/CHF'
74
- }, {
75
- id: _instruments.InstrumentId.USD_CHF,
76
- label: 'USD/CHF'
77
- }, {
78
- id: _instruments.InstrumentId.USD_JPY,
79
- label: 'USD/JPY'
80
- }, {
81
- id: _instruments.InstrumentId.USD_CAD,
82
- label: 'USD/CAD'
83
- }, {
84
- id: _instruments.InstrumentId.GBP_USD,
85
- label: 'GBP/USD'
86
- }, {
87
- id: _instruments.InstrumentId.GBP_JPY,
88
- label: 'GBP/JPY'
89
- }, {
90
- id: _instruments.InstrumentId.GBP_CHF,
91
- label: 'GBP/CHF'
92
- }, {
93
- id: _instruments.InstrumentId.AUD_JPY,
94
- label: 'AUD/JPY'
95
- }, {
96
- id: _instruments.InstrumentId.AUD_USD,
97
- label: 'AUD/USD'
98
- }, {
99
- id: _instruments.InstrumentId.NZD_USD,
100
- label: 'NZD/USD'
101
- }, {
102
- id: _instruments.InstrumentId.XAU_USD,
59
+ const instrumentSelectConfig = exports.instrumentSelectConfig = [...instrumentSelectConfigOC, {
60
+ id: _types.InstrumentId.XAU_USD,
103
61
  label: 'XAU/USD'
104
62
  }, {
105
- id: _instruments.InstrumentId.XAG_USD,
63
+ id: _types.InstrumentId.XAG_USD,
106
64
  label: 'XAG/USD'
107
65
  }];
108
66
  const granularitySelectConfig = exports.granularitySelectConfig = [{
@@ -1 +1 @@
1
- {"version":3,"file":"selectConfig.js","names":["_graphql","require","_instruments","navigationConfig","exports","id","BookType","Order","label","Position","instrumentSelectConfigOC","InstrumentIdOC","EUR_AUD","EUR_GBP","EUR_JPY","EUR_USD","EUR_CHF","USD_CHF","USD_JPY","USD_CAD","GBP_USD","GBP_JPY","GBP_CHF","AUD_JPY","AUD_USD","NZD_USD","instrumentSelectConfig","InstrumentId","XAU_USD","XAG_USD","granularitySelectConfig","Granularity","M5","M15","H1","H4"],"sources":["../../../src/CrowdViewWidget/selectConfig.ts"],"sourcesContent":["import { BookType, Granularity } from '../gql/types/graphql';\nimport { InstrumentId, InstrumentIdOC } from './types/instruments';\n\nconst navigationConfig = [\n {\n id: BookType.Order,\n label: 'order_book',\n },\n {\n id: BookType.Position,\n label: 'position_book',\n },\n];\n\nconst instrumentSelectConfigOC = [\n {\n id: InstrumentIdOC.EUR_AUD,\n label: 'EUR/AUD',\n },\n {\n id: InstrumentIdOC.EUR_GBP,\n label: 'EUR/GBP',\n },\n {\n id: InstrumentIdOC.EUR_JPY,\n label: 'EUR/JPY',\n },\n {\n id: InstrumentIdOC.EUR_USD,\n label: 'EUR/USD',\n },\n {\n id: InstrumentIdOC.EUR_CHF,\n label: 'EUR/CHF',\n },\n {\n id: InstrumentIdOC.USD_CHF,\n label: 'USD/CHF',\n },\n {\n id: InstrumentIdOC.USD_JPY,\n label: 'USD/JPY',\n },\n {\n id: InstrumentIdOC.USD_CAD,\n label: 'USD/CAD',\n },\n {\n id: InstrumentIdOC.GBP_USD,\n label: 'GBP/USD',\n },\n {\n id: InstrumentIdOC.GBP_JPY,\n label: 'GBP/JPY',\n },\n {\n id: InstrumentIdOC.GBP_CHF,\n label: 'GBP/CHF',\n },\n {\n id: InstrumentIdOC.AUD_JPY,\n label: 'AUD/JPY',\n },\n {\n id: InstrumentIdOC.AUD_USD,\n label: 'AUD/USD',\n },\n {\n id: InstrumentIdOC.NZD_USD,\n label: 'NZD/USD',\n },\n];\n\nconst instrumentSelectConfig = [\n {\n id: InstrumentId.EUR_AUD,\n label: 'EUR/AUD',\n },\n {\n id: InstrumentId.EUR_GBP,\n label: 'EUR/GBP',\n },\n {\n id: InstrumentId.EUR_JPY,\n label: 'EUR/JPY',\n },\n {\n id: InstrumentId.EUR_USD,\n label: 'EUR/USD',\n },\n {\n id: InstrumentId.EUR_CHF,\n label: 'EUR/CHF',\n },\n {\n id: InstrumentId.USD_CHF,\n label: 'USD/CHF',\n },\n {\n id: InstrumentId.USD_JPY,\n label: 'USD/JPY',\n },\n {\n id: InstrumentId.USD_CAD,\n label: 'USD/CAD',\n },\n {\n id: InstrumentId.GBP_USD,\n label: 'GBP/USD',\n },\n {\n id: InstrumentId.GBP_JPY,\n label: 'GBP/JPY',\n },\n {\n id: InstrumentId.GBP_CHF,\n label: 'GBP/CHF',\n },\n {\n id: InstrumentId.AUD_JPY,\n label: 'AUD/JPY',\n },\n {\n id: InstrumentId.AUD_USD,\n label: 'AUD/USD',\n },\n {\n id: InstrumentId.NZD_USD,\n label: 'NZD/USD',\n },\n {\n id: InstrumentId.XAU_USD,\n label: 'XAU/USD',\n },\n {\n id: InstrumentId.XAG_USD,\n label: 'XAG/USD',\n },\n];\n\nconst granularitySelectConfig = [\n {\n id: Granularity.M5,\n label: '5_minutes',\n },\n {\n id: Granularity.M15,\n label: '15_minutes',\n },\n {\n id: Granularity.H1,\n label: '1_hour',\n },\n {\n id: Granularity.H4,\n label: '4_hours',\n },\n];\n\nexport {\n granularitySelectConfig,\n instrumentSelectConfig,\n instrumentSelectConfigOC,\n navigationConfig,\n};\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"selectConfig.js","names":["_graphql","require","_types","navigationConfig","exports","id","BookType","Order","label","Position","instrumentSelectConfigOC","InstrumentId","EUR_AUD","EUR_GBP","EUR_JPY","EUR_USD","EUR_CHF","USD_CHF","USD_JPY","USD_CAD","GBP_USD","GBP_JPY","GBP_CHF","AUD_JPY","AUD_USD","NZD_USD","instrumentSelectConfig","XAU_USD","XAG_USD","granularitySelectConfig","Granularity","M5","M15","H1","H4"],"sources":["../../../src/CrowdViewWidget/selectConfig.ts"],"sourcesContent":["import { BookType, Granularity } from '../gql/types/graphql';\nimport { InstrumentId } from './types';\n\nconst navigationConfig = [\n {\n id: BookType.Order,\n label: 'order_book',\n },\n {\n id: BookType.Position,\n label: 'position_book',\n },\n];\n\nconst instrumentSelectConfigOC = [\n {\n id: InstrumentId.EUR_AUD,\n label: 'EUR/AUD',\n },\n {\n id: InstrumentId.EUR_GBP,\n label: 'EUR/GBP',\n },\n {\n id: InstrumentId.EUR_JPY,\n label: 'EUR/JPY',\n },\n {\n id: InstrumentId.EUR_USD,\n label: 'EUR/USD',\n },\n {\n id: InstrumentId.EUR_CHF,\n label: 'EUR/CHF',\n },\n {\n id: InstrumentId.USD_CHF,\n label: 'USD/CHF',\n },\n {\n id: InstrumentId.USD_JPY,\n label: 'USD/JPY',\n },\n {\n id: InstrumentId.USD_CAD,\n label: 'USD/CAD',\n },\n {\n id: InstrumentId.GBP_USD,\n label: 'GBP/USD',\n },\n {\n id: InstrumentId.GBP_JPY,\n label: 'GBP/JPY',\n },\n {\n id: InstrumentId.GBP_CHF,\n label: 'GBP/CHF',\n },\n {\n id: InstrumentId.AUD_JPY,\n label: 'AUD/JPY',\n },\n {\n id: InstrumentId.AUD_USD,\n label: 'AUD/USD',\n },\n {\n id: InstrumentId.NZD_USD,\n label: 'NZD/USD',\n },\n];\n\nconst instrumentSelectConfig = [\n ...instrumentSelectConfigOC,\n {\n id: InstrumentId.XAU_USD,\n label: 'XAU/USD',\n },\n {\n id: InstrumentId.XAG_USD,\n label: 'XAG/USD',\n },\n];\n\nconst granularitySelectConfig = [\n {\n id: Granularity.M5,\n label: '5_minutes',\n },\n {\n id: Granularity.M15,\n label: '15_minutes',\n },\n {\n id: Granularity.H1,\n label: '1_hour',\n },\n {\n id: Granularity.H4,\n label: '4_hours',\n },\n];\n\nexport {\n granularitySelectConfig,\n instrumentSelectConfig,\n instrumentSelectConfigOC,\n navigationConfig,\n};\n"],"mappings":";;;;;;AAAA,IAAAA,QAAA,GAAAC,OAAA;AACA,IAAAC,MAAA,GAAAD,OAAA;AAEA,MAAME,gBAAgB,GAAAC,OAAA,CAAAD,gBAAA,GAAG,CACvB;EACEE,EAAE,EAAEC,iBAAQ,CAACC,KAAK;EAClBC,KAAK,EAAE;AACT,CAAC,EACD;EACEH,EAAE,EAAEC,iBAAQ,CAACG,QAAQ;EACrBD,KAAK,EAAE;AACT,CAAC,CACF;AAED,MAAME,wBAAwB,GAAAN,OAAA,CAAAM,wBAAA,GAAG,CAC/B;EACEL,EAAE,EAAEM,mBAAY,CAACC,OAAO;EACxBJ,KAAK,EAAE;AACT,CAAC,EACD;EACEH,EAAE,EAAEM,mBAAY,CAACE,OAAO;EACxBL,KAAK,EAAE;AACT,CAAC,EACD;EACEH,EAAE,EAAEM,mBAAY,CAACG,OAAO;EACxBN,KAAK,EAAE;AACT,CAAC,EACD;EACEH,EAAE,EAAEM,mBAAY,CAACI,OAAO;EACxBP,KAAK,EAAE;AACT,CAAC,EACD;EACEH,EAAE,EAAEM,mBAAY,CAACK,OAAO;EACxBR,KAAK,EAAE;AACT,CAAC,EACD;EACEH,EAAE,EAAEM,mBAAY,CAACM,OAAO;EACxBT,KAAK,EAAE;AACT,CAAC,EACD;EACEH,EAAE,EAAEM,mBAAY,CAACO,OAAO;EACxBV,KAAK,EAAE;AACT,CAAC,EACD;EACEH,EAAE,EAAEM,mBAAY,CAACQ,OAAO;EACxBX,KAAK,EAAE;AACT,CAAC,EACD;EACEH,EAAE,EAAEM,mBAAY,CAACS,OAAO;EACxBZ,KAAK,EAAE;AACT,CAAC,EACD;EACEH,EAAE,EAAEM,mBAAY,CAACU,OAAO;EACxBb,KAAK,EAAE;AACT,CAAC,EACD;EACEH,EAAE,EAAEM,mBAAY,CAACW,OAAO;EACxBd,KAAK,EAAE;AACT,CAAC,EACD;EACEH,EAAE,EAAEM,mBAAY,CAACY,OAAO;EACxBf,KAAK,EAAE;AACT,CAAC,EACD;EACEH,EAAE,EAAEM,mBAAY,CAACa,OAAO;EACxBhB,KAAK,EAAE;AACT,CAAC,EACD;EACEH,EAAE,EAAEM,mBAAY,CAACc,OAAO;EACxBjB,KAAK,EAAE;AACT,CAAC,CACF;AAED,MAAMkB,sBAAsB,GAAAtB,OAAA,CAAAsB,sBAAA,GAAG,CAC7B,GAAGhB,wBAAwB,EAC3B;EACEL,EAAE,EAAEM,mBAAY,CAACgB,OAAO;EACxBnB,KAAK,EAAE;AACT,CAAC,EACD;EACEH,EAAE,EAAEM,mBAAY,CAACiB,OAAO;EACxBpB,KAAK,EAAE;AACT,CAAC,CACF;AAED,MAAMqB,uBAAuB,GAAAzB,OAAA,CAAAyB,uBAAA,GAAG,CAC9B;EACExB,EAAE,EAAEyB,oBAAW,CAACC,EAAE;EAClBvB,KAAK,EAAE;AACT,CAAC,EACD;EACEH,EAAE,EAAEyB,oBAAW,CAACE,GAAG;EACnBxB,KAAK,EAAE;AACT,CAAC,EACD;EACEH,EAAE,EAAEyB,oBAAW,CAACG,EAAE;EAClBzB,KAAK,EAAE;AACT,CAAC,EACD;EACEH,EAAE,EAAEyB,oBAAW,CAACI,EAAE;EAClB1B,KAAK,EAAE;AACT,CAAC,CACF","ignoreList":[]}
@@ -3,4 +3,24 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
+ exports.InstrumentId = void 0;
7
+ let InstrumentId = exports.InstrumentId = function (InstrumentId) {
8
+ InstrumentId["EUR_AUD"] = "EURAUD";
9
+ InstrumentId["EUR_GBP"] = "EURGBP";
10
+ InstrumentId["EUR_JPY"] = "EURJPY";
11
+ InstrumentId["EUR_USD"] = "EURUSD";
12
+ InstrumentId["EUR_CHF"] = "EURCHF";
13
+ InstrumentId["USD_CHF"] = "USDCHF";
14
+ InstrumentId["USD_JPY"] = "USDJPY";
15
+ InstrumentId["USD_CAD"] = "USDCAD";
16
+ InstrumentId["GBP_USD"] = "GBPUSD";
17
+ InstrumentId["GBP_JPY"] = "GBPJPY";
18
+ InstrumentId["GBP_CHF"] = "GBPCHF";
19
+ InstrumentId["AUD_JPY"] = "AUDJPY";
20
+ InstrumentId["AUD_USD"] = "AUDUSD";
21
+ InstrumentId["NZD_USD"] = "NZDUSD";
22
+ InstrumentId["XAU_USD"] = "XAUUSD";
23
+ InstrumentId["XAG_USD"] = "XAGUSD";
24
+ return InstrumentId;
25
+ }({});
6
26
  //# sourceMappingURL=types.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","names":[],"sources":["../../../src/CrowdViewWidget/types.ts"],"sourcesContent":["import type { WidgetConfig } from '@oanda/labs-widget-common';\n\nimport type { Division } from '../gql/types/graphql';\nimport type { InstrumentId } from './types/instruments';\n\nexport interface CrowdViewConfig extends WidgetConfig {\n division: Division;\n}\n\nexport interface MainProps {\n instrument?: InstrumentId;\n division: Division;\n}\n"],"mappings":"","ignoreList":[]}
1
+ {"version":3,"file":"types.js","names":["InstrumentId","exports"],"sources":["../../../src/CrowdViewWidget/types.ts"],"sourcesContent":["import type { WidgetConfig } from '@oanda/labs-widget-common';\n\nimport type { Division } from '../gql/types/graphql';\n\nexport enum InstrumentId {\n EUR_AUD = 'EURAUD',\n EUR_GBP = 'EURGBP',\n EUR_JPY = 'EURJPY',\n EUR_USD = 'EURUSD',\n EUR_CHF = 'EURCHF',\n USD_CHF = 'USDCHF',\n USD_JPY = 'USDJPY',\n USD_CAD = 'USDCAD',\n GBP_USD = 'GBPUSD',\n GBP_JPY = 'GBPJPY',\n GBP_CHF = 'GBPCHF',\n AUD_JPY = 'AUDJPY',\n AUD_USD = 'AUDUSD',\n NZD_USD = 'NZDUSD',\n XAU_USD = 'XAUUSD',\n XAG_USD = 'XAGUSD',\n}\nexport interface CrowdViewConfig extends WidgetConfig {\n division: Division;\n}\n\nexport interface MainProps {\n instrument?: InstrumentId;\n division: Division;\n}\n"],"mappings":";;;;;;IAIYA,YAAY,GAAAC,OAAA,CAAAD,YAAA,aAAZA,YAAY;EAAZA,YAAY;EAAZA,YAAY;EAAZA,YAAY;EAAZA,YAAY;EAAZA,YAAY;EAAZA,YAAY;EAAZA,YAAY;EAAZA,YAAY;EAAZA,YAAY;EAAZA,YAAY;EAAZA,YAAY;EAAZA,YAAY;EAAZA,YAAY;EAAZA,YAAY;EAAZA,YAAY;EAAZA,YAAY;EAAA,OAAZA,YAAY;AAAA","ignoreList":[]}
@@ -1,26 +1,31 @@
1
1
  {
2
- "data_unavailable": "Data unavailable",
3
- "no_matching_results": "No matching results",
4
- "pagination_entries_range": "{{firstItemOnPage}}-{{lastItemOnPage}} of {{itemCount}} entries",
5
- "order_book": "Order book",
6
- "position_book": "Position book",
7
- "long": "Long",
8
- "short": "Short",
9
- "instrument": "Instrument",
10
- "granularity": "Granularity",
11
- "search": "Search",
12
- "5_minutes": "5 minutes",
13
- "15_minutes": "15 minutes",
14
2
  "1_hour": "1 hour",
3
+ "15_minutes": "15 minutes",
15
4
  "4_hours": "4 hours",
5
+ "5_minutes": "5 minutes",
6
+ "buy_advantage": "Buy advantage",
7
+ "buy": "Buy",
16
8
  "candle": "Candle",
17
- "open_price": "Open price",
18
9
  "close_price": "Close price",
19
- "low": "Low",
10
+ "data_unavailable": "Data unavailable",
11
+ "granularity": "Granularity",
20
12
  "high": "High",
13
+ "instrument": "Instrument",
14
+ "long_advantage": "Sell advantage",
15
+ "long": "Long",
16
+ "low": "Low",
17
+ "no_matching_results": "No matching results",
18
+ "open_price": "Open price",
19
+ "order_book": "Order book",
21
20
  "orders": "Orders",
21
+ "pagination_entries_range": "{{firstItemOnPage}}-{{lastItemOnPage}} of {{itemCount}} entries",
22
+ "position_book": "Position book",
23
+ "positions": "Positions",
22
24
  "price_range": "Price range",
25
+ "search": "Search",
26
+ "sell_advantage": "Sell advantage",
27
+ "sell": "Sell",
23
28
  "sentiment": "Sentiment",
24
- "buy_advantage": "Buy advantage",
25
- "sell_advantage": "Sell advantage"
29
+ "short_advantage": "Buy advantage",
30
+ "short": "Short"
26
31
  }
@@ -69,7 +69,9 @@ const Main = _ref => {
69
69
  division: division,
70
70
  granularity: granularity.id,
71
71
  instrument: instrument.id
72
- }), React.createElement(Legend, null)));
72
+ }), React.createElement(Legend, {
73
+ bookType: bookType
74
+ })));
73
75
  };
74
76
  export { Main };
75
77
  //# sourceMappingURL=Main.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Main.js","names":["cn","Select","Size","Tabs","useLayoutProvider","useLocale","React","useEffect","useMemo","useState","BookType","ChartWithData","Legend","granularitySelectConfig","navigationConfig","getInstrumentConfigForDivision","Main","_ref","division","lang","size","isDesktop","DESKTOP","bookType","setBookType","Order","granularitySelectConfigWithLang","map","opt","_objectSpread","label","instrumentSelectConfigWithDivision","instrument","setInstrument","granularity","setGranularity","createElement","Fragment","className","mobileFullWidth","activeTab","handleClick","e","currentTarget","value","items","labelCallback","options","searchPlaceholder","selectLabel","selectedOption","setSelectedOption","val","id"],"sources":["../../../src/CrowdViewWidget/Main.tsx"],"sourcesContent":["import {\n cn,\n Select,\n Size,\n Tabs,\n useLayoutProvider,\n} from '@oanda/labs-widget-common';\nimport { useLocale } from '@oanda/mono-i18n';\nimport React, { useEffect, useMemo, useState } from 'react';\n\nimport type { Granularity } from '../gql/types/graphql';\nimport { BookType } from '../gql/types/graphql';\nimport { ChartWithData, Legend } from './components';\nimport { granularitySelectConfig, navigationConfig } from './selectConfig';\nimport type { MainProps } from './types';\nimport type { InstrumentId } from './types/instruments';\nimport { getInstrumentConfigForDivision } from './utils/instrumentUtils';\n\nconst Main = ({ division }: MainProps) => {\n const { lang } = useLocale();\n const { size } = useLayoutProvider();\n const isDesktop = size === Size.DESKTOP;\n\n const [bookType, setBookType] = useState(BookType.Order);\n\n const granularitySelectConfigWithLang = useMemo(\n () =>\n granularitySelectConfig.map((opt) => ({\n ...opt,\n label: lang(opt.label),\n })),\n [lang]\n );\n\n const instrumentSelectConfigWithDivision =\n getInstrumentConfigForDivision(division);\n const [instrument, setInstrument] = useState(\n instrumentSelectConfigWithDivision[0]\n );\n\n const [granularity, setGranularity] = useState(\n granularitySelectConfigWithLang[0]\n );\n\n useEffect(() => {\n setGranularity(granularitySelectConfigWithLang[0]);\n }, [granularitySelectConfigWithLang]);\n\n return (\n <>\n {size && (\n <div\n className=\"lw-text-sm lw-tracking-normal\"\n data-testid=\"crowd-view-widget\"\n >\n <Tabs\n mobileFullWidth\n activeTab={bookType}\n handleClick={(e) => setBookType(e.currentTarget.value as BookType)}\n items={navigationConfig}\n labelCallback={lang}\n />\n <div className=\"lw-mb-6 lw-mt-12 lw-flex\">\n <div\n className={cn('lw-mr-2', {\n 'lw-w-full': !isDesktop,\n 'lw-w-[280px]': isDesktop,\n })}\n >\n <Select\n options={instrumentSelectConfigWithDivision}\n searchPlaceholder={lang('search')}\n selectLabel={lang('instrument')}\n selectedOption={instrument}\n setSelectedOption={(val) =>\n setInstrument(val as { id: InstrumentId; label: string })\n }\n />\n </div>\n <div\n className={cn({\n 'lw-w-full': !isDesktop,\n 'lw-w-[280px]': isDesktop,\n })}\n >\n <Select\n options={granularitySelectConfigWithLang}\n searchPlaceholder={lang('search')}\n selectLabel={lang('granularity')}\n selectedOption={granularity}\n setSelectedOption={(val) =>\n setGranularity(val as { id: Granularity; label: string })\n }\n />\n </div>\n </div>\n\n <ChartWithData\n bookType={bookType}\n division={division}\n granularity={granularity.id}\n instrument={instrument.id}\n />\n\n <Legend />\n </div>\n )}\n </>\n );\n};\n\nexport { Main };\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"Main.js","names":["cn","Select","Size","Tabs","useLayoutProvider","useLocale","React","useEffect","useMemo","useState","BookType","ChartWithData","Legend","granularitySelectConfig","navigationConfig","getInstrumentConfigForDivision","Main","_ref","division","lang","size","isDesktop","DESKTOP","bookType","setBookType","Order","granularitySelectConfigWithLang","map","opt","_objectSpread","label","instrumentSelectConfigWithDivision","instrument","setInstrument","granularity","setGranularity","createElement","Fragment","className","mobileFullWidth","activeTab","handleClick","e","currentTarget","value","items","labelCallback","options","searchPlaceholder","selectLabel","selectedOption","setSelectedOption","val","id"],"sources":["../../../src/CrowdViewWidget/Main.tsx"],"sourcesContent":["import {\n cn,\n Select,\n Size,\n Tabs,\n useLayoutProvider,\n} from '@oanda/labs-widget-common';\nimport { useLocale } from '@oanda/mono-i18n';\nimport React, { useEffect, useMemo, useState } from 'react';\n\nimport type { Granularity } from '../gql/types/graphql';\nimport { BookType } from '../gql/types/graphql';\nimport { ChartWithData, Legend } from './components';\nimport { granularitySelectConfig, navigationConfig } from './selectConfig';\nimport type { InstrumentId, MainProps } from './types';\nimport { getInstrumentConfigForDivision } from './utils/instrumentUtils';\n\nconst Main = ({ division }: MainProps) => {\n const { lang } = useLocale();\n const { size } = useLayoutProvider();\n const isDesktop = size === Size.DESKTOP;\n\n const [bookType, setBookType] = useState(BookType.Order);\n\n const granularitySelectConfigWithLang = useMemo(\n () =>\n granularitySelectConfig.map((opt) => ({\n ...opt,\n label: lang(opt.label),\n })),\n [lang]\n );\n\n const instrumentSelectConfigWithDivision =\n getInstrumentConfigForDivision(division);\n const [instrument, setInstrument] = useState(\n instrumentSelectConfigWithDivision[0]\n );\n\n const [granularity, setGranularity] = useState(\n granularitySelectConfigWithLang[0]\n );\n\n useEffect(() => {\n setGranularity(granularitySelectConfigWithLang[0]);\n }, [granularitySelectConfigWithLang]);\n\n return (\n <>\n {size && (\n <div\n className=\"lw-text-sm lw-tracking-normal\"\n data-testid=\"crowd-view-widget\"\n >\n <Tabs\n mobileFullWidth\n activeTab={bookType}\n handleClick={(e) => setBookType(e.currentTarget.value as BookType)}\n items={navigationConfig}\n labelCallback={lang}\n />\n <div className=\"lw-mb-6 lw-mt-12 lw-flex\">\n <div\n className={cn('lw-mr-2', {\n 'lw-w-full': !isDesktop,\n 'lw-w-[280px]': isDesktop,\n })}\n >\n <Select\n options={instrumentSelectConfigWithDivision}\n searchPlaceholder={lang('search')}\n selectLabel={lang('instrument')}\n selectedOption={instrument}\n setSelectedOption={(val) =>\n setInstrument(val as { id: InstrumentId; label: string })\n }\n />\n </div>\n <div\n className={cn({\n 'lw-w-full': !isDesktop,\n 'lw-w-[280px]': isDesktop,\n })}\n >\n <Select\n options={granularitySelectConfigWithLang}\n searchPlaceholder={lang('search')}\n selectLabel={lang('granularity')}\n selectedOption={granularity}\n setSelectedOption={(val) =>\n setGranularity(val as { id: Granularity; label: string })\n }\n />\n </div>\n </div>\n\n <ChartWithData\n bookType={bookType}\n division={division}\n granularity={granularity.id}\n instrument={instrument.id}\n />\n\n <Legend bookType={bookType} />\n </div>\n )}\n </>\n );\n};\n\nexport { Main };\n"],"mappings":";;;;;AAAA,SACEA,EAAE,EACFC,MAAM,EACNC,IAAI,EACJC,IAAI,EACJC,iBAAiB,QACZ,2BAA2B;AAClC,SAASC,SAAS,QAAQ,kBAAkB;AAC5C,OAAOC,KAAK,IAAIC,SAAS,EAAEC,OAAO,EAAEC,QAAQ,QAAQ,OAAO;AAG3D,SAASC,QAAQ,QAAQ,sBAAsB;AAC/C,SAASC,aAAa,EAAEC,MAAM,QAAQ,cAAc;AACpD,SAASC,uBAAuB,EAAEC,gBAAgB,QAAQ,gBAAgB;AAE1E,SAASC,8BAA8B,QAAQ,yBAAyB;AAExE,MAAMC,IAAI,GAAGC,IAAA,IAA6B;EAAA,IAA5B;IAAEC;EAAoB,CAAC,GAAAD,IAAA;EACnC,MAAM;IAAEE;EAAK,CAAC,GAAGd,SAAS,CAAC,CAAC;EAC5B,MAAM;IAAEe;EAAK,CAAC,GAAGhB,iBAAiB,CAAC,CAAC;EACpC,MAAMiB,SAAS,GAAGD,IAAI,KAAKlB,IAAI,CAACoB,OAAO;EAEvC,MAAM,CAACC,QAAQ,EAAEC,WAAW,CAAC,GAAGf,QAAQ,CAACC,QAAQ,CAACe,KAAK,CAAC;EAExD,MAAMC,+BAA+B,GAAGlB,OAAO,CAC7C,MACEK,uBAAuB,CAACc,GAAG,CAAEC,GAAG,IAAAC,aAAA,CAAAA,aAAA,KAC3BD,GAAG;IACNE,KAAK,EAAEX,IAAI,CAACS,GAAG,CAACE,KAAK;EAAC,EACtB,CAAC,EACL,CAACX,IAAI,CACP,CAAC;EAED,MAAMY,kCAAkC,GACtChB,8BAA8B,CAACG,QAAQ,CAAC;EAC1C,MAAM,CAACc,UAAU,EAAEC,aAAa,CAAC,GAAGxB,QAAQ,CAC1CsB,kCAAkC,CAAC,CAAC,CACtC,CAAC;EAED,MAAM,CAACG,WAAW,EAAEC,cAAc,CAAC,GAAG1B,QAAQ,CAC5CiB,+BAA+B,CAAC,CAAC,CACnC,CAAC;EAEDnB,SAAS,CAAC,MAAM;IACd4B,cAAc,CAACT,+BAA+B,CAAC,CAAC,CAAC,CAAC;EACpD,CAAC,EAAE,CAACA,+BAA+B,CAAC,CAAC;EAErC,OACEpB,KAAA,CAAA8B,aAAA,CAAA9B,KAAA,CAAA+B,QAAA,QACGjB,IAAI,IACHd,KAAA,CAAA8B,aAAA;IACEE,SAAS,EAAC,+BAA+B;IACzC,eAAY;EAAmB,GAE/BhC,KAAA,CAAA8B,aAAA,CAACjC,IAAI;IACHoC,eAAe;IACfC,SAAS,EAAEjB,QAAS;IACpBkB,WAAW,EAAGC,CAAC,IAAKlB,WAAW,CAACkB,CAAC,CAACC,aAAa,CAACC,KAAiB,CAAE;IACnEC,KAAK,EAAE/B,gBAAiB;IACxBgC,aAAa,EAAE3B;EAAK,CACrB,CAAC,EACFb,KAAA,CAAA8B,aAAA;IAAKE,SAAS,EAAC;EAA0B,GACvChC,KAAA,CAAA8B,aAAA;IACEE,SAAS,EAAEtC,EAAE,CAAC,SAAS,EAAE;MACvB,WAAW,EAAE,CAACqB,SAAS;MACvB,cAAc,EAAEA;IAClB,CAAC;EAAE,GAEHf,KAAA,CAAA8B,aAAA,CAACnC,MAAM;IACL8C,OAAO,EAAEhB,kCAAmC;IAC5CiB,iBAAiB,EAAE7B,IAAI,CAAC,QAAQ,CAAE;IAClC8B,WAAW,EAAE9B,IAAI,CAAC,YAAY,CAAE;IAChC+B,cAAc,EAAElB,UAAW;IAC3BmB,iBAAiB,EAAGC,GAAG,IACrBnB,aAAa,CAACmB,GAA0C;EACzD,CACF,CACE,CAAC,EACN9C,KAAA,CAAA8B,aAAA;IACEE,SAAS,EAAEtC,EAAE,CAAC;MACZ,WAAW,EAAE,CAACqB,SAAS;MACvB,cAAc,EAAEA;IAClB,CAAC;EAAE,GAEHf,KAAA,CAAA8B,aAAA,CAACnC,MAAM;IACL8C,OAAO,EAAErB,+BAAgC;IACzCsB,iBAAiB,EAAE7B,IAAI,CAAC,QAAQ,CAAE;IAClC8B,WAAW,EAAE9B,IAAI,CAAC,aAAa,CAAE;IACjC+B,cAAc,EAAEhB,WAAY;IAC5BiB,iBAAiB,EAAGC,GAAG,IACrBjB,cAAc,CAACiB,GAAyC;EACzD,CACF,CACE,CACF,CAAC,EAEN9C,KAAA,CAAA8B,aAAA,CAACzB,aAAa;IACZY,QAAQ,EAAEA,QAAS;IACnBL,QAAQ,EAAEA,QAAS;IACnBgB,WAAW,EAAEA,WAAW,CAACmB,EAAG;IAC5BrB,UAAU,EAAEA,UAAU,CAACqB;EAAG,CAC3B,CAAC,EAEF/C,KAAA,CAAA8B,aAAA,CAACxB,MAAM;IAACW,QAAQ,EAAEA;EAAS,CAAE,CAC1B,CAEP,CAAC;AAEP,CAAC;AAED,SAASP,IAAI","ignoreList":[]}
@@ -12,7 +12,9 @@ export const getOption = (_ref, isDark, labelCallback) => {
12
12
  candlesSeriesData,
13
13
  orderPositionBooks,
14
14
  bucketWidth,
15
- buckets
15
+ buckets,
16
+ precision,
17
+ bookType
16
18
  } = _ref;
17
19
  let selectedPrice;
18
20
  const visibleXAxisData = xAxisData.slice(xAxisData.length * CHART_CONFIG.INITIAL_START_ZOOM / 100, xAxisData.length * CHART_CONFIG.INITIAL_END_ZOOM / 100);
@@ -46,7 +48,7 @@ export const getOption = (_ref, isDark, labelCallback) => {
46
48
  formatter: params => {
47
49
  if (params.axisDimension === 'y') {
48
50
  selectedPrice = Number(params.value);
49
- return Number(params.value).toFixed(5);
51
+ return Number(params.value).toFixed(precision);
50
52
  }
51
53
  if (params.axisDimension === 'x') {
52
54
  const date = new Date(params.value);
@@ -62,7 +64,15 @@ export const getOption = (_ref, isDark, labelCallback) => {
62
64
  }
63
65
  },
64
66
  confine: true,
65
- formatter: params => getTooltipFormatter(params, buckets, bucketWidth, selectedPrice, labelCallback)
67
+ formatter: params => getTooltipFormatter({
68
+ params,
69
+ buckets,
70
+ bucketWidth,
71
+ selectedPrice,
72
+ labelCallback,
73
+ precision,
74
+ bookType
75
+ })
66
76
  },
67
77
  xAxis: {
68
78
  type: 'category',
@@ -90,7 +100,8 @@ export const getOption = (_ref, isDark, labelCallback) => {
90
100
  },
91
101
  axisLabel: {
92
102
  showMaxLabel: false,
93
- showMinLabel: false
103
+ showMinLabel: false,
104
+ formatter: value => value.toFixed(precision - 1)
94
105
  }
95
106
  },
96
107
  series: [{
@@ -128,7 +139,7 @@ export const getOption = (_ref, isDark, labelCallback) => {
128
139
  shape: {
129
140
  x: start[0] - rectWidth / 2,
130
141
  y: start[1] - rectHeight,
131
- width: rectWidth,
142
+ width: rectWidth + 1,
132
143
  height: rectHeight
133
144
  },
134
145
  style: {
@@ -1 +1 @@
1
- {"version":3,"file":"chartOptions.js","names":["colorPalette","getGridLines","getLineCommons","CHART_CONFIG","formatXAxisLabel","getLabelData","getRectColor","getTooltipFormatter","isDifferenceGreaterThanTwoWeeks","getOption","_ref","isDark","labelCallback","xAxisData","candlesSeriesData","orderPositionBooks","bucketWidth","buckets","selectedPrice","visibleXAxisData","slice","length","INITIAL_START_ZOOM","INITIAL_END_ZOOM","isGreaterThanTwoWeeks","labelsData","gridLines","chartWidth","WIDTH","chartHeight","HEIGHT","xLabelsSize","X_LABEL_SIZE","yLabelSize","Y_LABEL_SIZE_DESKTOP","bottomLeftBox","animation","dataZoom","type","xAxisIndex","start","end","tooltip","trigger","axisPointer","axis","label","formatter","params","axisDimension","Number","value","toFixed","date","Date","toLocaleString","undefined","hour","minute","day","month","confine","xAxis","data","splitNumber","axisTick","show","axisLabel","padding","margin","yAxis","position","min","val","max","axisLine","showMaxLabel","showMinLabel","series","id","itemStyle","color","raspberryLight","color0","bottleGreenLight","markPoint","symbol","symbolSize","name","silent","clip","renderItem","_params","api","xVal","bucketIndex","metaValues","rectWidth","rectHeight","size","items","map","_ref2","price","sentiment","coord","shape","x","y","width","height","style","fill","emphasisDisabled","children","grid","top","left","right","concat","bottom","graphic","_objectSpread","x1","y1","x2","y2"],"sources":["../../../../../src/CrowdViewWidget/components/Chart/chartOptions.ts"],"sourcesContent":["import {\n colorPalette,\n getGridLines,\n getLineCommons,\n} from '@oanda/labs-widget-common';\n\nimport { CHART_CONFIG } from '../../constants';\nimport type { GetOptionType } from './types';\nimport {\n formatXAxisLabel,\n getLabelData,\n getRectColor,\n getTooltipFormatter,\n isDifferenceGreaterThanTwoWeeks,\n} from './utils/chartUtils';\n\n// @ts-expect-error\nexport const getOption: GetOptionType = (\n { xAxisData, candlesSeriesData, orderPositionBooks, bucketWidth, buckets },\n isDark,\n labelCallback\n) => {\n let selectedPrice: number;\n const visibleXAxisData = xAxisData.slice(\n (xAxisData.length * CHART_CONFIG.INITIAL_START_ZOOM) / 100,\n (xAxisData.length * CHART_CONFIG.INITIAL_END_ZOOM) / 100\n );\n\n const isGreaterThanTwoWeeks = isDifferenceGreaterThanTwoWeeks(\n visibleXAxisData[0],\n visibleXAxisData[visibleXAxisData.length - 1]\n );\n\n const labelsData = getLabelData({\n xAxisData,\n isGreaterThanTwoWeeks,\n });\n\n const gridLines = getGridLines({\n isDark,\n chartWidth: CHART_CONFIG.WIDTH,\n chartHeight: CHART_CONFIG.HEIGHT,\n xLabelsSize: CHART_CONFIG.X_LABEL_SIZE,\n yLabelSize: CHART_CONFIG.Y_LABEL_SIZE_DESKTOP,\n bottomLeftBox: false,\n });\n\n return {\n animation: false,\n dataZoom: [\n {\n type: 'inside',\n xAxisIndex: 0,\n start: CHART_CONFIG.INITIAL_START_ZOOM,\n end: CHART_CONFIG.INITIAL_END_ZOOM,\n },\n ],\n tooltip: {\n trigger: 'axis',\n axisPointer: {\n type: 'cross',\n axis: 'x',\n label: {\n formatter: (params) => {\n if (params.axisDimension === 'y') {\n selectedPrice = Number(params.value);\n return Number(params.value).toFixed(5);\n }\n\n if (params.axisDimension === 'x') {\n const date = new Date(params.value as string);\n return date.toLocaleString(undefined, {\n hour: '2-digit',\n minute: '2-digit',\n day: 'numeric',\n month: 'short',\n });\n }\n\n return null;\n },\n },\n },\n confine: true,\n formatter: (params) =>\n getTooltipFormatter(\n params,\n buckets,\n bucketWidth,\n selectedPrice,\n labelCallback\n ),\n },\n xAxis: {\n type: 'category',\n data: xAxisData,\n splitNumber: 1,\n axisTick: {\n show: false,\n },\n axisLabel: {\n padding: [8, 16, 8, 16],\n margin: 0,\n formatter: (value) => formatXAxisLabel(value, isGreaterThanTwoWeeks),\n },\n },\n yAxis: {\n type: 'value',\n position: 'right',\n min: (val) => val.min - bucketWidth * 2,\n max: (val) => val.max + bucketWidth * 2,\n axisLine: { show: false },\n axisTick: { show: false },\n axisLabel: {\n showMaxLabel: false,\n showMinLabel: false,\n },\n },\n series: [\n {\n type: 'candlestick',\n id: 'candlestick',\n data: candlesSeriesData,\n itemStyle: {\n color: colorPalette.raspberryLight,\n color0: colorPalette.bottleGreenLight,\n },\n markPoint: {\n symbol: 'circle',\n symbolSize: 0,\n data: labelsData,\n },\n },\n {\n type: 'custom',\n name: 'heatmap',\n id: 'heatmap',\n silent: true,\n clip: true,\n renderItem: (_params, api) => {\n const xVal = api.value(0);\n const bucketIndex = api.value(2) as number;\n const metaValues = buckets[bucketIndex];\n\n const [rectWidth, rectHeight] = api.size!([\n 0,\n bucketWidth,\n ]) as number[];\n\n const items = metaValues.map(\n ({ price, sentiment }: { price: number; sentiment: number }) => {\n const start = api.coord([xVal, price]);\n\n return {\n type: 'rect',\n shape: {\n x: start[0] - rectWidth / 2,\n y: start[1] - rectHeight,\n width: rectWidth,\n height: rectHeight,\n },\n style: {\n fill: getRectColor(sentiment),\n },\n silent: true,\n emphasisDisabled: true,\n };\n }\n );\n\n return {\n type: 'group',\n children: items,\n silent: true,\n emphasisDisabled: true,\n };\n },\n data: orderPositionBooks,\n },\n ],\n grid: [\n {\n name: 'main-grid',\n top: '0px',\n left: '0px',\n right: `${CHART_CONFIG.Y_LABEL_SIZE_DESKTOP}px`,\n bottom: `${CHART_CONFIG.X_LABEL_SIZE}px`,\n },\n ],\n graphic: [\n ...gridLines,\n {\n ...getLineCommons(isDark as boolean),\n top: 0,\n right: 0,\n shape: {\n x1: 0,\n y1: 0,\n x2: 0,\n y2: 0,\n },\n },\n ],\n };\n};\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"chartOptions.js","names":["colorPalette","getGridLines","getLineCommons","CHART_CONFIG","formatXAxisLabel","getLabelData","getRectColor","getTooltipFormatter","isDifferenceGreaterThanTwoWeeks","getOption","_ref","isDark","labelCallback","xAxisData","candlesSeriesData","orderPositionBooks","bucketWidth","buckets","precision","bookType","selectedPrice","visibleXAxisData","slice","length","INITIAL_START_ZOOM","INITIAL_END_ZOOM","isGreaterThanTwoWeeks","labelsData","gridLines","chartWidth","WIDTH","chartHeight","HEIGHT","xLabelsSize","X_LABEL_SIZE","yLabelSize","Y_LABEL_SIZE_DESKTOP","bottomLeftBox","animation","dataZoom","type","xAxisIndex","start","end","tooltip","trigger","axisPointer","axis","label","formatter","params","axisDimension","Number","value","toFixed","date","Date","toLocaleString","undefined","hour","minute","day","month","confine","xAxis","data","splitNumber","axisTick","show","axisLabel","padding","margin","yAxis","position","min","val","max","axisLine","showMaxLabel","showMinLabel","series","id","itemStyle","color","raspberryLight","color0","bottleGreenLight","markPoint","symbol","symbolSize","name","silent","clip","renderItem","_params","api","xVal","bucketIndex","metaValues","rectWidth","rectHeight","size","items","map","_ref2","price","sentiment","coord","shape","x","y","width","height","style","fill","emphasisDisabled","children","grid","top","left","right","concat","bottom","graphic","_objectSpread","x1","y1","x2","y2"],"sources":["../../../../../src/CrowdViewWidget/components/Chart/chartOptions.ts"],"sourcesContent":["import {\n colorPalette,\n getGridLines,\n getLineCommons,\n} from '@oanda/labs-widget-common';\n\nimport { CHART_CONFIG } from '../../constants';\nimport type { Bucket, GetOptionType } from './types';\nimport {\n formatXAxisLabel,\n getLabelData,\n getRectColor,\n getTooltipFormatter,\n isDifferenceGreaterThanTwoWeeks,\n} from './utils/chartUtils';\n\n// @ts-expect-error\nexport const getOption: GetOptionType = (\n {\n xAxisData,\n candlesSeriesData,\n orderPositionBooks,\n bucketWidth,\n buckets,\n precision,\n bookType,\n },\n isDark,\n labelCallback\n) => {\n let selectedPrice: number;\n const visibleXAxisData = xAxisData.slice(\n (xAxisData.length * CHART_CONFIG.INITIAL_START_ZOOM) / 100,\n (xAxisData.length * CHART_CONFIG.INITIAL_END_ZOOM) / 100\n );\n\n const isGreaterThanTwoWeeks = isDifferenceGreaterThanTwoWeeks(\n visibleXAxisData[0],\n visibleXAxisData[visibleXAxisData.length - 1]\n );\n\n const labelsData = getLabelData({\n xAxisData,\n isGreaterThanTwoWeeks,\n });\n\n const gridLines = getGridLines({\n isDark,\n chartWidth: CHART_CONFIG.WIDTH,\n chartHeight: CHART_CONFIG.HEIGHT,\n xLabelsSize: CHART_CONFIG.X_LABEL_SIZE,\n yLabelSize: CHART_CONFIG.Y_LABEL_SIZE_DESKTOP,\n bottomLeftBox: false,\n });\n\n return {\n animation: false,\n dataZoom: [\n {\n type: 'inside',\n xAxisIndex: 0,\n start: CHART_CONFIG.INITIAL_START_ZOOM,\n end: CHART_CONFIG.INITIAL_END_ZOOM,\n },\n ],\n tooltip: {\n trigger: 'axis',\n axisPointer: {\n type: 'cross',\n axis: 'x',\n label: {\n formatter: (params) => {\n if (params.axisDimension === 'y') {\n selectedPrice = Number(params.value);\n return Number(params.value).toFixed(precision);\n }\n\n if (params.axisDimension === 'x') {\n const date = new Date(params.value as string);\n return date.toLocaleString(undefined, {\n hour: '2-digit',\n minute: '2-digit',\n day: 'numeric',\n month: 'short',\n });\n }\n\n return null;\n },\n },\n },\n confine: true,\n formatter: (params) =>\n getTooltipFormatter({\n params,\n buckets,\n bucketWidth,\n selectedPrice,\n labelCallback,\n precision,\n bookType,\n }),\n },\n xAxis: {\n type: 'category',\n data: xAxisData,\n splitNumber: 1,\n axisTick: {\n show: false,\n },\n axisLabel: {\n padding: [8, 16, 8, 16],\n margin: 0,\n formatter: (value) => formatXAxisLabel(value, isGreaterThanTwoWeeks),\n },\n },\n yAxis: {\n type: 'value',\n position: 'right',\n min: (val) => val.min - bucketWidth * 2,\n max: (val) => val.max + bucketWidth * 2,\n axisLine: { show: false },\n axisTick: { show: false },\n axisLabel: {\n showMaxLabel: false,\n showMinLabel: false,\n formatter: (value: number) => value.toFixed(precision - 1),\n },\n },\n series: [\n {\n type: 'candlestick',\n id: 'candlestick',\n data: candlesSeriesData,\n itemStyle: {\n color: colorPalette.raspberryLight,\n color0: colorPalette.bottleGreenLight,\n },\n\n markPoint: {\n symbol: 'circle',\n symbolSize: 0,\n data: labelsData,\n },\n },\n {\n type: 'custom',\n name: 'heatmap',\n id: 'heatmap',\n silent: true,\n clip: true,\n renderItem: (_params, api) => {\n const xVal = api.value(0);\n const bucketIndex = api.value(2) as number;\n const metaValues = buckets[bucketIndex];\n\n const [rectWidth, rectHeight] = api.size!([\n 0,\n bucketWidth,\n ]) as number[];\n\n const items = metaValues.map(({ price, sentiment }: Bucket) => {\n const start = api.coord([xVal, price]);\n\n return {\n type: 'rect',\n shape: {\n x: start[0] - rectWidth / 2,\n y: start[1] - rectHeight,\n width: rectWidth + 1,\n height: rectHeight,\n },\n style: {\n fill: getRectColor(sentiment),\n },\n silent: true,\n emphasisDisabled: true,\n };\n });\n\n return {\n type: 'group',\n children: items,\n silent: true,\n emphasisDisabled: true,\n };\n },\n data: orderPositionBooks,\n },\n ],\n grid: [\n {\n name: 'main-grid',\n top: '0px',\n left: '0px',\n right: `${CHART_CONFIG.Y_LABEL_SIZE_DESKTOP}px`,\n bottom: `${CHART_CONFIG.X_LABEL_SIZE}px`,\n },\n ],\n graphic: [\n ...gridLines,\n {\n ...getLineCommons(isDark as boolean),\n top: 0,\n right: 0,\n shape: {\n x1: 0,\n y1: 0,\n x2: 0,\n y2: 0,\n },\n },\n ],\n };\n};\n"],"mappings":"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","ignoreList":[]}
@@ -3,5 +3,5 @@ export * from './chartOptions';
3
3
  export * from './ChartWithData';
4
4
  export * from './types';
5
5
  export * from './useCrowdViewData';
6
- export * from './utils/chartUtils';
6
+ export * from './utils';
7
7
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":[],"sources":["../../../../../src/CrowdViewWidget/components/Chart/index.ts"],"sourcesContent":["export * from './Chart';\nexport * from './chartOptions';\nexport * from './ChartWithData';\nexport * from './types';\nexport * from './useCrowdViewData';\nexport * from './utils/chartUtils';\n"],"mappings":"AAAA,cAAc,SAAS;AACvB,cAAc,gBAAgB;AAC9B,cAAc,iBAAiB;AAC/B,cAAc,SAAS;AACvB,cAAc,oBAAoB;AAClC,cAAc,oBAAoB","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":[],"sources":["../../../../../src/CrowdViewWidget/components/Chart/index.ts"],"sourcesContent":["export * from './Chart';\nexport * from './chartOptions';\nexport * from './ChartWithData';\nexport * from './types';\nexport * from './useCrowdViewData';\nexport * from './utils';\n"],"mappings":"AAAA,cAAc,SAAS;AACvB,cAAc,gBAAgB;AAC9B,cAAc,iBAAiB;AAC/B,cAAc,SAAS;AACvB,cAAc,oBAAoB;AAClC,cAAc,SAAS","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","names":[],"sources":["../../../../../src/CrowdViewWidget/components/Chart/types.ts"],"sourcesContent":["import type { EChartsOption } from 'echarts';\n\nimport type {\n BookType,\n Division,\n Granularity,\n} from '../../../gql/types/graphql';\n\nexport interface UseCrowdViewDataProps {\n instrument: string;\n bookType: BookType;\n division: Division;\n granularity: Granularity;\n}\n\ninterface CrowdViewData {\n xAxisData: string[];\n // [open, close, low, high]\n candlesSeriesData: [number, number, number, number][];\n // [time, price, index]\n orderPositionBooks: ([string, number, number] | null)[];\n bucketWidth: number;\n buckets: { price: number; sentiment: number }[][];\n}\n\nexport interface UseCrowdViewDataReturn {\n data: CrowdViewData | null;\n loading: boolean;\n error: boolean;\n}\n\nexport type GetOptionType = (\n props: CrowdViewData,\n isDark: boolean,\n labelCallback: (key: string, params?: Record<string, unknown>) => string\n) => EChartsOption;\n\nexport interface ChartProps {\n data: CrowdViewData;\n}\n\nexport interface ChartWithDataProps {\n bookType: BookType;\n division: Division;\n instrument: string;\n granularity: Granularity;\n}\n\nexport interface GetLabelsDataProps {\n xAxisData: string[];\n isGreaterThanTwoWeeks: boolean;\n}\n"],"mappings":"","ignoreList":[]}
1
+ {"version":3,"file":"types.js","names":[],"sources":["../../../../../src/CrowdViewWidget/components/Chart/types.ts"],"sourcesContent":["import type { EChartsOption } from 'echarts';\n\nimport type {\n BookType,\n Division,\n Granularity,\n} from '../../../gql/types/graphql';\nimport type { InstrumentId } from '../../types';\n\nexport interface Bucket {\n price: number;\n sentiment: number;\n}\n\nexport interface UseCrowdViewDataProps {\n instrument: InstrumentId;\n bookType: BookType;\n division: Division;\n granularity: Granularity;\n}\n\ninterface CrowdViewData {\n xAxisData: string[];\n // [open, close, low, high]\n candlesSeriesData: [number, number, number, number][];\n // [time, price, index]\n orderPositionBooks: [string, number | null, number][];\n bucketWidth: number;\n buckets: Bucket[][];\n precision: number;\n bookType: BookType;\n}\n\nexport interface UseCrowdViewDataReturn {\n data: CrowdViewData | null;\n loading: boolean;\n error: boolean;\n}\n\nexport type GetOptionType = (\n props: CrowdViewData,\n isDark: boolean,\n labelCallback: (key: string, params?: Record<string, unknown>) => string\n) => EChartsOption;\n\nexport interface ChartProps {\n data: CrowdViewData;\n}\n\nexport interface ChartWithDataProps {\n bookType: BookType;\n division: Division;\n instrument: InstrumentId;\n granularity: Granularity;\n}\n\nexport interface GetLabelsDataProps {\n xAxisData: string[];\n isGreaterThanTwoWeeks: boolean;\n}\n"],"mappings":"","ignoreList":[]}