@oanda/labs-widget-common 1.0.244 → 1.0.245

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 (182) hide show
  1. package/CHANGELOG.md +968 -0
  2. package/dist/main/chart/BaseChart.js +6 -9
  3. package/dist/main/chart/BaseChart.js.map +1 -1
  4. package/dist/main/chart/formatters.js +4 -4
  5. package/dist/main/chart/formatters.js.map +1 -1
  6. package/dist/main/chart/getGridLines.js +14 -12
  7. package/dist/main/chart/getGridLines.js.map +1 -1
  8. package/dist/main/components/Button/Button.js +4 -7
  9. package/dist/main/components/Button/Button.js.map +1 -1
  10. package/dist/main/components/Card/rows/PriceCardRow.js +1 -1
  11. package/dist/main/components/Card/rows/PriceCardRow.js.map +1 -1
  12. package/dist/main/components/Input/NumberInput.js +10 -13
  13. package/dist/main/components/Input/NumberInput.js.map +1 -1
  14. package/dist/main/components/InstrumentRate/InstrumentRate.js +3 -4
  15. package/dist/main/components/InstrumentRate/InstrumentRate.js.map +1 -1
  16. package/dist/main/components/InstrumentRate/InstrumentRateWithChart.js +1 -1
  17. package/dist/main/components/InstrumentRate/InstrumentRateWithChart.js.map +1 -1
  18. package/dist/main/components/InstrumentRate/utils.js +1 -1
  19. package/dist/main/components/InstrumentRate/utils.js.map +1 -1
  20. package/dist/main/components/Label/Label.js +3 -6
  21. package/dist/main/components/Label/Label.js.map +1 -1
  22. package/dist/main/components/LastUpdated/LastUpdated.js +1 -1
  23. package/dist/main/components/LastUpdated/LastUpdated.js.map +1 -1
  24. package/dist/main/components/LineChart/LineChart.js +2 -2
  25. package/dist/main/components/LineChart/LineChart.js.map +1 -1
  26. package/dist/main/components/LineChart/utils.js +2 -2
  27. package/dist/main/components/LineChart/utils.js.map +1 -1
  28. package/dist/main/components/Pagination/Pagination.js +2 -2
  29. package/dist/main/components/Pagination/Pagination.js.map +1 -1
  30. package/dist/main/components/Select/Select.js +2 -2
  31. package/dist/main/components/Select/Select.js.map +1 -1
  32. package/dist/main/components/Sentiment/Sentiment.js +7 -7
  33. package/dist/main/components/Sentiment/Sentiment.js.map +1 -1
  34. package/dist/main/components/Sentiment/SentimentError.js +1 -1
  35. package/dist/main/components/Sentiment/SentimentError.js.map +1 -1
  36. package/dist/main/components/Sentiment/SentimentLoader.js +1 -1
  37. package/dist/main/components/Sentiment/SentimentLoader.js.map +1 -1
  38. package/dist/main/components/Sentiment/utils.js +3 -3
  39. package/dist/main/components/Sentiment/utils.js.map +1 -1
  40. package/dist/main/components/Switch/Switch.js +3 -3
  41. package/dist/main/components/Switch/Switch.js.map +1 -1
  42. package/dist/main/components/Table/TableCell.js +1 -1
  43. package/dist/main/components/Table/TableCell.js.map +1 -1
  44. package/dist/main/components/Table/TableHeader.js +1 -1
  45. package/dist/main/components/Table/TableHeader.js.map +1 -1
  46. package/dist/main/components/TableWidget/CardRecordRow.js +1 -2
  47. package/dist/main/components/TableWidget/CardRecordRow.js.map +1 -1
  48. package/dist/main/components/TableWidget/CardRenderer.js +3 -6
  49. package/dist/main/components/TableWidget/CardRenderer.js.map +1 -1
  50. package/dist/main/components/TableWidget/Cards.js +1 -1
  51. package/dist/main/components/TableWidget/Cards.js.map +1 -1
  52. package/dist/main/components/TableWidget/ColumnRenderer.js +4 -7
  53. package/dist/main/components/TableWidget/ColumnRenderer.js.map +1 -1
  54. package/dist/main/components/TableWidget/TableWidget.js +1 -1
  55. package/dist/main/components/TableWidget/TableWidget.js.map +1 -1
  56. package/dist/main/components/Tabs/Tabs.js +1 -1
  57. package/dist/main/components/Tabs/Tabs.js.map +1 -1
  58. package/dist/main/components/TextInput/TextInput.js +2 -3
  59. package/dist/main/components/TextInput/TextInput.js.map +1 -1
  60. package/dist/main/components/Truncate/Truncate.js +1 -1
  61. package/dist/main/components/Truncate/Truncate.js.map +1 -1
  62. package/dist/main/components/WidgetWrapper/WidgetWrapper.js +2 -2
  63. package/dist/main/components/WidgetWrapper/WidgetWrapper.js.map +1 -1
  64. package/dist/main/hooks/useLiveRatesMessage.js +7 -7
  65. package/dist/main/hooks/useLiveRatesMessage.js.map +1 -1
  66. package/dist/main/hooks/useLiveRatesQuery.js +3 -5
  67. package/dist/main/hooks/useLiveRatesQuery.js.map +1 -1
  68. package/dist/main/hooks/useRecords.js +5 -5
  69. package/dist/main/hooks/useRecords.js.map +1 -1
  70. package/dist/main/hooks/useVisibleLiveDataRecord.js +10 -10
  71. package/dist/main/hooks/useVisibleLiveDataRecord.js.map +1 -1
  72. package/dist/main/providers/LiveRates/LiveRatesProvider.js +20 -24
  73. package/dist/main/providers/LiveRates/LiveRatesProvider.js.map +1 -1
  74. package/dist/main/providers/Widget/WidgetProvider.js +4 -6
  75. package/dist/main/providers/Widget/WidgetProvider.js.map +1 -1
  76. package/dist/main/tailwind/preset.js +3 -7
  77. package/dist/main/tailwind/preset.js.map +1 -1
  78. package/dist/main/tailwind/themes/themeColors.js +5 -7
  79. package/dist/main/tailwind/themes/themeColors.js.map +1 -1
  80. package/dist/main/tailwind/utils.js +3 -7
  81. package/dist/main/tailwind/utils.js.map +1 -1
  82. package/dist/main/testUtils/index.js +2 -2
  83. package/dist/main/testUtils/index.js.map +1 -1
  84. package/dist/main/utils/dateUtils.js +3 -3
  85. package/dist/main/utils/dateUtils.js.map +1 -1
  86. package/dist/main/utils/getLocale.js +1 -1
  87. package/dist/main/utils/getLocale.js.map +1 -1
  88. package/dist/main/utils/liveRates/buildUrl.js +9 -11
  89. package/dist/main/utils/liveRates/buildUrl.js.map +1 -1
  90. package/dist/main/utils/liveRates/calculatePriceChangeFromOpen.js +1 -1
  91. package/dist/main/utils/liveRates/calculatePriceChangeFromOpen.js.map +1 -1
  92. package/dist/module/chart/BaseChart.js +6 -9
  93. package/dist/module/chart/BaseChart.js.map +1 -1
  94. package/dist/module/chart/formatters.js +4 -4
  95. package/dist/module/chart/formatters.js.map +1 -1
  96. package/dist/module/chart/getGridLines.js +14 -12
  97. package/dist/module/chart/getGridLines.js.map +1 -1
  98. package/dist/module/components/Button/Button.js +4 -7
  99. package/dist/module/components/Button/Button.js.map +1 -1
  100. package/dist/module/components/Card/rows/PriceCardRow.js +1 -1
  101. package/dist/module/components/Card/rows/PriceCardRow.js.map +1 -1
  102. package/dist/module/components/Input/NumberInput.js +10 -13
  103. package/dist/module/components/Input/NumberInput.js.map +1 -1
  104. package/dist/module/components/InstrumentRate/InstrumentRate.js +3 -4
  105. package/dist/module/components/InstrumentRate/InstrumentRate.js.map +1 -1
  106. package/dist/module/components/InstrumentRate/InstrumentRateWithChart.js +1 -1
  107. package/dist/module/components/InstrumentRate/InstrumentRateWithChart.js.map +1 -1
  108. package/dist/module/components/InstrumentRate/utils.js +1 -1
  109. package/dist/module/components/InstrumentRate/utils.js.map +1 -1
  110. package/dist/module/components/Label/Label.js +3 -6
  111. package/dist/module/components/Label/Label.js.map +1 -1
  112. package/dist/module/components/LastUpdated/LastUpdated.js +1 -1
  113. package/dist/module/components/LastUpdated/LastUpdated.js.map +1 -1
  114. package/dist/module/components/LineChart/LineChart.js +2 -2
  115. package/dist/module/components/LineChart/LineChart.js.map +1 -1
  116. package/dist/module/components/LineChart/utils.js +2 -2
  117. package/dist/module/components/LineChart/utils.js.map +1 -1
  118. package/dist/module/components/Pagination/Pagination.js +2 -2
  119. package/dist/module/components/Pagination/Pagination.js.map +1 -1
  120. package/dist/module/components/Select/Select.js +2 -2
  121. package/dist/module/components/Select/Select.js.map +1 -1
  122. package/dist/module/components/Sentiment/Sentiment.js +7 -7
  123. package/dist/module/components/Sentiment/Sentiment.js.map +1 -1
  124. package/dist/module/components/Sentiment/SentimentError.js +1 -1
  125. package/dist/module/components/Sentiment/SentimentError.js.map +1 -1
  126. package/dist/module/components/Sentiment/SentimentLoader.js +1 -1
  127. package/dist/module/components/Sentiment/SentimentLoader.js.map +1 -1
  128. package/dist/module/components/Sentiment/utils.js +3 -3
  129. package/dist/module/components/Sentiment/utils.js.map +1 -1
  130. package/dist/module/components/Switch/Switch.js +3 -3
  131. package/dist/module/components/Switch/Switch.js.map +1 -1
  132. package/dist/module/components/Table/TableCell.js +1 -1
  133. package/dist/module/components/Table/TableCell.js.map +1 -1
  134. package/dist/module/components/Table/TableHeader.js +1 -1
  135. package/dist/module/components/Table/TableHeader.js.map +1 -1
  136. package/dist/module/components/TableWidget/CardRecordRow.js +1 -2
  137. package/dist/module/components/TableWidget/CardRecordRow.js.map +1 -1
  138. package/dist/module/components/TableWidget/CardRenderer.js +3 -6
  139. package/dist/module/components/TableWidget/CardRenderer.js.map +1 -1
  140. package/dist/module/components/TableWidget/Cards.js +1 -1
  141. package/dist/module/components/TableWidget/Cards.js.map +1 -1
  142. package/dist/module/components/TableWidget/ColumnRenderer.js +4 -7
  143. package/dist/module/components/TableWidget/ColumnRenderer.js.map +1 -1
  144. package/dist/module/components/TableWidget/TableWidget.js +1 -1
  145. package/dist/module/components/TableWidget/TableWidget.js.map +1 -1
  146. package/dist/module/components/Tabs/Tabs.js +1 -1
  147. package/dist/module/components/Tabs/Tabs.js.map +1 -1
  148. package/dist/module/components/TextInput/TextInput.js +2 -3
  149. package/dist/module/components/TextInput/TextInput.js.map +1 -1
  150. package/dist/module/components/Truncate/Truncate.js +1 -1
  151. package/dist/module/components/Truncate/Truncate.js.map +1 -1
  152. package/dist/module/components/WidgetWrapper/WidgetWrapper.js +2 -2
  153. package/dist/module/components/WidgetWrapper/WidgetWrapper.js.map +1 -1
  154. package/dist/module/hooks/useLiveRatesMessage.js +7 -7
  155. package/dist/module/hooks/useLiveRatesMessage.js.map +1 -1
  156. package/dist/module/hooks/useLiveRatesQuery.js +3 -5
  157. package/dist/module/hooks/useLiveRatesQuery.js.map +1 -1
  158. package/dist/module/hooks/useRecords.js +5 -5
  159. package/dist/module/hooks/useRecords.js.map +1 -1
  160. package/dist/module/hooks/useVisibleLiveDataRecord.js +10 -10
  161. package/dist/module/hooks/useVisibleLiveDataRecord.js.map +1 -1
  162. package/dist/module/providers/LiveRates/LiveRatesProvider.js +20 -24
  163. package/dist/module/providers/LiveRates/LiveRatesProvider.js.map +1 -1
  164. package/dist/module/providers/Widget/WidgetProvider.js +4 -6
  165. package/dist/module/providers/Widget/WidgetProvider.js.map +1 -1
  166. package/dist/module/tailwind/preset.js +3 -7
  167. package/dist/module/tailwind/preset.js.map +1 -1
  168. package/dist/module/tailwind/themes/themeColors.js +5 -7
  169. package/dist/module/tailwind/themes/themeColors.js.map +1 -1
  170. package/dist/module/tailwind/utils.js +3 -7
  171. package/dist/module/tailwind/utils.js.map +1 -1
  172. package/dist/module/testUtils/index.js +2 -2
  173. package/dist/module/testUtils/index.js.map +1 -1
  174. package/dist/module/utils/dateUtils.js +3 -3
  175. package/dist/module/utils/dateUtils.js.map +1 -1
  176. package/dist/module/utils/getLocale.js +1 -1
  177. package/dist/module/utils/getLocale.js.map +1 -1
  178. package/dist/module/utils/liveRates/buildUrl.js +9 -11
  179. package/dist/module/utils/liveRates/buildUrl.js.map +1 -1
  180. package/dist/module/utils/liveRates/calculatePriceChangeFromOpen.js +1 -1
  181. package/dist/module/utils/liveRates/calculatePriceChangeFromOpen.js.map +1 -1
  182. package/package.json +2 -2
