@oanda/labs-sentiment-widget 1.0.172 → 1.0.174

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.
Files changed (87) hide show
  1. package/CHANGELOG.md +1364 -0
  2. package/dist/main/SentimentWidget/SentimentWidget.js +18 -23
  3. package/dist/main/SentimentWidget/SentimentWidget.js.map +1 -1
  4. package/dist/main/SentimentWidget/Tool.js +18 -18
  5. package/dist/main/SentimentWidget/Tool.js.map +1 -1
  6. package/dist/main/SentimentWidget/Widget.js +15 -17
  7. package/dist/main/SentimentWidget/Widget.js.map +1 -1
  8. package/dist/main/SentimentWidget/components/SortSwitch/SortSwitch.js +14 -16
  9. package/dist/main/SentimentWidget/components/SortSwitch/SortSwitch.js.map +1 -1
  10. package/dist/main/SentimentWidget/render.js +9 -9
  11. package/dist/main/SentimentWidget/render.js.map +1 -1
  12. package/dist/main/SentimentWidget/types.js.map +1 -1
  13. package/dist/main/SentimentWidget/utils.js.map +1 -1
  14. package/dist/main/gql/getInstrumentSentiment.js +2 -8
  15. package/dist/main/gql/getInstrumentSentiment.js.map +1 -1
  16. package/dist/main/gql/getSentimentList.js +2 -6
  17. package/dist/main/gql/getSentimentList.js.map +1 -1
  18. package/dist/main/gql/types/fragment-masking.js.map +1 -1
  19. package/dist/main/gql/types/gql.js +2 -2
  20. package/dist/main/gql/types/gql.js.map +1 -1
  21. package/dist/main/gql/types/graphql.js +154 -154
  22. package/dist/main/gql/types/graphql.js.map +1 -1
  23. package/dist/main/gql/types/index.js.map +1 -1
  24. package/dist/main/index.js +8 -8
  25. package/dist/main/index.js.map +1 -1
  26. package/dist/main/translations/index.js +1 -1
  27. package/dist/main/translations/index.js.map +1 -1
  28. package/dist/main/translations/translations.js.map +1 -1
  29. package/dist/module/SentimentWidget/SentimentWidget.js +19 -24
  30. package/dist/module/SentimentWidget/SentimentWidget.js.map +1 -1
  31. package/dist/module/SentimentWidget/Tool.js +17 -17
  32. package/dist/module/SentimentWidget/Tool.js.map +1 -1
  33. package/dist/module/SentimentWidget/Widget.js +16 -16
  34. package/dist/module/SentimentWidget/Widget.js.map +1 -1
  35. package/dist/module/SentimentWidget/components/SortSwitch/SortSwitch.js +14 -14
  36. package/dist/module/SentimentWidget/components/SortSwitch/SortSwitch.js.map +1 -1
  37. package/dist/module/SentimentWidget/render.js +9 -9
  38. package/dist/module/SentimentWidget/render.js.map +1 -1
  39. package/dist/module/SentimentWidget/types.js.map +1 -1
  40. package/dist/module/SentimentWidget/utils.js.map +1 -1
  41. package/dist/module/gql/getInstrumentSentiment.js +2 -8
  42. package/dist/module/gql/getInstrumentSentiment.js.map +1 -1
  43. package/dist/module/gql/getSentimentList.js +2 -6
  44. package/dist/module/gql/getSentimentList.js.map +1 -1
  45. package/dist/module/gql/types/fragment-masking.js.map +1 -1
  46. package/dist/module/gql/types/gql.js +2 -2
  47. package/dist/module/gql/types/gql.js.map +1 -1
  48. package/dist/module/gql/types/graphql.js +154 -154
  49. package/dist/module/gql/types/graphql.js.map +1 -1
  50. package/dist/module/gql/types/index.js +2 -2
  51. package/dist/module/gql/types/index.js.map +1 -1
  52. package/dist/module/index.js +1 -1
  53. package/dist/module/index.js.map +1 -1
  54. package/dist/module/translations/index.js +1 -1
  55. package/dist/module/translations/index.js.map +1 -1
  56. package/dist/module/translations/translations.js.map +1 -1
  57. package/dist/types/SentimentWidget/SentimentWidget.d.ts +1 -1
  58. package/dist/types/SentimentWidget/Tool.d.ts +1 -1
  59. package/dist/types/SentimentWidget/Widget.d.ts +1 -1
  60. package/dist/types/SentimentWidget/components/SortSwitch/SortSwitch.d.ts +2 -2
  61. package/dist/types/SentimentWidget/types.d.ts +2 -2
  62. package/dist/types/SentimentWidget/utils.d.ts +2 -1
  63. package/dist/types/gql/types/gql.d.ts +4 -4
  64. package/dist/types/gql/types/index.d.ts +2 -2
  65. package/dist/types/index.d.ts +1 -1
  66. package/dist/types/translations/index.d.ts +2 -2
  67. package/package.json +3 -3
  68. package/src/SentimentWidget/SentimentWidget.tsx +28 -33
  69. package/src/SentimentWidget/Tool.tsx +96 -80
  70. package/src/SentimentWidget/Widget.tsx +72 -66
  71. package/src/SentimentWidget/components/SortSwitch/SortSwitch.tsx +42 -39
  72. package/src/SentimentWidget/render.tsx +40 -28
  73. package/src/SentimentWidget/types.ts +3 -2
  74. package/src/SentimentWidget/utils.ts +12 -4
  75. package/src/gql/getInstrumentSentiment.ts +2 -8
  76. package/src/gql/getSentimentList.ts +2 -6
  77. package/src/gql/types/fragment-masking.ts +41 -21
  78. package/src/gql/types/gql.ts +12 -5
  79. package/src/gql/types/graphql.ts +225 -47
  80. package/src/gql/types/index.ts +2 -2
  81. package/src/index.ts +1 -1
  82. package/src/translations/index.ts +4 -4
  83. package/src/translations/translations.ts +2 -1
  84. package/test/SortSwitch.test.tsx +36 -23
  85. package/test/Tool.test.tsx +13 -11
  86. package/test/Widget.test.tsx +31 -26
  87. package/test/sortData.test.ts +49 -13
