@oanda/labs-crowd-view-widget 1.0.43 → 1.0.44
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +180 -0
- package/dist/main/CrowdViewWidget/CrowdViewWidget.js +3 -3
- package/dist/main/CrowdViewWidget/CrowdViewWidget.js.map +1 -1
- package/dist/main/CrowdViewWidget/Main.js +8 -9
- package/dist/main/CrowdViewWidget/Main.js.map +1 -1
- package/dist/main/CrowdViewWidget/components/Chart/Chart.js +11 -8
- package/dist/main/CrowdViewWidget/components/Chart/Chart.js.map +1 -1
- package/dist/main/CrowdViewWidget/components/Chart/ChartWithData.js +16 -13
- package/dist/main/CrowdViewWidget/components/Chart/ChartWithData.js.map +1 -1
- package/dist/main/CrowdViewWidget/components/Chart/{getOption.js → chartOptions.js} +53 -51
- package/dist/main/CrowdViewWidget/components/Chart/chartOptions.js.map +1 -0
- package/dist/main/CrowdViewWidget/components/Chart/index.js +44 -0
- package/dist/main/CrowdViewWidget/components/Chart/index.js.map +1 -1
- package/dist/main/CrowdViewWidget/components/Chart/types.js.map +1 -1
- package/dist/main/CrowdViewWidget/components/Chart/useCrowdViewData.js +170 -0
- package/dist/main/CrowdViewWidget/components/Chart/useCrowdViewData.js.map +1 -0
- package/dist/main/CrowdViewWidget/components/Chart/utils/chartUtils.js +70 -0
- package/dist/main/CrowdViewWidget/components/Chart/utils/chartUtils.js.map +1 -0
- package/dist/main/CrowdViewWidget/components/Legend/Legend.js +3 -2
- package/dist/main/CrowdViewWidget/components/Legend/Legend.js.map +1 -1
- package/dist/main/CrowdViewWidget/components/Legend/LegendBar.js +9 -11
- package/dist/main/CrowdViewWidget/components/Legend/LegendBar.js.map +1 -1
- package/dist/main/CrowdViewWidget/constants.js +30 -0
- package/dist/main/CrowdViewWidget/constants.js.map +1 -0
- package/dist/main/CrowdViewWidget/render.js +1 -0
- package/dist/main/CrowdViewWidget/render.js.map +1 -1
- package/dist/main/CrowdViewWidget/selectConfig.js +121 -0
- package/dist/main/CrowdViewWidget/selectConfig.js.map +1 -0
- package/dist/main/CrowdViewWidget/types/index.js +17 -0
- package/dist/main/CrowdViewWidget/types/index.js.map +1 -0
- package/dist/main/CrowdViewWidget/types/instruments.js +45 -0
- package/dist/main/CrowdViewWidget/types/instruments.js.map +1 -0
- package/dist/main/CrowdViewWidget/types.js +0 -44
- package/dist/main/CrowdViewWidget/types.js.map +1 -1
- package/dist/main/CrowdViewWidget/utils/instrumentUtils.js +13 -0
- package/dist/main/CrowdViewWidget/utils/instrumentUtils.js.map +1 -0
- package/dist/main/gql/getOrderPositionBooks.js +1 -1
- package/dist/main/gql/getOrderPositionBooks.js.map +1 -1
- package/dist/main/gql/getPriceCandles.js +11 -0
- package/dist/main/gql/getPriceCandles.js.map +1 -0
- package/dist/main/gql/types/gql.js +2 -3
- package/dist/main/gql/types/gql.js.map +1 -1
- package/dist/main/gql/types/graphql.js +161 -160
- package/dist/main/gql/types/graphql.js.map +1 -1
- package/dist/module/CrowdViewWidget/CrowdViewWidget.js +3 -3
- package/dist/module/CrowdViewWidget/CrowdViewWidget.js.map +1 -1
- package/dist/module/CrowdViewWidget/Main.js +6 -7
- package/dist/module/CrowdViewWidget/Main.js.map +1 -1
- package/dist/module/CrowdViewWidget/components/Chart/Chart.js +9 -6
- package/dist/module/CrowdViewWidget/components/Chart/Chart.js.map +1 -1
- package/dist/module/CrowdViewWidget/components/Chart/ChartWithData.js +16 -12
- package/dist/module/CrowdViewWidget/components/Chart/ChartWithData.js.map +1 -1
- package/dist/module/CrowdViewWidget/components/Chart/{getOption.js → chartOptions.js} +51 -48
- package/dist/module/CrowdViewWidget/components/Chart/chartOptions.js.map +1 -0
- package/dist/module/CrowdViewWidget/components/Chart/index.js +4 -0
- package/dist/module/CrowdViewWidget/components/Chart/index.js.map +1 -1
- package/dist/module/CrowdViewWidget/components/Chart/types.js.map +1 -1
- package/dist/module/CrowdViewWidget/components/Chart/useCrowdViewData.js +163 -0
- package/dist/module/CrowdViewWidget/components/Chart/useCrowdViewData.js.map +1 -0
- package/dist/module/CrowdViewWidget/components/Chart/utils/chartUtils.js +59 -0
- package/dist/module/CrowdViewWidget/components/Chart/utils/chartUtils.js.map +1 -0
- package/dist/module/CrowdViewWidget/components/Legend/Legend.js +3 -2
- package/dist/module/CrowdViewWidget/components/Legend/Legend.js.map +1 -1
- package/dist/module/CrowdViewWidget/components/Legend/LegendBar.js +9 -11
- package/dist/module/CrowdViewWidget/components/Legend/LegendBar.js.map +1 -1
- package/dist/module/CrowdViewWidget/constants.js +24 -0
- package/dist/module/CrowdViewWidget/constants.js.map +1 -0
- package/dist/module/CrowdViewWidget/render.js +1 -0
- package/dist/module/CrowdViewWidget/render.js.map +1 -1
- package/dist/module/CrowdViewWidget/selectConfig.js +116 -0
- package/dist/module/CrowdViewWidget/selectConfig.js.map +1 -0
- package/dist/module/CrowdViewWidget/types/index.js +2 -0
- package/dist/module/CrowdViewWidget/types/index.js.map +1 -0
- package/dist/module/CrowdViewWidget/types/instruments.js +39 -0
- package/dist/module/CrowdViewWidget/types/instruments.js.map +1 -0
- package/dist/module/CrowdViewWidget/types.js +1 -43
- package/dist/module/CrowdViewWidget/types.js.map +1 -1
- package/dist/module/CrowdViewWidget/utils/instrumentUtils.js +6 -0
- package/dist/module/CrowdViewWidget/utils/instrumentUtils.js.map +1 -0
- package/dist/module/gql/getOrderPositionBooks.js +1 -1
- package/dist/module/gql/getOrderPositionBooks.js.map +1 -1
- package/dist/module/gql/getPriceCandles.js +6 -0
- package/dist/module/gql/getPriceCandles.js.map +1 -0
- package/dist/module/gql/types/gql.js +2 -3
- package/dist/module/gql/types/gql.js.map +1 -1
- package/dist/module/gql/types/graphql.js +160 -159
- package/dist/module/gql/types/graphql.js.map +1 -1
- package/dist/types/CrowdViewWidget/CrowdViewWidget.d.ts +1 -1
- package/dist/types/CrowdViewWidget/components/Chart/ChartWithData.d.ts +1 -1
- package/dist/types/CrowdViewWidget/components/Chart/index.d.ts +4 -0
- package/dist/types/CrowdViewWidget/components/Chart/types.d.ts +19 -16
- package/dist/types/CrowdViewWidget/components/Chart/useCrowdViewData.d.ts +2 -0
- package/dist/types/CrowdViewWidget/components/Chart/{utils.d.ts → utils/chartUtils.d.ts} +4 -11
- package/dist/types/CrowdViewWidget/components/Legend/Legend.d.ts +3 -3
- package/dist/types/CrowdViewWidget/constants.d.ts +23 -0
- package/dist/types/CrowdViewWidget/selectConfig.d.ts +19 -0
- package/dist/types/CrowdViewWidget/types/index.d.ts +1 -0
- package/dist/types/CrowdViewWidget/types/instruments.d.ts +36 -0
- package/dist/types/CrowdViewWidget/types.d.ts +2 -50
- package/dist/types/CrowdViewWidget/utils/instrumentUtils.d.ts +8 -0
- package/dist/types/gql/types/gql.d.ts +10 -14
- package/dist/types/gql/types/graphql.d.ts +71 -63
- package/package.json +6 -4
- package/src/CrowdViewWidget/CrowdViewWidget.tsx +2 -2
- package/src/CrowdViewWidget/Main.tsx +10 -16
- package/src/CrowdViewWidget/components/Chart/Chart.tsx +15 -5
- package/src/CrowdViewWidget/components/Chart/ChartWithData.tsx +12 -12
- package/src/CrowdViewWidget/components/Chart/{getOption.ts → chartOptions.ts} +51 -70
- package/src/CrowdViewWidget/components/Chart/index.ts +4 -0
- package/src/CrowdViewWidget/components/Chart/types.ts +25 -23
- package/src/CrowdViewWidget/components/Chart/useCrowdViewData.ts +263 -0
- package/src/CrowdViewWidget/components/Chart/utils/chartUtils.ts +93 -0
- package/src/CrowdViewWidget/components/Legend/Legend.tsx +7 -3
- package/src/CrowdViewWidget/components/Legend/LegendBar.tsx +16 -20
- package/src/CrowdViewWidget/constants.ts +27 -0
- package/src/CrowdViewWidget/render.tsx +1 -0
- package/src/CrowdViewWidget/{config.ts → selectConfig.ts} +65 -43
- package/src/CrowdViewWidget/types/index.ts +1 -0
- package/src/CrowdViewWidget/types/instruments.ts +37 -0
- package/src/CrowdViewWidget/types.ts +4 -55
- package/src/CrowdViewWidget/utils/instrumentUtils.ts +11 -0
- package/src/gql/getOrderPositionBooks.ts +9 -4
- package/src/gql/{mock/getPriceCandles.ts → getPriceCandles.ts} +5 -5
- package/src/gql/types/gql.ts +6 -14
- package/src/gql/types/graphql.ts +170 -160
- package/test/Main.test.tsx +1 -1
- package/test/components/Legend.test.tsx +3 -6
- package/test/components/LegendBar.test.tsx +7 -8
- package/test/utils/instrumentUtils.test.ts +52 -0
- package/dist/main/CrowdViewWidget/components/Chart/constants.js +0 -14
- package/dist/main/CrowdViewWidget/components/Chart/constants.js.map +0 -1
- package/dist/main/CrowdViewWidget/components/Chart/getOption.js.map +0 -1
- package/dist/main/CrowdViewWidget/components/Chart/getOrderPositionDataMock.js +0 -47
- package/dist/main/CrowdViewWidget/components/Chart/getOrderPositionDataMock.js.map +0 -1
- package/dist/main/CrowdViewWidget/components/Chart/getPriceCandlesMock.js +0 -36
- package/dist/main/CrowdViewWidget/components/Chart/getPriceCandlesMock.js.map +0 -1
- package/dist/main/CrowdViewWidget/components/Chart/utils.js +0 -166
- package/dist/main/CrowdViewWidget/components/Chart/utils.js.map +0 -1
- package/dist/main/CrowdViewWidget/config.js +0 -107
- package/dist/main/CrowdViewWidget/config.js.map +0 -1
- package/dist/main/gql/mock/getPriceCandles.js +0 -11
- package/dist/main/gql/mock/getPriceCandles.js.map +0 -1
- package/dist/main/gql/mock/schema.graphqls +0 -62
- package/dist/main/gql/validateInstruments.js +0 -11
- package/dist/main/gql/validateInstruments.js.map +0 -1
- package/dist/module/CrowdViewWidget/components/Chart/constants.js +0 -8
- package/dist/module/CrowdViewWidget/components/Chart/constants.js.map +0 -1
- package/dist/module/CrowdViewWidget/components/Chart/getOption.js.map +0 -1
- package/dist/module/CrowdViewWidget/components/Chart/getOrderPositionDataMock.js +0 -40
- package/dist/module/CrowdViewWidget/components/Chart/getOrderPositionDataMock.js.map +0 -1
- package/dist/module/CrowdViewWidget/components/Chart/getPriceCandlesMock.js +0 -29
- package/dist/module/CrowdViewWidget/components/Chart/getPriceCandlesMock.js.map +0 -1
- package/dist/module/CrowdViewWidget/components/Chart/utils.js +0 -156
- package/dist/module/CrowdViewWidget/components/Chart/utils.js.map +0 -1
- package/dist/module/CrowdViewWidget/config.js +0 -102
- package/dist/module/CrowdViewWidget/config.js.map +0 -1
- package/dist/module/gql/mock/getPriceCandles.js +0 -6
- package/dist/module/gql/mock/getPriceCandles.js.map +0 -1
- package/dist/module/gql/mock/schema.graphqls +0 -62
- package/dist/module/gql/validateInstruments.js +0 -5
- package/dist/module/gql/validateInstruments.js.map +0 -1
- package/dist/types/CrowdViewWidget/components/Chart/constants.d.ts +0 -7
- package/dist/types/CrowdViewWidget/components/Chart/getOrderPositionDataMock.d.ts +0 -14
- package/dist/types/CrowdViewWidget/components/Chart/getPriceCandlesMock.d.ts +0 -2
- package/dist/types/CrowdViewWidget/config.d.ts +0 -22
- package/dist/types/gql/validateInstruments.d.ts +0 -1
- package/src/CrowdViewWidget/components/Chart/constants.tsx +0 -8
- package/src/CrowdViewWidget/components/Chart/getOrderPositionDataMock.ts +0 -66
- package/src/CrowdViewWidget/components/Chart/getPriceCandlesMock.ts +0 -43
- package/src/CrowdViewWidget/components/Chart/utils.ts +0 -191
- package/src/gql/mock/schema.graphqls +0 -62
- package/src/gql/validateInstruments.ts +0 -10
- /package/dist/types/CrowdViewWidget/components/Chart/{getOption.d.ts → chartOptions.d.ts} +0 -0
- /package/dist/types/gql/{mock/getPriceCandles.d.ts → getPriceCandles.d.ts} +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useCrowdViewData.js","names":["useQuery","useMemo","getOrderPositionBooks","getPriceCandles","BookType","DataSource","Division","BOOKS_THRESHOLDS","BUCKET_CONFIG","getTimeSpanForGranularity","processPriceCandles","priceCandlesData","_priceCandlesData$pri","priceCandles","candle","length","minPrice","maxPrice","hasValidCandles","candleMap","Map","candles","calculatedMinPrice","Number","MAX_VALUE","calculatedMaxPrice","MIN_VALUE","forEach","high","low","point","set","processOrderPositionBooks","orderPositionData","_orderPositionData$or","orderPositionBooks","filter","book","_book$buckets","buckets","map","_candle$high","filteredBuckets","bucket","sentiment","undefined","price","Math","abs","MIN","get","time","JSON","stringify","validateData","_priceCandlesData$pri2","_priceCandlesData$pri3","_orderPositionData$or2","_orderPositionData$or3","hasValidPriceData","hasValidOrderData","Error","useCrowdViewData","_ref","instrument","bookType","division","granularity","loading","priceCandlesLoading","data","error","priceCandlesError","variables","dataSource","Oc","V20","Mt5","timeSpan","fetchPolicy","priceCandlesProcessed","maxBookPrice","DEFAULT_WIDTH","PRICE_PADDING_MULTIPLIER","minBookPrice","orderPositionLoading","orderPositionError","Order","skip","concat","message","_orderPositionData$or4","xAxisData","candlesSeriesData","open","close","bucketWidth"],"sources":["../../../../../src/CrowdViewWidget/components/Chart/useCrowdViewData.ts"],"sourcesContent":["import { useQuery } from '@apollo/client';\nimport { useMemo } from 'react';\n\nimport { getOrderPositionBooks } from '../../../gql/getOrderPositionBooks';\nimport { getPriceCandles } from '../../../gql/getPriceCandles';\nimport type {\n GetOrderPositionBooksQuery,\n GetOrderPositionBooksQueryVariables,\n GetPriceCandlesQuery,\n GetPriceCandlesQueryVariables,\n} from '../../../gql/types/graphql';\nimport { BookType, DataSource, Division } from '../../../gql/types/graphql';\nimport { BOOKS_THRESHOLDS, BUCKET_CONFIG } from '../../constants';\nimport type { UseCrowdViewDataProps, UseCrowdViewDataReturn } from './types';\nimport { getTimeSpanForGranularity } from './utils/chartUtils';\n\nconst processPriceCandles = (\n priceCandlesData: GetPriceCandlesQuery | undefined\n) => {\n if (!priceCandlesData?.priceCandles?.candle?.length) {\n return {\n minPrice: 0,\n maxPrice: 0,\n hasValidCandles: false,\n candleMap: new Map(),\n candles: [],\n };\n }\n\n const candles = priceCandlesData.priceCandles.candle;\n let calculatedMinPrice = Number.MAX_VALUE;\n let calculatedMaxPrice = Number.MIN_VALUE;\n\n const candleMap = new Map<\n string,\n {\n point?: string;\n high?: number;\n low?: number;\n open?: number;\n close?: number;\n }\n >();\n\n candles.forEach((candle) => {\n if (!candle) return;\n\n if (candle.high > calculatedMaxPrice) {\n calculatedMaxPrice = candle.high;\n }\n if (candle.low < calculatedMinPrice) {\n calculatedMinPrice = candle.low;\n }\n\n if (candle.point) {\n candleMap.set(candle.point, candle);\n }\n });\n\n return {\n minPrice: calculatedMinPrice,\n maxPrice: calculatedMaxPrice,\n hasValidCandles: true,\n candleMap,\n candles,\n };\n};\n\nconst processOrderPositionBooks = (\n orderPositionData: GetOrderPositionBooksQuery | undefined,\n candleMap: Map<\n string,\n {\n point?: string;\n high?: number;\n low?: number;\n open?: number;\n close?: number;\n }\n >\n) => {\n if (!orderPositionData?.orderPositionBooks?.length) {\n return [];\n }\n\n return orderPositionData.orderPositionBooks\n .filter((book): book is NonNullable<typeof book> => {\n return book !== null && book.buckets?.length > 0;\n })\n .map((book) => {\n const filteredBuckets = book.buckets\n .filter((bucket) => {\n if (\n !bucket ||\n bucket.sentiment === undefined ||\n bucket.sentiment === null ||\n bucket.price === undefined\n ) {\n return false;\n }\n return Math.abs(bucket.sentiment) >= BOOKS_THRESHOLDS.MIN;\n })\n .map((bucket) => ({\n price: bucket!.price!,\n sentiment: bucket!.sentiment!,\n }));\n\n const candle = candleMap.get(book.time);\n const price = candle?.high ?? null;\n\n return [book.time, price, JSON.stringify(filteredBuckets)] as [\n string,\n number,\n string,\n ];\n });\n};\n\nconst validateData = (\n priceCandlesData: GetPriceCandlesQuery | undefined,\n orderPositionData: GetOrderPositionBooksQuery | undefined,\n hasValidCandles: boolean\n): Error | null => {\n const hasValidPriceData =\n (priceCandlesData?.priceCandles?.candle?.length ?? 0) >= 1;\n const hasValidOrderData =\n (orderPositionData?.orderPositionBooks?.length ?? 0) >= 1;\n\n if (!hasValidPriceData) {\n return new Error('Insufficient price candle data');\n }\n if (!hasValidOrderData) {\n return new Error('Insufficient order position data');\n }\n if (!hasValidCandles) {\n return new Error('Invalid candle data');\n }\n\n return null;\n};\n\nexport const useCrowdViewData = ({\n instrument,\n bookType,\n division,\n granularity,\n}: UseCrowdViewDataProps): UseCrowdViewDataReturn => {\n const {\n loading: priceCandlesLoading,\n data: priceCandlesData,\n error: priceCandlesError,\n } = useQuery<GetPriceCandlesQuery, GetPriceCandlesQueryVariables>(\n getPriceCandles,\n {\n variables: {\n dataSource: division === Division.Oc ? DataSource.V20 : DataSource.Mt5,\n division,\n instrument,\n granularity,\n timeSpan: getTimeSpanForGranularity(granularity),\n },\n fetchPolicy: 'no-cache',\n }\n );\n\n const priceCandlesProcessed = useMemo(\n () => processPriceCandles(priceCandlesData),\n [priceCandlesData]\n );\n\n const { minPrice, maxPrice, hasValidCandles, candleMap, candles } =\n priceCandlesProcessed;\n\n const maxBookPrice = useMemo(\n () =>\n maxPrice +\n BUCKET_CONFIG.DEFAULT_WIDTH * BUCKET_CONFIG.PRICE_PADDING_MULTIPLIER,\n [maxPrice]\n );\n\n const minBookPrice = useMemo(\n () =>\n minPrice -\n BUCKET_CONFIG.DEFAULT_WIDTH * BUCKET_CONFIG.PRICE_PADDING_MULTIPLIER,\n [minPrice]\n );\n\n const {\n loading: orderPositionLoading,\n data: orderPositionData,\n error: orderPositionError,\n } = useQuery<GetOrderPositionBooksQuery, GetOrderPositionBooksQueryVariables>(\n getOrderPositionBooks,\n {\n variables: {\n instrument,\n bookType: bookType || BookType.Order,\n timeSpan: getTimeSpanForGranularity(granularity),\n granularity,\n maxBookPrice,\n minBookPrice,\n },\n fetchPolicy: 'no-cache',\n skip: priceCandlesLoading || !!priceCandlesError,\n }\n );\n\n const loading = priceCandlesLoading || orderPositionLoading;\n\n const orderPositionBooks = useMemo(\n () => processOrderPositionBooks(orderPositionData, candleMap),\n [orderPositionData, candleMap]\n );\n\n const error = useMemo((): Error | null => {\n if (priceCandlesError) {\n return new Error(`Price candles error: ${priceCandlesError.message}`);\n }\n if (orderPositionError) {\n return new Error(`Order position error: ${orderPositionError.message}`);\n }\n if (loading) {\n return null;\n }\n return validateData(priceCandlesData, orderPositionData, hasValidCandles);\n }, [\n priceCandlesError,\n orderPositionError,\n loading,\n priceCandlesData,\n orderPositionData,\n hasValidCandles,\n ]);\n\n const data = useMemo(() => {\n if (!priceCandlesData || !orderPositionData || error) {\n return null;\n }\n\n const xAxisData = candles.map((candle) => candle?.point || '');\n const candlesSeriesData: [number, number, number, number][] = candles.map(\n (candle) => [\n candle?.open || 0,\n candle?.close || 0,\n candle?.low || 0,\n candle?.high || 0,\n ]\n );\n\n return {\n xAxisData,\n candlesSeriesData,\n orderPositionBooks,\n bucketWidth: orderPositionData.orderPositionBooks?.[0]?.bucketWidth || 0,\n };\n }, [priceCandlesData, orderPositionData, error, candles, orderPositionBooks]);\n\n return {\n data,\n loading,\n error: !!error,\n };\n};\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
import chroma from 'chroma-js';
|
|
2
|
+
import { Granularity, TimeSpan } from '../../../../gql/types/graphql';
|
|
3
|
+
import { BOOKS_THRESHOLDS, CHART_CONFIG, COLOR_MAP, TIME_THRESHOLDS } from '../../../constants';
|
|
4
|
+
export const getLabelData = _ref => {
|
|
5
|
+
let {
|
|
6
|
+
xAxisData,
|
|
7
|
+
isGreaterThanTwoWeeks
|
|
8
|
+
} = _ref;
|
|
9
|
+
return xAxisData.filter((record, index, arr) => {
|
|
10
|
+
if (index === 0) {
|
|
11
|
+
return false;
|
|
12
|
+
}
|
|
13
|
+
const previousTimestamp = arr[index - 1];
|
|
14
|
+
const currentDate = new Date(record);
|
|
15
|
+
const previousDate = new Date(previousTimestamp);
|
|
16
|
+
return isGreaterThanTwoWeeks ? currentDate.getDate() !== previousDate.getDate() : currentDate.getMonth() !== previousDate.getMonth();
|
|
17
|
+
}).map(item => ({
|
|
18
|
+
name: new Date(item).toLocaleDateString(undefined, {
|
|
19
|
+
month: 'short',
|
|
20
|
+
day: isGreaterThanTwoWeeks ? 'numeric' : undefined
|
|
21
|
+
}),
|
|
22
|
+
xAxis: item,
|
|
23
|
+
y: CHART_CONFIG.HEIGHT - 22,
|
|
24
|
+
silent: true,
|
|
25
|
+
emphasis: {
|
|
26
|
+
disabled: true
|
|
27
|
+
},
|
|
28
|
+
label: {
|
|
29
|
+
fontFamily: 'Sofia W03',
|
|
30
|
+
fontSize: 10,
|
|
31
|
+
position: 'bottom',
|
|
32
|
+
align: 'center',
|
|
33
|
+
formatter: '{b}'
|
|
34
|
+
}
|
|
35
|
+
}));
|
|
36
|
+
};
|
|
37
|
+
export const isDifferenceGreaterThanTwoWeeks = (startDate, endDate) => {
|
|
38
|
+
const date1 = new Date(startDate);
|
|
39
|
+
const date2 = new Date(endDate);
|
|
40
|
+
const differenceInMs = Math.abs(date2.getTime() - date1.getTime());
|
|
41
|
+
return differenceInMs < TIME_THRESHOLDS.TWO_WEEKS_MS;
|
|
42
|
+
};
|
|
43
|
+
export const getTimeSpanForGranularity = granularity => {
|
|
44
|
+
const granularityTimeSpanMap = {
|
|
45
|
+
[Granularity.M5]: TimeSpan.TwoDays,
|
|
46
|
+
[Granularity.M15]: TimeSpan.FiveDays,
|
|
47
|
+
[Granularity.H1]: TimeSpan.TwentyDays,
|
|
48
|
+
[Granularity.H4]: TimeSpan.NinetyDays
|
|
49
|
+
};
|
|
50
|
+
return granularityTimeSpanMap[granularity] || TimeSpan.TwoDays;
|
|
51
|
+
};
|
|
52
|
+
const getGradientColor = (value, startColor, targetColor) => {
|
|
53
|
+
const startThreshold = BOOKS_THRESHOLDS.MIN;
|
|
54
|
+
const endThreshold = BOOKS_THRESHOLDS.MAX;
|
|
55
|
+
const colorScale = chroma.scale([startColor, targetColor]).domain([startThreshold, endThreshold]).mode('rgb');
|
|
56
|
+
return colorScale(value).hex();
|
|
57
|
+
};
|
|
58
|
+
export const getRectColor = sentiment => sentiment < 0 ? getGradientColor(sentiment * -1, COLOR_MAP.short[0], COLOR_MAP.short[1]) : getGradientColor(sentiment, COLOR_MAP.long[0], COLOR_MAP.long[1]);
|
|
59
|
+
//# sourceMappingURL=chartUtils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"chartUtils.js","names":["chroma","Granularity","TimeSpan","BOOKS_THRESHOLDS","CHART_CONFIG","COLOR_MAP","TIME_THRESHOLDS","getLabelData","_ref","xAxisData","isGreaterThanTwoWeeks","filter","record","index","arr","previousTimestamp","currentDate","Date","previousDate","getDate","getMonth","map","item","name","toLocaleDateString","undefined","month","day","xAxis","y","HEIGHT","silent","emphasis","disabled","label","fontFamily","fontSize","position","align","formatter","isDifferenceGreaterThanTwoWeeks","startDate","endDate","date1","date2","differenceInMs","Math","abs","getTime","TWO_WEEKS_MS","getTimeSpanForGranularity","granularity","granularityTimeSpanMap","M5","TwoDays","M15","FiveDays","H1","TwentyDays","H4","NinetyDays","getGradientColor","value","startColor","targetColor","startThreshold","MIN","endThreshold","MAX","colorScale","scale","domain","mode","hex","getRectColor","sentiment","short","long"],"sources":["../../../../../../src/CrowdViewWidget/components/Chart/utils/chartUtils.ts"],"sourcesContent":["import chroma from 'chroma-js';\n\nimport { Granularity, TimeSpan } from '../../../../gql/types/graphql';\nimport {\n BOOKS_THRESHOLDS,\n CHART_CONFIG,\n COLOR_MAP,\n TIME_THRESHOLDS,\n} from '../../../constants';\nimport type { GetLabelsDataProps } from '../types';\n\nexport const getLabelData = ({\n xAxisData,\n isGreaterThanTwoWeeks,\n}: GetLabelsDataProps) =>\n xAxisData\n .filter((record, index, arr) => {\n if (index === 0) {\n return false;\n }\n const previousTimestamp = arr[index - 1];\n const currentDate = new Date(record);\n const previousDate = new Date(previousTimestamp);\n\n return isGreaterThanTwoWeeks\n ? currentDate.getDate() !== previousDate.getDate()\n : currentDate.getMonth() !== previousDate.getMonth();\n })\n .map((item) => ({\n name: new Date(item).toLocaleDateString(undefined, {\n month: 'short',\n day: isGreaterThanTwoWeeks ? 'numeric' : undefined,\n }),\n xAxis: item,\n y: CHART_CONFIG.HEIGHT - 22,\n silent: true,\n emphasis: {\n disabled: true,\n },\n label: {\n fontFamily: 'Sofia W03',\n fontSize: 10,\n position: 'bottom',\n align: 'center',\n formatter: '{b}',\n },\n }));\n\nexport const isDifferenceGreaterThanTwoWeeks = (\n startDate: string,\n endDate: string\n) => {\n const date1 = new Date(startDate);\n const date2 = new Date(endDate);\n\n const differenceInMs = Math.abs(date2.getTime() - date1.getTime());\n\n return differenceInMs < TIME_THRESHOLDS.TWO_WEEKS_MS;\n};\n\nexport const getTimeSpanForGranularity = (\n granularity: Granularity\n): TimeSpan => {\n const granularityTimeSpanMap: Record<Granularity, TimeSpan> = {\n [Granularity.M5]: TimeSpan.TwoDays,\n [Granularity.M15]: TimeSpan.FiveDays,\n [Granularity.H1]: TimeSpan.TwentyDays,\n [Granularity.H4]: TimeSpan.NinetyDays,\n };\n\n return granularityTimeSpanMap[granularity] || TimeSpan.TwoDays;\n};\n\nconst getGradientColor = (\n value: number,\n startColor: string,\n targetColor: string\n): string => {\n const startThreshold = BOOKS_THRESHOLDS.MIN;\n const endThreshold = BOOKS_THRESHOLDS.MAX;\n\n const colorScale = chroma\n .scale([startColor, targetColor])\n .domain([startThreshold, endThreshold])\n .mode('rgb');\n\n return colorScale(value).hex();\n};\n\nexport const getRectColor = (sentiment: number) =>\n sentiment < 0\n ? getGradientColor(sentiment * -1, COLOR_MAP.short[0], COLOR_MAP.short[1])\n : getGradientColor(sentiment, COLOR_MAP.long[0], COLOR_MAP.long[1]);\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
import { useLocale } from '@oanda/mono-i18n';
|
|
2
2
|
import React from 'react';
|
|
3
|
+
import { BOOKS_THRESHOLDS } from '../../constants';
|
|
3
4
|
import { LegendBar } from './LegendBar';
|
|
4
5
|
export const Legend = _ref => {
|
|
5
6
|
let {
|
|
6
|
-
longValues,
|
|
7
|
-
shortValues
|
|
7
|
+
longValues = [BOOKS_THRESHOLDS.MIN, BOOKS_THRESHOLDS.MAX],
|
|
8
|
+
shortValues = [BOOKS_THRESHOLDS.MIN, BOOKS_THRESHOLDS.MAX]
|
|
8
9
|
} = _ref;
|
|
9
10
|
const {
|
|
10
11
|
lang
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Legend.js","names":["useLocale","React","LegendBar","Legend","_ref","longValues","shortValues","lang","createElement","className","label","type","values"],"sources":["../../../../../src/CrowdViewWidget/components/Legend/Legend.tsx"],"sourcesContent":["import { useLocale } from '@oanda/mono-i18n';\nimport React from 'react';\n\nimport { LegendBar } from './LegendBar';\n\ninterface LegendProps {\n longValues
|
|
1
|
+
{"version":3,"file":"Legend.js","names":["useLocale","React","BOOKS_THRESHOLDS","LegendBar","Legend","_ref","longValues","MIN","MAX","shortValues","lang","createElement","className","label","type","values"],"sources":["../../../../../src/CrowdViewWidget/components/Legend/Legend.tsx"],"sourcesContent":["import { useLocale } from '@oanda/mono-i18n';\nimport React from 'react';\n\nimport { BOOKS_THRESHOLDS } from '../../constants';\nimport { LegendBar } from './LegendBar';\n\ninterface LegendProps {\n longValues?: [number, number];\n shortValues?: [number, number];\n}\n\nexport const Legend = ({\n longValues = [BOOKS_THRESHOLDS.MIN, BOOKS_THRESHOLDS.MAX],\n shortValues = [BOOKS_THRESHOLDS.MIN, BOOKS_THRESHOLDS.MAX],\n}: LegendProps) => {\n const { lang } = useLocale();\n\n return (\n <div className=\"lw-mx-auto lw-flex lw-w-full lw-flex-col lw-items-center lw-space-y-4 lw-py-6 sm:lw-max-w-md lg:lw-max-w-xl\">\n <LegendBar label={lang('long')} type=\"long\" values={longValues} />\n <LegendBar label={lang('short')} type=\"short\" values={shortValues} />\n </div>\n );\n};\n"],"mappings":"AAAA,SAASA,SAAS,QAAQ,kBAAkB;AAC5C,OAAOC,KAAK,MAAM,OAAO;AAEzB,SAASC,gBAAgB,QAAQ,iBAAiB;AAClD,SAASC,SAAS,QAAQ,aAAa;AAOvC,OAAO,MAAMC,MAAM,GAAGC,IAAA,IAGH;EAAA,IAHI;IACrBC,UAAU,GAAG,CAACJ,gBAAgB,CAACK,GAAG,EAAEL,gBAAgB,CAACM,GAAG,CAAC;IACzDC,WAAW,GAAG,CAACP,gBAAgB,CAACK,GAAG,EAAEL,gBAAgB,CAACM,GAAG;EAC9C,CAAC,GAAAH,IAAA;EACZ,MAAM;IAAEK;EAAK,CAAC,GAAGV,SAAS,CAAC,CAAC;EAE5B,OACEC,KAAA,CAAAU,aAAA;IAAKC,SAAS,EAAC;EAA6G,GAC1HX,KAAA,CAAAU,aAAA,CAACR,SAAS;IAACU,KAAK,EAAEH,IAAI,CAAC,MAAM,CAAE;IAACI,IAAI,EAAC,MAAM;IAACC,MAAM,EAAET;EAAW,CAAE,CAAC,EAClEL,KAAA,CAAAU,aAAA,CAACR,SAAS;IAACU,KAAK,EAAEH,IAAI,CAAC,OAAO,CAAE;IAACI,IAAI,EAAC,OAAO;IAACC,MAAM,EAAEN;EAAY,CAAE,CACjE,CAAC;AAEV,CAAC","ignoreList":[]}
|
|
@@ -1,30 +1,28 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
-
import {
|
|
2
|
+
import { COLOR_MAP } from '../../constants';
|
|
3
3
|
export const LegendBar = _ref => {
|
|
4
4
|
let {
|
|
5
5
|
values,
|
|
6
6
|
type,
|
|
7
7
|
label
|
|
8
8
|
} = _ref;
|
|
9
|
-
const colors =
|
|
9
|
+
const colors = COLOR_MAP[type];
|
|
10
10
|
return React.createElement("div", {
|
|
11
11
|
className: "lw-flex lw-w-full lw-flex-col lw-space-y-1 lw-border-border-primary"
|
|
12
12
|
}, React.createElement("div", {
|
|
13
13
|
className: "lw-flex lw-h-2 lw-w-full lw-overflow-hidden lw-border lw-border-border-primary"
|
|
14
|
-
},
|
|
15
|
-
key: "".concat(label, "_").concat(colors[index], "__color"),
|
|
14
|
+
}, React.createElement("div", {
|
|
16
15
|
className: "lw-h-full lw-flex-1",
|
|
17
16
|
"data-testid": "legend-bar-segment",
|
|
18
17
|
style: {
|
|
19
|
-
|
|
18
|
+
background: "linear-gradient(90deg,".concat(colors[0], " 0%, ").concat(colors[1], " 100%)")
|
|
20
19
|
}
|
|
21
|
-
}))
|
|
22
|
-
className: "lw-flex lw-w-full"
|
|
23
|
-
}, values.map(value => React.createElement("div", {
|
|
24
|
-
key: "".concat(value, "_").concat(type),
|
|
25
|
-
className: "lw-flex lw-w-1/4"
|
|
20
|
+
})), React.createElement("div", {
|
|
21
|
+
className: "lw-flex lw-w-full lw-justify-between"
|
|
26
22
|
}, React.createElement("span", {
|
|
27
23
|
className: "lw-whitespace-nowrap lw-font-sans lw-text-xs lw-text-text-primary"
|
|
28
|
-
},
|
|
24
|
+
}, values[0].toFixed(2), "% ", label), React.createElement("span", {
|
|
25
|
+
className: "lw-whitespace-nowrap lw-font-sans lw-text-xs lw-text-text-primary"
|
|
26
|
+
}, values[1].toFixed(2), "% ", label)));
|
|
29
27
|
};
|
|
30
28
|
//# sourceMappingURL=LegendBar.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LegendBar.js","names":["React","
|
|
1
|
+
{"version":3,"file":"LegendBar.js","names":["React","COLOR_MAP","LegendBar","_ref","values","type","label","colors","createElement","className","style","background","concat","toFixed"],"sources":["../../../../../src/CrowdViewWidget/components/Legend/LegendBar.tsx"],"sourcesContent":["import React from 'react';\n\nimport { COLOR_MAP } from '../../constants';\n\nexport type LegendType = 'long' | 'short';\n\ninterface LegendBarProps {\n values: number[];\n type: LegendType;\n label: string;\n}\n\nexport const LegendBar = ({ values, type, label }: LegendBarProps) => {\n const colors = COLOR_MAP[type];\n\n return (\n <div className=\"lw-flex lw-w-full lw-flex-col lw-space-y-1 lw-border-border-primary\">\n <div className=\"lw-flex lw-h-2 lw-w-full lw-overflow-hidden lw-border lw-border-border-primary\">\n <div\n className=\"lw-h-full lw-flex-1\"\n data-testid=\"legend-bar-segment\"\n style={{\n background: `linear-gradient(90deg,${colors[0]} 0%, ${colors[1]} 100%)`,\n }}\n />\n </div>\n\n <div className=\"lw-flex lw-w-full lw-justify-between\">\n <span className=\"lw-whitespace-nowrap lw-font-sans lw-text-xs lw-text-text-primary\">\n {values[0].toFixed(2)}% {label}\n </span>\n <span className=\"lw-whitespace-nowrap lw-font-sans lw-text-xs lw-text-text-primary\">\n {values[1].toFixed(2)}% {label}\n </span>\n </div>\n </div>\n );\n};\n"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;AAEzB,SAASC,SAAS,QAAQ,iBAAiB;AAU3C,OAAO,MAAMC,SAAS,GAAGC,IAAA,IAA6C;EAAA,IAA5C;IAAEC,MAAM;IAAEC,IAAI;IAAEC;EAAsB,CAAC,GAAAH,IAAA;EAC/D,MAAMI,MAAM,GAAGN,SAAS,CAACI,IAAI,CAAC;EAE9B,OACEL,KAAA,CAAAQ,aAAA;IAAKC,SAAS,EAAC;EAAqE,GAClFT,KAAA,CAAAQ,aAAA;IAAKC,SAAS,EAAC;EAAgF,GAC7FT,KAAA,CAAAQ,aAAA;IACEC,SAAS,EAAC,qBAAqB;IAC/B,eAAY,oBAAoB;IAChCC,KAAK,EAAE;MACLC,UAAU,2BAAAC,MAAA,CAA2BL,MAAM,CAAC,CAAC,CAAC,WAAAK,MAAA,CAAQL,MAAM,CAAC,CAAC,CAAC;IACjE;EAAE,CACH,CACE,CAAC,EAENP,KAAA,CAAAQ,aAAA;IAAKC,SAAS,EAAC;EAAsC,GACnDT,KAAA,CAAAQ,aAAA;IAAMC,SAAS,EAAC;EAAmE,GAChFL,MAAM,CAAC,CAAC,CAAC,CAACS,OAAO,CAAC,CAAC,CAAC,EAAC,IAAE,EAACP,KACrB,CAAC,EACPN,KAAA,CAAAQ,aAAA;IAAMC,SAAS,EAAC;EAAmE,GAChFL,MAAM,CAAC,CAAC,CAAC,CAACS,OAAO,CAAC,CAAC,CAAC,EAAC,IAAE,EAACP,KACrB,CACH,CACF,CAAC;AAEV,CAAC","ignoreList":[]}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
export const BOOKS_THRESHOLDS = {
|
|
2
|
+
MIN: 0.15,
|
|
3
|
+
MAX: 0.55
|
|
4
|
+
};
|
|
5
|
+
export const BUCKET_CONFIG = {
|
|
6
|
+
DEFAULT_WIDTH: 0.0005,
|
|
7
|
+
PRICE_PADDING_MULTIPLIER: 2
|
|
8
|
+
};
|
|
9
|
+
export const TIME_THRESHOLDS = {
|
|
10
|
+
TWO_WEEKS_MS: 14 * 24 * 60 * 60 * 1000
|
|
11
|
+
};
|
|
12
|
+
export const CHART_CONFIG = {
|
|
13
|
+
HEIGHT: 425,
|
|
14
|
+
WIDTH: 9999,
|
|
15
|
+
X_LABEL_SIZE: 40,
|
|
16
|
+
Y_LABEL_SIZE_DESKTOP: 60,
|
|
17
|
+
INITIAL_START_ZOOM: 80,
|
|
18
|
+
INITIAL_END_ZOOM: 100
|
|
19
|
+
};
|
|
20
|
+
export const COLOR_MAP = {
|
|
21
|
+
long: ['#ffffff', '#fdb833'],
|
|
22
|
+
short: ['#ffffff', '#0096c7']
|
|
23
|
+
};
|
|
24
|
+
//# sourceMappingURL=constants.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"constants.js","names":["BOOKS_THRESHOLDS","MIN","MAX","BUCKET_CONFIG","DEFAULT_WIDTH","PRICE_PADDING_MULTIPLIER","TIME_THRESHOLDS","TWO_WEEKS_MS","CHART_CONFIG","HEIGHT","WIDTH","X_LABEL_SIZE","Y_LABEL_SIZE_DESKTOP","INITIAL_START_ZOOM","INITIAL_END_ZOOM","COLOR_MAP","long","short"],"sources":["../../../src/CrowdViewWidget/constants.ts"],"sourcesContent":["export const BOOKS_THRESHOLDS = {\n MIN: 0.15,\n MAX: 0.55,\n} as const;\n\nexport const BUCKET_CONFIG = {\n DEFAULT_WIDTH: 0.0005,\n PRICE_PADDING_MULTIPLIER: 2,\n} as const;\n\nexport const TIME_THRESHOLDS = {\n TWO_WEEKS_MS: 14 * 24 * 60 * 60 * 1000,\n} as const;\n\nexport const CHART_CONFIG = {\n HEIGHT: 425,\n WIDTH: 9999,\n X_LABEL_SIZE: 40,\n Y_LABEL_SIZE_DESKTOP: 60,\n INITIAL_START_ZOOM: 80,\n INITIAL_END_ZOOM: 100,\n} as const;\n\nexport const COLOR_MAP = {\n long: ['#ffffff', '#fdb833'],\n short: ['#ffffff', '#0096c7'],\n} as const;\n"],"mappings":"AAAA,OAAO,MAAMA,gBAAgB,GAAG;EAC9BC,GAAG,EAAE,IAAI;EACTC,GAAG,EAAE;AACP,CAAU;AAEV,OAAO,MAAMC,aAAa,GAAG;EAC3BC,aAAa,EAAE,MAAM;EACrBC,wBAAwB,EAAE;AAC5B,CAAU;AAEV,OAAO,MAAMC,eAAe,GAAG;EAC7BC,YAAY,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;AACpC,CAAU;AAEV,OAAO,MAAMC,YAAY,GAAG;EAC1BC,MAAM,EAAE,GAAG;EACXC,KAAK,EAAE,IAAI;EACXC,YAAY,EAAE,EAAE;EAChBC,oBAAoB,EAAE,EAAE;EACxBC,kBAAkB,EAAE,EAAE;EACtBC,gBAAgB,EAAE;AACpB,CAAU;AAEV,OAAO,MAAMC,SAAS,GAAG;EACvBC,IAAI,EAAE,CAAC,SAAS,EAAE,SAAS,CAAC;EAC5BC,KAAK,EAAE,CAAC,SAAS,EAAE,SAAS;AAC9B,CAAU","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"render.js","names":["validateLocale","validateToolParams","React","createRoot","Division","CrowdViewWidget","graphqlUrl","window","widgetsConfig","dataCrowdViewParamsElements","document","querySelectorAll","forEach","element","root","params","getAttribute","mode","division","locale","JSON","parse","isParamError","name","valueCheck","value","Object","values","includes","render","createElement","theme"],"sources":["../../../src/CrowdViewWidget/render.tsx"],"sourcesContent":["import type { Theme } from '@oanda/labs-widget-common';\nimport { validateLocale, validateToolParams } from '@oanda/labs-widget-common';\nimport React from 'react';\nimport { createRoot } from 'react-dom/client';\n\nimport { Division } from '../gql/types/graphql';\nimport { CrowdViewWidget } from './CrowdViewWidget';\n\nconst { graphqlUrl } = window.widgetsConfig || {};\n\nconst dataCrowdViewParamsElements = document.querySelectorAll(\n 'div[data-crowd-view-params]'\n);\n\ndataCrowdViewParamsElements.forEach((element) => {\n const root = createRoot(element);\n const params = element.getAttribute('data-crowd-view-params');\n const mode = element.getAttribute('data-mode');\n const { division, locale } = JSON.parse(params as string);\n\n const isParamError = validateToolParams(\n {\n division,\n locale,\n graphqlUrl,\n },\n [\n {\n name: 'locale',\n valueCheck: (value: string | undefined) => validateLocale(value),\n },\n {\n name: 'division',\n valueCheck: (value: Division) =>\n Object.values(Division).includes(value),\n },\n {\n name: 'graphqlUrl',\n },\n ]\n );\n\n root.render(\n <CrowdViewWidget\n graphqlUrl={graphqlUrl}\n isParamError={isParamError}\n locale={locale}\n theme={mode as Theme}\n />\n );\n});\n"],"mappings":"AACA,SAASA,cAAc,EAAEC,kBAAkB,QAAQ,2BAA2B;AAC9E,OAAOC,KAAK,MAAM,OAAO;AACzB,SAASC,UAAU,QAAQ,kBAAkB;AAE7C,SAASC,QAAQ,QAAQ,sBAAsB;AAC/C,SAASC,eAAe,QAAQ,mBAAmB;AAEnD,MAAM;EAAEC;AAAW,CAAC,GAAGC,MAAM,CAACC,aAAa,IAAI,CAAC,CAAC;AAEjD,MAAMC,2BAA2B,GAAGC,QAAQ,CAACC,gBAAgB,CAC3D,6BACF,CAAC;AAEDF,2BAA2B,CAACG,OAAO,CAAEC,OAAO,IAAK;EAC/C,MAAMC,IAAI,GAAGX,UAAU,CAACU,OAAO,CAAC;EAChC,MAAME,MAAM,GAAGF,OAAO,CAACG,YAAY,CAAC,wBAAwB,CAAC;EAC7D,MAAMC,IAAI,GAAGJ,OAAO,CAACG,YAAY,CAAC,WAAW,CAAC;EAC9C,MAAM;IAAEE,QAAQ;IAAEC;EAAO,CAAC,GAAGC,IAAI,CAACC,KAAK,CAACN,MAAgB,CAAC;EAEzD,MAAMO,YAAY,GAAGrB,kBAAkB,CACrC;IACEiB,QAAQ;IACRC,MAAM;IACNb;EACF,CAAC,EACD,CACE;IACEiB,IAAI,EAAE,QAAQ;IACdC,UAAU,EAAGC,KAAyB,IAAKzB,cAAc,CAACyB,KAAK;EACjE,CAAC,EACD;IACEF,IAAI,EAAE,UAAU;IAChBC,UAAU,EAAGC,KAAe,IAC1BC,MAAM,CAACC,MAAM,CAACvB,QAAQ,CAAC,CAACwB,QAAQ,CAACH,KAAK;EAC1C,CAAC,EACD;IACEF,IAAI,EAAE;EACR,CAAC,CAEL,CAAC;EAEDT,IAAI,CAACe,MAAM,CACT3B,KAAA,CAAA4B,aAAA,CAACzB,eAAe;
|
|
1
|
+
{"version":3,"file":"render.js","names":["validateLocale","validateToolParams","React","createRoot","Division","CrowdViewWidget","graphqlUrl","window","widgetsConfig","dataCrowdViewParamsElements","document","querySelectorAll","forEach","element","root","params","getAttribute","mode","division","locale","JSON","parse","isParamError","name","valueCheck","value","Object","values","includes","render","createElement","theme"],"sources":["../../../src/CrowdViewWidget/render.tsx"],"sourcesContent":["import type { Theme } from '@oanda/labs-widget-common';\nimport { validateLocale, validateToolParams } from '@oanda/labs-widget-common';\nimport React from 'react';\nimport { createRoot } from 'react-dom/client';\n\nimport { Division } from '../gql/types/graphql';\nimport { CrowdViewWidget } from './CrowdViewWidget';\n\nconst { graphqlUrl } = window.widgetsConfig || {};\n\nconst dataCrowdViewParamsElements = document.querySelectorAll(\n 'div[data-crowd-view-params]'\n);\n\ndataCrowdViewParamsElements.forEach((element) => {\n const root = createRoot(element);\n const params = element.getAttribute('data-crowd-view-params');\n const mode = element.getAttribute('data-mode');\n const { division, locale } = JSON.parse(params as string);\n\n const isParamError = validateToolParams(\n {\n division,\n locale,\n graphqlUrl,\n },\n [\n {\n name: 'locale',\n valueCheck: (value: string | undefined) => validateLocale(value),\n },\n {\n name: 'division',\n valueCheck: (value: Division) =>\n Object.values(Division).includes(value),\n },\n {\n name: 'graphqlUrl',\n },\n ]\n );\n\n root.render(\n <CrowdViewWidget\n division={division}\n graphqlUrl={graphqlUrl}\n isParamError={isParamError}\n locale={locale}\n theme={mode as Theme}\n />\n );\n});\n"],"mappings":"AACA,SAASA,cAAc,EAAEC,kBAAkB,QAAQ,2BAA2B;AAC9E,OAAOC,KAAK,MAAM,OAAO;AACzB,SAASC,UAAU,QAAQ,kBAAkB;AAE7C,SAASC,QAAQ,QAAQ,sBAAsB;AAC/C,SAASC,eAAe,QAAQ,mBAAmB;AAEnD,MAAM;EAAEC;AAAW,CAAC,GAAGC,MAAM,CAACC,aAAa,IAAI,CAAC,CAAC;AAEjD,MAAMC,2BAA2B,GAAGC,QAAQ,CAACC,gBAAgB,CAC3D,6BACF,CAAC;AAEDF,2BAA2B,CAACG,OAAO,CAAEC,OAAO,IAAK;EAC/C,MAAMC,IAAI,GAAGX,UAAU,CAACU,OAAO,CAAC;EAChC,MAAME,MAAM,GAAGF,OAAO,CAACG,YAAY,CAAC,wBAAwB,CAAC;EAC7D,MAAMC,IAAI,GAAGJ,OAAO,CAACG,YAAY,CAAC,WAAW,CAAC;EAC9C,MAAM;IAAEE,QAAQ;IAAEC;EAAO,CAAC,GAAGC,IAAI,CAACC,KAAK,CAACN,MAAgB,CAAC;EAEzD,MAAMO,YAAY,GAAGrB,kBAAkB,CACrC;IACEiB,QAAQ;IACRC,MAAM;IACNb;EACF,CAAC,EACD,CACE;IACEiB,IAAI,EAAE,QAAQ;IACdC,UAAU,EAAGC,KAAyB,IAAKzB,cAAc,CAACyB,KAAK;EACjE,CAAC,EACD;IACEF,IAAI,EAAE,UAAU;IAChBC,UAAU,EAAGC,KAAe,IAC1BC,MAAM,CAACC,MAAM,CAACvB,QAAQ,CAAC,CAACwB,QAAQ,CAACH,KAAK;EAC1C,CAAC,EACD;IACEF,IAAI,EAAE;EACR,CAAC,CAEL,CAAC;EAEDT,IAAI,CAACe,MAAM,CACT3B,KAAA,CAAA4B,aAAA,CAACzB,eAAe;IACda,QAAQ,EAAEA,QAAS;IACnBZ,UAAU,EAAEA,UAAW;IACvBgB,YAAY,EAAEA,YAAa;IAC3BH,MAAM,EAAEA,MAAO;IACfY,KAAK,EAAEd;EAAc,CACtB,CACH,CAAC;AACH,CAAC,CAAC","ignoreList":[]}
|
|
@@ -0,0 +1,116 @@
|
|
|
1
|
+
import { BookType, Granularity } from '../gql/types/graphql';
|
|
2
|
+
import { InstrumentId, InstrumentIdOC } from './types/instruments';
|
|
3
|
+
const navigationConfig = [{
|
|
4
|
+
id: BookType.Order,
|
|
5
|
+
label: 'order_book'
|
|
6
|
+
}, {
|
|
7
|
+
id: BookType.Position,
|
|
8
|
+
label: 'position_book'
|
|
9
|
+
}];
|
|
10
|
+
const instrumentSelectConfigOC = [{
|
|
11
|
+
id: InstrumentIdOC.EUR_AUD,
|
|
12
|
+
label: 'EUR/AUD'
|
|
13
|
+
}, {
|
|
14
|
+
id: InstrumentIdOC.EUR_GBP,
|
|
15
|
+
label: 'EUR/GBP'
|
|
16
|
+
}, {
|
|
17
|
+
id: InstrumentIdOC.EUR_JPY,
|
|
18
|
+
label: 'EUR/JPY'
|
|
19
|
+
}, {
|
|
20
|
+
id: InstrumentIdOC.EUR_USD,
|
|
21
|
+
label: 'EUR/USD'
|
|
22
|
+
}, {
|
|
23
|
+
id: InstrumentIdOC.EUR_CHF,
|
|
24
|
+
label: 'EUR/CHF'
|
|
25
|
+
}, {
|
|
26
|
+
id: InstrumentIdOC.USD_CHF,
|
|
27
|
+
label: 'USD/CHF'
|
|
28
|
+
}, {
|
|
29
|
+
id: InstrumentIdOC.USD_JPY,
|
|
30
|
+
label: 'USD/JPY'
|
|
31
|
+
}, {
|
|
32
|
+
id: InstrumentIdOC.USD_CAD,
|
|
33
|
+
label: 'USD/CAD'
|
|
34
|
+
}, {
|
|
35
|
+
id: InstrumentIdOC.GBP_USD,
|
|
36
|
+
label: 'GBP/USD'
|
|
37
|
+
}, {
|
|
38
|
+
id: InstrumentIdOC.GBP_JPY,
|
|
39
|
+
label: 'GBP/JPY'
|
|
40
|
+
}, {
|
|
41
|
+
id: InstrumentIdOC.GBP_CHF,
|
|
42
|
+
label: 'GBP/CHF'
|
|
43
|
+
}, {
|
|
44
|
+
id: InstrumentIdOC.AUD_JPY,
|
|
45
|
+
label: 'AUD/JPY'
|
|
46
|
+
}, {
|
|
47
|
+
id: InstrumentIdOC.AUD_USD,
|
|
48
|
+
label: 'AUD/USD'
|
|
49
|
+
}, {
|
|
50
|
+
id: InstrumentIdOC.NZD_USD,
|
|
51
|
+
label: 'NZD/USD'
|
|
52
|
+
}];
|
|
53
|
+
const instrumentSelectConfig = [{
|
|
54
|
+
id: InstrumentId.EUR_AUD,
|
|
55
|
+
label: 'EUR/AUD'
|
|
56
|
+
}, {
|
|
57
|
+
id: InstrumentId.EUR_GBP,
|
|
58
|
+
label: 'EUR/GBP'
|
|
59
|
+
}, {
|
|
60
|
+
id: InstrumentId.EUR_JPY,
|
|
61
|
+
label: 'EUR/JPY'
|
|
62
|
+
}, {
|
|
63
|
+
id: InstrumentId.EUR_USD,
|
|
64
|
+
label: 'EUR/USD'
|
|
65
|
+
}, {
|
|
66
|
+
id: InstrumentId.EUR_CHF,
|
|
67
|
+
label: 'EUR/CHF'
|
|
68
|
+
}, {
|
|
69
|
+
id: InstrumentId.USD_CHF,
|
|
70
|
+
label: 'USD/CHF'
|
|
71
|
+
}, {
|
|
72
|
+
id: InstrumentId.USD_JPY,
|
|
73
|
+
label: 'USD/JPY'
|
|
74
|
+
}, {
|
|
75
|
+
id: InstrumentId.USD_CAD,
|
|
76
|
+
label: 'USD/CAD'
|
|
77
|
+
}, {
|
|
78
|
+
id: InstrumentId.GBP_USD,
|
|
79
|
+
label: 'GBP/USD'
|
|
80
|
+
}, {
|
|
81
|
+
id: InstrumentId.GBP_JPY,
|
|
82
|
+
label: 'GBP/JPY'
|
|
83
|
+
}, {
|
|
84
|
+
id: InstrumentId.GBP_CHF,
|
|
85
|
+
label: 'GBP/CHF'
|
|
86
|
+
}, {
|
|
87
|
+
id: InstrumentId.AUD_JPY,
|
|
88
|
+
label: 'AUD/JPY'
|
|
89
|
+
}, {
|
|
90
|
+
id: InstrumentId.AUD_USD,
|
|
91
|
+
label: 'AUD/USD'
|
|
92
|
+
}, {
|
|
93
|
+
id: InstrumentId.NZD_USD,
|
|
94
|
+
label: 'NZD/USD'
|
|
95
|
+
}, {
|
|
96
|
+
id: InstrumentId.XAU_USD,
|
|
97
|
+
label: 'XAU/USD'
|
|
98
|
+
}, {
|
|
99
|
+
id: InstrumentId.XAG_USD,
|
|
100
|
+
label: 'XAG/USD'
|
|
101
|
+
}];
|
|
102
|
+
const granularitySelectConfig = [{
|
|
103
|
+
id: Granularity.M5,
|
|
104
|
+
label: '5_minutes'
|
|
105
|
+
}, {
|
|
106
|
+
id: Granularity.M15,
|
|
107
|
+
label: '15_minutes'
|
|
108
|
+
}, {
|
|
109
|
+
id: Granularity.H1,
|
|
110
|
+
label: '1_hour'
|
|
111
|
+
}, {
|
|
112
|
+
id: Granularity.H4,
|
|
113
|
+
label: '4_hours'
|
|
114
|
+
}];
|
|
115
|
+
export { granularitySelectConfig, instrumentSelectConfig, instrumentSelectConfigOC, navigationConfig };
|
|
116
|
+
//# sourceMappingURL=selectConfig.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"selectConfig.js","names":["BookType","Granularity","InstrumentId","InstrumentIdOC","navigationConfig","id","Order","label","Position","instrumentSelectConfigOC","EUR_AUD","EUR_GBP","EUR_JPY","EUR_USD","EUR_CHF","USD_CHF","USD_JPY","USD_CAD","GBP_USD","GBP_JPY","GBP_CHF","AUD_JPY","AUD_USD","NZD_USD","instrumentSelectConfig","XAU_USD","XAG_USD","granularitySelectConfig","M5","M15","H1","H4"],"sources":["../../../src/CrowdViewWidget/selectConfig.ts"],"sourcesContent":["import { BookType, Granularity } from '../gql/types/graphql';\nimport { InstrumentId, InstrumentIdOC } from './types/instruments';\n\nconst navigationConfig = [\n {\n id: BookType.Order,\n label: 'order_book',\n },\n {\n id: BookType.Position,\n label: 'position_book',\n },\n];\n\nconst instrumentSelectConfigOC = [\n {\n id: InstrumentIdOC.EUR_AUD,\n label: 'EUR/AUD',\n },\n {\n id: InstrumentIdOC.EUR_GBP,\n label: 'EUR/GBP',\n },\n {\n id: InstrumentIdOC.EUR_JPY,\n label: 'EUR/JPY',\n },\n {\n id: InstrumentIdOC.EUR_USD,\n label: 'EUR/USD',\n },\n {\n id: InstrumentIdOC.EUR_CHF,\n label: 'EUR/CHF',\n },\n {\n id: InstrumentIdOC.USD_CHF,\n label: 'USD/CHF',\n },\n {\n id: InstrumentIdOC.USD_JPY,\n label: 'USD/JPY',\n },\n {\n id: InstrumentIdOC.USD_CAD,\n label: 'USD/CAD',\n },\n {\n id: InstrumentIdOC.GBP_USD,\n label: 'GBP/USD',\n },\n {\n id: InstrumentIdOC.GBP_JPY,\n label: 'GBP/JPY',\n },\n {\n id: InstrumentIdOC.GBP_CHF,\n label: 'GBP/CHF',\n },\n {\n id: InstrumentIdOC.AUD_JPY,\n label: 'AUD/JPY',\n },\n {\n id: InstrumentIdOC.AUD_USD,\n label: 'AUD/USD',\n },\n {\n id: InstrumentIdOC.NZD_USD,\n label: 'NZD/USD',\n },\n];\n\nconst instrumentSelectConfig = [\n {\n id: InstrumentId.EUR_AUD,\n label: 'EUR/AUD',\n },\n {\n id: InstrumentId.EUR_GBP,\n label: 'EUR/GBP',\n },\n {\n id: InstrumentId.EUR_JPY,\n label: 'EUR/JPY',\n },\n {\n id: InstrumentId.EUR_USD,\n label: 'EUR/USD',\n },\n {\n id: InstrumentId.EUR_CHF,\n label: 'EUR/CHF',\n },\n {\n id: InstrumentId.USD_CHF,\n label: 'USD/CHF',\n },\n {\n id: InstrumentId.USD_JPY,\n label: 'USD/JPY',\n },\n {\n id: InstrumentId.USD_CAD,\n label: 'USD/CAD',\n },\n {\n id: InstrumentId.GBP_USD,\n label: 'GBP/USD',\n },\n {\n id: InstrumentId.GBP_JPY,\n label: 'GBP/JPY',\n },\n {\n id: InstrumentId.GBP_CHF,\n label: 'GBP/CHF',\n },\n {\n id: InstrumentId.AUD_JPY,\n label: 'AUD/JPY',\n },\n {\n id: InstrumentId.AUD_USD,\n label: 'AUD/USD',\n },\n {\n id: InstrumentId.NZD_USD,\n label: 'NZD/USD',\n },\n {\n id: InstrumentId.XAU_USD,\n label: 'XAU/USD',\n },\n {\n id: InstrumentId.XAG_USD,\n label: 'XAG/USD',\n },\n];\n\nconst granularitySelectConfig = [\n {\n id: Granularity.M5,\n label: '5_minutes',\n },\n {\n id: Granularity.M15,\n label: '15_minutes',\n },\n {\n id: Granularity.H1,\n label: '1_hour',\n },\n {\n id: Granularity.H4,\n label: '4_hours',\n },\n];\n\nexport {\n granularitySelectConfig,\n instrumentSelectConfig,\n instrumentSelectConfigOC,\n navigationConfig,\n};\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","names":[],"sources":["../../../../src/CrowdViewWidget/types/index.ts"],"sourcesContent":["export * from './instruments';\n"],"mappings":"AAAA,cAAc,eAAe","ignoreList":[]}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
export let InstrumentId = function (InstrumentId) {
|
|
2
|
+
InstrumentId["EUR_AUD"] = "EURAUD";
|
|
3
|
+
InstrumentId["EUR_GBP"] = "EURGBP";
|
|
4
|
+
InstrumentId["EUR_JPY"] = "EURJPY";
|
|
5
|
+
InstrumentId["EUR_USD"] = "EURUSD";
|
|
6
|
+
InstrumentId["EUR_CHF"] = "EURCHF";
|
|
7
|
+
InstrumentId["USD_CHF"] = "USDCHF";
|
|
8
|
+
InstrumentId["USD_JPY"] = "USDJPY";
|
|
9
|
+
InstrumentId["USD_CAD"] = "USDCAD";
|
|
10
|
+
InstrumentId["GBP_USD"] = "GBPUSD";
|
|
11
|
+
InstrumentId["GBP_JPY"] = "GBPJPY";
|
|
12
|
+
InstrumentId["GBP_CHF"] = "GBPCHF";
|
|
13
|
+
InstrumentId["AUD_JPY"] = "AUDJPY";
|
|
14
|
+
InstrumentId["AUD_USD"] = "AUDUSD";
|
|
15
|
+
InstrumentId["NZD_USD"] = "NZDUSD";
|
|
16
|
+
InstrumentId["XAU_USD"] = "XAUUSD";
|
|
17
|
+
InstrumentId["XAG_USD"] = "XAGUSD";
|
|
18
|
+
return InstrumentId;
|
|
19
|
+
}({});
|
|
20
|
+
export let InstrumentIdOC = function (InstrumentIdOC) {
|
|
21
|
+
InstrumentIdOC["EUR_AUD"] = "EUR_AUD";
|
|
22
|
+
InstrumentIdOC["EUR_GBP"] = "EUR_GBP";
|
|
23
|
+
InstrumentIdOC["EUR_JPY"] = "EUR_JPY";
|
|
24
|
+
InstrumentIdOC["EUR_USD"] = "EUR_USD";
|
|
25
|
+
InstrumentIdOC["EUR_CHF"] = "EUR_CHF";
|
|
26
|
+
InstrumentIdOC["USD_CHF"] = "USD_CHF";
|
|
27
|
+
InstrumentIdOC["USD_JPY"] = "USD_JPY";
|
|
28
|
+
InstrumentIdOC["USD_CAD"] = "USD_CAD";
|
|
29
|
+
InstrumentIdOC["GBP_USD"] = "GBP_USD";
|
|
30
|
+
InstrumentIdOC["GBP_JPY"] = "GBP_JPY";
|
|
31
|
+
InstrumentIdOC["GBP_CHF"] = "GBP_CHF";
|
|
32
|
+
InstrumentIdOC["AUD_JPY"] = "AUD_JPY";
|
|
33
|
+
InstrumentIdOC["AUD_USD"] = "AUD_USD";
|
|
34
|
+
InstrumentIdOC["NZD_USD"] = "NZD_USD";
|
|
35
|
+
InstrumentIdOC["XAU_USD"] = "XAU_USD";
|
|
36
|
+
InstrumentIdOC["XAG_USD"] = "XAG_USD";
|
|
37
|
+
return InstrumentIdOC;
|
|
38
|
+
}({});
|
|
39
|
+
//# sourceMappingURL=instruments.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"instruments.js","names":["InstrumentId","InstrumentIdOC"],"sources":["../../../../src/CrowdViewWidget/types/instruments.ts"],"sourcesContent":["export enum InstrumentId {\n EUR_AUD = 'EURAUD',\n EUR_GBP = 'EURGBP',\n EUR_JPY = 'EURJPY',\n EUR_USD = 'EURUSD',\n EUR_CHF = 'EURCHF',\n USD_CHF = 'USDCHF',\n USD_JPY = 'USDJPY',\n USD_CAD = 'USDCAD',\n GBP_USD = 'GBPUSD',\n GBP_JPY = 'GBPJPY',\n GBP_CHF = 'GBPCHF',\n AUD_JPY = 'AUDJPY',\n AUD_USD = 'AUDUSD',\n NZD_USD = 'NZDUSD',\n XAU_USD = 'XAUUSD',\n XAG_USD = 'XAGUSD',\n}\n\nexport enum InstrumentIdOC {\n EUR_AUD = 'EUR_AUD',\n EUR_GBP = 'EUR_GBP',\n EUR_JPY = 'EUR_JPY',\n EUR_USD = 'EUR_USD',\n EUR_CHF = 'EUR_CHF',\n USD_CHF = 'USD_CHF',\n USD_JPY = 'USD_JPY',\n USD_CAD = 'USD_CAD',\n GBP_USD = 'GBP_USD',\n GBP_JPY = 'GBP_JPY',\n GBP_CHF = 'GBP_CHF',\n AUD_JPY = 'AUD_JPY',\n AUD_USD = 'AUD_USD',\n NZD_USD = 'NZD_USD',\n XAU_USD = 'XAU_USD',\n XAG_USD = 'XAG_USD',\n}\n"],"mappings":"AAAA,WAAYA,YAAY,aAAZA,YAAY;EAAZA,YAAY;EAAZA,YAAY;EAAZA,YAAY;EAAZA,YAAY;EAAZA,YAAY;EAAZA,YAAY;EAAZA,YAAY;EAAZA,YAAY;EAAZA,YAAY;EAAZA,YAAY;EAAZA,YAAY;EAAZA,YAAY;EAAZA,YAAY;EAAZA,YAAY;EAAZA,YAAY;EAAZA,YAAY;EAAA,OAAZA,YAAY;AAAA;AAmBxB,WAAYC,cAAc,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;EAAdA,cAAc;EAAdA,cAAc;EAAdA,cAAc;EAAdA,cAAc;EAAA,OAAdA,cAAc;AAAA","ignoreList":[]}
|
|
@@ -1,44 +1,2 @@
|
|
|
1
|
-
export
|
|
2
|
-
InstrumentId["EUR_AUD"] = "EURAUD";
|
|
3
|
-
InstrumentId["EUR_GBP"] = "EURGBP";
|
|
4
|
-
InstrumentId["EUR_JPY"] = "EURJPY";
|
|
5
|
-
InstrumentId["EUR_USD"] = "EURUSD";
|
|
6
|
-
InstrumentId["EUR_CHF"] = "EURCHF";
|
|
7
|
-
InstrumentId["USD_CHF"] = "USDCHF";
|
|
8
|
-
InstrumentId["USD_JPY"] = "USDJPY";
|
|
9
|
-
InstrumentId["USD_CAD"] = "USDCAD";
|
|
10
|
-
InstrumentId["GBP_USD"] = "GBPUSD";
|
|
11
|
-
InstrumentId["GBP_JPY"] = "GBPJPY";
|
|
12
|
-
InstrumentId["GBP_CHF"] = "GBPCHF";
|
|
13
|
-
InstrumentId["AUD_JPY"] = "AUDJPY";
|
|
14
|
-
InstrumentId["AUD_USD"] = "AUDUSD";
|
|
15
|
-
InstrumentId["NZD_USD"] = "NZDUSD";
|
|
16
|
-
InstrumentId["XAU_USD"] = "XAUUSD";
|
|
17
|
-
InstrumentId["XAG_USD"] = "XAGUSD";
|
|
18
|
-
return InstrumentId;
|
|
19
|
-
}({});
|
|
20
|
-
export let GranularityId = function (GranularityId) {
|
|
21
|
-
GranularityId["MINUTE_5"] = "MINUTE_5";
|
|
22
|
-
GranularityId["MINUTE_15"] = "MINUTE_15";
|
|
23
|
-
GranularityId["MINUTE_30"] = "MINUTE_30";
|
|
24
|
-
GranularityId["HOUR_1"] = "HOUR_1";
|
|
25
|
-
GranularityId["HOUR_4"] = "HOUR_4";
|
|
26
|
-
GranularityId["DAY_1"] = "DAY_1";
|
|
27
|
-
return GranularityId;
|
|
28
|
-
}({});
|
|
29
|
-
export let TimeSpanId = function (TimeSpanId) {
|
|
30
|
-
TimeSpanId["HOUR_1"] = "HOUR_1";
|
|
31
|
-
TimeSpanId["HOUR_12"] = "HOUR_12";
|
|
32
|
-
TimeSpanId["DAY_1"] = "DAY_1";
|
|
33
|
-
TimeSpanId["DAY_2"] = "DAY_2";
|
|
34
|
-
TimeSpanId["WEEK_1"] = "WEEK_1";
|
|
35
|
-
TimeSpanId["WEEK_2"] = "WEEK_2";
|
|
36
|
-
TimeSpanId["WEEK_3"] = "WEEK_3";
|
|
37
|
-
TimeSpanId["MONTH_1"] = "MONTH_1";
|
|
38
|
-
TimeSpanId["MONTH_3"] = "MONTH_3";
|
|
39
|
-
TimeSpanId["MONTH_6"] = "MONTH_6";
|
|
40
|
-
TimeSpanId["YEAR_1"] = "YEAR_1";
|
|
41
|
-
TimeSpanId["YEAR_5"] = "YEAR_5";
|
|
42
|
-
return TimeSpanId;
|
|
43
|
-
}({});
|
|
1
|
+
export {};
|
|
44
2
|
//# sourceMappingURL=types.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","names":[
|
|
1
|
+
{"version":3,"file":"types.js","names":[],"sources":["../../../src/CrowdViewWidget/types.ts"],"sourcesContent":["import type { WidgetConfig } from '@oanda/labs-widget-common';\n\nimport type { Division } from '../gql/types/graphql';\nimport type { InstrumentId } from './types/instruments';\n\nexport interface CrowdViewConfig extends WidgetConfig {\n division: Division;\n}\n\nexport interface MainProps {\n instrument?: InstrumentId;\n division: Division;\n}\n"],"mappings":"","ignoreList":[]}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { Division } from '../../gql/types/graphql';
|
|
2
|
+
import { instrumentSelectConfig, instrumentSelectConfigOC } from '../selectConfig';
|
|
3
|
+
export const getInstrumentConfigForDivision = division => {
|
|
4
|
+
return division === Division.Oc ? instrumentSelectConfigOC : instrumentSelectConfig;
|
|
5
|
+
};
|
|
6
|
+
//# sourceMappingURL=instrumentUtils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"instrumentUtils.js","names":["Division","instrumentSelectConfig","instrumentSelectConfigOC","getInstrumentConfigForDivision","division","Oc"],"sources":["../../../../src/CrowdViewWidget/utils/instrumentUtils.ts"],"sourcesContent":["import { Division } from '../../gql/types/graphql';\nimport {\n instrumentSelectConfig,\n instrumentSelectConfigOC,\n} from '../selectConfig';\n\nexport const getInstrumentConfigForDivision = (division: Division) => {\n return division === Division.Oc\n ? instrumentSelectConfigOC\n : instrumentSelectConfig;\n};\n"],"mappings":"AAAA,SAASA,QAAQ,QAAQ,yBAAyB;AAClD,SACEC,sBAAsB,EACtBC,wBAAwB,QACnB,iBAAiB;AAExB,OAAO,MAAMC,8BAA8B,GAAIC,QAAkB,IAAK;EACpE,OAAOA,QAAQ,KAAKJ,QAAQ,CAACK,EAAE,GAC3BH,wBAAwB,GACxBD,sBAAsB;AAC5B,CAAC","ignoreList":[]}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
var _templateObject;
|
|
2
2
|
function _taggedTemplateLiteral(e, t) { return t || (t = e.slice(0)), Object.freeze(Object.defineProperties(e, { raw: { value: Object.freeze(t) } })); }
|
|
3
3
|
import { gql } from '@apollo/client';
|
|
4
|
-
const getOrderPositionBooks = gql(_templateObject || (_templateObject = _taggedTemplateLiteral(["\n query GetOrderPositionBooks(\n $instrument: String!\n $bookType: BookType!\n $
|
|
4
|
+
const getOrderPositionBooks = gql(_templateObject || (_templateObject = _taggedTemplateLiteral(["\n query GetOrderPositionBooks(\n $instrument: String!\n $bookType: BookType!\n $timeSpan: TimeSpan!\n $granularity: Granularity!\n $maxBookPrice: Float\n $minBookPrice: Float\n ) {\n orderPositionBooks(\n instrument: $instrument\n bookType: $bookType\n timeSpan: $timeSpan\n granularity: $granularity\n maxBookPrice: $maxBookPrice\n minBookPrice: $minBookPrice\n ) {\n bucketWidth\n price\n time\n buckets {\n price\n sentiment\n }\n }\n }\n"])));
|
|
5
5
|
export { getOrderPositionBooks };
|
|
6
6
|
//# sourceMappingURL=getOrderPositionBooks.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getOrderPositionBooks.js","names":["gql","getOrderPositionBooks","_templateObject","_taggedTemplateLiteral"],"sources":["../../../src/gql/getOrderPositionBooks.ts"],"sourcesContent":["import { gql } from '@apollo/client';\n\nconst getOrderPositionBooks = gql`\n query GetOrderPositionBooks(\n $instrument: String!\n $bookType: BookType!\n $
|
|
1
|
+
{"version":3,"file":"getOrderPositionBooks.js","names":["gql","getOrderPositionBooks","_templateObject","_taggedTemplateLiteral"],"sources":["../../../src/gql/getOrderPositionBooks.ts"],"sourcesContent":["import { gql } from '@apollo/client';\n\nconst getOrderPositionBooks = gql`\n query GetOrderPositionBooks(\n $instrument: String!\n $bookType: BookType!\n $timeSpan: TimeSpan!\n $granularity: Granularity!\n $maxBookPrice: Float\n $minBookPrice: Float\n ) {\n orderPositionBooks(\n instrument: $instrument\n bookType: $bookType\n timeSpan: $timeSpan\n granularity: $granularity\n maxBookPrice: $maxBookPrice\n minBookPrice: $minBookPrice\n ) {\n bucketWidth\n price\n time\n buckets {\n price\n sentiment\n }\n }\n }\n`;\n\nexport { getOrderPositionBooks };\n"],"mappings":";;AAAA,SAASA,GAAG,QAAQ,gBAAgB;AAEpC,MAAMC,qBAAqB,GAAGD,GAAG,CAAAE,eAAA,KAAAA,eAAA,GAAAC,sBAAA,qiBA0BhC;AAED,SAASF,qBAAqB","ignoreList":[]}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
var _templateObject;
|
|
2
|
+
function _taggedTemplateLiteral(e, t) { return t || (t = e.slice(0)), Object.freeze(Object.defineProperties(e, { raw: { value: Object.freeze(t) } })); }
|
|
3
|
+
import { gql } from '@apollo/client';
|
|
4
|
+
const getPriceCandles = gql(_templateObject || (_templateObject = _taggedTemplateLiteral(["\n query GetPriceCandles(\n $dataSource: DataSource!\n $division: Division!\n $instrument: String!\n $granularity: Granularity!\n $timeSpan: TimeSpan!\n ) {\n priceCandles(\n dataSource: $dataSource\n division: $division\n instrument: $instrument\n granularity: $granularity\n timeSpan: $timeSpan\n ) {\n candle {\n point\n high\n low\n open\n close\n }\n }\n }\n"])));
|
|
5
|
+
export { getPriceCandles };
|
|
6
|
+
//# sourceMappingURL=getPriceCandles.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getPriceCandles.js","names":["gql","getPriceCandles","_templateObject","_taggedTemplateLiteral"],"sources":["../../../src/gql/getPriceCandles.ts"],"sourcesContent":["import { gql } from '@apollo/client';\n\nconst getPriceCandles = gql`\n query GetPriceCandles(\n $dataSource: DataSource!\n $division: Division!\n $instrument: String!\n $granularity: Granularity!\n $timeSpan: TimeSpan!\n ) {\n priceCandles(\n dataSource: $dataSource\n division: $division\n instrument: $instrument\n granularity: $granularity\n timeSpan: $timeSpan\n ) {\n candle {\n point\n high\n low\n open\n close\n }\n }\n }\n`;\n\nexport { getPriceCandles };\n"],"mappings":";;AAAA,SAASA,GAAG,QAAQ,gBAAgB;AAEpC,MAAMC,eAAe,GAAGD,GAAG,CAAAE,eAAA,KAAAA,eAAA,GAAAC,sBAAA,odAwB1B;AAED,SAASF,eAAe","ignoreList":[]}
|
|
@@ -1,8 +1,7 @@
|
|
|
1
1
|
import * as types from './graphql';
|
|
2
2
|
const documents = {
|
|
3
|
-
'\n query GetOrderPositionBooks(\n $instrument: String!\n $bookType: BookType!\n $
|
|
4
|
-
'\n query GetPriceCandles(\n $division: Division
|
|
5
|
-
'\n query validateInstruments($instruments: [String]!, $division: Division) {\n mapInstrumentNames(instruments: $instruments, division: $division) {\n name\n displayName\n }\n }\n': types.ValidateInstrumentsDocument
|
|
3
|
+
'\n query GetOrderPositionBooks(\n $instrument: String!\n $bookType: BookType!\n $timeSpan: TimeSpan!\n $granularity: Granularity!\n $maxBookPrice: Float\n $minBookPrice: Float\n ) {\n orderPositionBooks(\n instrument: $instrument\n bookType: $bookType\n timeSpan: $timeSpan\n granularity: $granularity\n maxBookPrice: $maxBookPrice\n minBookPrice: $minBookPrice\n ) {\n bucketWidth\n price\n time\n buckets {\n price\n sentiment\n }\n }\n }\n': types.GetOrderPositionBooksDocument,
|
|
4
|
+
'\n query GetPriceCandles(\n $dataSource: DataSource!\n $division: Division!\n $instrument: String!\n $granularity: Granularity!\n $timeSpan: TimeSpan!\n ) {\n priceCandles(\n dataSource: $dataSource\n division: $division\n instrument: $instrument\n granularity: $granularity\n timeSpan: $timeSpan\n ) {\n candle {\n point\n high\n low\n open\n close\n }\n }\n }\n': types.GetPriceCandlesDocument
|
|
6
5
|
};
|
|
7
6
|
export function graphql(source) {
|
|
8
7
|
var _source;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gql.js","names":["types","documents","GetOrderPositionBooksDocument","GetPriceCandlesDocument","
|
|
1
|
+
{"version":3,"file":"gql.js","names":["types","documents","GetOrderPositionBooksDocument","GetPriceCandlesDocument","graphql","source","_source"],"sources":["../../../../src/gql/types/gql.ts"],"sourcesContent":["/* eslint-disable */\nimport * as types from './graphql';\nimport { TypedDocumentNode as DocumentNode } from '@graphql-typed-document-node/core';\n\n/**\n * Map of all GraphQL operations in the project.\n *\n * This map has several performance disadvantages:\n * 1. It is not tree-shakeable, so it will include all operations in the project.\n * 2. It is not minifiable, so the string of a GraphQL query will be multiple times inside the bundle.\n * 3. It does not support dead code elimination, so it will add unused operations.\n *\n * Therefore it is highly recommended to use the babel or swc plugin for production.\n */\nconst documents = {\n '\\n query GetOrderPositionBooks(\\n $instrument: String!\\n $bookType: BookType!\\n $timeSpan: TimeSpan!\\n $granularity: Granularity!\\n $maxBookPrice: Float\\n $minBookPrice: Float\\n ) {\\n orderPositionBooks(\\n instrument: $instrument\\n bookType: $bookType\\n timeSpan: $timeSpan\\n granularity: $granularity\\n maxBookPrice: $maxBookPrice\\n minBookPrice: $minBookPrice\\n ) {\\n bucketWidth\\n price\\n time\\n buckets {\\n price\\n sentiment\\n }\\n }\\n }\\n':\n types.GetOrderPositionBooksDocument,\n '\\n query GetPriceCandles(\\n $dataSource: DataSource!\\n $division: Division!\\n $instrument: String!\\n $granularity: Granularity!\\n $timeSpan: TimeSpan!\\n ) {\\n priceCandles(\\n dataSource: $dataSource\\n division: $division\\n instrument: $instrument\\n granularity: $granularity\\n timeSpan: $timeSpan\\n ) {\\n candle {\\n point\\n high\\n low\\n open\\n close\\n }\\n }\\n }\\n':\n types.GetPriceCandlesDocument,\n};\n\n/**\n * The graphql function is used to parse GraphQL queries into a document that can be used by GraphQL clients.\n *\n *\n * @example\n * ```ts\n * const query = graphql(`query GetUser($id: ID!) { user(id: $id) { name } }`);\n * ```\n *\n * The query argument is unknown!\n * Please regenerate the types.\n */\nexport function graphql(source: string): unknown;\n\n/**\n * The graphql function is used to parse GraphQL queries into a document that can be used by GraphQL clients.\n */\nexport function graphql(\n source: '\\n query GetOrderPositionBooks(\\n $instrument: String!\\n $bookType: BookType!\\n $timeSpan: TimeSpan!\\n $granularity: Granularity!\\n $maxBookPrice: Float\\n $minBookPrice: Float\\n ) {\\n orderPositionBooks(\\n instrument: $instrument\\n bookType: $bookType\\n timeSpan: $timeSpan\\n granularity: $granularity\\n maxBookPrice: $maxBookPrice\\n minBookPrice: $minBookPrice\\n ) {\\n bucketWidth\\n price\\n time\\n buckets {\\n price\\n sentiment\\n }\\n }\\n }\\n'\n): (typeof documents)['\\n query GetOrderPositionBooks(\\n $instrument: String!\\n $bookType: BookType!\\n $timeSpan: TimeSpan!\\n $granularity: Granularity!\\n $maxBookPrice: Float\\n $minBookPrice: Float\\n ) {\\n orderPositionBooks(\\n instrument: $instrument\\n bookType: $bookType\\n timeSpan: $timeSpan\\n granularity: $granularity\\n maxBookPrice: $maxBookPrice\\n minBookPrice: $minBookPrice\\n ) {\\n bucketWidth\\n price\\n time\\n buckets {\\n price\\n sentiment\\n }\\n }\\n }\\n'];\n/**\n * The graphql function is used to parse GraphQL queries into a document that can be used by GraphQL clients.\n */\nexport function graphql(\n source: '\\n query GetPriceCandles(\\n $dataSource: DataSource!\\n $division: Division!\\n $instrument: String!\\n $granularity: Granularity!\\n $timeSpan: TimeSpan!\\n ) {\\n priceCandles(\\n dataSource: $dataSource\\n division: $division\\n instrument: $instrument\\n granularity: $granularity\\n timeSpan: $timeSpan\\n ) {\\n candle {\\n point\\n high\\n low\\n open\\n close\\n }\\n }\\n }\\n'\n): (typeof documents)['\\n query GetPriceCandles(\\n $dataSource: DataSource!\\n $division: Division!\\n $instrument: String!\\n $granularity: Granularity!\\n $timeSpan: TimeSpan!\\n ) {\\n priceCandles(\\n dataSource: $dataSource\\n division: $division\\n instrument: $instrument\\n granularity: $granularity\\n timeSpan: $timeSpan\\n ) {\\n candle {\\n point\\n high\\n low\\n open\\n close\\n }\\n }\\n }\\n'];\n\nexport function graphql(source: string) {\n return (documents as any)[source] ?? {};\n}\n\nexport type DocumentType<TDocumentNode extends DocumentNode<any, any>> =\n TDocumentNode extends DocumentNode<infer TType, any> ? TType : never;\n"],"mappings":"AACA,OAAO,KAAKA,KAAK,MAAM,WAAW;AAalC,MAAMC,SAAS,GAAG;EAChB,+hBAA+hB,EAC7hBD,KAAK,CAACE,6BAA6B;EACrC,8cAA8c,EAC5cF,KAAK,CAACG;AACV,CAAC;AA6BD,OAAO,SAASC,OAAOA,CAACC,MAAc,EAAE;EAAA,IAAAC,OAAA;EACtC,QAAAA,OAAA,GAAQL,SAAS,CAASI,MAAM,CAAC,cAAAC,OAAA,cAAAA,OAAA,GAAI,CAAC,CAAC;AACzC","ignoreList":[]}
|