@oanda/labs-order-book-widget 1.0.168 → 1.0.170

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.
@@ -18,7 +18,8 @@ const OrderBookWidget = _ref => {
18
18
  locale,
19
19
  theme,
20
20
  isParamError,
21
- division
21
+ division,
22
+ logoLink
22
23
  } = _ref;
23
24
  const client = new _client.ApolloClient({
24
25
  uri: graphqlUrl,
@@ -33,9 +34,13 @@ const OrderBookWidget = _ref => {
33
34
  client: client
34
35
  }, isParamError ? _react.default.createElement("div", {
35
36
  className: "lw-flex lw-h-[425px] lw-w-full lw-items-center lw-border lw-border-solid lw-border-border-primary"
36
- }, _react.default.createElement(_labsWidgetCommon.ChartError, null)) : _react.default.createElement(_Main.Main, {
37
- instrument: instrument,
38
- division: division
37
+ }, _react.default.createElement(_labsWidgetCommon.ChartError, null)) : (0, _labsWidgetCommon.renderComponent)({
38
+ Component: _react.default.createElement(_Main.Main, {
39
+ instrument: instrument,
40
+ division: division
41
+ }),
42
+ logoLink,
43
+ linkArea: 'logo'
39
44
  }))));
40
45
  };
41
46
  exports.OrderBookWidget = OrderBookWidget;
