@oanda/labs-widget-common 1.0.224 → 1.0.226
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 +1780 -0
- package/dist/main/components/TableWidget/ColumnRenderer.js +7 -1
- package/dist/main/components/TableWidget/ColumnRenderer.js.map +1 -1
- package/dist/main/hooks/useLiveRatesQuery.js.map +1 -1
- package/dist/main/hooks/useVisibleLiveDataRecord.js +2 -1
- package/dist/main/hooks/useVisibleLiveDataRecord.js.map +1 -1
- package/dist/main/providers/LiveRates/LiveRatesProvider.js +25 -2
- package/dist/main/providers/LiveRates/LiveRatesProvider.js.map +1 -1
- package/dist/main/providers/Widget/WidgetProvider.js +3 -1
- package/dist/main/providers/Widget/WidgetProvider.js.map +1 -1
- package/dist/main/types/dataTypes.js +1 -0
- package/dist/main/types/dataTypes.js.map +1 -1
- package/dist/main/types/liveRatesTypes.js.map +1 -1
- package/dist/main/utils/liveRates/buildUrl.js +1 -1
- package/dist/main/utils/liveRates/buildUrl.js.map +1 -1
- package/dist/module/components/TableWidget/ColumnRenderer.js +7 -1
- package/dist/module/components/TableWidget/ColumnRenderer.js.map +1 -1
- package/dist/module/hooks/useLiveRatesQuery.js.map +1 -1
- package/dist/module/hooks/useVisibleLiveDataRecord.js +2 -1
- package/dist/module/hooks/useVisibleLiveDataRecord.js.map +1 -1
- package/dist/module/providers/LiveRates/LiveRatesProvider.js +25 -2
- package/dist/module/providers/LiveRates/LiveRatesProvider.js.map +1 -1
- package/dist/module/providers/Widget/WidgetProvider.js +3 -1
- package/dist/module/providers/Widget/WidgetProvider.js.map +1 -1
- package/dist/module/types/dataTypes.js +1 -0
- package/dist/module/types/dataTypes.js.map +1 -1
- package/dist/module/types/liveRatesTypes.js.map +1 -1
- package/dist/module/utils/liveRates/buildUrl.js +1 -1
- package/dist/module/utils/liveRates/buildUrl.js.map +1 -1
- package/dist/types/types/dataTypes.d.ts +3 -1
- package/dist/types/types/liveRatesTypes.d.ts +2 -1
- package/package.json +2 -2
- package/src/components/TableWidget/ColumnRenderer.tsx +10 -0
- package/src/hooks/useLiveRatesQuery.ts +5 -1
- package/src/hooks/useVisibleLiveDataRecord.ts +1 -0
- package/src/providers/LiveRates/LiveRatesProvider.tsx +44 -3
- package/src/providers/Widget/WidgetProvider.tsx +8 -2
- package/src/types/dataTypes.ts +2 -0
- package/src/types/liveRatesTypes.ts +2 -1
- package/src/utils/liveRates/buildUrl.ts +1 -1
- package/test/components/TableWidget/Cards.test.tsx +0 -24
|
@@ -79,7 +79,13 @@ const ColumnRenderer = _ref => {
|
|
|
79
79
|
isError: isError,
|
|
80
80
|
isLoading: isLoading,
|
|
81
81
|
loaderSize: _Loader.LoaderSize.sm
|
|
82
|
-
}, _react.default.createElement("span", null, record.tradeMode))
|
|
82
|
+
}, _react.default.createElement("span", null, record.tradeMode)),
|
|
83
|
+
[_types.DataRecordType.DATA_SOURCE]: () => _react.default.createElement(_Table.TableCell, {
|
|
84
|
+
key: _types.DataRecordType.TRADE_MODE,
|
|
85
|
+
isError: !record.dataSource,
|
|
86
|
+
isLoading: isLoading,
|
|
87
|
+
loaderSize: _Loader.LoaderSize.sm
|
|
88
|
+
}, _react.default.createElement("span", null, record.dataSource))
|
|
83
89
|
};
|
|
84
90
|
return activeColumns.map(item => {
|
|
85
91
|
var _allColumns$item, _allColumns$item2;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ColumnRenderer.js","names":["_react","_interopRequireDefault","require","_types","_Loader","_Table","e","__esModule","default","ColumnRenderer","_ref","record","isLoading","isChartLoading","isError","activeColumns","chart","allColumns","DataRecordType","SELL","createElement","PriceColumn","column","displayPrecision","price","sell","priceMovement","sellPriceMovement","BUY","buy","buyPriceMovement","DAILY_CHANGE","DailyChangeColumn","dailyPercentChange","CHART","ChartColumn","percentChange","SPREAD","SpreadColumn","value","spread","SENTIMENT","SentimentColumn","sentiment","HIGH","TableCell","key","high","undefined","loaderSize","LoaderSize","sm","LOW","low","SYMBOL","md","type","instrument","TRADE_MODE","additionalPaddingRight","tradeMode","map","item","_allColumns$item","_allColumns$item2","Fragment","call","exports"],"sources":["../../../../src/components/TableWidget/ColumnRenderer.tsx"],"sourcesContent":["import React from 'react';\n\nimport { type DataRecord, DataRecordType } from '../../types';\nimport { LoaderSize } from '../Loader';\nimport {\n ChartColumn,\n DailyChangeColumn,\n PriceColumn,\n SentimentColumn,\n SpreadColumn,\n TableCell,\n} from '../Table';\n\ninterface ColumnRendererProps {\n record: DataRecord;\n chart?: number[];\n isLoading: boolean;\n isChartLoading?: boolean;\n isError: boolean;\n activeColumns: DataRecordType[];\n}\n\nexport const ColumnRenderer = ({\n record,\n isLoading,\n isChartLoading,\n isError,\n activeColumns,\n chart,\n}: ColumnRendererProps) => {\n const allColumns: Partial<Record<DataRecordType, () => JSX.Element>> = {\n [DataRecordType.SELL]: () => (\n <PriceColumn\n column={DataRecordType.SELL}\n displayPrecision={record.displayPrecision}\n isError={isError}\n isLoading={isLoading}\n price={record.sell}\n priceMovement={record.sellPriceMovement}\n />\n ),\n [DataRecordType.BUY]: () => (\n <PriceColumn\n column={DataRecordType.BUY}\n displayPrecision={record.displayPrecision}\n isError={isError}\n isLoading={isLoading}\n price={record.buy}\n priceMovement={record.buyPriceMovement}\n />\n ),\n [DataRecordType.DAILY_CHANGE]: () => (\n <DailyChangeColumn\n dailyPercentChange={record.dailyPercentChange}\n isError={isError}\n isLoading={isLoading}\n />\n ),\n [DataRecordType.CHART]: () => (\n <ChartColumn\n chart={chart ?? []}\n isLoading={!!isChartLoading}\n percentChange={record.dailyPercentChange}\n />\n ),\n [DataRecordType.SPREAD]: () => (\n <SpreadColumn\n isError={isError}\n isLoading={isLoading}\n value={record.spread}\n />\n ),\n [DataRecordType.SENTIMENT]: () => (\n <SentimentColumn isLoading={isLoading} sentiment={record.sentiment} />\n ),\n [DataRecordType.HIGH]: () => (\n <TableCell\n key={DataRecordType.SPREAD}\n isError={isError}\n isLoading={isLoading || (record.high === undefined && !isError)}\n loaderSize={LoaderSize.sm}\n >\n <span>{record.high}</span>\n </TableCell>\n ),\n [DataRecordType.LOW]: () => (\n <TableCell\n key={DataRecordType.LOW}\n isError={isError}\n isLoading={isLoading || (record.low === undefined && !isError)}\n loaderSize={LoaderSize.sm}\n >\n <span>{record.low}</span>\n </TableCell>\n ),\n [DataRecordType.SYMBOL]: () => (\n <TableCell\n key={DataRecordType.SYMBOL}\n isError={isError}\n isLoading={isLoading}\n loaderSize={LoaderSize.md}\n type=\"textCentered\"\n >\n <span>{record.instrument}</span>\n </TableCell>\n ),\n [DataRecordType.TRADE_MODE]: () => (\n <TableCell\n key={DataRecordType.TRADE_MODE}\n additionalPaddingRight={true}\n isError={isError}\n isLoading={isLoading}\n loaderSize={LoaderSize.sm}\n >\n <span>{record.tradeMode}</span>\n </TableCell>\n ),\n };\n\n return activeColumns.map((item) => (\n <React.Fragment key={item}>{allColumns[item]?.() ?? null}</React.Fragment>\n ));\n};\n"],"mappings":"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
|
|
1
|
+
{"version":3,"file":"ColumnRenderer.js","names":["_react","_interopRequireDefault","require","_types","_Loader","_Table","e","__esModule","default","ColumnRenderer","_ref","record","isLoading","isChartLoading","isError","activeColumns","chart","allColumns","DataRecordType","SELL","createElement","PriceColumn","column","displayPrecision","price","sell","priceMovement","sellPriceMovement","BUY","buy","buyPriceMovement","DAILY_CHANGE","DailyChangeColumn","dailyPercentChange","CHART","ChartColumn","percentChange","SPREAD","SpreadColumn","value","spread","SENTIMENT","SentimentColumn","sentiment","HIGH","TableCell","key","high","undefined","loaderSize","LoaderSize","sm","LOW","low","SYMBOL","md","type","instrument","TRADE_MODE","additionalPaddingRight","tradeMode","DATA_SOURCE","dataSource","map","item","_allColumns$item","_allColumns$item2","Fragment","call","exports"],"sources":["../../../../src/components/TableWidget/ColumnRenderer.tsx"],"sourcesContent":["import React from 'react';\n\nimport { type DataRecord, DataRecordType } from '../../types';\nimport { LoaderSize } from '../Loader';\nimport {\n ChartColumn,\n DailyChangeColumn,\n PriceColumn,\n SentimentColumn,\n SpreadColumn,\n TableCell,\n} from '../Table';\n\ninterface ColumnRendererProps {\n record: DataRecord;\n chart?: number[];\n isLoading: boolean;\n isChartLoading?: boolean;\n isError: boolean;\n activeColumns: DataRecordType[];\n}\n\nexport const ColumnRenderer = ({\n record,\n isLoading,\n isChartLoading,\n isError,\n activeColumns,\n chart,\n}: ColumnRendererProps) => {\n const allColumns: Partial<Record<DataRecordType, () => JSX.Element>> = {\n [DataRecordType.SELL]: () => (\n <PriceColumn\n column={DataRecordType.SELL}\n displayPrecision={record.displayPrecision}\n isError={isError}\n isLoading={isLoading}\n price={record.sell}\n priceMovement={record.sellPriceMovement}\n />\n ),\n [DataRecordType.BUY]: () => (\n <PriceColumn\n column={DataRecordType.BUY}\n displayPrecision={record.displayPrecision}\n isError={isError}\n isLoading={isLoading}\n price={record.buy}\n priceMovement={record.buyPriceMovement}\n />\n ),\n [DataRecordType.DAILY_CHANGE]: () => (\n <DailyChangeColumn\n dailyPercentChange={record.dailyPercentChange}\n isError={isError}\n isLoading={isLoading}\n />\n ),\n [DataRecordType.CHART]: () => (\n <ChartColumn\n chart={chart ?? []}\n isLoading={!!isChartLoading}\n percentChange={record.dailyPercentChange}\n />\n ),\n [DataRecordType.SPREAD]: () => (\n <SpreadColumn\n isError={isError}\n isLoading={isLoading}\n value={record.spread}\n />\n ),\n [DataRecordType.SENTIMENT]: () => (\n <SentimentColumn isLoading={isLoading} sentiment={record.sentiment} />\n ),\n [DataRecordType.HIGH]: () => (\n <TableCell\n key={DataRecordType.SPREAD}\n isError={isError}\n isLoading={isLoading || (record.high === undefined && !isError)}\n loaderSize={LoaderSize.sm}\n >\n <span>{record.high}</span>\n </TableCell>\n ),\n [DataRecordType.LOW]: () => (\n <TableCell\n key={DataRecordType.LOW}\n isError={isError}\n isLoading={isLoading || (record.low === undefined && !isError)}\n loaderSize={LoaderSize.sm}\n >\n <span>{record.low}</span>\n </TableCell>\n ),\n [DataRecordType.SYMBOL]: () => (\n <TableCell\n key={DataRecordType.SYMBOL}\n isError={isError}\n isLoading={isLoading}\n loaderSize={LoaderSize.md}\n type=\"textCentered\"\n >\n <span>{record.instrument}</span>\n </TableCell>\n ),\n [DataRecordType.TRADE_MODE]: () => (\n <TableCell\n key={DataRecordType.TRADE_MODE}\n additionalPaddingRight={true}\n isError={isError}\n isLoading={isLoading}\n loaderSize={LoaderSize.sm}\n >\n <span>{record.tradeMode}</span>\n </TableCell>\n ),\n [DataRecordType.DATA_SOURCE]: () => (\n <TableCell\n key={DataRecordType.TRADE_MODE}\n isError={!record.dataSource}\n isLoading={isLoading}\n loaderSize={LoaderSize.sm}\n >\n <span>{record.dataSource}</span>\n </TableCell>\n ),\n };\n\n return activeColumns.map((item) => (\n <React.Fragment key={item}>{allColumns[item]?.() ?? null}</React.Fragment>\n ));\n};\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useLiveRatesQuery.js","names":["_constants","require","_providers","useLiveRatesQuery","skip","liveRates","useLiveRatesProvider","setQuery","query","_liveRates$target","target","dispatchEvent","CustomEvent","SET_QUERY_EVENT_NAME","detail","closeQuery","_liveRates$source","source","close","exports"],"sources":["../../../src/hooks/useLiveRatesQuery.ts"],"sourcesContent":["import { SET_QUERY_EVENT_NAME } from '../constants';\nimport { useLiveRatesProvider } from '../providers';\nimport type {\n LiveRatesProviderQuery,\n LiveRatesTargetHookReturnObject,\n} from '../types';\n\nexport const useLiveRatesQuery = (\n skip?: boolean\n): LiveRatesTargetHookReturnObject => {\n const liveRates = useLiveRatesProvider(skip);\n\n const setQuery = (query: LiveRatesProviderQuery) => {\n liveRates?.target?.dispatchEvent(\n new CustomEvent(SET_QUERY_EVENT_NAME, { detail: query })\n );\n };\n\n const closeQuery = () => {\n liveRates?.source?.close();\n };\n\n return {
|
|
1
|
+
{"version":3,"file":"useLiveRatesQuery.js","names":["_constants","require","_providers","useLiveRatesQuery","skip","liveRates","useLiveRatesProvider","setQuery","query","_liveRates$target","target","dispatchEvent","CustomEvent","SET_QUERY_EVENT_NAME","detail","closeQuery","_liveRates$source","source","close","exports"],"sources":["../../../src/hooks/useLiveRatesQuery.ts"],"sourcesContent":["import { SET_QUERY_EVENT_NAME } from '../constants';\nimport { useLiveRatesProvider } from '../providers';\nimport type {\n LiveRatesProviderQuery,\n LiveRatesTargetHookReturnObject,\n} from '../types';\n\nexport const useLiveRatesQuery = (\n skip?: boolean\n): LiveRatesTargetHookReturnObject => {\n const liveRates = useLiveRatesProvider(skip);\n\n const setQuery = (query: LiveRatesProviderQuery) => {\n liveRates?.target?.dispatchEvent(\n new CustomEvent(SET_QUERY_EVENT_NAME, { detail: query })\n );\n };\n\n const closeQuery = () => {\n liveRates?.source?.close();\n };\n\n return {\n target: liveRates?.target || null,\n setQuery,\n closeQuery,\n };\n};\n"],"mappings":";;;;;;AAAA,IAAAA,UAAA,GAAAC,OAAA;AACA,IAAAC,UAAA,GAAAD,OAAA;AAMO,MAAME,iBAAiB,GAC5BC,IAAc,IACsB;EACpC,MAAMC,SAAS,GAAG,IAAAC,+BAAoB,EAACF,IAAI,CAAC;EAE5C,MAAMG,QAAQ,GAAIC,KAA6B,IAAK;IAAA,IAAAC,iBAAA;IAClDJ,SAAS,aAATA,SAAS,gBAAAI,iBAAA,GAATJ,SAAS,CAAEK,MAAM,cAAAD,iBAAA,eAAjBA,iBAAA,CAAmBE,aAAa,CAC9B,IAAIC,WAAW,CAACC,+BAAoB,EAAE;MAAEC,MAAM,EAAEN;IAAM,CAAC,CACzD,CAAC;EACH,CAAC;EAED,MAAMO,UAAU,GAAGA,CAAA,KAAM;IAAA,IAAAC,iBAAA;IACvBX,SAAS,aAATA,SAAS,gBAAAW,iBAAA,GAATX,SAAS,CAAEY,MAAM,cAAAD,iBAAA,eAAjBA,iBAAA,CAAmBE,KAAK,CAAC,CAAC;EAC5B,CAAC;EAED,OAAO;IACLR,MAAM,EAAE,CAAAL,SAAS,aAATA,SAAS,uBAATA,SAAS,CAAEK,MAAM,KAAI,IAAI;IACjCH,QAAQ;IACRQ;EACF,CAAC;AACH,CAAC;AAACI,OAAA,CAAAhB,iBAAA,GAAAA,iBAAA","ignoreList":[]}
|
|
@@ -36,7 +36,8 @@ const useVisibleLiveDataRecord = (record, target) => {
|
|
|
36
36
|
spread: update === null || update === void 0 ? void 0 : update.spread,
|
|
37
37
|
displayPrecision: update === null || update === void 0 ? void 0 : update.displayPrecision,
|
|
38
38
|
high: update === null || update === void 0 ? void 0 : update.high,
|
|
39
|
-
low: update === null || update === void 0 ? void 0 : update.low
|
|
39
|
+
low: update === null || update === void 0 ? void 0 : update.low,
|
|
40
|
+
dataSource: record.dataSource
|
|
40
41
|
});
|
|
41
42
|
setError(liveRatesError);
|
|
42
43
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useVisibleLiveDataRecord.js","names":["_react","require","_usehooksTs","_useLiveRatesMessage","useVisibleLiveDataRecord","record","target","updatedRecord","setUpdatedRecord","useState","displayName","instrument","sentiment","tradeMode","error","setError","entry","useIntersectionObserver","isVisible","isIntersecting","update","liveRatesError","useLiveRatesMessage","useEffect","buy","ask","sell","bid","buyPriceMovement","askPriceMovement","sellPriceMovement","bidPriceMovement","dailyPercentChange","dailyPercentChangeFromOpen","spread","displayPrecision","high","low","ref","exports"],"sources":["../../../src/hooks/useVisibleLiveDataRecord.ts"],"sourcesContent":["import { useEffect, useState } from 'react';\nimport { useIntersectionObserver } from 'usehooks-ts';\n\nimport type { DataRecord, EmptyRecord, LiveRatesErrorMessage } from '../types';\nimport { useLiveRatesMessage } from './useLiveRatesMessage';\n\nexport const useVisibleLiveDataRecord = (\n record: DataRecord | EmptyRecord,\n target: EventTarget | null\n) => {\n const [updatedRecord, setUpdatedRecord] = useState<DataRecord>({\n displayName: record.displayName,\n instrument: record.instrument,\n sentiment: record.sentiment,\n tradeMode: record.tradeMode,\n });\n\n const [error, setError] = useState<LiveRatesErrorMessage | null>(null);\n const entry = useIntersectionObserver();\n const isVisible = !!entry?.isIntersecting;\n\n const { update, error: liveRatesError } = useLiveRatesMessage(\n record.instrument,\n target\n );\n\n useEffect(() => {\n if (isVisible) {\n setUpdatedRecord({\n displayName: record.displayName,\n instrument: record.instrument,\n sentiment: record.sentiment,\n tradeMode: record.tradeMode,\n buy: update?.ask,\n sell: update?.bid,\n buyPriceMovement: update?.askPriceMovement,\n sellPriceMovement: update?.bidPriceMovement,\n dailyPercentChange: update?.dailyPercentChangeFromOpen,\n spread: update?.spread,\n displayPrecision: update?.displayPrecision,\n high: update?.high,\n low: update?.low,\n });\n setError(liveRatesError);\n }\n }, [update, record, isVisible, liveRatesError]);\n\n return {\n updatedRecord,\n error,\n ref: entry.ref,\n };\n};\n"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AACA,IAAAC,WAAA,GAAAD,OAAA;AAGA,IAAAE,oBAAA,GAAAF,OAAA;AAEO,MAAMG,wBAAwB,GAAGA,CACtCC,MAAgC,EAChCC,MAA0B,KACvB;EACH,MAAM,CAACC,aAAa,EAAEC,gBAAgB,CAAC,GAAG,IAAAC,eAAQ,EAAa;IAC7DC,WAAW,EAAEL,MAAM,CAACK,WAAW;IAC/BC,UAAU,EAAEN,MAAM,CAACM,UAAU;IAC7BC,SAAS,EAAEP,MAAM,CAACO,SAAS;IAC3BC,SAAS,EAAER,MAAM,CAACQ;EACpB,CAAC,CAAC;EAEF,MAAM,CAACC,KAAK,EAAEC,QAAQ,CAAC,GAAG,IAAAN,eAAQ,EAA+B,IAAI,CAAC;EACtE,MAAMO,KAAK,GAAG,IAAAC,mCAAuB,EAAC,CAAC;EACvC,MAAMC,SAAS,GAAG,CAAC,EAACF,KAAK,aAALA,KAAK,eAALA,KAAK,CAAEG,cAAc;EAEzC,MAAM;IAAEC,MAAM;IAAEN,KAAK,EAAEO;EAAe,CAAC,GAAG,IAAAC,wCAAmB,EAC3DjB,MAAM,CAACM,UAAU,EACjBL,MACF,CAAC;EAED,IAAAiB,gBAAS,EAAC,MAAM;IACd,IAAIL,SAAS,EAAE;MACbV,gBAAgB,CAAC;QACfE,WAAW,EAAEL,MAAM,CAACK,WAAW;QAC/BC,UAAU,EAAEN,MAAM,CAACM,UAAU;QAC7BC,SAAS,EAAEP,MAAM,CAACO,SAAS;QAC3BC,SAAS,EAAER,MAAM,CAACQ,SAAS;QAC3BW,GAAG,EAAEJ,MAAM,aAANA,MAAM,uBAANA,MAAM,CAAEK,GAAG;QAChBC,IAAI,EAAEN,MAAM,aAANA,MAAM,uBAANA,MAAM,CAAEO,GAAG;QACjBC,gBAAgB,EAAER,MAAM,aAANA,MAAM,uBAANA,MAAM,CAAES,gBAAgB;QAC1CC,iBAAiB,EAAEV,MAAM,aAANA,MAAM,uBAANA,MAAM,CAAEW,gBAAgB;QAC3CC,kBAAkB,EAAEZ,MAAM,aAANA,MAAM,uBAANA,MAAM,CAAEa,0BAA0B;QACtDC,MAAM,EAAEd,MAAM,aAANA,MAAM,uBAANA,MAAM,CAAEc,MAAM;QACtBC,gBAAgB,EAAEf,MAAM,aAANA,MAAM,uBAANA,MAAM,CAAEe,gBAAgB;QAC1CC,IAAI,EAAEhB,MAAM,aAANA,MAAM,uBAANA,MAAM,CAAEgB,IAAI;QAClBC,GAAG,EAAEjB,MAAM,aAANA,MAAM,uBAANA,MAAM,CAAEiB;
|
|
1
|
+
{"version":3,"file":"useVisibleLiveDataRecord.js","names":["_react","require","_usehooksTs","_useLiveRatesMessage","useVisibleLiveDataRecord","record","target","updatedRecord","setUpdatedRecord","useState","displayName","instrument","sentiment","tradeMode","error","setError","entry","useIntersectionObserver","isVisible","isIntersecting","update","liveRatesError","useLiveRatesMessage","useEffect","buy","ask","sell","bid","buyPriceMovement","askPriceMovement","sellPriceMovement","bidPriceMovement","dailyPercentChange","dailyPercentChangeFromOpen","spread","displayPrecision","high","low","dataSource","ref","exports"],"sources":["../../../src/hooks/useVisibleLiveDataRecord.ts"],"sourcesContent":["import { useEffect, useState } from 'react';\nimport { useIntersectionObserver } from 'usehooks-ts';\n\nimport type { DataRecord, EmptyRecord, LiveRatesErrorMessage } from '../types';\nimport { useLiveRatesMessage } from './useLiveRatesMessage';\n\nexport const useVisibleLiveDataRecord = (\n record: DataRecord | EmptyRecord,\n target: EventTarget | null\n) => {\n const [updatedRecord, setUpdatedRecord] = useState<DataRecord>({\n displayName: record.displayName,\n instrument: record.instrument,\n sentiment: record.sentiment,\n tradeMode: record.tradeMode,\n });\n\n const [error, setError] = useState<LiveRatesErrorMessage | null>(null);\n const entry = useIntersectionObserver();\n const isVisible = !!entry?.isIntersecting;\n\n const { update, error: liveRatesError } = useLiveRatesMessage(\n record.instrument,\n target\n );\n\n useEffect(() => {\n if (isVisible) {\n setUpdatedRecord({\n displayName: record.displayName,\n instrument: record.instrument,\n sentiment: record.sentiment,\n tradeMode: record.tradeMode,\n buy: update?.ask,\n sell: update?.bid,\n buyPriceMovement: update?.askPriceMovement,\n sellPriceMovement: update?.bidPriceMovement,\n dailyPercentChange: update?.dailyPercentChangeFromOpen,\n spread: update?.spread,\n displayPrecision: update?.displayPrecision,\n high: update?.high,\n low: update?.low,\n dataSource: record.dataSource,\n });\n setError(liveRatesError);\n }\n }, [update, record, isVisible, liveRatesError]);\n\n return {\n updatedRecord,\n error,\n ref: entry.ref,\n };\n};\n"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AACA,IAAAC,WAAA,GAAAD,OAAA;AAGA,IAAAE,oBAAA,GAAAF,OAAA;AAEO,MAAMG,wBAAwB,GAAGA,CACtCC,MAAgC,EAChCC,MAA0B,KACvB;EACH,MAAM,CAACC,aAAa,EAAEC,gBAAgB,CAAC,GAAG,IAAAC,eAAQ,EAAa;IAC7DC,WAAW,EAAEL,MAAM,CAACK,WAAW;IAC/BC,UAAU,EAAEN,MAAM,CAACM,UAAU;IAC7BC,SAAS,EAAEP,MAAM,CAACO,SAAS;IAC3BC,SAAS,EAAER,MAAM,CAACQ;EACpB,CAAC,CAAC;EAEF,MAAM,CAACC,KAAK,EAAEC,QAAQ,CAAC,GAAG,IAAAN,eAAQ,EAA+B,IAAI,CAAC;EACtE,MAAMO,KAAK,GAAG,IAAAC,mCAAuB,EAAC,CAAC;EACvC,MAAMC,SAAS,GAAG,CAAC,EAACF,KAAK,aAALA,KAAK,eAALA,KAAK,CAAEG,cAAc;EAEzC,MAAM;IAAEC,MAAM;IAAEN,KAAK,EAAEO;EAAe,CAAC,GAAG,IAAAC,wCAAmB,EAC3DjB,MAAM,CAACM,UAAU,EACjBL,MACF,CAAC;EAED,IAAAiB,gBAAS,EAAC,MAAM;IACd,IAAIL,SAAS,EAAE;MACbV,gBAAgB,CAAC;QACfE,WAAW,EAAEL,MAAM,CAACK,WAAW;QAC/BC,UAAU,EAAEN,MAAM,CAACM,UAAU;QAC7BC,SAAS,EAAEP,MAAM,CAACO,SAAS;QAC3BC,SAAS,EAAER,MAAM,CAACQ,SAAS;QAC3BW,GAAG,EAAEJ,MAAM,aAANA,MAAM,uBAANA,MAAM,CAAEK,GAAG;QAChBC,IAAI,EAAEN,MAAM,aAANA,MAAM,uBAANA,MAAM,CAAEO,GAAG;QACjBC,gBAAgB,EAAER,MAAM,aAANA,MAAM,uBAANA,MAAM,CAAES,gBAAgB;QAC1CC,iBAAiB,EAAEV,MAAM,aAANA,MAAM,uBAANA,MAAM,CAAEW,gBAAgB;QAC3CC,kBAAkB,EAAEZ,MAAM,aAANA,MAAM,uBAANA,MAAM,CAAEa,0BAA0B;QACtDC,MAAM,EAAEd,MAAM,aAANA,MAAM,uBAANA,MAAM,CAAEc,MAAM;QACtBC,gBAAgB,EAAEf,MAAM,aAANA,MAAM,uBAANA,MAAM,CAAEe,gBAAgB;QAC1CC,IAAI,EAAEhB,MAAM,aAANA,MAAM,uBAANA,MAAM,CAAEgB,IAAI;QAClBC,GAAG,EAAEjB,MAAM,aAANA,MAAM,uBAANA,MAAM,CAAEiB,GAAG;QAChBC,UAAU,EAAEjC,MAAM,CAACiC;MACrB,CAAC,CAAC;MACFvB,QAAQ,CAACM,cAAc,CAAC;IAC1B;EACF,CAAC,EAAE,CAACD,MAAM,EAAEf,MAAM,EAAEa,SAAS,EAAEG,cAAc,CAAC,CAAC;EAE/C,OAAO;IACLd,aAAa;IACbO,KAAK;IACLyB,GAAG,EAAEvB,KAAK,CAACuB;EACb,CAAC;AACH,CAAC;AAACC,OAAA,CAAApC,wBAAA,GAAAA,wBAAA","ignoreList":[]}
|
|
@@ -4,6 +4,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.LiveRatesProvider = void 0;
|
|
7
|
+
var _graphql = require("@oanda/labs-instruments-table-widget/src/gql/types/graphql");
|
|
7
8
|
var _react = _interopRequireWildcard(require("react"));
|
|
8
9
|
var _constants = require("../../constants");
|
|
9
10
|
var _liveRates = require("../../utils/liveRates");
|
|
@@ -22,15 +23,26 @@ const LiveRatesProvider = _ref => {
|
|
|
22
23
|
children,
|
|
23
24
|
eventSource,
|
|
24
25
|
eventTarget,
|
|
25
|
-
eventName = _constants.LIVE_RATES_EVENT_NAME
|
|
26
|
+
eventName = _constants.LIVE_RATES_EVENT_NAME,
|
|
27
|
+
multipleDataSources = false
|
|
26
28
|
} = _ref;
|
|
27
29
|
const [source, setSource] = (0, _react.useState)(eventSource || query && new EventSource((0, _liveRates.buildUrl)(url, query, options)));
|
|
30
|
+
const [secondSource, setSecondSource] = (0, _react.useState)(undefined);
|
|
28
31
|
const target = eventTarget || new EventTarget();
|
|
29
32
|
const setQueryListener = _ref2 => {
|
|
30
33
|
let {
|
|
31
34
|
detail
|
|
32
35
|
} = _ref2;
|
|
33
|
-
|
|
36
|
+
if (multipleDataSources) {
|
|
37
|
+
if ((detail === null || detail === void 0 ? void 0 : detail.dataSource) === _graphql.DataSource.Mt5) {
|
|
38
|
+
setSecondSource(new EventSource((0, _liveRates.buildUrl)(url, detail, options)));
|
|
39
|
+
}
|
|
40
|
+
if ((detail === null || detail === void 0 ? void 0 : detail.dataSource) === _graphql.DataSource.V20) {
|
|
41
|
+
setSource(new EventSource((0, _liveRates.buildUrl)(url, detail, options)));
|
|
42
|
+
}
|
|
43
|
+
} else {
|
|
44
|
+
setSource(new EventSource((0, _liveRates.buildUrl)(url, detail, options)));
|
|
45
|
+
}
|
|
34
46
|
};
|
|
35
47
|
target.addEventListener(_constants.SET_QUERY_EVENT_NAME, setQueryListener);
|
|
36
48
|
(0, _react.useEffect)(() => {
|
|
@@ -48,12 +60,23 @@ const LiveRatesProvider = _ref => {
|
|
|
48
60
|
source === null || source === void 0 || source.addEventListener(eventName, listener(eventName));
|
|
49
61
|
source === null || source === void 0 || source.addEventListener(_constants.LIVE_RATES_RATE_ERROR, listener(_constants.LIVE_RATES_RATE_ERROR));
|
|
50
62
|
source === null || source === void 0 || source.addEventListener('error', listener(_constants.LIVE_RATES_CONNECTION_ERROR));
|
|
63
|
+
if (multipleDataSources && secondSource) {
|
|
64
|
+
secondSource === null || secondSource === void 0 || secondSource.addEventListener(eventName, listener(eventName));
|
|
65
|
+
secondSource === null || secondSource === void 0 || secondSource.addEventListener(_constants.LIVE_RATES_RATE_ERROR, listener(_constants.LIVE_RATES_RATE_ERROR));
|
|
66
|
+
secondSource === null || secondSource === void 0 || secondSource.addEventListener('error', listener(_constants.LIVE_RATES_CONNECTION_ERROR));
|
|
67
|
+
}
|
|
51
68
|
return () => {
|
|
52
69
|
target.removeEventListener(_constants.SET_QUERY_EVENT_NAME, setQueryListener);
|
|
53
70
|
source === null || source === void 0 || source.removeEventListener(eventName, listener(eventName));
|
|
54
71
|
source === null || source === void 0 || source.removeEventListener(_constants.LIVE_RATES_RATE_ERROR, listener(_constants.LIVE_RATES_RATE_ERROR));
|
|
55
72
|
source === null || source === void 0 || source.removeEventListener('error', listener(_constants.LIVE_RATES_CONNECTION_ERROR));
|
|
56
73
|
source === null || source === void 0 || source.close();
|
|
74
|
+
if (multipleDataSources && secondSource) {
|
|
75
|
+
secondSource === null || secondSource === void 0 || secondSource.removeEventListener(eventName, listener(eventName));
|
|
76
|
+
secondSource === null || secondSource === void 0 || secondSource.removeEventListener(_constants.LIVE_RATES_RATE_ERROR, listener(_constants.LIVE_RATES_RATE_ERROR));
|
|
77
|
+
secondSource === null || secondSource === void 0 || secondSource.removeEventListener('error', listener(_constants.LIVE_RATES_CONNECTION_ERROR));
|
|
78
|
+
secondSource === null || secondSource === void 0 || secondSource.close();
|
|
79
|
+
}
|
|
57
80
|
};
|
|
58
81
|
}, [source, target]);
|
|
59
82
|
return _react.default.createElement(_LiveRatesContext.LiveRatesContext.Provider, {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LiveRatesProvider.js","names":["_react","_interopRequireWildcard","require","_constants","_liveRates","_LiveRatesContext","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","ownKeys","keys","getOwnPropertySymbols","filter","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","_toPropertyKey","value","configurable","writable","_toPrimitive","Symbol","toPrimitive","TypeError","String","Number","LiveRatesProvider","_ref","url","query","options","children","eventSource","eventTarget","eventName","LIVE_RATES_EVENT_NAME","source","setSource","useState","EventSource","buildUrl","target","EventTarget","setQueryListener","_ref2","detail","addEventListener","SET_QUERY_EVENT_NAME","useEffect","listener","messageType","message","LIVE_RATES_CONNECTION_ERROR","symbol","error","decodeLiveRateMessage","data","dispatchEvent","CustomEvent","LIVE_RATES_RATE_ERROR","removeEventListener","close","createElement","LiveRatesContext","Provider","exports"],"sources":["../../../../src/providers/LiveRates/LiveRatesProvider.tsx"],"sourcesContent":["import type { PropsWithChildren, ReactElement } from 'react';\nimport React, { useEffect, useState } from 'react';\n\nimport {\n LIVE_RATES_CONNECTION_ERROR,\n LIVE_RATES_EVENT_NAME,\n LIVE_RATES_RATE_ERROR,\n SET_QUERY_EVENT_NAME,\n} from '../../constants';\nimport type {\n LiveRatesConfig,\n LiveRatesConnectionErrorMessage,\n LiveRatesErrorMessage,\n LiveRatesUpdateMessage,\n} from '../../types';\nimport { buildUrl, decodeLiveRateMessage } from '../../utils/liveRates';\nimport { LiveRatesContext } from './LiveRatesContext';\n\ntype LiveRatesProviderProps = PropsWithChildren & LiveRatesConfig;\n\nexport const LiveRatesProvider: React.FC<LiveRatesProviderProps> = ({\n url,\n query,\n options,\n children,\n eventSource,\n eventTarget,\n eventName = LIVE_RATES_EVENT_NAME,\n}): ReactElement => {\n const [source, setSource] = useState(\n eventSource || (query && new EventSource(buildUrl(url, query, options)))\n );\n const target = eventTarget || new EventTarget();\n\n const setQueryListener: EventListener = ({ detail }: CustomEventInit) => {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-argument\n setSource(new EventSource(buildUrl(url, detail, options)));\n };\n\n target.addEventListener(SET_QUERY_EVENT_NAME, setQueryListener);\n\n useEffect(\n () => {\n const listener =\n (messageType: string) => (e: MessageEventInit<string>) => {\n const message =\n messageType === LIVE_RATES_CONNECTION_ERROR\n ? ({\n symbol: LIVE_RATES_CONNECTION_ERROR,\n error: 'Connection error',\n } as LiveRatesConnectionErrorMessage)\n : decodeLiveRateMessage(e.data as string);\n\n target.dispatchEvent(\n new CustomEvent<\n | LiveRatesUpdateMessage\n | LiveRatesErrorMessage\n | LiveRatesConnectionErrorMessage\n >(message.symbol, {\n detail: { messageType, ...message },\n })\n );\n };\n\n source?.addEventListener(eventName, listener(eventName));\n source?.addEventListener(\n LIVE_RATES_RATE_ERROR,\n listener(LIVE_RATES_RATE_ERROR)\n );\n source?.addEventListener('error', listener(LIVE_RATES_CONNECTION_ERROR));\n\n return () => {\n target.removeEventListener(SET_QUERY_EVENT_NAME, setQueryListener);\n source?.removeEventListener(eventName, listener(eventName));\n source?.removeEventListener(\n LIVE_RATES_RATE_ERROR,\n listener(LIVE_RATES_RATE_ERROR)\n );\n source?.removeEventListener(\n 'error',\n listener(LIVE_RATES_CONNECTION_ERROR)\n );\n source?.close();\n };\n },\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [source, target]\n );\n\n return (\n <LiveRatesContext.Provider\n value={{\n target,\n source,\n }}\n >\n {children}\n </LiveRatesContext.Provider>\n );\n};\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"LiveRatesProvider.js","names":["_graphql","require","_react","_interopRequireWildcard","_constants","_liveRates","_LiveRatesContext","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","ownKeys","keys","getOwnPropertySymbols","filter","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","_toPropertyKey","value","configurable","writable","_toPrimitive","Symbol","toPrimitive","TypeError","String","Number","LiveRatesProvider","_ref","url","query","options","children","eventSource","eventTarget","eventName","LIVE_RATES_EVENT_NAME","multipleDataSources","source","setSource","useState","EventSource","buildUrl","secondSource","setSecondSource","undefined","target","EventTarget","setQueryListener","_ref2","detail","dataSource","DataSource","Mt5","V20","addEventListener","SET_QUERY_EVENT_NAME","useEffect","listener","messageType","message","LIVE_RATES_CONNECTION_ERROR","symbol","error","decodeLiveRateMessage","data","dispatchEvent","CustomEvent","LIVE_RATES_RATE_ERROR","removeEventListener","close","createElement","LiveRatesContext","Provider","exports"],"sources":["../../../../src/providers/LiveRates/LiveRatesProvider.tsx"],"sourcesContent":["import { DataSource } from '@oanda/labs-instruments-table-widget/src/gql/types/graphql';\nimport type { PropsWithChildren, ReactElement } from 'react';\nimport React, { useEffect, useState } from 'react';\n\nimport {\n LIVE_RATES_CONNECTION_ERROR,\n LIVE_RATES_EVENT_NAME,\n LIVE_RATES_RATE_ERROR,\n SET_QUERY_EVENT_NAME,\n} from '../../constants';\nimport type {\n LiveRatesConfig,\n LiveRatesConnectionErrorMessage,\n LiveRatesErrorMessage,\n LiveRatesProviderQuery,\n LiveRatesUpdateMessage,\n} from '../../types';\nimport { buildUrl, decodeLiveRateMessage } from '../../utils/liveRates';\nimport { LiveRatesContext } from './LiveRatesContext';\n\ntype LiveRatesProviderProps = PropsWithChildren & LiveRatesConfig;\n\nexport const LiveRatesProvider: React.FC<LiveRatesProviderProps> = ({\n url,\n query,\n options,\n children,\n eventSource,\n eventTarget,\n eventName = LIVE_RATES_EVENT_NAME,\n multipleDataSources = false,\n}): ReactElement => {\n const [source, setSource] = useState(\n eventSource || (query && new EventSource(buildUrl(url, query, options)))\n );\n const [secondSource, setSecondSource] = useState<EventSource | undefined>(\n undefined\n );\n const target = eventTarget || new EventTarget();\n\n const setQueryListener: EventListener = ({\n detail,\n }: CustomEventInit<LiveRatesProviderQuery>) => {\n if (multipleDataSources) {\n if (detail?.dataSource === DataSource.Mt5) {\n setSecondSource(new EventSource(buildUrl(url, detail, options)));\n }\n if (detail?.dataSource === DataSource.V20) {\n setSource(new EventSource(buildUrl(url, detail, options)));\n }\n } else {\n setSource(new EventSource(buildUrl(url, detail, options)));\n }\n };\n\n target.addEventListener(SET_QUERY_EVENT_NAME, setQueryListener);\n\n useEffect(\n () => {\n const listener =\n (messageType: string) => (e: MessageEventInit<string>) => {\n const message =\n messageType === LIVE_RATES_CONNECTION_ERROR\n ? ({\n symbol: LIVE_RATES_CONNECTION_ERROR,\n error: 'Connection error',\n } as LiveRatesConnectionErrorMessage)\n : decodeLiveRateMessage(e.data as string);\n\n target.dispatchEvent(\n new CustomEvent<\n | LiveRatesUpdateMessage\n | LiveRatesErrorMessage\n | LiveRatesConnectionErrorMessage\n >(message.symbol, {\n detail: { messageType, ...message },\n })\n );\n };\n\n source?.addEventListener(eventName, listener(eventName));\n source?.addEventListener(\n LIVE_RATES_RATE_ERROR,\n listener(LIVE_RATES_RATE_ERROR)\n );\n source?.addEventListener('error', listener(LIVE_RATES_CONNECTION_ERROR));\n\n if (multipleDataSources && secondSource) {\n secondSource?.addEventListener(eventName, listener(eventName));\n secondSource?.addEventListener(\n LIVE_RATES_RATE_ERROR,\n listener(LIVE_RATES_RATE_ERROR)\n );\n secondSource?.addEventListener(\n 'error',\n listener(LIVE_RATES_CONNECTION_ERROR)\n );\n }\n\n return () => {\n target.removeEventListener(SET_QUERY_EVENT_NAME, setQueryListener);\n source?.removeEventListener(eventName, listener(eventName));\n source?.removeEventListener(\n LIVE_RATES_RATE_ERROR,\n listener(LIVE_RATES_RATE_ERROR)\n );\n source?.removeEventListener(\n 'error',\n listener(LIVE_RATES_CONNECTION_ERROR)\n );\n source?.close();\n\n if (multipleDataSources && secondSource) {\n secondSource?.removeEventListener(eventName, listener(eventName));\n secondSource?.removeEventListener(\n LIVE_RATES_RATE_ERROR,\n listener(LIVE_RATES_RATE_ERROR)\n );\n secondSource?.removeEventListener(\n 'error',\n listener(LIVE_RATES_CONNECTION_ERROR)\n );\n secondSource?.close();\n }\n };\n },\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [source, target]\n );\n\n return (\n <LiveRatesContext.Provider\n value={{\n target,\n source,\n }}\n >\n {children}\n </LiveRatesContext.Provider>\n );\n};\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -34,7 +34,8 @@ const WidgetProvider = _ref => {
|
|
|
34
34
|
styling,
|
|
35
35
|
liveRates: {
|
|
36
36
|
url,
|
|
37
|
-
options
|
|
37
|
+
options,
|
|
38
|
+
multipleDataSources
|
|
38
39
|
} = {
|
|
39
40
|
url: ''
|
|
40
41
|
}
|
|
@@ -49,6 +50,7 @@ const WidgetProvider = _ref => {
|
|
|
49
50
|
translations: translations
|
|
50
51
|
}, _react.default.createElement(_ConditionalProvider.ConditionalProvider, {
|
|
51
52
|
Provider: _react.default.createElement(_LiveRates.LiveRatesProvider, {
|
|
53
|
+
multipleDataSources: multipleDataSources,
|
|
52
54
|
options: options,
|
|
53
55
|
url: url
|
|
54
56
|
}),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WidgetProvider.js","names":["_client","require","_monoI18n","_react","_interopRequireWildcard","_types","_utils","_ConditionalProvider","_Layout","_LiveRates","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","ownKeys","keys","getOwnPropertySymbols","filter","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","_toPropertyKey","value","configurable","writable","_toPrimitive","Symbol","toPrimitive","TypeError","String","Number","defaultStyling","fitContent","removePadding","size","undefined","WidgetProvider","_ref","children","locale","translations","client","theme","Theme","Light","withSuspense","styling","liveRates","url","options","createElement","LocaleProvider","getLocale","ConditionalProvider","Provider","LiveRatesProvider","render","ApolloProvider","Suspense","LayoutProvider","shouldFitContent","shouldRemovePadding","exports"],"sources":["../../../../src/providers/Widget/WidgetProvider.tsx"],"sourcesContent":["import type { ApolloClient, NormalizedCacheObject } from '@apollo/client';\nimport { ApolloProvider } from '@apollo/client';\nimport type { Locale, Translations } from '@oanda/mono-i18n';\nimport { LocaleProvider } from '@oanda/mono-i18n';\nimport type { PropsWithChildren } from 'react';\nimport React, { Suspense } from 'react';\n\nimport type { LiveRatesConfig, Size, WidgetStyling } from '../../types';\nimport { Theme } from '../../types';\nimport { getLocale } from '../../utils';\nimport { ConditionalProvider } from '../ConditionalProvider';\nimport { LayoutProvider } from '../Layout';\nimport { LiveRatesProvider } from '../LiveRates';\n\ninterface WidgetLayout {\n size?: Size;\n}\n\ntype WidgetProviderProps = PropsWithChildren & {\n locale: Locale;\n translations: Translations;\n client: ApolloClient<NormalizedCacheObject>;\n withSuspense?: boolean;\n theme?: Theme;\n styling?: Partial<WidgetStyling> & WidgetLayout;\n liveRates?: LiveRatesConfig;\n};\n\nconst defaultStyling: WidgetStyling & WidgetLayout = {\n fitContent: false,\n removePadding: false,\n size: undefined,\n};\n\nexport const WidgetProvider: React.FC<WidgetProviderProps> = ({\n children,\n locale,\n translations,\n client,\n theme = Theme.Light,\n withSuspense = false,\n styling,\n liveRates: { url, options } = { url: '' },\n}) => {\n const { fitContent, removePadding, size } = {\n ...defaultStyling,\n ...styling,\n };\n\n return (\n <LocaleProvider locale={getLocale(locale)} translations={translations}>\n <ConditionalProvider\n Provider={<LiveRatesProvider
|
|
1
|
+
{"version":3,"file":"WidgetProvider.js","names":["_client","require","_monoI18n","_react","_interopRequireWildcard","_types","_utils","_ConditionalProvider","_Layout","_LiveRates","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","ownKeys","keys","getOwnPropertySymbols","filter","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","_toPropertyKey","value","configurable","writable","_toPrimitive","Symbol","toPrimitive","TypeError","String","Number","defaultStyling","fitContent","removePadding","size","undefined","WidgetProvider","_ref","children","locale","translations","client","theme","Theme","Light","withSuspense","styling","liveRates","url","options","multipleDataSources","createElement","LocaleProvider","getLocale","ConditionalProvider","Provider","LiveRatesProvider","render","ApolloProvider","Suspense","LayoutProvider","shouldFitContent","shouldRemovePadding","exports"],"sources":["../../../../src/providers/Widget/WidgetProvider.tsx"],"sourcesContent":["import type { ApolloClient, NormalizedCacheObject } from '@apollo/client';\nimport { ApolloProvider } from '@apollo/client';\nimport type { Locale, Translations } from '@oanda/mono-i18n';\nimport { LocaleProvider } from '@oanda/mono-i18n';\nimport type { PropsWithChildren } from 'react';\nimport React, { Suspense } from 'react';\n\nimport type { LiveRatesConfig, Size, WidgetStyling } from '../../types';\nimport { Theme } from '../../types';\nimport { getLocale } from '../../utils';\nimport { ConditionalProvider } from '../ConditionalProvider';\nimport { LayoutProvider } from '../Layout';\nimport { LiveRatesProvider } from '../LiveRates';\n\ninterface WidgetLayout {\n size?: Size;\n}\n\ntype WidgetProviderProps = PropsWithChildren & {\n locale: Locale;\n translations: Translations;\n client: ApolloClient<NormalizedCacheObject>;\n withSuspense?: boolean;\n theme?: Theme;\n styling?: Partial<WidgetStyling> & WidgetLayout;\n liveRates?: LiveRatesConfig;\n};\n\nconst defaultStyling: WidgetStyling & WidgetLayout = {\n fitContent: false,\n removePadding: false,\n size: undefined,\n};\n\nexport const WidgetProvider: React.FC<WidgetProviderProps> = ({\n children,\n locale,\n translations,\n client,\n theme = Theme.Light,\n withSuspense = false,\n styling,\n liveRates: { url, options, multipleDataSources } = { url: '' },\n}) => {\n const { fitContent, removePadding, size } = {\n ...defaultStyling,\n ...styling,\n };\n\n return (\n <LocaleProvider locale={getLocale(locale)} translations={translations}>\n <ConditionalProvider\n Provider={\n <LiveRatesProvider\n multipleDataSources={multipleDataSources}\n options={options}\n url={url}\n />\n }\n render={!!url}\n >\n <ApolloProvider client={client}>\n <ConditionalProvider Provider={<Suspense />} render={withSuspense}>\n <LayoutProvider\n shouldFitContent={fitContent}\n shouldRemovePadding={removePadding}\n size={size}\n theme={theme}\n >\n {children}\n </LayoutProvider>\n </ConditionalProvider>\n </ApolloProvider>\n </ConditionalProvider>\n </LocaleProvider>\n );\n};\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -16,6 +16,7 @@ let DataRecordType = exports.DataRecordType = function (DataRecordType) {
|
|
|
16
16
|
DataRecordType["HIGH"] = "high";
|
|
17
17
|
DataRecordType["SYMBOL"] = "symbol";
|
|
18
18
|
DataRecordType["TRADE_MODE"] = "tradeMode";
|
|
19
|
+
DataRecordType["DATA_SOURCE"] = "dataSource";
|
|
19
20
|
return DataRecordType;
|
|
20
21
|
}({});
|
|
21
22
|
//# sourceMappingURL=dataTypes.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dataTypes.js","names":["DataRecordType","exports"],"sources":["../../../src/types/dataTypes.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-explicit-any */\nexport interface DataRecord {\n [key: string]: string | number | SentimentValue | undefined | number[];\n instrument: string;\n displayName: string;\n buy?: number;\n sell?: number;\n spread?: number;\n sentiment?: SentimentValue;\n sellPriceMovement?: number;\n buyPriceMovement?: number;\n dailyPercentChange?: string;\n displayPrecision?: number;\n chart?: number[];\n high?: number;\n low?: number;\n tradeMode?: string;\n}\n\nexport interface SentimentValue {\n shortPercent: number;\n longPercent: number;\n}\n\nexport type EmptyRecord = Record<string, never>;\n\nexport interface QueryVariables {\n [key: string]: any;\n}\n\nexport enum DataRecordType {\n INSTRUMENT = 'instrument',\n SELL = 'sell',\n BUY = 'buy',\n DAILY_CHANGE = 'dailyChange',\n CHART = 'chart',\n SPREAD = 'spread',\n SENTIMENT = 'sentiment',\n LOW = 'low',\n HIGH = 'high',\n SYMBOL = 'symbol',\n TRADE_MODE = 'tradeMode',\n}\n"],"mappings":";;;;;;
|
|
1
|
+
{"version":3,"file":"dataTypes.js","names":["DataRecordType","exports"],"sources":["../../../src/types/dataTypes.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-explicit-any */\nexport interface DataRecord {\n [key: string]: string | number | SentimentValue | undefined | number[];\n instrument: string;\n displayName: string;\n buy?: number;\n sell?: number;\n spread?: number;\n sentiment?: SentimentValue;\n sellPriceMovement?: number;\n buyPriceMovement?: number;\n dailyPercentChange?: string;\n displayPrecision?: number;\n chart?: number[];\n high?: number;\n low?: number;\n tradeMode?: string;\n dataSource?: string;\n}\n\nexport interface SentimentValue {\n shortPercent: number;\n longPercent: number;\n}\n\nexport type EmptyRecord = Record<string, never>;\n\nexport interface QueryVariables {\n [key: string]: any;\n}\n\nexport enum DataRecordType {\n INSTRUMENT = 'instrument',\n SELL = 'sell',\n BUY = 'buy',\n DAILY_CHANGE = 'dailyChange',\n CHART = 'chart',\n SPREAD = 'spread',\n SENTIMENT = 'sentiment',\n LOW = 'low',\n HIGH = 'high',\n SYMBOL = 'symbol',\n TRADE_MODE = 'tradeMode',\n DATA_SOURCE = 'dataSource',\n}\n"],"mappings":";;;;;;IA+BYA,cAAc,GAAAC,OAAA,CAAAD,cAAA,aAAdA,cAAc;EAAdA,cAAc;EAAdA,cAAc;EAAdA,cAAc;EAAdA,cAAc;EAAdA,cAAc;EAAdA,cAAc;EAAdA,cAAc;EAAdA,cAAc;EAAdA,cAAc;EAAdA,cAAc;EAAdA,cAAc;EAAdA,cAAc;EAAA,OAAdA,cAAc;AAAA","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"liveRatesTypes.js","names":[],"sources":["../../../src/types/liveRatesTypes.ts"],"sourcesContent":["export type LiveRatesDataSource = 'V20' | 'MT5';\n\nexport interface LiveRatesProviderQuery {\n instruments: string[];\n division?: string;\n dataSource?: LiveRatesDataSource;\n}\n\nexport interface LiveRatesProviderOptions {\n divisionCode?: string;\n dataSource?: LiveRatesDataSource;\n}\n\nexport interface LiveRatesConfig {\n url: string;\n query?: LiveRatesProviderQuery;\n options?: LiveRatesProviderOptions;\n eventSource?: EventSource;\n eventTarget?: EventTarget;\n eventName?: string;\n}\n\nexport interface LiveRatesHookMessage\n extends Omit<\n LiveRatesUpdateMessage,\n 'closingAsk' | 'closingBid' | 'openingAsk' | 'openingBid' | 'extraPrecision'\n > {\n spread: number;\n priceMovement: number;\n askPriceMovement: number;\n bidPriceMovement: number;\n dailyPriceMovement: number;\n dailyPipsChange: number;\n dailyPercentChange: number;\n dailyPercentChangeFromOpen: string;\n dailyPipsChangeFromOpen: number;\n displayPrecision: number;\n high: number;\n low: number;\n}\n\nexport interface LiveRatesHookReturnObject {\n update: LiveRatesHookMessage | null;\n error: LiveRatesErrorMessage | null;\n connectionError: boolean;\n setQuery: (query: LiveRatesProviderQuery) => void;\n}\n\nexport interface LiveRatesConnectionErrorMessage {\n messageType?: string;\n symbol: string;\n}\n\nexport interface LiveRatesTargetHookReturnObject {\n closeQuery: () => void;\n setQuery: (query: LiveRatesProviderQuery) => void;\n target: EventTarget | null;\n}\n\nexport interface LiveRatesMessageReturnObject {\n update: LiveRatesHookMessage | null;\n error: LiveRatesErrorMessage | null;\n connectionError: boolean;\n}\n\ninterface LiveRatesBaseMessage {\n messageType?: string;\n symbol: string;\n timestamp: string;\n}\nexport interface LiveRatesUpdateMessage extends LiveRatesBaseMessage {\n ask: number;\n bid: number;\n closingAsk: number;\n closingBid: number;\n openingAsk: number;\n openingBid: number;\n pipLocation: number;\n extraPrecision: number;\n low: number;\n high: number;\n}\n\nexport interface LiveRatesErrorMessage extends LiveRatesBaseMessage {\n error: string;\n}\n\nexport interface PriceChange {\n pipsChange: number;\n percentChange: number;\n priceMovement: number;\n askPriceMovement: number;\n bidPriceMovement: number;\n}\n\nexport interface PriceChangeFromOpen {\n percentChangeFromOpen: string;\n}\n\nexport interface PipsChangeFromOpen {\n pipsChangeFromOpen: number;\n}\n\nexport type Base64Decoder = (data: string) => string;\n\nexport type JsonParser = (data: string) => LiveRatesUpdateMessage;\n\nexport interface CalculatePriceChangeInput {\n pipLocation: number;\n extraPrecision: number;\n currentAsk: number;\n currentBid: number;\n prevAsk?: number;\n prevBid?: number;\n}\n"],"mappings":"","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"liveRatesTypes.js","names":[],"sources":["../../../src/types/liveRatesTypes.ts"],"sourcesContent":["export type LiveRatesDataSource = 'V20' | 'MT5' | 'All';\n\nexport interface LiveRatesProviderQuery {\n instruments: string[];\n division?: string;\n dataSource?: LiveRatesDataSource;\n}\n\nexport interface LiveRatesProviderOptions {\n divisionCode?: string;\n dataSource?: LiveRatesDataSource;\n}\n\nexport interface LiveRatesConfig {\n url: string;\n query?: LiveRatesProviderQuery;\n options?: LiveRatesProviderOptions;\n eventSource?: EventSource;\n eventTarget?: EventTarget;\n eventName?: string;\n multipleDataSources?: boolean;\n}\n\nexport interface LiveRatesHookMessage\n extends Omit<\n LiveRatesUpdateMessage,\n 'closingAsk' | 'closingBid' | 'openingAsk' | 'openingBid' | 'extraPrecision'\n > {\n spread: number;\n priceMovement: number;\n askPriceMovement: number;\n bidPriceMovement: number;\n dailyPriceMovement: number;\n dailyPipsChange: number;\n dailyPercentChange: number;\n dailyPercentChangeFromOpen: string;\n dailyPipsChangeFromOpen: number;\n displayPrecision: number;\n high: number;\n low: number;\n}\n\nexport interface LiveRatesHookReturnObject {\n update: LiveRatesHookMessage | null;\n error: LiveRatesErrorMessage | null;\n connectionError: boolean;\n setQuery: (query: LiveRatesProviderQuery) => void;\n}\n\nexport interface LiveRatesConnectionErrorMessage {\n messageType?: string;\n symbol: string;\n}\n\nexport interface LiveRatesTargetHookReturnObject {\n closeQuery: () => void;\n setQuery: (query: LiveRatesProviderQuery) => void;\n target: EventTarget | null;\n}\n\nexport interface LiveRatesMessageReturnObject {\n update: LiveRatesHookMessage | null;\n error: LiveRatesErrorMessage | null;\n connectionError: boolean;\n}\n\ninterface LiveRatesBaseMessage {\n messageType?: string;\n symbol: string;\n timestamp: string;\n}\nexport interface LiveRatesUpdateMessage extends LiveRatesBaseMessage {\n ask: number;\n bid: number;\n closingAsk: number;\n closingBid: number;\n openingAsk: number;\n openingBid: number;\n pipLocation: number;\n extraPrecision: number;\n low: number;\n high: number;\n}\n\nexport interface LiveRatesErrorMessage extends LiveRatesBaseMessage {\n error: string;\n}\n\nexport interface PriceChange {\n pipsChange: number;\n percentChange: number;\n priceMovement: number;\n askPriceMovement: number;\n bidPriceMovement: number;\n}\n\nexport interface PriceChangeFromOpen {\n percentChangeFromOpen: string;\n}\n\nexport interface PipsChangeFromOpen {\n pipsChangeFromOpen: number;\n}\n\nexport type Base64Decoder = (data: string) => string;\n\nexport type JsonParser = (data: string) => LiveRatesUpdateMessage;\n\nexport interface CalculatePriceChangeInput {\n pipLocation: number;\n extraPrecision: number;\n currentAsk: number;\n currentBid: number;\n prevAsk?: number;\n prevBid?: number;\n}\n"],"mappings":"","ignoreList":[]}
|
|
@@ -16,7 +16,7 @@ const buildUrl = (url, query, options) => {
|
|
|
16
16
|
}
|
|
17
17
|
const queryParams = query && _objectSpread(_objectSpread({}, query), !query.division && options !== null && options !== void 0 && options.divisionCode ? {
|
|
18
18
|
division: options.divisionCode,
|
|
19
|
-
dataSource: options.dataSource
|
|
19
|
+
dataSource: options.dataSource || query.dataSource
|
|
20
20
|
} : {});
|
|
21
21
|
const queryString = queryParams ? Object.entries(queryParams).map(_ref => {
|
|
22
22
|
let [key, value] = _ref;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"buildUrl.js","names":["buildUrl","url","query","options","baseUrl","baseQueryString","split","Error","queryParams","_objectSpread","division","divisionCode","dataSource","queryString","Object","entries","map","_ref","key","value","Array","isArray","concat","join","filter","Boolean","exports"],"sources":["../../../../src/utils/liveRates/buildUrl.ts"],"sourcesContent":["import type {\n LiveRatesProviderOptions,\n LiveRatesProviderQuery,\n} from '../../types';\n\nexport const buildUrl = (\n url: string,\n query?: LiveRatesProviderQuery,\n options?: LiveRatesProviderOptions\n): string => {\n const [baseUrl, baseQueryString] = url.split('?');\n\n if (!query && !baseQueryString) {\n throw new Error('Instruments query is not provided!');\n }\n\n const queryParams = query && {\n ...query,\n ...(!query.division && options?.divisionCode\n ? {\n division: options.divisionCode,\n dataSource: options.dataSource,\n }\n : {}),\n };\n\n const queryString = queryParams\n ? Object.entries(queryParams)\n .map(([key, value]) =>\n Array.isArray(value)\n ? value && `${key}=${value.join(',')}`\n : value && `${key}=${value}`\n )\n .filter(Boolean)\n .join('&')\n : baseQueryString;\n\n return `${baseUrl}?${queryString}`;\n};\n"],"mappings":";;;;;;;;;;;AAKO,MAAMA,QAAQ,GAAGA,CACtBC,GAAW,EACXC,KAA8B,EAC9BC,OAAkC,KACvB;EACX,MAAM,CAACC,OAAO,EAAEC,eAAe,CAAC,GAAGJ,GAAG,CAACK,KAAK,CAAC,GAAG,CAAC;EAEjD,IAAI,CAACJ,KAAK,IAAI,CAACG,eAAe,EAAE;IAC9B,MAAM,IAAIE,KAAK,CAAC,oCAAoC,CAAC;EACvD;EAEA,MAAMC,WAAW,GAAGN,KAAK,IAAAO,aAAA,CAAAA,aAAA,KACpBP,KAAK,GACJ,CAACA,KAAK,CAACQ,QAAQ,IAAIP,OAAO,aAAPA,OAAO,eAAPA,OAAO,CAAEQ,YAAY,GACxC;IACED,QAAQ,EAAEP,OAAO,CAACQ,YAAY;IAC9BC,UAAU,EAAET,OAAO,CAACS;
|
|
1
|
+
{"version":3,"file":"buildUrl.js","names":["buildUrl","url","query","options","baseUrl","baseQueryString","split","Error","queryParams","_objectSpread","division","divisionCode","dataSource","queryString","Object","entries","map","_ref","key","value","Array","isArray","concat","join","filter","Boolean","exports"],"sources":["../../../../src/utils/liveRates/buildUrl.ts"],"sourcesContent":["import type {\n LiveRatesProviderOptions,\n LiveRatesProviderQuery,\n} from '../../types';\n\nexport const buildUrl = (\n url: string,\n query?: LiveRatesProviderQuery,\n options?: LiveRatesProviderOptions\n): string => {\n const [baseUrl, baseQueryString] = url.split('?');\n\n if (!query && !baseQueryString) {\n throw new Error('Instruments query is not provided!');\n }\n\n const queryParams = query && {\n ...query,\n ...(!query.division && options?.divisionCode\n ? {\n division: options.divisionCode,\n dataSource: options.dataSource || query.dataSource,\n }\n : {}),\n };\n\n const queryString = queryParams\n ? Object.entries(queryParams)\n .map(([key, value]) =>\n Array.isArray(value)\n ? value && `${key}=${value.join(',')}`\n : value && `${key}=${value}`\n )\n .filter(Boolean)\n .join('&')\n : baseQueryString;\n\n return `${baseUrl}?${queryString}`;\n};\n"],"mappings":";;;;;;;;;;;AAKO,MAAMA,QAAQ,GAAGA,CACtBC,GAAW,EACXC,KAA8B,EAC9BC,OAAkC,KACvB;EACX,MAAM,CAACC,OAAO,EAAEC,eAAe,CAAC,GAAGJ,GAAG,CAACK,KAAK,CAAC,GAAG,CAAC;EAEjD,IAAI,CAACJ,KAAK,IAAI,CAACG,eAAe,EAAE;IAC9B,MAAM,IAAIE,KAAK,CAAC,oCAAoC,CAAC;EACvD;EAEA,MAAMC,WAAW,GAAGN,KAAK,IAAAO,aAAA,CAAAA,aAAA,KACpBP,KAAK,GACJ,CAACA,KAAK,CAACQ,QAAQ,IAAIP,OAAO,aAAPA,OAAO,eAAPA,OAAO,CAAEQ,YAAY,GACxC;IACED,QAAQ,EAAEP,OAAO,CAACQ,YAAY;IAC9BC,UAAU,EAAET,OAAO,CAACS,UAAU,IAAIV,KAAK,CAACU;EAC1C,CAAC,GACD,CAAC,CAAC,CACP;EAED,MAAMC,WAAW,GAAGL,WAAW,GAC3BM,MAAM,CAACC,OAAO,CAACP,WAAW,CAAC,CACxBQ,GAAG,CAACC,IAAA;IAAA,IAAC,CAACC,GAAG,EAAEC,KAAK,CAAC,GAAAF,IAAA;IAAA,OAChBG,KAAK,CAACC,OAAO,CAACF,KAAK,CAAC,GAChBA,KAAK,OAAAG,MAAA,CAAOJ,GAAG,OAAAI,MAAA,CAAIH,KAAK,CAACI,IAAI,CAAC,GAAG,CAAC,CAAE,GACpCJ,KAAK,OAAAG,MAAA,CAAOJ,GAAG,OAAAI,MAAA,CAAIH,KAAK,CAAE;EAAA,CAChC,CAAC,CACAK,MAAM,CAACC,OAAO,CAAC,CACfF,IAAI,CAAC,GAAG,CAAC,GACZlB,eAAe;EAEnB,UAAAiB,MAAA,CAAUlB,OAAO,OAAAkB,MAAA,CAAIT,WAAW;AAClC,CAAC;AAACa,OAAA,CAAA1B,QAAA,GAAAA,QAAA","ignoreList":[]}
|
|
@@ -72,7 +72,13 @@ export const ColumnRenderer = _ref => {
|
|
|
72
72
|
isError: isError,
|
|
73
73
|
isLoading: isLoading,
|
|
74
74
|
loaderSize: LoaderSize.sm
|
|
75
|
-
}, React.createElement("span", null, record.tradeMode))
|
|
75
|
+
}, React.createElement("span", null, record.tradeMode)),
|
|
76
|
+
[DataRecordType.DATA_SOURCE]: () => React.createElement(TableCell, {
|
|
77
|
+
key: DataRecordType.TRADE_MODE,
|
|
78
|
+
isError: !record.dataSource,
|
|
79
|
+
isLoading: isLoading,
|
|
80
|
+
loaderSize: LoaderSize.sm
|
|
81
|
+
}, React.createElement("span", null, record.dataSource))
|
|
76
82
|
};
|
|
77
83
|
return activeColumns.map(item => {
|
|
78
84
|
var _allColumns$item, _allColumns$item2;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ColumnRenderer.js","names":["React","DataRecordType","LoaderSize","ChartColumn","DailyChangeColumn","PriceColumn","SentimentColumn","SpreadColumn","TableCell","ColumnRenderer","_ref","record","isLoading","isChartLoading","isError","activeColumns","chart","allColumns","SELL","createElement","column","displayPrecision","price","sell","priceMovement","sellPriceMovement","BUY","buy","buyPriceMovement","DAILY_CHANGE","dailyPercentChange","CHART","percentChange","SPREAD","value","spread","SENTIMENT","sentiment","HIGH","key","high","undefined","loaderSize","sm","LOW","low","SYMBOL","md","type","instrument","TRADE_MODE","additionalPaddingRight","tradeMode","map","item","_allColumns$item","_allColumns$item2","Fragment","call"],"sources":["../../../../src/components/TableWidget/ColumnRenderer.tsx"],"sourcesContent":["import React from 'react';\n\nimport { type DataRecord, DataRecordType } from '../../types';\nimport { LoaderSize } from '../Loader';\nimport {\n ChartColumn,\n DailyChangeColumn,\n PriceColumn,\n SentimentColumn,\n SpreadColumn,\n TableCell,\n} from '../Table';\n\ninterface ColumnRendererProps {\n record: DataRecord;\n chart?: number[];\n isLoading: boolean;\n isChartLoading?: boolean;\n isError: boolean;\n activeColumns: DataRecordType[];\n}\n\nexport const ColumnRenderer = ({\n record,\n isLoading,\n isChartLoading,\n isError,\n activeColumns,\n chart,\n}: ColumnRendererProps) => {\n const allColumns: Partial<Record<DataRecordType, () => JSX.Element>> = {\n [DataRecordType.SELL]: () => (\n <PriceColumn\n column={DataRecordType.SELL}\n displayPrecision={record.displayPrecision}\n isError={isError}\n isLoading={isLoading}\n price={record.sell}\n priceMovement={record.sellPriceMovement}\n />\n ),\n [DataRecordType.BUY]: () => (\n <PriceColumn\n column={DataRecordType.BUY}\n displayPrecision={record.displayPrecision}\n isError={isError}\n isLoading={isLoading}\n price={record.buy}\n priceMovement={record.buyPriceMovement}\n />\n ),\n [DataRecordType.DAILY_CHANGE]: () => (\n <DailyChangeColumn\n dailyPercentChange={record.dailyPercentChange}\n isError={isError}\n isLoading={isLoading}\n />\n ),\n [DataRecordType.CHART]: () => (\n <ChartColumn\n chart={chart ?? []}\n isLoading={!!isChartLoading}\n percentChange={record.dailyPercentChange}\n />\n ),\n [DataRecordType.SPREAD]: () => (\n <SpreadColumn\n isError={isError}\n isLoading={isLoading}\n value={record.spread}\n />\n ),\n [DataRecordType.SENTIMENT]: () => (\n <SentimentColumn isLoading={isLoading} sentiment={record.sentiment} />\n ),\n [DataRecordType.HIGH]: () => (\n <TableCell\n key={DataRecordType.SPREAD}\n isError={isError}\n isLoading={isLoading || (record.high === undefined && !isError)}\n loaderSize={LoaderSize.sm}\n >\n <span>{record.high}</span>\n </TableCell>\n ),\n [DataRecordType.LOW]: () => (\n <TableCell\n key={DataRecordType.LOW}\n isError={isError}\n isLoading={isLoading || (record.low === undefined && !isError)}\n loaderSize={LoaderSize.sm}\n >\n <span>{record.low}</span>\n </TableCell>\n ),\n [DataRecordType.SYMBOL]: () => (\n <TableCell\n key={DataRecordType.SYMBOL}\n isError={isError}\n isLoading={isLoading}\n loaderSize={LoaderSize.md}\n type=\"textCentered\"\n >\n <span>{record.instrument}</span>\n </TableCell>\n ),\n [DataRecordType.TRADE_MODE]: () => (\n <TableCell\n key={DataRecordType.TRADE_MODE}\n additionalPaddingRight={true}\n isError={isError}\n isLoading={isLoading}\n loaderSize={LoaderSize.sm}\n >\n <span>{record.tradeMode}</span>\n </TableCell>\n ),\n };\n\n return activeColumns.map((item) => (\n <React.Fragment key={item}>{allColumns[item]?.() ?? null}</React.Fragment>\n ));\n};\n"],"mappings":"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
|
|
1
|
+
{"version":3,"file":"ColumnRenderer.js","names":["React","DataRecordType","LoaderSize","ChartColumn","DailyChangeColumn","PriceColumn","SentimentColumn","SpreadColumn","TableCell","ColumnRenderer","_ref","record","isLoading","isChartLoading","isError","activeColumns","chart","allColumns","SELL","createElement","column","displayPrecision","price","sell","priceMovement","sellPriceMovement","BUY","buy","buyPriceMovement","DAILY_CHANGE","dailyPercentChange","CHART","percentChange","SPREAD","value","spread","SENTIMENT","sentiment","HIGH","key","high","undefined","loaderSize","sm","LOW","low","SYMBOL","md","type","instrument","TRADE_MODE","additionalPaddingRight","tradeMode","DATA_SOURCE","dataSource","map","item","_allColumns$item","_allColumns$item2","Fragment","call"],"sources":["../../../../src/components/TableWidget/ColumnRenderer.tsx"],"sourcesContent":["import React from 'react';\n\nimport { type DataRecord, DataRecordType } from '../../types';\nimport { LoaderSize } from '../Loader';\nimport {\n ChartColumn,\n DailyChangeColumn,\n PriceColumn,\n SentimentColumn,\n SpreadColumn,\n TableCell,\n} from '../Table';\n\ninterface ColumnRendererProps {\n record: DataRecord;\n chart?: number[];\n isLoading: boolean;\n isChartLoading?: boolean;\n isError: boolean;\n activeColumns: DataRecordType[];\n}\n\nexport const ColumnRenderer = ({\n record,\n isLoading,\n isChartLoading,\n isError,\n activeColumns,\n chart,\n}: ColumnRendererProps) => {\n const allColumns: Partial<Record<DataRecordType, () => JSX.Element>> = {\n [DataRecordType.SELL]: () => (\n <PriceColumn\n column={DataRecordType.SELL}\n displayPrecision={record.displayPrecision}\n isError={isError}\n isLoading={isLoading}\n price={record.sell}\n priceMovement={record.sellPriceMovement}\n />\n ),\n [DataRecordType.BUY]: () => (\n <PriceColumn\n column={DataRecordType.BUY}\n displayPrecision={record.displayPrecision}\n isError={isError}\n isLoading={isLoading}\n price={record.buy}\n priceMovement={record.buyPriceMovement}\n />\n ),\n [DataRecordType.DAILY_CHANGE]: () => (\n <DailyChangeColumn\n dailyPercentChange={record.dailyPercentChange}\n isError={isError}\n isLoading={isLoading}\n />\n ),\n [DataRecordType.CHART]: () => (\n <ChartColumn\n chart={chart ?? []}\n isLoading={!!isChartLoading}\n percentChange={record.dailyPercentChange}\n />\n ),\n [DataRecordType.SPREAD]: () => (\n <SpreadColumn\n isError={isError}\n isLoading={isLoading}\n value={record.spread}\n />\n ),\n [DataRecordType.SENTIMENT]: () => (\n <SentimentColumn isLoading={isLoading} sentiment={record.sentiment} />\n ),\n [DataRecordType.HIGH]: () => (\n <TableCell\n key={DataRecordType.SPREAD}\n isError={isError}\n isLoading={isLoading || (record.high === undefined && !isError)}\n loaderSize={LoaderSize.sm}\n >\n <span>{record.high}</span>\n </TableCell>\n ),\n [DataRecordType.LOW]: () => (\n <TableCell\n key={DataRecordType.LOW}\n isError={isError}\n isLoading={isLoading || (record.low === undefined && !isError)}\n loaderSize={LoaderSize.sm}\n >\n <span>{record.low}</span>\n </TableCell>\n ),\n [DataRecordType.SYMBOL]: () => (\n <TableCell\n key={DataRecordType.SYMBOL}\n isError={isError}\n isLoading={isLoading}\n loaderSize={LoaderSize.md}\n type=\"textCentered\"\n >\n <span>{record.instrument}</span>\n </TableCell>\n ),\n [DataRecordType.TRADE_MODE]: () => (\n <TableCell\n key={DataRecordType.TRADE_MODE}\n additionalPaddingRight={true}\n isError={isError}\n isLoading={isLoading}\n loaderSize={LoaderSize.sm}\n >\n <span>{record.tradeMode}</span>\n </TableCell>\n ),\n [DataRecordType.DATA_SOURCE]: () => (\n <TableCell\n key={DataRecordType.TRADE_MODE}\n isError={!record.dataSource}\n isLoading={isLoading}\n loaderSize={LoaderSize.sm}\n >\n <span>{record.dataSource}</span>\n </TableCell>\n ),\n };\n\n return activeColumns.map((item) => (\n <React.Fragment key={item}>{allColumns[item]?.() ?? null}</React.Fragment>\n ));\n};\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useLiveRatesQuery.js","names":["SET_QUERY_EVENT_NAME","useLiveRatesProvider","useLiveRatesQuery","skip","liveRates","setQuery","query","_liveRates$target","target","dispatchEvent","CustomEvent","detail","closeQuery","_liveRates$source","source","close"],"sources":["../../../src/hooks/useLiveRatesQuery.ts"],"sourcesContent":["import { SET_QUERY_EVENT_NAME } from '../constants';\nimport { useLiveRatesProvider } from '../providers';\nimport type {\n LiveRatesProviderQuery,\n LiveRatesTargetHookReturnObject,\n} from '../types';\n\nexport const useLiveRatesQuery = (\n skip?: boolean\n): LiveRatesTargetHookReturnObject => {\n const liveRates = useLiveRatesProvider(skip);\n\n const setQuery = (query: LiveRatesProviderQuery) => {\n liveRates?.target?.dispatchEvent(\n new CustomEvent(SET_QUERY_EVENT_NAME, { detail: query })\n );\n };\n\n const closeQuery = () => {\n liveRates?.source?.close();\n };\n\n return {
|
|
1
|
+
{"version":3,"file":"useLiveRatesQuery.js","names":["SET_QUERY_EVENT_NAME","useLiveRatesProvider","useLiveRatesQuery","skip","liveRates","setQuery","query","_liveRates$target","target","dispatchEvent","CustomEvent","detail","closeQuery","_liveRates$source","source","close"],"sources":["../../../src/hooks/useLiveRatesQuery.ts"],"sourcesContent":["import { SET_QUERY_EVENT_NAME } from '../constants';\nimport { useLiveRatesProvider } from '../providers';\nimport type {\n LiveRatesProviderQuery,\n LiveRatesTargetHookReturnObject,\n} from '../types';\n\nexport const useLiveRatesQuery = (\n skip?: boolean\n): LiveRatesTargetHookReturnObject => {\n const liveRates = useLiveRatesProvider(skip);\n\n const setQuery = (query: LiveRatesProviderQuery) => {\n liveRates?.target?.dispatchEvent(\n new CustomEvent(SET_QUERY_EVENT_NAME, { detail: query })\n );\n };\n\n const closeQuery = () => {\n liveRates?.source?.close();\n };\n\n return {\n target: liveRates?.target || null,\n setQuery,\n closeQuery,\n };\n};\n"],"mappings":"AAAA,SAASA,oBAAoB,QAAQ,cAAc;AACnD,SAASC,oBAAoB,QAAQ,cAAc;AAMnD,OAAO,MAAMC,iBAAiB,GAC5BC,IAAc,IACsB;EACpC,MAAMC,SAAS,GAAGH,oBAAoB,CAACE,IAAI,CAAC;EAE5C,MAAME,QAAQ,GAAIC,KAA6B,IAAK;IAAA,IAAAC,iBAAA;IAClDH,SAAS,aAATA,SAAS,gBAAAG,iBAAA,GAATH,SAAS,CAAEI,MAAM,cAAAD,iBAAA,eAAjBA,iBAAA,CAAmBE,aAAa,CAC9B,IAAIC,WAAW,CAACV,oBAAoB,EAAE;MAAEW,MAAM,EAAEL;IAAM,CAAC,CACzD,CAAC;EACH,CAAC;EAED,MAAMM,UAAU,GAAGA,CAAA,KAAM;IAAA,IAAAC,iBAAA;IACvBT,SAAS,aAATA,SAAS,gBAAAS,iBAAA,GAATT,SAAS,CAAEU,MAAM,cAAAD,iBAAA,eAAjBA,iBAAA,CAAmBE,KAAK,CAAC,CAAC;EAC5B,CAAC;EAED,OAAO;IACLP,MAAM,EAAE,CAAAJ,SAAS,aAATA,SAAS,uBAATA,SAAS,CAAEI,MAAM,KAAI,IAAI;IACjCH,QAAQ;IACRO;EACF,CAAC;AACH,CAAC","ignoreList":[]}
|
|
@@ -30,7 +30,8 @@ export const useVisibleLiveDataRecord = (record, target) => {
|
|
|
30
30
|
spread: update === null || update === void 0 ? void 0 : update.spread,
|
|
31
31
|
displayPrecision: update === null || update === void 0 ? void 0 : update.displayPrecision,
|
|
32
32
|
high: update === null || update === void 0 ? void 0 : update.high,
|
|
33
|
-
low: update === null || update === void 0 ? void 0 : update.low
|
|
33
|
+
low: update === null || update === void 0 ? void 0 : update.low,
|
|
34
|
+
dataSource: record.dataSource
|
|
34
35
|
});
|
|
35
36
|
setError(liveRatesError);
|
|
36
37
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useVisibleLiveDataRecord.js","names":["useEffect","useState","useIntersectionObserver","useLiveRatesMessage","useVisibleLiveDataRecord","record","target","updatedRecord","setUpdatedRecord","displayName","instrument","sentiment","tradeMode","error","setError","entry","isVisible","isIntersecting","update","liveRatesError","buy","ask","sell","bid","buyPriceMovement","askPriceMovement","sellPriceMovement","bidPriceMovement","dailyPercentChange","dailyPercentChangeFromOpen","spread","displayPrecision","high","low","ref"],"sources":["../../../src/hooks/useVisibleLiveDataRecord.ts"],"sourcesContent":["import { useEffect, useState } from 'react';\nimport { useIntersectionObserver } from 'usehooks-ts';\n\nimport type { DataRecord, EmptyRecord, LiveRatesErrorMessage } from '../types';\nimport { useLiveRatesMessage } from './useLiveRatesMessage';\n\nexport const useVisibleLiveDataRecord = (\n record: DataRecord | EmptyRecord,\n target: EventTarget | null\n) => {\n const [updatedRecord, setUpdatedRecord] = useState<DataRecord>({\n displayName: record.displayName,\n instrument: record.instrument,\n sentiment: record.sentiment,\n tradeMode: record.tradeMode,\n });\n\n const [error, setError] = useState<LiveRatesErrorMessage | null>(null);\n const entry = useIntersectionObserver();\n const isVisible = !!entry?.isIntersecting;\n\n const { update, error: liveRatesError } = useLiveRatesMessage(\n record.instrument,\n target\n );\n\n useEffect(() => {\n if (isVisible) {\n setUpdatedRecord({\n displayName: record.displayName,\n instrument: record.instrument,\n sentiment: record.sentiment,\n tradeMode: record.tradeMode,\n buy: update?.ask,\n sell: update?.bid,\n buyPriceMovement: update?.askPriceMovement,\n sellPriceMovement: update?.bidPriceMovement,\n dailyPercentChange: update?.dailyPercentChangeFromOpen,\n spread: update?.spread,\n displayPrecision: update?.displayPrecision,\n high: update?.high,\n low: update?.low,\n });\n setError(liveRatesError);\n }\n }, [update, record, isVisible, liveRatesError]);\n\n return {\n updatedRecord,\n error,\n ref: entry.ref,\n };\n};\n"],"mappings":"AAAA,SAASA,SAAS,EAAEC,QAAQ,QAAQ,OAAO;AAC3C,SAASC,uBAAuB,QAAQ,aAAa;AAGrD,SAASC,mBAAmB,QAAQ,uBAAuB;AAE3D,OAAO,MAAMC,wBAAwB,GAAGA,CACtCC,MAAgC,EAChCC,MAA0B,KACvB;EACH,MAAM,CAACC,aAAa,EAAEC,gBAAgB,CAAC,GAAGP,QAAQ,CAAa;IAC7DQ,WAAW,EAAEJ,MAAM,CAACI,WAAW;IAC/BC,UAAU,EAAEL,MAAM,CAACK,UAAU;IAC7BC,SAAS,EAAEN,MAAM,CAACM,SAAS;IAC3BC,SAAS,EAAEP,MAAM,CAACO;EACpB,CAAC,CAAC;EAEF,MAAM,CAACC,KAAK,EAAEC,QAAQ,CAAC,GAAGb,QAAQ,CAA+B,IAAI,CAAC;EACtE,MAAMc,KAAK,GAAGb,uBAAuB,CAAC,CAAC;EACvC,MAAMc,SAAS,GAAG,CAAC,EAACD,KAAK,aAALA,KAAK,eAALA,KAAK,CAAEE,cAAc;EAEzC,MAAM;IAAEC,MAAM;IAAEL,KAAK,EAAEM;EAAe,CAAC,GAAGhB,mBAAmB,CAC3DE,MAAM,CAACK,UAAU,EACjBJ,MACF,CAAC;EAEDN,SAAS,CAAC,MAAM;IACd,IAAIgB,SAAS,EAAE;MACbR,gBAAgB,CAAC;QACfC,WAAW,EAAEJ,MAAM,CAACI,WAAW;QAC/BC,UAAU,EAAEL,MAAM,CAACK,UAAU;QAC7BC,SAAS,EAAEN,MAAM,CAACM,SAAS;QAC3BC,SAAS,EAAEP,MAAM,CAACO,SAAS;QAC3BQ,GAAG,EAAEF,MAAM,aAANA,MAAM,uBAANA,MAAM,CAAEG,GAAG;QAChBC,IAAI,EAAEJ,MAAM,aAANA,MAAM,uBAANA,MAAM,CAAEK,GAAG;QACjBC,gBAAgB,EAAEN,MAAM,aAANA,MAAM,uBAANA,MAAM,CAAEO,gBAAgB;QAC1CC,iBAAiB,EAAER,MAAM,aAANA,MAAM,uBAANA,MAAM,CAAES,gBAAgB;QAC3CC,kBAAkB,EAAEV,MAAM,aAANA,MAAM,uBAANA,MAAM,CAAEW,0BAA0B;QACtDC,MAAM,EAAEZ,MAAM,aAANA,MAAM,uBAANA,MAAM,CAAEY,MAAM;QACtBC,gBAAgB,EAAEb,MAAM,aAANA,MAAM,uBAANA,MAAM,CAAEa,gBAAgB;QAC1CC,IAAI,EAAEd,MAAM,aAANA,MAAM,uBAANA,MAAM,CAAEc,IAAI;QAClBC,GAAG,EAAEf,MAAM,aAANA,MAAM,uBAANA,MAAM,CAAEe;
|
|
1
|
+
{"version":3,"file":"useVisibleLiveDataRecord.js","names":["useEffect","useState","useIntersectionObserver","useLiveRatesMessage","useVisibleLiveDataRecord","record","target","updatedRecord","setUpdatedRecord","displayName","instrument","sentiment","tradeMode","error","setError","entry","isVisible","isIntersecting","update","liveRatesError","buy","ask","sell","bid","buyPriceMovement","askPriceMovement","sellPriceMovement","bidPriceMovement","dailyPercentChange","dailyPercentChangeFromOpen","spread","displayPrecision","high","low","dataSource","ref"],"sources":["../../../src/hooks/useVisibleLiveDataRecord.ts"],"sourcesContent":["import { useEffect, useState } from 'react';\nimport { useIntersectionObserver } from 'usehooks-ts';\n\nimport type { DataRecord, EmptyRecord, LiveRatesErrorMessage } from '../types';\nimport { useLiveRatesMessage } from './useLiveRatesMessage';\n\nexport const useVisibleLiveDataRecord = (\n record: DataRecord | EmptyRecord,\n target: EventTarget | null\n) => {\n const [updatedRecord, setUpdatedRecord] = useState<DataRecord>({\n displayName: record.displayName,\n instrument: record.instrument,\n sentiment: record.sentiment,\n tradeMode: record.tradeMode,\n });\n\n const [error, setError] = useState<LiveRatesErrorMessage | null>(null);\n const entry = useIntersectionObserver();\n const isVisible = !!entry?.isIntersecting;\n\n const { update, error: liveRatesError } = useLiveRatesMessage(\n record.instrument,\n target\n );\n\n useEffect(() => {\n if (isVisible) {\n setUpdatedRecord({\n displayName: record.displayName,\n instrument: record.instrument,\n sentiment: record.sentiment,\n tradeMode: record.tradeMode,\n buy: update?.ask,\n sell: update?.bid,\n buyPriceMovement: update?.askPriceMovement,\n sellPriceMovement: update?.bidPriceMovement,\n dailyPercentChange: update?.dailyPercentChangeFromOpen,\n spread: update?.spread,\n displayPrecision: update?.displayPrecision,\n high: update?.high,\n low: update?.low,\n dataSource: record.dataSource,\n });\n setError(liveRatesError);\n }\n }, [update, record, isVisible, liveRatesError]);\n\n return {\n updatedRecord,\n error,\n ref: entry.ref,\n };\n};\n"],"mappings":"AAAA,SAASA,SAAS,EAAEC,QAAQ,QAAQ,OAAO;AAC3C,SAASC,uBAAuB,QAAQ,aAAa;AAGrD,SAASC,mBAAmB,QAAQ,uBAAuB;AAE3D,OAAO,MAAMC,wBAAwB,GAAGA,CACtCC,MAAgC,EAChCC,MAA0B,KACvB;EACH,MAAM,CAACC,aAAa,EAAEC,gBAAgB,CAAC,GAAGP,QAAQ,CAAa;IAC7DQ,WAAW,EAAEJ,MAAM,CAACI,WAAW;IAC/BC,UAAU,EAAEL,MAAM,CAACK,UAAU;IAC7BC,SAAS,EAAEN,MAAM,CAACM,SAAS;IAC3BC,SAAS,EAAEP,MAAM,CAACO;EACpB,CAAC,CAAC;EAEF,MAAM,CAACC,KAAK,EAAEC,QAAQ,CAAC,GAAGb,QAAQ,CAA+B,IAAI,CAAC;EACtE,MAAMc,KAAK,GAAGb,uBAAuB,CAAC,CAAC;EACvC,MAAMc,SAAS,GAAG,CAAC,EAACD,KAAK,aAALA,KAAK,eAALA,KAAK,CAAEE,cAAc;EAEzC,MAAM;IAAEC,MAAM;IAAEL,KAAK,EAAEM;EAAe,CAAC,GAAGhB,mBAAmB,CAC3DE,MAAM,CAACK,UAAU,EACjBJ,MACF,CAAC;EAEDN,SAAS,CAAC,MAAM;IACd,IAAIgB,SAAS,EAAE;MACbR,gBAAgB,CAAC;QACfC,WAAW,EAAEJ,MAAM,CAACI,WAAW;QAC/BC,UAAU,EAAEL,MAAM,CAACK,UAAU;QAC7BC,SAAS,EAAEN,MAAM,CAACM,SAAS;QAC3BC,SAAS,EAAEP,MAAM,CAACO,SAAS;QAC3BQ,GAAG,EAAEF,MAAM,aAANA,MAAM,uBAANA,MAAM,CAAEG,GAAG;QAChBC,IAAI,EAAEJ,MAAM,aAANA,MAAM,uBAANA,MAAM,CAAEK,GAAG;QACjBC,gBAAgB,EAAEN,MAAM,aAANA,MAAM,uBAANA,MAAM,CAAEO,gBAAgB;QAC1CC,iBAAiB,EAAER,MAAM,aAANA,MAAM,uBAANA,MAAM,CAAES,gBAAgB;QAC3CC,kBAAkB,EAAEV,MAAM,aAANA,MAAM,uBAANA,MAAM,CAAEW,0BAA0B;QACtDC,MAAM,EAAEZ,MAAM,aAANA,MAAM,uBAANA,MAAM,CAAEY,MAAM;QACtBC,gBAAgB,EAAEb,MAAM,aAANA,MAAM,uBAANA,MAAM,CAAEa,gBAAgB;QAC1CC,IAAI,EAAEd,MAAM,aAANA,MAAM,uBAANA,MAAM,CAAEc,IAAI;QAClBC,GAAG,EAAEf,MAAM,aAANA,MAAM,uBAANA,MAAM,CAAEe,GAAG;QAChBC,UAAU,EAAE7B,MAAM,CAAC6B;MACrB,CAAC,CAAC;MACFpB,QAAQ,CAACK,cAAc,CAAC;IAC1B;EACF,CAAC,EAAE,CAACD,MAAM,EAAEb,MAAM,EAAEW,SAAS,EAAEG,cAAc,CAAC,CAAC;EAE/C,OAAO;IACLZ,aAAa;IACbM,KAAK;IACLsB,GAAG,EAAEpB,KAAK,CAACoB;EACb,CAAC;AACH,CAAC","ignoreList":[]}
|
|
@@ -3,6 +3,7 @@ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t =
|
|
|
3
3
|
function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
|
|
4
4
|
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
|
|
5
5
|
function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
|
|
6
|
+
import { DataSource } from '@oanda/labs-instruments-table-widget/src/gql/types/graphql';
|
|
6
7
|
import React, { useEffect, useState } from 'react';
|
|
7
8
|
import { LIVE_RATES_CONNECTION_ERROR, LIVE_RATES_EVENT_NAME, LIVE_RATES_RATE_ERROR, SET_QUERY_EVENT_NAME } from '../../constants';
|
|
8
9
|
import { buildUrl, decodeLiveRateMessage } from '../../utils/liveRates';
|
|
@@ -15,15 +16,26 @@ export const LiveRatesProvider = _ref => {
|
|
|
15
16
|
children,
|
|
16
17
|
eventSource,
|
|
17
18
|
eventTarget,
|
|
18
|
-
eventName = LIVE_RATES_EVENT_NAME
|
|
19
|
+
eventName = LIVE_RATES_EVENT_NAME,
|
|
20
|
+
multipleDataSources = false
|
|
19
21
|
} = _ref;
|
|
20
22
|
const [source, setSource] = useState(eventSource || query && new EventSource(buildUrl(url, query, options)));
|
|
23
|
+
const [secondSource, setSecondSource] = useState(undefined);
|
|
21
24
|
const target = eventTarget || new EventTarget();
|
|
22
25
|
const setQueryListener = _ref2 => {
|
|
23
26
|
let {
|
|
24
27
|
detail
|
|
25
28
|
} = _ref2;
|
|
26
|
-
|
|
29
|
+
if (multipleDataSources) {
|
|
30
|
+
if ((detail === null || detail === void 0 ? void 0 : detail.dataSource) === DataSource.Mt5) {
|
|
31
|
+
setSecondSource(new EventSource(buildUrl(url, detail, options)));
|
|
32
|
+
}
|
|
33
|
+
if ((detail === null || detail === void 0 ? void 0 : detail.dataSource) === DataSource.V20) {
|
|
34
|
+
setSource(new EventSource(buildUrl(url, detail, options)));
|
|
35
|
+
}
|
|
36
|
+
} else {
|
|
37
|
+
setSource(new EventSource(buildUrl(url, detail, options)));
|
|
38
|
+
}
|
|
27
39
|
};
|
|
28
40
|
target.addEventListener(SET_QUERY_EVENT_NAME, setQueryListener);
|
|
29
41
|
useEffect(() => {
|
|
@@ -41,12 +53,23 @@ export const LiveRatesProvider = _ref => {
|
|
|
41
53
|
source === null || source === void 0 || source.addEventListener(eventName, listener(eventName));
|
|
42
54
|
source === null || source === void 0 || source.addEventListener(LIVE_RATES_RATE_ERROR, listener(LIVE_RATES_RATE_ERROR));
|
|
43
55
|
source === null || source === void 0 || source.addEventListener('error', listener(LIVE_RATES_CONNECTION_ERROR));
|
|
56
|
+
if (multipleDataSources && secondSource) {
|
|
57
|
+
secondSource === null || secondSource === void 0 || secondSource.addEventListener(eventName, listener(eventName));
|
|
58
|
+
secondSource === null || secondSource === void 0 || secondSource.addEventListener(LIVE_RATES_RATE_ERROR, listener(LIVE_RATES_RATE_ERROR));
|
|
59
|
+
secondSource === null || secondSource === void 0 || secondSource.addEventListener('error', listener(LIVE_RATES_CONNECTION_ERROR));
|
|
60
|
+
}
|
|
44
61
|
return () => {
|
|
45
62
|
target.removeEventListener(SET_QUERY_EVENT_NAME, setQueryListener);
|
|
46
63
|
source === null || source === void 0 || source.removeEventListener(eventName, listener(eventName));
|
|
47
64
|
source === null || source === void 0 || source.removeEventListener(LIVE_RATES_RATE_ERROR, listener(LIVE_RATES_RATE_ERROR));
|
|
48
65
|
source === null || source === void 0 || source.removeEventListener('error', listener(LIVE_RATES_CONNECTION_ERROR));
|
|
49
66
|
source === null || source === void 0 || source.close();
|
|
67
|
+
if (multipleDataSources && secondSource) {
|
|
68
|
+
secondSource === null || secondSource === void 0 || secondSource.removeEventListener(eventName, listener(eventName));
|
|
69
|
+
secondSource === null || secondSource === void 0 || secondSource.removeEventListener(LIVE_RATES_RATE_ERROR, listener(LIVE_RATES_RATE_ERROR));
|
|
70
|
+
secondSource === null || secondSource === void 0 || secondSource.removeEventListener('error', listener(LIVE_RATES_CONNECTION_ERROR));
|
|
71
|
+
secondSource === null || secondSource === void 0 || secondSource.close();
|
|
72
|
+
}
|
|
50
73
|
};
|
|
51
74
|
}, [source, target]);
|
|
52
75
|
return React.createElement(LiveRatesContext.Provider, {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LiveRatesProvider.js","names":["React","useEffect","useState","LIVE_RATES_CONNECTION_ERROR","LIVE_RATES_EVENT_NAME","LIVE_RATES_RATE_ERROR","SET_QUERY_EVENT_NAME","buildUrl","decodeLiveRateMessage","LiveRatesContext","LiveRatesProvider","_ref","url","query","options","children","eventSource","eventTarget","eventName","source","setSource","EventSource","target","EventTarget","setQueryListener","_ref2","detail","addEventListener","listener","messageType","e","message","symbol","error","data","dispatchEvent","CustomEvent","_objectSpread","removeEventListener","close","createElement","Provider","value"],"sources":["../../../../src/providers/LiveRates/LiveRatesProvider.tsx"],"sourcesContent":["import type { PropsWithChildren, ReactElement } from 'react';\nimport React, { useEffect, useState } from 'react';\n\nimport {\n LIVE_RATES_CONNECTION_ERROR,\n LIVE_RATES_EVENT_NAME,\n LIVE_RATES_RATE_ERROR,\n SET_QUERY_EVENT_NAME,\n} from '../../constants';\nimport type {\n LiveRatesConfig,\n LiveRatesConnectionErrorMessage,\n LiveRatesErrorMessage,\n LiveRatesUpdateMessage,\n} from '../../types';\nimport { buildUrl, decodeLiveRateMessage } from '../../utils/liveRates';\nimport { LiveRatesContext } from './LiveRatesContext';\n\ntype LiveRatesProviderProps = PropsWithChildren & LiveRatesConfig;\n\nexport const LiveRatesProvider: React.FC<LiveRatesProviderProps> = ({\n url,\n query,\n options,\n children,\n eventSource,\n eventTarget,\n eventName = LIVE_RATES_EVENT_NAME,\n}): ReactElement => {\n const [source, setSource] = useState(\n eventSource || (query && new EventSource(buildUrl(url, query, options)))\n );\n const target = eventTarget || new EventTarget();\n\n const setQueryListener: EventListener = ({
|
|
1
|
+
{"version":3,"file":"LiveRatesProvider.js","names":["DataSource","React","useEffect","useState","LIVE_RATES_CONNECTION_ERROR","LIVE_RATES_EVENT_NAME","LIVE_RATES_RATE_ERROR","SET_QUERY_EVENT_NAME","buildUrl","decodeLiveRateMessage","LiveRatesContext","LiveRatesProvider","_ref","url","query","options","children","eventSource","eventTarget","eventName","multipleDataSources","source","setSource","EventSource","secondSource","setSecondSource","undefined","target","EventTarget","setQueryListener","_ref2","detail","dataSource","Mt5","V20","addEventListener","listener","messageType","e","message","symbol","error","data","dispatchEvent","CustomEvent","_objectSpread","removeEventListener","close","createElement","Provider","value"],"sources":["../../../../src/providers/LiveRates/LiveRatesProvider.tsx"],"sourcesContent":["import { DataSource } from '@oanda/labs-instruments-table-widget/src/gql/types/graphql';\nimport type { PropsWithChildren, ReactElement } from 'react';\nimport React, { useEffect, useState } from 'react';\n\nimport {\n LIVE_RATES_CONNECTION_ERROR,\n LIVE_RATES_EVENT_NAME,\n LIVE_RATES_RATE_ERROR,\n SET_QUERY_EVENT_NAME,\n} from '../../constants';\nimport type {\n LiveRatesConfig,\n LiveRatesConnectionErrorMessage,\n LiveRatesErrorMessage,\n LiveRatesProviderQuery,\n LiveRatesUpdateMessage,\n} from '../../types';\nimport { buildUrl, decodeLiveRateMessage } from '../../utils/liveRates';\nimport { LiveRatesContext } from './LiveRatesContext';\n\ntype LiveRatesProviderProps = PropsWithChildren & LiveRatesConfig;\n\nexport const LiveRatesProvider: React.FC<LiveRatesProviderProps> = ({\n url,\n query,\n options,\n children,\n eventSource,\n eventTarget,\n eventName = LIVE_RATES_EVENT_NAME,\n multipleDataSources = false,\n}): ReactElement => {\n const [source, setSource] = useState(\n eventSource || (query && new EventSource(buildUrl(url, query, options)))\n );\n const [secondSource, setSecondSource] = useState<EventSource | undefined>(\n undefined\n );\n const target = eventTarget || new EventTarget();\n\n const setQueryListener: EventListener = ({\n detail,\n }: CustomEventInit<LiveRatesProviderQuery>) => {\n if (multipleDataSources) {\n if (detail?.dataSource === DataSource.Mt5) {\n setSecondSource(new EventSource(buildUrl(url, detail, options)));\n }\n if (detail?.dataSource === DataSource.V20) {\n setSource(new EventSource(buildUrl(url, detail, options)));\n }\n } else {\n setSource(new EventSource(buildUrl(url, detail, options)));\n }\n };\n\n target.addEventListener(SET_QUERY_EVENT_NAME, setQueryListener);\n\n useEffect(\n () => {\n const listener =\n (messageType: string) => (e: MessageEventInit<string>) => {\n const message =\n messageType === LIVE_RATES_CONNECTION_ERROR\n ? ({\n symbol: LIVE_RATES_CONNECTION_ERROR,\n error: 'Connection error',\n } as LiveRatesConnectionErrorMessage)\n : decodeLiveRateMessage(e.data as string);\n\n target.dispatchEvent(\n new CustomEvent<\n | LiveRatesUpdateMessage\n | LiveRatesErrorMessage\n | LiveRatesConnectionErrorMessage\n >(message.symbol, {\n detail: { messageType, ...message },\n })\n );\n };\n\n source?.addEventListener(eventName, listener(eventName));\n source?.addEventListener(\n LIVE_RATES_RATE_ERROR,\n listener(LIVE_RATES_RATE_ERROR)\n );\n source?.addEventListener('error', listener(LIVE_RATES_CONNECTION_ERROR));\n\n if (multipleDataSources && secondSource) {\n secondSource?.addEventListener(eventName, listener(eventName));\n secondSource?.addEventListener(\n LIVE_RATES_RATE_ERROR,\n listener(LIVE_RATES_RATE_ERROR)\n );\n secondSource?.addEventListener(\n 'error',\n listener(LIVE_RATES_CONNECTION_ERROR)\n );\n }\n\n return () => {\n target.removeEventListener(SET_QUERY_EVENT_NAME, setQueryListener);\n source?.removeEventListener(eventName, listener(eventName));\n source?.removeEventListener(\n LIVE_RATES_RATE_ERROR,\n listener(LIVE_RATES_RATE_ERROR)\n );\n source?.removeEventListener(\n 'error',\n listener(LIVE_RATES_CONNECTION_ERROR)\n );\n source?.close();\n\n if (multipleDataSources && secondSource) {\n secondSource?.removeEventListener(eventName, listener(eventName));\n secondSource?.removeEventListener(\n LIVE_RATES_RATE_ERROR,\n listener(LIVE_RATES_RATE_ERROR)\n );\n secondSource?.removeEventListener(\n 'error',\n listener(LIVE_RATES_CONNECTION_ERROR)\n );\n secondSource?.close();\n }\n };\n },\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [source, target]\n );\n\n return (\n <LiveRatesContext.Provider\n value={{\n target,\n source,\n }}\n >\n {children}\n </LiveRatesContext.Provider>\n );\n};\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -27,7 +27,8 @@ export const WidgetProvider = _ref => {
|
|
|
27
27
|
styling,
|
|
28
28
|
liveRates: {
|
|
29
29
|
url,
|
|
30
|
-
options
|
|
30
|
+
options,
|
|
31
|
+
multipleDataSources
|
|
31
32
|
} = {
|
|
32
33
|
url: ''
|
|
33
34
|
}
|
|
@@ -42,6 +43,7 @@ export const WidgetProvider = _ref => {
|
|
|
42
43
|
translations: translations
|
|
43
44
|
}, React.createElement(ConditionalProvider, {
|
|
44
45
|
Provider: React.createElement(LiveRatesProvider, {
|
|
46
|
+
multipleDataSources: multipleDataSources,
|
|
45
47
|
options: options,
|
|
46
48
|
url: url
|
|
47
49
|
}),
|