@oanda/labs-order-book-widget 1.0.20 → 1.0.21

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,78 @@
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.21 (2023-10-10)
7
+
8
+
9
+
10
+ ## 1.0.20 (2023-10-06)
11
+
12
+
13
+
14
+ ## 1.0.19 (2023-10-06)
15
+
16
+
17
+
18
+ ## 1.0.18 (2023-10-05)
19
+
20
+
21
+
22
+ ## 1.0.17 (2023-10-04)
23
+
24
+
25
+
26
+ ## 1.0.16 (2023-10-04)
27
+
28
+
29
+
30
+ ## 1.0.15 (2023-10-04)
31
+
32
+
33
+
34
+ ## 1.0.14 (2023-10-03)
35
+
36
+
37
+
38
+ ## 1.0.13 (2023-10-03)
39
+
40
+
41
+
42
+ ## 1.0.12 (2023-10-03)
43
+
44
+
45
+
46
+ ## 1.0.11 (2023-10-02)
47
+
48
+
49
+
50
+ ## 1.0.10 (2023-09-29)
51
+
52
+
53
+
54
+ ## 1.0.9 (2023-09-28)
55
+
56
+
57
+
58
+ ## 1.0.8 (2023-09-27)
59
+
60
+
61
+
62
+ ## 1.0.7 (2023-09-26)
63
+
64
+
65
+
66
+ ## 1.0.6 (2023-09-21)
67
+
68
+
69
+
70
+ ## 1.0.5 (2023-09-13)
71
+
72
+ **Note:** Version bump only for package @oanda/labs-order-book-widget
73
+
74
+
75
+
76
+
77
+
6
78
  ## 1.0.20 (2023-10-06)
7
79
 
8
80
 