@@ -1 +1 @@
1
- {"version":3,"file":"OrderBookWidget.js","names":["_react","_interopRequireDefault","require","_client","_monoI18n","_labsWidgetCommon","_Main","_translations","e","__esModule","default","OrderBookWidget","_ref","graphqlUrl","instrument","locale","theme","isParamError","division","client","ApolloClient","uri","cache","InMemoryCache","createElement","ThemeProvider","LocaleProvider","getLocale","translations","ApolloProvider","className","ChartError","Main","exports"],"sources":["../../../src/OrderBookWidget/OrderBookWidget.tsx"],"sourcesContent":["import React from 'react';\nimport { ApolloClient, InMemoryCache, ApolloProvider } from '@apollo/client';\nimport { LocaleProvider } from '@oanda/mono-i18n';\nimport { ChartError, ThemeProvider, getLocale } from '@oanda/labs-widget-common';\nimport { Main } from './Main';\nimport { OrderBookWidgetConfig } from './types';\nimport { translations } from '../translations';\n\nconst OrderBookWidget = ({\n graphqlUrl,\n instrument,\n locale,\n theme,\n isParamError,\n division,\n}: OrderBookWidgetConfig) => {\n const client = new ApolloClient({\n uri: graphqlUrl,\n cache: new InMemoryCache(),\n });\n\n return (\n <ThemeProvider theme={theme}>\n <LocaleProvider locale={getLocale(locale)} translations={translations}>\n <ApolloProvider client={client}>\n {isParamError ? (\n <div className=\"lw-flex lw-h-[425px] lw-w-full lw-items-center lw-border lw-border-solid lw-border-border-primary\">\n <ChartError />\n </div>\n ) : <Main instrument={instrument} division={division} />}\n </ApolloProvider>\n </LocaleProvider>\n </ThemeProvider>\n );\n};\n\nexport { OrderBookWidget };\n"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,OAAA,GAAAD,OAAA;AACA,IAAAE,SAAA,GAAAF,OAAA;AACA,IAAAG,iBAAA,GAAAH,OAAA;AACA,IAAAI,KAAA,GAAAJ,OAAA;AAEA,IAAAK,aAAA,GAAAL,OAAA;AAA+C,SAAAD,uBAAAO,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAE/C,MAAMG,eAAe,GAAGC,IAAA,IAOK;EAAA,IAPJ;IACvBC,UAAU;IACVC,UAAU;IACVC,MAAM;IACNC,KAAK;IACLC,YAAY;IACZC;EACqB,CAAC,GAAAN,IAAA;EACtB,MAAMO,MAAM,GAAG,IAAIC,oBAAY,CAAC;IAC9BC,GAAG,EAAER,UAAU;IACfS,KAAK,EAAE,IAAIC,qBAAa,CAAC;EAC3B,CAAC,CAAC;EAEF,OACEvB,MAAA,CAAAU,OAAA,CAAAc,aAAA,CAACnB,iBAAA,CAAAoB,aAAa;IAACT,KAAK,EAAEA;EAAM,GAC1BhB,MAAA,CAAAU,OAAA,CAAAc,aAAA,CAACpB,SAAA,CAAAsB,cAAc;IAACX,MAAM,EAAE,IAAAY,2BAAS,EAACZ,MAAM,CAAE;IAACa,YAAY,EAAEA;EAAa,GACpE5B,MAAA,CAAAU,OAAA,CAAAc,aAAA,CAACrB,OAAA,CAAA0B,cAAc;IAACV,MAAM,EAAEA;EAAO,GAC5BF,YAAY,GACXjB,MAAA,CAAAU,OAAA,CAAAc,aAAA;IAAKM,SAAS,EAAC;EAAmG,GAChH9B,MAAA,CAAAU,OAAA,CAAAc,aAAA,CAACnB,iBAAA,CAAA0B,UAAU,MAAE,CACV,CAAC,GACJ/B,MAAA,CAAAU,OAAA,CAAAc,aAAA,CAAClB,KAAA,CAAA0B,IAAI;IAAClB,UAAU,EAAEA,UAAW;IAACI,QAAQ,EAAEA;EAAS,CAAE,CACzC,CACF,CACH,CAAC;AAEpB,CAAC;AAACe,OAAA,CAAAtB,eAAA,GAAAA,eAAA","ignoreList":[]}
1
+ {"version":3,"file":"OrderBookWidget.js","names":["_react","_interopRequireDefault","require","_client","_monoI18n","_labsWidgetCommon","_Main","_translations","e","__esModule","default","OrderBookWidget","_ref","graphqlUrl","instrument","locale","theme","isParamError","division","logoLink","client","ApolloClient","uri","cache","InMemoryCache","createElement","ThemeProvider","LocaleProvider","getLocale","translations","ApolloProvider","className","ChartError","renderComponent","Component","Main","linkArea","exports"],"sources":["../../../src/OrderBookWidget/OrderBookWidget.tsx"],"sourcesContent":["import React from 'react';\nimport { ApolloClient, InMemoryCache, ApolloProvider } from '@apollo/client';\nimport { LocaleProvider } from '@oanda/mono-i18n';\nimport {\n ChartError, ThemeProvider, getLocale, renderComponent,\n} from '@oanda/labs-widget-common';\nimport { Main } from './Main';\nimport { OrderBookWidgetConfig } from './types';\nimport { translations } from '../translations';\n\nconst OrderBookWidget = ({\n graphqlUrl,\n instrument,\n locale,\n theme,\n isParamError,\n division,\n logoLink,\n}: OrderBookWidgetConfig) => {\n const client = new ApolloClient({\n uri: graphqlUrl,\n cache: new InMemoryCache(),\n });\n\n return (\n <ThemeProvider theme={theme}>\n <LocaleProvider locale={getLocale(locale)} translations={translations}>\n <ApolloProvider client={client}>\n {isParamError ? (\n <div className=\"lw-flex lw-h-[425px] lw-w-full lw-items-center lw-border lw-border-solid lw-border-border-primary\">\n <ChartError />\n </div>\n ) : renderComponent({\n Component: <Main instrument={instrument} division={division} />,\n logoLink,\n linkArea: 'logo',\n })}\n </ApolloProvider>\n </LocaleProvider>\n </ThemeProvider>\n );\n};\n\nexport { OrderBookWidget };\n"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,OAAA,GAAAD,OAAA;AACA,IAAAE,SAAA,GAAAF,OAAA;AACA,IAAAG,iBAAA,GAAAH,OAAA;AAGA,IAAAI,KAAA,GAAAJ,OAAA;AAEA,IAAAK,aAAA,GAAAL,OAAA;AAA+C,SAAAD,uBAAAO,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAE/C,MAAMG,eAAe,GAAGC,IAAA,IAQK;EAAA,IARJ;IACvBC,UAAU;IACVC,UAAU;IACVC,MAAM;IACNC,KAAK;IACLC,YAAY;IACZC,QAAQ;IACRC;EACqB,CAAC,GAAAP,IAAA;EACtB,MAAMQ,MAAM,GAAG,IAAIC,oBAAY,CAAC;IAC9BC,GAAG,EAAET,UAAU;IACfU,KAAK,EAAE,IAAIC,qBAAa,CAAC;EAC3B,CAAC,CAAC;EAEF,OACExB,MAAA,CAAAU,OAAA,CAAAe,aAAA,CAACpB,iBAAA,CAAAqB,aAAa;IAACV,KAAK,EAAEA;EAAM,GAC1BhB,MAAA,CAAAU,OAAA,CAAAe,aAAA,CAACrB,SAAA,CAAAuB,cAAc;IAACZ,MAAM,EAAE,IAAAa,2BAAS,EAACb,MAAM,CAAE;IAACc,YAAY,EAAEA;EAAa,GACpE7B,MAAA,CAAAU,OAAA,CAAAe,aAAA,CAACtB,OAAA,CAAA2B,cAAc;IAACV,MAAM,EAAEA;EAAO,GAC5BH,YAAY,GACXjB,MAAA,CAAAU,OAAA,CAAAe,aAAA;IAAKM,SAAS,EAAC;EAAmG,GAChH/B,MAAA,CAAAU,OAAA,CAAAe,aAAA,CAACpB,iBAAA,CAAA2B,UAAU,MAAE,CACV,CAAC,GACJ,IAAAC,iCAAe,EAAC;IAClBC,SAAS,EAAElC,MAAA,CAAAU,OAAA,CAAAe,aAAA,CAACnB,KAAA,CAAA6B,IAAI;MAACrB,UAAU,EAAEA,UAAW;MAACI,QAAQ,EAAEA;IAAS,CAAE,CAAC;IAC/DC,QAAQ;IACRiB,QAAQ,EAAE;EACZ,CAAC,CACa,CACF,CACH,CAAC;AAEpB,CAAC;AAACC,OAAA,CAAA1B,eAAA,GAAAA,eAAA","ignoreList":[]}
@@ -26,7 +26,8 @@ if (orderBookElements.length > 0) {
26
26
  const {
27
27
  instrument,
28
28
  locale,
29
- division
29
+ division,
30
+ logoLink
30
31
  } = JSON.parse(params);
31
32
  const isParamError = instrument ? (0, _labsWidgetCommon.validateToolParams)({
32
33
  locale,
@@ -50,7 +51,8 @@ if (orderBookElements.length > 0) {
50
51
  }]) : (0, _labsWidgetCommon.validateToolParams)({
51
52
  locale,
52
53
  graphqlUrl,
53
- division
54
+ division,
55
+ logoLink
54
56
  }, [{
55
57
  name: 'locale',
56
58
  valueCheck: value => (0, _labsWidgetCommon.validateLocale)(value)
@@ -59,6 +61,8 @@ if (orderBookElements.length > 0) {
59
61
  }, {
60
62
  name: 'division',
61
63
  valueCheck: value => Object.values(_graphql.Division).includes(value)
64
+ }, {
65
+ name: 'logoLink'
62
66
  }]);
63
67
  root.render(_react.default.createElement(_OrderBookWidget.OrderBookWidget, {
64
68
  locale: locale,
@@ -66,7 +70,8 @@ if (orderBookElements.length > 0) {
66
70
  instrument: instrument,
67
71
  theme: mode,
68
72
  isParamError: isParamError,
69
- division: division
73
+ division: division,
74
+ logoLink: logoLink
70
75
  }));
71
76
  });
72
77
  } else {
@@ -1 +1 @@
1
- {"version":3,"file":"render.js","names":["_react","_interopRequireDefault","require","_client","_labsWidgetCommon","_OrderBookWidget","_graphql","_config","e","__esModule","default","graphqlUrl","configGraphQl","instrument","configInstrument","renderElementId","configRenderElementId","locale","configLocale","division","configDivision","window","volatilityChartWidgetConfig","widgetsConfig","orderBookElements","document","querySelectorAll","length","forEach","element","root","createRoot","params","getAttribute","mode","JSON","parse","isParamError","validateToolParams","name","valueCheck","value","validateLocale","Object","values","Division","includes","acceptableInstruments","Oc","instrumentSelectConfigOC","instrumentSelectConfig","map","x","id","replace","render","createElement","OrderBookWidget","theme","container","getElementById"],"sources":["../../../src/OrderBookWidget/render.tsx"],"sourcesContent":["import React from 'react';\nimport { createRoot } from 'react-dom/client';\nimport { Theme, validateLocale, validateToolParams } from '@oanda/labs-widget-common';\nimport { OrderBookWidget } from './OrderBookWidget';\nimport { Division } from '../gql/types/graphql';\nimport { instrumentSelectConfigOC, instrumentSelectConfig } from './config';\n\nconst {\n graphqlUrl: configGraphQl,\n instrument: configInstrument,\n renderElementId: configRenderElementId,\n locale: configLocale,\n division: configDivision,\n} = window.volatilityChartWidgetConfig || {};\n\nconst {\n graphqlUrl,\n} = window.widgetsConfig || {};\n\nconst orderBookElements = document.querySelectorAll('div[data-order-book-params]');\n\nif (orderBookElements.length > 0) {\n orderBookElements.forEach((element) => {\n const root = createRoot(element);\n const params = element.getAttribute('data-order-book-params');\n const mode = element.getAttribute('data-mode');\n const { instrument, locale, division } = JSON.parse(params as string);\n\n const isParamError = instrument ? validateToolParams({\n locale, graphqlUrl, division, instrument,\n }, [\n {\n name: 'locale',\n valueCheck: (value) => validateLocale(value),\n }, {\n name: 'graphqlUrl',\n }, {\n name: 'division',\n valueCheck: (value) => Object.values(Division).includes(value),\n }, {\n name: 'instrument',\n valueCheck: (value) => {\n const acceptableInstruments = division === Division.Oc\n ? instrumentSelectConfigOC\n : instrumentSelectConfig;\n\n return Object.values(\n acceptableInstruments.map((x) => x.id),\n ).includes(value.replace(/\\/|_/g, ''));\n },\n },\n ]) : validateToolParams({ locale, graphqlUrl, division }, [\n {\n name: 'locale',\n valueCheck: (value) => validateLocale(value),\n }, {\n name: 'graphqlUrl',\n }, {\n name: 'division',\n valueCheck: (value) => Object.values(Division).includes(value),\n }]);\n\n root.render(\n <OrderBookWidget\n locale={locale}\n graphqlUrl={graphqlUrl}\n instrument={instrument}\n theme={mode as Theme}\n isParamError={isParamError}\n division={division}\n />,\n );\n });\n} else {\n const container = document.getElementById(configRenderElementId);\n const root = createRoot(container!);\n\n root.render(\n <OrderBookWidget\n locale={configLocale}\n graphqlUrl={configGraphQl}\n instrument={configInstrument}\n division={configDivision}\n />,\n );\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"render.js","names":["_react","_interopRequireDefault","require","_client","_labsWidgetCommon","_OrderBookWidget","_graphql","_config","e","__esModule","default","graphqlUrl","configGraphQl","instrument","configInstrument","renderElementId","configRenderElementId","locale","configLocale","division","configDivision","window","volatilityChartWidgetConfig","widgetsConfig","orderBookElements","document","querySelectorAll","length","forEach","element","root","createRoot","params","getAttribute","mode","logoLink","JSON","parse","isParamError","validateToolParams","name","valueCheck","value","validateLocale","Object","values","Division","includes","acceptableInstruments","Oc","instrumentSelectConfigOC","instrumentSelectConfig","map","x","id","replace","render","createElement","OrderBookWidget","theme","container","getElementById"],"sources":["../../../src/OrderBookWidget/render.tsx"],"sourcesContent":["import React from 'react';\nimport { createRoot } from 'react-dom/client';\nimport { Theme, validateLocale, validateToolParams } from '@oanda/labs-widget-common';\nimport { OrderBookWidget } from './OrderBookWidget';\nimport { Division } from '../gql/types/graphql';\nimport { instrumentSelectConfigOC, instrumentSelectConfig } from './config';\n\nconst {\n graphqlUrl: configGraphQl,\n instrument: configInstrument,\n renderElementId: configRenderElementId,\n locale: configLocale,\n division: configDivision,\n} = window.volatilityChartWidgetConfig || {};\n\nconst {\n graphqlUrl,\n} = window.widgetsConfig || {};\n\nconst orderBookElements = document.querySelectorAll('div[data-order-book-params]');\n\nif (orderBookElements.length > 0) {\n orderBookElements.forEach((element) => {\n const root = createRoot(element);\n const params = element.getAttribute('data-order-book-params');\n const mode = element.getAttribute('data-mode');\n const {\n instrument, locale, division, logoLink,\n } = JSON.parse(params as string);\n\n const isParamError = instrument ? validateToolParams({\n locale, graphqlUrl, division, instrument,\n }, [\n {\n name: 'locale',\n valueCheck: (value) => validateLocale(value),\n }, {\n name: 'graphqlUrl',\n }, {\n name: 'division',\n valueCheck: (value) => Object.values(Division).includes(value),\n }, {\n name: 'instrument',\n valueCheck: (value) => {\n const acceptableInstruments = division === Division.Oc\n ? instrumentSelectConfigOC\n : instrumentSelectConfig;\n\n return Object.values(\n acceptableInstruments.map((x) => x.id),\n ).includes(value.replace(/\\/|_/g, ''));\n },\n },\n ]) : validateToolParams({\n locale, graphqlUrl, division, logoLink,\n }, [\n {\n name: 'locale',\n valueCheck: (value) => validateLocale(value),\n }, {\n name: 'graphqlUrl',\n }, {\n name: 'division',\n valueCheck: (value) => Object.values(Division).includes(value),\n }, { name: 'logoLink' }]);\n\n root.render(\n <OrderBookWidget\n locale={locale}\n graphqlUrl={graphqlUrl}\n instrument={instrument}\n theme={mode as Theme}\n isParamError={isParamError}\n division={division}\n logoLink={logoLink}\n />,\n );\n });\n} else {\n const container = document.getElementById(configRenderElementId);\n const root = createRoot(container!);\n\n root.render(\n <OrderBookWidget\n locale={configLocale}\n graphqlUrl={configGraphQl}\n instrument={configInstrument}\n division={configDivision}\n />,\n );\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","names":["InstrumentId","exports"],"sources":["../../../src/OrderBookWidget/types.ts"],"sourcesContent":["import { Theme } from '@oanda/labs-widget-common';\nimport { Locale } from '@oanda/mono-i18n';\nimport { BookType, Division } from '../gql/types/graphql';\n\nexport interface OrderBookWidgetConfig {\n graphqlUrl: string;\n instrument: InstrumentId;\n locale: Locale;\n theme?: Theme;\n isParamError?: boolean;\n division: Division;\n}\n\nexport interface OrderBookWrapperConfig extends OrderBookWidgetConfig {\n renderElementId: string;\n}\n\nexport interface MainProps {\n instrument?: InstrumentId;\n division: Division;\n}\n\nexport interface ChartWithDataProps {\n instrument: InstrumentId;\n bookType: BookType;\n}\n\nexport enum InstrumentId {\n EUR_AUD = 'EURAUD',\n EUR_GBP = 'EURGBP',\n EUR_JPY = 'EURJPY',\n EUR_USD = 'EURUSD',\n EUR_CHF = 'EURCHF',\n USD_CHF = 'USDCHF',\n USD_JPY = 'USDJPY',\n USD_CAD = 'USDCAD',\n GBP_USD = 'GBPUSD',\n GBP_JPY = 'GBPJPY',\n GBP_CHF = 'GBPCHF',\n AUD_JPY = 'AUDJPY',\n AUD_USD = 'AUDUSD',\n NZD_USD = 'NZDUSD',\n XAU_USD = 'XAUUSD',\n XAG_USD = 'XAGUSD',\n}\n"],"mappings":";;;;;;IA2BYA,YAAY,GAAAC,OAAA,CAAAD,YAAA,aAAZA,YAAY;EAAZA,YAAY;EAAZA,YAAY;EAAZA,YAAY;EAAZA,YAAY;EAAZA,YAAY;EAAZA,YAAY;EAAZA,YAAY;EAAZA,YAAY;EAAZA,YAAY;EAAZA,YAAY;EAAZA,YAAY;EAAZA,YAAY;EAAZA,YAAY;EAAZA,YAAY;EAAZA,YAAY;EAAZA,YAAY;EAAA,OAAZA,YAAY;AAAA","ignoreList":[]}
1
+ {"version":3,"file":"types.js","names":["InstrumentId","exports"],"sources":["../../../src/OrderBookWidget/types.ts"],"sourcesContent":["import { WidgetConfig } from '@oanda/labs-widget-common';\nimport { BookType, Division } from '../gql/types/graphql';\n\nexport interface OrderBookWidgetConfig extends WidgetConfig {\n instrument: InstrumentId;\n division: Division;\n}\n\nexport interface OrderBookWrapperConfig extends OrderBookWidgetConfig {\n renderElementId: string;\n}\n\nexport interface MainProps {\n instrument?: InstrumentId;\n division: Division;\n}\n\nexport interface ChartWithDataProps {\n instrument: InstrumentId;\n bookType: BookType;\n}\n\nexport enum InstrumentId {\n EUR_AUD = 'EURAUD',\n EUR_GBP = 'EURGBP',\n EUR_JPY = 'EURJPY',\n EUR_USD = 'EURUSD',\n EUR_CHF = 'EURCHF',\n USD_CHF = 'USDCHF',\n USD_JPY = 'USDJPY',\n USD_CAD = 'USDCAD',\n GBP_USD = 'GBPUSD',\n GBP_JPY = 'GBPJPY',\n GBP_CHF = 'GBPCHF',\n AUD_JPY = 'AUDJPY',\n AUD_USD = 'AUDUSD',\n NZD_USD = 'NZDUSD',\n XAU_USD = 'XAUUSD',\n XAG_USD = 'XAGUSD',\n}\n"],"mappings":";;;;;;IAsBYA,YAAY,GAAAC,OAAA,CAAAD,YAAA,aAAZA,YAAY;EAAZA,YAAY;EAAZA,YAAY;EAAZA,YAAY;EAAZA,YAAY;EAAZA,YAAY;EAAZA,YAAY;EAAZA,YAAY;EAAZA,YAAY;EAAZA,YAAY;EAAZA,YAAY;EAAZA,YAAY;EAAZA,YAAY;EAAZA,YAAY;EAAZA,YAAY;EAAZA,YAAY;EAAZA,YAAY;EAAA,OAAZA,YAAY;AAAA","ignoreList":[]}
@@ -1,7 +1,7 @@
1
1
  import React from 'react';
2
2
  import { ApolloClient, InMemoryCache, ApolloProvider } from '@apollo/client';
3
3
  import { LocaleProvider } from '@oanda/mono-i18n';
4
- import { ChartError, ThemeProvider, getLocale } from '@oanda/labs-widget-common';
4
+ import { ChartError, ThemeProvider, getLocale, renderComponent } from '@oanda/labs-widget-common';
5
5
  import { Main } from './Main';
6
6
  import { translations } from '../translations';
7
7
  const OrderBookWidget = _ref => {
@@ -11,7 +11,8 @@ const OrderBookWidget = _ref => {
11
11
  locale,
12
12
  theme,
13
13
  isParamError,
14
- division
14
+ division,
15
+ logoLink
15
16
  } = _ref;
16
17
  const client = new ApolloClient({
17
18
  uri: graphqlUrl,
@@ -26,9 +27,13 @@ const OrderBookWidget = _ref => {
26
27
  client: client
27
28
  }, isParamError ? React.createElement("div", {
28
29
  className: "lw-flex lw-h-[425px] lw-w-full lw-items-center lw-border lw-border-solid lw-border-border-primary"
29
- }, React.createElement(ChartError, null)) : React.createElement(Main, {
30
- instrument: instrument,
31
- division: division
30
+ }, React.createElement(ChartError, null)) : renderComponent({
31
+ Component: React.createElement(Main, {
32
+ instrument: instrument,
33
+ division: division
34
+ }),
35
+ logoLink,
36
+ linkArea: 'logo'
32
37
  }))));
33
38
  };
34
39
  export { OrderBookWidget };
@@ -1 +1 @@
1
- {"version":3,"file":"OrderBookWidget.js","names":["React","ApolloClient","InMemoryCache","ApolloProvider","LocaleProvider","ChartError","ThemeProvider","getLocale","Main","translations","OrderBookWidget","_ref","graphqlUrl","instrument","locale","theme","isParamError","division","client","uri","cache","createElement","className"],"sources":["../../../src/OrderBookWidget/OrderBookWidget.tsx"],"sourcesContent":["import React from 'react';\nimport { ApolloClient, InMemoryCache, ApolloProvider } from '@apollo/client';\nimport { LocaleProvider } from '@oanda/mono-i18n';\nimport { ChartError, ThemeProvider, getLocale } from '@oanda/labs-widget-common';\nimport { Main } from './Main';\nimport { OrderBookWidgetConfig } from './types';\nimport { translations } from '../translations';\n\nconst OrderBookWidget = ({\n graphqlUrl,\n instrument,\n locale,\n theme,\n isParamError,\n division,\n}: OrderBookWidgetConfig) => {\n const client = new ApolloClient({\n uri: graphqlUrl,\n cache: new InMemoryCache(),\n });\n\n return (\n <ThemeProvider theme={theme}>\n <LocaleProvider locale={getLocale(locale)} translations={translations}>\n <ApolloProvider client={client}>\n {isParamError ? (\n <div className=\"lw-flex lw-h-[425px] lw-w-full lw-items-center lw-border lw-border-solid lw-border-border-primary\">\n <ChartError />\n </div>\n ) : <Main instrument={instrument} division={division} />}\n </ApolloProvider>\n </LocaleProvider>\n </ThemeProvider>\n );\n};\n\nexport { OrderBookWidget };\n"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAASC,YAAY,EAAEC,aAAa,EAAEC,cAAc,QAAQ,gBAAgB;AAC5E,SAASC,cAAc,QAAQ,kBAAkB;AACjD,SAASC,UAAU,EAAEC,aAAa,EAAEC,SAAS,QAAQ,2BAA2B;AAChF,SAASC,IAAI,QAAQ,QAAQ;AAE7B,SAASC,YAAY,QAAQ,iBAAiB;AAE9C,MAAMC,eAAe,GAAGC,IAAA,IAOK;EAAA,IAPJ;IACvBC,UAAU;IACVC,UAAU;IACVC,MAAM;IACNC,KAAK;IACLC,YAAY;IACZC;EACqB,CAAC,GAAAN,IAAA;EACtB,MAAMO,MAAM,GAAG,IAAIjB,YAAY,CAAC;IAC9BkB,GAAG,EAAEP,UAAU;IACfQ,KAAK,EAAE,IAAIlB,aAAa,CAAC;EAC3B,CAAC,CAAC;EAEF,OACEF,KAAA,CAAAqB,aAAA,CAACf,aAAa;IAACS,KAAK,EAAEA;EAAM,GAC1Bf,KAAA,CAAAqB,aAAA,CAACjB,cAAc;IAACU,MAAM,EAAEP,SAAS,CAACO,MAAM,CAAE;IAACL,YAAY,EAAEA;EAAa,GACpET,KAAA,CAAAqB,aAAA,CAAClB,cAAc;IAACe,MAAM,EAAEA;EAAO,GAC5BF,YAAY,GACXhB,KAAA,CAAAqB,aAAA;IAAKC,SAAS,EAAC;EAAmG,GAChHtB,KAAA,CAAAqB,aAAA,CAAChB,UAAU,MAAE,CACV,CAAC,GACJL,KAAA,CAAAqB,aAAA,CAACb,IAAI;IAACK,UAAU,EAAEA,UAAW;IAACI,QAAQ,EAAEA;EAAS,CAAE,CACzC,CACF,CACH,CAAC;AAEpB,CAAC;AAED,SAASP,eAAe","ignoreList":[]}
1
+ {"version":3,"file":"OrderBookWidget.js","names":["React","ApolloClient","InMemoryCache","ApolloProvider","LocaleProvider","ChartError","ThemeProvider","getLocale","renderComponent","Main","translations","OrderBookWidget","_ref","graphqlUrl","instrument","locale","theme","isParamError","division","logoLink","client","uri","cache","createElement","className","Component","linkArea"],"sources":["../../../src/OrderBookWidget/OrderBookWidget.tsx"],"sourcesContent":["import React from 'react';\nimport { ApolloClient, InMemoryCache, ApolloProvider } from '@apollo/client';\nimport { LocaleProvider } from '@oanda/mono-i18n';\nimport {\n ChartError, ThemeProvider, getLocale, renderComponent,\n} from '@oanda/labs-widget-common';\nimport { Main } from './Main';\nimport { OrderBookWidgetConfig } from './types';\nimport { translations } from '../translations';\n\nconst OrderBookWidget = ({\n graphqlUrl,\n instrument,\n locale,\n theme,\n isParamError,\n division,\n logoLink,\n}: OrderBookWidgetConfig) => {\n const client = new ApolloClient({\n uri: graphqlUrl,\n cache: new InMemoryCache(),\n });\n\n return (\n <ThemeProvider theme={theme}>\n <LocaleProvider locale={getLocale(locale)} translations={translations}>\n <ApolloProvider client={client}>\n {isParamError ? (\n <div className=\"lw-flex lw-h-[425px] lw-w-full lw-items-center lw-border lw-border-solid lw-border-border-primary\">\n <ChartError />\n </div>\n ) : renderComponent({\n Component: <Main instrument={instrument} division={division} />,\n logoLink,\n linkArea: 'logo',\n })}\n </ApolloProvider>\n </LocaleProvider>\n </ThemeProvider>\n );\n};\n\nexport { OrderBookWidget };\n"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAASC,YAAY,EAAEC,aAAa,EAAEC,cAAc,QAAQ,gBAAgB;AAC5E,SAASC,cAAc,QAAQ,kBAAkB;AACjD,SACEC,UAAU,EAAEC,aAAa,EAAEC,SAAS,EAAEC,eAAe,QAChD,2BAA2B;AAClC,SAASC,IAAI,QAAQ,QAAQ;AAE7B,SAASC,YAAY,QAAQ,iBAAiB;AAE9C,MAAMC,eAAe,GAAGC,IAAA,IAQK;EAAA,IARJ;IACvBC,UAAU;IACVC,UAAU;IACVC,MAAM;IACNC,KAAK;IACLC,YAAY;IACZC,QAAQ;IACRC;EACqB,CAAC,GAAAP,IAAA;EACtB,MAAMQ,MAAM,GAAG,IAAInB,YAAY,CAAC;IAC9BoB,GAAG,EAAER,UAAU;IACfS,KAAK,EAAE,IAAIpB,aAAa,CAAC;EAC3B,CAAC,CAAC;EAEF,OACEF,KAAA,CAAAuB,aAAA,CAACjB,aAAa;IAACU,KAAK,EAAEA;EAAM,GAC1BhB,KAAA,CAAAuB,aAAA,CAACnB,cAAc;IAACW,MAAM,EAAER,SAAS,CAACQ,MAAM,CAAE;IAACL,YAAY,EAAEA;EAAa,GACpEV,KAAA,CAAAuB,aAAA,CAACpB,cAAc;IAACiB,MAAM,EAAEA;EAAO,GAC5BH,YAAY,GACXjB,KAAA,CAAAuB,aAAA;IAAKC,SAAS,EAAC;EAAmG,GAChHxB,KAAA,CAAAuB,aAAA,CAAClB,UAAU,MAAE,CACV,CAAC,GACJG,eAAe,CAAC;IAClBiB,SAAS,EAAEzB,KAAA,CAAAuB,aAAA,CAACd,IAAI;MAACK,UAAU,EAAEA,UAAW;MAACI,QAAQ,EAAEA;IAAS,CAAE,CAAC;IAC/DC,QAAQ;IACRO,QAAQ,EAAE;EACZ,CAAC,CACa,CACF,CACH,CAAC;AAEpB,CAAC;AAED,SAASf,eAAe","ignoreList":[]}
@@ -23,7 +23,8 @@ if (orderBookElements.length > 0) {
23
23
  const {
24
24
  instrument,
25
25
  locale,
26
- division
26
+ division,
27
+ logoLink
27
28
  } = JSON.parse(params);
28
29
  const isParamError = instrument ? validateToolParams({
29
30
  locale,
@@ -47,7 +48,8 @@ if (orderBookElements.length > 0) {
47
48
  }]) : validateToolParams({
48
49
  locale,
49
50
  graphqlUrl,
50
- division
51
+ division,
52
+ logoLink
51
53
  }, [{
52
54
  name: 'locale',
53
55
  valueCheck: value => validateLocale(value)
@@ -56,6 +58,8 @@ if (orderBookElements.length > 0) {
56
58
  }, {
57
59
  name: 'division',
58
60
  valueCheck: value => Object.values(Division).includes(value)
61
+ }, {
62
+ name: 'logoLink'
59
63
  }]);
60
64
  root.render(React.createElement(OrderBookWidget, {
61
65
  locale: locale,
@@ -63,7 +67,8 @@ if (orderBookElements.length > 0) {
63
67
  instrument: instrument,
64
68
  theme: mode,
65
69
  isParamError: isParamError,
66
- division: division
70
+ division: division,
71
+ logoLink: logoLink
67
72
  }));
68
73
  });
69
74
  } else {
@@ -1 +1 @@
1
- {"version":3,"file":"render.js","names":["React","createRoot","validateLocale","validateToolParams","OrderBookWidget","Division","instrumentSelectConfigOC","instrumentSelectConfig","graphqlUrl","configGraphQl","instrument","configInstrument","renderElementId","configRenderElementId","locale","configLocale","division","configDivision","window","volatilityChartWidgetConfig","widgetsConfig","orderBookElements","document","querySelectorAll","length","forEach","element","root","params","getAttribute","mode","JSON","parse","isParamError","name","valueCheck","value","Object","values","includes","acceptableInstruments","Oc","map","x","id","replace","render","createElement","theme","container","getElementById"],"sources":["../../../src/OrderBookWidget/render.tsx"],"sourcesContent":["import React from 'react';\nimport { createRoot } from 'react-dom/client';\nimport { Theme, validateLocale, validateToolParams } from '@oanda/labs-widget-common';\nimport { OrderBookWidget } from './OrderBookWidget';\nimport { Division } from '../gql/types/graphql';\nimport { instrumentSelectConfigOC, instrumentSelectConfig } from './config';\n\nconst {\n graphqlUrl: configGraphQl,\n instrument: configInstrument,\n renderElementId: configRenderElementId,\n locale: configLocale,\n division: configDivision,\n} = window.volatilityChartWidgetConfig || {};\n\nconst {\n graphqlUrl,\n} = window.widgetsConfig || {};\n\nconst orderBookElements = document.querySelectorAll('div[data-order-book-params]');\n\nif (orderBookElements.length > 0) {\n orderBookElements.forEach((element) => {\n const root = createRoot(element);\n const params = element.getAttribute('data-order-book-params');\n const mode = element.getAttribute('data-mode');\n const { instrument, locale, division } = JSON.parse(params as string);\n\n const isParamError = instrument ? validateToolParams({\n locale, graphqlUrl, division, instrument,\n }, [\n {\n name: 'locale',\n valueCheck: (value) => validateLocale(value),\n }, {\n name: 'graphqlUrl',\n }, {\n name: 'division',\n valueCheck: (value) => Object.values(Division).includes(value),\n }, {\n name: 'instrument',\n valueCheck: (value) => {\n const acceptableInstruments = division === Division.Oc\n ? instrumentSelectConfigOC\n : instrumentSelectConfig;\n\n return Object.values(\n acceptableInstruments.map((x) => x.id),\n ).includes(value.replace(/\\/|_/g, ''));\n },\n },\n ]) : validateToolParams({ locale, graphqlUrl, division }, [\n {\n name: 'locale',\n valueCheck: (value) => validateLocale(value),\n }, {\n name: 'graphqlUrl',\n }, {\n name: 'division',\n valueCheck: (value) => Object.values(Division).includes(value),\n }]);\n\n root.render(\n <OrderBookWidget\n locale={locale}\n graphqlUrl={graphqlUrl}\n instrument={instrument}\n theme={mode as Theme}\n isParamError={isParamError}\n division={division}\n />,\n );\n });\n} else {\n const container = document.getElementById(configRenderElementId);\n const root = createRoot(container!);\n\n root.render(\n <OrderBookWidget\n locale={configLocale}\n graphqlUrl={configGraphQl}\n instrument={configInstrument}\n division={configDivision}\n />,\n );\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"render.js","names":["React","createRoot","validateLocale","validateToolParams","OrderBookWidget","Division","instrumentSelectConfigOC","instrumentSelectConfig","graphqlUrl","configGraphQl","instrument","configInstrument","renderElementId","configRenderElementId","locale","configLocale","division","configDivision","window","volatilityChartWidgetConfig","widgetsConfig","orderBookElements","document","querySelectorAll","length","forEach","element","root","params","getAttribute","mode","logoLink","JSON","parse","isParamError","name","valueCheck","value","Object","values","includes","acceptableInstruments","Oc","map","x","id","replace","render","createElement","theme","container","getElementById"],"sources":["../../../src/OrderBookWidget/render.tsx"],"sourcesContent":["import React from 'react';\nimport { createRoot } from 'react-dom/client';\nimport { Theme, validateLocale, validateToolParams } from '@oanda/labs-widget-common';\nimport { OrderBookWidget } from './OrderBookWidget';\nimport { Division } from '../gql/types/graphql';\nimport { instrumentSelectConfigOC, instrumentSelectConfig } from './config';\n\nconst {\n graphqlUrl: configGraphQl,\n instrument: configInstrument,\n renderElementId: configRenderElementId,\n locale: configLocale,\n division: configDivision,\n} = window.volatilityChartWidgetConfig || {};\n\nconst {\n graphqlUrl,\n} = window.widgetsConfig || {};\n\nconst orderBookElements = document.querySelectorAll('div[data-order-book-params]');\n\nif (orderBookElements.length > 0) {\n orderBookElements.forEach((element) => {\n const root = createRoot(element);\n const params = element.getAttribute('data-order-book-params');\n const mode = element.getAttribute('data-mode');\n const {\n instrument, locale, division, logoLink,\n } = JSON.parse(params as string);\n\n const isParamError = instrument ? validateToolParams({\n locale, graphqlUrl, division, instrument,\n }, [\n {\n name: 'locale',\n valueCheck: (value) => validateLocale(value),\n }, {\n name: 'graphqlUrl',\n }, {\n name: 'division',\n valueCheck: (value) => Object.values(Division).includes(value),\n }, {\n name: 'instrument',\n valueCheck: (value) => {\n const acceptableInstruments = division === Division.Oc\n ? instrumentSelectConfigOC\n : instrumentSelectConfig;\n\n return Object.values(\n acceptableInstruments.map((x) => x.id),\n ).includes(value.replace(/\\/|_/g, ''));\n },\n },\n ]) : validateToolParams({\n locale, graphqlUrl, division, logoLink,\n }, [\n {\n name: 'locale',\n valueCheck: (value) => validateLocale(value),\n }, {\n name: 'graphqlUrl',\n }, {\n name: 'division',\n valueCheck: (value) => Object.values(Division).includes(value),\n }, { name: 'logoLink' }]);\n\n root.render(\n <OrderBookWidget\n locale={locale}\n graphqlUrl={graphqlUrl}\n instrument={instrument}\n theme={mode as Theme}\n isParamError={isParamError}\n division={division}\n logoLink={logoLink}\n />,\n );\n });\n} else {\n const container = document.getElementById(configRenderElementId);\n const root = createRoot(container!);\n\n root.render(\n <OrderBookWidget\n locale={configLocale}\n graphqlUrl={configGraphQl}\n instrument={configInstrument}\n division={configDivision}\n />,\n );\n}\n"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAASC,UAAU,QAAQ,kBAAkB;AAC7C,SAAgBC,cAAc,EAAEC,kBAAkB,QAAQ,2BAA2B;AACrF,SAASC,eAAe,QAAQ,mBAAmB;AACnD,SAASC,QAAQ,QAAQ,sBAAsB;AAC/C,SAASC,wBAAwB,EAAEC,sBAAsB,QAAQ,UAAU;AAE3E,MAAM;EACJC,UAAU,EAAEC,aAAa;EACzBC,UAAU,EAAEC,gBAAgB;EAC5BC,eAAe,EAAEC,qBAAqB;EACtCC,MAAM,EAAEC,YAAY;EACpBC,QAAQ,EAAEC;AACZ,CAAC,GAAGC,MAAM,CAACC,2BAA2B,IAAI,CAAC,CAAC;AAE5C,MAAM;EACJX;AACF,CAAC,GAAGU,MAAM,CAACE,aAAa,IAAI,CAAC,CAAC;AAE9B,MAAMC,iBAAiB,GAAGC,QAAQ,CAACC,gBAAgB,CAAC,6BAA6B,CAAC;AAElF,IAAIF,iBAAiB,CAACG,MAAM,GAAG,CAAC,EAAE;EAChCH,iBAAiB,CAACI,OAAO,CAAEC,OAAO,IAAK;IACrC,MAAMC,IAAI,GAAG1B,UAAU,CAACyB,OAAO,CAAC;IAChC,MAAME,MAAM,GAAGF,OAAO,CAACG,YAAY,CAAC,wBAAwB,CAAC;IAC7D,MAAMC,IAAI,GAAGJ,OAAO,CAACG,YAAY,CAAC,WAAW,CAAC;IAC9C,MAAM;MACJnB,UAAU;MAAEI,MAAM;MAAEE,QAAQ;MAAEe;IAChC,CAAC,GAAGC,IAAI,CAACC,KAAK,CAACL,MAAgB,CAAC;IAEhC,MAAMM,YAAY,GAAGxB,UAAU,GAAGP,kBAAkB,CAAC;MACnDW,MAAM;MAAEN,UAAU;MAAEQ,QAAQ;MAAEN;IAChC,CAAC,EAAE,CACD;MACEyB,IAAI,EAAE,QAAQ;MACdC,UAAU,EAAGC,KAAK,IAAKnC,cAAc,CAACmC,KAAK;IAC7C,CAAC,EAAE;MACDF,IAAI,EAAE;IACR,CAAC,EAAE;MACDA,IAAI,EAAE,UAAU;MAChBC,UAAU,EAAGC,KAAK,IAAKC,MAAM,CAACC,MAAM,CAAClC,QAAQ,CAAC,CAACmC,QAAQ,CAACH,KAAK;IAC/D,CAAC,EAAE;MACDF,IAAI,EAAE,YAAY;MAClBC,UAAU,EAAGC,KAAK,IAAK;QACrB,MAAMI,qBAAqB,GAAGzB,QAAQ,KAAKX,QAAQ,CAACqC,EAAE,GAClDpC,wBAAwB,GACxBC,sBAAsB;QAE1B,OAAO+B,MAAM,CAACC,MAAM,CAClBE,qBAAqB,CAACE,GAAG,CAAEC,CAAC,IAAKA,CAAC,CAACC,EAAE,CACvC,CAAC,CAACL,QAAQ,CAACH,KAAK,CAACS,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;MACxC;IACF,CAAC,CACF,CAAC,GAAG3C,kBAAkB,CAAC;MACtBW,MAAM;MAAEN,UAAU;MAAEQ,QAAQ;MAAEe;IAChC,CAAC,EAAE,CACD;MACEI,IAAI,EAAE,QAAQ;MACdC,UAAU,EAAGC,KAAK,IAAKnC,cAAc,CAACmC,KAAK;IAC7C,CAAC,EAAE;MACDF,IAAI,EAAE;IACR,CAAC,EAAE;MACDA,IAAI,EAAE,UAAU;MAChBC,UAAU,EAAGC,KAAK,IAAKC,MAAM,CAACC,MAAM,CAAClC,QAAQ,CAAC,CAACmC,QAAQ,CAACH,KAAK;IAC/D,CAAC,EAAE;MAAEF,IAAI,EAAE;IAAW,CAAC,CAAC,CAAC;IAE3BR,IAAI,CAACoB,MAAM,CACT/C,KAAA,CAAAgD,aAAA,CAAC5C,eAAe;MACdU,MAAM,EAAEA,MAAO;MACfN,UAAU,EAAEA,UAAW;MACvBE,UAAU,EAAEA,UAAW;MACvBuC,KAAK,EAAEnB,IAAc;MACrBI,YAAY,EAAEA,YAAa;MAC3BlB,QAAQ,EAAEA,QAAS;MACnBe,QAAQ,EAAEA;IAAS,CACpB,CACH,CAAC;EACH,CAAC,CAAC;AACJ,CAAC,MAAM;EACL,MAAMmB,SAAS,GAAG5B,QAAQ,CAAC6B,cAAc,CAACtC,qBAAqB,CAAC;EAChE,MAAMc,IAAI,GAAG1B,UAAU,CAACiD,SAAU,CAAC;EAEnCvB,IAAI,CAACoB,MAAM,CACT/C,KAAA,CAAAgD,aAAA,CAAC5C,eAAe;IACdU,MAAM,EAAEC,YAAa;IACrBP,UAAU,EAAEC,aAAc;IAC1BC,UAAU,EAAEC,gBAAiB;IAC7BK,QAAQ,EAAEC;EAAe,CAC1B,CACH,CAAC;AACH","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","names":["InstrumentId"],"sources":["../../../src/OrderBookWidget/types.ts"],"sourcesContent":["import { Theme } from '@oanda/labs-widget-common';\nimport { Locale } from '@oanda/mono-i18n';\nimport { BookType, Division } from '../gql/types/graphql';\n\nexport interface OrderBookWidgetConfig {\n graphqlUrl: string;\n instrument: InstrumentId;\n locale: Locale;\n theme?: Theme;\n isParamError?: boolean;\n division: Division;\n}\n\nexport interface OrderBookWrapperConfig extends OrderBookWidgetConfig {\n renderElementId: string;\n}\n\nexport interface MainProps {\n instrument?: InstrumentId;\n division: Division;\n}\n\nexport interface ChartWithDataProps {\n instrument: InstrumentId;\n bookType: BookType;\n}\n\nexport enum InstrumentId {\n EUR_AUD = 'EURAUD',\n EUR_GBP = 'EURGBP',\n EUR_JPY = 'EURJPY',\n EUR_USD = 'EURUSD',\n EUR_CHF = 'EURCHF',\n USD_CHF = 'USDCHF',\n USD_JPY = 'USDJPY',\n USD_CAD = 'USDCAD',\n GBP_USD = 'GBPUSD',\n GBP_JPY = 'GBPJPY',\n GBP_CHF = 'GBPCHF',\n AUD_JPY = 'AUDJPY',\n AUD_USD = 'AUDUSD',\n NZD_USD = 'NZDUSD',\n XAU_USD = 'XAUUSD',\n XAG_USD = 'XAGUSD',\n}\n"],"mappings":"AA2BA,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","ignoreList":[]}
1
+ {"version":3,"file":"types.js","names":["InstrumentId"],"sources":["../../../src/OrderBookWidget/types.ts"],"sourcesContent":["import { WidgetConfig } from '@oanda/labs-widget-common';\nimport { BookType, Division } from '../gql/types/graphql';\n\nexport interface OrderBookWidgetConfig extends WidgetConfig {\n instrument: InstrumentId;\n division: Division;\n}\n\nexport interface OrderBookWrapperConfig extends OrderBookWidgetConfig {\n renderElementId: string;\n}\n\nexport interface MainProps {\n instrument?: InstrumentId;\n division: Division;\n}\n\nexport interface ChartWithDataProps {\n instrument: InstrumentId;\n bookType: BookType;\n}\n\nexport enum InstrumentId {\n EUR_AUD = 'EURAUD',\n EUR_GBP = 'EURGBP',\n EUR_JPY = 'EURJPY',\n EUR_USD = 'EURUSD',\n EUR_CHF = 'EURCHF',\n USD_CHF = 'USDCHF',\n USD_JPY = 'USDJPY',\n USD_CAD = 'USDCAD',\n GBP_USD = 'GBPUSD',\n GBP_JPY = 'GBPJPY',\n GBP_CHF = 'GBPCHF',\n AUD_JPY = 'AUDJPY',\n AUD_USD = 'AUDUSD',\n NZD_USD = 'NZDUSD',\n XAU_USD = 'XAUUSD',\n XAG_USD = 'XAGUSD',\n}\n"],"mappings":"AAsBA,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","ignoreList":[]}
@@ -1,4 +1,4 @@
1
1
  import React from 'react';
2
2
  import { OrderBookWidgetConfig } from './types';
3
- declare const OrderBookWidget: ({ graphqlUrl, instrument, locale, theme, isParamError, division, }: OrderBookWidgetConfig) => React.JSX.Element;
3
+ declare const OrderBookWidget: ({ graphqlUrl, instrument, locale, theme, isParamError, division, logoLink, }: OrderBookWidgetConfig) => React.JSX.Element;
4
4
  export { OrderBookWidget };
@@ -1,12 +1,7 @@
1
- import { Theme } from '@oanda/labs-widget-common';
2
- import { Locale } from '@oanda/mono-i18n';
1
+ import { WidgetConfig } from '@oanda/labs-widget-common';
3
2
  import { BookType, Division } from '../gql/types/graphql';
4
- export interface OrderBookWidgetConfig {
5
- graphqlUrl: string;
3
+ export interface OrderBookWidgetConfig extends WidgetConfig {
6
4
  instrument: InstrumentId;
7
- locale: Locale;
8
- theme?: Theme;
9
- isParamError?: boolean;
10
5
  division: Division;
11
6
  }
12
7
  export interface OrderBookWrapperConfig extends OrderBookWidgetConfig {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@oanda/labs-order-book-widget",
3
- "version": "1.0.168",
3
+ "version": "1.0.170",
4
4
  "description": "Labs Order Book Widget",
5
5
  "main": "dist/main/index.js",
6
6
  "module": "dist/module/index.js",
@@ -12,7 +12,7 @@
12
12
  "author": "OANDA",
13
13
  "license": "UNLICENSED",
14
14
  "dependencies": {
15
- "@oanda/labs-widget-common": "^1.0.168",
15
+ "@oanda/labs-widget-common": "^1.0.170",
16
16
  "@oanda/mono-i18n": "10.0.1",
17
17
  "echarts": "5.5.0",
18
18
  "echarts-for-react": "3.0.2",
@@ -23,5 +23,5 @@
23
23
  "@graphql-codegen/client-preset": "4.1.0",
24
24
  "@graphql-codegen/typescript": "4.0.1"
25
25
  },
26
- "gitHead": "ece7c06ca65b093ec259d7693f002ae03d8a7118"
26
+ "gitHead": "cfcc2eb4d59e16d25ec3da37e01767b476477125"
27
27
  }
@@ -1,7 +1,9 @@
1
1
  import React from 'react';
2
2
  import { ApolloClient, InMemoryCache, ApolloProvider } from '@apollo/client';
3
3
  import { LocaleProvider } from '@oanda/mono-i18n';
4
- import { ChartError, ThemeProvider, getLocale } from '@oanda/labs-widget-common';
4
+ import {
5
+ ChartError, ThemeProvider, getLocale, renderComponent,
6
+ } from '@oanda/labs-widget-common';
5
7
  import { Main } from './Main';
6
8
  import { OrderBookWidgetConfig } from './types';
7
9
  import { translations } from '../translations';
@@ -13,6 +15,7 @@ const OrderBookWidget = ({
13
15
  theme,
14
16
  isParamError,
15
17
  division,
18
+ logoLink,
16
19
  }: OrderBookWidgetConfig) => {
17
20
  const client = new ApolloClient({
18
21
  uri: graphqlUrl,
@@ -27,7 +30,11 @@ const OrderBookWidget = ({
27
30
  <div className="lw-flex lw-h-[425px] lw-w-full lw-items-center lw-border lw-border-solid lw-border-border-primary">
28
31
  <ChartError />
29
32
  </div>
30
- ) : <Main instrument={instrument} division={division} />}
33
+ ) : renderComponent({
34
+ Component: <Main instrument={instrument} division={division} />,
35
+ logoLink,
36
+ linkArea: 'logo',
37
+ })}
31
38
  </ApolloProvider>
32
39
  </LocaleProvider>
33
40
  </ThemeProvider>
@@ -24,7 +24,9 @@ if (orderBookElements.length > 0) {
24
24
  const root = createRoot(element);
25
25
  const params = element.getAttribute('data-order-book-params');
26
26
  const mode = element.getAttribute('data-mode');
27
- const { instrument, locale, division } = JSON.parse(params as string);
27
+ const {
28
+ instrument, locale, division, logoLink,
29
+ } = JSON.parse(params as string);
28
30
 
29
31
  const isParamError = instrument ? validateToolParams({
30
32
  locale, graphqlUrl, division, instrument,
@@ -49,7 +51,9 @@ if (orderBookElements.length > 0) {
49
51
  ).includes(value.replace(/\/|_/g, ''));
50
52
  },
51
53
  },
52
- ]) : validateToolParams({ locale, graphqlUrl, division }, [
54
+ ]) : validateToolParams({
55
+ locale, graphqlUrl, division, logoLink,
56
+ }, [
53
57
  {
54
58
  name: 'locale',
55
59
  valueCheck: (value) => validateLocale(value),
@@ -58,7 +62,7 @@ if (orderBookElements.length > 0) {
58
62
  }, {
59
63
  name: 'division',
60
64
  valueCheck: (value) => Object.values(Division).includes(value),
61
- }]);
65
+ }, { name: 'logoLink' }]);
62
66
 
63
67
  root.render(
64
68
  <OrderBookWidget
@@ -68,6 +72,7 @@ if (orderBookElements.length > 0) {
68
72
  theme={mode as Theme}
69
73
  isParamError={isParamError}
70
74
  division={division}
75
+ logoLink={logoLink}
71
76
  />,
72
77
  );
73
78
  });
@@ -1,13 +1,8 @@
1
- import { Theme } from '@oanda/labs-widget-common';
2
- import { Locale } from '@oanda/mono-i18n';
1
+ import { WidgetConfig } from '@oanda/labs-widget-common';
3
2
  import { BookType, Division } from '../gql/types/graphql';
4
3
 
5
- export interface OrderBookWidgetConfig {
6
- graphqlUrl: string;
4
+ export interface OrderBookWidgetConfig extends WidgetConfig {
7
5
  instrument: InstrumentId;
8
- locale: Locale;
9
- theme?: Theme;
10
- isParamError?: boolean;
11
6
  division: Division;
12
7
  }
13
8