@@ -6,9 +6,9 @@ Object.defineProperty(exports, "__esModule", {
6
6
  exports.translations = void 0;
7
7
  var _monoI18n = require("@oanda/mono-i18n");
8
8
  var _en = _interopRequireDefault(require("./sources/en.json"));
9
- var _zh_TW = _interopRequireDefault(require("./sources/zh_TW.json"));
10
9
  var _es = _interopRequireDefault(require("./sources/es.json"));
11
10
  var _th = _interopRequireDefault(require("./sources/th.json"));
11
+ var _zh_TW = _interopRequireDefault(require("./sources/zh_TW.json"));
12
12
  function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
13
13
  const translations = exports.translations = {
14
14
  [_monoI18n.Locale.en]: {
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["_monoI18n","require","_en","_interopRequireDefault","_zh_TW","_es","_th","e","__esModule","default","translations","exports","Locale","en","translation","zhTW","es","th"],"sources":["../../../src/translations/index.ts"],"sourcesContent":["import { Locale, Translations } from '@oanda/mono-i18n';\n\nimport en from './sources/en.json';\nimport zhTW from './sources/zh_TW.json';\nimport es from './sources/es.json';\nimport th from './sources/th.json';\n\nimport { defaultTranslations } from './translations';\n\nexport type TranslationKey = keyof typeof defaultTranslations;\n\nexport const translations: Translations = {\n [Locale.en]: { translation: en },\n [Locale.zhTW]: { translation: zhTW },\n [Locale.es]: { translation: es },\n [Locale.th]: { translation: th },\n};\n"],"mappings":";;;;;;AAAA,IAAAA,SAAA,GAAAC,OAAA;AAEA,IAAAC,GAAA,GAAAC,sBAAA,CAAAF,OAAA;AACA,IAAAG,MAAA,GAAAD,sBAAA,CAAAF,OAAA;AACA,IAAAI,GAAA,GAAAF,sBAAA,CAAAF,OAAA;AACA,IAAAK,GAAA,GAAAH,sBAAA,CAAAF,OAAA;AAAmC,SAAAE,uBAAAI,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAM5B,MAAMG,YAA0B,GAAAC,OAAA,CAAAD,YAAA,GAAG;EACxC,CAACE,gBAAM,CAACC,EAAE,GAAG;IAAEC,WAAW,EAAED;EAAG,CAAC;EAChC,CAACD,gBAAM,CAACG,IAAI,GAAG;IAAED,WAAW,EAAEC;EAAK,CAAC;EACpC,CAACH,gBAAM,CAACI,EAAE,GAAG;IAAEF,WAAW,EAAEE;EAAG,CAAC;EAChC,CAACJ,gBAAM,CAACK,EAAE,GAAG;IAAEH,WAAW,EAAEG;EAAG;AACjC,CAAC","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["_monoI18n","require","_en","_interopRequireDefault","_es","_th","_zh_TW","e","__esModule","default","translations","exports","Locale","en","translation","zhTW","es","th"],"sources":["../../../src/translations/index.ts"],"sourcesContent":["import type { Translations } from '@oanda/mono-i18n';\nimport { Locale } from '@oanda/mono-i18n';\n\nimport en from './sources/en.json';\nimport es from './sources/es.json';\nimport th from './sources/th.json';\nimport zhTW from './sources/zh_TW.json';\nimport type { defaultTranslations } from './translations';\n\nexport type TranslationKey = keyof typeof defaultTranslations;\n\nexport const translations: Translations = {\n [Locale.en]: { translation: en },\n [Locale.zhTW]: { translation: zhTW },\n [Locale.es]: { translation: es },\n [Locale.th]: { translation: th },\n};\n"],"mappings":";;;;;;AACA,IAAAA,SAAA,GAAAC,OAAA;AAEA,IAAAC,GAAA,GAAAC,sBAAA,CAAAF,OAAA;AACA,IAAAG,GAAA,GAAAD,sBAAA,CAAAF,OAAA;AACA,IAAAI,GAAA,GAAAF,sBAAA,CAAAF,OAAA;AACA,IAAAK,MAAA,GAAAH,sBAAA,CAAAF,OAAA;AAAwC,SAAAE,uBAAAI,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAKjC,MAAMG,YAA0B,GAAAC,OAAA,CAAAD,YAAA,GAAG;EACxC,CAACE,gBAAM,CAACC,EAAE,GAAG;IAAEC,WAAW,EAAED;EAAG,CAAC;EAChC,CAACD,gBAAM,CAACG,IAAI,GAAG;IAAED,WAAW,EAAEC;EAAK,CAAC;EACpC,CAACH,gBAAM,CAACI,EAAE,GAAG;IAAEF,WAAW,EAAEE;EAAG,CAAC;EAChC,CAACJ,gBAAM,CAACK,EAAE,GAAG;IAAEH,WAAW,EAAEG;EAAG;AACjC,CAAC","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"translations.js","names":["defaultTranslations","exports","data_unavailable","pagination_entries_range"],"sources":["../../../src/translations/translations.ts"],"sourcesContent":["export const defaultTranslations = {\n data_unavailable: 'Data unavailable',\n pagination_entries_range: '{{firstItemOnPage}}-{{lastItemOnPage}} of {{itemCount}} entries',\n};\n"],"mappings":";;;;;;AAAO,MAAMA,mBAAmB,GAAAC,OAAA,CAAAD,mBAAA,GAAG;EACjCE,gBAAgB,EAAE,kBAAkB;EACpCC,wBAAwB,EAAE;AAC5B,CAAC","ignoreList":[]}
1
+ {"version":3,"file":"translations.js","names":["defaultTranslations","exports","data_unavailable","pagination_entries_range"],"sources":["../../../src/translations/translations.ts"],"sourcesContent":["export const defaultTranslations = {\n data_unavailable: 'Data unavailable',\n pagination_entries_range:\n '{{firstItemOnPage}}-{{lastItemOnPage}} of {{itemCount}} entries',\n};\n"],"mappings":";;;;;;AAAO,MAAMA,mBAAmB,GAAAC,OAAA,CAAAD,mBAAA,GAAG;EACjCE,gBAAgB,EAAE,kBAAkB;EACpCC,wBAAwB,EACtB;AACJ,CAAC","ignoreList":[]}
@@ -1,10 +1,9 @@
1
+ import { ApolloClient, InMemoryCache } from '@apollo/client';
2
+ import { WidgetProvider, WidgetWrapper } from '@oanda/labs-widget-common';
1
3
  import React from 'react';
2
- import { ApolloClient, InMemoryCache, ApolloProvider } from '@apollo/client';
3
- import { LocaleProvider } from '@oanda/mono-i18n';
4
- import { ChartError, ThemeProvider, getLocale, renderComponent } from '@oanda/labs-widget-common';
5
- import { Widget } from './Widget';
6
- import { Tool } from './Tool';
7
4
  import { translations } from '../translations';
5
+ import { Tool } from './Tool';
6
+ import { Widget } from './Widget';
8
7
  const SentimentWidget = _ref => {
9
8
  let {
10
9
  graphqlUrl,
@@ -20,26 +19,22 @@ const SentimentWidget = _ref => {
20
19
  uri: graphqlUrl,
21
20
  cache: new InMemoryCache()
22
21
  });
23
- return React.createElement(ThemeProvider, {
24
- theme: theme
25
- }, React.createElement(LocaleProvider, {
26
- locale: getLocale(locale),
22
+ return React.createElement(WidgetProvider, {
23
+ client: client,
24
+ locale: locale,
25
+ theme: theme,
27
26
  translations: translations
28
- }, React.createElement(ApolloProvider, {
29
- client: client
30
- }, isParamError ? React.createElement("div", {
31
- className: "lw-flex lw-h-[425px] lw-w-full lw-items-center lw-border lw-border-solid lw-border-border-primary"
32
- }, React.createElement(ChartError, null)) : renderComponent({
33
- logoLink,
34
- linkArea: 'logo',
35
- Component: instrument ? React.createElement(Widget, {
36
- division: division,
37
- instrument: instrument,
38
- includeDescriptionLabels: includeDescriptionLabels
39
- }) : React.createElement(Tool, {
40
- division: division
41
- })
42
- }))));
27
+ }, React.createElement(WidgetWrapper, {
28
+ isParamError: isParamError,
29
+ linkArea: "logo",
30
+ logoLink: logoLink
31
+ }, instrument ? React.createElement(Widget, {
32
+ division: division,
33
+ includeDescriptionLabels: includeDescriptionLabels,
34
+ instrument: instrument
35
+ }) : React.createElement(Tool, {
36
+ division: division
37
+ })));
43
38
  };
44
39
  export { SentimentWidget };
45
40
  //# sourceMappingURL=SentimentWidget.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"SentimentWidget.js","names":["React","ApolloClient","InMemoryCache","ApolloProvider","LocaleProvider","ChartError","ThemeProvider","getLocale","renderComponent","Widget","Tool","translations","SentimentWidget","_ref","graphqlUrl","division","instrument","locale","theme","includeDescriptionLabels","isParamError","logoLink","client","uri","cache","createElement","className","linkArea","Component"],"sources":["../../../src/SentimentWidget/SentimentWidget.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 { Widget } from './Widget';\nimport { Tool } from './Tool';\nimport { SentimentConfig } from './types';\nimport { translations } from '../translations';\n\nconst SentimentWidget = ({\n graphqlUrl,\n division,\n instrument,\n locale,\n theme,\n includeDescriptionLabels,\n isParamError,\n logoLink,\n}: SentimentConfig) => {\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 ) : (\n renderComponent({\n logoLink,\n linkArea: 'logo',\n Component: instrument\n ? (\n <Widget\n division={division}\n instrument={instrument}\n includeDescriptionLabels={includeDescriptionLabels}\n />\n )\n : <Tool division={division} />,\n })\n )}\n </ApolloProvider>\n </LocaleProvider>\n </ThemeProvider>\n );\n};\n\nexport { SentimentWidget };\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,MAAM,QAAQ,UAAU;AACjC,SAASC,IAAI,QAAQ,QAAQ;AAE7B,SAASC,YAAY,QAAQ,iBAAiB;AAE9C,MAAMC,eAAe,GAAGC,IAAA,IASD;EAAA,IATE;IACvBC,UAAU;IACVC,QAAQ;IACRC,UAAU;IACVC,MAAM;IACNC,KAAK;IACLC,wBAAwB;IACxBC,YAAY;IACZC;EACe,CAAC,GAAAR,IAAA;EAChB,MAAMS,MAAM,GAAG,IAAIrB,YAAY,CAAC;IAC9BsB,GAAG,EAAET,UAAU;IACfU,KAAK,EAAE,IAAItB,aAAa,CAAC;EAC3B,CAAC,CAAC;EAEF,OACEF,KAAA,CAAAyB,aAAA,CAACnB,aAAa;IAACY,KAAK,EAAEA;EAAM,GAC1BlB,KAAA,CAAAyB,aAAA,CAACrB,cAAc;IAACa,MAAM,EAAEV,SAAS,CAACU,MAAM,CAAE;IAACN,YAAY,EAAEA;EAAa,GACpEX,KAAA,CAAAyB,aAAA,CAACtB,cAAc;IAACmB,MAAM,EAAEA;EAAO,GAC5BF,YAAY,GACXpB,KAAA,CAAAyB,aAAA;IAAKC,SAAS,EAAC;EAAmG,GAChH1B,KAAA,CAAAyB,aAAA,CAACpB,UAAU,MAAE,CACV,CAAC,GAENG,eAAe,CAAC;IACda,QAAQ;IACRM,QAAQ,EAAE,MAAM;IAChBC,SAAS,EAAEZ,UAAU,GAEjBhB,KAAA,CAAAyB,aAAA,CAAChB,MAAM;MACLM,QAAQ,EAAEA,QAAS;MACnBC,UAAU,EAAEA,UAAW;MACvBG,wBAAwB,EAAEA;IAAyB,CACpD,CAAC,GAEFnB,KAAA,CAAAyB,aAAA,CAACf,IAAI;MAACK,QAAQ,EAAEA;IAAS,CAAE;EACjC,CAAC,CAEW,CACF,CACH,CAAC;AAEpB,CAAC;AAED,SAASH,eAAe","ignoreList":[]}
1
+ {"version":3,"file":"SentimentWidget.js","names":["ApolloClient","InMemoryCache","WidgetProvider","WidgetWrapper","React","translations","Tool","Widget","SentimentWidget","_ref","graphqlUrl","division","instrument","locale","theme","includeDescriptionLabels","isParamError","logoLink","client","uri","cache","createElement","linkArea"],"sources":["../../../src/SentimentWidget/SentimentWidget.tsx"],"sourcesContent":["import { ApolloClient, InMemoryCache } from '@apollo/client';\nimport { WidgetProvider, WidgetWrapper } from '@oanda/labs-widget-common';\nimport React from 'react';\n\nimport { translations } from '../translations';\nimport { Tool } from './Tool';\nimport type { SentimentConfig } from './types';\nimport { Widget } from './Widget';\n\nconst SentimentWidget = ({\n graphqlUrl,\n division,\n instrument,\n locale,\n theme,\n includeDescriptionLabels,\n isParamError,\n logoLink,\n}: SentimentConfig) => {\n const client = new ApolloClient({\n uri: graphqlUrl,\n cache: new InMemoryCache(),\n });\n\n return (\n <WidgetProvider\n client={client}\n locale={locale}\n theme={theme}\n translations={translations}\n >\n <WidgetWrapper\n isParamError={isParamError}\n linkArea=\"logo\"\n logoLink={logoLink}\n >\n {instrument ? (\n <Widget\n division={division}\n includeDescriptionLabels={includeDescriptionLabels}\n instrument={instrument}\n />\n ) : (\n <Tool division={division} />\n )}\n </WidgetWrapper>\n </WidgetProvider>\n );\n};\n\nexport { SentimentWidget };\n"],"mappings":"AAAA,SAASA,YAAY,EAAEC,aAAa,QAAQ,gBAAgB;AAC5D,SAASC,cAAc,EAAEC,aAAa,QAAQ,2BAA2B;AACzE,OAAOC,KAAK,MAAM,OAAO;AAEzB,SAASC,YAAY,QAAQ,iBAAiB;AAC9C,SAASC,IAAI,QAAQ,QAAQ;AAE7B,SAASC,MAAM,QAAQ,UAAU;AAEjC,MAAMC,eAAe,GAAGC,IAAA,IASD;EAAA,IATE;IACvBC,UAAU;IACVC,QAAQ;IACRC,UAAU;IACVC,MAAM;IACNC,KAAK;IACLC,wBAAwB;IACxBC,YAAY;IACZC;EACe,CAAC,GAAAR,IAAA;EAChB,MAAMS,MAAM,GAAG,IAAIlB,YAAY,CAAC;IAC9BmB,GAAG,EAAET,UAAU;IACfU,KAAK,EAAE,IAAInB,aAAa,CAAC;EAC3B,CAAC,CAAC;EAEF,OACEG,KAAA,CAAAiB,aAAA,CAACnB,cAAc;IACbgB,MAAM,EAAEA,MAAO;IACfL,MAAM,EAAEA,MAAO;IACfC,KAAK,EAAEA,KAAM;IACbT,YAAY,EAAEA;EAAa,GAE3BD,KAAA,CAAAiB,aAAA,CAAClB,aAAa;IACZa,YAAY,EAAEA,YAAa;IAC3BM,QAAQ,EAAC,MAAM;IACfL,QAAQ,EAAEA;EAAS,GAElBL,UAAU,GACTR,KAAA,CAAAiB,aAAA,CAACd,MAAM;IACLI,QAAQ,EAAEA,QAAS;IACnBI,wBAAwB,EAAEA,wBAAyB;IACnDH,UAAU,EAAEA;EAAW,CACxB,CAAC,GAEFR,KAAA,CAAAiB,aAAA,CAACf,IAAI;IAACK,QAAQ,EAAEA;EAAS,CAAE,CAEhB,CACD,CAAC;AAErB,CAAC;AAED,SAASH,eAAe","ignoreList":[]}
@@ -1,20 +1,20 @@
1
- import React, { useEffect, useState, useContext } from 'react';
2
- import classNames from 'classnames';
3
- import { Sentiment, SentimentHeight, Loader, LoaderSize, ChartError, Truncate, Tooltip, ThemeContext, Size, EMPTY_VALUE, LastUpdated } from '@oanda/labs-widget-common';
4
1
  import { useQuery } from '@apollo/client';
2
+ import { ChartError, EMPTY_VALUE, LastUpdated, Loader, LoaderSize, Sentiment, SentimentHeight, Size, Tooltip, Truncate, useLayoutProvider } from '@oanda/labs-widget-common';
5
3
  import { useLocale } from '@oanda/mono-i18n';
4
+ import classNames from 'classnames';
5
+ import React, { useEffect, useState } from 'react';
6
+ import { INSTRUMENT_TOOLTIP_ID } from '../constant';
6
7
  import { getSentimentList } from '../gql/getSentimentList';
7
- import { sortData } from './utils';
8
- import { SelectedArrow, SortSwitch } from './components/SortSwitch';
9
8
  import { Sort } from '../gql/types/graphql';
10
- import { INSTRUMENT_TOOLTIP_ID } from '../constant';
9
+ import { SelectedArrow, SortSwitch } from './components/SortSwitch';
10
+ import { sortData } from './utils';
11
11
  const Tool = _ref => {
12
12
  let {
13
13
  division
14
14
  } = _ref;
15
15
  const {
16
16
  size
17
- } = useContext(ThemeContext);
17
+ } = useLayoutProvider();
18
18
  const isDesktop = size === Size.DESKTOP;
19
19
  const [sort, setSort] = useState(Sort.Bullish);
20
20
  const [sortedData, setSortedData] = useState(new Array(20).fill({}));
@@ -39,8 +39,8 @@ const Tool = _ref => {
39
39
  }
40
40
  }, [data, sort]);
41
41
  return React.createElement(React.Fragment, null, size && React.createElement("div", {
42
- "data-testid": "sentiment-tool",
43
- className: "lw-relative lw-bg-bg-primary lw-text-sm lw-tracking-normal lw-text-text-primary"
42
+ className: "lw-relative lw-bg-bg-primary lw-text-sm lw-tracking-normal lw-text-text-primary",
43
+ "data-testid": "sentiment-tool"
44
44
  }, error || sortedData.length === 0 ? React.createElement("div", {
45
45
  className: "lw-flex lw-h-[200px] lw-items-center lw-justify-center lw-border lw-border-solid lw-border-border-primary lw-p-2"
46
46
  }, React.createElement(ChartError, null)) : React.createElement(React.Fragment, null, React.createElement("div", {
@@ -64,28 +64,28 @@ const Tool = _ref => {
64
64
  'lw-mr-10': isDesktop
65
65
  })
66
66
  }, lang('net_long'))), sortedData.map((item, index) => React.createElement("div", {
67
- className: "lw-flex lw-h-8 lw-w-full lw-items-center",
68
- key: item.name || index
67
+ key: item.name || index,
68
+ className: "lw-flex lw-h-8 lw-w-full lw-items-center"
69
69
  }, React.createElement("div", {
70
70
  className: "lw-w-[120px] lw-shrink-0"
71
71
  }, loading ? React.createElement(Loader, {
72
72
  size: LoaderSize.md
73
73
  }) : React.createElement(Truncate, {
74
- maxWidth: 120,
75
- tooltipId: INSTRUMENT_TOOLTIP_ID,
76
74
  className: "lw-pr-2 lw-font-sans lw-text-sm lw-font-bold",
77
- text: item.displayName || '\u2014'
75
+ maxWidth: 120,
76
+ text: item.displayName || '\u2014',
77
+ tooltipId: INSTRUMENT_TOOLTIP_ID
78
78
  })), React.createElement(Sentiment, {
79
- isLoading: loading,
80
79
  height: SentimentHeight.md,
80
+ isLoading: loading,
81
81
  sentiment: item.sentiment
82
82
  }))))), React.createElement(Tooltip, {
83
83
  id: INSTRUMENT_TOOLTIP_ID
84
84
  }), !error && React.createElement("div", {
85
85
  className: "lw-mt-2 lw-h-8"
86
86
  }, React.createElement(LastUpdated, {
87
- timestamp: updatedTimestamp,
88
- labelCallback: lang
87
+ labelCallback: lang,
88
+ timestamp: updatedTimestamp
89
89
  }))));