@@ -1 +1 @@
1
- {"version":3,"file":"TextInput.js","names":["React","useRef","CloseIcon","TextInput","_ref","value","onChange","placeholder","label","inputRef","handleReset","_inputRef$current","current","focus","createElement","className","concat","ref","type","e","target","length","onClick"],"sources":["../../../../src/components/TextInput/TextInput.tsx"],"sourcesContent":["import React, { useRef } from 'react';\n\nimport { CloseIcon } from '../../images';\n\ninterface TextInputProps {\n value: string;\n onChange: (val: string) => void;\n placeholder?: string;\n label?: string;\n}\n\nconst TextInput: React.FC<TextInputProps> = ({\n value,\n onChange,\n placeholder = '',\n label,\n}) => {\n const inputRef = useRef<HTMLInputElement>(null);\n\n const handleReset = () => {\n inputRef.current?.focus();\n onChange('');\n };\n return (\n <div className=\"lw-text-text-primary\">\n {label && (\n <div>\n <span className=\"lw-text-base lw-font-bold\">{`${label}:`}</span>\n </div>\n )}\n <div />\n <div className=\"lw-relative\">\n <input\n ref={inputRef}\n className=\"lw-flex lw-h-[50px] lw-w-full lw-items-center lw-justify-between lw-rounded lw-border lw-bg-transparent lw-stroke-text-primary lw-py-2 lw-pl-3 lw-pr-8 focus:lw-outline-primary\"\n data-testid=\"text-input\"\n placeholder={placeholder}\n type=\"text\"\n value={value}\n onChange={(e) => onChange(e.target.value)}\n />\n {value.length > 0 && (\n <button\n className=\"lw-absolute lw-right-1 lw-top-1 lw-h-[42px] lw-cursor-pointer lw-rounded focus:lw-outline-primary [&>svg]:lw-stroke-text-primary\"\n data-testid=\"text-input-clear-button\"\n onClick={handleReset}\n >\n <CloseIcon />\n </button>\n )}\n </div>\n </div>\n );\n};\n\nexport { TextInput };\nexport type { TextInputProps };\n"],"mappings":"AAAA,OAAOA,KAAK,IAAIC,MAAM,QAAQ,OAAO;AAErC,SAASC,SAAS,QAAQ,cAAc;AASxC,MAAMC,SAAmC,GAAGC,IAAA,IAKtC;EAAA,IALuC;IAC3CC,KAAK;IACLC,QAAQ;IACRC,WAAW,GAAG,EAAE;IAChBC;EACF,CAAC,GAAAJ,IAAA;EACC,MAAMK,QAAQ,GAAGR,MAAM,CAAmB,IAAI,CAAC;EAE/C,MAAMS,WAAW,GAAGA,CAAA,KAAM;IAAA,IAAAC,iBAAA;IACxB,CAAAA,iBAAA,GAAAF,QAAQ,CAACG,OAAO,cAAAD,iBAAA,eAAhBA,iBAAA,CAAkBE,KAAK,CAAC,CAAC;IACzBP,QAAQ,CAAC,EAAE,CAAC;EACd,CAAC;EACD,OACEN,KAAA,CAAAc,aAAA;IAAKC,SAAS,EAAC;EAAsB,GAClCP,KAAK,IACJR,KAAA,CAAAc,aAAA,cACEd,KAAA,CAAAc,aAAA;IAAMC,SAAS,EAAC;EAA2B,MAAAC,MAAA,CAAKR,KAAK,MAAU,CAC5D,CACN,EACDR,KAAA,CAAAc,aAAA,YAAM,CAAC,EACPd,KAAA,CAAAc,aAAA;IAAKC,SAAS,EAAC;EAAa,GAC1Bf,KAAA,CAAAc,aAAA;IACEG,GAAG,EAAER,QAAS;IACdM,SAAS,EAAC,iLAAiL;IAC3L,eAAY,YAAY;IACxBR,WAAW,EAAEA,WAAY;IACzBW,IAAI,EAAC,MAAM;IACXb,KAAK,EAAEA,KAAM;IACbC,QAAQ,EAAGa,CAAC,IAAKb,QAAQ,CAACa,CAAC,CAACC,MAAM,CAACf,KAAK;EAAE,CAC3C,CAAC,EACDA,KAAK,CAACgB,MAAM,GAAG,CAAC,IACfrB,KAAA,CAAAc,aAAA;IACEC,SAAS,EAAC,kIAAkI;IAC5I,eAAY,yBAAyB;IACrCO,OAAO,EAAEZ;EAAY,GAErBV,KAAA,CAAAc,aAAA,CAACZ,SAAS,MAAE,CACN,CAEP,CACF,CAAC;AAEV,CAAC;AAED,SAASC,SAAS","ignoreList":[]}
1
+ {"version":3,"file":"TextInput.js","names":["React","useRef","CloseIcon","TextInput","_ref","value","onChange","placeholder","label","inputRef","handleReset","current","focus","createElement","className","ref","type","e","target","length","onClick"],"sources":["../../../../src/components/TextInput/TextInput.tsx"],"sourcesContent":["import React, { useRef } from 'react';\n\nimport { CloseIcon } from '../../images';\n\ninterface TextInputProps {\n value: string;\n onChange: (val: string) => void;\n placeholder?: string;\n label?: string;\n}\n\nconst TextInput: React.FC<TextInputProps> = ({\n value,\n onChange,\n placeholder = '',\n label,\n}) => {\n const inputRef = useRef<HTMLInputElement>(null);\n\n const handleReset = () => {\n inputRef.current?.focus();\n onChange('');\n };\n return (\n <div className=\"lw-text-text-primary\">\n {label && (\n <div>\n <span className=\"lw-text-base lw-font-bold\">{`${label}:`}</span>\n </div>\n )}\n <div />\n <div className=\"lw-relative\">\n <input\n ref={inputRef}\n className=\"lw-flex lw-h-[50px] lw-w-full lw-items-center lw-justify-between lw-rounded lw-border lw-bg-transparent lw-stroke-text-primary lw-py-2 lw-pl-3 lw-pr-8 focus:lw-outline-primary\"\n data-testid=\"text-input\"\n placeholder={placeholder}\n type=\"text\"\n value={value}\n onChange={(e) => onChange(e.target.value)}\n />\n {value.length > 0 && (\n <button\n className=\"lw-absolute lw-right-1 lw-top-1 lw-h-[42px] lw-cursor-pointer lw-rounded focus:lw-outline-primary [&>svg]:lw-stroke-text-primary\"\n data-testid=\"text-input-clear-button\"\n onClick={handleReset}\n >\n <CloseIcon />\n </button>\n )}\n </div>\n </div>\n );\n};\n\nexport { TextInput };\nexport type { TextInputProps };\n"],"mappings":"AAAA,OAAOA,KAAK,IAAIC,MAAM,QAAQ,OAAO;AAErC,SAASC,SAAS,QAAQ,cAAc;AASxC,MAAMC,SAAmC,GAAGC,IAAA,IAKtC;EAAA,IALuC;IAC3CC,KAAK;IACLC,QAAQ;IACRC,WAAW,GAAG,EAAE;IAChBC;EACF,CAAC,GAAAJ,IAAA;EACC,MAAMK,QAAQ,GAAGR,MAAM,CAAmB,IAAI,CAAC;EAE/C,MAAMS,WAAW,GAAGA,CAAA,KAAM;IACxBD,QAAQ,CAACE,OAAO,EAAEC,KAAK,CAAC,CAAC;IACzBN,QAAQ,CAAC,EAAE,CAAC;EACd,CAAC;EACD,OACEN,KAAA,CAAAa,aAAA;IAAKC,SAAS,EAAC;EAAsB,GAClCN,KAAK,IACJR,KAAA,CAAAa,aAAA,cACEb,KAAA,CAAAa,aAAA;IAAMC,SAAS,EAAC;EAA2B,GAAE,GAAGN,KAAK,GAAU,CAC5D,CACN,EACDR,KAAA,CAAAa,aAAA,YAAM,CAAC,EACPb,KAAA,CAAAa,aAAA;IAAKC,SAAS,EAAC;EAAa,GAC1Bd,KAAA,CAAAa,aAAA;IACEE,GAAG,EAAEN,QAAS;IACdK,SAAS,EAAC,iLAAiL;IAC3L,eAAY,YAAY;IACxBP,WAAW,EAAEA,WAAY;IACzBS,IAAI,EAAC,MAAM;IACXX,KAAK,EAAEA,KAAM;IACbC,QAAQ,EAAGW,CAAC,IAAKX,QAAQ,CAACW,CAAC,CAACC,MAAM,CAACb,KAAK;EAAE,CAC3C,CAAC,EACDA,KAAK,CAACc,MAAM,GAAG,CAAC,IACfnB,KAAA,CAAAa,aAAA;IACEC,SAAS,EAAC,kIAAkI;IAC5I,eAAY,yBAAyB;IACrCM,OAAO,EAAEV;EAAY,GAErBV,KAAA,CAAAa,aAAA,CAACX,SAAS,MAAE,CACN,CAEP,CACF,CAAC;AAEV,CAAC;AAED,SAASC,SAAS","ignoreList":[]}
@@ -27,7 +27,7 @@ const Truncate = memo(_ref => {
27
27
  "data-tooltip-content": text,
28
28
  "data-tooltip-id": isTruncated ? tooltipId : undefined,
29
29
  style: {
30
- maxWidth: "".concat(maxWidth, "px")
30
+ maxWidth: `${maxWidth}px`
31
31
  }
32
32
  }, text);
33
33
  });
@@ -1 +1 @@
1
- {"version":3,"file":"Truncate.js","names":["classnames","React","memo","useRef","useState","useDebounceCallback","useResizeObserver","Truncate","_ref","maxWidth","text","tooltipId","className","isTruncated","setIsTruncated","ref","onResize","_ref2","width","createElement","undefined","style","concat","displayName"],"sources":["../../../../src/components/Truncate/Truncate.tsx"],"sourcesContent":["import classnames from 'classnames';\nimport React, { memo, useRef, useState } from 'react';\nimport { useDebounceCallback, useResizeObserver } from 'usehooks-ts';\n\nimport type { TruncateProps } from './types';\n\nconst Truncate = memo(\n ({ maxWidth = 150, text, tooltipId, className }: TruncateProps) => {\n const [isTruncated, setIsTruncated] = useState(false);\n const ref = useRef<HTMLAnchorElement>(null);\n\n const onResize = useDebounceCallback(({ width }) => {\n setIsTruncated(width >= maxWidth);\n }, 50);\n\n useResizeObserver({\n ref,\n onResize,\n });\n\n return (\n <span\n ref={ref}\n className={classnames('lw-block lw-w-max lw-truncate', className)}\n data-testid=\"truncate\"\n data-tooltip-content={text}\n data-tooltip-id={isTruncated ? tooltipId : undefined}\n style={{ maxWidth: `${maxWidth}px` }}\n >\n {text}\n </span>\n );\n }\n);\n\nTruncate.displayName = 'Truncate';\n\nexport { Truncate };\n"],"mappings":"AAAA,OAAOA,UAAU,MAAM,YAAY;AACnC,OAAOC,KAAK,IAAIC,IAAI,EAAEC,MAAM,EAAEC,QAAQ,QAAQ,OAAO;AACrD,SAASC,mBAAmB,EAAEC,iBAAiB,QAAQ,aAAa;AAIpE,MAAMC,QAAQ,GAAGL,IAAI,CACnBM,IAAA,IAAmE;EAAA,IAAlE;IAAEC,QAAQ,GAAG,GAAG;IAAEC,IAAI;IAAEC,SAAS;IAAEC;EAAyB,CAAC,GAAAJ,IAAA;EAC5D,MAAM,CAACK,WAAW,EAAEC,cAAc,CAAC,GAAGV,QAAQ,CAAC,KAAK,CAAC;EACrD,MAAMW,GAAG,GAAGZ,MAAM,CAAoB,IAAI,CAAC;EAE3C,MAAMa,QAAQ,GAAGX,mBAAmB,CAACY,KAAA,IAAe;IAAA,IAAd;MAAEC;IAAM,CAAC,GAAAD,KAAA;IAC7CH,cAAc,CAACI,KAAK,IAAIT,QAAQ,CAAC;EACnC,CAAC,EAAE,EAAE,CAAC;EAENH,iBAAiB,CAAC;IAChBS,GAAG;IACHC;EACF,CAAC,CAAC;EAEF,OACEf,KAAA,CAAAkB,aAAA;IACEJ,GAAG,EAAEA,GAAI;IACTH,SAAS,EAAEZ,UAAU,CAAC,+BAA+B,EAAEY,SAAS,CAAE;IAClE,eAAY,UAAU;IACtB,wBAAsBF,IAAK;IAC3B,mBAAiBG,WAAW,GAAGF,SAAS,GAAGS,SAAU;IACrDC,KAAK,EAAE;MAAEZ,QAAQ,KAAAa,MAAA,CAAKb,QAAQ;IAAK;EAAE,GAEpCC,IACG,CAAC;AAEX,CACF,CAAC;AAEDH,QAAQ,CAACgB,WAAW,GAAG,UAAU;AAEjC,SAAShB,QAAQ","ignoreList":[]}
1
+ {"version":3,"file":"Truncate.js","names":["classnames","React","memo","useRef","useState","useDebounceCallback","useResizeObserver","Truncate","_ref","maxWidth","text","tooltipId","className","isTruncated","setIsTruncated","ref","onResize","_ref2","width","createElement","undefined","style","displayName"],"sources":["../../../../src/components/Truncate/Truncate.tsx"],"sourcesContent":["import classnames from 'classnames';\nimport React, { memo, useRef, useState } from 'react';\nimport { useDebounceCallback, useResizeObserver } from 'usehooks-ts';\n\nimport type { TruncateProps } from './types';\n\nconst Truncate = memo(\n ({ maxWidth = 150, text, tooltipId, className }: TruncateProps) => {\n const [isTruncated, setIsTruncated] = useState(false);\n const ref = useRef<HTMLAnchorElement>(null);\n\n const onResize = useDebounceCallback(({ width }) => {\n setIsTruncated(width >= maxWidth);\n }, 50);\n\n useResizeObserver({\n ref,\n onResize,\n });\n\n return (\n <span\n ref={ref}\n className={classnames('lw-block lw-w-max lw-truncate', className)}\n data-testid=\"truncate\"\n data-tooltip-content={text}\n data-tooltip-id={isTruncated ? tooltipId : undefined}\n style={{ maxWidth: `${maxWidth}px` }}\n >\n {text}\n </span>\n );\n }\n);\n\nTruncate.displayName = 'Truncate';\n\nexport { Truncate };\n"],"mappings":"AAAA,OAAOA,UAAU,MAAM,YAAY;AACnC,OAAOC,KAAK,IAAIC,IAAI,EAAEC,MAAM,EAAEC,QAAQ,QAAQ,OAAO;AACrD,SAASC,mBAAmB,EAAEC,iBAAiB,QAAQ,aAAa;AAIpE,MAAMC,QAAQ,GAAGL,IAAI,CACnBM,IAAA,IAAmE;EAAA,IAAlE;IAAEC,QAAQ,GAAG,GAAG;IAAEC,IAAI;IAAEC,SAAS;IAAEC;EAAyB,CAAC,GAAAJ,IAAA;EAC5D,MAAM,CAACK,WAAW,EAAEC,cAAc,CAAC,GAAGV,QAAQ,CAAC,KAAK,CAAC;EACrD,MAAMW,GAAG,GAAGZ,MAAM,CAAoB,IAAI,CAAC;EAE3C,MAAMa,QAAQ,GAAGX,mBAAmB,CAACY,KAAA,IAAe;IAAA,IAAd;MAAEC;IAAM,CAAC,GAAAD,KAAA;IAC7CH,cAAc,CAACI,KAAK,IAAIT,QAAQ,CAAC;EACnC,CAAC,EAAE,EAAE,CAAC;EAENH,iBAAiB,CAAC;IAChBS,GAAG;IACHC;EACF,CAAC,CAAC;EAEF,OACEf,KAAA,CAAAkB,aAAA;IACEJ,GAAG,EAAEA,GAAI;IACTH,SAAS,EAAEZ,UAAU,CAAC,+BAA+B,EAAEY,SAAS,CAAE;IAClE,eAAY,UAAU;IACtB,wBAAsBF,IAAK;IAC3B,mBAAiBG,WAAW,GAAGF,SAAS,GAAGS,SAAU;IACrDC,KAAK,EAAE;MAAEZ,QAAQ,EAAE,GAAGA,QAAQ;IAAK;EAAE,GAEpCC,IACG,CAAC;AAEX,CACF,CAAC;AAEDH,QAAQ,CAACe,WAAW,GAAG,UAAU;AAEjC,SAASf,QAAQ","ignoreList":[]}
@@ -15,11 +15,11 @@ export const WidgetWrapper = _ref => {
15
15
  return React.createElement(Disclaimer, {
16
16
  brandingSpace: brandingSpace,
17
17
  fitContent: fitContent,
18
- infoButtonPosition: disclaimer === null || disclaimer === void 0 ? void 0 : disclaimer.position,
18
+ infoButtonPosition: disclaimer?.position,
19
19
  isSlim: isSlim,
20
20
  linkArea: linkArea,
21
21
  logoLink: logoLink,
22
- text: disclaimer === null || disclaimer === void 0 ? void 0 : disclaimer.text
22
+ text: disclaimer?.text
23
23
  }, isParamError ? React.createElement(WidgetError, null) : children);
24
24
  };
25
25
  //# sourceMappingURL=WidgetWrapper.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"WidgetWrapper.js","names":["React","Disclaimer","WidgetError","WidgetWrapper","_ref","children","logoLink","linkArea","brandingSpace","fitContent","isParamError","disclaimer","isSlim","createElement","infoButtonPosition","position","text"],"sources":["../../../../src/components/WidgetWrapper/WidgetWrapper.tsx"],"sourcesContent":["import type { FC, PropsWithChildren } from 'react';\nimport React from 'react';\n\nimport type { WidgetLink, WidgetStyling } from '../../types';\nimport { Disclaimer } from '../Disclaimer';\nimport { WidgetError } from '../Error';\n\nexport type WidgetWrapperProps = PropsWithChildren &\n WidgetLink & {\n isParamError?: boolean | undefined;\n disclaimer?: {\n position?: 'left' | 'top';\n text?: string;\n };\n isSlim?: boolean;\n } & Pick<WidgetStyling, 'brandingSpace' | 'fitContent'>;\n\nexport const WidgetWrapper: FC<WidgetWrapperProps> = ({\n children,\n logoLink,\n linkArea,\n brandingSpace,\n fitContent,\n isParamError,\n disclaimer,\n isSlim,\n}) => (\n <Disclaimer\n brandingSpace={brandingSpace}\n fitContent={fitContent}\n infoButtonPosition={disclaimer?.position}\n isSlim={isSlim}\n linkArea={linkArea}\n logoLink={logoLink}\n text={disclaimer?.text}\n >\n {isParamError ? <WidgetError /> : children}\n </Disclaimer>\n);\n"],"mappings":"AACA,OAAOA,KAAK,MAAM,OAAO;AAGzB,SAASC,UAAU,QAAQ,eAAe;AAC1C,SAASC,WAAW,QAAQ,UAAU;AAYtC,OAAO,MAAMC,aAAqC,GAAGC,IAAA;EAAA,IAAC;IACpDC,QAAQ;IACRC,QAAQ;IACRC,QAAQ;IACRC,aAAa;IACbC,UAAU;IACVC,YAAY;IACZC,UAAU;IACVC;EACF,CAAC,GAAAR,IAAA;EAAA,OACCJ,KAAA,CAAAa,aAAA,CAACZ,UAAU;IACTO,aAAa,EAAEA,aAAc;IAC7BC,UAAU,EAAEA,UAAW;IACvBK,kBAAkB,EAAEH,UAAU,aAAVA,UAAU,uBAAVA,UAAU,CAAEI,QAAS;IACzCH,MAAM,EAAEA,MAAO;IACfL,QAAQ,EAAEA,QAAS;IACnBD,QAAQ,EAAEA,QAAS;IACnBU,IAAI,EAAEL,UAAU,aAAVA,UAAU,uBAAVA,UAAU,CAAEK;EAAK,GAEtBN,YAAY,GAAGV,KAAA,CAAAa,aAAA,CAACX,WAAW,MAAE,CAAC,GAAGG,QACxB,CAAC;AAAA,CACd","ignoreList":[]}