@@ -27,9 +27,9 @@ const Main = _ref => {
27
27
  setError(undefined);
28
28
  (0, _utils.getData)(apiUrl, instrument, division, dataType).then(result => {
29
29
  setIsLoading(false);
30
- if (dataType === _types.DataType.Order && (result === null || result === void 0 ? void 0 : result.orderBooks.length) > 0) {
30
+ if (dataType === _types.DataType.Order && result?.orderBooks.length > 0) {
31
31
  setData(result.orderBooks);
32
- } else if (dataType === _types.DataType.Position && (result === null || result === void 0 ? void 0 : result.positionBooks.length) > 0) {
32
+ } else if (dataType === _types.DataType.Position && result?.positionBooks.length > 0) {
33
33
  setData(result.positionBooks);
34
34
  } else {
35
35
  setData(undefined);
@@ -1 +1 @@
1
- {"version":3,"file":"Main.js","names":["_react","_interopRequireWildcard","require","_labsWidgetCommon","_Chart","_types","_utils","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","obj","__esModule","default","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","Main","_ref","apiUrl","instrument","division","isLoading","setIsLoading","useState","error","setError","undefined","dataType","setDataType","DataType","Order","data","setData","useEffect","getData","then","result","orderBooks","length","Position","positionBooks","catch","err","JSON","stringify","isTypeOrder","createElement","className","Button","variant","ButtonVariant","primary","secondary","onClick","ChartError","Spinner","size","SpinnerSize","lg","Chart","exports"],"sources":["../../../src/OrderBookWidget/Main.tsx"],"sourcesContent":["import React, { useState, useEffect } from 'react';\nimport {\n Button, ButtonVariant, ChartError, Spinner, SpinnerSize,\n} from '@oanda/labs-widget-common';\nimport { Chart } from './components/Chart/Chart';\nimport { DataType, MainProps, OrderBookData } from './types';\nimport { getData } from './utils';\n\nconst Main = ({\n apiUrl,\n instrument,\n division,\n}: MainProps) => {\n const [isLoading, setIsLoading] = useState(false);\n const [error, setError] = useState<string | undefined>(undefined);\n const [dataType, setDataType] = useState(DataType.Order);\n const [data, setData] = useState<OrderBookData[] | undefined>(undefined);\n\n useEffect(() => {\n setIsLoading(true);\n setData(undefined);\n setError(undefined);\n\n getData(apiUrl, instrument, division, dataType)\n .then((result) => {\n setIsLoading(false);\n if (dataType === DataType.Order && result?.orderBooks.length > 0) {\n setData(result.orderBooks);\n } else if (dataType === DataType.Position && result?.positionBooks.length > 0) {\n setData(result.positionBooks);\n } else {\n setData(undefined);\n }\n }).catch((err) => {\n setIsLoading(false);\n setError(JSON.stringify(err));\n });\n }, [dataType, apiUrl, instrument, division]);\n\n const isTypeOrder = dataType === DataType.Order;\n\n return (\n <div data-testid=\"order-book-widget\" className=\"lw-border lw-border-solid lw-border-grey lw-p-4 lw-text-sm lw-text-black\">\n <div className=\"lw-flex lw-gap-2\">\n <Button\n variant={isTypeOrder ? ButtonVariant.primary : ButtonVariant.secondary}\n onClick={() => setDataType(DataType.Order)}\n >\n Order Book\n </Button>\n <Button\n variant={isTypeOrder ? ButtonVariant.secondary : ButtonVariant.primary}\n onClick={() => setDataType(DataType.Position)}\n >\n Position Book\n </Button>\n </div>\n {/* @todo: chart height */}\n <div className=\"lw-relative lw-h-[600px] lw-w-full\">\n {error && (\n <div className=\"lw-absolute lw-left-0 lw-top-0 lw-flex lw-h-full lw-w-full lw-items-center lw-justify-center lw-bg-lightGrey/[0.4]\">\n <ChartError />\n </div>\n )}\n {isLoading && (\n <div className=\"lw-absolute lw-left-0 lw-top-0 lw-flex lw-h-full lw-w-full lw-items-center lw-justify-center lw-bg-lightGrey/[0.4]\">\n <Spinner size={SpinnerSize.lg} />\n </div>\n )}\n {data && (\n <div className=\"lw-absolute lw-left-0 lw-top-0 lw-flex lw-h-full lw-w-full\">\n <Chart data={data[data.length - 1]} isTypeOrder={isTypeOrder} />\n </div>\n )}\n </div>\n </div>\n );\n};\n\nexport { Main };\n"],"mappings":"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"}
1
+ {"version":3,"file":"Main.js","names":["_react","_interopRequireWildcard","require","_labsWidgetCommon","_Chart","_types","_utils","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","obj","__esModule","default","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","Main","_ref","apiUrl","instrument","division","isLoading","setIsLoading","useState","error","setError","undefined","dataType","setDataType","DataType","Order","data","setData","useEffect","getData","then","result","orderBooks","length","Position","positionBooks","catch","err","JSON","stringify","isTypeOrder","createElement","className","Button","variant","ButtonVariant","primary","secondary","onClick","ChartError","Spinner","size","SpinnerSize","lg","Chart","exports"],"sources":["../../../src/OrderBookWidget/Main.tsx"],"sourcesContent":["import React, { useState, useEffect } from 'react';\nimport {\n Button, ButtonVariant, ChartError, Spinner, SpinnerSize,\n} from '@oanda/labs-widget-common';\nimport { Chart } from './components/Chart/Chart';\nimport { DataType, MainProps, OrderBookData } from './types';\nimport { getData } from './utils';\n\nconst Main = ({\n apiUrl,\n instrument,\n division,\n}: MainProps) => {\n const [isLoading, setIsLoading] = useState(false);\n const [error, setError] = useState<string | undefined>(undefined);\n const [dataType, setDataType] = useState(DataType.Order);\n const [data, setData] = useState<OrderBookData[] | undefined>(undefined);\n\n useEffect(() => {\n setIsLoading(true);\n setData(undefined);\n setError(undefined);\n\n getData(apiUrl, instrument, division, dataType)\n .then((result) => {\n setIsLoading(false);\n if (dataType === DataType.Order && result?.orderBooks.length > 0) {\n setData(result.orderBooks);\n } else if (dataType === DataType.Position && result?.positionBooks.length > 0) {\n setData(result.positionBooks);\n } else {\n setData(undefined);\n }\n }).catch((err) => {\n setIsLoading(false);\n setError(JSON.stringify(err));\n });\n }, [dataType, apiUrl, instrument, division]);\n\n const isTypeOrder = dataType === DataType.Order;\n\n return (\n <div data-testid=\"order-book-widget\" className=\"lw-border lw-border-solid lw-border-grey lw-p-4 lw-text-sm lw-text-black\">\n <div className=\"lw-flex lw-gap-2\">\n <Button\n variant={isTypeOrder ? ButtonVariant.primary : ButtonVariant.secondary}\n onClick={() => setDataType(DataType.Order)}\n >\n Order Book\n </Button>\n <Button\n variant={isTypeOrder ? ButtonVariant.secondary : ButtonVariant.primary}\n onClick={() => setDataType(DataType.Position)}\n >\n Position Book\n </Button>\n </div>\n {/* @todo: chart height */}\n <div className=\"lw-relative lw-h-[600px] lw-w-full\">\n {error && (\n <div className=\"lw-absolute lw-left-0 lw-top-0 lw-flex lw-h-full lw-w-full lw-items-center lw-justify-center lw-bg-lightGrey/[0.4]\">\n <ChartError />\n </div>\n )}\n {isLoading && (\n <div className=\"lw-absolute lw-left-0 lw-top-0 lw-flex lw-h-full lw-w-full lw-items-center lw-justify-center lw-bg-lightGrey/[0.4]\">\n <Spinner size={SpinnerSize.lg} />\n </div>\n )}\n {data && (\n <div className=\"lw-absolute lw-left-0 lw-top-0 lw-flex lw-h-full lw-w-full\">\n <Chart data={data[data.length - 1]} isTypeOrder={isTypeOrder} />\n </div>\n )}\n </div>\n </div>\n );\n};\n\nexport { Main };\n"],"mappings":"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"}
@@ -24,7 +24,7 @@ const getChartOptions = (rangeX, minRangeY, maxRangeY) => ({
24
24
  max: rangeX,
25
25
  ticks: {
26
26
  color: '#607890',
27
- callback: tickValue => tickValue === 0 ? '%' : "".concat(Math.abs(Number(tickValue)), " %")
27
+ callback: tickValue => tickValue === 0 ? '%' : `${Math.abs(Number(tickValue))} %`
28
28
  },
29
29
  grid: {
30
30
  color: '#d1d7e0'
@@ -94,8 +94,8 @@ const getChartOptions = (rangeX, minRangeY, maxRangeY) => ({
94
94
  },
95
95
  padding: 8,
96
96
  callbacks: {
97
- title: context => "Price: ".concat(context[0].label),
98
- label: context => "".concat(context.dataset.label, ": ").concat(Math.abs(Number(context.raw)), "%")
97
+ title: context => `Price: ${context[0].label}`,
98
+ label: context => `${context.dataset.label}: ${Math.abs(Number(context.raw))}%`
99
99
  }
100
100
  }
101
101
  }
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","names":["colorPos","exports","colorNeg","getChartOptions","rangeX","minRangeY","maxRangeY","animation","duration","transitions","zoom","skipNull","scales","x","min","max","ticks","color","callback","tickValue","concat","Math","abs","Number","grid","y","bounds","type","stacked","afterFit","scaleInstance","width","indexAxis","responsive","plugins","limits","pan","enabled","modifierKey","mode","wheel","pinch","drag","tooltip","position","yAlign","backgroundColor","borderWidth","borderColor","titleColor","bodyColor","displayColors","titleFont","size","weight","bodyFont","padding","callbacks","title","context","label","dataset","raw"],"sources":["../../../../../src/OrderBookWidget/components/Chart/config.tsx"],"sourcesContent":["import type { ChartOptions } from 'chart.js';\n\nexport const colorPos = '#4A87F1';\nexport const colorNeg = '#00d37e';\n\nexport const getChartOptions = (rangeX: number, minRangeY: number, maxRangeY: number): ChartOptions<'bar'> => ({\n animation: {\n duration: 0,\n },\n transitions: {\n zoom: {\n animation: {\n duration: 500,\n },\n },\n },\n skipNull: true,\n scales: {\n x: {\n min: rangeX * -1,\n max: rangeX,\n ticks: {\n color: '#607890',\n callback: (tickValue) => (tickValue === 0 ? '%' : `${Math.abs(Number(tickValue))} %`),\n },\n grid: {\n color: '#d1d7e0',\n },\n },\n y: {\n bounds: 'ticks',\n type: 'linear',\n min: minRangeY,\n max: maxRangeY,\n stacked: true,\n afterFit(scaleInstance) {\n // eslint-disable-next-line no-param-reassign\n scaleInstance.width = 80;\n },\n ticks: {\n color: '#607890',\n },\n grid: {\n color: '#d1d7e0',\n },\n },\n },\n indexAxis: 'y' as const,\n responsive: true,\n plugins: {\n zoom: {\n limits: {\n y: {\n min: minRangeY,\n max: maxRangeY,\n },\n },\n pan: {\n enabled: true,\n modifierKey: 'shift',\n mode: 'y',\n },\n zoom: {\n wheel: {\n enabled: true,\n },\n pinch: {\n enabled: true,\n },\n drag: {\n enabled: true,\n },\n mode: 'y',\n },\n },\n tooltip: {\n position: 'nearest',\n yAlign: 'bottom',\n backgroundColor: 'rgba(255, 255, 255, 0.90)',\n borderWidth: 1,\n borderColor: '#607890',\n titleColor: '#607890',\n bodyColor: '#607890',\n displayColors: false,\n titleFont: {\n size: 14,\n weight: 'normal',\n },\n bodyFont: {\n size: 14,\n weight: 'normal',\n },\n padding: 8,\n callbacks: {\n title: (context) => `Price: ${context[0].label}`,\n label: (context) => `${context.dataset.label}: ${Math.abs(Number(context.raw))}%`,\n },\n },\n },\n});\n"],"mappings":";;;;;;AAEO,MAAMA,QAAQ,GAAAC,OAAA,CAAAD,QAAA,GAAG,SAAS;AAC1B,MAAME,QAAQ,GAAAD,OAAA,CAAAC,QAAA,GAAG,SAAS;AAE1B,MAAMC,eAAe,GAAGA,CAACC,MAAc,EAAEC,SAAiB,EAAEC,SAAiB,MAA2B;EAC7GC,SAAS,EAAE;IACTC,QAAQ,EAAE;EACZ,CAAC;EACDC,WAAW,EAAE;IACXC,IAAI,EAAE;MACJH,SAAS,EAAE;QACTC,QAAQ,EAAE;MACZ;IACF;EACF,CAAC;EACDG,QAAQ,EAAE,IAAI;EACdC,MAAM,EAAE;IACNC,CAAC,EAAE;MACDC,GAAG,EAAEV,MAAM,GAAG,CAAC,CAAC;MAChBW,GAAG,EAAEX,MAAM;MACXY,KAAK,EAAE;QACLC,KAAK,EAAE,SAAS;QAChBC,QAAQ,EAAGC,SAAS,IAAMA,SAAS,KAAK,CAAC,GAAG,GAAG,MAAAC,MAAA,CAAMC,IAAI,CAACC,GAAG,CAACC,MAAM,CAACJ,SAAS,CAAC,CAAC;MAClF,CAAC;MACDK,IAAI,EAAE;QACJP,KAAK,EAAE;MACT;IACF,CAAC;IACDQ,CAAC,EAAE;MACDC,MAAM,EAAE,OAAO;MACfC,IAAI,EAAE,QAAQ;MACdb,GAAG,EAAET,SAAS;MACdU,GAAG,EAAET,SAAS;MACdsB,OAAO,EAAE,IAAI;MACbC,QAAQA,CAACC,aAAa,EAAE;QAEtBA,aAAa,CAACC,KAAK,GAAG,EAAE;MAC1B,CAAC;MACDf,KAAK,EAAE;QACLC,KAAK,EAAE;MACT,CAAC;MACDO,IAAI,EAAE;QACJP,KAAK,EAAE;MACT;IACF;EACF,CAAC;EACDe,SAAS,EAAE,GAAY;EACvBC,UAAU,EAAE,IAAI;EAChBC,OAAO,EAAE;IACPxB,IAAI,EAAE;MACJyB,MAAM,EAAE;QACNV,CAAC,EAAE;UACDX,GAAG,EAAET,SAAS;UACdU,GAAG,EAAET;QACP;MACF,CAAC;MACD8B,GAAG,EAAE;QACHC,OAAO,EAAE,IAAI;QACbC,WAAW,EAAE,OAAO;QACpBC,IAAI,EAAE;MACR,CAAC;MACD7B,IAAI,EAAE;QACJ8B,KAAK,EAAE;UACLH,OAAO,EAAE;QACX,CAAC;QACDI,KAAK,EAAE;UACLJ,OAAO,EAAE;QACX,CAAC;QACDK,IAAI,EAAE;UACJL,OAAO,EAAE;QACX,CAAC;QACDE,IAAI,EAAE;MACR;IACF,CAAC;IACDI,OAAO,EAAE;MACPC,QAAQ,EAAE,SAAS;MACnBC,MAAM,EAAE,QAAQ;MAChBC,eAAe,EAAE,2BAA2B;MAC5CC,WAAW,EAAE,CAAC;MACdC,WAAW,EAAE,SAAS;MACtBC,UAAU,EAAE,SAAS;MACrBC,SAAS,EAAE,SAAS;MACpBC,aAAa,EAAE,KAAK;MACpBC,SAAS,EAAE;QACTC,IAAI,EAAE,EAAE;QACRC,MAAM,EAAE;MACV,CAAC;MACDC,QAAQ,EAAE;QACRF,IAAI,EAAE,EAAE;QACRC,MAAM,EAAE;MACV,CAAC;MACDE,OAAO,EAAE,CAAC;MACVC,SAAS,EAAE;QACTC,KAAK,EAAGC,OAAO,cAAAvC,MAAA,CAAeuC,OAAO,CAAC,CAAC,CAAC,CAACC,KAAK,CAAE;QAChDA,KAAK,EAAGD,OAAO,OAAAvC,MAAA,CAAQuC,OAAO,CAACE,OAAO,CAACD,KAAK,QAAAxC,MAAA,CAAKC,IAAI,CAACC,GAAG,CAACC,MAAM,CAACoC,OAAO,CAACG,GAAG,CAAC,CAAC;MAChF;IACF;EACF;AACF,CAAC,CAAC;AAAC7D,OAAA,CAAAE,eAAA,GAAAA,eAAA"}
1
+ {"version":3,"file":"config.js","names":["colorPos","exports","colorNeg","getChartOptions","rangeX","minRangeY","maxRangeY","animation","duration","transitions","zoom","skipNull","scales","x","min","max","ticks","color","callback","tickValue","Math","abs","Number","grid","y","bounds","type","stacked","afterFit","scaleInstance","width","indexAxis","responsive","plugins","limits","pan","enabled","modifierKey","mode","wheel","pinch","drag","tooltip","position","yAlign","backgroundColor","borderWidth","borderColor","titleColor","bodyColor","displayColors","titleFont","size","weight","bodyFont","padding","callbacks","title","context","label","dataset","raw"],"sources":["../../../../../src/OrderBookWidget/components/Chart/config.tsx"],"sourcesContent":["import type { ChartOptions } from 'chart.js';\n\nexport const colorPos = '#4A87F1';\nexport const colorNeg = '#00d37e';\n\nexport const getChartOptions = (rangeX: number, minRangeY: number, maxRangeY: number): ChartOptions<'bar'> => ({\n animation: {\n duration: 0,\n },\n transitions: {\n zoom: {\n animation: {\n duration: 500,\n },\n },\n },\n skipNull: true,\n scales: {\n x: {\n min: rangeX * -1,\n max: rangeX,\n ticks: {\n color: '#607890',\n callback: (tickValue) => (tickValue === 0 ? '%' : `${Math.abs(Number(tickValue))} %`),\n },\n grid: {\n color: '#d1d7e0',\n },\n },\n y: {\n bounds: 'ticks',\n type: 'linear',\n min: minRangeY,\n max: maxRangeY,\n stacked: true,\n afterFit(scaleInstance) {\n // eslint-disable-next-line no-param-reassign\n scaleInstance.width = 80;\n },\n ticks: {\n color: '#607890',\n },\n grid: {\n color: '#d1d7e0',\n },\n },\n },\n indexAxis: 'y' as const,\n responsive: true,\n plugins: {\n zoom: {\n limits: {\n y: {\n min: minRangeY,\n max: maxRangeY,\n },\n },\n pan: {\n enabled: true,\n modifierKey: 'shift',\n mode: 'y',\n },\n zoom: {\n wheel: {\n enabled: true,\n },\n pinch: {\n enabled: true,\n },\n drag: {\n enabled: true,\n },\n mode: 'y',\n },\n },\n tooltip: {\n position: 'nearest',\n yAlign: 'bottom',\n backgroundColor: 'rgba(255, 255, 255, 0.90)',\n borderWidth: 1,\n borderColor: '#607890',\n titleColor: '#607890',\n bodyColor: '#607890',\n displayColors: false,\n titleFont: {\n size: 14,\n weight: 'normal',\n },\n bodyFont: {\n size: 14,\n weight: 'normal',\n },\n padding: 8,\n callbacks: {\n title: (context) => `Price: ${context[0].label}`,\n label: (context) => `${context.dataset.label}: ${Math.abs(Number(context.raw))}%`,\n },\n },\n },\n});\n"],"mappings":";;;;;;AAEO,MAAMA,QAAQ,GAAAC,OAAA,CAAAD,QAAA,GAAG,SAAS;AAC1B,MAAME,QAAQ,GAAAD,OAAA,CAAAC,QAAA,GAAG,SAAS;AAE1B,MAAMC,eAAe,GAAGA,CAACC,MAAc,EAAEC,SAAiB,EAAEC,SAAiB,MAA2B;EAC7GC,SAAS,EAAE;IACTC,QAAQ,EAAE;EACZ,CAAC;EACDC,WAAW,EAAE;IACXC,IAAI,EAAE;MACJH,SAAS,EAAE;QACTC,QAAQ,EAAE;MACZ;IACF;EACF,CAAC;EACDG,QAAQ,EAAE,IAAI;EACdC,MAAM,EAAE;IACNC,CAAC,EAAE;MACDC,GAAG,EAAEV,MAAM,GAAG,CAAC,CAAC;MAChBW,GAAG,EAAEX,MAAM;MACXY,KAAK,EAAE;QACLC,KAAK,EAAE,SAAS;QAChBC,QAAQ,EAAGC,SAAS,IAAMA,SAAS,KAAK,CAAC,GAAG,GAAG,GAAI,GAAEC,IAAI,CAACC,GAAG,CAACC,MAAM,CAACH,SAAS,CAAC,CAAE;MACnF,CAAC;MACDI,IAAI,EAAE;QACJN,KAAK,EAAE;MACT;IACF,CAAC;IACDO,CAAC,EAAE;MACDC,MAAM,EAAE,OAAO;MACfC,IAAI,EAAE,QAAQ;MACdZ,GAAG,EAAET,SAAS;MACdU,GAAG,EAAET,SAAS;MACdqB,OAAO,EAAE,IAAI;MACbC,QAAQA,CAACC,aAAa,EAAE;QAEtBA,aAAa,CAACC,KAAK,GAAG,EAAE;MAC1B,CAAC;MACDd,KAAK,EAAE;QACLC,KAAK,EAAE;MACT,CAAC;MACDM,IAAI,EAAE;QACJN,KAAK,EAAE;MACT;IACF;EACF,CAAC;EACDc,SAAS,EAAE,GAAY;EACvBC,UAAU,EAAE,IAAI;EAChBC,OAAO,EAAE;IACPvB,IAAI,EAAE;MACJwB,MAAM,EAAE;QACNV,CAAC,EAAE;UACDV,GAAG,EAAET,SAAS;UACdU,GAAG,EAAET;QACP;MACF,CAAC;MACD6B,GAAG,EAAE;QACHC,OAAO,EAAE,IAAI;QACbC,WAAW,EAAE,OAAO;QACpBC,IAAI,EAAE;MACR,CAAC;MACD5B,IAAI,EAAE;QACJ6B,KAAK,EAAE;UACLH,OAAO,EAAE;QACX,CAAC;QACDI,KAAK,EAAE;UACLJ,OAAO,EAAE;QACX,CAAC;QACDK,IAAI,EAAE;UACJL,OAAO,EAAE;QACX,CAAC;QACDE,IAAI,EAAE;MACR;IACF,CAAC;IACDI,OAAO,EAAE;MACPC,QAAQ,EAAE,SAAS;MACnBC,MAAM,EAAE,QAAQ;MAChBC,eAAe,EAAE,2BAA2B;MAC5CC,WAAW,EAAE,CAAC;MACdC,WAAW,EAAE,SAAS;MACtBC,UAAU,EAAE,SAAS;MACrBC,SAAS,EAAE,SAAS;MACpBC,aAAa,EAAE,KAAK;MACpBC,SAAS,EAAE;QACTC,IAAI,EAAE,EAAE;QACRC,MAAM,EAAE;MACV,CAAC;MACDC,QAAQ,EAAE;QACRF,IAAI,EAAE,EAAE;QACRC,MAAM,EAAE;MACV,CAAC;MACDE,OAAO,EAAE,CAAC;MACVC,SAAS,EAAE;QACTC,KAAK,EAAGC,OAAO,IAAM,UAASA,OAAO,CAAC,CAAC,CAAC,CAACC,KAAM,EAAC;QAChDA,KAAK,EAAGD,OAAO,IAAM,GAAEA,OAAO,CAACE,OAAO,CAACD,KAAM,KAAIvC,IAAI,CAACC,GAAG,CAACC,MAAM,CAACoC,OAAO,CAACG,GAAG,CAAC,CAAE;MACjF;IACF;EACF;AACF,CAAC,CAAC;AAAC5D,OAAA,CAAAE,eAAA,GAAAA,eAAA"}
@@ -7,7 +7,7 @@ exports.getData = void 0;
7
7
  var _types = require("./types");
8
8
  const getFetchUrl = (apiUrl, instrument, division, dataType) => {
9
9
  const recentHourlyDataType = dataType === _types.DataType.Order ? 'recentHourlyOrderBooks' : 'recentHourlyPositionBooks';
10
- return "".concat(apiUrl, "/instruments/").concat(instrument, "/").concat(recentHourlyDataType, "?division=").concat(division);
10
+ return `${apiUrl}/instruments/${instrument}/${recentHourlyDataType}?division=${division}`;
11
11
  };
12
12
  const getData = (apiUrl, instrument, division, dataType) => {
13
13
  const fetchUrl = getFetchUrl(apiUrl, instrument, division, dataType);
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","names":["_types","require","getFetchUrl","apiUrl","instrument","division","dataType","recentHourlyDataType","DataType","Order","concat","getData","fetchUrl","fetch","then","res","json","exports"],"sources":["../../../src/OrderBookWidget/utils.ts"],"sourcesContent":["import { DataType } from './types';\n\nconst getFetchUrl = (\n apiUrl: string,\n instrument: string,\n division: string,\n dataType: string,\n) => {\n const recentHourlyDataType = dataType === DataType.Order ? 'recentHourlyOrderBooks' : 'recentHourlyPositionBooks';\n\n return `${apiUrl}/instruments/${instrument}/${recentHourlyDataType}?division=${division}`;\n};\n\nconst getData = (\n apiUrl: string,\n instrument: string,\n division: string,\n dataType: string,\n) => {\n const fetchUrl = getFetchUrl(apiUrl, instrument, division, dataType);\n\n return fetch(fetchUrl).then((res) => res.json());\n};\n\nexport { getData };\n"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AAEA,MAAMC,WAAW,GAAGA,CAClBC,MAAc,EACdC,UAAkB,EAClBC,QAAgB,EAChBC,QAAgB,KACb;EACH,MAAMC,oBAAoB,GAAGD,QAAQ,KAAKE,eAAQ,CAACC,KAAK,GAAG,wBAAwB,GAAG,2BAA2B;EAEjH,UAAAC,MAAA,CAAUP,MAAM,mBAAAO,MAAA,CAAgBN,UAAU,OAAAM,MAAA,CAAIH,oBAAoB,gBAAAG,MAAA,CAAaL,QAAQ;AACzF,CAAC;AAED,MAAMM,OAAO,GAAGA,CACdR,MAAc,EACdC,UAAkB,EAClBC,QAAgB,EAChBC,QAAgB,KACb;EACH,MAAMM,QAAQ,GAAGV,WAAW,CAACC,MAAM,EAAEC,UAAU,EAAEC,QAAQ,EAAEC,QAAQ,CAAC;EAEpE,OAAOO,KAAK,CAACD,QAAQ,CAAC,CAACE,IAAI,CAAEC,GAAG,IAAKA,GAAG,CAACC,IAAI,CAAC,CAAC,CAAC;AAClD,CAAC;AAACC,OAAA,CAAAN,OAAA,GAAAA,OAAA"}
1
+ {"version":3,"file":"utils.js","names":["_types","require","getFetchUrl","apiUrl","instrument","division","dataType","recentHourlyDataType","DataType","Order","getData","fetchUrl","fetch","then","res","json","exports"],"sources":["../../../src/OrderBookWidget/utils.ts"],"sourcesContent":["import { DataType } from './types';\n\nconst getFetchUrl = (\n apiUrl: string,\n instrument: string,\n division: string,\n dataType: string,\n) => {\n const recentHourlyDataType = dataType === DataType.Order ? 'recentHourlyOrderBooks' : 'recentHourlyPositionBooks';\n\n return `${apiUrl}/instruments/${instrument}/${recentHourlyDataType}?division=${division}`;\n};\n\nconst getData = (\n apiUrl: string,\n instrument: string,\n division: string,\n dataType: string,\n) => {\n const fetchUrl = getFetchUrl(apiUrl, instrument, division, dataType);\n\n return fetch(fetchUrl).then((res) => res.json());\n};\n\nexport { getData };\n"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AAEA,MAAMC,WAAW,GAAGA,CAClBC,MAAc,EACdC,UAAkB,EAClBC,QAAgB,EAChBC,QAAgB,KACb;EACH,MAAMC,oBAAoB,GAAGD,QAAQ,KAAKE,eAAQ,CAACC,KAAK,GAAG,wBAAwB,GAAG,2BAA2B;EAEjH,OAAQ,GAAEN,MAAO,gBAAeC,UAAW,IAAGG,oBAAqB,aAAYF,QAAS,EAAC;AAC3F,CAAC;AAED,MAAMK,OAAO,GAAGA,CACdP,MAAc,EACdC,UAAkB,EAClBC,QAAgB,EAChBC,QAAgB,KACb;EACH,MAAMK,QAAQ,GAAGT,WAAW,CAACC,MAAM,EAAEC,UAAU,EAAEC,QAAQ,EAAEC,QAAQ,CAAC;EAEpE,OAAOM,KAAK,CAACD,QAAQ,CAAC,CAACE,IAAI,CAAEC,GAAG,IAAKA,GAAG,CAACC,IAAI,CAAC,CAAC,CAAC;AAClD,CAAC;AAACC,OAAA,CAAAN,OAAA,GAAAA,OAAA"}
@@ -19,9 +19,9 @@ const Main = _ref => {
19
19
  setError(undefined);
20
20
  getData(apiUrl, instrument, division, dataType).then(result => {
21
21
  setIsLoading(false);
22
- if (dataType === DataType.Order && (result === null || result === void 0 ? void 0 : result.orderBooks.length) > 0) {
22
+ if (dataType === DataType.Order && result?.orderBooks.length > 0) {
23
23
  setData(result.orderBooks);
24
- } else if (dataType === DataType.Position && (result === null || result === void 0 ? void 0 : result.positionBooks.length) > 0) {
24
+ } else if (dataType === DataType.Position && result?.positionBooks.length > 0) {
25
25
  setData(result.positionBooks);
26
26
  } else {
27
27
  setData(undefined);
@@ -1 +1 @@
1
- {"version":3,"file":"Main.js","names":["React","useState","useEffect","Button","ButtonVariant","ChartError","Spinner","SpinnerSize","Chart","DataType","getData","Main","_ref","apiUrl","instrument","division","isLoading","setIsLoading","error","setError","undefined","dataType","setDataType","Order","data","setData","then","result","orderBooks","length","Position","positionBooks","catch","err","JSON","stringify","isTypeOrder","createElement","className","variant","primary","secondary","onClick","size","lg"],"sources":["../../../src/OrderBookWidget/Main.tsx"],"sourcesContent":["import React, { useState, useEffect } from 'react';\nimport {\n Button, ButtonVariant, ChartError, Spinner, SpinnerSize,\n} from '@oanda/labs-widget-common';\nimport { Chart } from './components/Chart/Chart';\nimport { DataType, MainProps, OrderBookData } from './types';\nimport { getData } from './utils';\n\nconst Main = ({\n apiUrl,\n instrument,\n division,\n}: MainProps) => {\n const [isLoading, setIsLoading] = useState(false);\n const [error, setError] = useState<string | undefined>(undefined);\n const [dataType, setDataType] = useState(DataType.Order);\n const [data, setData] = useState<OrderBookData[] | undefined>(undefined);\n\n useEffect(() => {\n setIsLoading(true);\n setData(undefined);\n setError(undefined);\n\n getData(apiUrl, instrument, division, dataType)\n .then((result) => {\n setIsLoading(false);\n if (dataType === DataType.Order && result?.orderBooks.length > 0) {\n setData(result.orderBooks);\n } else if (dataType === DataType.Position && result?.positionBooks.length > 0) {\n setData(result.positionBooks);\n } else {\n setData(undefined);\n }\n }).catch((err) => {\n setIsLoading(false);\n setError(JSON.stringify(err));\n });\n }, [dataType, apiUrl, instrument, division]);\n\n const isTypeOrder = dataType === DataType.Order;\n\n return (\n <div data-testid=\"order-book-widget\" className=\"lw-border lw-border-solid lw-border-grey lw-p-4 lw-text-sm lw-text-black\">\n <div className=\"lw-flex lw-gap-2\">\n <Button\n variant={isTypeOrder ? ButtonVariant.primary : ButtonVariant.secondary}\n onClick={() => setDataType(DataType.Order)}\n >\n Order Book\n </Button>\n <Button\n variant={isTypeOrder ? ButtonVariant.secondary : ButtonVariant.primary}\n onClick={() => setDataType(DataType.Position)}\n >\n Position Book\n </Button>\n </div>\n {/* @todo: chart height */}\n <div className=\"lw-relative lw-h-[600px] lw-w-full\">\n {error && (\n <div className=\"lw-absolute lw-left-0 lw-top-0 lw-flex lw-h-full lw-w-full lw-items-center lw-justify-center lw-bg-lightGrey/[0.4]\">\n <ChartError />\n </div>\n )}\n {isLoading && (\n <div className=\"lw-absolute lw-left-0 lw-top-0 lw-flex lw-h-full lw-w-full lw-items-center lw-justify-center lw-bg-lightGrey/[0.4]\">\n <Spinner size={SpinnerSize.lg} />\n </div>\n )}\n {data && (\n <div className=\"lw-absolute lw-left-0 lw-top-0 lw-flex lw-h-full lw-w-full\">\n <Chart data={data[data.length - 1]} isTypeOrder={isTypeOrder} />\n </div>\n )}\n </div>\n </div>\n );\n};\n\nexport { Main };\n"],"mappings":"AAAA,OAAOA,KAAK,IAAIC,QAAQ,EAAEC,SAAS,QAAQ,OAAO;AAClD,SACEC,MAAM,EAAEC,aAAa,EAAEC,UAAU,EAAEC,OAAO,EAAEC,WAAW,QAClD,2BAA2B;AAClC,SAASC,KAAK,QAAQ,0BAA0B;AAChD,SAASC,QAAQ,QAAkC,SAAS;AAC5D,SAASC,OAAO,QAAQ,SAAS;AAEjC,MAAMC,IAAI,GAAGC,IAAA,IAII;EAAA,IAJH;IACZC,MAAM;IACNC,UAAU;IACVC;EACS,CAAC,GAAAH,IAAA;EACV,MAAM,CAACI,SAAS,EAAEC,YAAY,CAAC,GAAGhB,QAAQ,CAAC,KAAK,CAAC;EACjD,MAAM,CAACiB,KAAK,EAAEC,QAAQ,CAAC,GAAGlB,QAAQ,CAAqBmB,SAAS,CAAC;EACjE,MAAM,CAACC,QAAQ,EAAEC,WAAW,CAAC,GAAGrB,QAAQ,CAACQ,QAAQ,CAACc,KAAK,CAAC;EACxD,MAAM,CAACC,IAAI,EAAEC,OAAO,CAAC,GAAGxB,QAAQ,CAA8BmB,SAAS,CAAC;EAExElB,SAAS,CAAC,MAAM;IACde,YAAY,CAAC,IAAI,CAAC;IAClBQ,OAAO,CAACL,SAAS,CAAC;IAClBD,QAAQ,CAACC,SAAS,CAAC;IAEnBV,OAAO,CAACG,MAAM,EAAEC,UAAU,EAAEC,QAAQ,EAAEM,QAAQ,CAAC,CAC5CK,IAAI,CAAEC,MAAM,IAAK;MAChBV,YAAY,CAAC,KAAK,CAAC;MACnB,IAAII,QAAQ,KAAKZ,QAAQ,CAACc,KAAK,IAAI,CAAAI,MAAM,aAANA,MAAM,uBAANA,MAAM,CAAEC,UAAU,CAACC,MAAM,IAAG,CAAC,EAAE;QAChEJ,OAAO,CAACE,MAAM,CAACC,UAAU,CAAC;MAC5B,CAAC,MAAM,IAAIP,QAAQ,KAAKZ,QAAQ,CAACqB,QAAQ,IAAI,CAAAH,MAAM,aAANA,MAAM,uBAANA,MAAM,CAAEI,aAAa,CAACF,MAAM,IAAG,CAAC,EAAE;QAC7EJ,OAAO,CAACE,MAAM,CAACI,aAAa,CAAC;MAC/B,CAAC,MAAM;QACLN,OAAO,CAACL,SAAS,CAAC;MACpB;IACF,CAAC,CAAC,CAACY,KAAK,CAAEC,GAAG,IAAK;MAChBhB,YAAY,CAAC,KAAK,CAAC;MACnBE,QAAQ,CAACe,IAAI,CAACC,SAAS,CAACF,GAAG,CAAC,CAAC;IAC/B,CAAC,CAAC;EACN,CAAC,EAAE,CAACZ,QAAQ,EAAER,MAAM,EAAEC,UAAU,EAAEC,QAAQ,CAAC,CAAC;EAE5C,MAAMqB,WAAW,GAAGf,QAAQ,KAAKZ,QAAQ,CAACc,KAAK;EAE/C,OACEvB,KAAA,CAAAqC,aAAA;IAAK,eAAY,mBAAmB;IAACC,SAAS,EAAC;EAA0E,GACvHtC,KAAA,CAAAqC,aAAA;IAAKC,SAAS,EAAC;EAAkB,GAC/BtC,KAAA,CAAAqC,aAAA,CAAClC,MAAM;IACLoC,OAAO,EAAEH,WAAW,GAAGhC,aAAa,CAACoC,OAAO,GAAGpC,aAAa,CAACqC,SAAU;IACvEC,OAAO,EAAEA,CAAA,KAAMpB,WAAW,CAACb,QAAQ,CAACc,KAAK;EAAE,GAC5C,YAEO,CAAC,EACTvB,KAAA,CAAAqC,aAAA,CAAClC,MAAM;IACLoC,OAAO,EAAEH,WAAW,GAAGhC,aAAa,CAACqC,SAAS,GAAGrC,aAAa,CAACoC,OAAQ;IACvEE,OAAO,EAAEA,CAAA,KAAMpB,WAAW,CAACb,QAAQ,CAACqB,QAAQ;EAAE,GAC/C,eAEO,CACL,CAAC,EAEN9B,KAAA,CAAAqC,aAAA;IAAKC,SAAS,EAAC;EAAoC,GAChDpB,KAAK,IACJlB,KAAA,CAAAqC,aAAA;IAAKC,SAAS,EAAC;EAAoH,GACjItC,KAAA,CAAAqC,aAAA,CAAChC,UAAU,MAAE,CACV,CACN,EACAW,SAAS,IACRhB,KAAA,CAAAqC,aAAA;IAAKC,SAAS,EAAC;EAAoH,GACjItC,KAAA,CAAAqC,aAAA,CAAC/B,OAAO;IAACqC,IAAI,EAAEpC,WAAW,CAACqC;EAAG,CAAE,CAC7B,CACN,EACApB,IAAI,IACHxB,KAAA,CAAAqC,aAAA;IAAKC,SAAS,EAAC;EAA4D,GACzEtC,KAAA,CAAAqC,aAAA,CAAC7B,KAAK;IAACgB,IAAI,EAAEA,IAAI,CAACA,IAAI,CAACK,MAAM,GAAG,CAAC,CAAE;IAACO,WAAW,EAAEA;EAAY,CAAE,CAC5D,CAEJ,CACF,CAAC;AAEV,CAAC;AAED,SAASzB,IAAI"}
1
+ {"version":3,"file":"Main.js","names":["React","useState","useEffect","Button","ButtonVariant","ChartError","Spinner","SpinnerSize","Chart","DataType","getData","Main","_ref","apiUrl","instrument","division","isLoading","setIsLoading","error","setError","undefined","dataType","setDataType","Order","data","setData","then","result","orderBooks","length","Position","positionBooks","catch","err","JSON","stringify","isTypeOrder","createElement","className","variant","primary","secondary","onClick","size","lg"],"sources":["../../../src/OrderBookWidget/Main.tsx"],"sourcesContent":["import React, { useState, useEffect } from 'react';\nimport {\n Button, ButtonVariant, ChartError, Spinner, SpinnerSize,\n} from '@oanda/labs-widget-common';\nimport { Chart } from './components/Chart/Chart';\nimport { DataType, MainProps, OrderBookData } from './types';\nimport { getData } from './utils';\n\nconst Main = ({\n apiUrl,\n instrument,\n division,\n}: MainProps) => {\n const [isLoading, setIsLoading] = useState(false);\n const [error, setError] = useState<string | undefined>(undefined);\n const [dataType, setDataType] = useState(DataType.Order);\n const [data, setData] = useState<OrderBookData[] | undefined>(undefined);\n\n useEffect(() => {\n setIsLoading(true);\n setData(undefined);\n setError(undefined);\n\n getData(apiUrl, instrument, division, dataType)\n .then((result) => {\n setIsLoading(false);\n if (dataType === DataType.Order && result?.orderBooks.length > 0) {\n setData(result.orderBooks);\n } else if (dataType === DataType.Position && result?.positionBooks.length > 0) {\n setData(result.positionBooks);\n } else {\n setData(undefined);\n }\n }).catch((err) => {\n setIsLoading(false);\n setError(JSON.stringify(err));\n });\n }, [dataType, apiUrl, instrument, division]);\n\n const isTypeOrder = dataType === DataType.Order;\n\n return (\n <div data-testid=\"order-book-widget\" className=\"lw-border lw-border-solid lw-border-grey lw-p-4 lw-text-sm lw-text-black\">\n <div className=\"lw-flex lw-gap-2\">\n <Button\n variant={isTypeOrder ? ButtonVariant.primary : ButtonVariant.secondary}\n onClick={() => setDataType(DataType.Order)}\n >\n Order Book\n </Button>\n <Button\n variant={isTypeOrder ? ButtonVariant.secondary : ButtonVariant.primary}\n onClick={() => setDataType(DataType.Position)}\n >\n Position Book\n </Button>\n </div>\n {/* @todo: chart height */}\n <div className=\"lw-relative lw-h-[600px] lw-w-full\">\n {error && (\n <div className=\"lw-absolute lw-left-0 lw-top-0 lw-flex lw-h-full lw-w-full lw-items-center lw-justify-center lw-bg-lightGrey/[0.4]\">\n <ChartError />\n </div>\n )}\n {isLoading && (\n <div className=\"lw-absolute lw-left-0 lw-top-0 lw-flex lw-h-full lw-w-full lw-items-center lw-justify-center lw-bg-lightGrey/[0.4]\">\n <Spinner size={SpinnerSize.lg} />\n </div>\n )}\n {data && (\n <div className=\"lw-absolute lw-left-0 lw-top-0 lw-flex lw-h-full lw-w-full\">\n <Chart data={data[data.length - 1]} isTypeOrder={isTypeOrder} />\n </div>\n )}\n </div>\n </div>\n );\n};\n\nexport { Main };\n"],"mappings":"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"}
@@ -18,7 +18,7 @@ export const getChartOptions = (rangeX, minRangeY, maxRangeY) => ({
18
18
  max: rangeX,
19
19
  ticks: {
20
20
  color: '#607890',
21
- callback: tickValue => tickValue === 0 ? '%' : "".concat(Math.abs(Number(tickValue)), " %")
21
+ callback: tickValue => tickValue === 0 ? '%' : `${Math.abs(Number(tickValue))} %`
22
22
  },
23
23
  grid: {
24
24
  color: '#d1d7e0'
@@ -88,8 +88,8 @@ export const getChartOptions = (rangeX, minRangeY, maxRangeY) => ({
88
88
  },
89
89
  padding: 8,
90
90
  callbacks: {
91
- title: context => "Price: ".concat(context[0].label),
92
- label: context => "".concat(context.dataset.label, ": ").concat(Math.abs(Number(context.raw)), "%")
91
+ title: context => `Price: ${context[0].label}`,
92
+ label: context => `${context.dataset.label}: ${Math.abs(Number(context.raw))}%`
93
93
  }
94
94
  }
95
95
  }
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","names":["colorPos","colorNeg","getChartOptions","rangeX","minRangeY","maxRangeY","animation","duration","transitions","zoom","skipNull","scales","x","min","max","ticks","color","callback","tickValue","concat","Math","abs","Number","grid","y","bounds","type","stacked","afterFit","scaleInstance","width","indexAxis","responsive","plugins","limits","pan","enabled","modifierKey","mode","wheel","pinch","drag","tooltip","position","yAlign","backgroundColor","borderWidth","borderColor","titleColor","bodyColor","displayColors","titleFont","size","weight","bodyFont","padding","callbacks","title","context","label","dataset","raw"],"sources":["../../../../../src/OrderBookWidget/components/Chart/config.tsx"],"sourcesContent":["import type { ChartOptions } from 'chart.js';\n\nexport const colorPos = '#4A87F1';\nexport const colorNeg = '#00d37e';\n\nexport const getChartOptions = (rangeX: number, minRangeY: number, maxRangeY: number): ChartOptions<'bar'> => ({\n animation: {\n duration: 0,\n },\n transitions: {\n zoom: {\n animation: {\n duration: 500,\n },\n },\n },\n skipNull: true,\n scales: {\n x: {\n min: rangeX * -1,\n max: rangeX,\n ticks: {\n color: '#607890',\n callback: (tickValue) => (tickValue === 0 ? '%' : `${Math.abs(Number(tickValue))} %`),\n },\n grid: {\n color: '#d1d7e0',\n },\n },\n y: {\n bounds: 'ticks',\n type: 'linear',\n min: minRangeY,\n max: maxRangeY,\n stacked: true,\n afterFit(scaleInstance) {\n // eslint-disable-next-line no-param-reassign\n scaleInstance.width = 80;\n },\n ticks: {\n color: '#607890',\n },\n grid: {\n color: '#d1d7e0',\n },\n },\n },\n indexAxis: 'y' as const,\n responsive: true,\n plugins: {\n zoom: {\n limits: {\n y: {\n min: minRangeY,\n max: maxRangeY,\n },\n },\n pan: {\n enabled: true,\n modifierKey: 'shift',\n mode: 'y',\n },\n zoom: {\n wheel: {\n enabled: true,\n },\n pinch: {\n enabled: true,\n },\n drag: {\n enabled: true,\n },\n mode: 'y',\n },\n },\n tooltip: {\n position: 'nearest',\n yAlign: 'bottom',\n backgroundColor: 'rgba(255, 255, 255, 0.90)',\n borderWidth: 1,\n borderColor: '#607890',\n titleColor: '#607890',\n bodyColor: '#607890',\n displayColors: false,\n titleFont: {\n size: 14,\n weight: 'normal',\n },\n bodyFont: {\n size: 14,\n weight: 'normal',\n },\n padding: 8,\n callbacks: {\n title: (context) => `Price: ${context[0].label}`,\n label: (context) => `${context.dataset.label}: ${Math.abs(Number(context.raw))}%`,\n },\n },\n },\n});\n"],"mappings":"AAEA,OAAO,MAAMA,QAAQ,GAAG,SAAS;AACjC,OAAO,MAAMC,QAAQ,GAAG,SAAS;AAEjC,OAAO,MAAMC,eAAe,GAAGA,CAACC,MAAc,EAAEC,SAAiB,EAAEC,SAAiB,MAA2B;EAC7GC,SAAS,EAAE;IACTC,QAAQ,EAAE;EACZ,CAAC;EACDC,WAAW,EAAE;IACXC,IAAI,EAAE;MACJH,SAAS,EAAE;QACTC,QAAQ,EAAE;MACZ;IACF;EACF,CAAC;EACDG,QAAQ,EAAE,IAAI;EACdC,MAAM,EAAE;IACNC,CAAC,EAAE;MACDC,GAAG,EAAEV,MAAM,GAAG,CAAC,CAAC;MAChBW,GAAG,EAAEX,MAAM;MACXY,KAAK,EAAE;QACLC,KAAK,EAAE,SAAS;QAChBC,QAAQ,EAAGC,SAAS,IAAMA,SAAS,KAAK,CAAC,GAAG,GAAG,MAAAC,MAAA,CAAMC,IAAI,CAACC,GAAG,CAACC,MAAM,CAACJ,SAAS,CAAC,CAAC;MAClF,CAAC;MACDK,IAAI,EAAE;QACJP,KAAK,EAAE;MACT;IACF,CAAC;IACDQ,CAAC,EAAE;MACDC,MAAM,EAAE,OAAO;MACfC,IAAI,EAAE,QAAQ;MACdb,GAAG,EAAET,SAAS;MACdU,GAAG,EAAET,SAAS;MACdsB,OAAO,EAAE,IAAI;MACbC,QAAQA,CAACC,aAAa,EAAE;QAEtBA,aAAa,CAACC,KAAK,GAAG,EAAE;MAC1B,CAAC;MACDf,KAAK,EAAE;QACLC,KAAK,EAAE;MACT,CAAC;MACDO,IAAI,EAAE;QACJP,KAAK,EAAE;MACT;IACF;EACF,CAAC;EACDe,SAAS,EAAE,GAAY;EACvBC,UAAU,EAAE,IAAI;EAChBC,OAAO,EAAE;IACPxB,IAAI,EAAE;MACJyB,MAAM,EAAE;QACNV,CAAC,EAAE;UACDX,GAAG,EAAET,SAAS;UACdU,GAAG,EAAET;QACP;MACF,CAAC;MACD8B,GAAG,EAAE;QACHC,OAAO,EAAE,IAAI;QACbC,WAAW,EAAE,OAAO;QACpBC,IAAI,EAAE;MACR,CAAC;MACD7B,IAAI,EAAE;QACJ8B,KAAK,EAAE;UACLH,OAAO,EAAE;QACX,CAAC;QACDI,KAAK,EAAE;UACLJ,OAAO,EAAE;QACX,CAAC;QACDK,IAAI,EAAE;UACJL,OAAO,EAAE;QACX,CAAC;QACDE,IAAI,EAAE;MACR;IACF,CAAC;IACDI,OAAO,EAAE;MACPC,QAAQ,EAAE,SAAS;MACnBC,MAAM,EAAE,QAAQ;MAChBC,eAAe,EAAE,2BAA2B;MAC5CC,WAAW,EAAE,CAAC;MACdC,WAAW,EAAE,SAAS;MACtBC,UAAU,EAAE,SAAS;MACrBC,SAAS,EAAE,SAAS;MACpBC,aAAa,EAAE,KAAK;MACpBC,SAAS,EAAE;QACTC,IAAI,EAAE,EAAE;QACRC,MAAM,EAAE;MACV,CAAC;MACDC,QAAQ,EAAE;QACRF,IAAI,EAAE,EAAE;QACRC,MAAM,EAAE;MACV,CAAC;MACDE,OAAO,EAAE,CAAC;MACVC,SAAS,EAAE;QACTC,KAAK,EAAGC,OAAO,cAAAvC,MAAA,CAAeuC,OAAO,CAAC,CAAC,CAAC,CAACC,KAAK,CAAE;QAChDA,KAAK,EAAGD,OAAO,OAAAvC,MAAA,CAAQuC,OAAO,CAACE,OAAO,CAACD,KAAK,QAAAxC,MAAA,CAAKC,IAAI,CAACC,GAAG,CAACC,MAAM,CAACoC,OAAO,CAACG,GAAG,CAAC,CAAC;MAChF;IACF;EACF;AACF,CAAC,CAAC"}
1
+ {"version":3,"file":"config.js","names":["colorPos","colorNeg","getChartOptions","rangeX","minRangeY","maxRangeY","animation","duration","transitions","zoom","skipNull","scales","x","min","max","ticks","color","callback","tickValue","Math","abs","Number","grid","y","bounds","type","stacked","afterFit","scaleInstance","width","indexAxis","responsive","plugins","limits","pan","enabled","modifierKey","mode","wheel","pinch","drag","tooltip","position","yAlign","backgroundColor","borderWidth","borderColor","titleColor","bodyColor","displayColors","titleFont","size","weight","bodyFont","padding","callbacks","title","context","label","dataset","raw"],"sources":["../../../../../src/OrderBookWidget/components/Chart/config.tsx"],"sourcesContent":["import type { ChartOptions } from 'chart.js';\n\nexport const colorPos = '#4A87F1';\nexport const colorNeg = '#00d37e';\n\nexport const getChartOptions = (rangeX: number, minRangeY: number, maxRangeY: number): ChartOptions<'bar'> => ({\n animation: {\n duration: 0,\n },\n transitions: {\n zoom: {\n animation: {\n duration: 500,\n },\n },\n },\n skipNull: true,\n scales: {\n x: {\n min: rangeX * -1,\n max: rangeX,\n ticks: {\n color: '#607890',\n callback: (tickValue) => (tickValue === 0 ? '%' : `${Math.abs(Number(tickValue))} %`),\n },\n grid: {\n color: '#d1d7e0',\n },\n },\n y: {\n bounds: 'ticks',\n type: 'linear',\n min: minRangeY,\n max: maxRangeY,\n stacked: true,\n afterFit(scaleInstance) {\n // eslint-disable-next-line no-param-reassign\n scaleInstance.width = 80;\n },\n ticks: {\n color: '#607890',\n },\n grid: {\n color: '#d1d7e0',\n },\n },\n },\n indexAxis: 'y' as const,\n responsive: true,\n plugins: {\n zoom: {\n limits: {\n y: {\n min: minRangeY,\n max: maxRangeY,\n },\n },\n pan: {\n enabled: true,\n modifierKey: 'shift',\n mode: 'y',\n },\n zoom: {\n wheel: {\n enabled: true,\n },\n pinch: {\n enabled: true,\n },\n drag: {\n enabled: true,\n },\n mode: 'y',\n },\n },\n tooltip: {\n position: 'nearest',\n yAlign: 'bottom',\n backgroundColor: 'rgba(255, 255, 255, 0.90)',\n borderWidth: 1,\n borderColor: '#607890',\n titleColor: '#607890',\n bodyColor: '#607890',\n displayColors: false,\n titleFont: {\n size: 14,\n weight: 'normal',\n },\n bodyFont: {\n size: 14,\n weight: 'normal',\n },\n padding: 8,\n callbacks: {\n title: (context) => `Price: ${context[0].label}`,\n label: (context) => `${context.dataset.label}: ${Math.abs(Number(context.raw))}%`,\n },\n },\n },\n});\n"],"mappings":"AAEA,OAAO,MAAMA,QAAQ,GAAG,SAAS;AACjC,OAAO,MAAMC,QAAQ,GAAG,SAAS;AAEjC,OAAO,MAAMC,eAAe,GAAGA,CAACC,MAAc,EAAEC,SAAiB,EAAEC,SAAiB,MAA2B;EAC7GC,SAAS,EAAE;IACTC,QAAQ,EAAE;EACZ,CAAC;EACDC,WAAW,EAAE;IACXC,IAAI,EAAE;MACJH,SAAS,EAAE;QACTC,QAAQ,EAAE;MACZ;IACF;EACF,CAAC;EACDG,QAAQ,EAAE,IAAI;EACdC,MAAM,EAAE;IACNC,CAAC,EAAE;MACDC,GAAG,EAAEV,MAAM,GAAG,CAAC,CAAC;MAChBW,GAAG,EAAEX,MAAM;MACXY,KAAK,EAAE;QACLC,KAAK,EAAE,SAAS;QAChBC,QAAQ,EAAGC,SAAS,IAAMA,SAAS,KAAK,CAAC,GAAG,GAAG,GAAI,GAAEC,IAAI,CAACC,GAAG,CAACC,MAAM,CAACH,SAAS,CAAC,CAAE;MACnF,CAAC;MACDI,IAAI,EAAE;QACJN,KAAK,EAAE;MACT;IACF,CAAC;IACDO,CAAC,EAAE;MACDC,MAAM,EAAE,OAAO;MACfC,IAAI,EAAE,QAAQ;MACdZ,GAAG,EAAET,SAAS;MACdU,GAAG,EAAET,SAAS;MACdqB,OAAO,EAAE,IAAI;MACbC,QAAQA,CAACC,aAAa,EAAE;QAEtBA,aAAa,CAACC,KAAK,GAAG,EAAE;MAC1B,CAAC;MACDd,KAAK,EAAE;QACLC,KAAK,EAAE;MACT,CAAC;MACDM,IAAI,EAAE;QACJN,KAAK,EAAE;MACT;IACF;EACF,CAAC;EACDc,SAAS,EAAE,GAAY;EACvBC,UAAU,EAAE,IAAI;EAChBC,OAAO,EAAE;IACPvB,IAAI,EAAE;MACJwB,MAAM,EAAE;QACNV,CAAC,EAAE;UACDV,GAAG,EAAET,SAAS;UACdU,GAAG,EAAET;QACP;MACF,CAAC;MACD6B,GAAG,EAAE;QACHC,OAAO,EAAE,IAAI;QACbC,WAAW,EAAE,OAAO;QACpBC,IAAI,EAAE;MACR,CAAC;MACD5B,IAAI,EAAE;QACJ6B,KAAK,EAAE;UACLH,OAAO,EAAE;QACX,CAAC;QACDI,KAAK,EAAE;UACLJ,OAAO,EAAE;QACX,CAAC;QACDK,IAAI,EAAE;UACJL,OAAO,EAAE;QACX,CAAC;QACDE,IAAI,EAAE;MACR;IACF,CAAC;IACDI,OAAO,EAAE;MACPC,QAAQ,EAAE,SAAS;MACnBC,MAAM,EAAE,QAAQ;MAChBC,eAAe,EAAE,2BAA2B;MAC5CC,WAAW,EAAE,CAAC;MACdC,WAAW,EAAE,SAAS;MACtBC,UAAU,EAAE,SAAS;MACrBC,SAAS,EAAE,SAAS;MACpBC,aAAa,EAAE,KAAK;MACpBC,SAAS,EAAE;QACTC,IAAI,EAAE,EAAE;QACRC,MAAM,EAAE;MACV,CAAC;MACDC,QAAQ,EAAE;QACRF,IAAI,EAAE,EAAE;QACRC,MAAM,EAAE;MACV,CAAC;MACDE,OAAO,EAAE,CAAC;MACVC,SAAS,EAAE;QACTC,KAAK,EAAGC,OAAO,IAAM,UAASA,OAAO,CAAC,CAAC,CAAC,CAACC,KAAM,EAAC;QAChDA,KAAK,EAAGD,OAAO,IAAM,GAAEA,OAAO,CAACE,OAAO,CAACD,KAAM,KAAIvC,IAAI,CAACC,GAAG,CAACC,MAAM,CAACoC,OAAO,CAACG,GAAG,CAAC,CAAE;MACjF;IACF;EACF;AACF,CAAC,CAAC"}
@@ -1,7 +1,7 @@
1
1
  import { DataType } from './types';
2
2
  const getFetchUrl = (apiUrl, instrument, division, dataType) => {
3
3
  const recentHourlyDataType = dataType === DataType.Order ? 'recentHourlyOrderBooks' : 'recentHourlyPositionBooks';
4
- return "".concat(apiUrl, "/instruments/").concat(instrument, "/").concat(recentHourlyDataType, "?division=").concat(division);
4
+ return `${apiUrl}/instruments/${instrument}/${recentHourlyDataType}?division=${division}`;
5
5
  };
6
6
  const getData = (apiUrl, instrument, division, dataType) => {
7
7
  const fetchUrl = getFetchUrl(apiUrl, instrument, division, dataType);
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","names":["DataType","getFetchUrl","apiUrl","instrument","division","dataType","recentHourlyDataType","Order","concat","getData","fetchUrl","fetch","then","res","json"],"sources":["../../../src/OrderBookWidget/utils.ts"],"sourcesContent":["import { DataType } from './types';\n\nconst getFetchUrl = (\n apiUrl: string,\n instrument: string,\n division: string,\n dataType: string,\n) => {\n const recentHourlyDataType = dataType === DataType.Order ? 'recentHourlyOrderBooks' : 'recentHourlyPositionBooks';\n\n return `${apiUrl}/instruments/${instrument}/${recentHourlyDataType}?division=${division}`;\n};\n\nconst getData = (\n apiUrl: string,\n instrument: string,\n division: string,\n dataType: string,\n) => {\n const fetchUrl = getFetchUrl(apiUrl, instrument, division, dataType);\n\n return fetch(fetchUrl).then((res) => res.json());\n};\n\nexport { getData };\n"],"mappings":"AAAA,SAASA,QAAQ,QAAQ,SAAS;AAElC,MAAMC,WAAW,GAAGA,CAClBC,MAAc,EACdC,UAAkB,EAClBC,QAAgB,EAChBC,QAAgB,KACb;EACH,MAAMC,oBAAoB,GAAGD,QAAQ,KAAKL,QAAQ,CAACO,KAAK,GAAG,wBAAwB,GAAG,2BAA2B;EAEjH,UAAAC,MAAA,CAAUN,MAAM,mBAAAM,MAAA,CAAgBL,UAAU,OAAAK,MAAA,CAAIF,oBAAoB,gBAAAE,MAAA,CAAaJ,QAAQ;AACzF,CAAC;AAED,MAAMK,OAAO,GAAGA,CACdP,MAAc,EACdC,UAAkB,EAClBC,QAAgB,EAChBC,QAAgB,KACb;EACH,MAAMK,QAAQ,GAAGT,WAAW,CAACC,MAAM,EAAEC,UAAU,EAAEC,QAAQ,EAAEC,QAAQ,CAAC;EAEpE,OAAOM,KAAK,CAACD,QAAQ,CAAC,CAACE,IAAI,CAAEC,GAAG,IAAKA,GAAG,CAACC,IAAI,CAAC,CAAC,CAAC;AAClD,CAAC;AAED,SAASL,OAAO"}
1
+ {"version":3,"file":"utils.js","names":["DataType","getFetchUrl","apiUrl","instrument","division","dataType","recentHourlyDataType","Order","getData","fetchUrl","fetch","then","res","json"],"sources":["../../../src/OrderBookWidget/utils.ts"],"sourcesContent":["import { DataType } from './types';\n\nconst getFetchUrl = (\n apiUrl: string,\n instrument: string,\n division: string,\n dataType: string,\n) => {\n const recentHourlyDataType = dataType === DataType.Order ? 'recentHourlyOrderBooks' : 'recentHourlyPositionBooks';\n\n return `${apiUrl}/instruments/${instrument}/${recentHourlyDataType}?division=${division}`;\n};\n\nconst getData = (\n apiUrl: string,\n instrument: string,\n division: string,\n dataType: string,\n) => {\n const fetchUrl = getFetchUrl(apiUrl, instrument, division, dataType);\n\n return fetch(fetchUrl).then((res) => res.json());\n};\n\nexport { getData };\n"],"mappings":"AAAA,SAASA,QAAQ,QAAQ,SAAS;AAElC,MAAMC,WAAW,GAAGA,CAClBC,MAAc,EACdC,UAAkB,EAClBC,QAAgB,EAChBC,QAAgB,KACb;EACH,MAAMC,oBAAoB,GAAGD,QAAQ,KAAKL,QAAQ,CAACO,KAAK,GAAG,wBAAwB,GAAG,2BAA2B;EAEjH,OAAQ,GAAEL,MAAO,gBAAeC,UAAW,IAAGG,oBAAqB,aAAYF,QAAS,EAAC;AAC3F,CAAC;AAED,MAAMI,OAAO,GAAGA,CACdN,MAAc,EACdC,UAAkB,EAClBC,QAAgB,EAChBC,QAAgB,KACb;EACH,MAAMI,QAAQ,GAAGR,WAAW,CAACC,MAAM,EAAEC,UAAU,EAAEC,QAAQ,EAAEC,QAAQ,CAAC;EAEpE,OAAOK,KAAK,CAACD,QAAQ,CAAC,CAACE,IAAI,CAAEC,GAAG,IAAKA,GAAG,CAACC,IAAI,CAAC,CAAC,CAAC;AAClD,CAAC;AAED,SAASL,OAAO"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@oanda/labs-order-book-widget",
3
- "version": "1.0.20",
3
+ "version": "1.0.21",
4
4
  "description": "Labs Order Book Widget",
5
5
  "main": "dist/main/index.js",
6
6
  "module": "dist/module/index.js",
@@ -10,10 +10,10 @@
10
10
  "author": "OANDA",
11
11
  "license": "UNLICENSED",
12
12
  "dependencies": {
13
- "@oanda/labs-widget-common": "^1.0.20",
13
+ "@oanda/labs-widget-common": "^1.0.21",
14
14
  "chart.js": "4.3.3",
15
15
  "chartjs-plugin-zoom": "2.0.1",
16
16
  "react-chartjs-2": "5.2.0"
17
17
  },
18
- "gitHead": "25750dbc05f7ffe1de95e0a0b60d01303cb8dc26"
18
+ "gitHead": "8b9fdfc0fb1e1cee0334134b9a1ce400fd9cae59"
19
19
  }