@oanda/labs-widget-common 1.0.222 → 1.0.224
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 +1764 -0
- package/dist/main/chart/BaseChart.js +10 -8
- package/dist/main/chart/BaseChart.js.map +1 -1
- package/dist/main/chart/formatters.js +4 -4
- package/dist/main/chart/formatters.js.map +1 -1
- package/dist/main/chart/getGridLines.js +12 -14
- package/dist/main/chart/getGridLines.js.map +1 -1
- package/dist/main/components/Button/Button.js +7 -4
- package/dist/main/components/Button/Button.js.map +1 -1
- package/dist/main/components/Card/Card.js +1 -2
- package/dist/main/components/Card/Card.js.map +1 -1
- package/dist/main/components/Card/rows/PriceCardRow.js +1 -1
- package/dist/main/components/Card/rows/PriceCardRow.js.map +1 -1
- package/dist/main/components/Disclaimer/Disclaimer.js +1 -2
- package/dist/main/components/Disclaimer/Disclaimer.js.map +1 -1
- package/dist/main/components/Input/NumberInput.js +13 -10
- package/dist/main/components/Input/NumberInput.js.map +1 -1
- package/dist/main/components/InstrumentRate/InstrumentRate.js +4 -3
- package/dist/main/components/InstrumentRate/InstrumentRate.js.map +1 -1
- package/dist/main/components/InstrumentRate/InstrumentRateWithChart.js +1 -1
- package/dist/main/components/InstrumentRate/InstrumentRateWithChart.js.map +1 -1
- package/dist/main/components/InstrumentRate/utils.js +1 -1
- package/dist/main/components/InstrumentRate/utils.js.map +1 -1
- package/dist/main/components/Label/Label.js +6 -3
- package/dist/main/components/Label/Label.js.map +1 -1
- package/dist/main/components/LastUpdated/LastUpdated.js +1 -1
- package/dist/main/components/LastUpdated/LastUpdated.js.map +1 -1
- package/dist/main/components/LineChart/LineChart.js +2 -2
- package/dist/main/components/LineChart/LineChart.js.map +1 -1
- package/dist/main/components/LineChart/utils.js +2 -2
- package/dist/main/components/LineChart/utils.js.map +1 -1
- package/dist/main/components/Pagination/Pagination.js +2 -2
- package/dist/main/components/Pagination/Pagination.js.map +1 -1
- package/dist/main/components/Price/Price.js +1 -2
- package/dist/main/components/Price/Price.js.map +1 -1
- package/dist/main/components/Select/Select.js +3 -4
- package/dist/main/components/Select/Select.js.map +1 -1
- package/dist/main/components/Sentiment/Sentiment.js +7 -7
- package/dist/main/components/Sentiment/Sentiment.js.map +1 -1
- package/dist/main/components/Sentiment/SentimentError.js +1 -1
- package/dist/main/components/Sentiment/SentimentError.js.map +1 -1
- package/dist/main/components/Sentiment/SentimentLoader.js +1 -1
- package/dist/main/components/Sentiment/SentimentLoader.js.map +1 -1
- package/dist/main/components/Sentiment/utils.js +3 -3
- package/dist/main/components/Sentiment/utils.js.map +1 -1
- package/dist/main/components/Switch/Switch.js +4 -5
- package/dist/main/components/Switch/Switch.js.map +1 -1
- package/dist/main/components/Switch/SwitchItem.js +1 -2
- package/dist/main/components/Switch/SwitchItem.js.map +1 -1
- package/dist/main/components/Table/Table.js +1 -2
- package/dist/main/components/Table/Table.js.map +1 -1
- package/dist/main/components/Table/TableCell.js +1 -1
- package/dist/main/components/Table/TableCell.js.map +1 -1
- package/dist/main/components/Table/TableHeader.js +1 -1
- package/dist/main/components/Table/TableHeader.js.map +1 -1
- package/dist/main/components/Table/TableRow.js +1 -2
- package/dist/main/components/Table/TableRow.js.map +1 -1
- package/dist/main/components/TableWidget/CardRecordRow.js +2 -1
- package/dist/main/components/TableWidget/CardRecordRow.js.map +1 -1
- package/dist/main/components/TableWidget/CardRenderer.js +6 -3
- package/dist/main/components/TableWidget/CardRenderer.js.map +1 -1
- package/dist/main/components/TableWidget/Cards.js +1 -1
- package/dist/main/components/TableWidget/Cards.js.map +1 -1
- package/dist/main/components/TableWidget/ColumnRenderer.js +7 -4
- package/dist/main/components/TableWidget/ColumnRenderer.js.map +1 -1
- package/dist/main/components/TableWidget/TableWidget.js +1 -1
- package/dist/main/components/TableWidget/TableWidget.js.map +1 -1
- package/dist/main/components/Tabs/Tabs.js +1 -1
- package/dist/main/components/Tabs/Tabs.js.map +1 -1
- package/dist/main/components/TextInput/TextInput.js +4 -4
- package/dist/main/components/TextInput/TextInput.js.map +1 -1
- package/dist/main/components/Truncate/Truncate.js +2 -3
- package/dist/main/components/Truncate/Truncate.js.map +1 -1
- package/dist/main/components/WidgetWrapper/WidgetWrapper.js +2 -2
- package/dist/main/components/WidgetWrapper/WidgetWrapper.js.map +1 -1
- package/dist/main/hooks/useLiveRatesMessage.js +7 -7
- package/dist/main/hooks/useLiveRatesMessage.js.map +1 -1
- package/dist/main/hooks/useLiveRatesQuery.js +5 -3
- package/dist/main/hooks/useLiveRatesQuery.js.map +1 -1
- package/dist/main/hooks/useRecords.js +5 -5
- package/dist/main/hooks/useRecords.js.map +1 -1
- package/dist/main/hooks/useVisibleLiveDataRecord.js +10 -10
- package/dist/main/hooks/useVisibleLiveDataRecord.js.map +1 -1
- package/dist/main/providers/Layout/LayoutProvider.js +1 -2
- package/dist/main/providers/Layout/LayoutProvider.js.map +1 -1
- package/dist/main/providers/LiveRates/LiveRatesProvider.js +16 -13
- package/dist/main/providers/LiveRates/LiveRatesProvider.js.map +1 -1
- package/dist/main/providers/Widget/WidgetProvider.js +7 -6
- package/dist/main/providers/Widget/WidgetProvider.js.map +1 -1
- package/dist/main/tailwind/preset.js +7 -3
- package/dist/main/tailwind/preset.js.map +1 -1
- package/dist/main/tailwind/themes/themeColors.js +7 -5
- package/dist/main/tailwind/themes/themeColors.js.map +1 -1
- package/dist/main/tailwind/utils.js +7 -3
- package/dist/main/tailwind/utils.js.map +1 -1
- package/dist/main/testUtils/index.js +2 -2
- package/dist/main/testUtils/index.js.map +1 -1
- package/dist/main/utils/dateUtils.js +3 -3
- package/dist/main/utils/dateUtils.js.map +1 -1
- package/dist/main/utils/getLocale.js +1 -1
- package/dist/main/utils/getLocale.js.map +1 -1
- package/dist/main/utils/liveRates/buildUrl.js +11 -9
- package/dist/main/utils/liveRates/buildUrl.js.map +1 -1
- package/dist/main/utils/liveRates/calculatePriceChangeFromOpen.js +1 -1
- package/dist/main/utils/liveRates/calculatePriceChangeFromOpen.js.map +1 -1
- package/dist/module/chart/BaseChart.js +9 -6
- package/dist/module/chart/BaseChart.js.map +1 -1
- package/dist/module/chart/formatters.js +4 -4
- package/dist/module/chart/formatters.js.map +1 -1
- package/dist/module/chart/getGridLines.js +12 -14
- package/dist/module/chart/getGridLines.js.map +1 -1
- package/dist/module/components/Button/Button.js +7 -4
- package/dist/module/components/Button/Button.js.map +1 -1
- package/dist/module/components/Card/rows/PriceCardRow.js +1 -1
- package/dist/module/components/Card/rows/PriceCardRow.js.map +1 -1
- package/dist/module/components/Input/NumberInput.js +13 -10
- package/dist/module/components/Input/NumberInput.js.map +1 -1
- package/dist/module/components/InstrumentRate/InstrumentRate.js +4 -3
- package/dist/module/components/InstrumentRate/InstrumentRate.js.map +1 -1
- package/dist/module/components/InstrumentRate/InstrumentRateWithChart.js +1 -1
- package/dist/module/components/InstrumentRate/InstrumentRateWithChart.js.map +1 -1
- package/dist/module/components/InstrumentRate/utils.js +1 -1
- package/dist/module/components/InstrumentRate/utils.js.map +1 -1
- package/dist/module/components/Label/Label.js +6 -3
- package/dist/module/components/Label/Label.js.map +1 -1
- package/dist/module/components/LastUpdated/LastUpdated.js +1 -1
- package/dist/module/components/LastUpdated/LastUpdated.js.map +1 -1
- package/dist/module/components/LineChart/LineChart.js +2 -2
- package/dist/module/components/LineChart/LineChart.js.map +1 -1
- package/dist/module/components/LineChart/utils.js +2 -2
- package/dist/module/components/LineChart/utils.js.map +1 -1
- package/dist/module/components/Pagination/Pagination.js +2 -2
- package/dist/module/components/Pagination/Pagination.js.map +1 -1
- package/dist/module/components/Select/Select.js +2 -2
- package/dist/module/components/Select/Select.js.map +1 -1
- package/dist/module/components/Sentiment/Sentiment.js +7 -7
- package/dist/module/components/Sentiment/Sentiment.js.map +1 -1
- package/dist/module/components/Sentiment/SentimentError.js +1 -1
- package/dist/module/components/Sentiment/SentimentError.js.map +1 -1
- package/dist/module/components/Sentiment/SentimentLoader.js +1 -1
- package/dist/module/components/Sentiment/SentimentLoader.js.map +1 -1
- package/dist/module/components/Sentiment/utils.js +3 -3
- package/dist/module/components/Sentiment/utils.js.map +1 -1
- package/dist/module/components/Switch/Switch.js +3 -3
- package/dist/module/components/Switch/Switch.js.map +1 -1
- package/dist/module/components/Table/TableCell.js +1 -1
- package/dist/module/components/Table/TableCell.js.map +1 -1
- package/dist/module/components/Table/TableHeader.js +1 -1
- package/dist/module/components/Table/TableHeader.js.map +1 -1
- package/dist/module/components/TableWidget/CardRecordRow.js +2 -1
- package/dist/module/components/TableWidget/CardRecordRow.js.map +1 -1
- package/dist/module/components/TableWidget/CardRenderer.js +6 -3
- package/dist/module/components/TableWidget/CardRenderer.js.map +1 -1
- package/dist/module/components/TableWidget/Cards.js +1 -1
- package/dist/module/components/TableWidget/Cards.js.map +1 -1
- package/dist/module/components/TableWidget/ColumnRenderer.js +7 -4
- package/dist/module/components/TableWidget/ColumnRenderer.js.map +1 -1
- package/dist/module/components/TableWidget/TableWidget.js +1 -1
- package/dist/module/components/TableWidget/TableWidget.js.map +1 -1
- package/dist/module/components/Tabs/Tabs.js +1 -1
- package/dist/module/components/Tabs/Tabs.js.map +1 -1
- package/dist/module/components/TextInput/TextInput.js +3 -2
- package/dist/module/components/TextInput/TextInput.js.map +1 -1
- package/dist/module/components/Truncate/Truncate.js +1 -1
- package/dist/module/components/Truncate/Truncate.js.map +1 -1
- package/dist/module/components/WidgetWrapper/WidgetWrapper.js +2 -2
- package/dist/module/components/WidgetWrapper/WidgetWrapper.js.map +1 -1
- package/dist/module/hooks/useLiveRatesMessage.js +7 -7
- package/dist/module/hooks/useLiveRatesMessage.js.map +1 -1
- package/dist/module/hooks/useLiveRatesQuery.js +5 -3
- package/dist/module/hooks/useLiveRatesQuery.js.map +1 -1
- package/dist/module/hooks/useRecords.js +5 -5
- package/dist/module/hooks/useRecords.js.map +1 -1
- package/dist/module/hooks/useVisibleLiveDataRecord.js +10 -10
- package/dist/module/hooks/useVisibleLiveDataRecord.js.map +1 -1
- package/dist/module/providers/LiveRates/LiveRatesProvider.js +15 -11
- package/dist/module/providers/LiveRates/LiveRatesProvider.js.map +1 -1
- package/dist/module/providers/Widget/WidgetProvider.js +6 -4
- package/dist/module/providers/Widget/WidgetProvider.js.map +1 -1
- package/dist/module/tailwind/preset.js +7 -3
- package/dist/module/tailwind/preset.js.map +1 -1
- package/dist/module/tailwind/themes/themeColors.js +7 -5
- package/dist/module/tailwind/themes/themeColors.js.map +1 -1
- package/dist/module/tailwind/utils.js +7 -3
- package/dist/module/tailwind/utils.js.map +1 -1
- package/dist/module/testUtils/index.js +2 -2
- package/dist/module/testUtils/index.js.map +1 -1
- package/dist/module/utils/dateUtils.js +3 -3
- package/dist/module/utils/dateUtils.js.map +1 -1
- package/dist/module/utils/getLocale.js +1 -1
- package/dist/module/utils/getLocale.js.map +1 -1
- package/dist/module/utils/liveRates/buildUrl.js +11 -9
- package/dist/module/utils/liveRates/buildUrl.js.map +1 -1
- package/dist/module/utils/liveRates/calculatePriceChangeFromOpen.js +1 -1
- package/dist/module/utils/liveRates/calculatePriceChangeFromOpen.js.map +1 -1
- package/package.json +2 -2
|
@@ -15,11 +15,11 @@ const useRecords = (record, target) => {
|
|
|
15
15
|
setUpdatedRecord({
|
|
16
16
|
displayName: record.displayName,
|
|
17
17
|
instrument: record.instrument,
|
|
18
|
-
buy: update
|
|
19
|
-
buyPriceMovement: update
|
|
20
|
-
dailyPercentChange: update
|
|
21
|
-
dailyPipsChange: update
|
|
22
|
-
displayPrecision: update
|
|
18
|
+
buy: update === null || update === void 0 ? void 0 : update.ask,
|
|
19
|
+
buyPriceMovement: update === null || update === void 0 ? void 0 : update.askPriceMovement,
|
|
20
|
+
dailyPercentChange: update === null || update === void 0 ? void 0 : update.dailyPercentChangeFromOpen,
|
|
21
|
+
dailyPipsChange: update === null || update === void 0 ? void 0 : update.dailyPipsChangeFromOpen,
|
|
22
|
+
displayPrecision: update === null || update === void 0 ? void 0 : update.displayPrecision
|
|
23
23
|
});
|
|
24
24
|
setError(liveRatesError);
|
|
25
25
|
}, [update, record, liveRatesError]);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useRecords.js","names":["useEffect","useState","useLiveRatesMessage","useRecords","record","target","updatedRecord","setUpdatedRecord","displayName","instrument","sentiment","error","setError","update","liveRatesError","buy","ask","buyPriceMovement","askPriceMovement","dailyPercentChange","dailyPercentChangeFromOpen","dailyPipsChange","dailyPipsChangeFromOpen","displayPrecision"],"sources":["../../../src/hooks/useRecords.tsx"],"sourcesContent":["import { useEffect, useState } from 'react';\n\nimport type { DataRecord, LiveRatesErrorMessage } from '../types';\nimport { useLiveRatesMessage } from './useLiveRatesMessage';\n\nconst useRecords = (record: DataRecord, target: EventTarget | null) => {\n const [updatedRecord, setUpdatedRecord] = useState<DataRecord>({\n displayName: record.displayName,\n instrument: record.instrument,\n sentiment: record.sentiment,\n });\n const [error, setError] = useState<LiveRatesErrorMessage | null>(null);\n\n const { update, error: liveRatesError } = useLiveRatesMessage(\n record.instrument,\n target\n );\n\n useEffect(() => {\n setUpdatedRecord({\n displayName: record.displayName,\n instrument: record.instrument,\n buy: update?.ask,\n buyPriceMovement: update?.askPriceMovement,\n dailyPercentChange: update?.dailyPercentChangeFromOpen,\n dailyPipsChange: update?.dailyPipsChangeFromOpen,\n displayPrecision: update?.displayPrecision,\n });\n setError(liveRatesError);\n }, [update, record, liveRatesError]);\n\n return {\n updatedRecord,\n error,\n };\n};\n\nexport { useRecords };\n"],"mappings":"AAAA,SAASA,SAAS,EAAEC,QAAQ,QAAQ,OAAO;AAG3C,SAASC,mBAAmB,QAAQ,uBAAuB;AAE3D,MAAMC,UAAU,GAAGA,CAACC,MAAkB,EAAEC,MAA0B,KAAK;EACrE,MAAM,CAACC,aAAa,EAAEC,gBAAgB,CAAC,GAAGN,QAAQ,CAAa;IAC7DO,WAAW,EAAEJ,MAAM,CAACI,WAAW;IAC/BC,UAAU,EAAEL,MAAM,CAACK,UAAU;IAC7BC,SAAS,EAAEN,MAAM,CAACM;EACpB,CAAC,CAAC;EACF,MAAM,CAACC,KAAK,EAAEC,QAAQ,CAAC,GAAGX,QAAQ,CAA+B,IAAI,CAAC;EAEtE,MAAM;IAAEY,MAAM;IAAEF,KAAK,EAAEG;EAAe,CAAC,GAAGZ,mBAAmB,CAC3DE,MAAM,CAACK,UAAU,EACjBJ,MACF,CAAC;EAEDL,SAAS,CAAC,MAAM;IACdO,gBAAgB,CAAC;MACfC,WAAW,EAAEJ,MAAM,CAACI,WAAW;MAC/BC,UAAU,EAAEL,MAAM,CAACK,UAAU;MAC7BM,GAAG,EAAEF,MAAM,
|
|
1
|
+
{"version":3,"file":"useRecords.js","names":["useEffect","useState","useLiveRatesMessage","useRecords","record","target","updatedRecord","setUpdatedRecord","displayName","instrument","sentiment","error","setError","update","liveRatesError","buy","ask","buyPriceMovement","askPriceMovement","dailyPercentChange","dailyPercentChangeFromOpen","dailyPipsChange","dailyPipsChangeFromOpen","displayPrecision"],"sources":["../../../src/hooks/useRecords.tsx"],"sourcesContent":["import { useEffect, useState } from 'react';\n\nimport type { DataRecord, LiveRatesErrorMessage } from '../types';\nimport { useLiveRatesMessage } from './useLiveRatesMessage';\n\nconst useRecords = (record: DataRecord, target: EventTarget | null) => {\n const [updatedRecord, setUpdatedRecord] = useState<DataRecord>({\n displayName: record.displayName,\n instrument: record.instrument,\n sentiment: record.sentiment,\n });\n const [error, setError] = useState<LiveRatesErrorMessage | null>(null);\n\n const { update, error: liveRatesError } = useLiveRatesMessage(\n record.instrument,\n target\n );\n\n useEffect(() => {\n setUpdatedRecord({\n displayName: record.displayName,\n instrument: record.instrument,\n buy: update?.ask,\n buyPriceMovement: update?.askPriceMovement,\n dailyPercentChange: update?.dailyPercentChangeFromOpen,\n dailyPipsChange: update?.dailyPipsChangeFromOpen,\n displayPrecision: update?.displayPrecision,\n });\n setError(liveRatesError);\n }, [update, record, liveRatesError]);\n\n return {\n updatedRecord,\n error,\n };\n};\n\nexport { useRecords };\n"],"mappings":"AAAA,SAASA,SAAS,EAAEC,QAAQ,QAAQ,OAAO;AAG3C,SAASC,mBAAmB,QAAQ,uBAAuB;AAE3D,MAAMC,UAAU,GAAGA,CAACC,MAAkB,EAAEC,MAA0B,KAAK;EACrE,MAAM,CAACC,aAAa,EAAEC,gBAAgB,CAAC,GAAGN,QAAQ,CAAa;IAC7DO,WAAW,EAAEJ,MAAM,CAACI,WAAW;IAC/BC,UAAU,EAAEL,MAAM,CAACK,UAAU;IAC7BC,SAAS,EAAEN,MAAM,CAACM;EACpB,CAAC,CAAC;EACF,MAAM,CAACC,KAAK,EAAEC,QAAQ,CAAC,GAAGX,QAAQ,CAA+B,IAAI,CAAC;EAEtE,MAAM;IAAEY,MAAM;IAAEF,KAAK,EAAEG;EAAe,CAAC,GAAGZ,mBAAmB,CAC3DE,MAAM,CAACK,UAAU,EACjBJ,MACF,CAAC;EAEDL,SAAS,CAAC,MAAM;IACdO,gBAAgB,CAAC;MACfC,WAAW,EAAEJ,MAAM,CAACI,WAAW;MAC/BC,UAAU,EAAEL,MAAM,CAACK,UAAU;MAC7BM,GAAG,EAAEF,MAAM,aAANA,MAAM,uBAANA,MAAM,CAAEG,GAAG;MAChBC,gBAAgB,EAAEJ,MAAM,aAANA,MAAM,uBAANA,MAAM,CAAEK,gBAAgB;MAC1CC,kBAAkB,EAAEN,MAAM,aAANA,MAAM,uBAANA,MAAM,CAAEO,0BAA0B;MACtDC,eAAe,EAAER,MAAM,aAANA,MAAM,uBAANA,MAAM,CAAES,uBAAuB;MAChDC,gBAAgB,EAAEV,MAAM,aAANA,MAAM,uBAANA,MAAM,CAAEU;IAC5B,CAAC,CAAC;IACFX,QAAQ,CAACE,cAAc,CAAC;EAC1B,CAAC,EAAE,CAACD,MAAM,EAAET,MAAM,EAAEU,cAAc,CAAC,CAAC;EAEpC,OAAO;IACLR,aAAa;IACbK;EACF,CAAC;AACH,CAAC;AAED,SAASR,UAAU","ignoreList":[]}
|
|
@@ -10,7 +10,7 @@ export const useVisibleLiveDataRecord = (record, target) => {
|
|
|
10
10
|
});
|
|
11
11
|
const [error, setError] = useState(null);
|
|
12
12
|
const entry = useIntersectionObserver();
|
|
13
|
-
const isVisible = !!entry
|
|
13
|
+
const isVisible = !!(entry !== null && entry !== void 0 && entry.isIntersecting);
|
|
14
14
|
const {
|
|
15
15
|
update,
|
|
16
16
|
error: liveRatesError
|
|
@@ -22,15 +22,15 @@ export const useVisibleLiveDataRecord = (record, target) => {
|
|
|
22
22
|
instrument: record.instrument,
|
|
23
23
|
sentiment: record.sentiment,
|
|
24
24
|
tradeMode: record.tradeMode,
|
|
25
|
-
buy: update
|
|
26
|
-
sell: update
|
|
27
|
-
buyPriceMovement: update
|
|
28
|
-
sellPriceMovement: update
|
|
29
|
-
dailyPercentChange: update
|
|
30
|
-
spread: update
|
|
31
|
-
displayPrecision: update
|
|
32
|
-
high: update
|
|
33
|
-
low: update
|
|
25
|
+
buy: update === null || update === void 0 ? void 0 : update.ask,
|
|
26
|
+
sell: update === null || update === void 0 ? void 0 : update.bid,
|
|
27
|
+
buyPriceMovement: update === null || update === void 0 ? void 0 : update.askPriceMovement,
|
|
28
|
+
sellPriceMovement: update === null || update === void 0 ? void 0 : update.bidPriceMovement,
|
|
29
|
+
dailyPercentChange: update === null || update === void 0 ? void 0 : update.dailyPercentChangeFromOpen,
|
|
30
|
+
spread: update === null || update === void 0 ? void 0 : update.spread,
|
|
31
|
+
displayPrecision: update === null || update === void 0 ? void 0 : update.displayPrecision,
|
|
32
|
+
high: update === null || update === void 0 ? void 0 : update.high,
|
|
33
|
+
low: update === null || update === void 0 ? void 0 : update.low
|
|
34
34
|
});
|
|
35
35
|
setError(liveRatesError);
|
|
36
36
|
}
|
|
@@ -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,
|
|
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;MACf,CAAC,CAAC;MACFnB,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;IACLqB,GAAG,EAAEnB,KAAK,CAACmB;EACb,CAAC;AACH,CAAC","ignoreList":[]}
|
|
@@ -1,3 +1,8 @@
|
|
|
1
|
+
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
2
|
+
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
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
|
+
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
|
|
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); }
|
|
1
6
|
import React, { useEffect, useState } from 'react';
|
|
2
7
|
import { LIVE_RATES_CONNECTION_ERROR, LIVE_RATES_EVENT_NAME, LIVE_RATES_RATE_ERROR, SET_QUERY_EVENT_NAME } from '../../constants';
|
|
3
8
|
import { buildUrl, decodeLiveRateMessage } from '../../utils/liveRates';
|
|
@@ -28,21 +33,20 @@ export const LiveRatesProvider = _ref => {
|
|
|
28
33
|
error: 'Connection error'
|
|
29
34
|
} : decodeLiveRateMessage(e.data);
|
|
30
35
|
target.dispatchEvent(new CustomEvent(message.symbol, {
|
|
31
|
-
detail: {
|
|
32
|
-
messageType
|
|
33
|
-
|
|
34
|
-
}
|
|
36
|
+
detail: _objectSpread({
|
|
37
|
+
messageType
|
|
38
|
+
}, message)
|
|
35
39
|
}));
|
|
36
40
|
};
|
|
37
|
-
source
|
|
38
|
-
source
|
|
39
|
-
source
|
|
41
|
+
source === null || source === void 0 || source.addEventListener(eventName, listener(eventName));
|
|
42
|
+
source === null || source === void 0 || source.addEventListener(LIVE_RATES_RATE_ERROR, listener(LIVE_RATES_RATE_ERROR));
|
|
43
|
+
source === null || source === void 0 || source.addEventListener('error', listener(LIVE_RATES_CONNECTION_ERROR));
|
|
40
44
|
return () => {
|
|
41
45
|
target.removeEventListener(SET_QUERY_EVENT_NAME, setQueryListener);
|
|
42
|
-
source
|
|
43
|
-
source
|
|
44
|
-
source
|
|
45
|
-
source
|
|
46
|
+
source === null || source === void 0 || source.removeEventListener(eventName, listener(eventName));
|
|
47
|
+
source === null || source === void 0 || source.removeEventListener(LIVE_RATES_RATE_ERROR, listener(LIVE_RATES_RATE_ERROR));
|
|
48
|
+
source === null || source === void 0 || source.removeEventListener('error', listener(LIVE_RATES_CONNECTION_ERROR));
|
|
49
|
+
source === null || source === void 0 || source.close();
|
|
46
50
|
};
|
|
47
51
|
}, [source, target]);
|
|
48
52
|
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","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 = ({ 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":"AACA,OAAOA,KAAK,IAAIC,SAAS,EAAEC,QAAQ,QAAQ,OAAO;AAElD,SACEC,2BAA2B,EAC3BC,qBAAqB,EACrBC,qBAAqB,EACrBC,oBAAoB,QACf,iBAAiB;AAOxB,SAASC,QAAQ,EAAEC,qBAAqB,QAAQ,uBAAuB;AACvE,SAASC,gBAAgB,QAAQ,oBAAoB;AAIrD,OAAO,MAAMC,iBAAmD,GAAGC,IAAA,IAQ/C;EAAA,IARgD;IAClEC,GAAG;IACHC,KAAK;IACLC,OAAO;IACPC,QAAQ;IACRC,WAAW;IACXC,WAAW;IACXC,SAAS,GAAGd;EACd,CAAC,GAAAO,IAAA;EACC,MAAM,CAACQ,MAAM,EAAEC,SAAS,CAAC,GAAGlB,QAAQ,CAClCc,WAAW,IAAKH,KAAK,IAAI,IAAIQ,WAAW,CAACd,QAAQ,CAACK,GAAG,EAAEC,KAAK,EAAEC,OAAO,CAAC,CACxE,CAAC;EACD,MAAMQ,MAAM,GAAGL,WAAW,IAAI,IAAIM,WAAW,CAAC,CAAC;EAE/C,MAAMC,gBAA+B,GAAGC,KAAA,IAAiC;IAAA,IAAhC;MAAEC;IAAwB,CAAC,GAAAD,KAAA;IAElEL,SAAS,CAAC,IAAIC,WAAW,CAACd,QAAQ,CAACK,GAAG,EAAEc,MAAM,EAAEZ,OAAO,CAAC,CAAC,CAAC;EAC5D,CAAC;EAEDQ,MAAM,CAACK,gBAAgB,CAACrB,oBAAoB,EAAEkB,gBAAgB,CAAC;EAE/DvB,SAAS,CACP,MAAM;IACJ,MAAM2B,QAAQ,GACXC,WAAmB,IAAMC,CAA2B,IAAK;MACxD,MAAMC,OAAO,GACXF,WAAW,KAAK1B,2BAA2B,GACtC;QACC6B,MAAM,EAAE7B,2BAA2B;QACnC8B,KAAK,EAAE;MACT,CAAC,GACDzB,qBAAqB,CAACsB,CAAC,CAACI,IAAc,CAAC;MAE7CZ,MAAM,CAACa,aAAa,CAClB,IAAIC,WAAW,CAIbL,OAAO,CAACC,MAAM,EAAE;QAChBN,MAAM,
|
|
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 = ({ 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":";;;;;AACA,OAAOA,KAAK,IAAIC,SAAS,EAAEC,QAAQ,QAAQ,OAAO;AAElD,SACEC,2BAA2B,EAC3BC,qBAAqB,EACrBC,qBAAqB,EACrBC,oBAAoB,QACf,iBAAiB;AAOxB,SAASC,QAAQ,EAAEC,qBAAqB,QAAQ,uBAAuB;AACvE,SAASC,gBAAgB,QAAQ,oBAAoB;AAIrD,OAAO,MAAMC,iBAAmD,GAAGC,IAAA,IAQ/C;EAAA,IARgD;IAClEC,GAAG;IACHC,KAAK;IACLC,OAAO;IACPC,QAAQ;IACRC,WAAW;IACXC,WAAW;IACXC,SAAS,GAAGd;EACd,CAAC,GAAAO,IAAA;EACC,MAAM,CAACQ,MAAM,EAAEC,SAAS,CAAC,GAAGlB,QAAQ,CAClCc,WAAW,IAAKH,KAAK,IAAI,IAAIQ,WAAW,CAACd,QAAQ,CAACK,GAAG,EAAEC,KAAK,EAAEC,OAAO,CAAC,CACxE,CAAC;EACD,MAAMQ,MAAM,GAAGL,WAAW,IAAI,IAAIM,WAAW,CAAC,CAAC;EAE/C,MAAMC,gBAA+B,GAAGC,KAAA,IAAiC;IAAA,IAAhC;MAAEC;IAAwB,CAAC,GAAAD,KAAA;IAElEL,SAAS,CAAC,IAAIC,WAAW,CAACd,QAAQ,CAACK,GAAG,EAAEc,MAAM,EAAEZ,OAAO,CAAC,CAAC,CAAC;EAC5D,CAAC;EAEDQ,MAAM,CAACK,gBAAgB,CAACrB,oBAAoB,EAAEkB,gBAAgB,CAAC;EAE/DvB,SAAS,CACP,MAAM;IACJ,MAAM2B,QAAQ,GACXC,WAAmB,IAAMC,CAA2B,IAAK;MACxD,MAAMC,OAAO,GACXF,WAAW,KAAK1B,2BAA2B,GACtC;QACC6B,MAAM,EAAE7B,2BAA2B;QACnC8B,KAAK,EAAE;MACT,CAAC,GACDzB,qBAAqB,CAACsB,CAAC,CAACI,IAAc,CAAC;MAE7CZ,MAAM,CAACa,aAAa,CAClB,IAAIC,WAAW,CAIbL,OAAO,CAACC,MAAM,EAAE;QAChBN,MAAM,EAAAW,aAAA;UAAIR;QAAW,GAAKE,OAAO;MACnC,CAAC,CACH,CAAC;IACH,CAAC;IAEHZ,MAAM,aAANA,MAAM,eAANA,MAAM,CAAEQ,gBAAgB,CAACT,SAAS,EAAEU,QAAQ,CAACV,SAAS,CAAC,CAAC;IACxDC,MAAM,aAANA,MAAM,eAANA,MAAM,CAAEQ,gBAAgB,CACtBtB,qBAAqB,EACrBuB,QAAQ,CAACvB,qBAAqB,CAChC,CAAC;IACDc,MAAM,aAANA,MAAM,eAANA,MAAM,CAAEQ,gBAAgB,CAAC,OAAO,EAAEC,QAAQ,CAACzB,2BAA2B,CAAC,CAAC;IAExE,OAAO,MAAM;MACXmB,MAAM,CAACgB,mBAAmB,CAAChC,oBAAoB,EAAEkB,gBAAgB,CAAC;MAClEL,MAAM,aAANA,MAAM,eAANA,MAAM,CAAEmB,mBAAmB,CAACpB,SAAS,EAAEU,QAAQ,CAACV,SAAS,CAAC,CAAC;MAC3DC,MAAM,aAANA,MAAM,eAANA,MAAM,CAAEmB,mBAAmB,CACzBjC,qBAAqB,EACrBuB,QAAQ,CAACvB,qBAAqB,CAChC,CAAC;MACDc,MAAM,aAANA,MAAM,eAANA,MAAM,CAAEmB,mBAAmB,CACzB,OAAO,EACPV,QAAQ,CAACzB,2BAA2B,CACtC,CAAC;MACDgB,MAAM,aAANA,MAAM,eAANA,MAAM,CAAEoB,KAAK,CAAC,CAAC;IACjB,CAAC;EACH,CAAC,EAED,CAACpB,MAAM,EAAEG,MAAM,CACjB,CAAC;EAED,OACEtB,KAAA,CAAAwC,aAAA,CAAC/B,gBAAgB,CAACgC,QAAQ;IACxBC,KAAK,EAAE;MACLpB,MAAM;MACNH;IACF;EAAE,GAEDJ,QACwB,CAAC;AAEhC,CAAC","ignoreList":[]}
|
|
@@ -1,3 +1,8 @@
|
|
|
1
|
+
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
2
|
+
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
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
|
+
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
|
|
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); }
|
|
1
6
|
import { ApolloProvider } from '@apollo/client';
|
|
2
7
|
import { LocaleProvider } from '@oanda/mono-i18n';
|
|
3
8
|
import React, { Suspense } from 'react';
|
|
@@ -31,10 +36,7 @@ export const WidgetProvider = _ref => {
|
|
|
31
36
|
fitContent,
|
|
32
37
|
removePadding,
|
|
33
38
|
size
|
|
34
|
-
} = {
|
|
35
|
-
...defaultStyling,
|
|
36
|
-
...styling
|
|
37
|
-
};
|
|
39
|
+
} = _objectSpread(_objectSpread({}, defaultStyling), styling);
|
|
38
40
|
return React.createElement(LocaleProvider, {
|
|
39
41
|
locale: getLocale(locale),
|
|
40
42
|
translations: translations
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WidgetProvider.js","names":["ApolloProvider","LocaleProvider","React","Suspense","Theme","getLocale","ConditionalProvider","LayoutProvider","LiveRatesProvider","defaultStyling","fitContent","removePadding","size","undefined","WidgetProvider","_ref","children","locale","translations","client","theme","Light","withSuspense","styling","liveRates","url","options","createElement","Provider","render","shouldFitContent","shouldRemovePadding"],"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 options={options} url={url} />}\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":"AACA,SAASA,cAAc,QAAQ,gBAAgB;AAE/C,SAASC,cAAc,QAAQ,kBAAkB;AAEjD,OAAOC,KAAK,IAAIC,QAAQ,QAAQ,OAAO;AAGvC,SAASC,KAAK,QAAQ,aAAa;AACnC,SAASC,SAAS,QAAQ,aAAa;AACvC,SAASC,mBAAmB,QAAQ,wBAAwB;AAC5D,SAASC,cAAc,QAAQ,WAAW;AAC1C,SAASC,iBAAiB,QAAQ,cAAc;AAgBhD,MAAMC,cAA4C,GAAG;EACnDC,UAAU,EAAE,KAAK;EACjBC,aAAa,EAAE,KAAK;EACpBC,IAAI,EAAEC;AACR,CAAC;AAED,OAAO,MAAMC,cAA6C,GAAGC,IAAA,IASvD;EAAA,IATwD;IAC5DC,QAAQ;IACRC,MAAM;IACNC,YAAY;IACZC,MAAM;IACNC,KAAK,GAAGhB,KAAK,CAACiB,KAAK;IACnBC,YAAY,GAAG,KAAK;IACpBC,OAAO;IACPC,SAAS,EAAE;MAAEC,GAAG;MAAEC;IAAQ,CAAC,GAAG;MAAED,GAAG,EAAE;IAAG;EAC1C,CAAC,GAAAV,IAAA;EACC,MAAM;IAAEL,UAAU;IAAEC,aAAa;IAAEC;EAAK,CAAC,
|
|
1
|
+
{"version":3,"file":"WidgetProvider.js","names":["ApolloProvider","LocaleProvider","React","Suspense","Theme","getLocale","ConditionalProvider","LayoutProvider","LiveRatesProvider","defaultStyling","fitContent","removePadding","size","undefined","WidgetProvider","_ref","children","locale","translations","client","theme","Light","withSuspense","styling","liveRates","url","options","_objectSpread","createElement","Provider","render","shouldFitContent","shouldRemovePadding"],"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 options={options} url={url} />}\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":";;;;;AACA,SAASA,cAAc,QAAQ,gBAAgB;AAE/C,SAASC,cAAc,QAAQ,kBAAkB;AAEjD,OAAOC,KAAK,IAAIC,QAAQ,QAAQ,OAAO;AAGvC,SAASC,KAAK,QAAQ,aAAa;AACnC,SAASC,SAAS,QAAQ,aAAa;AACvC,SAASC,mBAAmB,QAAQ,wBAAwB;AAC5D,SAASC,cAAc,QAAQ,WAAW;AAC1C,SAASC,iBAAiB,QAAQ,cAAc;AAgBhD,MAAMC,cAA4C,GAAG;EACnDC,UAAU,EAAE,KAAK;EACjBC,aAAa,EAAE,KAAK;EACpBC,IAAI,EAAEC;AACR,CAAC;AAED,OAAO,MAAMC,cAA6C,GAAGC,IAAA,IASvD;EAAA,IATwD;IAC5DC,QAAQ;IACRC,MAAM;IACNC,YAAY;IACZC,MAAM;IACNC,KAAK,GAAGhB,KAAK,CAACiB,KAAK;IACnBC,YAAY,GAAG,KAAK;IACpBC,OAAO;IACPC,SAAS,EAAE;MAAEC,GAAG;MAAEC;IAAQ,CAAC,GAAG;MAAED,GAAG,EAAE;IAAG;EAC1C,CAAC,GAAAV,IAAA;EACC,MAAM;IAAEL,UAAU;IAAEC,aAAa;IAAEC;EAAK,CAAC,GAAAe,aAAA,CAAAA,aAAA,KACpClB,cAAc,GACdc,OAAO,CACX;EAED,OACErB,KAAA,CAAA0B,aAAA,CAAC3B,cAAc;IAACgB,MAAM,EAAEZ,SAAS,CAACY,MAAM,CAAE;IAACC,YAAY,EAAEA;EAAa,GACpEhB,KAAA,CAAA0B,aAAA,CAACtB,mBAAmB;IAClBuB,QAAQ,EAAE3B,KAAA,CAAA0B,aAAA,CAACpB,iBAAiB;MAACkB,OAAO,EAAEA,OAAQ;MAACD,GAAG,EAAEA;IAAI,CAAE,CAAE;IAC5DK,MAAM,EAAE,CAAC,CAACL;EAAI,GAEdvB,KAAA,CAAA0B,aAAA,CAAC5B,cAAc;IAACmB,MAAM,EAAEA;EAAO,GAC7BjB,KAAA,CAAA0B,aAAA,CAACtB,mBAAmB;IAACuB,QAAQ,EAAE3B,KAAA,CAAA0B,aAAA,CAACzB,QAAQ,MAAE,CAAE;IAAC2B,MAAM,EAAER;EAAa,GAChEpB,KAAA,CAAA0B,aAAA,CAACrB,cAAc;IACbwB,gBAAgB,EAAErB,UAAW;IAC7BsB,mBAAmB,EAAErB,aAAc;IACnCC,IAAI,EAAEA,IAAK;IACXQ,KAAK,EAAEA;EAAM,GAEZJ,QACa,CACG,CACP,CACG,CACP,CAAC;AAErB,CAAC","ignoreList":[]}
|
|
@@ -1,3 +1,8 @@
|
|
|
1
|
+
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
2
|
+
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
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
|
+
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
|
|
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); }
|
|
1
6
|
import { twColorPallete } from './colors';
|
|
2
7
|
import { themes } from './themes';
|
|
3
8
|
export const sharedPreset = {
|
|
@@ -5,8 +10,7 @@ export const sharedPreset = {
|
|
|
5
10
|
plugins: [themes],
|
|
6
11
|
theme: {
|
|
7
12
|
extend: {
|
|
8
|
-
colors: {
|
|
9
|
-
...twColorPallete,
|
|
13
|
+
colors: _objectSpread(_objectSpread({}, twColorPallete), {}, {
|
|
10
14
|
heatmap: {
|
|
11
15
|
empty: '#D7D8D9',
|
|
12
16
|
'strong-negative': '#DA6325',
|
|
@@ -17,7 +21,7 @@ export const sharedPreset = {
|
|
|
17
21
|
positive: '#70D2AF',
|
|
18
22
|
'strong-positive': '#008573'
|
|
19
23
|
}
|
|
20
|
-
},
|
|
24
|
+
}),
|
|
21
25
|
backgroundImage: {
|
|
22
26
|
loader: 'linear-gradient(90deg, hsl(var(--twc-border-primary))0%, hsl(var(--twc-border-secondary)) 50%, hsl(var(--twc-border-primary)) 100%);',
|
|
23
27
|
whiteWithShadow: 'linear-gradient(270deg, transparent 0, rgba(215,217,221,0.5) 10px, #ffffff 10px)',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"preset.js","names":["twColorPallete","themes","sharedPreset","prefix","plugins","theme","extend","colors","heatmap","empty","negative","neutral","positive","backgroundImage","loader","whiteWithShadow","lightGreyWithShadow","whiteOpacity","blackOpacity","keyframes","spinner","transform","transitionProperty","width","boxShadow","innerBorder","innerBorderBgColor","basic","fontFamily","sans"],"sources":["../../../src/tailwind/preset.ts"],"sourcesContent":["import type { Config } from 'tailwindcss';\n\nimport { twColorPallete } from './colors';\nimport { themes } from './themes';\n\nexport const sharedPreset: Omit<Config, 'content'> = {\n prefix: 'lw-',\n plugins: [themes],\n theme: {\n extend: {\n colors: {\n ...twColorPallete,\n heatmap: {\n empty: '#D7D8D9',\n 'strong-negative': '#DA6325',\n negative: '#EBA463',\n 'weak-negative': '#F6E8C3',\n neutral: '#F5F5F5',\n 'weak-positive': '#C7EAE5',\n positive: '#70D2AF',\n 'strong-positive': '#008573',\n },\n },\n backgroundImage: {\n loader:\n 'linear-gradient(90deg, hsl(var(--twc-border-primary))0%, hsl(var(--twc-border-secondary)) 50%, hsl(var(--twc-border-primary)) 100%);',\n whiteWithShadow:\n 'linear-gradient(270deg, transparent 0, rgba(215,217,221,0.5) 10px, #ffffff 10px)',\n lightGreyWithShadow:\n 'linear-gradient(270deg, transparent 0, rgba(215,217,221,0.5) 10px, #f4f8fa 10px)',\n whiteOpacity:\n 'linear-gradient(to left, rgba(255,255,255,0.5), white 0.625rem)',\n blackOpacity:\n 'linear-gradient(to left, rgba(0,0,0,0.5), black 0.625rem)',\n },\n keyframes: {\n spinner: {\n '0%': { transform: 'rotate(0deg)' },\n '85%': { transform: 'rotate(360deg)' },\n '100%': { transform: 'rotate(360deg)' },\n },\n loader: {\n '0%': { transform: 'translateX(-100%)' },\n '100%': { transform: 'translateX(100%)' },\n },\n },\n transitionProperty: {\n width: 'width, transform',\n },\n boxShadow: {\n innerBorder: 'inset 0 0 0 1px',\n innerBorderBgColor: 'inset 0 0 0 2px hsl(var(--twc-bg-primary))',\n basic: '0 2px 8px 0 rgba(0, 33, 74, 0.25)',\n },\n },\n fontFamily: {\n sans: ['Sofia W03', 'Helvetica Neue', 'Arial', 'sans-serif'],\n },\n },\n};\n"],"mappings":"AAEA,SAASA,cAAc,QAAQ,UAAU;AACzC,SAASC,MAAM,QAAQ,UAAU;AAEjC,OAAO,MAAMC,YAAqC,GAAG;EACnDC,MAAM,EAAE,KAAK;EACbC,OAAO,EAAE,CAACH,MAAM,CAAC;EACjBI,KAAK,EAAE;IACLC,MAAM,EAAE;MACNC,MAAM,
|
|
1
|
+
{"version":3,"file":"preset.js","names":["twColorPallete","themes","sharedPreset","prefix","plugins","theme","extend","colors","_objectSpread","heatmap","empty","negative","neutral","positive","backgroundImage","loader","whiteWithShadow","lightGreyWithShadow","whiteOpacity","blackOpacity","keyframes","spinner","transform","transitionProperty","width","boxShadow","innerBorder","innerBorderBgColor","basic","fontFamily","sans"],"sources":["../../../src/tailwind/preset.ts"],"sourcesContent":["import type { Config } from 'tailwindcss';\n\nimport { twColorPallete } from './colors';\nimport { themes } from './themes';\n\nexport const sharedPreset: Omit<Config, 'content'> = {\n prefix: 'lw-',\n plugins: [themes],\n theme: {\n extend: {\n colors: {\n ...twColorPallete,\n heatmap: {\n empty: '#D7D8D9',\n 'strong-negative': '#DA6325',\n negative: '#EBA463',\n 'weak-negative': '#F6E8C3',\n neutral: '#F5F5F5',\n 'weak-positive': '#C7EAE5',\n positive: '#70D2AF',\n 'strong-positive': '#008573',\n },\n },\n backgroundImage: {\n loader:\n 'linear-gradient(90deg, hsl(var(--twc-border-primary))0%, hsl(var(--twc-border-secondary)) 50%, hsl(var(--twc-border-primary)) 100%);',\n whiteWithShadow:\n 'linear-gradient(270deg, transparent 0, rgba(215,217,221,0.5) 10px, #ffffff 10px)',\n lightGreyWithShadow:\n 'linear-gradient(270deg, transparent 0, rgba(215,217,221,0.5) 10px, #f4f8fa 10px)',\n whiteOpacity:\n 'linear-gradient(to left, rgba(255,255,255,0.5), white 0.625rem)',\n blackOpacity:\n 'linear-gradient(to left, rgba(0,0,0,0.5), black 0.625rem)',\n },\n keyframes: {\n spinner: {\n '0%': { transform: 'rotate(0deg)' },\n '85%': { transform: 'rotate(360deg)' },\n '100%': { transform: 'rotate(360deg)' },\n },\n loader: {\n '0%': { transform: 'translateX(-100%)' },\n '100%': { transform: 'translateX(100%)' },\n },\n },\n transitionProperty: {\n width: 'width, transform',\n },\n boxShadow: {\n innerBorder: 'inset 0 0 0 1px',\n innerBorderBgColor: 'inset 0 0 0 2px hsl(var(--twc-bg-primary))',\n basic: '0 2px 8px 0 rgba(0, 33, 74, 0.25)',\n },\n },\n fontFamily: {\n sans: ['Sofia W03', 'Helvetica Neue', 'Arial', 'sans-serif'],\n },\n },\n};\n"],"mappings":";;;;;AAEA,SAASA,cAAc,QAAQ,UAAU;AACzC,SAASC,MAAM,QAAQ,UAAU;AAEjC,OAAO,MAAMC,YAAqC,GAAG;EACnDC,MAAM,EAAE,KAAK;EACbC,OAAO,EAAE,CAACH,MAAM,CAAC;EACjBI,KAAK,EAAE;IACLC,MAAM,EAAE;MACNC,MAAM,EAAAC,aAAA,CAAAA,aAAA,KACDR,cAAc;QACjBS,OAAO,EAAE;UACPC,KAAK,EAAE,SAAS;UAChB,iBAAiB,EAAE,SAAS;UAC5BC,QAAQ,EAAE,SAAS;UACnB,eAAe,EAAE,SAAS;UAC1BC,OAAO,EAAE,SAAS;UAClB,eAAe,EAAE,SAAS;UAC1BC,QAAQ,EAAE,SAAS;UACnB,iBAAiB,EAAE;QACrB;MAAC,EACF;MACDC,eAAe,EAAE;QACfC,MAAM,EACJ,sIAAsI;QACxIC,eAAe,EACb,kFAAkF;QACpFC,mBAAmB,EACjB,kFAAkF;QACpFC,YAAY,EACV,iEAAiE;QACnEC,YAAY,EACV;MACJ,CAAC;MACDC,SAAS,EAAE;QACTC,OAAO,EAAE;UACP,IAAI,EAAE;YAAEC,SAAS,EAAE;UAAe,CAAC;UACnC,KAAK,EAAE;YAAEA,SAAS,EAAE;UAAiB,CAAC;UACtC,MAAM,EAAE;YAAEA,SAAS,EAAE;UAAiB;QACxC,CAAC;QACDP,MAAM,EAAE;UACN,IAAI,EAAE;YAAEO,SAAS,EAAE;UAAoB,CAAC;UACxC,MAAM,EAAE;YAAEA,SAAS,EAAE;UAAmB;QAC1C;MACF,CAAC;MACDC,kBAAkB,EAAE;QAClBC,KAAK,EAAE;MACT,CAAC;MACDC,SAAS,EAAE;QACTC,WAAW,EAAE,iBAAiB;QAC9BC,kBAAkB,EAAE,4CAA4C;QAChEC,KAAK,EAAE;MACT;IACF,CAAC;IACDC,UAAU,EAAE;MACVC,IAAI,EAAE,CAAC,WAAW,EAAE,gBAAgB,EAAE,OAAO,EAAE,YAAY;IAC7D;EACF;AACF,CAAC","ignoreList":[]}
|
|
@@ -1,12 +1,14 @@
|
|
|
1
|
+
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
2
|
+
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
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
|
+
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
|
|
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); }
|
|
1
6
|
import { colorPalette } from '../colors';
|
|
2
7
|
import { toTwConfigKeys } from '../utils';
|
|
3
8
|
import { backgroundColors } from './background';
|
|
4
9
|
import { borderColors } from './border';
|
|
5
10
|
import { textColors } from './text';
|
|
6
|
-
export const themeColors = {
|
|
7
|
-
...textColors,
|
|
8
|
-
...backgroundColors,
|
|
9
|
-
...borderColors,
|
|
11
|
+
export const themeColors = _objectSpread(_objectSpread(_objectSpread(_objectSpread({}, textColors), backgroundColors), borderColors), {}, {
|
|
10
12
|
primary: {
|
|
11
13
|
dark: colorPalette.orange,
|
|
12
14
|
light: colorPalette.bottleGreenDark
|
|
@@ -27,6 +29,6 @@ export const themeColors = {
|
|
|
27
29
|
dark: colorPalette.orange,
|
|
28
30
|
light: colorPalette.turquoiseLight
|
|
29
31
|
}
|
|
30
|
-
};
|
|
32
|
+
});
|
|
31
33
|
export const twTheme = toTwConfigKeys(themeColors);
|
|
32
34
|
//# sourceMappingURL=themeColors.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"themeColors.js","names":["colorPalette","toTwConfigKeys","backgroundColors","borderColors","textColors","themeColors","primary","dark","orange","light","bottleGreenDark","secondary","navyBlue","ok","greenLight","danger","raspberryLight","chart","turquoiseLight","twTheme"],"sources":["../../../../src/tailwind/themes/themeColors.ts"],"sourcesContent":["import { colorPalette } from '../colors';\nimport type { ThemeColor } from '../types';\nimport { toTwConfigKeys } from '../utils';\nimport { type BackgroundColorKeys, backgroundColors } from './background';\nimport { borderColors, type BorderColorsKeys } from './border';\nimport { textColors, type TextColorsKeys } from './text';\n\ntype ThemeKeys =\n | 'primary'\n | 'secondary'\n | 'ok'\n | 'danger'\n | 'chart'\n | BackgroundColorKeys\n | BorderColorsKeys\n | TextColorsKeys;\n\nexport const themeColors: Record<ThemeKeys, ThemeColor> = {\n ...textColors,\n ...backgroundColors,\n ...borderColors,\n primary: {\n dark: colorPalette.orange,\n light: colorPalette.bottleGreenDark,\n },\n secondary: {\n dark: colorPalette.orange,\n light: colorPalette.navyBlue,\n },\n ok: {\n dark: colorPalette.bottleGreenDark,\n light: colorPalette.greenLight,\n },\n danger: {\n dark: colorPalette.orange,\n light: colorPalette.raspberryLight,\n },\n chart: {\n dark: colorPalette.orange,\n light: colorPalette.turquoiseLight,\n },\n};\n\nexport const twTheme = toTwConfigKeys(themeColors);\n"],"mappings":"AAAA,SAASA,YAAY,QAAQ,WAAW;AAExC,SAASC,cAAc,QAAQ,UAAU;AACzC,SAAmCC,gBAAgB,QAAQ,cAAc;AACzE,SAASC,YAAY,QAA+B,UAAU;AAC9D,SAASC,UAAU,QAA6B,QAAQ;AAYxD,OAAO,MAAMC,WAA0C,
|
|
1
|
+
{"version":3,"file":"themeColors.js","names":["colorPalette","toTwConfigKeys","backgroundColors","borderColors","textColors","themeColors","_objectSpread","primary","dark","orange","light","bottleGreenDark","secondary","navyBlue","ok","greenLight","danger","raspberryLight","chart","turquoiseLight","twTheme"],"sources":["../../../../src/tailwind/themes/themeColors.ts"],"sourcesContent":["import { colorPalette } from '../colors';\nimport type { ThemeColor } from '../types';\nimport { toTwConfigKeys } from '../utils';\nimport { type BackgroundColorKeys, backgroundColors } from './background';\nimport { borderColors, type BorderColorsKeys } from './border';\nimport { textColors, type TextColorsKeys } from './text';\n\ntype ThemeKeys =\n | 'primary'\n | 'secondary'\n | 'ok'\n | 'danger'\n | 'chart'\n | BackgroundColorKeys\n | BorderColorsKeys\n | TextColorsKeys;\n\nexport const themeColors: Record<ThemeKeys, ThemeColor> = {\n ...textColors,\n ...backgroundColors,\n ...borderColors,\n primary: {\n dark: colorPalette.orange,\n light: colorPalette.bottleGreenDark,\n },\n secondary: {\n dark: colorPalette.orange,\n light: colorPalette.navyBlue,\n },\n ok: {\n dark: colorPalette.bottleGreenDark,\n light: colorPalette.greenLight,\n },\n danger: {\n dark: colorPalette.orange,\n light: colorPalette.raspberryLight,\n },\n chart: {\n dark: colorPalette.orange,\n light: colorPalette.turquoiseLight,\n },\n};\n\nexport const twTheme = toTwConfigKeys(themeColors);\n"],"mappings":";;;;;AAAA,SAASA,YAAY,QAAQ,WAAW;AAExC,SAASC,cAAc,QAAQ,UAAU;AACzC,SAAmCC,gBAAgB,QAAQ,cAAc;AACzE,SAASC,YAAY,QAA+B,UAAU;AAC9D,SAASC,UAAU,QAA6B,QAAQ;AAYxD,OAAO,MAAMC,WAA0C,GAAAC,aAAA,CAAAA,aAAA,CAAAA,aAAA,CAAAA,aAAA,KAClDF,UAAU,GACVF,gBAAgB,GAChBC,YAAY;EACfI,OAAO,EAAE;IACPC,IAAI,EAAER,YAAY,CAACS,MAAM;IACzBC,KAAK,EAAEV,YAAY,CAACW;EACtB,CAAC;EACDC,SAAS,EAAE;IACTJ,IAAI,EAAER,YAAY,CAACS,MAAM;IACzBC,KAAK,EAAEV,YAAY,CAACa;EACtB,CAAC;EACDC,EAAE,EAAE;IACFN,IAAI,EAAER,YAAY,CAACW,eAAe;IAClCD,KAAK,EAAEV,YAAY,CAACe;EACtB,CAAC;EACDC,MAAM,EAAE;IACNR,IAAI,EAAER,YAAY,CAACS,MAAM;IACzBC,KAAK,EAAEV,YAAY,CAACiB;EACtB,CAAC;EACDC,KAAK,EAAE;IACLV,IAAI,EAAER,YAAY,CAACS,MAAM;IACzBC,KAAK,EAAEV,YAAY,CAACmB;EACtB;AAAC,EACF;AAED,OAAO,MAAMC,OAAO,GAAGnB,cAAc,CAACI,WAAW,CAAC","ignoreList":[]}
|
|
@@ -1,8 +1,12 @@
|
|
|
1
|
+
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
2
|
+
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
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
|
+
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
|
|
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); }
|
|
1
6
|
export const toTwConfigKeys = obj => Object.keys(obj).reduce((result, key) => {
|
|
2
7
|
const kebabKey = key.replace(/([a-z])([A-Z])/g, '$1-$2').replace(/([0-9]+)/g, '-$1').toLowerCase();
|
|
3
|
-
return {
|
|
4
|
-
...result,
|
|
8
|
+
return _objectSpread(_objectSpread({}, result), {}, {
|
|
5
9
|
[kebabKey]: obj[key]
|
|
6
|
-
};
|
|
10
|
+
});
|
|
7
11
|
}, {});
|
|
8
12
|
//# sourceMappingURL=utils.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","names":["toTwConfigKeys","obj","Object","keys","reduce","result","key","kebabKey","replace","toLowerCase"],"sources":["../../../src/tailwind/utils.ts"],"sourcesContent":["import type { ThemeColor } from './types';\n\ntype KebabCase<S extends string> = S extends `${infer Head}${infer Tail}`\n ? Tail extends Capitalize<Tail>\n ? `${Lowercase<Head>}-${KebabCase<Tail>}`\n : `${Head}${KebabCase<Tail>}`\n : S;\n\ntype KebabCaseKeys<T extends Record<string, string | ThemeColor>> = {\n [K in keyof T as KebabCase<K & string>]: T[K];\n};\n\nexport const toTwConfigKeys = <T extends Record<string, string | ThemeColor>>(\n obj: T\n): KebabCaseKeys<T> =>\n Object.keys(obj).reduce((result, key) => {\n const kebabKey = key\n .replace(/([a-z])([A-Z])/g, '$1-$2')\n .replace(/([0-9]+)/g, '-$1')\n .toLowerCase();\n return {\n ...result,\n [kebabKey]: obj[key],\n };\n }, {} as KebabCaseKeys<T>);\n"],"mappings":"AAYA,OAAO,MAAMA,cAAc,GACzBC,GAAM,IAENC,MAAM,CAACC,IAAI,CAACF,GAAG,CAAC,CAACG,MAAM,CAAC,CAACC,MAAM,EAAEC,GAAG,KAAK;EACvC,MAAMC,QAAQ,GAAGD,GAAG,CACjBE,OAAO,CAAC,iBAAiB,EAAE,OAAO,CAAC,CACnCA,OAAO,CAAC,WAAW,EAAE,KAAK,CAAC,CAC3BC,WAAW,CAAC,CAAC;EAChB,
|
|
1
|
+
{"version":3,"file":"utils.js","names":["toTwConfigKeys","obj","Object","keys","reduce","result","key","kebabKey","replace","toLowerCase","_objectSpread"],"sources":["../../../src/tailwind/utils.ts"],"sourcesContent":["import type { ThemeColor } from './types';\n\ntype KebabCase<S extends string> = S extends `${infer Head}${infer Tail}`\n ? Tail extends Capitalize<Tail>\n ? `${Lowercase<Head>}-${KebabCase<Tail>}`\n : `${Head}${KebabCase<Tail>}`\n : S;\n\ntype KebabCaseKeys<T extends Record<string, string | ThemeColor>> = {\n [K in keyof T as KebabCase<K & string>]: T[K];\n};\n\nexport const toTwConfigKeys = <T extends Record<string, string | ThemeColor>>(\n obj: T\n): KebabCaseKeys<T> =>\n Object.keys(obj).reduce((result, key) => {\n const kebabKey = key\n .replace(/([a-z])([A-Z])/g, '$1-$2')\n .replace(/([0-9]+)/g, '-$1')\n .toLowerCase();\n return {\n ...result,\n [kebabKey]: obj[key],\n };\n }, {} as KebabCaseKeys<T>);\n"],"mappings":";;;;;AAYA,OAAO,MAAMA,cAAc,GACzBC,GAAM,IAENC,MAAM,CAACC,IAAI,CAACF,GAAG,CAAC,CAACG,MAAM,CAAC,CAACC,MAAM,EAAEC,GAAG,KAAK;EACvC,MAAMC,QAAQ,GAAGD,GAAG,CACjBE,OAAO,CAAC,iBAAiB,EAAE,OAAO,CAAC,CACnCA,OAAO,CAAC,WAAW,EAAE,KAAK,CAAC,CAC3BC,WAAW,CAAC,CAAC;EAChB,OAAAC,aAAA,CAAAA,aAAA,KACKL,MAAM;IACT,CAACE,QAAQ,GAAGN,GAAG,CAACK,GAAG;EAAC;AAExB,CAAC,EAAE,CAAC,CAAqB,CAAC","ignoreList":[]}
|
|
@@ -9,8 +9,8 @@ export const MockLayoutProvider = _ref => {
|
|
|
9
9
|
} = _ref;
|
|
10
10
|
return React.createElement(LayoutContext.Provider, {
|
|
11
11
|
value: {
|
|
12
|
-
size: size
|
|
13
|
-
isDark: isDark
|
|
12
|
+
size: size !== null && size !== void 0 ? size : Size.DESKTOP,
|
|
13
|
+
isDark: isDark !== null && isDark !== void 0 ? isDark : true,
|
|
14
14
|
theme: Theme.Dark
|
|
15
15
|
}
|
|
16
16
|
}, children);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["React","LayoutContext","Size","Theme","MockLayoutProvider","_ref","children","size","isDark","createElement","Provider","value","DESKTOP","theme","Dark"],"sources":["../../../src/testUtils/index.tsx"],"sourcesContent":["import type { FC, PropsWithChildren } from 'react';\nimport React from 'react';\n\nimport type { LayoutContextValue } from '../providers';\nimport { LayoutContext } from '../providers';\nimport { Size, Theme } from '../types';\n\nexport const MockLayoutProvider: FC<\n PropsWithChildren & Partial<LayoutContextValue>\n> = ({ children, size, isDark }) => (\n <LayoutContext.Provider\n value={{\n size: size ?? Size.DESKTOP,\n isDark: isDark ?? true,\n theme: Theme.Dark,\n }}\n >\n {children}\n </LayoutContext.Provider>\n);\n"],"mappings":"AACA,OAAOA,KAAK,MAAM,OAAO;AAGzB,SAASC,aAAa,QAAQ,cAAc;AAC5C,SAASC,IAAI,EAAEC,KAAK,QAAQ,UAAU;AAEtC,OAAO,MAAMC,kBAEZ,GAAGC,IAAA;EAAA,IAAC;IAAEC,QAAQ;IAAEC,IAAI;IAAEC;EAAO,CAAC,GAAAH,IAAA;EAAA,OAC7BL,KAAA,CAAAS,aAAA,CAACR,aAAa,CAACS,QAAQ;IACrBC,KAAK,EAAE;MACLJ,IAAI,EAAEA,IAAI,
|
|
1
|
+
{"version":3,"file":"index.js","names":["React","LayoutContext","Size","Theme","MockLayoutProvider","_ref","children","size","isDark","createElement","Provider","value","DESKTOP","theme","Dark"],"sources":["../../../src/testUtils/index.tsx"],"sourcesContent":["import type { FC, PropsWithChildren } from 'react';\nimport React from 'react';\n\nimport type { LayoutContextValue } from '../providers';\nimport { LayoutContext } from '../providers';\nimport { Size, Theme } from '../types';\n\nexport const MockLayoutProvider: FC<\n PropsWithChildren & Partial<LayoutContextValue>\n> = ({ children, size, isDark }) => (\n <LayoutContext.Provider\n value={{\n size: size ?? Size.DESKTOP,\n isDark: isDark ?? true,\n theme: Theme.Dark,\n }}\n >\n {children}\n </LayoutContext.Provider>\n);\n"],"mappings":"AACA,OAAOA,KAAK,MAAM,OAAO;AAGzB,SAASC,aAAa,QAAQ,cAAc;AAC5C,SAASC,IAAI,EAAEC,KAAK,QAAQ,UAAU;AAEtC,OAAO,MAAMC,kBAEZ,GAAGC,IAAA;EAAA,IAAC;IAAEC,QAAQ;IAAEC,IAAI;IAAEC;EAAO,CAAC,GAAAH,IAAA;EAAA,OAC7BL,KAAA,CAAAS,aAAA,CAACR,aAAa,CAACS,QAAQ;IACrBC,KAAK,EAAE;MACLJ,IAAI,EAAEA,IAAI,aAAJA,IAAI,cAAJA,IAAI,GAAIL,IAAI,CAACU,OAAO;MAC1BJ,MAAM,EAAEA,MAAM,aAANA,MAAM,cAANA,MAAM,GAAI,IAAI;MACtBK,KAAK,EAAEV,KAAK,CAACW;IACf;EAAE,GAEDR,QACqB,CAAC;AAAA,CAC1B","ignoreList":[]}
|
|
@@ -4,11 +4,11 @@ const formatTimezone = timestamp => {
|
|
|
4
4
|
const timezoneOffset = date.getTimezoneOffset();
|
|
5
5
|
const timezoneSymbol = timezoneOffset < 0 ? '+' : '';
|
|
6
6
|
const timezoneValue = timezoneOffset / -60;
|
|
7
|
-
return
|
|
7
|
+
return "(UTC".concat(timezoneSymbol).concat(timezoneOffset ? timezoneValue : '', ")");
|
|
8
8
|
};
|
|
9
9
|
const formatUpdatedTimestampTime = timestamp => {
|
|
10
10
|
const date = new Date(timestamp);
|
|
11
|
-
return
|
|
11
|
+
return "".concat(addLeadingZero(date.getHours()), ":").concat(addLeadingZero(date.getMinutes()), ":").concat(addLeadingZero(date.getSeconds()));
|
|
12
12
|
};
|
|
13
13
|
const formatUpdatedTimestampDate = (timestamp, dateLabel) => {
|
|
14
14
|
const timestampDate = new Date(timestamp);
|
|
@@ -16,6 +16,6 @@ const formatUpdatedTimestampDate = (timestamp, dateLabel) => {
|
|
|
16
16
|
dateStyle: 'short'
|
|
17
17
|
});
|
|
18
18
|
};
|
|
19
|
-
const formatUpdatedTimestamp = (timestamp, dateLabel) => timestamp ?
|
|
19
|
+
const formatUpdatedTimestamp = (timestamp, dateLabel) => timestamp ? "".concat(formatUpdatedTimestampTime(timestamp), ", ").concat(formatUpdatedTimestampDate(timestamp, dateLabel), " ").concat(formatTimezone(timestamp), ".") : '';
|
|
20
20
|
export { formatUpdatedTimestamp, formatUpdatedTimestampDate, formatUpdatedTimestampTime };
|
|
21
21
|
//# sourceMappingURL=dateUtils.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dateUtils.js","names":["addLeadingZero","value","String","padStart","formatTimezone","timestamp","date","Date","timezoneOffset","getTimezoneOffset","timezoneSymbol","timezoneValue","formatUpdatedTimestampTime","getHours","getMinutes","getSeconds","formatUpdatedTimestampDate","dateLabel","timestampDate","toDateString","toLocaleDateString","undefined","dateStyle","formatUpdatedTimestamp"],"sources":["../../../src/utils/dateUtils.ts"],"sourcesContent":["const addLeadingZero = (value: number) => String(value).padStart(2, '0');\n\nconst formatTimezone = (timestamp: string) => {\n const date = new Date(timestamp);\n const timezoneOffset = date.getTimezoneOffset();\n const timezoneSymbol = timezoneOffset < 0 ? '+' : '';\n const timezoneValue = timezoneOffset / -60;\n\n return `(UTC${timezoneSymbol}${timezoneOffset ? timezoneValue : ''})`;\n};\n\nconst formatUpdatedTimestampTime = (timestamp: string) => {\n const date = new Date(timestamp);\n\n return `${addLeadingZero(date.getHours())}:${addLeadingZero(\n date.getMinutes()\n )}:${addLeadingZero(date.getSeconds())}`;\n};\n\nconst formatUpdatedTimestampDate = (timestamp: string, dateLabel: string) => {\n const timestampDate = new Date(timestamp);\n\n return new Date().toDateString() === timestampDate.toDateString()\n ? dateLabel\n : timestampDate.toLocaleDateString(undefined, { dateStyle: 'short' });\n};\n\nconst formatUpdatedTimestamp = (timestamp: string, dateLabel: string) =>\n timestamp\n ? `${formatUpdatedTimestampTime(timestamp)}, ${formatUpdatedTimestampDate(timestamp, dateLabel)} ${formatTimezone(timestamp)}.`\n : '';\n\nexport {\n formatUpdatedTimestamp,\n formatUpdatedTimestampDate,\n formatUpdatedTimestampTime,\n};\n"],"mappings":"AAAA,MAAMA,cAAc,GAAIC,KAAa,IAAKC,MAAM,CAACD,KAAK,CAAC,CAACE,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC;AAExE,MAAMC,cAAc,GAAIC,SAAiB,IAAK;EAC5C,MAAMC,IAAI,GAAG,IAAIC,IAAI,CAACF,SAAS,CAAC;EAChC,MAAMG,cAAc,GAAGF,IAAI,CAACG,iBAAiB,CAAC,CAAC;EAC/C,MAAMC,cAAc,GAAGF,cAAc,GAAG,CAAC,GAAG,GAAG,GAAG,EAAE;EACpD,MAAMG,aAAa,GAAGH,cAAc,GAAG,CAAC,EAAE;EAE1C,
|
|
1
|
+
{"version":3,"file":"dateUtils.js","names":["addLeadingZero","value","String","padStart","formatTimezone","timestamp","date","Date","timezoneOffset","getTimezoneOffset","timezoneSymbol","timezoneValue","concat","formatUpdatedTimestampTime","getHours","getMinutes","getSeconds","formatUpdatedTimestampDate","dateLabel","timestampDate","toDateString","toLocaleDateString","undefined","dateStyle","formatUpdatedTimestamp"],"sources":["../../../src/utils/dateUtils.ts"],"sourcesContent":["const addLeadingZero = (value: number) => String(value).padStart(2, '0');\n\nconst formatTimezone = (timestamp: string) => {\n const date = new Date(timestamp);\n const timezoneOffset = date.getTimezoneOffset();\n const timezoneSymbol = timezoneOffset < 0 ? '+' : '';\n const timezoneValue = timezoneOffset / -60;\n\n return `(UTC${timezoneSymbol}${timezoneOffset ? timezoneValue : ''})`;\n};\n\nconst formatUpdatedTimestampTime = (timestamp: string) => {\n const date = new Date(timestamp);\n\n return `${addLeadingZero(date.getHours())}:${addLeadingZero(\n date.getMinutes()\n )}:${addLeadingZero(date.getSeconds())}`;\n};\n\nconst formatUpdatedTimestampDate = (timestamp: string, dateLabel: string) => {\n const timestampDate = new Date(timestamp);\n\n return new Date().toDateString() === timestampDate.toDateString()\n ? dateLabel\n : timestampDate.toLocaleDateString(undefined, { dateStyle: 'short' });\n};\n\nconst formatUpdatedTimestamp = (timestamp: string, dateLabel: string) =>\n timestamp\n ? `${formatUpdatedTimestampTime(timestamp)}, ${formatUpdatedTimestampDate(timestamp, dateLabel)} ${formatTimezone(timestamp)}.`\n : '';\n\nexport {\n formatUpdatedTimestamp,\n formatUpdatedTimestampDate,\n formatUpdatedTimestampTime,\n};\n"],"mappings":"AAAA,MAAMA,cAAc,GAAIC,KAAa,IAAKC,MAAM,CAACD,KAAK,CAAC,CAACE,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC;AAExE,MAAMC,cAAc,GAAIC,SAAiB,IAAK;EAC5C,MAAMC,IAAI,GAAG,IAAIC,IAAI,CAACF,SAAS,CAAC;EAChC,MAAMG,cAAc,GAAGF,IAAI,CAACG,iBAAiB,CAAC,CAAC;EAC/C,MAAMC,cAAc,GAAGF,cAAc,GAAG,CAAC,GAAG,GAAG,GAAG,EAAE;EACpD,MAAMG,aAAa,GAAGH,cAAc,GAAG,CAAC,EAAE;EAE1C,cAAAI,MAAA,CAAcF,cAAc,EAAAE,MAAA,CAAGJ,cAAc,GAAGG,aAAa,GAAG,EAAE;AACpE,CAAC;AAED,MAAME,0BAA0B,GAAIR,SAAiB,IAAK;EACxD,MAAMC,IAAI,GAAG,IAAIC,IAAI,CAACF,SAAS,CAAC;EAEhC,UAAAO,MAAA,CAAUZ,cAAc,CAACM,IAAI,CAACQ,QAAQ,CAAC,CAAC,CAAC,OAAAF,MAAA,CAAIZ,cAAc,CACzDM,IAAI,CAACS,UAAU,CAAC,CAClB,CAAC,OAAAH,MAAA,CAAIZ,cAAc,CAACM,IAAI,CAACU,UAAU,CAAC,CAAC,CAAC;AACxC,CAAC;AAED,MAAMC,0BAA0B,GAAGA,CAACZ,SAAiB,EAAEa,SAAiB,KAAK;EAC3E,MAAMC,aAAa,GAAG,IAAIZ,IAAI,CAACF,SAAS,CAAC;EAEzC,OAAO,IAAIE,IAAI,CAAC,CAAC,CAACa,YAAY,CAAC,CAAC,KAAKD,aAAa,CAACC,YAAY,CAAC,CAAC,GAC7DF,SAAS,GACTC,aAAa,CAACE,kBAAkB,CAACC,SAAS,EAAE;IAAEC,SAAS,EAAE;EAAQ,CAAC,CAAC;AACzE,CAAC;AAED,MAAMC,sBAAsB,GAAGA,CAACnB,SAAiB,EAAEa,SAAiB,KAClEb,SAAS,MAAAO,MAAA,CACFC,0BAA0B,CAACR,SAAS,CAAC,QAAAO,MAAA,CAAKK,0BAA0B,CAACZ,SAAS,EAAEa,SAAS,CAAC,OAAAN,MAAA,CAAIR,cAAc,CAACC,SAAS,CAAC,SAC1H,EAAE;AAER,SACEmB,sBAAsB,EACtBP,0BAA0B,EAC1BJ,0BAA0B","ignoreList":[]}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { Locale } from '@oanda/mono-i18n';
|
|
2
2
|
const validateLocale = locale => {
|
|
3
3
|
const locales = ['en', 'zh', 'es', 'th', 'fr', 'de', 'pt', 'it', 'zhCN', 'vi'];
|
|
4
|
-
return locales.includes(locale
|
|
4
|
+
return locales.includes(locale === null || locale === void 0 ? void 0 : locale.substring(0, 2));
|
|
5
5
|
};
|
|
6
6
|
const getLocale = locale => {
|
|
7
7
|
const languageCodeDictionary = {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getLocale.js","names":["Locale","validateLocale","locale","locales","includes","substring","getLocale","languageCodeDictionary","en","zh","zhTW","es","th","fr","de","pt","it","zhCN","vi"],"sources":["../../../src/utils/getLocale.ts"],"sourcesContent":["import { Locale } from '@oanda/mono-i18n';\n\nconst validateLocale = (locale?: string) => {\n const locales = [\n 'en',\n 'zh',\n 'es',\n 'th',\n 'fr',\n 'de',\n 'pt',\n 'it',\n 'zhCN',\n 'vi',\n ];\n\n return locales.includes(locale?.substring(0, 2)!);\n};\n\nconst getLocale = (locale?: string) => {\n const languageCodeDictionary: Record<string, Locale> = {\n en: Locale.en,\n zh: Locale.zhTW,\n es: Locale.es,\n th: Locale.th,\n fr: Locale.fr,\n de: Locale.de,\n pt: Locale.pt,\n it: Locale.it,\n ['zh-CN']: Locale.zhCN,\n vi: Locale.vi,\n };\n\n return languageCodeDictionary[locale!] || languageCodeDictionary.en;\n};\n\nexport { getLocale, validateLocale };\n"],"mappings":"AAAA,SAASA,MAAM,QAAQ,kBAAkB;AAEzC,MAAMC,cAAc,GAAIC,MAAe,IAAK;EAC1C,MAAMC,OAAO,GAAG,CACd,IAAI,EACJ,IAAI,EACJ,IAAI,EACJ,IAAI,EACJ,IAAI,EACJ,IAAI,EACJ,IAAI,EACJ,IAAI,EACJ,MAAM,EACN,IAAI,CACL;EAED,OAAOA,OAAO,CAACC,QAAQ,CAACF,MAAM,
|
|
1
|
+
{"version":3,"file":"getLocale.js","names":["Locale","validateLocale","locale","locales","includes","substring","getLocale","languageCodeDictionary","en","zh","zhTW","es","th","fr","de","pt","it","zhCN","vi"],"sources":["../../../src/utils/getLocale.ts"],"sourcesContent":["import { Locale } from '@oanda/mono-i18n';\n\nconst validateLocale = (locale?: string) => {\n const locales = [\n 'en',\n 'zh',\n 'es',\n 'th',\n 'fr',\n 'de',\n 'pt',\n 'it',\n 'zhCN',\n 'vi',\n ];\n\n return locales.includes(locale?.substring(0, 2)!);\n};\n\nconst getLocale = (locale?: string) => {\n const languageCodeDictionary: Record<string, Locale> = {\n en: Locale.en,\n zh: Locale.zhTW,\n es: Locale.es,\n th: Locale.th,\n fr: Locale.fr,\n de: Locale.de,\n pt: Locale.pt,\n it: Locale.it,\n ['zh-CN']: Locale.zhCN,\n vi: Locale.vi,\n };\n\n return languageCodeDictionary[locale!] || languageCodeDictionary.en;\n};\n\nexport { getLocale, validateLocale };\n"],"mappings":"AAAA,SAASA,MAAM,QAAQ,kBAAkB;AAEzC,MAAMC,cAAc,GAAIC,MAAe,IAAK;EAC1C,MAAMC,OAAO,GAAG,CACd,IAAI,EACJ,IAAI,EACJ,IAAI,EACJ,IAAI,EACJ,IAAI,EACJ,IAAI,EACJ,IAAI,EACJ,IAAI,EACJ,MAAM,EACN,IAAI,CACL;EAED,OAAOA,OAAO,CAACC,QAAQ,CAACF,MAAM,aAANA,MAAM,uBAANA,MAAM,CAAEG,SAAS,CAAC,CAAC,EAAE,CAAC,CAAE,CAAC;AACnD,CAAC;AAED,MAAMC,SAAS,GAAIJ,MAAe,IAAK;EACrC,MAAMK,sBAA8C,GAAG;IACrDC,EAAE,EAAER,MAAM,CAACQ,EAAE;IACbC,EAAE,EAAET,MAAM,CAACU,IAAI;IACfC,EAAE,EAAEX,MAAM,CAACW,EAAE;IACbC,EAAE,EAAEZ,MAAM,CAACY,EAAE;IACbC,EAAE,EAAEb,MAAM,CAACa,EAAE;IACbC,EAAE,EAAEd,MAAM,CAACc,EAAE;IACbC,EAAE,EAAEf,MAAM,CAACe,EAAE;IACbC,EAAE,EAAEhB,MAAM,CAACgB,EAAE;IACb,CAAC,OAAO,GAAGhB,MAAM,CAACiB,IAAI;IACtBC,EAAE,EAAElB,MAAM,CAACkB;EACb,CAAC;EAED,OAAOX,sBAAsB,CAACL,MAAM,CAAE,IAAIK,sBAAsB,CAACC,EAAE;AACrE,CAAC;AAED,SAASF,SAAS,EAAEL,cAAc","ignoreList":[]}
|
|
@@ -1,19 +1,21 @@
|
|
|
1
|
+
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
2
|
+
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
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
|
+
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
|
|
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); }
|
|
1
6
|
export const buildUrl = (url, query, options) => {
|
|
2
7
|
const [baseUrl, baseQueryString] = url.split('?');
|
|
3
8
|
if (!query && !baseQueryString) {
|
|
4
9
|
throw new Error('Instruments query is not provided!');
|
|
5
10
|
}
|
|
6
|
-
const queryParams = query && {
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
dataSource: options.dataSource
|
|
11
|
-
} : {})
|
|
12
|
-
};
|
|
11
|
+
const queryParams = query && _objectSpread(_objectSpread({}, query), !query.division && options !== null && options !== void 0 && options.divisionCode ? {
|
|
12
|
+
division: options.divisionCode,
|
|
13
|
+
dataSource: options.dataSource
|
|
14
|
+
} : {});
|
|
13
15
|
const queryString = queryParams ? Object.entries(queryParams).map(_ref => {
|
|
14
16
|
let [key, value] = _ref;
|
|
15
|
-
return Array.isArray(value) ? value &&
|
|
17
|
+
return Array.isArray(value) ? value && "".concat(key, "=").concat(value.join(',')) : value && "".concat(key, "=").concat(value);
|
|
16
18
|
}).filter(Boolean).join('&') : baseQueryString;
|
|
17
|
-
return
|
|
19
|
+
return "".concat(baseUrl, "?").concat(queryString);
|
|
18
20
|
};
|
|
19
21
|
//# sourceMappingURL=buildUrl.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"buildUrl.js","names":["buildUrl","url","query","options","baseUrl","baseQueryString","split","Error","queryParams","division","divisionCode","dataSource","queryString","Object","entries","map","_ref","key","value","Array","isArray","join","filter","Boolean"],"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":"AAKA,OAAO,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,
|
|
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"],"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":";;;;;AAKA,OAAO,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;EACtB,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","ignoreList":[]}
|
|
@@ -9,7 +9,7 @@ export const calculatePriceChangeFromOpen = (currentAsk, currentBid, prevAsk, pr
|
|
|
9
9
|
const previousAverage = (prevAsk + prevBid) / 2;
|
|
10
10
|
const percentChange = Math.round((currentAverage - previousAverage) / previousAverage * 10000) / 100;
|
|
11
11
|
return {
|
|
12
|
-
percentChangeFromOpen: percentChange > 0 &&
|
|
12
|
+
percentChangeFromOpen: percentChange > 0 && "+".concat(percentChange.toFixed(2), "%") || percentChange < 0 && "".concat(percentChange.toFixed(2), "%") || noChange
|
|
13
13
|
};
|
|
14
14
|
};
|
|
15
15
|
//# sourceMappingURL=calculatePriceChangeFromOpen.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"calculatePriceChangeFromOpen.js","names":["calculatePriceChangeFromOpen","currentAsk","currentBid","prevAsk","prevBid","noChange","percentChangeFromOpen","currentAverage","previousAverage","percentChange","Math","round","toFixed"],"sources":["../../../../src/utils/liveRates/calculatePriceChangeFromOpen.ts"],"sourcesContent":["import type { PriceChangeFromOpen } from '../../types';\n\nexport const calculatePriceChangeFromOpen = (\n currentAsk: number,\n currentBid: number,\n prevAsk?: number,\n prevBid?: number\n): PriceChangeFromOpen => {\n const noChange = '0%';\n\n if (!prevAsk || !prevBid) {\n return { percentChangeFromOpen: noChange };\n }\n\n const currentAverage = (currentAsk + currentBid) / 2;\n const previousAverage = (prevAsk + prevBid) / 2;\n const percentChange =\n Math.round(((currentAverage - previousAverage) / previousAverage) * 10000) /\n 100;\n\n return {\n percentChangeFromOpen:\n (percentChange > 0 && `+${percentChange.toFixed(2)}%`) ||\n (percentChange < 0 && `${percentChange.toFixed(2)}%`) ||\n noChange,\n };\n};\n"],"mappings":"AAEA,OAAO,MAAMA,4BAA4B,GAAGA,CAC1CC,UAAkB,EAClBC,UAAkB,EAClBC,OAAgB,EAChBC,OAAgB,KACQ;EACxB,MAAMC,QAAQ,GAAG,IAAI;EAErB,IAAI,CAACF,OAAO,IAAI,CAACC,OAAO,EAAE;IACxB,OAAO;MAAEE,qBAAqB,EAAED;IAAS,CAAC;EAC5C;EAEA,MAAME,cAAc,GAAG,CAACN,UAAU,GAAGC,UAAU,IAAI,CAAC;EACpD,MAAMM,eAAe,GAAG,CAACL,OAAO,GAAGC,OAAO,IAAI,CAAC;EAC/C,MAAMK,aAAa,GACjBC,IAAI,CAACC,KAAK,CAAE,CAACJ,cAAc,GAAGC,eAAe,IAAIA,eAAe,GAAI,KAAK,CAAC,GAC1E,GAAG;EAEL,OAAO;IACLF,qBAAqB,EAClBG,aAAa,GAAG,CAAC,
|
|
1
|
+
{"version":3,"file":"calculatePriceChangeFromOpen.js","names":["calculatePriceChangeFromOpen","currentAsk","currentBid","prevAsk","prevBid","noChange","percentChangeFromOpen","currentAverage","previousAverage","percentChange","Math","round","concat","toFixed"],"sources":["../../../../src/utils/liveRates/calculatePriceChangeFromOpen.ts"],"sourcesContent":["import type { PriceChangeFromOpen } from '../../types';\n\nexport const calculatePriceChangeFromOpen = (\n currentAsk: number,\n currentBid: number,\n prevAsk?: number,\n prevBid?: number\n): PriceChangeFromOpen => {\n const noChange = '0%';\n\n if (!prevAsk || !prevBid) {\n return { percentChangeFromOpen: noChange };\n }\n\n const currentAverage = (currentAsk + currentBid) / 2;\n const previousAverage = (prevAsk + prevBid) / 2;\n const percentChange =\n Math.round(((currentAverage - previousAverage) / previousAverage) * 10000) /\n 100;\n\n return {\n percentChangeFromOpen:\n (percentChange > 0 && `+${percentChange.toFixed(2)}%`) ||\n (percentChange < 0 && `${percentChange.toFixed(2)}%`) ||\n noChange,\n };\n};\n"],"mappings":"AAEA,OAAO,MAAMA,4BAA4B,GAAGA,CAC1CC,UAAkB,EAClBC,UAAkB,EAClBC,OAAgB,EAChBC,OAAgB,KACQ;EACxB,MAAMC,QAAQ,GAAG,IAAI;EAErB,IAAI,CAACF,OAAO,IAAI,CAACC,OAAO,EAAE;IACxB,OAAO;MAAEE,qBAAqB,EAAED;IAAS,CAAC;EAC5C;EAEA,MAAME,cAAc,GAAG,CAACN,UAAU,GAAGC,UAAU,IAAI,CAAC;EACpD,MAAMM,eAAe,GAAG,CAACL,OAAO,GAAGC,OAAO,IAAI,CAAC;EAC/C,MAAMK,aAAa,GACjBC,IAAI,CAACC,KAAK,CAAE,CAACJ,cAAc,GAAGC,eAAe,IAAIA,eAAe,GAAI,KAAK,CAAC,GAC1E,GAAG;EAEL,OAAO;IACLF,qBAAqB,EAClBG,aAAa,GAAG,CAAC,QAAAG,MAAA,CAAQH,aAAa,CAACI,OAAO,CAAC,CAAC,CAAC,MAAG,IACpDJ,aAAa,GAAG,CAAC,OAAAG,MAAA,CAAOH,aAAa,CAACI,OAAO,CAAC,CAAC,CAAC,MAAI,IACrDR;EACJ,CAAC;AACH,CAAC","ignoreList":[]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@oanda/labs-widget-common",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.224",
|
|
4
4
|
"description": "Labs Widget Common",
|
|
5
5
|
"main": "dist/main/index.js",
|
|
6
6
|
"module": "dist/module/index.js",
|
|
@@ -21,5 +21,5 @@
|
|
|
21
21
|
"tailwind-merge": "2.2.2",
|
|
22
22
|
"usehooks-ts": "3.0.2"
|
|
23
23
|
},
|
|
24
|
-
"gitHead": "
|
|
24
|
+
"gitHead": "b03e9304ac39928b92878bab83628b07214c3c6f"
|
|
25
25
|
}
|