1
+ {"version":3,"file":"WidgetWrapper.js","names":["React","Disclaimer","WidgetError","WidgetWrapper","_ref","children","logoLink","linkArea","brandingSpace","fitContent","isParamError","disclaimer","isSlim","createElement","infoButtonPosition","position","text"],"sources":["../../../../src/components/WidgetWrapper/WidgetWrapper.tsx"],"sourcesContent":["import type { FC, PropsWithChildren } from 'react';\nimport React from 'react';\n\nimport type { WidgetLink, WidgetStyling } from '../../types';\nimport { Disclaimer } from '../Disclaimer';\nimport { WidgetError } from '../Error';\n\nexport type WidgetWrapperProps = PropsWithChildren &\n WidgetLink & {\n isParamError?: boolean | undefined;\n disclaimer?: {\n position?: 'left' | 'top';\n text?: string;\n };\n isSlim?: boolean;\n } & Pick<WidgetStyling, 'brandingSpace' | 'fitContent'>;\n\nexport const WidgetWrapper: FC<WidgetWrapperProps> = ({\n children,\n logoLink,\n linkArea,\n brandingSpace,\n fitContent,\n isParamError,\n disclaimer,\n isSlim,\n}) => (\n <Disclaimer\n brandingSpace={brandingSpace}\n fitContent={fitContent}\n infoButtonPosition={disclaimer?.position}\n isSlim={isSlim}\n linkArea={linkArea}\n logoLink={logoLink}\n text={disclaimer?.text}\n >\n {isParamError ? <WidgetError /> : children}\n </Disclaimer>\n);\n"],"mappings":"AACA,OAAOA,KAAK,MAAM,OAAO;AAGzB,SAASC,UAAU,QAAQ,eAAe;AAC1C,SAASC,WAAW,QAAQ,UAAU;AAYtC,OAAO,MAAMC,aAAqC,GAAGC,IAAA;EAAA,IAAC;IACpDC,QAAQ;IACRC,QAAQ;IACRC,QAAQ;IACRC,aAAa;IACbC,UAAU;IACVC,YAAY;IACZC,UAAU;IACVC;EACF,CAAC,GAAAR,IAAA;EAAA,OACCJ,KAAA,CAAAa,aAAA,CAACZ,UAAU;IACTO,aAAa,EAAEA,aAAc;IAC7BC,UAAU,EAAEA,UAAW;IACvBK,kBAAkB,EAAEH,UAAU,EAAEI,QAAS;IACzCH,MAAM,EAAEA,MAAO;IACfL,QAAQ,EAAEA,QAAS;IACnBD,QAAQ,EAAEA,QAAS;IACnBU,IAAI,EAAEL,UAAU,EAAEK;EAAK,GAEtBN,YAAY,GAAGV,KAAA,CAAAa,aAAA,CAACX,WAAW,MAAE,CAAC,GAAGG,QACxB,CAAC;AAAA,CACd","ignoreList":[]}
@@ -47,8 +47,8 @@ export const useLiveRatesMessage = (instruments, target) => {
47
47
  extraPrecision,
48
48
  currentAsk: ask,
49
49
  currentBid: bid,
50
- prevAsk: prev === null || prev === void 0 ? void 0 : prev.ask,
51
- prevBid: prev === null || prev === void 0 ? void 0 : prev.bid
50
+ prevAsk: prev?.ask,
51
+ prevBid: prev?.bid
52
52
  });