90
90
  };
91
91
  export { Tool };
@@ -1 +1 @@
1
- {"version":3,"file":"Tool.js","names":["React","useEffect","useState","useContext","classNames","Sentiment","SentimentHeight","Loader","LoaderSize","ChartError","Truncate","Tooltip","ThemeContext","Size","EMPTY_VALUE","LastUpdated","useQuery","useLocale","getSentimentList","sortData","SelectedArrow","SortSwitch","Sort","INSTRUMENT_TOOLTIP_ID","Tool","_ref","division","size","isDesktop","DESKTOP","sort","setSort","Bullish","sortedData","setSortedData","Array","fill","loading","data","error","variables","fetchPolicy","lang","updatedTimestamp","setUpdatedTimestamp","sentimentList","updatedAt","createElement","Fragment","className","length","disabled","selected","UP","DOWN","onClickButtonDown","Bearish","onClickButtonUp","map","item","index","key","name","md","maxWidth","tooltipId","text","displayName","isLoading","height","sentiment","id","timestamp","labelCallback"],"sources":["../../../src/SentimentWidget/Tool.tsx"],"sourcesContent":["import React, { useEffect, useState, useContext } from 'react';\nimport classNames from 'classnames';\nimport {\n Sentiment,\n SentimentHeight,\n Loader,\n LoaderSize,\n ChartError,\n Truncate,\n Tooltip,\n ThemeContext,\n Size,\n EMPTY_VALUE,\n LastUpdated,\n} from '@oanda/labs-widget-common';\nimport { useQuery } from '@apollo/client';\nimport { useLocale } from '@oanda/mono-i18n';\nimport { getSentimentList } from '../gql/getSentimentList';\nimport { SentimentToolConfig } from './types';\nimport { sortData } from './utils';\nimport { SelectedArrow, SortSwitch } from './components/SortSwitch';\nimport {\n GetSentimentListQuery, GetSentimentListQueryVariables, SentimentInstrument, Sort,\n} from '../gql/types/graphql';\nimport { INSTRUMENT_TOOLTIP_ID } from '../constant';\n\nconst Tool = ({ division }: SentimentToolConfig) => {\n const { size } = useContext(ThemeContext);\n const isDesktop = size === Size.DESKTOP;\n const [sort, setSort] = useState(Sort.Bullish);\n const [sortedData, setSortedData] = useState<Omit<SentimentInstrument, 'id'>[]>(new Array(20).fill({}));\n const { loading, data, error } = useQuery<\n GetSentimentListQuery,\n GetSentimentListQueryVariables\n >(getSentimentList, {\n variables: {\n division,\n },\n fetchPolicy: 'cache-and-network',\n });\n\n const { lang } = useLocale();\n const [updatedTimestamp, setUpdatedTimestamp] = useState(EMPTY_VALUE);\n\n useEffect(() => {\n if (data) {\n setSortedData(sortData(data, sort));\n setUpdatedTimestamp(data.sentimentList![0]?.updatedAt);\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [data, sort]);\n\n return (\n <>\n {size && (\n <div data-testid=\"sentiment-tool\" className=\"lw-relative lw-bg-bg-primary lw-text-sm lw-tracking-normal lw-text-text-primary\">\n {error || sortedData.length === 0 ? (\n <div className=\"lw-flex lw-h-[200px] lw-items-center lw-justify-center lw-border lw-border-solid lw-border-border-primary lw-p-2\">\n <ChartError />\n </div>\n ) : (\n <>\n <div className=\"lw-flex lw-justify-end lw-pb-5\">\n <SortSwitch\n disabled={loading}\n selected={sort === Sort.Bullish ? SelectedArrow.UP : SelectedArrow.DOWN}\n onClickButtonDown={() => setSort(Sort.Bearish)}\n onClickButtonUp={() => setSort(Sort.Bullish)}\n />\n </div>\n <div className=\"lw-flex lw-flex-col lw-border lw-border-solid lw-border-border-primary lw-p-2\">\n <div className=\"lw-mb-2 lw-flex lw-justify-between lw-font-semibold\">\n <span className={classNames('lw-uppercase', {\n 'lw-ml-40': isDesktop,\n 'lw-ml-[7.5rem]': !isDesktop,\n })}\n >\n {lang('net_short')}\n </span>\n <span className={classNames('lw-text-right lw-uppercase', {\n 'lw-mr-10': isDesktop,\n })}\n >\n {lang('net_long')}\n </span>\n </div>\n {sortedData.map((item, index) => (\n <div className=\"lw-flex lw-h-8 lw-w-full lw-items-center\" key={item.name || index}>\n <div className=\"lw-w-[120px] lw-shrink-0\">\n {loading ? (\n <Loader size={LoaderSize.md} />\n ) : (\n <Truncate\n maxWidth={120}\n tooltipId={INSTRUMENT_TOOLTIP_ID}\n className=\"lw-pr-2 lw-font-sans lw-text-sm lw-font-bold\"\n text={item.displayName || '\\u2014'}\n />\n )}\n </div>\n <Sentiment\n isLoading={loading}\n height={SentimentHeight.md}\n sentiment={item.sentiment}\n />\n </div>\n ))}\n </div>\n </>\n )}\n <Tooltip id={INSTRUMENT_TOOLTIP_ID} />\n {!error\n && (\n <div className=\"lw-mt-2 lw-h-8\">\n <LastUpdated timestamp={updatedTimestamp} labelCallback={lang} />\n </div>\n )}\n </div>\n )}\n </>\n );\n};\n\nexport { Tool };\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"Tool.js","names":["useQuery","ChartError","EMPTY_VALUE","LastUpdated","Loader","LoaderSize","Sentiment","SentimentHeight","Size","Tooltip","Truncate","useLayoutProvider","useLocale","classNames","React","useEffect","useState","INSTRUMENT_TOOLTIP_ID","getSentimentList","Sort","SelectedArrow","SortSwitch","sortData","Tool","_ref","division","size","isDesktop","DESKTOP","sort","setSort","Bullish","sortedData","setSortedData","Array","fill","loading","data","error","variables","fetchPolicy","lang","updatedTimestamp","setUpdatedTimestamp","sentimentList","updatedAt","createElement","Fragment","className","length","disabled","selected","UP","DOWN","onClickButtonDown","Bearish","onClickButtonUp","map","item","index","key","name","md","maxWidth","text","displayName","tooltipId","height","isLoading","sentiment","id","labelCallback","timestamp"],"sources":["../../../src/SentimentWidget/Tool.tsx"],"sourcesContent":["import { useQuery } from '@apollo/client';\nimport {\n ChartError,\n EMPTY_VALUE,\n LastUpdated,\n Loader,\n LoaderSize,\n Sentiment,\n SentimentHeight,\n Size,\n Tooltip,\n Truncate,\n useLayoutProvider,\n} from '@oanda/labs-widget-common';\nimport { useLocale } from '@oanda/mono-i18n';\nimport classNames from 'classnames';\nimport React, { useEffect, useState } from 'react';\n\nimport { INSTRUMENT_TOOLTIP_ID } from '../constant';\nimport { getSentimentList } from '../gql/getSentimentList';\nimport type {\n GetSentimentListQuery,\n GetSentimentListQueryVariables,\n SentimentInstrument,\n} from '../gql/types/graphql';\nimport { Sort } from '../gql/types/graphql';\nimport { SelectedArrow, SortSwitch } from './components/SortSwitch';\nimport type { SentimentToolConfig } from './types';\nimport { sortData } from './utils';\n\nconst Tool = ({ division }: SentimentToolConfig) => {\n const { size } = useLayoutProvider();\n const isDesktop = size === Size.DESKTOP;\n const [sort, setSort] = useState(Sort.Bullish);\n const [sortedData, setSortedData] = useState<\n Omit<SentimentInstrument, 'id'>[]\n >(new Array(20).fill({}));\n const { loading, data, error } = useQuery<\n GetSentimentListQuery,\n GetSentimentListQueryVariables\n >(getSentimentList, {\n variables: {\n division,\n },\n fetchPolicy: 'cache-and-network',\n });\n\n const { lang } = useLocale();\n const [updatedTimestamp, setUpdatedTimestamp] = useState(EMPTY_VALUE);\n\n useEffect(() => {\n if (data) {\n setSortedData(sortData(data, sort));\n setUpdatedTimestamp(data.sentimentList![0]?.updatedAt);\n }\n }, [data, sort]);\n\n return (\n <>\n {size && (\n <div\n className=\"lw-relative lw-bg-bg-primary lw-text-sm lw-tracking-normal lw-text-text-primary\"\n data-testid=\"sentiment-tool\"\n >\n {error || sortedData.length === 0 ? (\n <div className=\"lw-flex lw-h-[200px] lw-items-center lw-justify-center lw-border lw-border-solid lw-border-border-primary lw-p-2\">\n <ChartError />\n </div>\n ) : (\n <>\n <div className=\"lw-flex lw-justify-end lw-pb-5\">\n <SortSwitch\n disabled={loading}\n selected={\n sort === Sort.Bullish\n ? SelectedArrow.UP\n : SelectedArrow.DOWN\n }\n onClickButtonDown={() => setSort(Sort.Bearish)}\n onClickButtonUp={() => setSort(Sort.Bullish)}\n />\n </div>\n <div className=\"lw-flex lw-flex-col lw-border lw-border-solid lw-border-border-primary lw-p-2\">\n <div className=\"lw-mb-2 lw-flex lw-justify-between lw-font-semibold\">\n <span\n className={classNames('lw-uppercase', {\n 'lw-ml-40': isDesktop,\n 'lw-ml-[7.5rem]': !isDesktop,\n })}\n >\n {lang('net_short')}\n </span>\n <span\n className={classNames('lw-text-right lw-uppercase', {\n 'lw-mr-10': isDesktop,\n })}\n >\n {lang('net_long')}\n </span>\n </div>\n {sortedData.map((item, index) => (\n <div\n key={item.name || index}\n className=\"lw-flex lw-h-8 lw-w-full lw-items-center\"\n >\n <div className=\"lw-w-[120px] lw-shrink-0\">\n {loading ? (\n <Loader size={LoaderSize.md} />\n ) : (\n <Truncate\n className=\"lw-pr-2 lw-font-sans lw-text-sm lw-font-bold\"\n maxWidth={120}\n text={item.displayName || '\\u2014'}\n tooltipId={INSTRUMENT_TOOLTIP_ID}\n />\n )}\n </div>\n <Sentiment\n height={SentimentHeight.md}\n isLoading={loading}\n sentiment={item.sentiment}\n />\n </div>\n ))}\n </div>\n </>\n )}\n <Tooltip id={INSTRUMENT_TOOLTIP_ID} />\n {!error && (\n <div className=\"lw-mt-2 lw-h-8\">\n <LastUpdated labelCallback={lang} timestamp={updatedTimestamp} />\n </div>\n )}\n </div>\n )}\n </>\n );\n};\n\nexport { Tool };\n"],"mappings":"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","ignoreList":[]}
@@ -1,10 +1,10 @@
1
- import React, { useContext } from 'react';
2
- import classNames from 'classnames';
3
- import { Sentiment, SentimentHeight, Error, Loader, LoaderSize, Truncate, ThemeContext, Size, LastUpdated } from '@oanda/labs-widget-common';
4
- import { useLocale } from '@oanda/mono-i18n';
5
1
  import { useQuery } from '@apollo/client';
6
- import { getInstrumentSentiment } from '../gql/getInstrumentSentiment';
2
+ import { Error, LastUpdated, Loader, LoaderSize, Sentiment, SentimentHeight, Size, Truncate, useLayoutProvider } from '@oanda/labs-widget-common';
3
+ import { useLocale } from '@oanda/mono-i18n';
4
+ import classNames from 'classnames';
5
+ import React from 'react';
7
6
  import { INSTRUMENT_TOOLTIP_ID } from '../constant';
7
+ import { getInstrumentSentiment } from '../gql/getInstrumentSentiment';
8
8
  const Widget = _ref => {
9
9
  let {
10
10
  instrument,
@@ -24,7 +24,7 @@ const Widget = _ref => {
24
24
  });
25
25
  const {
26
26
  size
27
- } = useContext(ThemeContext);
27
+ } = useLayoutProvider();
28
28
  const isDesktop = size === Size.DESKTOP;
29
29
  const {
30
30
  lang
@@ -36,8 +36,8 @@ const Widget = _ref => {
36
36
  } = data?.sentiment?.[0] || {};
37
37
  const isError = error || sentiment?.shortPercent === 0 && sentiment?.longPercent === 0 || sentiment?.shortPercent === undefined || sentiment?.longPercent === undefined;
38
38
  return React.createElement(React.Fragment, null, size && React.createElement(React.Fragment, null, React.createElement("div", {
39
- "data-testid": "sentiment-widget",
40
- className: "lw-border lw-border-solid lw-border-border-primary lw-bg-bg-primary lw-p-4 lw-text-sm lw-tracking-normal lw-text-text-primary"
39
+ className: "lw-border lw-border-solid lw-border-border-primary lw-bg-bg-primary lw-p-4 lw-text-sm lw-tracking-normal lw-text-text-primary",
40
+ "data-testid": "sentiment-widget"
41
41
  }, includeDescriptionLabels && !isError && React.createElement("div", {
42
42
  className: "lw-mb-2 lw-flex lw-justify-between lw-font-semibold"
43
43
  }, React.createElement("span", {
@@ -56,20 +56,20 @@ const Widget = _ref => {
56
56
  }, loading && React.createElement(Loader, {
57
57
  size: LoaderSize.md
58
58
  }), !loading && !isError && React.createElement(Truncate, {
59
- maxWidth: 120,
60
- tooltipId: INSTRUMENT_TOOLTIP_ID,
61
59
  className: "lw-pr-2 lw-font-sans lw-text-sm lw-font-bold",
62
- text: displayName || '\u2014'
60
+ maxWidth: 120,
61
+ text: displayName || '\u2014',
62
+ tooltipId: INSTRUMENT_TOOLTIP_ID
63
63
  })), React.createElement(Sentiment, {
64
- withError: false,
65
- isLoading: loading,
66
64
  height: SentimentHeight.md,
67
- sentiment: sentiment
65
+ isLoading: loading,
66
+ sentiment: sentiment,
67
+ withError: false
68
68
  })), !loading && isError && React.createElement(Error, null)), !isError && updatedAt && React.createElement("div", {
69
69
  className: "lw-mt-2 lw-h-8"
70
70
  }, React.createElement(LastUpdated, {
71
- timestamp: updatedAt,
72
- labelCallback: lang
71
+ labelCallback: lang,
72
+ timestamp: updatedAt
73
73
  }))));
74
74
  };
75
75
  export { Widget };
@@ -1 +1 @@
1
- {"version":3,"file":"Widget.js","names":["React","useContext","classNames","Sentiment","SentimentHeight","Error","Loader","LoaderSize","Truncate","ThemeContext","Size","LastUpdated","useLocale","useQuery","getInstrumentSentiment","INSTRUMENT_TOOLTIP_ID","Widget","_ref","instrument","division","includeDescriptionLabels","loading","data","error","variables","name","fetchPolicy","size","isDesktop","DESKTOP","lang","displayName","sentiment","updatedAt","isError","shortPercent","longPercent","undefined","createElement","Fragment","className","md","maxWidth","tooltipId","text","withError","isLoading","height","timestamp","labelCallback"],"sources":["../../../src/SentimentWidget/Widget.tsx"],"sourcesContent":["import React, { useContext } from 'react';\nimport classNames from 'classnames';\nimport {\n Sentiment,\n SentimentHeight,\n Error,\n Loader,\n LoaderSize,\n Truncate,\n ThemeContext,\n Size,\n LastUpdated,\n} from '@oanda/labs-widget-common';\nimport { useLocale } from '@oanda/mono-i18n';\nimport { useQuery } from '@apollo/client';\nimport { getInstrumentSentiment } from '../gql/getInstrumentSentiment';\nimport { SentimentWidgetConfig } from './types';\nimport { GetInstrumentSentimentQuery, GetInstrumentSentimentQueryVariables } from '../gql/types/graphql';\nimport { INSTRUMENT_TOOLTIP_ID } from '../constant';\n\nconst Widget = ({\n instrument,\n division,\n includeDescriptionLabels = false,\n}: SentimentWidgetConfig) => {\n const { loading, data, error } = useQuery<\n GetInstrumentSentimentQuery,\n GetInstrumentSentimentQueryVariables\n >(getInstrumentSentiment, {\n variables: {\n name: instrument,\n division,\n },\n fetchPolicy: 'cache-and-network',\n });\n const { size } = useContext(ThemeContext);\n const isDesktop = size === Size.DESKTOP;\n const { lang } = useLocale();\n\n const { displayName, sentiment, updatedAt } = data?.sentiment?.[0] || {};\n\n const isError = error\n || (sentiment?.shortPercent === 0 && sentiment?.longPercent === 0)\n || sentiment?.shortPercent === undefined\n || sentiment?.longPercent === undefined;\n\n return (\n <>\n {size && (\n <>\n <div\n data-testid=\"sentiment-widget\"\n className=\"lw-border lw-border-solid lw-border-border-primary lw-bg-bg-primary lw-p-4 lw-text-sm lw-tracking-normal lw-text-text-primary\"\n >\n {includeDescriptionLabels && !isError\n && (\n <div className=\"lw-mb-2 lw-flex lw-justify-between lw-font-semibold\">\n <span className={classNames('lw-uppercase', {\n 'lw-ml-40': isDesktop,\n 'lw-ml-[7.5rem]': !isDesktop,\n })}\n >\n {lang('net_short')}\n </span>\n <span className={classNames('lw-text-right lw-uppercase', {\n 'lw-mr-10': isDesktop,\n })}\n >\n {lang('net_long')}\n </span>\n </div>\n )}\n <div className=\"lw-flex lw-items-center lw-justify-between\">\n <div className=\"lw-w-[120px] lw-shrink-0\">\n {loading && <Loader size={LoaderSize.md} />}\n {!loading && !isError && (\n <Truncate\n maxWidth={120}\n tooltipId={INSTRUMENT_TOOLTIP_ID}\n className=\"lw-pr-2 lw-font-sans lw-text-sm lw-font-bold\"\n text={displayName || '\\u2014'}\n />\n )}\n </div>\n <Sentiment\n withError={false}\n isLoading={loading}\n height={SentimentHeight.md}\n sentiment={sentiment}\n />\n </div>\n\n {!loading && isError && <Error />}\n </div>\n {!isError && updatedAt && (\n <div className=\"lw-mt-2 lw-h-8\">\n <LastUpdated timestamp={updatedAt} labelCallback={lang} />\n </div>\n )}\n </>\n )}\n </>\n );\n};\n\nexport { Widget };\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"Widget.js","names":["useQuery","Error","LastUpdated","Loader","LoaderSize","Sentiment","SentimentHeight","Size","Truncate","useLayoutProvider","useLocale","classNames","React","INSTRUMENT_TOOLTIP_ID","getInstrumentSentiment","Widget","_ref","instrument","division","includeDescriptionLabels","loading","data","error","variables","name","fetchPolicy","size","isDesktop","DESKTOP","lang","displayName","sentiment","updatedAt","isError","shortPercent","longPercent","undefined","createElement","Fragment","className","md","maxWidth","text","tooltipId","height","isLoading","withError","labelCallback","timestamp"],"sources":["../../../src/SentimentWidget/Widget.tsx"],"sourcesContent":["import { useQuery } from '@apollo/client';\nimport {\n Error,\n LastUpdated,\n Loader,\n LoaderSize,\n Sentiment,\n SentimentHeight,\n Size,\n Truncate,\n useLayoutProvider,\n} from '@oanda/labs-widget-common';\nimport { useLocale } from '@oanda/mono-i18n';\nimport classNames from 'classnames';\nimport React from 'react';\n\nimport { INSTRUMENT_TOOLTIP_ID } from '../constant';\nimport { getInstrumentSentiment } from '../gql/getInstrumentSentiment';\nimport type {\n GetInstrumentSentimentQuery,\n GetInstrumentSentimentQueryVariables,\n} from '../gql/types/graphql';\nimport type { SentimentWidgetConfig } from './types';\n\nconst Widget = ({\n instrument,\n division,\n includeDescriptionLabels = false,\n}: SentimentWidgetConfig) => {\n const { loading, data, error } = useQuery<\n GetInstrumentSentimentQuery,\n GetInstrumentSentimentQueryVariables\n >(getInstrumentSentiment, {\n variables: {\n name: instrument,\n division,\n },\n fetchPolicy: 'cache-and-network',\n });\n const { size } = useLayoutProvider();\n const isDesktop = size === Size.DESKTOP;\n const { lang } = useLocale();\n\n const { displayName, sentiment, updatedAt } = data?.sentiment?.[0] || {};\n\n const isError =\n error ||\n (sentiment?.shortPercent === 0 && sentiment?.longPercent === 0) ||\n sentiment?.shortPercent === undefined ||\n sentiment?.longPercent === undefined;\n\n return (\n <>\n {size && (\n <>\n <div\n className=\"lw-border lw-border-solid lw-border-border-primary lw-bg-bg-primary lw-p-4 lw-text-sm lw-tracking-normal lw-text-text-primary\"\n data-testid=\"sentiment-widget\"\n >\n {includeDescriptionLabels && !isError && (\n <div className=\"lw-mb-2 lw-flex lw-justify-between lw-font-semibold\">\n <span\n className={classNames('lw-uppercase', {\n 'lw-ml-40': isDesktop,\n 'lw-ml-[7.5rem]': !isDesktop,\n })}\n >\n {lang('net_short')}\n </span>\n <span\n className={classNames('lw-text-right lw-uppercase', {\n 'lw-mr-10': isDesktop,\n })}\n >\n {lang('net_long')}\n </span>\n </div>\n )}\n <div className=\"lw-flex lw-items-center lw-justify-between\">\n <div className=\"lw-w-[120px] lw-shrink-0\">\n {loading && <Loader size={LoaderSize.md} />}\n {!loading && !isError && (\n <Truncate\n className=\"lw-pr-2 lw-font-sans lw-text-sm lw-font-bold\"\n maxWidth={120}\n text={displayName || '\\u2014'}\n tooltipId={INSTRUMENT_TOOLTIP_ID}\n />\n )}\n </div>\n <Sentiment\n height={SentimentHeight.md}\n isLoading={loading}\n sentiment={sentiment}\n withError={false}\n />\n </div>\n\n {!loading && isError && <Error />}\n </div>\n {!isError && updatedAt && (\n <div className=\"lw-mt-2 lw-h-8\">\n <LastUpdated labelCallback={lang} timestamp={updatedAt} />\n </div>\n )}\n </>\n )}\n </>\n );\n};\n\nexport { Widget };\n"],"mappings":"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","ignoreList":[]}
@@ -1,6 +1,6 @@
1
- import React, { useContext } from 'react';
1
+ import { LongArrowDown, LongArrowUp, useLayoutProvider } from '@oanda/labs-widget-common';
2
2
  import classnames from 'classnames';
3
- import { LongArrowUp, LongArrowDown, ThemeContext } from '@oanda/labs-widget-common';
3
+ import React from 'react';
4
4
  import { SelectedArrow } from './types';
5
5
  const SortSwitch = _ref => {
6
6
  let {
@@ -11,22 +11,22 @@ const SortSwitch = _ref => {
11
11
  } = _ref;
12
12
  const {
13
13
  isDark
14
- } = useContext(ThemeContext);
14
+ } = useLayoutProvider();
15
15
  return React.createElement("div", {
16
- "data-testid": "sort-switch",
17
16
  className: classnames('lw-flex lw-rounded lw-border-[1px] lw-border-solid lw-font-sans lw-text-xs lw-tracking-normal', {
18
17
  'lw-border-border-disabled': disabled,
19
18
  'lw-border-secondary': !disabled
20
- })
19
+ }),
20
+ "data-testid": "sort-switch"
21
21
  }, React.createElement("button", {
22
- "data-testid": "sort-switch-button-up",
23
- disabled: disabled || selected === SelectedArrow.UP,
24
- type: "button",
25
- onClick: onClickButtonUp,
26
22
  className: classnames('lw-flex lw-h-11 lw-w-11 lw-grow-0 lw-items-center lw-justify-center lw-border-solid focus:lw-outline-secondary [&:enabled:hover>*]:-lw-translate-y-1', {
27
23
  'lw-border-r-[1px] lw-border-r-border-disabled': disabled,
28
24
  'lw-bg-secondary': selected === SelectedArrow.UP && !disabled
29
- })
25
+ }),
26
+ "data-testid": "sort-switch-button-up",
27
+ disabled: disabled || selected === SelectedArrow.UP,
28
+ type: "button",
29
+ onClick: onClickButtonUp
30
30
  }, React.createElement(LongArrowUp, {
31
31
  className: classnames('lw-transition-transform', {
32
32
  'lw-stroke-border-disabled': disabled,
@@ -35,13 +35,13 @@ const SortSwitch = _ref => {
35
35
  'lw-stroke-ok': selected === SelectedArrow.UP && !disabled && !isDark
36
36
  })
37
37
  })), React.createElement("button", {
38
+ className: classnames('lw-flex lw-h-11 lw-w-11 lw-grow-0 lw-items-center lw-justify-center lw-text-center focus:lw-outline-secondary [&:enabled:hover>*]:lw-translate-y-1', {
39
+ 'lw-bg-secondary': selected === SelectedArrow.DOWN && !disabled
40
+ }),
38
41
  "data-testid": "sort-switch-button-down",
39
42
  disabled: disabled || selected === SelectedArrow.DOWN,
40
43
  type: "button",
41
- onClick: onClickButtonDown,
42
- className: classnames('lw-flex lw-h-11 lw-w-11 lw-grow-0 lw-items-center lw-justify-center lw-text-center focus:lw-outline-secondary [&:enabled:hover>*]:lw-translate-y-1', {
43
- 'lw-bg-secondary': selected === SelectedArrow.DOWN && !disabled
44
- })
44
+ onClick: onClickButtonDown
45
45
  }, React.createElement(LongArrowDown, {
46
46
  className: classnames('lw-transition-transform', {
47
47
  'lw-stroke-border-disabled': disabled,
@@ -1 +1 @@
1
- {"version":3,"file":"SortSwitch.js","names":["React","useContext","classnames","LongArrowUp","LongArrowDown","ThemeContext","SelectedArrow","SortSwitch","_ref","onClickButtonDown","onClickButtonUp","selected","disabled","isDark","createElement","className","UP","type","onClick","DOWN"],"sources":["../../../../../src/SentimentWidget/components/SortSwitch/SortSwitch.tsx"],"sourcesContent":["import React, { useContext } from 'react';\nimport classnames from 'classnames';\nimport {\n LongArrowUp, LongArrowDown, ThemeContext,\n} from '@oanda/labs-widget-common';\nimport { SelectedArrow, SortSwitchProps } from './types';\n\nconst SortSwitch = ({\n onClickButtonDown, onClickButtonUp, selected, disabled,\n}: SortSwitchProps) => {\n const { isDark } = useContext(ThemeContext);\n\n return (\n <div\n data-testid=\"sort-switch\"\n className={classnames(\n 'lw-flex lw-rounded lw-border-[1px] lw-border-solid lw-font-sans lw-text-xs lw-tracking-normal',\n {\n 'lw-border-border-disabled': disabled,\n 'lw-border-secondary': !disabled,\n },\n )}\n >\n <button\n data-testid=\"sort-switch-button-up\"\n disabled={disabled || selected === SelectedArrow.UP}\n type=\"button\"\n onClick={onClickButtonUp}\n className={classnames(\n 'lw-flex lw-h-11 lw-w-11 lw-grow-0 lw-items-center lw-justify-center lw-border-solid focus:lw-outline-secondary [&:enabled:hover>*]:-lw-translate-y-1',\n {\n 'lw-border-r-[1px] lw-border-r-border-disabled': disabled,\n 'lw-bg-secondary': selected === SelectedArrow.UP && !disabled,\n },\n )}\n >\n <LongArrowUp\n className={classnames(\n 'lw-transition-transform',\n {\n 'lw-stroke-border-disabled': disabled,\n 'lw-stroke-secondary': selected !== SelectedArrow.UP && !disabled,\n 'lw-stroke-bg-primary': selected === SelectedArrow.UP && !disabled && isDark,\n 'lw-stroke-ok': selected === SelectedArrow.UP && !disabled && !isDark,\n },\n )}\n />\n </button>\n <button\n data-testid=\"sort-switch-button-down\"\n disabled={disabled || selected === SelectedArrow.DOWN}\n type=\"button\"\n onClick={onClickButtonDown}\n className={classnames(\n 'lw-flex lw-h-11 lw-w-11 lw-grow-0 lw-items-center lw-justify-center lw-text-center focus:lw-outline-secondary [&:enabled:hover>*]:lw-translate-y-1',\n {\n 'lw-bg-secondary': selected === SelectedArrow.DOWN && !disabled,\n },\n )}\n >\n <LongArrowDown\n className={classnames(\n 'lw-transition-transform',\n {\n 'lw-stroke-border-disabled': disabled,\n 'lw-stroke-secondary': selected !== SelectedArrow.DOWN && !disabled,\n 'lw-stroke-bg-primary': selected === SelectedArrow.DOWN && !disabled && isDark,\n 'lw-stroke-ok': selected === SelectedArrow.DOWN && !disabled && !isDark,\n },\n )}\n />\n </button>\n </div>\n );\n};\n\nexport {\n SortSwitch,\n};\n"],"mappings":"AAAA,OAAOA,KAAK,IAAIC,UAAU,QAAQ,OAAO;AACzC,OAAOC,UAAU,MAAM,YAAY;AACnC,SACEC,WAAW,EAAEC,aAAa,EAAEC,YAAY,QACnC,2BAA2B;AAClC,SAASC,aAAa,QAAyB,SAAS;AAExD,MAAMC,UAAU,GAAGC,IAAA,IAEI;EAAA,IAFH;IAClBC,iBAAiB;IAAEC,eAAe;IAAEC,QAAQ;IAAEC;EAC/B,CAAC,GAAAJ,IAAA;EAChB,MAAM;IAAEK;EAAO,CAAC,GAAGZ,UAAU,CAACI,YAAY,CAAC;EAE3C,OACEL,KAAA,CAAAc,aAAA;IACE,eAAY,aAAa;IACzBC,SAAS,EAAEb,UAAU,CACnB,+FAA+F,EAC/F;MACE,2BAA2B,EAAEU,QAAQ;MACrC,qBAAqB,EAAE,CAACA;IAC1B,CACF;EAAE,GAEFZ,KAAA,CAAAc,aAAA;IACE,eAAY,uBAAuB;IACnCF,QAAQ,EAAEA,QAAQ,IAAID,QAAQ,KAAKL,aAAa,CAACU,EAAG;IACpDC,IAAI,EAAC,QAAQ;IACbC,OAAO,EAAER,eAAgB;IACzBK,SAAS,EAAEb,UAAU,CACnB,uJAAuJ,EACvJ;MACE,+CAA+C,EAAEU,QAAQ;MACzD,iBAAiB,EAAED,QAAQ,KAAKL,aAAa,CAACU,EAAE,IAAI,CAACJ;IACvD,CACF;EAAE,GAEFZ,KAAA,CAAAc,aAAA,CAACX,WAAW;IACVY,SAAS,EAAEb,UAAU,CACnB,yBAAyB,EACzB;MACE,2BAA2B,EAAEU,QAAQ;MACrC,qBAAqB,EAAED,QAAQ,KAAKL,aAAa,CAACU,EAAE,IAAI,CAACJ,QAAQ;MACjE,sBAAsB,EAAED,QAAQ,KAAKL,aAAa,CAACU,EAAE,IAAI,CAACJ,QAAQ,IAAIC,MAAM;MAC5E,cAAc,EAAEF,QAAQ,KAAKL,aAAa,CAACU,EAAE,IAAI,CAACJ,QAAQ,IAAI,CAACC;IACjE,CACF;EAAE,CACH,CACK,CAAC,EACTb,KAAA,CAAAc,aAAA;IACE,eAAY,yBAAyB;IACrCF,QAAQ,EAAEA,QAAQ,IAAID,QAAQ,KAAKL,aAAa,CAACa,IAAK;IACtDF,IAAI,EAAC,QAAQ;IACbC,OAAO,EAAET,iBAAkB;IAC3BM,SAAS,EAAEb,UAAU,CACnB,oJAAoJ,EACpJ;MACE,iBAAiB,EAAES,QAAQ,KAAKL,aAAa,CAACa,IAAI,IAAI,CAACP;IACzD,CACF;EAAE,GAEFZ,KAAA,CAAAc,aAAA,CAACV,aAAa;IACZW,SAAS,EAAEb,UAAU,CACnB,yBAAyB,EACzB;MACE,2BAA2B,EAAEU,QAAQ;MACrC,qBAAqB,EAAED,QAAQ,KAAKL,aAAa,CAACa,IAAI,IAAI,CAACP,QAAQ;MACnE,sBAAsB,EAAED,QAAQ,KAAKL,aAAa,CAACa,IAAI,IAAI,CAACP,QAAQ,IAAIC,MAAM;MAC9E,cAAc,EAAEF,QAAQ,KAAKL,aAAa,CAACa,IAAI,IAAI,CAACP,QAAQ,IAAI,CAACC;IACnE,CACF;EAAE,CACH,CACK,CACL,CAAC;AAEV,CAAC;AAED,SACEN,UAAU","ignoreList":[]}
1
+ {"version":3,"file":"SortSwitch.js","names":["LongArrowDown","LongArrowUp","useLayoutProvider","classnames","React","SelectedArrow","SortSwitch","_ref","onClickButtonDown","onClickButtonUp","selected","disabled","isDark","createElement","className","UP","type","onClick","DOWN"],"sources":["../../../../../src/SentimentWidget/components/SortSwitch/SortSwitch.tsx"],"sourcesContent":["import {\n LongArrowDown,\n LongArrowUp,\n useLayoutProvider,\n} from '@oanda/labs-widget-common';\nimport classnames from 'classnames';\nimport React from 'react';\n\nimport type { SortSwitchProps } from './types';\nimport { SelectedArrow } from './types';\n\nconst SortSwitch = ({\n onClickButtonDown,\n onClickButtonUp,\n selected,\n disabled,\n}: SortSwitchProps) => {\n const { isDark } = useLayoutProvider();\n\n return (\n <div\n className={classnames(\n 'lw-flex lw-rounded lw-border-[1px] lw-border-solid lw-font-sans lw-text-xs lw-tracking-normal',\n {\n 'lw-border-border-disabled': disabled,\n 'lw-border-secondary': !disabled,\n }\n )}\n data-testid=\"sort-switch\"\n >\n <button\n className={classnames(\n 'lw-flex lw-h-11 lw-w-11 lw-grow-0 lw-items-center lw-justify-center lw-border-solid focus:lw-outline-secondary [&:enabled:hover>*]:-lw-translate-y-1',\n {\n 'lw-border-r-[1px] lw-border-r-border-disabled': disabled,\n 'lw-bg-secondary': selected === SelectedArrow.UP && !disabled,\n }\n )}\n data-testid=\"sort-switch-button-up\"\n disabled={disabled || selected === SelectedArrow.UP}\n type=\"button\"\n onClick={onClickButtonUp}\n >\n <LongArrowUp\n className={classnames('lw-transition-transform', {\n 'lw-stroke-border-disabled': disabled,\n 'lw-stroke-secondary': selected !== SelectedArrow.UP && !disabled,\n 'lw-stroke-bg-primary':\n selected === SelectedArrow.UP && !disabled && isDark,\n 'lw-stroke-ok':\n selected === SelectedArrow.UP && !disabled && !isDark,\n })}\n />\n </button>\n <button\n className={classnames(\n 'lw-flex lw-h-11 lw-w-11 lw-grow-0 lw-items-center lw-justify-center lw-text-center focus:lw-outline-secondary [&:enabled:hover>*]:lw-translate-y-1',\n {\n 'lw-bg-secondary': selected === SelectedArrow.DOWN && !disabled,\n }\n )}\n data-testid=\"sort-switch-button-down\"\n disabled={disabled || selected === SelectedArrow.DOWN}\n type=\"button\"\n onClick={onClickButtonDown}\n >\n <LongArrowDown\n className={classnames('lw-transition-transform', {\n 'lw-stroke-border-disabled': disabled,\n 'lw-stroke-secondary': selected !== SelectedArrow.DOWN && !disabled,\n 'lw-stroke-bg-primary':\n selected === SelectedArrow.DOWN && !disabled && isDark,\n 'lw-stroke-ok':\n selected === SelectedArrow.DOWN && !disabled && !isDark,\n })}\n />\n </button>\n </div>\n );\n};\n\nexport { SortSwitch };\n"],"mappings":"AAAA,SACEA,aAAa,EACbC,WAAW,EACXC,iBAAiB,QACZ,2BAA2B;AAClC,OAAOC,UAAU,MAAM,YAAY;AACnC,OAAOC,KAAK,MAAM,OAAO;AAGzB,SAASC,aAAa,QAAQ,SAAS;AAEvC,MAAMC,UAAU,GAAGC,IAAA,IAKI;EAAA,IALH;IAClBC,iBAAiB;IACjBC,eAAe;IACfC,QAAQ;IACRC;EACe,CAAC,GAAAJ,IAAA;EAChB,MAAM;IAAEK;EAAO,CAAC,GAAGV,iBAAiB,CAAC,CAAC;EAEtC,OACEE,KAAA,CAAAS,aAAA;IACEC,SAAS,EAAEX,UAAU,CACnB,+FAA+F,EAC/F;MACE,2BAA2B,EAAEQ,QAAQ;MACrC,qBAAqB,EAAE,CAACA;IAC1B,CACF,CAAE;IACF,eAAY;EAAa,GAEzBP,KAAA,CAAAS,aAAA;IACEC,SAAS,EAAEX,UAAU,CACnB,uJAAuJ,EACvJ;MACE,+CAA+C,EAAEQ,QAAQ;MACzD,iBAAiB,EAAED,QAAQ,KAAKL,aAAa,CAACU,EAAE,IAAI,CAACJ;IACvD,CACF,CAAE;IACF,eAAY,uBAAuB;IACnCA,QAAQ,EAAEA,QAAQ,IAAID,QAAQ,KAAKL,aAAa,CAACU,EAAG;IACpDC,IAAI,EAAC,QAAQ;IACbC,OAAO,EAAER;EAAgB,GAEzBL,KAAA,CAAAS,aAAA,CAACZ,WAAW;IACVa,SAAS,EAAEX,UAAU,CAAC,yBAAyB,EAAE;MAC/C,2BAA2B,EAAEQ,QAAQ;MACrC,qBAAqB,EAAED,QAAQ,KAAKL,aAAa,CAACU,EAAE,IAAI,CAACJ,QAAQ;MACjE,sBAAsB,EACpBD,QAAQ,KAAKL,aAAa,CAACU,EAAE,IAAI,CAACJ,QAAQ,IAAIC,MAAM;MACtD,cAAc,EACZF,QAAQ,KAAKL,aAAa,CAACU,EAAE,IAAI,CAACJ,QAAQ,IAAI,CAACC;IACnD,CAAC;EAAE,CACJ,CACK,CAAC,EACTR,KAAA,CAAAS,aAAA;IACEC,SAAS,EAAEX,UAAU,CACnB,oJAAoJ,EACpJ;MACE,iBAAiB,EAAEO,QAAQ,KAAKL,aAAa,CAACa,IAAI,IAAI,CAACP;IACzD,CACF,CAAE;IACF,eAAY,yBAAyB;IACrCA,QAAQ,EAAEA,QAAQ,IAAID,QAAQ,KAAKL,aAAa,CAACa,IAAK;IACtDF,IAAI,EAAC,QAAQ;IACbC,OAAO,EAAET;EAAkB,GAE3BJ,KAAA,CAAAS,aAAA,CAACb,aAAa;IACZc,SAAS,EAAEX,UAAU,CAAC,yBAAyB,EAAE;MAC/C,2BAA2B,EAAEQ,QAAQ;MACrC,qBAAqB,EAAED,QAAQ,KAAKL,aAAa,CAACa,IAAI,IAAI,CAACP,QAAQ;MACnE,sBAAsB,EACpBD,QAAQ,KAAKL,aAAa,CAACa,IAAI,IAAI,CAACP,QAAQ,IAAIC,MAAM;MACxD,cAAc,EACZF,QAAQ,KAAKL,aAAa,CAACa,IAAI,IAAI,CAACP,QAAQ,IAAI,CAACC;IACrD,CAAC;EAAE,CACJ,CACK,CACL,CAAC;AAEV,CAAC;AAED,SAASN,UAAU","ignoreList":[]}
@@ -1,8 +1,8 @@
1
+ import { validateLocale, validateToolParams } from '@oanda/labs-widget-common';
1
2
  import React from 'react';
2
3
  import { createRoot } from 'react-dom/client';
3
- import { validateLocale, validateToolParams } from '@oanda/labs-widget-common';
4
- import { SentimentWidget } from './SentimentWidget';
5
4
  import { Division } from '../gql/types/graphql';
5
+ import { SentimentWidget } from './SentimentWidget';
6
6
  const {
7
7
  graphqlUrl: configGraphQl,
8
8
  division: configDivision,
@@ -40,22 +40,22 @@ if (sentimentParamsElements.length > 0) {
40
40
  name: 'graphqlUrl'
41
41
  }]);
42
42
  root.render(React.createElement(SentimentWidget, {
43
- graphqlUrl: graphqlUrl,
44
43
  division: division,
45
- instrument: instrument,
46
- locale: locale,
47
- theme: mode,
44
+ graphqlUrl: graphqlUrl,
48
45
  includeDescriptionLabels: includeDescriptionLabels,
46
+ instrument: instrument,
49
47
  isParamError: isParamError,
50
- logoLink: logoLink
48
+ locale: locale,
49
+ logoLink: logoLink,
50
+ theme: mode
51
51
  }));
52
52
  });
53
53
  } else {
54
- const container = document.getElementById(configRenderElementId);
54
+ const container = document.querySelector(configRenderElementId);
55
55
  const root = createRoot(container);
56
56
  root.render(React.createElement(SentimentWidget, {
57
- graphqlUrl: configGraphQl,
58
57
  division: configDivision,
58
+ graphqlUrl: configGraphQl,
59
59
  instrument: configInstrument,
60
60
  locale: configLocale
61
61
  }));
@@ -1 +1 @@
1
- {"version":3,"file":"render.js","names":["React","createRoot","validateLocale","validateToolParams","SentimentWidget","Division","graphqlUrl","configGraphQl","division","configDivision","instrument","configInstrument","renderElementId","configRenderElementId","locale","configLocale","window","sentimentWidgetConfig","widgetsConfig","sentimentParamsElements","document","querySelectorAll","length","forEach","element","root","params","getAttribute","mode","includeDescriptionLabels","logoLink","JSON","parse","isParamError","name","valueCheck","value","Object","values","includes","render","createElement","theme","container","getElementById"],"sources":["../../../src/SentimentWidget/render.tsx"],"sourcesContent":["import React from 'react';\nimport { createRoot } from 'react-dom/client';\nimport { Theme, validateLocale, validateToolParams } from '@oanda/labs-widget-common';\nimport { SentimentWidget } from './SentimentWidget';\nimport { Division } from '../gql/types/graphql';\n\nconst {\n graphqlUrl: configGraphQl,\n division: configDivision,\n instrument: configInstrument,\n renderElementId: configRenderElementId,\n locale: configLocale,\n} = window.sentimentWidgetConfig || {};\n\nconst {\n graphqlUrl,\n} = window.widgetsConfig || {};\n\nconst sentimentParamsElements = document.querySelectorAll('div[data-sentiment-params]');\n\nif (sentimentParamsElements.length > 0) {\n sentimentParamsElements.forEach((element) => {\n const root = createRoot(element);\n const params = element.getAttribute('data-sentiment-params');\n const mode = element.getAttribute('data-mode');\n const {\n instrument, division, locale, includeDescriptionLabels, logoLink,\n } = JSON.parse(params as string);\n\n const isParamError = validateToolParams({\n division, locale, graphqlUrl,\n }, [\n {\n name: 'locale',\n valueCheck: (value) => validateLocale(value),\n }, {\n name: 'division',\n valueCheck: (value) => Object.values(Division).includes(value),\n }, {\n name: 'graphqlUrl',\n },\n ]);\n root.render(\n <SentimentWidget\n graphqlUrl={graphqlUrl}\n division={division}\n instrument={instrument}\n locale={locale}\n theme={mode as Theme}\n includeDescriptionLabels={includeDescriptionLabels}\n isParamError={isParamError}\n logoLink={logoLink}\n />,\n );\n });\n} else {\n const container = document.getElementById(configRenderElementId);\n const root = createRoot(container!);\n root.render(\n <SentimentWidget\n graphqlUrl={configGraphQl}\n division={configDivision}\n instrument={configInstrument}\n locale={configLocale}\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;AAE/C,MAAM;EACJC,UAAU,EAAEC,aAAa;EACzBC,QAAQ,EAAEC,cAAc;EACxBC,UAAU,EAAEC,gBAAgB;EAC5BC,eAAe,EAAEC,qBAAqB;EACtCC,MAAM,EAAEC;AACV,CAAC,GAAGC,MAAM,CAACC,qBAAqB,IAAI,CAAC,CAAC;AAEtC,MAAM;EACJX;AACF,CAAC,GAAGU,MAAM,CAACE,aAAa,IAAI,CAAC,CAAC;AAE9B,MAAMC,uBAAuB,GAAGC,QAAQ,CAACC,gBAAgB,CAAC,4BAA4B,CAAC;AAEvF,IAAIF,uBAAuB,CAACG,MAAM,GAAG,CAAC,EAAE;EACtCH,uBAAuB,CAACI,OAAO,CAAEC,OAAO,IAAK;IAC3C,MAAMC,IAAI,GAAGxB,UAAU,CAACuB,OAAO,CAAC;IAChC,MAAME,MAAM,GAAGF,OAAO,CAACG,YAAY,CAAC,uBAAuB,CAAC;IAC5D,MAAMC,IAAI,GAAGJ,OAAO,CAACG,YAAY,CAAC,WAAW,CAAC;IAC9C,MAAM;MACJjB,UAAU;MAAEF,QAAQ;MAAEM,MAAM;MAAEe,wBAAwB;MAAEC;IAC1D,CAAC,GAAGC,IAAI,CAACC,KAAK,CAACN,MAAgB,CAAC;IAEhC,MAAMO,YAAY,GAAG9B,kBAAkB,CAAC;MACtCK,QAAQ;MAAEM,MAAM;MAAER;IACpB,CAAC,EAAE,CACD;MACE4B,IAAI,EAAE,QAAQ;MACdC,UAAU,EAAGC,KAAK,IAAKlC,cAAc,CAACkC,KAAK;IAC7C,CAAC,EAAE;MACDF,IAAI,EAAE,UAAU;MAChBC,UAAU,EAAGC,KAAK,IAAKC,MAAM,CAACC,MAAM,CAACjC,QAAQ,CAAC,CAACkC,QAAQ,CAACH,KAAK;IAC/D,CAAC,EAAE;MACDF,IAAI,EAAE;IACR,CAAC,CACF,CAAC;IACFT,IAAI,CAACe,MAAM,CACTxC,KAAA,CAAAyC,aAAA,CAACrC,eAAe;MACdE,UAAU,EAAEA,UAAW;MACvBE,QAAQ,EAAEA,QAAS;MACnBE,UAAU,EAAEA,UAAW;MACvBI,MAAM,EAAEA,MAAO;MACf4B,KAAK,EAAEd,IAAc;MACrBC,wBAAwB,EAAEA,wBAAyB;MACnDI,YAAY,EAAEA,YAAa;MAC3BH,QAAQ,EAAEA;IAAS,CACpB,CACH,CAAC;EACH,CAAC,CAAC;AACJ,CAAC,MAAM;EACL,MAAMa,SAAS,GAAGvB,QAAQ,CAACwB,cAAc,CAAC/B,qBAAqB,CAAC;EAChE,MAAMY,IAAI,GAAGxB,UAAU,CAAC0C,SAAU,CAAC;EACnClB,IAAI,CAACe,MAAM,CACTxC,KAAA,CAAAyC,aAAA,CAACrC,eAAe;IACdE,UAAU,EAAEC,aAAc;IAC1BC,QAAQ,EAAEC,cAAe;IACzBC,UAAU,EAAEC,gBAAiB;IAC7BG,MAAM,EAAEC;EAAa,CACtB,CACH,CAAC;AACH","ignoreList":[]}
1
+ {"version":3,"file":"render.js","names":["validateLocale","validateToolParams","React","createRoot","Division","SentimentWidget","graphqlUrl","configGraphQl","division","configDivision","instrument","configInstrument","renderElementId","configRenderElementId","locale","configLocale","window","sentimentWidgetConfig","widgetsConfig","sentimentParamsElements","document","querySelectorAll","length","forEach","element","root","params","getAttribute","mode","includeDescriptionLabels","logoLink","JSON","parse","isParamError","name","valueCheck","value","Object","values","includes","render","createElement","theme","container","querySelector"],"sources":["../../../src/SentimentWidget/render.tsx"],"sourcesContent":["import type { Theme } from '@oanda/labs-widget-common';\nimport { validateLocale, validateToolParams } from '@oanda/labs-widget-common';\nimport React from 'react';\nimport { createRoot } from 'react-dom/client';\n\nimport { Division } from '../gql/types/graphql';\nimport { SentimentWidget } from './SentimentWidget';\n\nconst {\n graphqlUrl: configGraphQl,\n division: configDivision,\n instrument: configInstrument,\n renderElementId: configRenderElementId,\n locale: configLocale,\n} = window.sentimentWidgetConfig || {};\n\nconst { graphqlUrl } = window.widgetsConfig || {};\n\nconst sentimentParamsElements = document.querySelectorAll(\n 'div[data-sentiment-params]'\n);\n\nif (sentimentParamsElements.length > 0) {\n sentimentParamsElements.forEach((element) => {\n const root = createRoot(element);\n const params = element.getAttribute('data-sentiment-params');\n const mode = element.getAttribute('data-mode');\n const { instrument, division, locale, includeDescriptionLabels, logoLink } =\n JSON.parse(params as string);\n\n const isParamError = validateToolParams(\n {\n division,\n locale,\n graphqlUrl,\n },\n [\n {\n name: 'locale',\n valueCheck: (value: string | undefined) => validateLocale(value),\n },\n {\n name: 'division',\n valueCheck: (value: Division) =>\n Object.values(Division).includes(value),\n },\n {\n name: 'graphqlUrl',\n },\n ]\n );\n root.render(\n <SentimentWidget\n division={division}\n graphqlUrl={graphqlUrl}\n includeDescriptionLabels={includeDescriptionLabels}\n instrument={instrument}\n isParamError={isParamError}\n locale={locale}\n logoLink={logoLink}\n theme={mode as Theme}\n />\n );\n });\n} else {\n const container: HTMLElement | null = document.querySelector(\n configRenderElementId\n );\n\n const root = createRoot(container!);\n root.render(\n <SentimentWidget\n division={configDivision}\n graphqlUrl={configGraphQl}\n instrument={configInstrument}\n locale={configLocale}\n />\n );\n}\n"],"mappings":"AACA,SAASA,cAAc,EAAEC,kBAAkB,QAAQ,2BAA2B;AAC9E,OAAOC,KAAK,MAAM,OAAO;AACzB,SAASC,UAAU,QAAQ,kBAAkB;AAE7C,SAASC,QAAQ,QAAQ,sBAAsB;AAC/C,SAASC,eAAe,QAAQ,mBAAmB;AAEnD,MAAM;EACJC,UAAU,EAAEC,aAAa;EACzBC,QAAQ,EAAEC,cAAc;EACxBC,UAAU,EAAEC,gBAAgB;EAC5BC,eAAe,EAAEC,qBAAqB;EACtCC,MAAM,EAAEC;AACV,CAAC,GAAGC,MAAM,CAACC,qBAAqB,IAAI,CAAC,CAAC;AAEtC,MAAM;EAAEX;AAAW,CAAC,GAAGU,MAAM,CAACE,aAAa,IAAI,CAAC,CAAC;AAEjD,MAAMC,uBAAuB,GAAGC,QAAQ,CAACC,gBAAgB,CACvD,4BACF,CAAC;AAED,IAAIF,uBAAuB,CAACG,MAAM,GAAG,CAAC,EAAE;EACtCH,uBAAuB,CAACI,OAAO,CAAEC,OAAO,IAAK;IAC3C,MAAMC,IAAI,GAAGtB,UAAU,CAACqB,OAAO,CAAC;IAChC,MAAME,MAAM,GAAGF,OAAO,CAACG,YAAY,CAAC,uBAAuB,CAAC;IAC5D,MAAMC,IAAI,GAAGJ,OAAO,CAACG,YAAY,CAAC,WAAW,CAAC;IAC9C,MAAM;MAAEjB,UAAU;MAAEF,QAAQ;MAAEM,MAAM;MAAEe,wBAAwB;MAAEC;IAAS,CAAC,GACxEC,IAAI,CAACC,KAAK,CAACN,MAAgB,CAAC;IAE9B,MAAMO,YAAY,GAAGhC,kBAAkB,CACrC;MACEO,QAAQ;MACRM,MAAM;MACNR;IACF,CAAC,EACD,CACE;MACE4B,IAAI,EAAE,QAAQ;MACdC,UAAU,EAAGC,KAAyB,IAAKpC,cAAc,CAACoC,KAAK;IACjE,CAAC,EACD;MACEF,IAAI,EAAE,UAAU;MAChBC,UAAU,EAAGC,KAAe,IAC1BC,MAAM,CAACC,MAAM,CAAClC,QAAQ,CAAC,CAACmC,QAAQ,CAACH,KAAK;IAC1C,CAAC,EACD;MACEF,IAAI,EAAE;IACR,CAAC,CAEL,CAAC;IACDT,IAAI,CAACe,MAAM,CACTtC,KAAA,CAAAuC,aAAA,CAACpC,eAAe;MACdG,QAAQ,EAAEA,QAAS;MACnBF,UAAU,EAAEA,UAAW;MACvBuB,wBAAwB,EAAEA,wBAAyB;MACnDnB,UAAU,EAAEA,UAAW;MACvBuB,YAAY,EAAEA,YAAa;MAC3BnB,MAAM,EAAEA,MAAO;MACfgB,QAAQ,EAAEA,QAAS;MACnBY,KAAK,EAAEd;IAAc,CACtB,CACH,CAAC;EACH,CAAC,CAAC;AACJ,CAAC,MAAM;EACL,MAAMe,SAA6B,GAAGvB,QAAQ,CAACwB,aAAa,CAC1D/B,qBACF,CAAC;EAED,MAAMY,IAAI,GAAGtB,UAAU,CAACwC,SAAU,CAAC;EACnClB,IAAI,CAACe,MAAM,CACTtC,KAAA,CAAAuC,aAAA,CAACpC,eAAe;IACdG,QAAQ,EAAEC,cAAe;IACzBH,UAAU,EAAEC,aAAc;IAC1BG,UAAU,EAAEC,gBAAiB;IAC7BG,MAAM,EAAEC;EAAa,CACtB,CACH,CAAC;AACH","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","names":[],"sources":["../../../src/SentimentWidget/types.ts"],"sourcesContent":["import { WidgetConfig } from '@oanda/labs-widget-common';\nimport { Division } from '../gql/types/graphql';\n\nexport interface SentimentConfig extends WidgetConfig {\n division: Division;\n instrument?: string;\n includeDescriptionLabels?: boolean;\n}\nexport interface SentimentWrapperConfig extends SentimentConfig {\n renderElementId: string;\n}\nexport interface SentimentWidgetConfig {\n division: Division;\n instrument: string;\n includeDescriptionLabels?: boolean;\n}\n\nexport interface SentimentToolConfig {\n division: Division;\n}\n"],"mappings":"","ignoreList":[]}
1
+ {"version":3,"file":"types.js","names":[],"sources":["../../../src/SentimentWidget/types.ts"],"sourcesContent":["import type { WidgetConfig } from '@oanda/labs-widget-common';\n\nimport type { Division } from '../gql/types/graphql';\n\nexport interface SentimentConfig extends WidgetConfig {\n division: Division;\n instrument?: string;\n includeDescriptionLabels?: boolean;\n}\nexport interface SentimentWrapperConfig extends SentimentConfig {\n renderElementId: string;\n}\nexport interface SentimentWidgetConfig {\n division: Division;\n instrument: string;\n includeDescriptionLabels?: boolean;\n}\n\nexport interface SentimentToolConfig {\n division: Division;\n}\n"],"mappings":"","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","names":["Sort","sortData","_ref","sort","sentimentList","Bullish","a","b","sentiment","shortPercent","longPercent"],"sources":["../../../src/SentimentWidget/utils.ts"],"sourcesContent":["import { GetSentimentListQuery, Sort } from '../gql/types/graphql';\n\nexport const sortData = ({ sentimentList }: GetSentimentListQuery, sort: Sort) => {\n if (!sentimentList) {\n return [];\n }\n\n if (sort === Sort.Bullish) {\n return [...sentimentList].sort((a, b) => a.sentiment.shortPercent - b.sentiment.shortPercent);\n }\n return [...sentimentList].sort((a, b) => a.sentiment.longPercent - b.sentiment.longPercent);\n};\n"],"mappings":"AAAA,SAAgCA,IAAI,QAAQ,sBAAsB;AAElE,OAAO,MAAMC,QAAQ,GAAGA,CAAAC,IAAA,EAA2CC,IAAU,KAAK;EAAA,IAAzD;IAAEC;EAAqC,CAAC,GAAAF,IAAA;EAC/D,IAAI,CAACE,aAAa,EAAE;IAClB,OAAO,EAAE;EACX;EAEA,IAAID,IAAI,KAAKH,IAAI,CAACK,OAAO,EAAE;IACzB,OAAO,CAAC,GAAGD,aAAa,CAAC,CAACD,IAAI,CAAC,CAACG,CAAC,EAAEC,CAAC,KAAKD,CAAC,CAACE,SAAS,CAACC,YAAY,GAAGF,CAAC,CAACC,SAAS,CAACC,YAAY,CAAC;EAC/F;EACA,OAAO,CAAC,GAAGL,aAAa,CAAC,CAACD,IAAI,CAAC,CAACG,CAAC,EAAEC,CAAC,KAAKD,CAAC,CAACE,SAAS,CAACE,WAAW,GAAGH,CAAC,CAACC,SAAS,CAACE,WAAW,CAAC;AAC7F,CAAC","ignoreList":[]}
1
+ {"version":3,"file":"utils.js","names":["Sort","sortData","_ref","sort","sentimentList","Bullish","a","b","sentiment","shortPercent","longPercent"],"sources":["../../../src/SentimentWidget/utils.ts"],"sourcesContent":["import type { GetSentimentListQuery } from '../gql/types/graphql';\nimport { Sort } from '../gql/types/graphql';\n\nexport const sortData = (\n { sentimentList }: GetSentimentListQuery,\n sort: Sort\n) => {\n if (!sentimentList) {\n return [];\n }\n\n if (sort === Sort.Bullish) {\n return [...sentimentList].sort(\n (a, b) => a.sentiment.shortPercent - b.sentiment.shortPercent\n );\n }\n return [...sentimentList].sort(\n (a, b) => a.sentiment.longPercent - b.sentiment.longPercent\n );\n};\n"],"mappings":"AACA,SAASA,IAAI,QAAQ,sBAAsB;AAE3C,OAAO,MAAMC,QAAQ,GAAGA,CAAAC,IAAA,EAEtBC,IAAU,KACP;EAAA,IAFH;IAAEC;EAAqC,CAAC,GAAAF,IAAA;EAGxC,IAAI,CAACE,aAAa,EAAE;IAClB,OAAO,EAAE;EACX;EAEA,IAAID,IAAI,KAAKH,IAAI,CAACK,OAAO,EAAE;IACzB,OAAO,CAAC,GAAGD,aAAa,CAAC,CAACD,IAAI,CAC5B,CAACG,CAAC,EAAEC,CAAC,KAAKD,CAAC,CAACE,SAAS,CAACC,YAAY,GAAGF,CAAC,CAACC,SAAS,CAACC,YACnD,CAAC;EACH;EACA,OAAO,CAAC,GAAGL,aAAa,CAAC,CAACD,IAAI,CAC5B,CAACG,CAAC,EAAEC,CAAC,KAAKD,CAAC,CAACE,SAAS,CAACE,WAAW,GAAGH,CAAC,CAACC,SAAS,CAACE,WAClD,CAAC;AACH,CAAC","ignoreList":[]}
@@ -1,13 +1,7 @@
1
1
  import { gql } from '@apollo/client';
2
2
  const getInstrumentSentiment = gql`
3
- query GetInstrumentSentiment(
4
- $name: String!
5
- $division: Division
6
- ) {
7
- sentiment(
8
- name: $name
9
- division: $division
10
- ) {
3
+ query GetInstrumentSentiment($name: String!, $division: Division) {
4
+ sentiment(name: $name, division: $division) {
11
5
  name
12
6
  displayName
13
7
  sentiment {
@@ -1 +1 @@
1
- {"version":3,"file":"getInstrumentSentiment.js","names":["gql","getInstrumentSentiment"],"sources":["../../../src/gql/getInstrumentSentiment.ts"],"sourcesContent":["import { gql } from '@apollo/client';\n\nconst getInstrumentSentiment = gql`\n query GetInstrumentSentiment(\n $name: String!\n $division: Division\n ) {\n sentiment(\n name: $name\n division: $division\n ) {\n name\n displayName\n sentiment {\n shortPercent\n longPercent\n }\n updatedAt\n }\n }\n`;\n\nexport { getInstrumentSentiment };\n"],"mappings":"AAAA,SAASA,GAAG,QAAQ,gBAAgB;AAEpC,MAAMC,sBAAsB,GAAGD,GAAG;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AAED,SAASC,sBAAsB","ignoreList":[]}
1
+ {"version":3,"file":"getInstrumentSentiment.js","names":["gql","getInstrumentSentiment"],"sources":["../../../src/gql/getInstrumentSentiment.ts"],"sourcesContent":["import { gql } from '@apollo/client';\n\nconst getInstrumentSentiment = gql`\n query GetInstrumentSentiment($name: String!, $division: Division) {\n sentiment(name: $name, division: $division) {\n name\n displayName\n sentiment {\n shortPercent\n longPercent\n }\n updatedAt\n }\n }\n`;\n\nexport { getInstrumentSentiment };\n"],"mappings":"AAAA,SAASA,GAAG,QAAQ,gBAAgB;AAEpC,MAAMC,sBAAsB,GAAGD,GAAG;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AAED,SAASC,sBAAsB","ignoreList":[]}
@@ -1,11 +1,7 @@
1
1
  import { gql } from '@apollo/client';
2
2
  const getSentimentList = gql`
3
- query GetSentimentList (
4
- $division: Division
5
- ) {
6
- sentimentList (
7
- division: $division
8
- ) {
3
+ query GetSentimentList($division: Division) {
4
+ sentimentList(division: $division) {
9
5
  name
10
6
  displayName
11
7
  sentiment {
@@ -1 +1 @@
1
- {"version":3,"file":"getSentimentList.js","names":["gql","getSentimentList"],"sources":["../../../src/gql/getSentimentList.ts"],"sourcesContent":["import { gql } from '@apollo/client';\n\nconst getSentimentList = gql`\n query GetSentimentList (\n $division: Division\n ) {\n sentimentList (\n division: $division\n ) {\n name\n displayName\n sentiment {\n shortPercent\n longPercent\n }\n updatedAt\n }\n }\n`;\n\nexport { getSentimentList };\n"],"mappings":"AAAA,SAASA,GAAG,QAAQ,gBAAgB;AAEpC,MAAMC,gBAAgB,GAAGD,GAAG;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AAED,SAASC,gBAAgB","ignoreList":[]}
1
+ {"version":3,"file":"getSentimentList.js","names":["gql","getSentimentList"],"sources":["../../../src/gql/getSentimentList.ts"],"sourcesContent":["import { gql } from '@apollo/client';\n\nconst getSentimentList = gql`\n query GetSentimentList($division: Division) {\n sentimentList(division: $division) {\n name\n displayName\n sentiment {\n shortPercent\n longPercent\n }\n updatedAt\n }\n }\n`;\n\nexport { getSentimentList };\n"],"mappings":"AAAA,SAASA,GAAG,QAAQ,gBAAgB;AAEpC,MAAMC,gBAAgB,GAAGD,GAAG;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AAED,SAASC,gBAAgB","ignoreList":[]}