53
53
  return {
54
54
  symbol,
@@ -91,7 +91,7 @@ export const useLiveRatesMessage = (instruments, target) => {
91
91
  let {
92
92
  detail
93
93
  } = _ref;
94
- switch (detail === null || detail === void 0 ? void 0 : detail.messageType) {
94
+ switch (detail?.messageType) {
95
95
  case LIVE_RATES_EVENT_NAME:
96
96
  {
97
97
  processUpdateMessage(detail);
@@ -110,13 +110,13 @@ export const useLiveRatesMessage = (instruments, target) => {
110
110
  }
111
111
  };
112
112
  flatInstruments.forEach(instrument => {
113
- target === null || target === void 0 || target.addEventListener(instrument, listener);
114
- target === null || target === void 0 || target.addEventListener(LIVE_RATES_CONNECTION_ERROR, listener);
113
+ target?.addEventListener(instrument, listener);
114
+ target?.addEventListener(LIVE_RATES_CONNECTION_ERROR, listener);
115
115
  });
116
116
  return () => {
117
117
  flatInstruments.forEach(instrument => {
118
- target === null || target === void 0 || target.removeEventListener(instrument, listener);
119
- target === null || target === void 0 || target.removeEventListener(LIVE_RATES_CONNECTION_ERROR, listener);
118
+ target?.removeEventListener(instrument, listener);
119
+ target?.removeEventListener(LIVE_RATES_CONNECTION_ERROR, listener);
120
120
  setUpdate(null);
121
121
  setError(null);
122
122
  });
@@ -1 +1 @@
1
- {"version":3,"file":"useLiveRatesMessage.js","names":["useEffect","useState","LIVE_RATES_CONNECTION_ERROR","LIVE_RATES_EVENT_NAME","LIVE_RATES_RATE_ERROR","calculatePipsChangeFromOpen","calculatePriceChange","calculatePriceChangeFromOpen","calculateSpread","useLiveRatesMessage","instruments","target","flatInstruments","concat","update","setUpdate","error","setError","connectionError","setConnectionError","processUpdateMessage","detail","symbol","ask","bid","closingAsk","closingBid","openingAsk","openingBid","pipLocation","extraPrecision","timestamp","low","high","spread","dailyChange","currentAsk","currentBid","prevAsk","prevBid","percentChangeFromOpen","dailyPercentChangeFromOpen","pipsChangeFromOpen","dailyPipsChangeFromOpen","displayPrecision","Math","max","prev","priceMovement","askPriceMovement","bidPriceMovement","dailyPriceMovement","dailyPipsChange","pipsChange","dailyPercentChange","percentChange","processErrorMessage","errorMessage","processConnectionErrorMessage","listener","_ref","messageType","forEach","instrument","addEventListener","removeEventListener"],"sources":["../../../src/hooks/useLiveRatesMessage.ts"],"sourcesContent":["import { useEffect, useState } from 'react';\n\nimport {\n LIVE_RATES_CONNECTION_ERROR,\n LIVE_RATES_EVENT_NAME,\n LIVE_RATES_RATE_ERROR,\n} from '../constants';\nimport type {\n LiveRatesConnectionErrorMessage,\n LiveRatesErrorMessage,\n LiveRatesHookMessage,\n LiveRatesMessageReturnObject,\n LiveRatesUpdateMessage,\n} from '../types';\nimport {\n calculatePipsChangeFromOpen,\n calculatePriceChange,\n calculatePriceChangeFromOpen,\n calculateSpread,\n} from '../utils/liveRates';\n\nexport const useLiveRatesMessage = (\n instruments: string | string[],\n target: EventTarget | null\n): LiveRatesMessageReturnObject => {\n const flatInstruments = ([] as string[]).concat(instruments);\n const [update, setUpdate] = useState<LiveRatesHookMessage | null>(null);\n const [error, setError] = useState<LiveRatesErrorMessage | null>(null);\n const [connectionError, setConnectionError] = useState(false);\n\n const processUpdateMessage = (detail: LiveRatesUpdateMessage) => {\n const {\n symbol,\n ask,\n bid,\n closingAsk,\n closingBid,\n openingAsk,\n openingBid,\n pipLocation,\n extraPrecision,\n timestamp,\n low,\n high,\n } = detail;\n\n const spread = calculateSpread(ask, bid, pipLocation, extraPrecision);\n\n const dailyChange = calculatePriceChange({\n pipLocation,\n extraPrecision,\n currentAsk: ask,\n currentBid: bid,\n prevAsk: closingAsk,\n prevBid: closingBid,\n });\n const { percentChangeFromOpen: dailyPercentChangeFromOpen } =\n calculatePriceChangeFromOpen(ask, bid, openingAsk, openingBid);\n const { pipsChangeFromOpen: dailyPipsChangeFromOpen } =\n calculatePipsChangeFromOpen(\n ask,\n bid,\n pipLocation,\n extraPrecision,\n openingAsk,\n openingBid\n );\n\n const displayPrecision = Math.max(extraPrecision - pipLocation, 0);\n\n setUpdate((prev) => {\n const { priceMovement, askPriceMovement, bidPriceMovement } =\n calculatePriceChange({\n pipLocation,\n extraPrecision,\n currentAsk: ask,\n currentBid: bid,\n prevAsk: prev?.ask,\n prevBid: prev?.bid,\n });\n\n return {\n symbol,\n ask,\n bid,\n spread,\n pipLocation,\n displayPrecision,\n priceMovement,\n askPriceMovement,\n bidPriceMovement,\n dailyPriceMovement: dailyChange.priceMovement,\n dailyPipsChange: dailyChange.pipsChange,\n dailyPercentChange: dailyChange.percentChange,\n dailyPercentChangeFromOpen,\n dailyPipsChangeFromOpen,\n timestamp,\n high,\n low,\n };\n });\n };\n\n const processErrorMessage = (detail: LiveRatesErrorMessage) => {\n const { symbol, error: errorMessage, timestamp } = detail;\n\n setError({\n symbol,\n error: errorMessage,\n timestamp,\n });\n };\n\n const processConnectionErrorMessage = () => {\n setConnectionError(true);\n };\n\n useEffect(\n () => {\n const listener: EventListener = ({\n detail,\n }: CustomEventInit<\n | LiveRatesUpdateMessage\n | LiveRatesErrorMessage\n | LiveRatesConnectionErrorMessage\n >) => {\n switch (detail?.messageType) {\n case LIVE_RATES_EVENT_NAME: {\n processUpdateMessage(detail as LiveRatesUpdateMessage);\n\n break;\n }\n case LIVE_RATES_RATE_ERROR: {\n processErrorMessage(detail as LiveRatesErrorMessage);\n\n break;\n }\n case LIVE_RATES_CONNECTION_ERROR: {\n processConnectionErrorMessage();\n\n break;\n }\n // No default\n }\n };\n\n flatInstruments.forEach((instrument) => {\n target?.addEventListener(instrument, listener);\n target?.addEventListener(LIVE_RATES_CONNECTION_ERROR, listener);\n });\n\n return () => {\n flatInstruments.forEach((instrument) => {\n target?.removeEventListener(instrument, listener);\n target?.removeEventListener(LIVE_RATES_CONNECTION_ERROR, listener);\n setUpdate(null);\n setError(null);\n });\n };\n },\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [target]\n );\n\n useEffect(() => {\n if ((update || error) && connectionError) {\n setConnectionError(false);\n }\n }, [update, error, connectionError]);\n\n return { connectionError, error, update };\n};\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"useLiveRatesMessage.js","names":["useEffect","useState","LIVE_RATES_CONNECTION_ERROR","LIVE_RATES_EVENT_NAME","LIVE_RATES_RATE_ERROR","calculatePipsChangeFromOpen","calculatePriceChange","calculatePriceChangeFromOpen","calculateSpread","useLiveRatesMessage","instruments","target","flatInstruments","concat","update","setUpdate","error","setError","connectionError","setConnectionError","processUpdateMessage","detail","symbol","ask","bid","closingAsk","closingBid","openingAsk","openingBid","pipLocation","extraPrecision","timestamp","low","high","spread","dailyChange","currentAsk","currentBid","prevAsk","prevBid","percentChangeFromOpen","dailyPercentChangeFromOpen","pipsChangeFromOpen","dailyPipsChangeFromOpen","displayPrecision","Math","max","prev","priceMovement","askPriceMovement","bidPriceMovement","dailyPriceMovement","dailyPipsChange","pipsChange","dailyPercentChange","percentChange","processErrorMessage","errorMessage","processConnectionErrorMessage","listener","_ref","messageType","forEach","instrument","addEventListener","removeEventListener"],"sources":["../../../src/hooks/useLiveRatesMessage.ts"],"sourcesContent":["import { useEffect, useState } from 'react';\n\nimport {\n LIVE_RATES_CONNECTION_ERROR,\n LIVE_RATES_EVENT_NAME,\n LIVE_RATES_RATE_ERROR,\n} from '../constants';\nimport type {\n LiveRatesConnectionErrorMessage,\n LiveRatesErrorMessage,\n LiveRatesHookMessage,\n LiveRatesMessageReturnObject,\n LiveRatesUpdateMessage,\n} from '../types';\nimport {\n calculatePipsChangeFromOpen,\n calculatePriceChange,\n calculatePriceChangeFromOpen,\n calculateSpread,\n} from '../utils/liveRates';\n\nexport const useLiveRatesMessage = (\n instruments: string | string[],\n target: EventTarget | null\n): LiveRatesMessageReturnObject => {\n const flatInstruments = ([] as string[]).concat(instruments);\n const [update, setUpdate] = useState<LiveRatesHookMessage | null>(null);\n const [error, setError] = useState<LiveRatesErrorMessage | null>(null);\n const [connectionError, setConnectionError] = useState(false);\n\n const processUpdateMessage = (detail: LiveRatesUpdateMessage) => {\n const {\n symbol,\n ask,\n bid,\n closingAsk,\n closingBid,\n openingAsk,\n openingBid,\n pipLocation,\n extraPrecision,\n timestamp,\n low,\n high,\n } = detail;\n\n const spread = calculateSpread(ask, bid, pipLocation, extraPrecision);\n\n const dailyChange = calculatePriceChange({\n pipLocation,\n extraPrecision,\n currentAsk: ask,\n currentBid: bid,\n prevAsk: closingAsk,\n prevBid: closingBid,\n });\n const { percentChangeFromOpen: dailyPercentChangeFromOpen } =\n calculatePriceChangeFromOpen(ask, bid, openingAsk, openingBid);\n const { pipsChangeFromOpen: dailyPipsChangeFromOpen } =\n calculatePipsChangeFromOpen(\n ask,\n bid,\n pipLocation,\n extraPrecision,\n openingAsk,\n openingBid\n );\n\n const displayPrecision = Math.max(extraPrecision - pipLocation, 0);\n\n setUpdate((prev) => {\n const { priceMovement, askPriceMovement, bidPriceMovement } =\n calculatePriceChange({\n pipLocation,\n extraPrecision,\n currentAsk: ask,\n currentBid: bid,\n prevAsk: prev?.ask,\n prevBid: prev?.bid,\n });\n\n return {\n symbol,\n ask,\n bid,\n spread,\n pipLocation,\n displayPrecision,\n priceMovement,\n askPriceMovement,\n bidPriceMovement,\n dailyPriceMovement: dailyChange.priceMovement,\n dailyPipsChange: dailyChange.pipsChange,\n dailyPercentChange: dailyChange.percentChange,\n dailyPercentChangeFromOpen,\n dailyPipsChangeFromOpen,\n timestamp,\n high,\n low,\n };\n });\n };\n\n const processErrorMessage = (detail: LiveRatesErrorMessage) => {\n const { symbol, error: errorMessage, timestamp } = detail;\n\n setError({\n symbol,\n error: errorMessage,\n timestamp,\n });\n };\n\n const processConnectionErrorMessage = () => {\n setConnectionError(true);\n };\n\n useEffect(\n () => {\n const listener: EventListener = ({\n detail,\n }: CustomEventInit<\n | LiveRatesUpdateMessage\n | LiveRatesErrorMessage\n | LiveRatesConnectionErrorMessage\n >) => {\n switch (detail?.messageType) {\n case LIVE_RATES_EVENT_NAME: {\n processUpdateMessage(detail as LiveRatesUpdateMessage);\n\n break;\n }\n case LIVE_RATES_RATE_ERROR: {\n processErrorMessage(detail as LiveRatesErrorMessage);\n\n break;\n }\n case LIVE_RATES_CONNECTION_ERROR: {\n processConnectionErrorMessage();\n\n break;\n }\n // No default\n }\n };\n\n flatInstruments.forEach((instrument) => {\n target?.addEventListener(instrument, listener);\n target?.addEventListener(LIVE_RATES_CONNECTION_ERROR, listener);\n });\n\n return () => {\n flatInstruments.forEach((instrument) => {\n target?.removeEventListener(instrument, listener);\n target?.removeEventListener(LIVE_RATES_CONNECTION_ERROR, listener);\n setUpdate(null);\n setError(null);\n });\n };\n },\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [target]\n );\n\n useEffect(() => {\n if ((update || error) && connectionError) {\n setConnectionError(false);\n }\n }, [update, error, connectionError]);\n\n return { connectionError, error, update };\n};\n"],"mappings":"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","ignoreList":[]}
@@ -3,17 +3,15 @@ import { useLiveRatesProvider } from '../providers';
3
3
  export const useLiveRatesQuery = skip => {
4
4
  const liveRates = useLiveRatesProvider(skip);
5
5
  const setQuery = query => {
6
- var _liveRates$target;
7
- liveRates === null || liveRates === void 0 || (_liveRates$target = liveRates.target) === null || _liveRates$target === void 0 || _liveRates$target.dispatchEvent(new CustomEvent(SET_QUERY_EVENT_NAME, {
6
+ liveRates?.target?.dispatchEvent(new CustomEvent(SET_QUERY_EVENT_NAME, {
8
7
  detail: query
9
8
  }));
10
9
  };
11
10
  const closeQuery = () => {
12
- var _liveRates$source;
13
- liveRates === null || liveRates === void 0 || (_liveRates$source = liveRates.source) === null || _liveRates$source === void 0 || _liveRates$source.close();
11
+ liveRates?.source?.close();
14
12
  };
15
13
  return {
16
- target: (liveRates === null || liveRates === void 0 ? void 0 : liveRates.target) || null,
14
+ target: liveRates?.target || null,
17
15
  setQuery,
18
16
  closeQuery
19
17
  };
@@ -1 +1 @@
1
- {"version":3,"file":"useLiveRatesQuery.js","names":["SET_QUERY_EVENT_NAME","useLiveRatesProvider","useLiveRatesQuery","skip","liveRates","setQuery","query","_liveRates$target","target","dispatchEvent","CustomEvent","detail","closeQuery","_liveRates$source","source","close"],"sources":["../../../src/hooks/useLiveRatesQuery.ts"],"sourcesContent":["import { SET_QUERY_EVENT_NAME } from '../constants';\nimport { useLiveRatesProvider } from '../providers';\nimport type {\n LiveRatesProviderQuery,\n LiveRatesTargetHookReturnObject,\n} from '../types';\n\nexport const useLiveRatesQuery = (\n skip?: boolean\n): LiveRatesTargetHookReturnObject => {\n const liveRates = useLiveRatesProvider(skip);\n\n const setQuery = (query: LiveRatesProviderQuery) => {\n liveRates?.target?.dispatchEvent(\n new CustomEvent(SET_QUERY_EVENT_NAME, { detail: query })\n );\n };\n\n const closeQuery = () => {\n liveRates?.source?.close();\n };\n\n return {\n target: liveRates?.target || null,\n setQuery,\n closeQuery,\n };\n};\n"],"mappings":"AAAA,SAASA,oBAAoB,QAAQ,cAAc;AACnD,SAASC,oBAAoB,QAAQ,cAAc;AAMnD,OAAO,MAAMC,iBAAiB,GAC5BC,IAAc,IACsB;EACpC,MAAMC,SAAS,GAAGH,oBAAoB,CAACE,IAAI,CAAC;EAE5C,MAAME,QAAQ,GAAIC,KAA6B,IAAK;IAAA,IAAAC,iBAAA;IAClDH,SAAS,aAATA,SAAS,gBAAAG,iBAAA,GAATH,SAAS,CAAEI,MAAM,cAAAD,iBAAA,eAAjBA,iBAAA,CAAmBE,aAAa,CAC9B,IAAIC,WAAW,CAACV,oBAAoB,EAAE;MAAEW,MAAM,EAAEL;IAAM,CAAC,CACzD,CAAC;EACH,CAAC;EAED,MAAMM,UAAU,GAAGA,CAAA,KAAM;IAAA,IAAAC,iBAAA;IACvBT,SAAS,aAATA,SAAS,gBAAAS,iBAAA,GAATT,SAAS,CAAEU,MAAM,cAAAD,iBAAA,eAAjBA,iBAAA,CAAmBE,KAAK,CAAC,CAAC;EAC5B,CAAC;EAED,OAAO;IACLP,MAAM,EAAE,CAAAJ,SAAS,aAATA,SAAS,uBAATA,SAAS,CAAEI,MAAM,KAAI,IAAI;IACjCH,QAAQ;IACRO;EACF,CAAC;AACH,CAAC","ignoreList":[]}
1
+ {"version":3,"file":"useLiveRatesQuery.js","names":["SET_QUERY_EVENT_NAME","useLiveRatesProvider","useLiveRatesQuery","skip","liveRates","setQuery","query","target","dispatchEvent","CustomEvent","detail","closeQuery","source","close"],"sources":["../../../src/hooks/useLiveRatesQuery.ts"],"sourcesContent":["import { SET_QUERY_EVENT_NAME } from '../constants';\nimport { useLiveRatesProvider } from '../providers';\nimport type {\n LiveRatesProviderQuery,\n LiveRatesTargetHookReturnObject,\n} from '../types';\n\nexport const useLiveRatesQuery = (\n skip?: boolean\n): LiveRatesTargetHookReturnObject => {\n const liveRates = useLiveRatesProvider(skip);\n\n const setQuery = (query: LiveRatesProviderQuery) => {\n liveRates?.target?.dispatchEvent(\n new CustomEvent(SET_QUERY_EVENT_NAME, { detail: query })\n );\n };\n\n const closeQuery = () => {\n liveRates?.source?.close();\n };\n\n return {\n target: liveRates?.target || null,\n setQuery,\n closeQuery,\n };\n};\n"],"mappings":"AAAA,SAASA,oBAAoB,QAAQ,cAAc;AACnD,SAASC,oBAAoB,QAAQ,cAAc;AAMnD,OAAO,MAAMC,iBAAiB,GAC5BC,IAAc,IACsB;EACpC,MAAMC,SAAS,GAAGH,oBAAoB,CAACE,IAAI,CAAC;EAE5C,MAAME,QAAQ,GAAIC,KAA6B,IAAK;IAClDF,SAAS,EAAEG,MAAM,EAAEC,aAAa,CAC9B,IAAIC,WAAW,CAACT,oBAAoB,EAAE;MAAEU,MAAM,EAAEJ;IAAM,CAAC,CACzD,CAAC;EACH,CAAC;EAED,MAAMK,UAAU,GAAGA,CAAA,KAAM;IACvBP,SAAS,EAAEQ,MAAM,EAAEC,KAAK,CAAC,CAAC;EAC5B,CAAC;EAED,OAAO;IACLN,MAAM,EAAEH,SAAS,EAAEG,MAAM,IAAI,IAAI;IACjCF,QAAQ;IACRM;EACF,CAAC;AACH,CAAC","ignoreList":[]}
@@ -15,11 +15,11 @@ const useRecords = (record, target) => {
15
15
  setUpdatedRecord({
16
16
  displayName: record.displayName,
17
17
  instrument: record.instrument,
18
- buy: update === null || update === void 0 ? void 0 : update.ask,
19
- buyPriceMovement: update === null || update === void 0 ? void 0 : update.askPriceMovement,
20
- dailyPercentChange: update === null || update === void 0 ? void 0 : update.dailyPercentChangeFromOpen,
21
- dailyPipsChange: update === null || update === void 0 ? void 0 : update.dailyPipsChangeFromOpen,
22
- displayPrecision: update === null || update === void 0 ? void 0 : update.displayPrecision
18
+ buy: update?.ask,
19
+ buyPriceMovement: update?.askPriceMovement,
20
+ dailyPercentChange: update?.dailyPercentChangeFromOpen,
21
+ dailyPipsChange: update?.dailyPipsChangeFromOpen,
22
+ displayPrecision: update?.displayPrecision
23
23
  });
24
24
  setError(liveRatesError);
25
25
  }, [update, record, liveRatesError]);
@@ -1 +1 @@
1
- {"version":3,"file":"useRecords.js","names":["useEffect","useState","useLiveRatesMessage","useRecords","record","target","updatedRecord","setUpdatedRecord","displayName","instrument","sentiment","error","setError","update","liveRatesError","buy","ask","buyPriceMovement","askPriceMovement","dailyPercentChange","dailyPercentChangeFromOpen","dailyPipsChange","dailyPipsChangeFromOpen","displayPrecision"],"sources":["../../../src/hooks/useRecords.tsx"],"sourcesContent":["import { useEffect, useState } from 'react';\n\nimport type { DataRecord, LiveRatesErrorMessage } from '../types';\nimport { useLiveRatesMessage } from './useLiveRatesMessage';\n\nconst useRecords = (record: DataRecord, target: EventTarget | null) => {\n const [updatedRecord, setUpdatedRecord] = useState<DataRecord>({\n displayName: record.displayName,\n instrument: record.instrument,\n sentiment: record.sentiment,\n });\n const [error, setError] = useState<LiveRatesErrorMessage | null>(null);\n\n const { update, error: liveRatesError } = useLiveRatesMessage(\n record.instrument,\n target\n );\n\n useEffect(() => {\n setUpdatedRecord({\n displayName: record.displayName,\n instrument: record.instrument,\n buy: update?.ask,\n buyPriceMovement: update?.askPriceMovement,\n dailyPercentChange: update?.dailyPercentChangeFromOpen,\n dailyPipsChange: update?.dailyPipsChangeFromOpen,\n displayPrecision: update?.displayPrecision,\n });\n setError(liveRatesError);\n }, [update, record, liveRatesError]);\n\n return {\n updatedRecord,\n error,\n };\n};\n\nexport { useRecords };\n"],"mappings":"AAAA,SAASA,SAAS,EAAEC,QAAQ,QAAQ,OAAO;AAG3C,SAASC,mBAAmB,QAAQ,uBAAuB;AAE3D,MAAMC,UAAU,GAAGA,CAACC,MAAkB,EAAEC,MAA0B,KAAK;EACrE,MAAM,CAACC,aAAa,EAAEC,gBAAgB,CAAC,GAAGN,QAAQ,CAAa;IAC7DO,WAAW,EAAEJ,MAAM,CAACI,WAAW;IAC/BC,UAAU,EAAEL,MAAM,CAACK,UAAU;IAC7BC,SAAS,EAAEN,MAAM,CAACM;EACpB,CAAC,CAAC;EACF,MAAM,CAACC,KAAK,EAAEC,QAAQ,CAAC,GAAGX,QAAQ,CAA+B,IAAI,CAAC;EAEtE,MAAM;IAAEY,MAAM;IAAEF,KAAK,EAAEG;EAAe,CAAC,GAAGZ,mBAAmB,CAC3DE,MAAM,CAACK,UAAU,EACjBJ,MACF,CAAC;EAEDL,SAAS,CAAC,MAAM;IACdO,gBAAgB,CAAC;MACfC,WAAW,EAAEJ,MAAM,CAACI,WAAW;MAC/BC,UAAU,EAAEL,MAAM,CAACK,UAAU;MAC7BM,GAAG,EAAEF,MAAM,aAANA,MAAM,uBAANA,MAAM,CAAEG,GAAG;MAChBC,gBAAgB,EAAEJ,MAAM,aAANA,MAAM,uBAANA,MAAM,CAAEK,gBAAgB;MAC1CC,kBAAkB,EAAEN,MAAM,aAANA,MAAM,uBAANA,MAAM,CAAEO,0BAA0B;MACtDC,eAAe,EAAER,MAAM,aAANA,MAAM,uBAANA,MAAM,CAAES,uBAAuB;MAChDC,gBAAgB,EAAEV,MAAM,aAANA,MAAM,uBAANA,MAAM,CAAEU;IAC5B,CAAC,CAAC;IACFX,QAAQ,CAACE,cAAc,CAAC;EAC1B,CAAC,EAAE,CAACD,MAAM,EAAET,MAAM,EAAEU,cAAc,CAAC,CAAC;EAEpC,OAAO;IACLR,aAAa;IACbK;EACF,CAAC;AACH,CAAC;AAED,SAASR,UAAU","ignoreList":[]}
1
+ {"version":3,"file":"useRecords.js","names":["useEffect","useState","useLiveRatesMessage","useRecords","record","target","updatedRecord","setUpdatedRecord","displayName","instrument","sentiment","error","setError","update","liveRatesError","buy","ask","buyPriceMovement","askPriceMovement","dailyPercentChange","dailyPercentChangeFromOpen","dailyPipsChange","dailyPipsChangeFromOpen","displayPrecision"],"sources":["../../../src/hooks/useRecords.tsx"],"sourcesContent":["import { useEffect, useState } from 'react';\n\nimport type { DataRecord, LiveRatesErrorMessage } from '../types';\nimport { useLiveRatesMessage } from './useLiveRatesMessage';\n\nconst useRecords = (record: DataRecord, target: EventTarget | null) => {\n const [updatedRecord, setUpdatedRecord] = useState<DataRecord>({\n displayName: record.displayName,\n instrument: record.instrument,\n sentiment: record.sentiment,\n });\n const [error, setError] = useState<LiveRatesErrorMessage | null>(null);\n\n const { update, error: liveRatesError } = useLiveRatesMessage(\n record.instrument,\n target\n );\n\n useEffect(() => {\n setUpdatedRecord({\n displayName: record.displayName,\n instrument: record.instrument,\n buy: update?.ask,\n buyPriceMovement: update?.askPriceMovement,\n dailyPercentChange: update?.dailyPercentChangeFromOpen,\n dailyPipsChange: update?.dailyPipsChangeFromOpen,\n displayPrecision: update?.displayPrecision,\n });\n setError(liveRatesError);\n }, [update, record, liveRatesError]);\n\n return {\n updatedRecord,\n error,\n };\n};\n\nexport { useRecords };\n"],"mappings":"AAAA,SAASA,SAAS,EAAEC,QAAQ,QAAQ,OAAO;AAG3C,SAASC,mBAAmB,QAAQ,uBAAuB;AAE3D,MAAMC,UAAU,GAAGA,CAACC,MAAkB,EAAEC,MAA0B,KAAK;EACrE,MAAM,CAACC,aAAa,EAAEC,gBAAgB,CAAC,GAAGN,QAAQ,CAAa;IAC7DO,WAAW,EAAEJ,MAAM,CAACI,WAAW;IAC/BC,UAAU,EAAEL,MAAM,CAACK,UAAU;IAC7BC,SAAS,EAAEN,MAAM,CAACM;EACpB,CAAC,CAAC;EACF,MAAM,CAACC,KAAK,EAAEC,QAAQ,CAAC,GAAGX,QAAQ,CAA+B,IAAI,CAAC;EAEtE,MAAM;IAAEY,MAAM;IAAEF,KAAK,EAAEG;EAAe,CAAC,GAAGZ,mBAAmB,CAC3DE,MAAM,CAACK,UAAU,EACjBJ,MACF,CAAC;EAEDL,SAAS,CAAC,MAAM;IACdO,gBAAgB,CAAC;MACfC,WAAW,EAAEJ,MAAM,CAACI,WAAW;MAC/BC,UAAU,EAAEL,MAAM,CAACK,UAAU;MAC7BM,GAAG,EAAEF,MAAM,EAAEG,GAAG;MAChBC,gBAAgB,EAAEJ,MAAM,EAAEK,gBAAgB;MAC1CC,kBAAkB,EAAEN,MAAM,EAAEO,0BAA0B;MACtDC,eAAe,EAAER,MAAM,EAAES,uBAAuB;MAChDC,gBAAgB,EAAEV,MAAM,EAAEU;IAC5B,CAAC,CAAC;IACFX,QAAQ,CAACE,cAAc,CAAC;EAC1B,CAAC,EAAE,CAACD,MAAM,EAAET,MAAM,EAAEU,cAAc,CAAC,CAAC;EAEpC,OAAO;IACLR,aAAa;IACbK;EACF,CAAC;AACH,CAAC;AAED,SAASR,UAAU","ignoreList":[]}
@@ -10,7 +10,7 @@ export const useVisibleLiveDataRecord = (record, target) => {
10
10
  });
11
11
  const [error, setError] = useState(null);
12
12
  const entry = useIntersectionObserver();
13
- const isVisible = !!(entry !== null && entry !== void 0 && entry.isIntersecting);
13
+ const isVisible = !!entry?.isIntersecting;
14
14
  const {
15
15
  update,
16
16
  error: liveRatesError
@@ -22,15 +22,15 @@ export const useVisibleLiveDataRecord = (record, target) => {
22
22
  instrument: record.instrument,
23
23
  sentiment: record.sentiment,
24
24
  tradeMode: record.tradeMode,
25
- buy: update === null || update === void 0 ? void 0 : update.ask,
26
- sell: update === null || update === void 0 ? void 0 : update.bid,
27
- buyPriceMovement: update === null || update === void 0 ? void 0 : update.askPriceMovement,
28
- sellPriceMovement: update === null || update === void 0 ? void 0 : update.bidPriceMovement,
29
- dailyPercentChange: update === null || update === void 0 ? void 0 : update.dailyPercentChangeFromOpen,
30
- spread: update === null || update === void 0 ? void 0 : update.spread,
31
- displayPrecision: update === null || update === void 0 ? void 0 : update.displayPrecision,
32
- high: update === null || update === void 0 ? void 0 : update.high,
33
- low: update === null || update === void 0 ? void 0 : update.low,
25
+ buy: update?.ask,
26
+ sell: update?.bid,
27
+ buyPriceMovement: update?.askPriceMovement,
28
+ sellPriceMovement: update?.bidPriceMovement,
29
+ dailyPercentChange: update?.dailyPercentChangeFromOpen,
30
+ spread: update?.spread,
31
+ displayPrecision: update?.displayPrecision,
32
+ high: update?.high,
33
+ low: update?.low,
34
34
  dataSource: record.dataSource
35
35
  });
36
36
  setError(liveRatesError);
@@ -1 +1 @@
1
- {"version":3,"file":"useVisibleLiveDataRecord.js","names":["useEffect","useState","useIntersectionObserver","useLiveRatesMessage","useVisibleLiveDataRecord","record","target","updatedRecord","setUpdatedRecord","displayName","instrument","sentiment","tradeMode","error","setError","entry","isVisible","isIntersecting","update","liveRatesError","buy","ask","sell","bid","buyPriceMovement","askPriceMovement","sellPriceMovement","bidPriceMovement","dailyPercentChange","dailyPercentChangeFromOpen","spread","displayPrecision","high","low","dataSource","ref"],"sources":["../../../src/hooks/useVisibleLiveDataRecord.ts"],"sourcesContent":["import { useEffect, useState } from 'react';\nimport { useIntersectionObserver } from 'usehooks-ts';\n\nimport type { DataRecord, EmptyRecord, LiveRatesErrorMessage } from '../types';\nimport { useLiveRatesMessage } from './useLiveRatesMessage';\n\nexport const useVisibleLiveDataRecord = (\n record: DataRecord | EmptyRecord,\n target: EventTarget | null\n) => {\n const [updatedRecord, setUpdatedRecord] = useState<DataRecord>({\n displayName: record.displayName,\n instrument: record.instrument,\n sentiment: record.sentiment,\n tradeMode: record.tradeMode,\n });\n\n const [error, setError] = useState<LiveRatesErrorMessage | null>(null);\n const entry = useIntersectionObserver();\n const isVisible = !!entry?.isIntersecting;\n\n const { update, error: liveRatesError } = useLiveRatesMessage(\n record.instrument,\n target\n );\n\n useEffect(() => {\n if (isVisible) {\n setUpdatedRecord({\n displayName: record.displayName,\n instrument: record.instrument,\n sentiment: record.sentiment,\n tradeMode: record.tradeMode,\n buy: update?.ask,\n sell: update?.bid,\n buyPriceMovement: update?.askPriceMovement,\n sellPriceMovement: update?.bidPriceMovement,\n dailyPercentChange: update?.dailyPercentChangeFromOpen,\n spread: update?.spread,\n displayPrecision: update?.displayPrecision,\n high: update?.high,\n low: update?.low,\n dataSource: record.dataSource,\n });\n setError(liveRatesError);\n }\n }, [update, record, isVisible, liveRatesError]);\n\n return {\n updatedRecord,\n error,\n ref: entry.ref,\n };\n};\n"],"mappings":"AAAA,SAASA,SAAS,EAAEC,QAAQ,QAAQ,OAAO;AAC3C,SAASC,uBAAuB,QAAQ,aAAa;AAGrD,SAASC,mBAAmB,QAAQ,uBAAuB;AAE3D,OAAO,MAAMC,wBAAwB,GAAGA,CACtCC,MAAgC,EAChCC,MAA0B,KACvB;EACH,MAAM,CAACC,aAAa,EAAEC,gBAAgB,CAAC,GAAGP,QAAQ,CAAa;IAC7DQ,WAAW,EAAEJ,MAAM,CAACI,WAAW;IAC/BC,UAAU,EAAEL,MAAM,CAACK,UAAU;IAC7BC,SAAS,EAAEN,MAAM,CAACM,SAAS;IAC3BC,SAAS,EAAEP,MAAM,CAACO;EACpB,CAAC,CAAC;EAEF,MAAM,CAACC,KAAK,EAAEC,QAAQ,CAAC,GAAGb,QAAQ,CAA+B,IAAI,CAAC;EACtE,MAAMc,KAAK,GAAGb,uBAAuB,CAAC,CAAC;EACvC,MAAMc,SAAS,GAAG,CAAC,EAACD,KAAK,aAALA,KAAK,eAALA,KAAK,CAAEE,cAAc;EAEzC,MAAM;IAAEC,MAAM;IAAEL,KAAK,EAAEM;EAAe,CAAC,GAAGhB,mBAAmB,CAC3DE,MAAM,CAACK,UAAU,EACjBJ,MACF,CAAC;EAEDN,SAAS,CAAC,MAAM;IACd,IAAIgB,SAAS,EAAE;MACbR,gBAAgB,CAAC;QACfC,WAAW,EAAEJ,MAAM,CAACI,WAAW;QAC/BC,UAAU,EAAEL,MAAM,CAACK,UAAU;QAC7BC,SAAS,EAAEN,MAAM,CAACM,SAAS;QAC3BC,SAAS,EAAEP,MAAM,CAACO,SAAS;QAC3BQ,GAAG,EAAEF,MAAM,aAANA,MAAM,uBAANA,MAAM,CAAEG,GAAG;QAChBC,IAAI,EAAEJ,MAAM,aAANA,MAAM,uBAANA,MAAM,CAAEK,GAAG;QACjBC,gBAAgB,EAAEN,MAAM,aAANA,MAAM,uBAANA,MAAM,CAAEO,gBAAgB;QAC1CC,iBAAiB,EAAER,MAAM,aAANA,MAAM,uBAANA,MAAM,CAAES,gBAAgB;QAC3CC,kBAAkB,EAAEV,MAAM,aAANA,MAAM,uBAANA,MAAM,CAAEW,0BAA0B;QACtDC,MAAM,EAAEZ,MAAM,aAANA,MAAM,uBAANA,MAAM,CAAEY,MAAM;QACtBC,gBAAgB,EAAEb,MAAM,aAANA,MAAM,uBAANA,MAAM,CAAEa,gBAAgB;QAC1CC,IAAI,EAAEd,MAAM,aAANA,MAAM,uBAANA,MAAM,CAAEc,IAAI;QAClBC,GAAG,EAAEf,MAAM,aAANA,MAAM,uBAANA,MAAM,CAAEe,GAAG;QAChBC,UAAU,EAAE7B,MAAM,CAAC6B;MACrB,CAAC,CAAC;MACFpB,QAAQ,CAACK,cAAc,CAAC;IAC1B;EACF,CAAC,EAAE,CAACD,MAAM,EAAEb,MAAM,EAAEW,SAAS,EAAEG,cAAc,CAAC,CAAC;EAE/C,OAAO;IACLZ,aAAa;IACbM,KAAK;IACLsB,GAAG,EAAEpB,KAAK,CAACoB;EACb,CAAC;AACH,CAAC","ignoreList":[]}
1
+ {"version":3,"file":"useVisibleLiveDataRecord.js","names":["useEffect","useState","useIntersectionObserver","useLiveRatesMessage","useVisibleLiveDataRecord","record","target","updatedRecord","setUpdatedRecord","displayName","instrument","sentiment","tradeMode","error","setError","entry","isVisible","isIntersecting","update","liveRatesError","buy","ask","sell","bid","buyPriceMovement","askPriceMovement","sellPriceMovement","bidPriceMovement","dailyPercentChange","dailyPercentChangeFromOpen","spread","displayPrecision","high","low","dataSource","ref"],"sources":["../../../src/hooks/useVisibleLiveDataRecord.ts"],"sourcesContent":["import { useEffect, useState } from 'react';\nimport { useIntersectionObserver } from 'usehooks-ts';\n\nimport type { DataRecord, EmptyRecord, LiveRatesErrorMessage } from '../types';\nimport { useLiveRatesMessage } from './useLiveRatesMessage';\n\nexport const useVisibleLiveDataRecord = (\n record: DataRecord | EmptyRecord,\n target: EventTarget | null\n) => {\n const [updatedRecord, setUpdatedRecord] = useState<DataRecord>({\n displayName: record.displayName,\n instrument: record.instrument,\n sentiment: record.sentiment,\n tradeMode: record.tradeMode,\n });\n\n const [error, setError] = useState<LiveRatesErrorMessage | null>(null);\n const entry = useIntersectionObserver();\n const isVisible = !!entry?.isIntersecting;\n\n const { update, error: liveRatesError } = useLiveRatesMessage(\n record.instrument,\n target\n );\n\n useEffect(() => {\n if (isVisible) {\n setUpdatedRecord({\n displayName: record.displayName,\n instrument: record.instrument,\n sentiment: record.sentiment,\n tradeMode: record.tradeMode,\n buy: update?.ask,\n sell: update?.bid,\n buyPriceMovement: update?.askPriceMovement,\n sellPriceMovement: update?.bidPriceMovement,\n dailyPercentChange: update?.dailyPercentChangeFromOpen,\n spread: update?.spread,\n displayPrecision: update?.displayPrecision,\n high: update?.high,\n low: update?.low,\n dataSource: record.dataSource,\n });\n setError(liveRatesError);\n }\n }, [update, record, isVisible, liveRatesError]);\n\n return {\n updatedRecord,\n error,\n ref: entry.ref,\n };\n};\n"],"mappings":"AAAA,SAASA,SAAS,EAAEC,QAAQ,QAAQ,OAAO;AAC3C,SAASC,uBAAuB,QAAQ,aAAa;AAGrD,SAASC,mBAAmB,QAAQ,uBAAuB;AAE3D,OAAO,MAAMC,wBAAwB,GAAGA,CACtCC,MAAgC,EAChCC,MAA0B,KACvB;EACH,MAAM,CAACC,aAAa,EAAEC,gBAAgB,CAAC,GAAGP,QAAQ,CAAa;IAC7DQ,WAAW,EAAEJ,MAAM,CAACI,WAAW;IAC/BC,UAAU,EAAEL,MAAM,CAACK,UAAU;IAC7BC,SAAS,EAAEN,MAAM,CAACM,SAAS;IAC3BC,SAAS,EAAEP,MAAM,CAACO;EACpB,CAAC,CAAC;EAEF,MAAM,CAACC,KAAK,EAAEC,QAAQ,CAAC,GAAGb,QAAQ,CAA+B,IAAI,CAAC;EACtE,MAAMc,KAAK,GAAGb,uBAAuB,CAAC,CAAC;EACvC,MAAMc,SAAS,GAAG,CAAC,CAACD,KAAK,EAAEE,cAAc;EAEzC,MAAM;IAAEC,MAAM;IAAEL,KAAK,EAAEM;EAAe,CAAC,GAAGhB,mBAAmB,CAC3DE,MAAM,CAACK,UAAU,EACjBJ,MACF,CAAC;EAEDN,SAAS,CAAC,MAAM;IACd,IAAIgB,SAAS,EAAE;MACbR,gBAAgB,CAAC;QACfC,WAAW,EAAEJ,MAAM,CAACI,WAAW;QAC/BC,UAAU,EAAEL,MAAM,CAACK,UAAU;QAC7BC,SAAS,EAAEN,MAAM,CAACM,SAAS;QAC3BC,SAAS,EAAEP,MAAM,CAACO,SAAS;QAC3BQ,GAAG,EAAEF,MAAM,EAAEG,GAAG;QAChBC,IAAI,EAAEJ,MAAM,EAAEK,GAAG;QACjBC,gBAAgB,EAAEN,MAAM,EAAEO,gBAAgB;QAC1CC,iBAAiB,EAAER,MAAM,EAAES,gBAAgB;QAC3CC,kBAAkB,EAAEV,MAAM,EAAEW,0BAA0B;QACtDC,MAAM,EAAEZ,MAAM,EAAEY,MAAM;QACtBC,gBAAgB,EAAEb,MAAM,EAAEa,gBAAgB;QAC1CC,IAAI,EAAEd,MAAM,EAAEc,IAAI;QAClBC,GAAG,EAAEf,MAAM,EAAEe,GAAG;QAChBC,UAAU,EAAE7B,MAAM,CAAC6B;MACrB,CAAC,CAAC;MACFpB,QAAQ,CAACK,cAAc,CAAC;IAC1B;EACF,CAAC,EAAE,CAACD,MAAM,EAAEb,MAAM,EAAEW,SAAS,EAAEG,cAAc,CAAC,CAAC;EAE/C,OAAO;IACLZ,aAAa;IACbM,KAAK;IACLsB,GAAG,EAAEpB,KAAK,CAACoB;EACb,CAAC;AACH,CAAC","ignoreList":[]}
@@ -1,8 +1,3 @@
1
- function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
2
- function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
3
- function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
4
- function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
5
- function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
6
1
  import { DataSource } from '@oanda/labs-instruments-table-widget/src/gql/types/graphql';
7
2
  import React, { useEffect, useState } from 'react';
8
3
  import { LIVE_RATES_CONNECTION_ERROR, LIVE_RATES_EVENT_NAME, LIVE_RATES_RATE_ERROR, SET_QUERY_EVENT_NAME } from '../../constants';
@@ -27,10 +22,10 @@ export const LiveRatesProvider = _ref => {
27
22
  detail
28
23
  } = _ref2;
29
24
  if (multipleDataSources) {
30
- if ((detail === null || detail === void 0 ? void 0 : detail.dataSource) === DataSource.Mt5) {
25
+ if (detail?.dataSource === DataSource.Mt5) {
31
26
  setSecondSource(new EventSource(buildUrl(url, detail, options)));
32
27
  }
33
- if ((detail === null || detail === void 0 ? void 0 : detail.dataSource) === DataSource.V20) {
28
+ if (detail?.dataSource === DataSource.V20) {
34
29
  setSource(new EventSource(buildUrl(url, detail, options)));
35
30
  }
36
31
  } else {
@@ -45,30 +40,31 @@ export const LiveRatesProvider = _ref => {
45
40
  error: 'Connection error'
46
41
  } : decodeLiveRateMessage(e.data);
47
42
  target.dispatchEvent(new CustomEvent(message.symbol, {
48
- detail: _objectSpread({
49
- messageType
50
- }, message)
43
+ detail: {
44
+ messageType,
45
+ ...message
46
+ }
51
47
  }));
52
48
  };
53
- source === null || source === void 0 || source.addEventListener(eventName, listener(eventName));
54
- source === null || source === void 0 || source.addEventListener(LIVE_RATES_RATE_ERROR, listener(LIVE_RATES_RATE_ERROR));
55
- source === null || source === void 0 || source.addEventListener('error', listener(LIVE_RATES_CONNECTION_ERROR));
49
+ source?.addEventListener(eventName, listener(eventName));
50
+ source?.addEventListener(LIVE_RATES_RATE_ERROR, listener(LIVE_RATES_RATE_ERROR));
51
+ source?.addEventListener('error', listener(LIVE_RATES_CONNECTION_ERROR));
56
52
  if (multipleDataSources && secondSource) {
57
- secondSource === null || secondSource === void 0 || secondSource.addEventListener(eventName, listener(eventName));
58
- secondSource === null || secondSource === void 0 || secondSource.addEventListener(LIVE_RATES_RATE_ERROR, listener(LIVE_RATES_RATE_ERROR));
59
- secondSource === null || secondSource === void 0 || secondSource.addEventListener('error', listener(LIVE_RATES_CONNECTION_ERROR));
53
+ secondSource?.addEventListener(eventName, listener(eventName));
54
+ secondSource?.addEventListener(LIVE_RATES_RATE_ERROR, listener(LIVE_RATES_RATE_ERROR));
55
+ secondSource?.addEventListener('error', listener(LIVE_RATES_CONNECTION_ERROR));
60
56
  }
61
57
  return () => {
62
58
  target.removeEventListener(SET_QUERY_EVENT_NAME, setQueryListener);
63
- source === null || source === void 0 || source.removeEventListener(eventName, listener(eventName));
64
- source === null || source === void 0 || source.removeEventListener(LIVE_RATES_RATE_ERROR, listener(LIVE_RATES_RATE_ERROR));
65
- source === null || source === void 0 || source.removeEventListener('error', listener(LIVE_RATES_CONNECTION_ERROR));
66
- source === null || source === void 0 || source.close();
59
+ source?.removeEventListener(eventName, listener(eventName));
60
+ source?.removeEventListener(LIVE_RATES_RATE_ERROR, listener(LIVE_RATES_RATE_ERROR));
61
+ source?.removeEventListener('error', listener(LIVE_RATES_CONNECTION_ERROR));
62
+ source?.close();
67
63
  if (multipleDataSources && secondSource) {
68
- secondSource === null || secondSource === void 0 || secondSource.removeEventListener(eventName, listener(eventName));
69
- secondSource === null || secondSource === void 0 || secondSource.removeEventListener(LIVE_RATES_RATE_ERROR, listener(LIVE_RATES_RATE_ERROR));
70
- secondSource === null || secondSource === void 0 || secondSource.removeEventListener('error', listener(LIVE_RATES_CONNECTION_ERROR));
71
- secondSource === null || secondSource === void 0 || secondSource.close();
64
+ secondSource?.removeEventListener(eventName, listener(eventName));
65
+ secondSource?.removeEventListener(LIVE_RATES_RATE_ERROR, listener(LIVE_RATES_RATE_ERROR));
66
+ secondSource?.removeEventListener('error', listener(LIVE_RATES_CONNECTION_ERROR));
67
+ secondSource?.close();
72
68
  }
73
69
  };
74
70
  }, [source, target]);
@@ -1 +1 @@
1
- {"version":3,"file":"LiveRatesProvider.js","names":["DataSource","React","useEffect","useState","LIVE_RATES_CONNECTION_ERROR","LIVE_RATES_EVENT_NAME","LIVE_RATES_RATE_ERROR","SET_QUERY_EVENT_NAME","buildUrl","decodeLiveRateMessage","LiveRatesContext","LiveRatesProvider","_ref","url","query","options","children","eventSource","eventTarget","eventName","multipleDataSources","source","setSource","EventSource","secondSource","setSecondSource","undefined","target","EventTarget","setQueryListener","_ref2","detail","dataSource","Mt5","V20","addEventListener","listener","messageType","e","message","symbol","error","data","dispatchEvent","CustomEvent","_objectSpread","removeEventListener","close","createElement","Provider","value"],"sources":["../../../../src/providers/LiveRates/LiveRatesProvider.tsx"],"sourcesContent":["import { DataSource } from '@oanda/labs-instruments-table-widget/src/gql/types/graphql';\nimport type { PropsWithChildren, ReactElement } from 'react';\nimport React, { useEffect, useState } from 'react';\n\nimport {\n LIVE_RATES_CONNECTION_ERROR,\n LIVE_RATES_EVENT_NAME,\n LIVE_RATES_RATE_ERROR,\n SET_QUERY_EVENT_NAME,\n} from '../../constants';\nimport type {\n LiveRatesConfig,\n LiveRatesConnectionErrorMessage,\n LiveRatesErrorMessage,\n LiveRatesProviderQuery,\n LiveRatesUpdateMessage,\n} from '../../types';\nimport { buildUrl, decodeLiveRateMessage } from '../../utils/liveRates';\nimport { LiveRatesContext } from './LiveRatesContext';\n\ntype LiveRatesProviderProps = PropsWithChildren & LiveRatesConfig;\n\nexport const LiveRatesProvider: React.FC<LiveRatesProviderProps> = ({\n url,\n query,\n options,\n children,\n eventSource,\n eventTarget,\n eventName = LIVE_RATES_EVENT_NAME,\n multipleDataSources = false,\n}): ReactElement => {\n const [source, setSource] = useState(\n eventSource || (query && new EventSource(buildUrl(url, query, options)))\n );\n const [secondSource, setSecondSource] = useState<EventSource | undefined>(\n undefined\n );\n const target = eventTarget || new EventTarget();\n\n const setQueryListener: EventListener = ({\n detail,\n }: CustomEventInit<LiveRatesProviderQuery>) => {\n if (multipleDataSources) {\n if (detail?.dataSource === DataSource.Mt5) {\n setSecondSource(new EventSource(buildUrl(url, detail, options)));\n }\n if (detail?.dataSource === DataSource.V20) {\n setSource(new EventSource(buildUrl(url, detail, options)));\n }\n } else {\n setSource(new EventSource(buildUrl(url, detail, options)));\n }\n };\n\n target.addEventListener(SET_QUERY_EVENT_NAME, setQueryListener);\n\n useEffect(\n () => {\n const listener =\n (messageType: string) => (e: MessageEventInit<string>) => {\n const message =\n messageType === LIVE_RATES_CONNECTION_ERROR\n ? ({\n symbol: LIVE_RATES_CONNECTION_ERROR,\n error: 'Connection error',\n } as LiveRatesConnectionErrorMessage)\n : decodeLiveRateMessage(e.data as string);\n\n target.dispatchEvent(\n new CustomEvent<\n | LiveRatesUpdateMessage\n | LiveRatesErrorMessage\n | LiveRatesConnectionErrorMessage\n >(message.symbol, {\n detail: { messageType, ...message },\n })\n );\n };\n\n source?.addEventListener(eventName, listener(eventName));\n source?.addEventListener(\n LIVE_RATES_RATE_ERROR,\n listener(LIVE_RATES_RATE_ERROR)\n );\n source?.addEventListener('error', listener(LIVE_RATES_CONNECTION_ERROR));\n\n if (multipleDataSources && secondSource) {\n secondSource?.addEventListener(eventName, listener(eventName));\n secondSource?.addEventListener(\n LIVE_RATES_RATE_ERROR,\n listener(LIVE_RATES_RATE_ERROR)\n );\n secondSource?.addEventListener(\n 'error',\n listener(LIVE_RATES_CONNECTION_ERROR)\n );\n }\n\n return () => {\n target.removeEventListener(SET_QUERY_EVENT_NAME, setQueryListener);\n source?.removeEventListener(eventName, listener(eventName));\n source?.removeEventListener(\n LIVE_RATES_RATE_ERROR,\n listener(LIVE_RATES_RATE_ERROR)\n );\n source?.removeEventListener(\n 'error',\n listener(LIVE_RATES_CONNECTION_ERROR)\n );\n source?.close();\n\n if (multipleDataSources && secondSource) {\n secondSource?.removeEventListener(eventName, listener(eventName));\n secondSource?.removeEventListener(\n LIVE_RATES_RATE_ERROR,\n listener(LIVE_RATES_RATE_ERROR)\n );\n secondSource?.removeEventListener(\n 'error',\n listener(LIVE_RATES_CONNECTION_ERROR)\n );\n secondSource?.close();\n }\n };\n },\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [source, target]\n );\n\n return (\n <LiveRatesContext.Provider\n value={{\n target,\n source,\n }}\n >\n {children}\n </LiveRatesContext.Provider>\n );\n};\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"LiveRatesProvider.js","names":["DataSource","React","useEffect","useState","LIVE_RATES_CONNECTION_ERROR","LIVE_RATES_EVENT_NAME","LIVE_RATES_RATE_ERROR","SET_QUERY_EVENT_NAME","buildUrl","decodeLiveRateMessage","LiveRatesContext","LiveRatesProvider","_ref","url","query","options","children","eventSource","eventTarget","eventName","multipleDataSources","source","setSource","EventSource","secondSource","setSecondSource","undefined","target","EventTarget","setQueryListener","_ref2","detail","dataSource","Mt5","V20","addEventListener","listener","messageType","e","message","symbol","error","data","dispatchEvent","CustomEvent","removeEventListener","close","createElement","Provider","value"],"sources":["../../../../src/providers/LiveRates/LiveRatesProvider.tsx"],"sourcesContent":["import { DataSource } from '@oanda/labs-instruments-table-widget/src/gql/types/graphql';\nimport type { PropsWithChildren, ReactElement } from 'react';\nimport React, { useEffect, useState } from 'react';\n\nimport {\n LIVE_RATES_CONNECTION_ERROR,\n LIVE_RATES_EVENT_NAME,\n LIVE_RATES_RATE_ERROR,\n SET_QUERY_EVENT_NAME,\n} from '../../constants';\nimport type {\n LiveRatesConfig,\n LiveRatesConnectionErrorMessage,\n LiveRatesErrorMessage,\n LiveRatesProviderQuery,\n LiveRatesUpdateMessage,\n} from '../../types';\nimport { buildUrl, decodeLiveRateMessage } from '../../utils/liveRates';\nimport { LiveRatesContext } from './LiveRatesContext';\n\ntype LiveRatesProviderProps = PropsWithChildren & LiveRatesConfig;\n\nexport const LiveRatesProvider: React.FC<LiveRatesProviderProps> = ({\n url,\n query,\n options,\n children,\n eventSource,\n eventTarget,\n eventName = LIVE_RATES_EVENT_NAME,\n multipleDataSources = false,\n}): ReactElement => {\n const [source, setSource] = useState(\n eventSource || (query && new EventSource(buildUrl(url, query, options)))\n );\n const [secondSource, setSecondSource] = useState<EventSource | undefined>(\n undefined\n );\n const target = eventTarget || new EventTarget();\n\n const setQueryListener: EventListener = ({\n detail,\n }: CustomEventInit<LiveRatesProviderQuery>) => {\n if (multipleDataSources) {\n if (detail?.dataSource === DataSource.Mt5) {\n setSecondSource(new EventSource(buildUrl(url, detail, options)));\n }\n if (detail?.dataSource === DataSource.V20) {\n setSource(new EventSource(buildUrl(url, detail, options)));\n }\n } else {\n setSource(new EventSource(buildUrl(url, detail, options)));\n }\n };\n\n target.addEventListener(SET_QUERY_EVENT_NAME, setQueryListener);\n\n useEffect(\n () => {\n const listener =\n (messageType: string) => (e: MessageEventInit<string>) => {\n const message =\n messageType === LIVE_RATES_CONNECTION_ERROR\n ? ({\n symbol: LIVE_RATES_CONNECTION_ERROR,\n error: 'Connection error',\n } as LiveRatesConnectionErrorMessage)\n : decodeLiveRateMessage(e.data as string);\n\n target.dispatchEvent(\n new CustomEvent<\n | LiveRatesUpdateMessage\n | LiveRatesErrorMessage\n | LiveRatesConnectionErrorMessage\n >(message.symbol, {\n detail: { messageType, ...message },\n })\n );\n };\n\n source?.addEventListener(eventName, listener(eventName));\n source?.addEventListener(\n LIVE_RATES_RATE_ERROR,\n listener(LIVE_RATES_RATE_ERROR)\n );\n source?.addEventListener('error', listener(LIVE_RATES_CONNECTION_ERROR));\n\n if (multipleDataSources && secondSource) {\n secondSource?.addEventListener(eventName, listener(eventName));\n secondSource?.addEventListener(\n LIVE_RATES_RATE_ERROR,\n listener(LIVE_RATES_RATE_ERROR)\n );\n secondSource?.addEventListener(\n 'error',\n listener(LIVE_RATES_CONNECTION_ERROR)\n );\n }\n\n return () => {\n target.removeEventListener(SET_QUERY_EVENT_NAME, setQueryListener);\n source?.removeEventListener(eventName, listener(eventName));\n source?.removeEventListener(\n LIVE_RATES_RATE_ERROR,\n listener(LIVE_RATES_RATE_ERROR)\n );\n source?.removeEventListener(\n 'error',\n listener(LIVE_RATES_CONNECTION_ERROR)\n );\n source?.close();\n\n if (multipleDataSources && secondSource) {\n secondSource?.removeEventListener(eventName, listener(eventName));\n secondSource?.removeEventListener(\n LIVE_RATES_RATE_ERROR,\n listener(LIVE_RATES_RATE_ERROR)\n );\n secondSource?.removeEventListener(\n 'error',\n listener(LIVE_RATES_CONNECTION_ERROR)\n );\n secondSource?.close();\n }\n };\n },\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [source, target]\n );\n\n return (\n <LiveRatesContext.Provider\n value={{\n target,\n source,\n }}\n >\n {children}\n </LiveRatesContext.Provider>\n );\n};\n"],"mappings":"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","ignoreList":[]}
@@ -1,8 +1,3 @@
1
- function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
2
- function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
3
- function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
4
- function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
5
- function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
6
1
  import { ApolloProvider } from '@apollo/client';
7
2
  import { LocaleProvider } from '@oanda/mono-i18n';
8
3
  import React, { Suspense } from 'react';
@@ -37,7 +32,10 @@ export const WidgetProvider = _ref => {
37
32
  fitContent,
38
33
  removePadding,
39
34
  size
40
- } = _objectSpread(_objectSpread({}, defaultStyling), styling);
35
+ } = {
36
+ ...defaultStyling,
37
+ ...styling
38
+ };
41
39
  return React.createElement(LocaleProvider, {
42
40
  locale: getLocale(locale),
43
41
  translations: translations
@@ -1 +1 @@
1
- {"version":3,"file":"WidgetProvider.js","names":["ApolloProvider","LocaleProvider","React","Suspense","Theme","getLocale","ConditionalProvider","LayoutProvider","LiveRatesProvider","defaultStyling","fitContent","removePadding","size","undefined","WidgetProvider","_ref","children","locale","translations","client","theme","Light","withSuspense","styling","liveRates","url","options","multipleDataSources","_objectSpread","createElement","Provider","render","shouldFitContent","shouldRemovePadding"],"sources":["../../../../src/providers/Widget/WidgetProvider.tsx"],"sourcesContent":["import type { ApolloClient, NormalizedCacheObject } from '@apollo/client';\nimport { ApolloProvider } from '@apollo/client';\nimport type { Locale, Translations } from '@oanda/mono-i18n';\nimport { LocaleProvider } from '@oanda/mono-i18n';\nimport type { PropsWithChildren } from 'react';\nimport React, { Suspense } from 'react';\n\nimport type { LiveRatesConfig, Size, WidgetStyling } from '../../types';\nimport { Theme } from '../../types';\nimport { getLocale } from '../../utils';\nimport { ConditionalProvider } from '../ConditionalProvider';\nimport { LayoutProvider } from '../Layout';\nimport { LiveRatesProvider } from '../LiveRates';\n\ninterface WidgetLayout {\n size?: Size;\n}\n\ntype WidgetProviderProps = PropsWithChildren & {\n locale: Locale;\n translations: Translations;\n client: ApolloClient<NormalizedCacheObject>;\n withSuspense?: boolean;\n theme?: Theme;\n styling?: Partial<WidgetStyling> & WidgetLayout;\n liveRates?: LiveRatesConfig;\n};\n\nconst defaultStyling: WidgetStyling & WidgetLayout = {\n fitContent: false,\n removePadding: false,\n size: undefined,\n};\n\nexport const WidgetProvider: React.FC<WidgetProviderProps> = ({\n children,\n locale,\n translations,\n client,\n theme = Theme.Light,\n withSuspense = false,\n styling,\n liveRates: { url, options, multipleDataSources } = { url: '' },\n}) => {\n const { fitContent, removePadding, size } = {\n ...defaultStyling,\n ...styling,\n };\n\n return (\n <LocaleProvider locale={getLocale(locale)} translations={translations}>\n <ConditionalProvider\n Provider={\n <LiveRatesProvider\n multipleDataSources={multipleDataSources}\n options={options}\n url={url}\n />\n }\n render={!!url}\n >\n <ApolloProvider client={client}>\n <ConditionalProvider Provider={<Suspense />} render={withSuspense}>\n <LayoutProvider\n shouldFitContent={fitContent}\n shouldRemovePadding={removePadding}\n size={size}\n theme={theme}\n >\n {children}\n </LayoutProvider>\n </ConditionalProvider>\n </ApolloProvider>\n </ConditionalProvider>\n </LocaleProvider>\n );\n};\n"],"mappings":";;;;;AACA,SAASA,cAAc,QAAQ,gBAAgB;AAE/C,SAASC,cAAc,QAAQ,kBAAkB;AAEjD,OAAOC,KAAK,IAAIC,QAAQ,QAAQ,OAAO;AAGvC,SAASC,KAAK,QAAQ,aAAa;AACnC,SAASC,SAAS,QAAQ,aAAa;AACvC,SAASC,mBAAmB,QAAQ,wBAAwB;AAC5D,SAASC,cAAc,QAAQ,WAAW;AAC1C,SAASC,iBAAiB,QAAQ,cAAc;AAgBhD,MAAMC,cAA4C,GAAG;EACnDC,UAAU,EAAE,KAAK;EACjBC,aAAa,EAAE,KAAK;EACpBC,IAAI,EAAEC;AACR,CAAC;AAED,OAAO,MAAMC,cAA6C,GAAGC,IAAA,IASvD;EAAA,IATwD;IAC5DC,QAAQ;IACRC,MAAM;IACNC,YAAY;IACZC,MAAM;IACNC,KAAK,GAAGhB,KAAK,CAACiB,KAAK;IACnBC,YAAY,GAAG,KAAK;IACpBC,OAAO;IACPC,SAAS,EAAE;MAAEC,GAAG;MAAEC,OAAO;MAAEC;IAAoB,CAAC,GAAG;MAAEF,GAAG,EAAE;IAAG;EAC/D,CAAC,GAAAV,IAAA;EACC,MAAM;IAAEL,UAAU;IAAEC,aAAa;IAAEC;EAAK,CAAC,GAAAgB,aAAA,CAAAA,aAAA,KACpCnB,cAAc,GACdc,OAAO,CACX;EAED,OACErB,KAAA,CAAA2B,aAAA,CAAC5B,cAAc;IAACgB,MAAM,EAAEZ,SAAS,CAACY,MAAM,CAAE;IAACC,YAAY,EAAEA;EAAa,GACpEhB,KAAA,CAAA2B,aAAA,CAACvB,mBAAmB;IAClBwB,QAAQ,EACN5B,KAAA,CAAA2B,aAAA,CAACrB,iBAAiB;MAChBmB,mBAAmB,EAAEA,mBAAoB;MACzCD,OAAO,EAAEA,OAAQ;MACjBD,GAAG,EAAEA;IAAI,CACV,CACF;IACDM,MAAM,EAAE,CAAC,CAACN;EAAI,GAEdvB,KAAA,CAAA2B,aAAA,CAAC7B,cAAc;IAACmB,MAAM,EAAEA;EAAO,GAC7BjB,KAAA,CAAA2B,aAAA,CAACvB,mBAAmB;IAACwB,QAAQ,EAAE5B,KAAA,CAAA2B,aAAA,CAAC1B,QAAQ,MAAE,CAAE;IAAC4B,MAAM,EAAET;EAAa,GAChEpB,KAAA,CAAA2B,aAAA,CAACtB,cAAc;IACbyB,gBAAgB,EAAEtB,UAAW;IAC7BuB,mBAAmB,EAAEtB,aAAc;IACnCC,IAAI,EAAEA,IAAK;IACXQ,KAAK,EAAEA;EAAM,GAEZJ,QACa,CACG,CACP,CACG,CACP,CAAC;AAErB,CAAC","ignoreList":[]}
1
+ {"version":3,"file":"WidgetProvider.js","names":["ApolloProvider","LocaleProvider","React","Suspense","Theme","getLocale","ConditionalProvider","LayoutProvider","LiveRatesProvider","defaultStyling","fitContent","removePadding","size","undefined","WidgetProvider","_ref","children","locale","translations","client","theme","Light","withSuspense","styling","liveRates","url","options","multipleDataSources","createElement","Provider","render","shouldFitContent","shouldRemovePadding"],"sources":["../../../../src/providers/Widget/WidgetProvider.tsx"],"sourcesContent":["import type { ApolloClient, NormalizedCacheObject } from '@apollo/client';\nimport { ApolloProvider } from '@apollo/client';\nimport type { Locale, Translations } from '@oanda/mono-i18n';\nimport { LocaleProvider } from '@oanda/mono-i18n';\nimport type { PropsWithChildren } from 'react';\nimport React, { Suspense } from 'react';\n\nimport type { LiveRatesConfig, Size, WidgetStyling } from '../../types';\nimport { Theme } from '../../types';\nimport { getLocale } from '../../utils';\nimport { ConditionalProvider } from '../ConditionalProvider';\nimport { LayoutProvider } from '../Layout';\nimport { LiveRatesProvider } from '../LiveRates';\n\ninterface WidgetLayout {\n size?: Size;\n}\n\ntype WidgetProviderProps = PropsWithChildren & {\n locale: Locale;\n translations: Translations;\n client: ApolloClient<NormalizedCacheObject>;\n withSuspense?: boolean;\n theme?: Theme;\n styling?: Partial<WidgetStyling> & WidgetLayout;\n liveRates?: LiveRatesConfig;\n};\n\nconst defaultStyling: WidgetStyling & WidgetLayout = {\n fitContent: false,\n removePadding: false,\n size: undefined,\n};\n\nexport const WidgetProvider: React.FC<WidgetProviderProps> = ({\n children,\n locale,\n translations,\n client,\n theme = Theme.Light,\n withSuspense = false,\n styling,\n liveRates: { url, options, multipleDataSources } = { url: '' },\n}) => {\n const { fitContent, removePadding, size } = {\n ...defaultStyling,\n ...styling,\n };\n\n return (\n <LocaleProvider locale={getLocale(locale)} translations={translations}>\n <ConditionalProvider\n Provider={\n <LiveRatesProvider\n multipleDataSources={multipleDataSources}\n options={options}\n url={url}\n />\n }\n render={!!url}\n >\n <ApolloProvider client={client}>\n <ConditionalProvider Provider={<Suspense />} render={withSuspense}>\n <LayoutProvider\n shouldFitContent={fitContent}\n shouldRemovePadding={removePadding}\n size={size}\n theme={theme}\n >\n {children}\n </LayoutProvider>\n </ConditionalProvider>\n </ApolloProvider>\n </ConditionalProvider>\n </LocaleProvider>\n );\n};\n"],"mappings":"AACA,SAASA,cAAc,QAAQ,gBAAgB;AAE/C,SAASC,cAAc,QAAQ,kBAAkB;AAEjD,OAAOC,KAAK,IAAIC,QAAQ,QAAQ,OAAO;AAGvC,SAASC,KAAK,QAAQ,aAAa;AACnC,SAASC,SAAS,QAAQ,aAAa;AACvC,SAASC,mBAAmB,QAAQ,wBAAwB;AAC5D,SAASC,cAAc,QAAQ,WAAW;AAC1C,SAASC,iBAAiB,QAAQ,cAAc;AAgBhD,MAAMC,cAA4C,GAAG;EACnDC,UAAU,EAAE,KAAK;EACjBC,aAAa,EAAE,KAAK;EACpBC,IAAI,EAAEC;AACR,CAAC;AAED,OAAO,MAAMC,cAA6C,GAAGC,IAAA,IASvD;EAAA,IATwD;IAC5DC,QAAQ;IACRC,MAAM;IACNC,YAAY;IACZC,MAAM;IACNC,KAAK,GAAGhB,KAAK,CAACiB,KAAK;IACnBC,YAAY,GAAG,KAAK;IACpBC,OAAO;IACPC,SAAS,EAAE;MAAEC,GAAG;MAAEC,OAAO;MAAEC;IAAoB,CAAC,GAAG;MAAEF,GAAG,EAAE;IAAG;EAC/D,CAAC,GAAAV,IAAA;EACC,MAAM;IAAEL,UAAU;IAAEC,aAAa;IAAEC;EAAK,CAAC,GAAG;IAC1C,GAAGH,cAAc;IACjB,GAAGc;EACL,CAAC;EAED,OACErB,KAAA,CAAA0B,aAAA,CAAC3B,cAAc;IAACgB,MAAM,EAAEZ,SAAS,CAACY,MAAM,CAAE;IAACC,YAAY,EAAEA;EAAa,GACpEhB,KAAA,CAAA0B,aAAA,CAACtB,mBAAmB;IAClBuB,QAAQ,EACN3B,KAAA,CAAA0B,aAAA,CAACpB,iBAAiB;MAChBmB,mBAAmB,EAAEA,mBAAoB;MACzCD,OAAO,EAAEA,OAAQ;MACjBD,GAAG,EAAEA;IAAI,CACV,CACF;IACDK,MAAM,EAAE,CAAC,CAACL;EAAI,GAEdvB,KAAA,CAAA0B,aAAA,CAAC5B,cAAc;IAACmB,MAAM,EAAEA;EAAO,GAC7BjB,KAAA,CAAA0B,aAAA,CAACtB,mBAAmB;IAACuB,QAAQ,EAAE3B,KAAA,CAAA0B,aAAA,CAACzB,QAAQ,MAAE,CAAE;IAAC2B,MAAM,EAAER;EAAa,GAChEpB,KAAA,CAAA0B,aAAA,CAACrB,cAAc;IACbwB,gBAAgB,EAAErB,UAAW;IAC7BsB,mBAAmB,EAAErB,aAAc;IACnCC,IAAI,EAAEA,IAAK;IACXQ,KAAK,EAAEA;EAAM,GAEZJ,QACa,CACG,CACP,CACG,CACP,CAAC;AAErB,CAAC","ignoreList":[]}
@@ -1,8 +1,3 @@
1
- function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
2
- function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
3
- function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
4
- function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
5
- function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
6
1
  import { twColorPallete } from './colors';
7
2
  import { themes } from './themes';
8
3
  export const sharedPreset = {
@@ -10,7 +5,8 @@ export const sharedPreset = {
10
5
  plugins: [themes],
11
6
  theme: {
12
7
  extend: {
13
- colors: _objectSpread(_objectSpread({}, twColorPallete), {}, {
8
+ colors: {
9
+ ...twColorPallete,
14
10
  heatmap: {
15
11
  empty: '#D7D8D9',
16
12
  'strong-negative': '#DA6325',
@@ -21,7 +17,7 @@ export const sharedPreset = {
21
17
  positive: '#70D2AF',
22
18
  'strong-positive': '#008573'
23
19
  }
24
- }),
20
+ },
25
21
  backgroundImage: {
26
22
  loader: 'linear-gradient(90deg, hsl(var(--twc-border-primary))0%, hsl(var(--twc-border-secondary)) 50%, hsl(var(--twc-border-primary)) 100%);',
27
23
  whiteWithShadow: 'linear-gradient(270deg, transparent 0, rgba(215,217,221,0.5) 10px, #ffffff 10px)',
@@ -1 +1 @@
1
- {"version":3,"file":"preset.js","names":["twColorPallete","themes","sharedPreset","prefix","plugins","theme","extend","colors","_objectSpread","heatmap","empty","negative","neutral","positive","backgroundImage","loader","whiteWithShadow","lightGreyWithShadow","whiteOpacity","blackOpacity","keyframes","spinner","transform","transitionProperty","width","boxShadow","innerBorder","innerBorderBgColor","basic","fontFamily","sans"],"sources":["../../../src/tailwind/preset.ts"],"sourcesContent":["import type { Config } from 'tailwindcss';\n\nimport { twColorPallete } from './colors';\nimport { themes } from './themes';\n\nexport const sharedPreset: Omit<Config, 'content'> = {\n prefix: 'lw-',\n plugins: [themes],\n theme: {\n extend: {\n colors: {\n ...twColorPallete,\n heatmap: {\n empty: '#D7D8D9',\n 'strong-negative': '#DA6325',\n negative: '#EBA463',\n 'weak-negative': '#F6E8C3',\n neutral: '#F5F5F5',\n 'weak-positive': '#C7EAE5',\n positive: '#70D2AF',\n 'strong-positive': '#008573',\n },\n },\n backgroundImage: {\n loader:\n 'linear-gradient(90deg, hsl(var(--twc-border-primary))0%, hsl(var(--twc-border-secondary)) 50%, hsl(var(--twc-border-primary)) 100%);',\n whiteWithShadow:\n 'linear-gradient(270deg, transparent 0, rgba(215,217,221,0.5) 10px, #ffffff 10px)',\n lightGreyWithShadow:\n 'linear-gradient(270deg, transparent 0, rgba(215,217,221,0.5) 10px, #f4f8fa 10px)',\n whiteOpacity:\n 'linear-gradient(to left, rgba(255,255,255,0.5), white 0.625rem)',\n blackOpacity:\n 'linear-gradient(to left, rgba(0,0,0,0.5), black 0.625rem)',\n },\n keyframes: {\n spinner: {\n '0%': { transform: 'rotate(0deg)' },\n '85%': { transform: 'rotate(360deg)' },\n '100%': { transform: 'rotate(360deg)' },\n },\n loader: {\n '0%': { transform: 'translateX(-100%)' },\n '100%': { transform: 'translateX(100%)' },\n },\n },\n transitionProperty: {\n width: 'width, transform',\n },\n boxShadow: {\n innerBorder: 'inset 0 0 0 1px',\n innerBorderBgColor: 'inset 0 0 0 2px hsl(var(--twc-bg-primary))',\n basic: '0 2px 8px 0 rgba(0, 33, 74, 0.25)',\n },\n },\n fontFamily: {\n sans: ['Sofia W03', 'Helvetica Neue', 'Arial', 'sans-serif'],\n },\n },\n};\n"],"mappings":";;;;;AAEA,SAASA,cAAc,QAAQ,UAAU;AACzC,SAASC,MAAM,QAAQ,UAAU;AAEjC,OAAO,MAAMC,YAAqC,GAAG;EACnDC,MAAM,EAAE,KAAK;EACbC,OAAO,EAAE,CAACH,MAAM,CAAC;EACjBI,KAAK,EAAE;IACLC,MAAM,EAAE;MACNC,MAAM,EAAAC,aAAA,CAAAA,aAAA,KACDR,cAAc;QACjBS,OAAO,EAAE;UACPC,KAAK,EAAE,SAAS;UAChB,iBAAiB,EAAE,SAAS;UAC5BC,QAAQ,EAAE,SAAS;UACnB,eAAe,EAAE,SAAS;UAC1BC,OAAO,EAAE,SAAS;UAClB,eAAe,EAAE,SAAS;UAC1BC,QAAQ,EAAE,SAAS;UACnB,iBAAiB,EAAE;QACrB;MAAC,EACF;MACDC,eAAe,EAAE;QACfC,MAAM,EACJ,sIAAsI;QACxIC,eAAe,EACb,kFAAkF;QACpFC,mBAAmB,EACjB,kFAAkF;QACpFC,YAAY,EACV,iEAAiE;QACnEC,YAAY,EACV;MACJ,CAAC;MACDC,SAAS,EAAE;QACTC,OAAO,EAAE;UACP,IAAI,EAAE;YAAEC,SAAS,EAAE;UAAe,CAAC;UACnC,KAAK,EAAE;YAAEA,SAAS,EAAE;UAAiB,CAAC;UACtC,MAAM,EAAE;YAAEA,SAAS,EAAE;UAAiB;QACxC,CAAC;QACDP,MAAM,EAAE;UACN,IAAI,EAAE;YAAEO,SAAS,EAAE;UAAoB,CAAC;UACxC,MAAM,EAAE;YAAEA,SAAS,EAAE;UAAmB;QAC1C;MACF,CAAC;MACDC,kBAAkB,EAAE;QAClBC,KAAK,EAAE;MACT,CAAC;MACDC,SAAS,EAAE;QACTC,WAAW,EAAE,iBAAiB;QAC9BC,kBAAkB,EAAE,4CAA4C;QAChEC,KAAK,EAAE;MACT;IACF,CAAC;IACDC,UAAU,EAAE;MACVC,IAAI,EAAE,CAAC,WAAW,EAAE,gBAAgB,EAAE,OAAO,EAAE,YAAY;IAC7D;EACF;AACF,CAAC","ignoreList":[]}
1
+ {"version":3,"file":"preset.js","names":["twColorPallete","themes","sharedPreset","prefix","plugins","theme","extend","colors","heatmap","empty","negative","neutral","positive","backgroundImage","loader","whiteWithShadow","lightGreyWithShadow","whiteOpacity","blackOpacity","keyframes","spinner","transform","transitionProperty","width","boxShadow","innerBorder","innerBorderBgColor","basic","fontFamily","sans"],"sources":["../../../src/tailwind/preset.ts"],"sourcesContent":["import type { Config } from 'tailwindcss';\n\nimport { twColorPallete } from './colors';\nimport { themes } from './themes';\n\nexport const sharedPreset: Omit<Config, 'content'> = {\n prefix: 'lw-',\n plugins: [themes],\n theme: {\n extend: {\n colors: {\n ...twColorPallete,\n heatmap: {\n empty: '#D7D8D9',\n 'strong-negative': '#DA6325',\n negative: '#EBA463',\n 'weak-negative': '#F6E8C3',\n neutral: '#F5F5F5',\n 'weak-positive': '#C7EAE5',\n positive: '#70D2AF',\n 'strong-positive': '#008573',\n },\n },\n backgroundImage: {\n loader:\n 'linear-gradient(90deg, hsl(var(--twc-border-primary))0%, hsl(var(--twc-border-secondary)) 50%, hsl(var(--twc-border-primary)) 100%);',\n whiteWithShadow:\n 'linear-gradient(270deg, transparent 0, rgba(215,217,221,0.5) 10px, #ffffff 10px)',\n lightGreyWithShadow:\n 'linear-gradient(270deg, transparent 0, rgba(215,217,221,0.5) 10px, #f4f8fa 10px)',\n whiteOpacity:\n 'linear-gradient(to left, rgba(255,255,255,0.5), white 0.625rem)',\n blackOpacity:\n 'linear-gradient(to left, rgba(0,0,0,0.5), black 0.625rem)',\n },\n keyframes: {\n spinner: {\n '0%': { transform: 'rotate(0deg)' },\n '85%': { transform: 'rotate(360deg)' },\n '100%': { transform: 'rotate(360deg)' },\n },\n loader: {\n '0%': { transform: 'translateX(-100%)' },\n '100%': { transform: 'translateX(100%)' },\n },\n },\n transitionProperty: {\n width: 'width, transform',\n },\n boxShadow: {\n innerBorder: 'inset 0 0 0 1px',\n innerBorderBgColor: 'inset 0 0 0 2px hsl(var(--twc-bg-primary))',\n basic: '0 2px 8px 0 rgba(0, 33, 74, 0.25)',\n },\n },\n fontFamily: {\n sans: ['Sofia W03', 'Helvetica Neue', 'Arial', 'sans-serif'],\n },\n },\n};\n"],"mappings":"AAEA,SAASA,cAAc,QAAQ,UAAU;AACzC,SAASC,MAAM,QAAQ,UAAU;AAEjC,OAAO,MAAMC,YAAqC,GAAG;EACnDC,MAAM,EAAE,KAAK;EACbC,OAAO,EAAE,CAACH,MAAM,CAAC;EACjBI,KAAK,EAAE;IACLC,MAAM,EAAE;MACNC,MAAM,EAAE;QACN,GAAGP,cAAc;QACjBQ,OAAO,EAAE;UACPC,KAAK,EAAE,SAAS;UAChB,iBAAiB,EAAE,SAAS;UAC5BC,QAAQ,EAAE,SAAS;UACnB,eAAe,EAAE,SAAS;UAC1BC,OAAO,EAAE,SAAS;UAClB,eAAe,EAAE,SAAS;UAC1BC,QAAQ,EAAE,SAAS;UACnB,iBAAiB,EAAE;QACrB;MACF,CAAC;MACDC,eAAe,EAAE;QACfC,MAAM,EACJ,sIAAsI;QACxIC,eAAe,EACb,kFAAkF;QACpFC,mBAAmB,EACjB,kFAAkF;QACpFC,YAAY,EACV,iEAAiE;QACnEC,YAAY,EACV;MACJ,CAAC;MACDC,SAAS,EAAE;QACTC,OAAO,EAAE;UACP,IAAI,EAAE;YAAEC,SAAS,EAAE;UAAe,CAAC;UACnC,KAAK,EAAE;YAAEA,SAAS,EAAE;UAAiB,CAAC;UACtC,MAAM,EAAE;YAAEA,SAAS,EAAE;UAAiB;QACxC,CAAC;QACDP,MAAM,EAAE;UACN,IAAI,EAAE;YAAEO,SAAS,EAAE;UAAoB,CAAC;UACxC,MAAM,EAAE;YAAEA,SAAS,EAAE;UAAmB;QAC1C;MACF,CAAC;MACDC,kBAAkB,EAAE;QAClBC,KAAK,EAAE;MACT,CAAC;MACDC,SAAS,EAAE;QACTC,WAAW,EAAE,iBAAiB;QAC9BC,kBAAkB,EAAE,4CAA4C;QAChEC,KAAK,EAAE;MACT;IACF,CAAC;IACDC,UAAU,EAAE;MACVC,IAAI,EAAE,CAAC,WAAW,EAAE,gBAAgB,EAAE,OAAO,EAAE,YAAY;IAC7D;EACF;AACF,CAAC","ignoreList":[]}
@@ -1,14 +1,12 @@
1
- function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
2
- function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
3
- function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
4
- function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
5
- function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
6
1
  import { colorPalette } from '../colors';
7
2
  import { toTwConfigKeys } from '../utils';
8
3
  import { backgroundColors } from './background';
9
4
  import { borderColors } from './border';
10
5
  import { textColors } from './text';
11
- export const themeColors = _objectSpread(_objectSpread(_objectSpread(_objectSpread({}, textColors), backgroundColors), borderColors), {}, {
6
+ export const themeColors = {
7
+ ...textColors,
8
+ ...backgroundColors,
9
+ ...borderColors,
12
10
  primary: {
13
11
  dark: colorPalette.orange,
14
12
  light: colorPalette.bottleGreenDark
@@ -29,6 +27,6 @@ export const themeColors = _objectSpread(_objectSpread(_objectSpread(_objectSpre
29
27
  dark: colorPalette.orange,
30
28
  light: colorPalette.turquoiseLight
31
29
  }
32
- });
30
+ };
33
31
  export const twTheme = toTwConfigKeys(themeColors);
34
32
  //# sourceMappingURL=themeColors.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"themeColors.js","names":["colorPalette","toTwConfigKeys","backgroundColors","borderColors","textColors","themeColors","_objectSpread","primary","dark","orange","light","bottleGreenDark","secondary","navyBlue","ok","greenLight","danger","raspberryLight","chart","turquoiseLight","twTheme"],"sources":["../../../../src/tailwind/themes/themeColors.ts"],"sourcesContent":["import { colorPalette } from '../colors';\nimport type { ThemeColor } from '../types';\nimport { toTwConfigKeys } from '../utils';\nimport { type BackgroundColorKeys, backgroundColors } from './background';\nimport { borderColors, type BorderColorsKeys } from './border';\nimport { textColors, type TextColorsKeys } from './text';\n\ntype ThemeKeys =\n | 'primary'\n | 'secondary'\n | 'ok'\n | 'danger'\n | 'chart'\n | BackgroundColorKeys\n | BorderColorsKeys\n | TextColorsKeys;\n\nexport const themeColors: Record<ThemeKeys, ThemeColor> = {\n ...textColors,\n ...backgroundColors,\n ...borderColors,\n primary: {\n dark: colorPalette.orange,\n light: colorPalette.bottleGreenDark,\n },\n secondary: {\n dark: colorPalette.orange,\n light: colorPalette.navyBlue,\n },\n ok: {\n dark: colorPalette.bottleGreenDark,\n light: colorPalette.greenLight,\n },\n danger: {\n dark: colorPalette.orange,\n light: colorPalette.raspberryLight,\n },\n chart: {\n dark: colorPalette.orange,\n light: colorPalette.turquoiseLight,\n },\n};\n\nexport const twTheme = toTwConfigKeys(themeColors);\n"],"mappings":";;;;;AAAA,SAASA,YAAY,QAAQ,WAAW;AAExC,SAASC,cAAc,QAAQ,UAAU;AACzC,SAAmCC,gBAAgB,QAAQ,cAAc;AACzE,SAASC,YAAY,QAA+B,UAAU;AAC9D,SAASC,UAAU,QAA6B,QAAQ;AAYxD,OAAO,MAAMC,WAA0C,GAAAC,aAAA,CAAAA,aAAA,CAAAA,aAAA,CAAAA,aAAA,KAClDF,UAAU,GACVF,gBAAgB,GAChBC,YAAY;EACfI,OAAO,EAAE;IACPC,IAAI,EAAER,YAAY,CAACS,MAAM;IACzBC,KAAK,EAAEV,YAAY,CAACW;EACtB,CAAC;EACDC,SAAS,EAAE;IACTJ,IAAI,EAAER,YAAY,CAACS,MAAM;IACzBC,KAAK,EAAEV,YAAY,CAACa;EACtB,CAAC;EACDC,EAAE,EAAE;IACFN,IAAI,EAAER,YAAY,CAACW,eAAe;IAClCD,KAAK,EAAEV,YAAY,CAACe;EACtB,CAAC;EACDC,MAAM,EAAE;IACNR,IAAI,EAAER,YAAY,CAACS,MAAM;IACzBC,KAAK,EAAEV,YAAY,CAACiB;EACtB,CAAC;EACDC,KAAK,EAAE;IACLV,IAAI,EAAER,YAAY,CAACS,MAAM;IACzBC,KAAK,EAAEV,YAAY,CAACmB;EACtB;AAAC,EACF;AAED,OAAO,MAAMC,OAAO,GAAGnB,cAAc,CAACI,WAAW,CAAC","ignoreList":[]}
1
+ {"version":3,"file":"themeColors.js","names":["colorPalette","toTwConfigKeys","backgroundColors","borderColors","textColors","themeColors","primary","dark","orange","light","bottleGreenDark","secondary","navyBlue","ok","greenLight","danger","raspberryLight","chart","turquoiseLight","twTheme"],"sources":["../../../../src/tailwind/themes/themeColors.ts"],"sourcesContent":["import { colorPalette } from '../colors';\nimport type { ThemeColor } from '../types';\nimport { toTwConfigKeys } from '../utils';\nimport { type BackgroundColorKeys, backgroundColors } from './background';\nimport { borderColors, type BorderColorsKeys } from './border';\nimport { textColors, type TextColorsKeys } from './text';\n\ntype ThemeKeys =\n | 'primary'\n | 'secondary'\n | 'ok'\n | 'danger'\n | 'chart'\n | BackgroundColorKeys\n | BorderColorsKeys\n | TextColorsKeys;\n\nexport const themeColors: Record<ThemeKeys, ThemeColor> = {\n ...textColors,\n ...backgroundColors,\n ...borderColors,\n primary: {\n dark: colorPalette.orange,\n light: colorPalette.bottleGreenDark,\n },\n secondary: {\n dark: colorPalette.orange,\n light: colorPalette.navyBlue,\n },\n ok: {\n dark: colorPalette.bottleGreenDark,\n light: colorPalette.greenLight,\n },\n danger: {\n dark: colorPalette.orange,\n light: colorPalette.raspberryLight,\n },\n chart: {\n dark: colorPalette.orange,\n light: colorPalette.turquoiseLight,\n },\n};\n\nexport const twTheme = toTwConfigKeys(themeColors);\n"],"mappings":"AAAA,SAASA,YAAY,QAAQ,WAAW;AAExC,SAASC,cAAc,QAAQ,UAAU;AACzC,SAAmCC,gBAAgB,QAAQ,cAAc;AACzE,SAASC,YAAY,QAA+B,UAAU;AAC9D,SAASC,UAAU,QAA6B,QAAQ;AAYxD,OAAO,MAAMC,WAA0C,GAAG;EACxD,GAAGD,UAAU;EACb,GAAGF,gBAAgB;EACnB,GAAGC,YAAY;EACfG,OAAO,EAAE;IACPC,IAAI,EAAEP,YAAY,CAACQ,MAAM;IACzBC,KAAK,EAAET,YAAY,CAACU;EACtB,CAAC;EACDC,SAAS,EAAE;IACTJ,IAAI,EAAEP,YAAY,CAACQ,MAAM;IACzBC,KAAK,EAAET,YAAY,CAACY;EACtB,CAAC;EACDC,EAAE,EAAE;IACFN,IAAI,EAAEP,YAAY,CAACU,eAAe;IAClCD,KAAK,EAAET,YAAY,CAACc;EACtB,CAAC;EACDC,MAAM,EAAE;IACNR,IAAI,EAAEP,YAAY,CAACQ,MAAM;IACzBC,KAAK,EAAET,YAAY,CAACgB;EACtB,CAAC;EACDC,KAAK,EAAE;IACLV,IAAI,EAAEP,YAAY,CAACQ,MAAM;IACzBC,KAAK,EAAET,YAAY,CAACkB;EACtB;AACF,CAAC;AAED,OAAO,MAAMC,OAAO,GAAGlB,cAAc,CAACI,WAAW,CAAC","ignoreList":[]}
@@ -1,12 +1,8 @@
1
- function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
2
- function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
3
- function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
4
- function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
5
- function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
6
1
  export const toTwConfigKeys = obj => Object.keys(obj).reduce((result, key) => {
7
2
  const kebabKey = key.replace(/([a-z])([A-Z])/g, '$1-$2').replace(/([0-9]+)/g, '-$1').toLowerCase();
8
- return _objectSpread(_objectSpread({}, result), {}, {
3
+ return {
4
+ ...result,
9
5
  [kebabKey]: obj[key]
10
- });
6
+ };
11
7
  }, {});
12
8
  //# sourceMappingURL=utils.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","names":["toTwConfigKeys","obj","Object","keys","reduce","result","key","kebabKey","replace","toLowerCase","_objectSpread"],"sources":["../../../src/tailwind/utils.ts"],"sourcesContent":["import type { ThemeColor } from './types';\n\ntype KebabCase<S extends string> = S extends `${infer Head}${infer Tail}`\n ? Tail extends Capitalize<Tail>\n ? `${Lowercase<Head>}-${KebabCase<Tail>}`\n : `${Head}${KebabCase<Tail>}`\n : S;\n\ntype KebabCaseKeys<T extends Record<string, string | ThemeColor>> = {\n [K in keyof T as KebabCase<K & string>]: T[K];\n};\n\nexport const toTwConfigKeys = <T extends Record<string, string | ThemeColor>>(\n obj: T\n): KebabCaseKeys<T> =>\n Object.keys(obj).reduce((result, key) => {\n const kebabKey = key\n .replace(/([a-z])([A-Z])/g, '$1-$2')\n .replace(/([0-9]+)/g, '-$1')\n .toLowerCase();\n return {\n ...result,\n [kebabKey]: obj[key],\n };\n }, {} as KebabCaseKeys<T>);\n"],"mappings":";;;;;AAYA,OAAO,MAAMA,cAAc,GACzBC,GAAM,IAENC,MAAM,CAACC,IAAI,CAACF,GAAG,CAAC,CAACG,MAAM,CAAC,CAACC,MAAM,EAAEC,GAAG,KAAK;EACvC,MAAMC,QAAQ,GAAGD,GAAG,CACjBE,OAAO,CAAC,iBAAiB,EAAE,OAAO,CAAC,CACnCA,OAAO,CAAC,WAAW,EAAE,KAAK,CAAC,CAC3BC,WAAW,CAAC,CAAC;EAChB,OAAAC,aAAA,CAAAA,aAAA,KACKL,MAAM;IACT,CAACE,QAAQ,GAAGN,GAAG,CAACK,GAAG;EAAC;AAExB,CAAC,EAAE,CAAC,CAAqB,CAAC","ignoreList":[]}
1
+ {"version":3,"file":"utils.js","names":["toTwConfigKeys","obj","Object","keys","reduce","result","key","kebabKey","replace","toLowerCase"],"sources":["../../../src/tailwind/utils.ts"],"sourcesContent":["import type { ThemeColor } from './types';\n\ntype KebabCase<S extends string> = S extends `${infer Head}${infer Tail}`\n ? Tail extends Capitalize<Tail>\n ? `${Lowercase<Head>}-${KebabCase<Tail>}`\n : `${Head}${KebabCase<Tail>}`\n : S;\n\ntype KebabCaseKeys<T extends Record<string, string | ThemeColor>> = {\n [K in keyof T as KebabCase<K & string>]: T[K];\n};\n\nexport const toTwConfigKeys = <T extends Record<string, string | ThemeColor>>(\n obj: T\n): KebabCaseKeys<T> =>\n Object.keys(obj).reduce((result, key) => {\n const kebabKey = key\n .replace(/([a-z])([A-Z])/g, '$1-$2')\n .replace(/([0-9]+)/g, '-$1')\n .toLowerCase();\n return {\n ...result,\n [kebabKey]: obj[key],\n };\n }, {} as KebabCaseKeys<T>);\n"],"mappings":"AAYA,OAAO,MAAMA,cAAc,GACzBC,GAAM,IAENC,MAAM,CAACC,IAAI,CAACF,GAAG,CAAC,CAACG,MAAM,CAAC,CAACC,MAAM,EAAEC,GAAG,KAAK;EACvC,MAAMC,QAAQ,GAAGD,GAAG,CACjBE,OAAO,CAAC,iBAAiB,EAAE,OAAO,CAAC,CACnCA,OAAO,CAAC,WAAW,EAAE,KAAK,CAAC,CAC3BC,WAAW,CAAC,CAAC;EAChB,OAAO;IACL,GAAGJ,MAAM;IACT,CAACE,QAAQ,GAAGN,GAAG,CAACK,GAAG;EACrB,CAAC;AACH,CAAC,EAAE,CAAC,CAAqB,CAAC","ignoreList":[]}