@oanda/labs-widget-common 1.0.243 → 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 +1932 -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":"Select.js","names":["classnames","React","useEffect","useRef","useState","useOnClickOutside","ChevronDown","useLayoutProvider","cn","SearchInput","Truncate","Select","_ref","searchPlaceholder","selectLabel","options","selectedOption","setSelectedOption","className","maxHeight","isDark","ref","open","setOpen","active","setActive","searchValue","setSearchValue","singleSelect","length","withSearch","handleClickOutside","handleSearch","value","createElement","Fragment","concat","maxWidth","text","label","role","tabIndex","onClick","onKeyDown","e","key","style","autoFocus","placeholder","onChange","filter","option","toLowerCase","includes","map","index","array","id","type","onBlur","onFocus","onMouseOut","onMouseOver"],"sources":["../../../../src/components/Select/Select.tsx"],"sourcesContent":["import classnames from 'classnames';\nimport React, { useEffect, useRef, useState } from 'react';\nimport { useOnClickOutside } from 'usehooks-ts';\n\nimport { ChevronDown } from '../../images';\nimport { useLayoutProvider } from '../../providers';\nimport { cn } from '../../tailwind';\nimport { SearchInput } from '../SearchInput';\nimport { Truncate } from '../Truncate';\nimport type { SelectProps } from './types';\n\nconst Select = ({\n searchPlaceholder,\n selectLabel,\n options,\n selectedOption,\n setSelectedOption,\n className,\n maxHeight,\n}: SelectProps) => {\n const { isDark } = useLayoutProvider();\n const ref = useRef(null);\n const [open, setOpen] = useState(false);\n const [active, setActive] = useState('');\n const [searchValue, setSearchValue] = useState('');\n const singleSelect = options.length === 1;\n const withSearch = options.length > 6;\n\n const handleClickOutside = () => {\n setOpen(false);\n };\n\n const handleSearch = (value: string) => {\n setSearchValue(value);\n };\n\n useEffect(() => {\n setSearchValue('');\n }, [options]);\n\n useOnClickOutside(ref, handleClickOutside);\n\n return (\n <>\n {singleSelect ? (\n <div\n className={cn('lw-relative lw-grow lw-text-text-primary', className)}\n data-testid=\"single-option-select\"\n >\n {selectLabel && (\n <span className=\"lw-text-base lw-font-bold\">{`${selectLabel}:`}</span>\n )}\n <div className=\"lw-flex lw-h-[50px] lw-w-full lw-items-center lw-rounded lw-border lw-px-3\">\n <Truncate maxWidth={190} text={selectedOption.label} />\n </div>\n </div>\n ) : (\n <div\n ref={ref}\n className={cn('lw-relative lw-grow lw-text-text-primary', className)}\n data-testid=\"select\"\n >\n {selectLabel && (\n <span className=\"lw-text-base lw-font-bold\">{`${selectLabel}:`}</span>\n )}\n <div\n className=\"lw-flex lw-w-full lw-items-center lw-justify-between lw-rounded lw-border lw-stroke-text-primary lw-px-3 lw-py-2 focus:lw-outline-primary\"\n role=\"button\"\n tabIndex={0}\n onClick={() => setOpen(!open)}\n onKeyDown={(e: React.KeyboardEvent) => {\n if (e.key === 'Enter') {\n setOpen(!open);\n }\n }}\n >\n <Truncate maxWidth={190} text={selectedOption.label} />\n <ChevronDown\n className={classnames(\n 'lw-transition lw-duration-200 lw-ease-linear',\n {\n 'lw-rotate-180': open,\n }\n )}\n />\n </div>\n {open && (\n <ul\n className={cn(\n 'lw-absolute lw-z-[100] lw-mx-0 lw-mt-2 lw-w-full lw-list-none lw-appearance-none lw-overflow-y-auto lw-overflow-x-hidden lw-bg-bg-secondary lw-p-4',\n !isDark && 'lw-shadow-lg',\n !maxHeight && 'lw-max-h-60'\n )}\n data-testid=\"select-options\"\n style={{ maxHeight }}\n >\n {withSearch && (\n <li>\n <SearchInput\n // eslint-disable-next-line jsx-a11y/no-autofocus\n autoFocus\n placeholder={searchPlaceholder}\n value={searchValue}\n onChange={handleSearch}\n />\n </li>\n )}\n {options\n .filter((option) =>\n option.label.toLowerCase().includes(searchValue.toLowerCase())\n )\n .map((option, index, array) => (\n <li\n key={option.id}\n className=\"lw-mb-0 lw-font-sans\"\n value={option.id}\n >\n <button\n className={classnames(\n 'lw-w-full lw-cursor-pointer lw-text-left lw-text-sm focus:lw-outline-none',\n {\n 'lw-mb-4': array.length - 1 !== index,\n 'lw-text-primary': active === option.id,\n }\n )}\n type=\"button\"\n onBlur={() => setActive('')}\n onClick={() => {\n setSelectedOption(option);\n setOpen(false);\n }}\n onFocus={() => setActive(option.id)}\n onMouseOut={() => setActive('')}\n onMouseOver={() => setActive(option.id)}\n >\n <span\n className={classnames({\n 'lw-font-bold': option.id === selectedOption.id,\n })}\n >\n {option.label}\n </span>\n </button>\n </li>\n ))}\n </ul>\n )}\n </div>\n )}\n </>\n );\n};\n\nexport { Select };\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"Select.js","names":["classnames","React","useEffect","useRef","useState","useOnClickOutside","ChevronDown","useLayoutProvider","cn","SearchInput","Truncate","Select","_ref","searchPlaceholder","selectLabel","options","selectedOption","setSelectedOption","className","maxHeight","isDark","ref","open","setOpen","active","setActive","searchValue","setSearchValue","singleSelect","length","withSearch","handleClickOutside","handleSearch","value","createElement","Fragment","maxWidth","text","label","role","tabIndex","onClick","onKeyDown","e","key","style","autoFocus","placeholder","onChange","filter","option","toLowerCase","includes","map","index","array","id","type","onBlur","onFocus","onMouseOut","onMouseOver"],"sources":["../../../../src/components/Select/Select.tsx"],"sourcesContent":["import classnames from 'classnames';\nimport React, { useEffect, useRef, useState } from 'react';\nimport { useOnClickOutside } from 'usehooks-ts';\n\nimport { ChevronDown } from '../../images';\nimport { useLayoutProvider } from '../../providers';\nimport { cn } from '../../tailwind';\nimport { SearchInput } from '../SearchInput';\nimport { Truncate } from '../Truncate';\nimport type { SelectProps } from './types';\n\nconst Select = ({\n searchPlaceholder,\n selectLabel,\n options,\n selectedOption,\n setSelectedOption,\n className,\n maxHeight,\n}: SelectProps) => {\n const { isDark } = useLayoutProvider();\n const ref = useRef(null);\n const [open, setOpen] = useState(false);\n const [active, setActive] = useState('');\n const [searchValue, setSearchValue] = useState('');\n const singleSelect = options.length === 1;\n const withSearch = options.length > 6;\n\n const handleClickOutside = () => {\n setOpen(false);\n };\n\n const handleSearch = (value: string) => {\n setSearchValue(value);\n };\n\n useEffect(() => {\n setSearchValue('');\n }, [options]);\n\n useOnClickOutside(ref, handleClickOutside);\n\n return (\n <>\n {singleSelect ? (\n <div\n className={cn('lw-relative lw-grow lw-text-text-primary', className)}\n data-testid=\"single-option-select\"\n >\n {selectLabel && (\n <span className=\"lw-text-base lw-font-bold\">{`${selectLabel}:`}</span>\n )}\n <div className=\"lw-flex lw-h-[50px] lw-w-full lw-items-center lw-rounded lw-border lw-px-3\">\n <Truncate maxWidth={190} text={selectedOption.label} />\n </div>\n </div>\n ) : (\n <div\n ref={ref}\n className={cn('lw-relative lw-grow lw-text-text-primary', className)}\n data-testid=\"select\"\n >\n {selectLabel && (\n <span className=\"lw-text-base lw-font-bold\">{`${selectLabel}:`}</span>\n )}\n <div\n className=\"lw-flex lw-w-full lw-items-center lw-justify-between lw-rounded lw-border lw-stroke-text-primary lw-px-3 lw-py-2 focus:lw-outline-primary\"\n role=\"button\"\n tabIndex={0}\n onClick={() => setOpen(!open)}\n onKeyDown={(e: React.KeyboardEvent) => {\n if (e.key === 'Enter') {\n setOpen(!open);\n }\n }}\n >\n <Truncate maxWidth={190} text={selectedOption.label} />\n <ChevronDown\n className={classnames(\n 'lw-transition lw-duration-200 lw-ease-linear',\n {\n 'lw-rotate-180': open,\n }\n )}\n />\n </div>\n {open && (\n <ul\n className={cn(\n 'lw-absolute lw-z-[100] lw-mx-0 lw-mt-2 lw-w-full lw-list-none lw-appearance-none lw-overflow-y-auto lw-overflow-x-hidden lw-bg-bg-secondary lw-p-4',\n !isDark && 'lw-shadow-lg',\n !maxHeight && 'lw-max-h-60'\n )}\n data-testid=\"select-options\"\n style={{ maxHeight }}\n >\n {withSearch && (\n <li>\n <SearchInput\n // eslint-disable-next-line jsx-a11y/no-autofocus\n autoFocus\n placeholder={searchPlaceholder}\n value={searchValue}\n onChange={handleSearch}\n />\n </li>\n )}\n {options\n .filter((option) =>\n option.label.toLowerCase().includes(searchValue.toLowerCase())\n )\n .map((option, index, array) => (\n <li\n key={option.id}\n className=\"lw-mb-0 lw-font-sans\"\n value={option.id}\n >\n <button\n className={classnames(\n 'lw-w-full lw-cursor-pointer lw-text-left lw-text-sm focus:lw-outline-none',\n {\n 'lw-mb-4': array.length - 1 !== index,\n 'lw-text-primary': active === option.id,\n }\n )}\n type=\"button\"\n onBlur={() => setActive('')}\n onClick={() => {\n setSelectedOption(option);\n setOpen(false);\n }}\n onFocus={() => setActive(option.id)}\n onMouseOut={() => setActive('')}\n onMouseOver={() => setActive(option.id)}\n >\n <span\n className={classnames({\n 'lw-font-bold': option.id === selectedOption.id,\n })}\n >\n {option.label}\n </span>\n </button>\n </li>\n ))}\n </ul>\n )}\n </div>\n )}\n </>\n );\n};\n\nexport { Select };\n"],"mappings":"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","ignoreList":[]}
@@ -13,8 +13,8 @@ export const Sentiment = _ref => {
13
13
  withError = true,
14
14
  isLoading
15
15
  } = _ref;
16
- const short = Math.round((sentiment === null || sentiment === void 0 ? void 0 : sentiment.shortPercent) || 0);
17
- const long = Math.round((sentiment === null || sentiment === void 0 ? void 0 : sentiment.longPercent) || 0);
16
+ const short = Math.round(sentiment?.shortPercent || 0);
17
+ const long = Math.round(sentiment?.longPercent || 0);
18
18
  const sentimentHeight = height || SentimentHeight.sm;
19
19
  const hasData = sentimentHasData(sentiment);
20
20
  return React.createElement("div", {
@@ -26,27 +26,27 @@ export const Sentiment = _ref => {
26
26
  'lw-w-5': compactMode,
27
27
  'lw-w-8': !compactMode
28
28
  })
29
- }, "".concat(short, "%")), React.createElement("div", {
29
+ }, `${short}%`), React.createElement("div", {
30
30
  className: "lw-mx-2 lw-my-0 lw-grow lw-p-px"
31
31
  }, React.createElement("div", {
32
- className: "lw-flex lw-flex-row lw-justify-center lw-gap-0.5 lw-overflow-hidden lw-p-0 ".concat(sentimentHeight),
32
+ className: `lw-flex lw-flex-row lw-justify-center lw-gap-0.5 lw-overflow-hidden lw-p-0 ${sentimentHeight}`,
33
33
  "data-testid": "sentiment"
34
34
  }, React.createElement("div", {
35
35
  className: "lw-bg-danger",
36
36
  style: {
37
- width: "".concat(short, "%")
37
+ width: `${short}%`
38
38
  }
39
39
  }), React.createElement("div", {
40
40
  className: "lw-bg-ok",
41
41
  style: {
42
- width: "".concat(long, "%")
42
+ width: `${long}%`
43
43
  }
44
44
  }))), React.createElement("span", {
45
45
  className: classnames('lw-text-right lw-font-sans lw-font-normal lw-tracking-wide', {
46
46
  'lw-w-5': compactMode,
47
47
  'lw-w-8': !compactMode
48
48
  })
49
- }, "".concat(long, "%"))), withError && !isLoading && !hasData && React.createElement(SentimentError, {
49
+ }, `${long}%`)), withError && !isLoading && !hasData && React.createElement(SentimentError, {
50
50
  compactMode: compactMode,
51
51
  height: sentimentHeight
52
52
  }));
@@ -1 +1 @@
1
- {"version":3,"file":"Sentiment.js","names":["classnames","React","SentimentError","SentimentLoader","SentimentHeight","sentimentHasData","Sentiment","_ref","height","sentiment","compactMode","withLoader","withError","isLoading","short","Math","round","shortPercent","long","longPercent","sentimentHeight","sm","hasData","createElement","className","Fragment","concat","style","width"],"sources":["../../../../src/components/Sentiment/Sentiment.tsx"],"sourcesContent":["import classnames from 'classnames';\nimport React from 'react';\n\nimport { SentimentError } from './SentimentError';\nimport { SentimentLoader } from './SentimentLoader';\nimport type { SentimentProps } from './types';\nimport { SentimentHeight } from './types';\nimport { sentimentHasData } from './utils';\n\nexport const Sentiment = ({\n height,\n sentiment,\n compactMode = false,\n withLoader = true,\n withError = true,\n isLoading,\n}: SentimentProps) => {\n const short = Math.round(sentiment?.shortPercent || 0);\n const long = Math.round(sentiment?.longPercent || 0);\n\n const sentimentHeight = height || SentimentHeight.sm;\n\n const hasData = sentimentHasData(sentiment);\n\n return (\n <div className=\"lw-flex lw-w-full lw-flex-row lw-items-center\">\n {withLoader && isLoading && <SentimentLoader height={sentimentHeight} />}\n {!isLoading && hasData && (\n <>\n <span\n className={classnames(\n 'lw-font-sans lw-font-normal lw-tracking-wide',\n {\n 'lw-w-5': compactMode,\n 'lw-w-8': !compactMode,\n }\n )}\n >\n {`${short}%`}\n </span>\n <div className=\"lw-mx-2 lw-my-0 lw-grow lw-p-px\">\n <div\n className={`lw-flex lw-flex-row lw-justify-center lw-gap-0.5 lw-overflow-hidden lw-p-0 ${sentimentHeight}`}\n data-testid=\"sentiment\"\n >\n <div className=\"lw-bg-danger\" style={{ width: `${short}%` }} />\n <div className=\"lw-bg-ok\" style={{ width: `${long}%` }} />\n </div>\n </div>\n <span\n className={classnames(\n 'lw-text-right lw-font-sans lw-font-normal lw-tracking-wide',\n {\n 'lw-w-5': compactMode,\n 'lw-w-8': !compactMode,\n }\n )}\n >\n {`${long}%`}\n </span>\n </>\n )}\n {withError && !isLoading && !hasData && (\n <SentimentError compactMode={compactMode} height={sentimentHeight} />\n )}\n </div>\n );\n};\n"],"mappings":"AAAA,OAAOA,UAAU,MAAM,YAAY;AACnC,OAAOC,KAAK,MAAM,OAAO;AAEzB,SAASC,cAAc,QAAQ,kBAAkB;AACjD,SAASC,eAAe,QAAQ,mBAAmB;AAEnD,SAASC,eAAe,QAAQ,SAAS;AACzC,SAASC,gBAAgB,QAAQ,SAAS;AAE1C,OAAO,MAAMC,SAAS,GAAGC,IAAA,IAOH;EAAA,IAPI;IACxBC,MAAM;IACNC,SAAS;IACTC,WAAW,GAAG,KAAK;IACnBC,UAAU,GAAG,IAAI;IACjBC,SAAS,GAAG,IAAI;IAChBC;EACc,CAAC,GAAAN,IAAA;EACf,MAAMO,KAAK,GAAGC,IAAI,CAACC,KAAK,CAAC,CAAAP,SAAS,aAATA,SAAS,uBAATA,SAAS,CAAEQ,YAAY,KAAI,CAAC,CAAC;EACtD,MAAMC,IAAI,GAAGH,IAAI,CAACC,KAAK,CAAC,CAAAP,SAAS,aAATA,SAAS,uBAATA,SAAS,CAAEU,WAAW,KAAI,CAAC,CAAC;EAEpD,MAAMC,eAAe,GAAGZ,MAAM,IAAIJ,eAAe,CAACiB,EAAE;EAEpD,MAAMC,OAAO,GAAGjB,gBAAgB,CAACI,SAAS,CAAC;EAE3C,OACER,KAAA,CAAAsB,aAAA;IAAKC,SAAS,EAAC;EAA+C,GAC3Db,UAAU,IAAIE,SAAS,IAAIZ,KAAA,CAAAsB,aAAA,CAACpB,eAAe;IAACK,MAAM,EAAEY;EAAgB,CAAE,CAAC,EACvE,CAACP,SAAS,IAAIS,OAAO,IACpBrB,KAAA,CAAAsB,aAAA,CAAAtB,KAAA,CAAAwB,QAAA,QACExB,KAAA,CAAAsB,aAAA;IACEC,SAAS,EAAExB,UAAU,CACnB,8CAA8C,EAC9C;MACE,QAAQ,EAAEU,WAAW;MACrB,QAAQ,EAAE,CAACA;IACb,CACF;EAAE,MAAAgB,MAAA,CAEEZ,KAAK,MACL,CAAC,EACPb,KAAA,CAAAsB,aAAA;IAAKC,SAAS,EAAC;EAAiC,GAC9CvB,KAAA,CAAAsB,aAAA;IACEC,SAAS,gFAAAE,MAAA,CAAgFN,eAAe,CAAG;IAC3G,eAAY;EAAW,GAEvBnB,KAAA,CAAAsB,aAAA;IAAKC,SAAS,EAAC,cAAc;IAACG,KAAK,EAAE;MAAEC,KAAK,KAAAF,MAAA,CAAKZ,KAAK;IAAI;EAAE,CAAE,CAAC,EAC/Db,KAAA,CAAAsB,aAAA;IAAKC,SAAS,EAAC,UAAU;IAACG,KAAK,EAAE;MAAEC,KAAK,KAAAF,MAAA,CAAKR,IAAI;IAAI;EAAE,CAAE,CACtD,CACF,CAAC,EACNjB,KAAA,CAAAsB,aAAA;IACEC,SAAS,EAAExB,UAAU,CACnB,4DAA4D,EAC5D;MACE,QAAQ,EAAEU,WAAW;MACrB,QAAQ,EAAE,CAACA;IACb,CACF;EAAE,MAAAgB,MAAA,CAEER,IAAI,MACJ,CACN,CACH,EACAN,SAAS,IAAI,CAACC,SAAS,IAAI,CAACS,OAAO,IAClCrB,KAAA,CAAAsB,aAAA,CAACrB,cAAc;IAACQ,WAAW,EAAEA,WAAY;IAACF,MAAM,EAAEY;EAAgB,CAAE,CAEnE,CAAC;AAEV,CAAC","ignoreList":[]}
1
+ {"version":3,"file":"Sentiment.js","names":["classnames","React","SentimentError","SentimentLoader","SentimentHeight","sentimentHasData","Sentiment","_ref","height","sentiment","compactMode","withLoader","withError","isLoading","short","Math","round","shortPercent","long","longPercent","sentimentHeight","sm","hasData","createElement","className","Fragment","style","width"],"sources":["../../../../src/components/Sentiment/Sentiment.tsx"],"sourcesContent":["import classnames from 'classnames';\nimport React from 'react';\n\nimport { SentimentError } from './SentimentError';\nimport { SentimentLoader } from './SentimentLoader';\nimport type { SentimentProps } from './types';\nimport { SentimentHeight } from './types';\nimport { sentimentHasData } from './utils';\n\nexport const Sentiment = ({\n height,\n sentiment,\n compactMode = false,\n withLoader = true,\n withError = true,\n isLoading,\n}: SentimentProps) => {\n const short = Math.round(sentiment?.shortPercent || 0);\n const long = Math.round(sentiment?.longPercent || 0);\n\n const sentimentHeight = height || SentimentHeight.sm;\n\n const hasData = sentimentHasData(sentiment);\n\n return (\n <div className=\"lw-flex lw-w-full lw-flex-row lw-items-center\">\n {withLoader && isLoading && <SentimentLoader height={sentimentHeight} />}\n {!isLoading && hasData && (\n <>\n <span\n className={classnames(\n 'lw-font-sans lw-font-normal lw-tracking-wide',\n {\n 'lw-w-5': compactMode,\n 'lw-w-8': !compactMode,\n }\n )}\n >\n {`${short}%`}\n </span>\n <div className=\"lw-mx-2 lw-my-0 lw-grow lw-p-px\">\n <div\n className={`lw-flex lw-flex-row lw-justify-center lw-gap-0.5 lw-overflow-hidden lw-p-0 ${sentimentHeight}`}\n data-testid=\"sentiment\"\n >\n <div className=\"lw-bg-danger\" style={{ width: `${short}%` }} />\n <div className=\"lw-bg-ok\" style={{ width: `${long}%` }} />\n </div>\n </div>\n <span\n className={classnames(\n 'lw-text-right lw-font-sans lw-font-normal lw-tracking-wide',\n {\n 'lw-w-5': compactMode,\n 'lw-w-8': !compactMode,\n }\n )}\n >\n {`${long}%`}\n </span>\n </>\n )}\n {withError && !isLoading && !hasData && (\n <SentimentError compactMode={compactMode} height={sentimentHeight} />\n )}\n </div>\n );\n};\n"],"mappings":"AAAA,OAAOA,UAAU,MAAM,YAAY;AACnC,OAAOC,KAAK,MAAM,OAAO;AAEzB,SAASC,cAAc,QAAQ,kBAAkB;AACjD,SAASC,eAAe,QAAQ,mBAAmB;AAEnD,SAASC,eAAe,QAAQ,SAAS;AACzC,SAASC,gBAAgB,QAAQ,SAAS;AAE1C,OAAO,MAAMC,SAAS,GAAGC,IAAA,IAOH;EAAA,IAPI;IACxBC,MAAM;IACNC,SAAS;IACTC,WAAW,GAAG,KAAK;IACnBC,UAAU,GAAG,IAAI;IACjBC,SAAS,GAAG,IAAI;IAChBC;EACc,CAAC,GAAAN,IAAA;EACf,MAAMO,KAAK,GAAGC,IAAI,CAACC,KAAK,CAACP,SAAS,EAAEQ,YAAY,IAAI,CAAC,CAAC;EACtD,MAAMC,IAAI,GAAGH,IAAI,CAACC,KAAK,CAACP,SAAS,EAAEU,WAAW,IAAI,CAAC,CAAC;EAEpD,MAAMC,eAAe,GAAGZ,MAAM,IAAIJ,eAAe,CAACiB,EAAE;EAEpD,MAAMC,OAAO,GAAGjB,gBAAgB,CAACI,SAAS,CAAC;EAE3C,OACER,KAAA,CAAAsB,aAAA;IAAKC,SAAS,EAAC;EAA+C,GAC3Db,UAAU,IAAIE,SAAS,IAAIZ,KAAA,CAAAsB,aAAA,CAACpB,eAAe;IAACK,MAAM,EAAEY;EAAgB,CAAE,CAAC,EACvE,CAACP,SAAS,IAAIS,OAAO,IACpBrB,KAAA,CAAAsB,aAAA,CAAAtB,KAAA,CAAAwB,QAAA,QACExB,KAAA,CAAAsB,aAAA;IACEC,SAAS,EAAExB,UAAU,CACnB,8CAA8C,EAC9C;MACE,QAAQ,EAAEU,WAAW;MACrB,QAAQ,EAAE,CAACA;IACb,CACF;EAAE,GAED,GAAGI,KAAK,GACL,CAAC,EACPb,KAAA,CAAAsB,aAAA;IAAKC,SAAS,EAAC;EAAiC,GAC9CvB,KAAA,CAAAsB,aAAA;IACEC,SAAS,EAAE,8EAA8EJ,eAAe,EAAG;IAC3G,eAAY;EAAW,GAEvBnB,KAAA,CAAAsB,aAAA;IAAKC,SAAS,EAAC,cAAc;IAACE,KAAK,EAAE;MAAEC,KAAK,EAAE,GAAGb,KAAK;IAAI;EAAE,CAAE,CAAC,EAC/Db,KAAA,CAAAsB,aAAA;IAAKC,SAAS,EAAC,UAAU;IAACE,KAAK,EAAE;MAAEC,KAAK,EAAE,GAAGT,IAAI;IAAI;EAAE,CAAE,CACtD,CACF,CAAC,EACNjB,KAAA,CAAAsB,aAAA;IACEC,SAAS,EAAExB,UAAU,CACnB,4DAA4D,EAC5D;MACE,QAAQ,EAAEU,WAAW;MACrB,QAAQ,EAAE,CAACA;IACb,CACF;EAAE,GAED,GAAGQ,IAAI,GACJ,CACN,CACH,EACAN,SAAS,IAAI,CAACC,SAAS,IAAI,CAACS,OAAO,IAClCrB,KAAA,CAAAsB,aAAA,CAACrB,cAAc;IAACQ,WAAW,EAAEA,WAAY;IAACF,MAAM,EAAEY;EAAgB,CAAE,CAEnE,CAAC;AAEV,CAAC","ignoreList":[]}
@@ -13,7 +13,7 @@ const SentimentError = _ref => {
13
13
  }, '\u2014'), React.createElement("div", {
14
14
  className: "lw-mx-2 lw-mt-1 lw-grow lw-p-px"
15
15
  }, React.createElement("div", {
16
- className: "lw-flex lw-flex-row lw-justify-center lw-gap-0.5 lw-overflow-hidden lw-p-0 ".concat(height),
16
+ className: `lw-flex lw-flex-row lw-justify-center lw-gap-0.5 lw-overflow-hidden lw-p-0 ${height}`,
17
17
  "data-testid": "no-data-sentiment"
18
18
  }, React.createElement("div", {
19
19
  className: "lw-w-full lw-bg-border-primary"
@@ -1 +1 @@
1
- {"version":3,"file":"SentimentError.js","names":["classnames","React","SentimentError","_ref","height","compactMode","createElement","Fragment","className","concat"],"sources":["../../../../src/components/Sentiment/SentimentError.tsx"],"sourcesContent":["import classnames from 'classnames';\nimport React from 'react';\n\nimport type { SentimentErrorProps } from './types';\n\nconst SentimentError = ({ height, compactMode }: SentimentErrorProps) => (\n <>\n <span\n className={classnames(\n 'lw-text-center lw-font-sans lw-font-normal lw-tracking-wide',\n {\n 'lw-w-5': compactMode,\n 'lw-w-8': !compactMode,\n }\n )}\n >\n {'\\u2014'}\n </span>\n <div className=\"lw-mx-2 lw-mt-1 lw-grow lw-p-px\">\n <div\n className={`lw-flex lw-flex-row lw-justify-center lw-gap-0.5 lw-overflow-hidden lw-p-0 ${height}`}\n data-testid=\"no-data-sentiment\"\n >\n <div className=\"lw-w-full lw-bg-border-primary\" />\n </div>\n </div>\n <span\n className={classnames(\n 'lw-text-center lw-font-sans lw-font-normal lw-tracking-wide',\n {\n 'lw-w-5': compactMode,\n 'lw-w-8': !compactMode,\n }\n )}\n >\n {'\\u2014'}\n </span>\n </>\n);\n\nexport { SentimentError };\n"],"mappings":"AAAA,OAAOA,UAAU,MAAM,YAAY;AACnC,OAAOC,KAAK,MAAM,OAAO;AAIzB,MAAMC,cAAc,GAAGC,IAAA;EAAA,IAAC;IAAEC,MAAM;IAAEC;EAAiC,CAAC,GAAAF,IAAA;EAAA,OAClEF,KAAA,CAAAK,aAAA,CAAAL,KAAA,CAAAM,QAAA,QACEN,KAAA,CAAAK,aAAA;IACEE,SAAS,EAAER,UAAU,CACnB,6DAA6D,EAC7D;MACE,QAAQ,EAAEK,WAAW;MACrB,QAAQ,EAAE,CAACA;IACb,CACF;EAAE,GAED,QACG,CAAC,EACPJ,KAAA,CAAAK,aAAA;IAAKE,SAAS,EAAC;EAAiC,GAC9CP,KAAA,CAAAK,aAAA;IACEE,SAAS,gFAAAC,MAAA,CAAgFL,MAAM,CAAG;IAClG,eAAY;EAAmB,GAE/BH,KAAA,CAAAK,aAAA;IAAKE,SAAS,EAAC;EAAgC,CAAE,CAC9C,CACF,CAAC,EACNP,KAAA,CAAAK,aAAA;IACEE,SAAS,EAAER,UAAU,CACnB,6DAA6D,EAC7D;MACE,QAAQ,EAAEK,WAAW;MACrB,QAAQ,EAAE,CAACA;IACb,CACF;EAAE,GAED,QACG,CACN,CAAC;AAAA,CACJ;AAED,SAASH,cAAc","ignoreList":[]}
1
+ {"version":3,"file":"SentimentError.js","names":["classnames","React","SentimentError","_ref","height","compactMode","createElement","Fragment","className"],"sources":["../../../../src/components/Sentiment/SentimentError.tsx"],"sourcesContent":["import classnames from 'classnames';\nimport React from 'react';\n\nimport type { SentimentErrorProps } from './types';\n\nconst SentimentError = ({ height, compactMode }: SentimentErrorProps) => (\n <>\n <span\n className={classnames(\n 'lw-text-center lw-font-sans lw-font-normal lw-tracking-wide',\n {\n 'lw-w-5': compactMode,\n 'lw-w-8': !compactMode,\n }\n )}\n >\n {'\\u2014'}\n </span>\n <div className=\"lw-mx-2 lw-mt-1 lw-grow lw-p-px\">\n <div\n className={`lw-flex lw-flex-row lw-justify-center lw-gap-0.5 lw-overflow-hidden lw-p-0 ${height}`}\n data-testid=\"no-data-sentiment\"\n >\n <div className=\"lw-w-full lw-bg-border-primary\" />\n </div>\n </div>\n <span\n className={classnames(\n 'lw-text-center lw-font-sans lw-font-normal lw-tracking-wide',\n {\n 'lw-w-5': compactMode,\n 'lw-w-8': !compactMode,\n }\n )}\n >\n {'\\u2014'}\n </span>\n </>\n);\n\nexport { SentimentError };\n"],"mappings":"AAAA,OAAOA,UAAU,MAAM,YAAY;AACnC,OAAOC,KAAK,MAAM,OAAO;AAIzB,MAAMC,cAAc,GAAGC,IAAA;EAAA,IAAC;IAAEC,MAAM;IAAEC;EAAiC,CAAC,GAAAF,IAAA;EAAA,OAClEF,KAAA,CAAAK,aAAA,CAAAL,KAAA,CAAAM,QAAA,QACEN,KAAA,CAAAK,aAAA;IACEE,SAAS,EAAER,UAAU,CACnB,6DAA6D,EAC7D;MACE,QAAQ,EAAEK,WAAW;MACrB,QAAQ,EAAE,CAACA;IACb,CACF;EAAE,GAED,QACG,CAAC,EACPJ,KAAA,CAAAK,aAAA;IAAKE,SAAS,EAAC;EAAiC,GAC9CP,KAAA,CAAAK,aAAA;IACEE,SAAS,EAAE,8EAA8EJ,MAAM,EAAG;IAClG,eAAY;EAAmB,GAE/BH,KAAA,CAAAK,aAAA;IAAKE,SAAS,EAAC;EAAgC,CAAE,CAC9C,CACF,CAAC,EACNP,KAAA,CAAAK,aAAA;IACEE,SAAS,EAAER,UAAU,CACnB,6DAA6D,EAC7D;MACE,QAAQ,EAAEK,WAAW;MACrB,QAAQ,EAAE,CAACA;IACb,CACF;EAAE,GAED,QACG,CACN,CAAC;AAAA,CACJ;AAED,SAASH,cAAc","ignoreList":[]}
@@ -7,7 +7,7 @@ const SentimentLoader = _ref => {
7
7
  return React.createElement(React.Fragment, null, React.createElement(Loader, {
8
8
  size: LoaderSize.md
9
9
  }), React.createElement("div", {
10
- className: "".concat(height, " lw-mx-2 lw-w-full")
10
+ className: `${height} lw-mx-2 lw-w-full`
11
11
  }, React.createElement(Loader, {
12
12
  size: LoaderSize.full
13
13
  })), React.createElement(Loader, {
@@ -1 +1 @@
1
- {"version":3,"file":"SentimentLoader.js","names":["React","Loader","LoaderSize","SentimentLoader","_ref","height","createElement","Fragment","size","md","className","concat","full"],"sources":["../../../../src/components/Sentiment/SentimentLoader.tsx"],"sourcesContent":["import React from 'react';\n\nimport { Loader, LoaderSize } from '../Loader';\nimport type { SentimentLoaderProps } from './types';\n\nconst SentimentLoader = ({ height }: SentimentLoaderProps) => (\n <>\n <Loader size={LoaderSize.md} />\n <div className={`${height} lw-mx-2 lw-w-full`}>\n <Loader size={LoaderSize.full} />\n </div>\n <Loader size={LoaderSize.md} />\n </>\n);\n\nexport { SentimentLoader };\n"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;AAEzB,SAASC,MAAM,EAAEC,UAAU,QAAQ,WAAW;AAG9C,MAAMC,eAAe,GAAGC,IAAA;EAAA,IAAC;IAAEC;EAA6B,CAAC,GAAAD,IAAA;EAAA,OACvDJ,KAAA,CAAAM,aAAA,CAAAN,KAAA,CAAAO,QAAA,QACEP,KAAA,CAAAM,aAAA,CAACL,MAAM;IAACO,IAAI,EAAEN,UAAU,CAACO;EAAG,CAAE,CAAC,EAC/BT,KAAA,CAAAM,aAAA;IAAKI,SAAS,KAAAC,MAAA,CAAKN,MAAM;EAAqB,GAC5CL,KAAA,CAAAM,aAAA,CAACL,MAAM;IAACO,IAAI,EAAEN,UAAU,CAACU;EAAK,CAAE,CAC7B,CAAC,EACNZ,KAAA,CAAAM,aAAA,CAACL,MAAM;IAACO,IAAI,EAAEN,UAAU,CAACO;EAAG,CAAE,CAC9B,CAAC;AAAA,CACJ;AAED,SAASN,eAAe","ignoreList":[]}
1
+ {"version":3,"file":"SentimentLoader.js","names":["React","Loader","LoaderSize","SentimentLoader","_ref","height","createElement","Fragment","size","md","className","full"],"sources":["../../../../src/components/Sentiment/SentimentLoader.tsx"],"sourcesContent":["import React from 'react';\n\nimport { Loader, LoaderSize } from '../Loader';\nimport type { SentimentLoaderProps } from './types';\n\nconst SentimentLoader = ({ height }: SentimentLoaderProps) => (\n <>\n <Loader size={LoaderSize.md} />\n <div className={`${height} lw-mx-2 lw-w-full`}>\n <Loader size={LoaderSize.full} />\n </div>\n <Loader size={LoaderSize.md} />\n </>\n);\n\nexport { SentimentLoader };\n"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;AAEzB,SAASC,MAAM,EAAEC,UAAU,QAAQ,WAAW;AAG9C,MAAMC,eAAe,GAAGC,IAAA;EAAA,IAAC;IAAEC;EAA6B,CAAC,GAAAD,IAAA;EAAA,OACvDJ,KAAA,CAAAM,aAAA,CAAAN,KAAA,CAAAO,QAAA,QACEP,KAAA,CAAAM,aAAA,CAACL,MAAM;IAACO,IAAI,EAAEN,UAAU,CAACO;EAAG,CAAE,CAAC,EAC/BT,KAAA,CAAAM,aAAA;IAAKI,SAAS,EAAE,GAAGL,MAAM;EAAqB,GAC5CL,KAAA,CAAAM,aAAA,CAACL,MAAM;IAACO,IAAI,EAAEN,UAAU,CAACS;EAAK,CAAE,CAC7B,CAAC,EACNX,KAAA,CAAAM,aAAA,CAACL,MAAM;IAACO,IAAI,EAAEN,UAAU,CAACO;EAAG,CAAE,CAC9B,CAAC;AAAA,CACJ;AAED,SAASN,eAAe","ignoreList":[]}
@@ -1,7 +1,7 @@
1
1
  const sentimentHasData = sentiment => {
2
- const longPercent = (sentiment === null || sentiment === void 0 ? void 0 : sentiment.longPercent) !== undefined;
3
- const shortPercent = (sentiment === null || sentiment === void 0 ? void 0 : sentiment.shortPercent) !== undefined;
4
- const noData = (sentiment === null || sentiment === void 0 ? void 0 : sentiment.shortPercent) === 0 && (sentiment === null || sentiment === void 0 ? void 0 : sentiment.longPercent) === 0;
2
+ const longPercent = sentiment?.longPercent !== undefined;
3
+ const shortPercent = sentiment?.shortPercent !== undefined;
4
+ const noData = sentiment?.shortPercent === 0 && sentiment?.longPercent === 0;
5
5
  return longPercent && shortPercent && !noData;
6
6
  };
7
7
  export { sentimentHasData };
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","names":["sentimentHasData","sentiment","longPercent","undefined","shortPercent","noData"],"sources":["../../../../src/components/Sentiment/utils.ts"],"sourcesContent":["import type { SentimentPercentage } from './types';\n\nconst sentimentHasData = (sentiment: SentimentPercentage | undefined) => {\n const longPercent = sentiment?.longPercent !== undefined;\n const shortPercent = sentiment?.shortPercent !== undefined;\n const noData = sentiment?.shortPercent === 0 && sentiment?.longPercent === 0;\n\n return longPercent && shortPercent && !noData;\n};\n\nexport { sentimentHasData };\n"],"mappings":"AAEA,MAAMA,gBAAgB,GAAIC,SAA0C,IAAK;EACvE,MAAMC,WAAW,GAAG,CAAAD,SAAS,aAATA,SAAS,uBAATA,SAAS,CAAEC,WAAW,MAAKC,SAAS;EACxD,MAAMC,YAAY,GAAG,CAAAH,SAAS,aAATA,SAAS,uBAATA,SAAS,CAAEG,YAAY,MAAKD,SAAS;EAC1D,MAAME,MAAM,GAAG,CAAAJ,SAAS,aAATA,SAAS,uBAATA,SAAS,CAAEG,YAAY,MAAK,CAAC,IAAI,CAAAH,SAAS,aAATA,SAAS,uBAATA,SAAS,CAAEC,WAAW,MAAK,CAAC;EAE5E,OAAOA,WAAW,IAAIE,YAAY,IAAI,CAACC,MAAM;AAC/C,CAAC;AAED,SAASL,gBAAgB","ignoreList":[]}
1
+ {"version":3,"file":"utils.js","names":["sentimentHasData","sentiment","longPercent","undefined","shortPercent","noData"],"sources":["../../../../src/components/Sentiment/utils.ts"],"sourcesContent":["import type { SentimentPercentage } from './types';\n\nconst sentimentHasData = (sentiment: SentimentPercentage | undefined) => {\n const longPercent = sentiment?.longPercent !== undefined;\n const shortPercent = sentiment?.shortPercent !== undefined;\n const noData = sentiment?.shortPercent === 0 && sentiment?.longPercent === 0;\n\n return longPercent && shortPercent && !noData;\n};\n\nexport { sentimentHasData };\n"],"mappings":"AAEA,MAAMA,gBAAgB,GAAIC,SAA0C,IAAK;EACvE,MAAMC,WAAW,GAAGD,SAAS,EAAEC,WAAW,KAAKC,SAAS;EACxD,MAAMC,YAAY,GAAGH,SAAS,EAAEG,YAAY,KAAKD,SAAS;EAC1D,MAAME,MAAM,GAAGJ,SAAS,EAAEG,YAAY,KAAK,CAAC,IAAIH,SAAS,EAAEC,WAAW,KAAK,CAAC;EAE5E,OAAOA,WAAW,IAAIE,YAAY,IAAI,CAACC,MAAM;AAC/C,CAAC;AAED,SAASL,gBAAgB","ignoreList":[]}
@@ -48,14 +48,14 @@ const Switch = _ref => {
48
48
  'lw-transition-width lw-duration-300': isTransitionEnabled
49
49
  }),
50
50
  style: {
51
- transform: "translateX(".concat(bgOffset, "px)"),
52
- width: "".concat(bgWidth, "px")
51
+ transform: `translateX(${bgOffset}px)`,
52
+ width: `${bgWidth}px`
53
53
  }
54
54
  }), React.createElement("ul", {
55
55
  className: "lw-relative lw-mx-0 lw-flex lw-h-full lw-overflow-hidden lw-rounded lw-border lw-border-secondary",
56
56
  "data-testid": "switch"
57
57
  }, items.map(item => React.createElement(SwitchItem, {
58
- key: "".concat(item.id, "-item"),
58
+ key: `${item.id}-item`,
59
59
  equalSize: equalSize,
60
60
  handleClick: onClick,
61
61
  handleRender: onItemRender,
@@ -1 +1 @@
1
- {"version":3,"file":"Switch.js","names":["classnames","React","useRef","useState","BORDER_CORRECTION","SwitchItem","Switch","_ref","items","activeTab","equalSize","labelCallback","handleClick","parentRef","bgWidth","setBgWidth","isTransitionEnabled","setIsTransitionEnabled","bgOffset","setBgOffset","onClick","e","element","target","width","left","elementOffset","getBoundingClientRect","parentOffset","current","Math","ceil","onItemRender","_ref2","createElement","ref","className","style","transform","concat","map","item","key","id","handleRender","isActive"],"sources":["../../../../src/components/Switch/Switch.tsx"],"sourcesContent":["import classnames from 'classnames';\nimport React, { useRef, useState } from 'react';\n\nimport { BORDER_CORRECTION } from './constants';\nimport { SwitchItem } from './SwitchItem';\nimport type { SwitchProps } from './types';\n\nconst Switch = ({\n items,\n activeTab,\n equalSize,\n labelCallback,\n handleClick,\n}: SwitchProps) => {\n const parentRef = useRef<HTMLDivElement>(null);\n const [bgWidth, setBgWidth] = useState(0);\n const [isTransitionEnabled, setIsTransitionEnabled] = useState(false);\n const [bgOffset, setBgOffset] = useState(0);\n\n const onClick = (e: React.SyntheticEvent<HTMLButtonElement>) => {\n const element = e.target as Element;\n const { width, left: elementOffset } = element.getBoundingClientRect();\n const parentOffset = parentRef.current!.getBoundingClientRect().left;\n\n setBgOffset(Math.ceil(elementOffset - parentOffset - BORDER_CORRECTION));\n setBgWidth(Math.ceil(width + BORDER_CORRECTION));\n\n handleClick(e);\n\n if (!isTransitionEnabled) {\n setIsTransitionEnabled(true);\n }\n };\n\n const onItemRender = ({\n width,\n left: elementOffset,\n }: {\n width: number;\n left: number;\n }) => {\n const parentOffset = parentRef.current!.getBoundingClientRect().left;\n if (isTransitionEnabled) {\n setIsTransitionEnabled(false);\n }\n\n setBgOffset(Math.ceil(elementOffset - parentOffset - BORDER_CORRECTION));\n setBgWidth(Math.ceil(width + BORDER_CORRECTION));\n };\n\n return (\n <div\n ref={parentRef}\n className=\"lw-relative lw-mb-4 lw-h-full lw-overflow-hidden lw-rounded\"\n >\n <div\n className={classnames(\n 'lw-absolute lw-left-0 lw-top-0 lw-z-10 lw-h-full lw-bg-secondary',\n {\n 'lw-transition-width lw-duration-300': isTransitionEnabled,\n }\n )}\n style={{\n transform: `translateX(${bgOffset}px)`,\n width: `${bgWidth}px`,\n }}\n />\n <ul\n className=\"lw-relative lw-mx-0 lw-flex lw-h-full lw-overflow-hidden lw-rounded lw-border lw-border-secondary\"\n data-testid=\"switch\"\n >\n {items.map((item) => (\n <SwitchItem\n key={`${item.id}-item`}\n equalSize={equalSize}\n handleClick={onClick}\n handleRender={onItemRender}\n isActive={item.id === activeTab}\n item={item}\n labelCallback={labelCallback}\n />\n ))}\n </ul>\n </div>\n );\n};\n\nexport { Switch };\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"Switch.js","names":["classnames","React","useRef","useState","BORDER_CORRECTION","SwitchItem","Switch","_ref","items","activeTab","equalSize","labelCallback","handleClick","parentRef","bgWidth","setBgWidth","isTransitionEnabled","setIsTransitionEnabled","bgOffset","setBgOffset","onClick","e","element","target","width","left","elementOffset","getBoundingClientRect","parentOffset","current","Math","ceil","onItemRender","_ref2","createElement","ref","className","style","transform","map","item","key","id","handleRender","isActive"],"sources":["../../../../src/components/Switch/Switch.tsx"],"sourcesContent":["import classnames from 'classnames';\nimport React, { useRef, useState } from 'react';\n\nimport { BORDER_CORRECTION } from './constants';\nimport { SwitchItem } from './SwitchItem';\nimport type { SwitchProps } from './types';\n\nconst Switch = ({\n items,\n activeTab,\n equalSize,\n labelCallback,\n handleClick,\n}: SwitchProps) => {\n const parentRef = useRef<HTMLDivElement>(null);\n const [bgWidth, setBgWidth] = useState(0);\n const [isTransitionEnabled, setIsTransitionEnabled] = useState(false);\n const [bgOffset, setBgOffset] = useState(0);\n\n const onClick = (e: React.SyntheticEvent<HTMLButtonElement>) => {\n const element = e.target as Element;\n const { width, left: elementOffset } = element.getBoundingClientRect();\n const parentOffset = parentRef.current!.getBoundingClientRect().left;\n\n setBgOffset(Math.ceil(elementOffset - parentOffset - BORDER_CORRECTION));\n setBgWidth(Math.ceil(width + BORDER_CORRECTION));\n\n handleClick(e);\n\n if (!isTransitionEnabled) {\n setIsTransitionEnabled(true);\n }\n };\n\n const onItemRender = ({\n width,\n left: elementOffset,\n }: {\n width: number;\n left: number;\n }) => {\n const parentOffset = parentRef.current!.getBoundingClientRect().left;\n if (isTransitionEnabled) {\n setIsTransitionEnabled(false);\n }\n\n setBgOffset(Math.ceil(elementOffset - parentOffset - BORDER_CORRECTION));\n setBgWidth(Math.ceil(width + BORDER_CORRECTION));\n };\n\n return (\n <div\n ref={parentRef}\n className=\"lw-relative lw-mb-4 lw-h-full lw-overflow-hidden lw-rounded\"\n >\n <div\n className={classnames(\n 'lw-absolute lw-left-0 lw-top-0 lw-z-10 lw-h-full lw-bg-secondary',\n {\n 'lw-transition-width lw-duration-300': isTransitionEnabled,\n }\n )}\n style={{\n transform: `translateX(${bgOffset}px)`,\n width: `${bgWidth}px`,\n }}\n />\n <ul\n className=\"lw-relative lw-mx-0 lw-flex lw-h-full lw-overflow-hidden lw-rounded lw-border lw-border-secondary\"\n data-testid=\"switch\"\n >\n {items.map((item) => (\n <SwitchItem\n key={`${item.id}-item`}\n equalSize={equalSize}\n handleClick={onClick}\n handleRender={onItemRender}\n isActive={item.id === activeTab}\n item={item}\n labelCallback={labelCallback}\n />\n ))}\n </ul>\n </div>\n );\n};\n\nexport { Switch };\n"],"mappings":"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","ignoreList":[]}
@@ -13,7 +13,7 @@ const TableCell = _ref => {
13
13
  additionalPaddingRight = false
14
14
  } = _ref;
15
15
  return React.createElement("td", {
16
- className: classnames("lw-h-[inherit] lw-p-0 lw-font-sans ".concat(classNames), {
16
+ className: classnames(`lw-h-[inherit] lw-p-0 lw-font-sans ${classNames}`, {
17
17
  'lw-text-right': type === 'number',
18
18
  'lw-text-left': type === 'text',
19
19
  'lw-text-center': type === 'textCentered'
@@ -1 +1 @@
1
- {"version":3,"file":"TableCell.js","names":["classnames","React","CELL_EMPTY_VALUE","Loader","LoaderSize","TableCell","_ref","type","loaderSize","md","classNames","children","isError","isLoading","additionalPaddingRight","createElement","className","concat","size"],"sources":["../../../../src/components/Table/TableCell.tsx"],"sourcesContent":["import classnames from 'classnames';\nimport React from 'react';\n\nimport { CELL_EMPTY_VALUE } from '../constant';\nimport { Loader, LoaderSize } from '../Loader';\nimport type { TableCellProps } from './types';\n\nconst TableCell = ({\n type = 'number',\n loaderSize = LoaderSize.md,\n classNames = '',\n children,\n isError,\n isLoading,\n additionalPaddingRight = false,\n}: TableCellProps) => (\n <td\n className={classnames(`lw-h-[inherit] lw-p-0 lw-font-sans ${classNames}`, {\n 'lw-text-right': type === 'number',\n 'lw-text-left': type === 'text',\n 'lw-text-center': type === 'textCentered',\n })}\n data-testid=\"table-cell\"\n >\n <div\n className={classnames(\n 'lw-flex lw-h-[inherit] lw-items-center lw-px-3 lw-py-0',\n {\n 'lw-justify-end': type === 'number',\n 'lw-justify-start': type === 'text',\n 'lw-justify-center': type === 'textCentered',\n 'lw-pr-7': additionalPaddingRight && !isLoading,\n 'lw-pr-3': !additionalPaddingRight || isLoading,\n }\n )}\n >\n {isLoading && <Loader size={loaderSize} />}\n {!isLoading && !isError && children}\n {!isLoading && isError && <span>{CELL_EMPTY_VALUE}</span>}\n </div>\n </td>\n);\n\nexport { TableCell };\n"],"mappings":"AAAA,OAAOA,UAAU,MAAM,YAAY;AACnC,OAAOC,KAAK,MAAM,OAAO;AAEzB,SAASC,gBAAgB,QAAQ,aAAa;AAC9C,SAASC,MAAM,EAAEC,UAAU,QAAQ,WAAW;AAG9C,MAAMC,SAAS,GAAGC,IAAA;EAAA,IAAC;IACjBC,IAAI,GAAG,QAAQ;IACfC,UAAU,GAAGJ,UAAU,CAACK,EAAE;IAC1BC,UAAU,GAAG,EAAE;IACfC,QAAQ;IACRC,OAAO;IACPC,SAAS;IACTC,sBAAsB,GAAG;EACX,CAAC,GAAAR,IAAA;EAAA,OACfL,KAAA,CAAAc,aAAA;IACEC,SAAS,EAAEhB,UAAU,uCAAAiB,MAAA,CAAuCP,UAAU,GAAI;MACxE,eAAe,EAAEH,IAAI,KAAK,QAAQ;MAClC,cAAc,EAAEA,IAAI,KAAK,MAAM;MAC/B,gBAAgB,EAAEA,IAAI,KAAK;IAC7B,CAAC,CAAE;IACH,eAAY;EAAY,GAExBN,KAAA,CAAAc,aAAA;IACEC,SAAS,EAAEhB,UAAU,CACnB,wDAAwD,EACxD;MACE,gBAAgB,EAAEO,IAAI,KAAK,QAAQ;MACnC,kBAAkB,EAAEA,IAAI,KAAK,MAAM;MACnC,mBAAmB,EAAEA,IAAI,KAAK,cAAc;MAC5C,SAAS,EAAEO,sBAAsB,IAAI,CAACD,SAAS;MAC/C,SAAS,EAAE,CAACC,sBAAsB,IAAID;IACxC,CACF;EAAE,GAEDA,SAAS,IAAIZ,KAAA,CAAAc,aAAA,CAACZ,MAAM;IAACe,IAAI,EAAEV;EAAW,CAAE,CAAC,EACzC,CAACK,SAAS,IAAI,CAACD,OAAO,IAAID,QAAQ,EAClC,CAACE,SAAS,IAAID,OAAO,IAAIX,KAAA,CAAAc,aAAA,eAAOb,gBAAuB,CACrD,CACH,CAAC;AAAA,CACN;AAED,SAASG,SAAS","ignoreList":[]}
1
+ {"version":3,"file":"TableCell.js","names":["classnames","React","CELL_EMPTY_VALUE","Loader","LoaderSize","TableCell","_ref","type","loaderSize","md","classNames","children","isError","isLoading","additionalPaddingRight","createElement","className","size"],"sources":["../../../../src/components/Table/TableCell.tsx"],"sourcesContent":["import classnames from 'classnames';\nimport React from 'react';\n\nimport { CELL_EMPTY_VALUE } from '../constant';\nimport { Loader, LoaderSize } from '../Loader';\nimport type { TableCellProps } from './types';\n\nconst TableCell = ({\n type = 'number',\n loaderSize = LoaderSize.md,\n classNames = '',\n children,\n isError,\n isLoading,\n additionalPaddingRight = false,\n}: TableCellProps) => (\n <td\n className={classnames(`lw-h-[inherit] lw-p-0 lw-font-sans ${classNames}`, {\n 'lw-text-right': type === 'number',\n 'lw-text-left': type === 'text',\n 'lw-text-center': type === 'textCentered',\n })}\n data-testid=\"table-cell\"\n >\n <div\n className={classnames(\n 'lw-flex lw-h-[inherit] lw-items-center lw-px-3 lw-py-0',\n {\n 'lw-justify-end': type === 'number',\n 'lw-justify-start': type === 'text',\n 'lw-justify-center': type === 'textCentered',\n 'lw-pr-7': additionalPaddingRight && !isLoading,\n 'lw-pr-3': !additionalPaddingRight || isLoading,\n }\n )}\n >\n {isLoading && <Loader size={loaderSize} />}\n {!isLoading && !isError && children}\n {!isLoading && isError && <span>{CELL_EMPTY_VALUE}</span>}\n </div>\n </td>\n);\n\nexport { TableCell };\n"],"mappings":"AAAA,OAAOA,UAAU,MAAM,YAAY;AACnC,OAAOC,KAAK,MAAM,OAAO;AAEzB,SAASC,gBAAgB,QAAQ,aAAa;AAC9C,SAASC,MAAM,EAAEC,UAAU,QAAQ,WAAW;AAG9C,MAAMC,SAAS,GAAGC,IAAA;EAAA,IAAC;IACjBC,IAAI,GAAG,QAAQ;IACfC,UAAU,GAAGJ,UAAU,CAACK,EAAE;IAC1BC,UAAU,GAAG,EAAE;IACfC,QAAQ;IACRC,OAAO;IACPC,SAAS;IACTC,sBAAsB,GAAG;EACX,CAAC,GAAAR,IAAA;EAAA,OACfL,KAAA,CAAAc,aAAA;IACEC,SAAS,EAAEhB,UAAU,CAAC,sCAAsCU,UAAU,EAAE,EAAE;MACxE,eAAe,EAAEH,IAAI,KAAK,QAAQ;MAClC,cAAc,EAAEA,IAAI,KAAK,MAAM;MAC/B,gBAAgB,EAAEA,IAAI,KAAK;IAC7B,CAAC,CAAE;IACH,eAAY;EAAY,GAExBN,KAAA,CAAAc,aAAA;IACEC,SAAS,EAAEhB,UAAU,CACnB,wDAAwD,EACxD;MACE,gBAAgB,EAAEO,IAAI,KAAK,QAAQ;MACnC,kBAAkB,EAAEA,IAAI,KAAK,MAAM;MACnC,mBAAmB,EAAEA,IAAI,KAAK,cAAc;MAC5C,SAAS,EAAEO,sBAAsB,IAAI,CAACD,SAAS;MAC/C,SAAS,EAAE,CAACC,sBAAsB,IAAID;IACxC,CACF;EAAE,GAEDA,SAAS,IAAIZ,KAAA,CAAAc,aAAA,CAACZ,MAAM;IAACc,IAAI,EAAET;EAAW,CAAE,CAAC,EACzC,CAACK,SAAS,IAAI,CAACD,OAAO,IAAID,QAAQ,EAClC,CAACE,SAAS,IAAID,OAAO,IAAIX,KAAA,CAAAc,aAAA,eAAOb,gBAAuB,CACrD,CACH,CAAC;AAAA,CACN;AAED,SAASG,SAAS","ignoreList":[]}
@@ -28,7 +28,7 @@ const TableHeader = _ref => {
28
28
  }
29
29
  } = _ref2;
30
30
  return React.createElement("th", {
31
- key: "table-header-".concat(displayName),
31
+ key: `table-header-${displayName}`,
32
32
  className: cn('lw-px-3 lw-py-0 lw-font-sans lw-text-sm lw-tracking-normal lw-font-semibold', {
33
33
  'lw-sticky lw-left-0 lw-pr-3': !isError && index === 0,
34
34
  'lw-bg-whiteWithShadow': !isDark && !isError && isScrolled && index === 0,
@@ -1 +1 @@
1
- {"version":3,"file":"TableHeader.js","names":["useLocale","React","useLayoutProvider","cn","TableHeader","_ref","columns","isScrolled","isError","isDark","lang","createElement","className","map","_ref2","index","displayName","additionalStyles","align","minWidth","paddingRight","key","concat","style"],"sources":["../../../../src/components/Table/TableHeader.tsx"],"sourcesContent":["import { useLocale } from '@oanda/mono-i18n';\nimport React from 'react';\n\nimport { useLayoutProvider } from '../../providers';\nimport { cn } from '../../tailwind';\nimport type { TableHeaderProps } from './types';\n\nconst TableHeader = ({ columns, isScrolled, isError }: TableHeaderProps) => {\n const { isDark } = useLayoutProvider();\n const { lang } = useLocale();\n\n return (\n <thead data-testid=\"table-header\">\n <tr className=\"lw-h-11 lw-bg-bg-primary lw-text-text-primary\">\n {columns.map(\n (\n {\n displayName,\n additionalStyles: { align, minWidth, paddingRight },\n },\n index\n ) => (\n <th\n key={`table-header-${displayName}`}\n className={cn(\n 'lw-px-3 lw-py-0 lw-font-sans lw-text-sm lw-tracking-normal lw-font-semibold',\n {\n 'lw-sticky lw-left-0 lw-pr-3': !isError && index === 0,\n 'lw-bg-whiteWithShadow':\n !isDark && !isError && isScrolled && index === 0,\n 'lw-bg-bg-primary':\n isDark && !isError && isScrolled && index === 0,\n }\n )}\n >\n <div\n className={cn(\n align === 'right' && 'lw-text-right',\n align === 'left' && 'lw-text-left',\n align === 'center' && 'lw-text-center',\n paddingRight && 'lw-pr-4'\n )}\n style={{ minWidth }}\n >\n {lang(displayName)}\n </div>\n </th>\n )\n )}\n </tr>\n </thead>\n );\n};\n\nexport { TableHeader };\n"],"mappings":"AAAA,SAASA,SAAS,QAAQ,kBAAkB;AAC5C,OAAOC,KAAK,MAAM,OAAO;AAEzB,SAASC,iBAAiB,QAAQ,iBAAiB;AACnD,SAASC,EAAE,QAAQ,gBAAgB;AAGnC,MAAMC,WAAW,GAAGC,IAAA,IAAwD;EAAA,IAAvD;IAAEC,OAAO;IAAEC,UAAU;IAAEC;EAA0B,CAAC,GAAAH,IAAA;EACrE,MAAM;IAAEI;EAAO,CAAC,GAAGP,iBAAiB,CAAC,CAAC;EACtC,MAAM;IAAEQ;EAAK,CAAC,GAAGV,SAAS,CAAC,CAAC;EAE5B,OACEC,KAAA,CAAAU,aAAA;IAAO,eAAY;EAAc,GAC/BV,KAAA,CAAAU,aAAA;IAAIC,SAAS,EAAC;EAA+C,GAC1DN,OAAO,CAACO,GAAG,CACV,CAAAC,KAAA,EAKEC,KAAK;IAAA,IAJL;MACEC,WAAW;MACXC,gBAAgB,EAAE;QAAEC,KAAK;QAAEC,QAAQ;QAAEC;MAAa;IACpD,CAAC,GAAAN,KAAA;IAAA,OAGDb,KAAA,CAAAU,aAAA;MACEU,GAAG,kBAAAC,MAAA,CAAkBN,WAAW,CAAG;MACnCJ,SAAS,EAAET,EAAE,CACX,6EAA6E,EAC7E;QACE,6BAA6B,EAAE,CAACK,OAAO,IAAIO,KAAK,KAAK,CAAC;QACtD,uBAAuB,EACrB,CAACN,MAAM,IAAI,CAACD,OAAO,IAAID,UAAU,IAAIQ,KAAK,KAAK,CAAC;QAClD,kBAAkB,EAChBN,MAAM,IAAI,CAACD,OAAO,IAAID,UAAU,IAAIQ,KAAK,KAAK;MAClD,CACF;IAAE,GAEFd,KAAA,CAAAU,aAAA;MACEC,SAAS,EAAET,EAAE,CACXe,KAAK,KAAK,OAAO,IAAI,eAAe,EACpCA,KAAK,KAAK,MAAM,IAAI,cAAc,EAClCA,KAAK,KAAK,QAAQ,IAAI,gBAAgB,EACtCE,YAAY,IAAI,SAClB,CAAE;MACFG,KAAK,EAAE;QAAEJ;MAAS;IAAE,GAEnBT,IAAI,CAACM,WAAW,CACd,CACH,CAAC;EAAA,CAET,CACE,CACC,CAAC;AAEZ,CAAC;AAED,SAASZ,WAAW","ignoreList":[]}
1
+ {"version":3,"file":"TableHeader.js","names":["useLocale","React","useLayoutProvider","cn","TableHeader","_ref","columns","isScrolled","isError","isDark","lang","createElement","className","map","_ref2","index","displayName","additionalStyles","align","minWidth","paddingRight","key","style"],"sources":["../../../../src/components/Table/TableHeader.tsx"],"sourcesContent":["import { useLocale } from '@oanda/mono-i18n';\nimport React from 'react';\n\nimport { useLayoutProvider } from '../../providers';\nimport { cn } from '../../tailwind';\nimport type { TableHeaderProps } from './types';\n\nconst TableHeader = ({ columns, isScrolled, isError }: TableHeaderProps) => {\n const { isDark } = useLayoutProvider();\n const { lang } = useLocale();\n\n return (\n <thead data-testid=\"table-header\">\n <tr className=\"lw-h-11 lw-bg-bg-primary lw-text-text-primary\">\n {columns.map(\n (\n {\n displayName,\n additionalStyles: { align, minWidth, paddingRight },\n },\n index\n ) => (\n <th\n key={`table-header-${displayName}`}\n className={cn(\n 'lw-px-3 lw-py-0 lw-font-sans lw-text-sm lw-tracking-normal lw-font-semibold',\n {\n 'lw-sticky lw-left-0 lw-pr-3': !isError && index === 0,\n 'lw-bg-whiteWithShadow':\n !isDark && !isError && isScrolled && index === 0,\n 'lw-bg-bg-primary':\n isDark && !isError && isScrolled && index === 0,\n }\n )}\n >\n <div\n className={cn(\n align === 'right' && 'lw-text-right',\n align === 'left' && 'lw-text-left',\n align === 'center' && 'lw-text-center',\n paddingRight && 'lw-pr-4'\n )}\n style={{ minWidth }}\n >\n {lang(displayName)}\n </div>\n </th>\n )\n )}\n </tr>\n </thead>\n );\n};\n\nexport { TableHeader };\n"],"mappings":"AAAA,SAASA,SAAS,QAAQ,kBAAkB;AAC5C,OAAOC,KAAK,MAAM,OAAO;AAEzB,SAASC,iBAAiB,QAAQ,iBAAiB;AACnD,SAASC,EAAE,QAAQ,gBAAgB;AAGnC,MAAMC,WAAW,GAAGC,IAAA,IAAwD;EAAA,IAAvD;IAAEC,OAAO;IAAEC,UAAU;IAAEC;EAA0B,CAAC,GAAAH,IAAA;EACrE,MAAM;IAAEI;EAAO,CAAC,GAAGP,iBAAiB,CAAC,CAAC;EACtC,MAAM;IAAEQ;EAAK,CAAC,GAAGV,SAAS,CAAC,CAAC;EAE5B,OACEC,KAAA,CAAAU,aAAA;IAAO,eAAY;EAAc,GAC/BV,KAAA,CAAAU,aAAA;IAAIC,SAAS,EAAC;EAA+C,GAC1DN,OAAO,CAACO,GAAG,CACV,CAAAC,KAAA,EAKEC,KAAK;IAAA,IAJL;MACEC,WAAW;MACXC,gBAAgB,EAAE;QAAEC,KAAK;QAAEC,QAAQ;QAAEC;MAAa;IACpD,CAAC,GAAAN,KAAA;IAAA,OAGDb,KAAA,CAAAU,aAAA;MACEU,GAAG,EAAE,gBAAgBL,WAAW,EAAG;MACnCJ,SAAS,EAAET,EAAE,CACX,6EAA6E,EAC7E;QACE,6BAA6B,EAAE,CAACK,OAAO,IAAIO,KAAK,KAAK,CAAC;QACtD,uBAAuB,EACrB,CAACN,MAAM,IAAI,CAACD,OAAO,IAAID,UAAU,IAAIQ,KAAK,KAAK,CAAC;QAClD,kBAAkB,EAChBN,MAAM,IAAI,CAACD,OAAO,IAAID,UAAU,IAAIQ,KAAK,KAAK;MAClD,CACF;IAAE,GAEFd,KAAA,CAAAU,aAAA;MACEC,SAAS,EAAET,EAAE,CACXe,KAAK,KAAK,OAAO,IAAI,eAAe,EACpCA,KAAK,KAAK,MAAM,IAAI,cAAc,EAClCA,KAAK,KAAK,QAAQ,IAAI,gBAAgB,EACtCE,YAAY,IAAI,SAClB,CAAE;MACFE,KAAK,EAAE;QAAEH;MAAS;IAAE,GAEnBT,IAAI,CAACM,WAAW,CACd,CACH,CAAC;EAAA,CAET,CACE,CACC,CAAC;AAEZ,CAAC;AAED,SAASZ,WAAW","ignoreList":[]}
@@ -6,7 +6,6 @@ import { LineChartCardRow } from '../Card/rows';
6
6
  import { Truncate } from '../Truncate';
7
7
  import { CardRenderer } from './CardRenderer';
8
8
  export const CardRecordRow = _ref => {
9
- var _record$chart;
10
9
  let {
11
10
  record,
12
11
  target,
@@ -34,7 +33,7 @@ export const CardRecordRow = _ref => {
34
33
  tooltipId: tooltipId
35
34
  })
36
35
  }, activeColumns.includes(DataRecordType.CHART) && React.createElement(LineChartCardRow, {
37
- chart: (_record$chart = record.chart) !== null && _record$chart !== void 0 ? _record$chart : [],
36
+ chart: record.chart ?? [],
38
37
  isLoading: !!isChartLoading,
39
38
  percentChange: updatedRecord.dailyPercentChange
40
39
  })), React.createElement(CardRenderer, {
@@ -1 +1 @@
1
- {"version":3,"file":"CardRecordRow.js","names":["React","useVisibleLiveDataRecord","DataRecordType","Card","CardHeader","LineChartCardRow","Truncate","CardRenderer","CardRecordRow","_ref","_record$chart","record","target","isLast","isLoading","isChartLoading","activeColumns","tooltipId","index","updatedRecord","error","ref","instrument","createElement","withoutBottomBorder","number","title","text","displayName","includes","CHART","chart","percentChange","dailyPercentChange","isError"],"sources":["../../../../src/components/TableWidget/CardRecordRow.tsx"],"sourcesContent":["import React from 'react';\n\nimport { useVisibleLiveDataRecord } from '../../hooks';\nimport type { DataRecord, EmptyRecord } from '../../types';\nimport { DataRecordType } from '../../types';\nimport { Card, CardHeader } from '../Card';\nimport { LineChartCardRow } from '../Card/rows';\nimport { Truncate } from '../Truncate';\nimport { CardRenderer } from './CardRenderer';\n\nexport interface DataRecordRowProps {\n record: DataRecord | EmptyRecord;\n target: EventTarget | null;\n activeColumns: DataRecordType[];\n isLast?: boolean;\n isLoading?: boolean;\n isChartLoading?: boolean;\n tooltipId: string;\n index: number;\n}\n\nexport const CardRecordRow = ({\n record,\n target,\n isLast,\n isLoading,\n isChartLoading,\n activeColumns,\n tooltipId,\n index,\n}: DataRecordRowProps) => {\n const { updatedRecord, error, ref } = useVisibleLiveDataRecord(\n record,\n record.instrument ? target : null\n );\n\n return (\n <Card ref={ref} data-testid=\"card\" withoutBottomBorder={!isLast}>\n <CardHeader\n isLoading={isLoading}\n number={index}\n title={<Truncate text={record.displayName} tooltipId={tooltipId} />}\n >\n {activeColumns.includes(DataRecordType.CHART) && (\n <LineChartCardRow\n chart={record.chart ?? []}\n isLoading={!!isChartLoading}\n percentChange={updatedRecord.dailyPercentChange}\n />\n )}\n </CardHeader>\n <CardRenderer\n activeColumns={activeColumns}\n isError={!!error}\n isLoading={isLoading}\n record={updatedRecord}\n />\n </Card>\n );\n};\n"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;AAEzB,SAASC,wBAAwB,QAAQ,aAAa;AAEtD,SAASC,cAAc,QAAQ,aAAa;AAC5C,SAASC,IAAI,EAAEC,UAAU,QAAQ,SAAS;AAC1C,SAASC,gBAAgB,QAAQ,cAAc;AAC/C,SAASC,QAAQ,QAAQ,aAAa;AACtC,SAASC,YAAY,QAAQ,gBAAgB;AAa7C,OAAO,MAAMC,aAAa,GAAGC,IAAA,IASH;EAAA,IAAAC,aAAA;EAAA,IATI;IAC5BC,MAAM;IACNC,MAAM;IACNC,MAAM;IACNC,SAAS;IACTC,cAAc;IACdC,aAAa;IACbC,SAAS;IACTC;EACkB,CAAC,GAAAT,IAAA;EACnB,MAAM;IAAEU,aAAa;IAAEC,KAAK;IAAEC;EAAI,CAAC,GAAGpB,wBAAwB,CAC5DU,MAAM,EACNA,MAAM,CAACW,UAAU,GAAGV,MAAM,GAAG,IAC/B,CAAC;EAED,OACEZ,KAAA,CAAAuB,aAAA,CAACpB,IAAI;IAACkB,GAAG,EAAEA,GAAI;IAAC,eAAY,MAAM;IAACG,mBAAmB,EAAE,CAACX;EAAO,GAC9Db,KAAA,CAAAuB,aAAA,CAACnB,UAAU;IACTU,SAAS,EAAEA,SAAU;IACrBW,MAAM,EAAEP,KAAM;IACdQ,KAAK,EAAE1B,KAAA,CAAAuB,aAAA,CAACjB,QAAQ;MAACqB,IAAI,EAAEhB,MAAM,CAACiB,WAAY;MAACX,SAAS,EAAEA;IAAU,CAAE;EAAE,GAEnED,aAAa,CAACa,QAAQ,CAAC3B,cAAc,CAAC4B,KAAK,CAAC,IAC3C9B,KAAA,CAAAuB,aAAA,CAAClB,gBAAgB;IACf0B,KAAK,GAAArB,aAAA,GAAEC,MAAM,CAACoB,KAAK,cAAArB,aAAA,cAAAA,aAAA,GAAI,EAAG;IAC1BI,SAAS,EAAE,CAAC,CAACC,cAAe;IAC5BiB,aAAa,EAAEb,aAAa,CAACc;EAAmB,CACjD,CAEO,CAAC,EACbjC,KAAA,CAAAuB,aAAA,CAAChB,YAAY;IACXS,aAAa,EAAEA,aAAc;IAC7BkB,OAAO,EAAE,CAAC,CAACd,KAAM;IACjBN,SAAS,EAAEA,SAAU;IACrBH,MAAM,EAAEQ;EAAc,CACvB,CACG,CAAC;AAEX,CAAC","ignoreList":[]}
1
+ {"version":3,"file":"CardRecordRow.js","names":["React","useVisibleLiveDataRecord","DataRecordType","Card","CardHeader","LineChartCardRow","Truncate","CardRenderer","CardRecordRow","_ref","record","target","isLast","isLoading","isChartLoading","activeColumns","tooltipId","index","updatedRecord","error","ref","instrument","createElement","withoutBottomBorder","number","title","text","displayName","includes","CHART","chart","percentChange","dailyPercentChange","isError"],"sources":["../../../../src/components/TableWidget/CardRecordRow.tsx"],"sourcesContent":["import React from 'react';\n\nimport { useVisibleLiveDataRecord } from '../../hooks';\nimport type { DataRecord, EmptyRecord } from '../../types';\nimport { DataRecordType } from '../../types';\nimport { Card, CardHeader } from '../Card';\nimport { LineChartCardRow } from '../Card/rows';\nimport { Truncate } from '../Truncate';\nimport { CardRenderer } from './CardRenderer';\n\nexport interface DataRecordRowProps {\n record: DataRecord | EmptyRecord;\n target: EventTarget | null;\n activeColumns: DataRecordType[];\n isLast?: boolean;\n isLoading?: boolean;\n isChartLoading?: boolean;\n tooltipId: string;\n index: number;\n}\n\nexport const CardRecordRow = ({\n record,\n target,\n isLast,\n isLoading,\n isChartLoading,\n activeColumns,\n tooltipId,\n index,\n}: DataRecordRowProps) => {\n const { updatedRecord, error, ref } = useVisibleLiveDataRecord(\n record,\n record.instrument ? target : null\n );\n\n return (\n <Card ref={ref} data-testid=\"card\" withoutBottomBorder={!isLast}>\n <CardHeader\n isLoading={isLoading}\n number={index}\n title={<Truncate text={record.displayName} tooltipId={tooltipId} />}\n >\n {activeColumns.includes(DataRecordType.CHART) && (\n <LineChartCardRow\n chart={record.chart ?? []}\n isLoading={!!isChartLoading}\n percentChange={updatedRecord.dailyPercentChange}\n />\n )}\n </CardHeader>\n <CardRenderer\n activeColumns={activeColumns}\n isError={!!error}\n isLoading={isLoading}\n record={updatedRecord}\n />\n </Card>\n );\n};\n"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;AAEzB,SAASC,wBAAwB,QAAQ,aAAa;AAEtD,SAASC,cAAc,QAAQ,aAAa;AAC5C,SAASC,IAAI,EAAEC,UAAU,QAAQ,SAAS;AAC1C,SAASC,gBAAgB,QAAQ,cAAc;AAC/C,SAASC,QAAQ,QAAQ,aAAa;AACtC,SAASC,YAAY,QAAQ,gBAAgB;AAa7C,OAAO,MAAMC,aAAa,GAAGC,IAAA,IASH;EAAA,IATI;IAC5BC,MAAM;IACNC,MAAM;IACNC,MAAM;IACNC,SAAS;IACTC,cAAc;IACdC,aAAa;IACbC,SAAS;IACTC;EACkB,CAAC,GAAAR,IAAA;EACnB,MAAM;IAAES,aAAa;IAAEC,KAAK;IAAEC;EAAI,CAAC,GAAGnB,wBAAwB,CAC5DS,MAAM,EACNA,MAAM,CAACW,UAAU,GAAGV,MAAM,GAAG,IAC/B,CAAC;EAED,OACEX,KAAA,CAAAsB,aAAA,CAACnB,IAAI;IAACiB,GAAG,EAAEA,GAAI;IAAC,eAAY,MAAM;IAACG,mBAAmB,EAAE,CAACX;EAAO,GAC9DZ,KAAA,CAAAsB,aAAA,CAAClB,UAAU;IACTS,SAAS,EAAEA,SAAU;IACrBW,MAAM,EAAEP,KAAM;IACdQ,KAAK,EAAEzB,KAAA,CAAAsB,aAAA,CAAChB,QAAQ;MAACoB,IAAI,EAAEhB,MAAM,CAACiB,WAAY;MAACX,SAAS,EAAEA;IAAU,CAAE;EAAE,GAEnED,aAAa,CAACa,QAAQ,CAAC1B,cAAc,CAAC2B,KAAK,CAAC,IAC3C7B,KAAA,CAAAsB,aAAA,CAACjB,gBAAgB;IACfyB,KAAK,EAAEpB,MAAM,CAACoB,KAAK,IAAI,EAAG;IAC1BjB,SAAS,EAAE,CAAC,CAACC,cAAe;IAC5BiB,aAAa,EAAEb,aAAa,CAACc;EAAmB,CACjD,CAEO,CAAC,EACbhC,KAAA,CAAAsB,aAAA,CAACf,YAAY;IACXQ,aAAa,EAAEA,aAAc;IAC7BkB,OAAO,EAAE,CAAC,CAACd,KAAM;IACjBN,SAAS,EAAEA,SAAU;IACrBH,MAAM,EAAEQ;EAAc,CACvB,CACG,CAAC;AAEX,CAAC","ignoreList":[]}
@@ -47,11 +47,8 @@ export const CardRenderer = _ref => {
47
47
  sentiment: record.sentiment
48
48
  })
49
49
  };
50
- return activeColumns.map(item => {
51
- var _allColumns$item, _allColumns$item2;
52
- return React.createElement(React.Fragment, {
53
- key: item
54
- }, (_allColumns$item = (_allColumns$item2 = allColumns[item]) === null || _allColumns$item2 === void 0 ? void 0 : _allColumns$item2.call(allColumns)) !== null && _allColumns$item !== void 0 ? _allColumns$item : null);
55
- });
50
+ return activeColumns.map(item => React.createElement(React.Fragment, {
51
+ key: item
52
+ }, allColumns[item]?.() ?? null));
56
53
  };
57
54
  //# sourceMappingURL=CardRenderer.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"CardRenderer.js","names":["useLocale","React","DataRecordType","DailyChangeCardRow","PriceCardRow","SentimentCardRow","SpreadCardRow","CardRenderer","_ref","activeColumns","record","isError","isLoading","lang","allColumns","SELL","createElement","displayPrecision","label","price","sell","priceMovement","sellPriceMovement","BUY","buy","buyPriceMovement","DAILY_CHANGE","dailyPercentChange","SPREAD","value","spread","SENTIMENT","sentiment","map","item","_allColumns$item","_allColumns$item2","Fragment","key","call"],"sources":["../../../../src/components/TableWidget/CardRenderer.tsx"],"sourcesContent":["import { useLocale } from '@oanda/mono-i18n';\nimport React from 'react';\n\nimport type { DataRecord, EmptyRecord } from '../../types';\nimport { DataRecordType } from '../../types';\nimport {\n DailyChangeCardRow,\n PriceCardRow,\n SentimentCardRow,\n SpreadCardRow,\n} from '../Card/rows';\n\ninterface CardRendererProps {\n record: DataRecord | EmptyRecord;\n isLoading?: boolean;\n isError: boolean;\n activeColumns: DataRecordType[];\n}\n\nexport const CardRenderer = ({\n activeColumns,\n record,\n isError,\n isLoading,\n}: CardRendererProps) => {\n const { lang } = useLocale();\n\n const allColumns: Partial<Record<DataRecordType, () => JSX.Element>> = {\n [DataRecordType.SELL]: () => (\n <PriceCardRow\n displayPrecision={record.displayPrecision}\n isError={isError}\n isLoading={isLoading}\n label={lang('sell_price')}\n price={record.sell}\n priceMovement={record.sellPriceMovement}\n />\n ),\n [DataRecordType.BUY]: () => (\n <PriceCardRow\n displayPrecision={record.displayPrecision}\n isError={isError}\n isLoading={isLoading}\n label={lang('buy_price')}\n price={record.buy}\n priceMovement={record.buyPriceMovement}\n />\n ),\n [DataRecordType.DAILY_CHANGE]: () => (\n <DailyChangeCardRow\n dailyPercentChange={record.dailyPercentChange}\n isError={isError}\n isLoading={isLoading}\n label={lang('daily_percent_change')}\n />\n ),\n [DataRecordType.SPREAD]: () => (\n <SpreadCardRow\n isError={isError}\n isLoading={isLoading}\n label={lang('spread')}\n value={record.spread}\n />\n ),\n [DataRecordType.SENTIMENT]: () => (\n <SentimentCardRow\n isLoading={isLoading}\n label={lang('sentiment')}\n sentiment={record.sentiment}\n />\n ),\n };\n\n return activeColumns.map((item) => (\n <React.Fragment key={item}>{allColumns[item]?.() ?? null}</React.Fragment>\n ));\n};\n"],"mappings":"AAAA,SAASA,SAAS,QAAQ,kBAAkB;AAC5C,OAAOC,KAAK,MAAM,OAAO;AAGzB,SAASC,cAAc,QAAQ,aAAa;AAC5C,SACEC,kBAAkB,EAClBC,YAAY,EACZC,gBAAgB,EAChBC,aAAa,QACR,cAAc;AASrB,OAAO,MAAMC,YAAY,GAAGC,IAAA,IAKH;EAAA,IALI;IAC3BC,aAAa;IACbC,MAAM;IACNC,OAAO;IACPC;EACiB,CAAC,GAAAJ,IAAA;EAClB,MAAM;IAAEK;EAAK,CAAC,GAAGb,SAAS,CAAC,CAAC;EAE5B,MAAMc,UAA8D,GAAG;IACrE,CAACZ,cAAc,CAACa,IAAI,GAAG,MACrBd,KAAA,CAAAe,aAAA,CAACZ,YAAY;MACXa,gBAAgB,EAAEP,MAAM,CAACO,gBAAiB;MAC1CN,OAAO,EAAEA,OAAQ;MACjBC,SAAS,EAAEA,SAAU;MACrBM,KAAK,EAAEL,IAAI,CAAC,YAAY,CAAE;MAC1BM,KAAK,EAAET,MAAM,CAACU,IAAK;MACnBC,aAAa,EAAEX,MAAM,CAACY;IAAkB,CACzC,CACF;IACD,CAACpB,cAAc,CAACqB,GAAG,GAAG,MACpBtB,KAAA,CAAAe,aAAA,CAACZ,YAAY;MACXa,gBAAgB,EAAEP,MAAM,CAACO,gBAAiB;MAC1CN,OAAO,EAAEA,OAAQ;MACjBC,SAAS,EAAEA,SAAU;MACrBM,KAAK,EAAEL,IAAI,CAAC,WAAW,CAAE;MACzBM,KAAK,EAAET,MAAM,CAACc,GAAI;MAClBH,aAAa,EAAEX,MAAM,CAACe;IAAiB,CACxC,CACF;IACD,CAACvB,cAAc,CAACwB,YAAY,GAAG,MAC7BzB,KAAA,CAAAe,aAAA,CAACb,kBAAkB;MACjBwB,kBAAkB,EAAEjB,MAAM,CAACiB,kBAAmB;MAC9ChB,OAAO,EAAEA,OAAQ;MACjBC,SAAS,EAAEA,SAAU;MACrBM,KAAK,EAAEL,IAAI,CAAC,sBAAsB;IAAE,CACrC,CACF;IACD,CAACX,cAAc,CAAC0B,MAAM,GAAG,MACvB3B,KAAA,CAAAe,aAAA,CAACV,aAAa;MACZK,OAAO,EAAEA,OAAQ;MACjBC,SAAS,EAAEA,SAAU;MACrBM,KAAK,EAAEL,IAAI,CAAC,QAAQ,CAAE;MACtBgB,KAAK,EAAEnB,MAAM,CAACoB;IAAO,CACtB,CACF;IACD,CAAC5B,cAAc,CAAC6B,SAAS,GAAG,MAC1B9B,KAAA,CAAAe,aAAA,CAACX,gBAAgB;MACfO,SAAS,EAAEA,SAAU;MACrBM,KAAK,EAAEL,IAAI,CAAC,WAAW,CAAE;MACzBmB,SAAS,EAAEtB,MAAM,CAACsB;IAAU,CAC7B;EAEL,CAAC;EAED,OAAOvB,aAAa,CAACwB,GAAG,CAAEC,IAAI;IAAA,IAAAC,gBAAA,EAAAC,iBAAA;IAAA,OAC5BnC,KAAA,CAAAe,aAAA,CAACf,KAAK,CAACoC,QAAQ;MAACC,GAAG,EAAEJ;IAAK,IAAAC,gBAAA,IAAAC,iBAAA,GAAEtB,UAAU,CAACoB,IAAI,CAAC,cAAAE,iBAAA,uBAAhBA,iBAAA,CAAAG,IAAA,CAAAzB,UAAmB,CAAC,cAAAqB,gBAAA,cAAAA,gBAAA,GAAI,IAAqB,CAAC;EAAA,CAC3E,CAAC;AACJ,CAAC","ignoreList":[]}
1
+ {"version":3,"file":"CardRenderer.js","names":["useLocale","React","DataRecordType","DailyChangeCardRow","PriceCardRow","SentimentCardRow","SpreadCardRow","CardRenderer","_ref","activeColumns","record","isError","isLoading","lang","allColumns","SELL","createElement","displayPrecision","label","price","sell","priceMovement","sellPriceMovement","BUY","buy","buyPriceMovement","DAILY_CHANGE","dailyPercentChange","SPREAD","value","spread","SENTIMENT","sentiment","map","item","Fragment","key"],"sources":["../../../../src/components/TableWidget/CardRenderer.tsx"],"sourcesContent":["import { useLocale } from '@oanda/mono-i18n';\nimport React from 'react';\n\nimport type { DataRecord, EmptyRecord } from '../../types';\nimport { DataRecordType } from '../../types';\nimport {\n DailyChangeCardRow,\n PriceCardRow,\n SentimentCardRow,\n SpreadCardRow,\n} from '../Card/rows';\n\ninterface CardRendererProps {\n record: DataRecord | EmptyRecord;\n isLoading?: boolean;\n isError: boolean;\n activeColumns: DataRecordType[];\n}\n\nexport const CardRenderer = ({\n activeColumns,\n record,\n isError,\n isLoading,\n}: CardRendererProps) => {\n const { lang } = useLocale();\n\n const allColumns: Partial<Record<DataRecordType, () => JSX.Element>> = {\n [DataRecordType.SELL]: () => (\n <PriceCardRow\n displayPrecision={record.displayPrecision}\n isError={isError}\n isLoading={isLoading}\n label={lang('sell_price')}\n price={record.sell}\n priceMovement={record.sellPriceMovement}\n />\n ),\n [DataRecordType.BUY]: () => (\n <PriceCardRow\n displayPrecision={record.displayPrecision}\n isError={isError}\n isLoading={isLoading}\n label={lang('buy_price')}\n price={record.buy}\n priceMovement={record.buyPriceMovement}\n />\n ),\n [DataRecordType.DAILY_CHANGE]: () => (\n <DailyChangeCardRow\n dailyPercentChange={record.dailyPercentChange}\n isError={isError}\n isLoading={isLoading}\n label={lang('daily_percent_change')}\n />\n ),\n [DataRecordType.SPREAD]: () => (\n <SpreadCardRow\n isError={isError}\n isLoading={isLoading}\n label={lang('spread')}\n value={record.spread}\n />\n ),\n [DataRecordType.SENTIMENT]: () => (\n <SentimentCardRow\n isLoading={isLoading}\n label={lang('sentiment')}\n sentiment={record.sentiment}\n />\n ),\n };\n\n return activeColumns.map((item) => (\n <React.Fragment key={item}>{allColumns[item]?.() ?? null}</React.Fragment>\n ));\n};\n"],"mappings":"AAAA,SAASA,SAAS,QAAQ,kBAAkB;AAC5C,OAAOC,KAAK,MAAM,OAAO;AAGzB,SAASC,cAAc,QAAQ,aAAa;AAC5C,SACEC,kBAAkB,EAClBC,YAAY,EACZC,gBAAgB,EAChBC,aAAa,QACR,cAAc;AASrB,OAAO,MAAMC,YAAY,GAAGC,IAAA,IAKH;EAAA,IALI;IAC3BC,aAAa;IACbC,MAAM;IACNC,OAAO;IACPC;EACiB,CAAC,GAAAJ,IAAA;EAClB,MAAM;IAAEK;EAAK,CAAC,GAAGb,SAAS,CAAC,CAAC;EAE5B,MAAMc,UAA8D,GAAG;IACrE,CAACZ,cAAc,CAACa,IAAI,GAAG,MACrBd,KAAA,CAAAe,aAAA,CAACZ,YAAY;MACXa,gBAAgB,EAAEP,MAAM,CAACO,gBAAiB;MAC1CN,OAAO,EAAEA,OAAQ;MACjBC,SAAS,EAAEA,SAAU;MACrBM,KAAK,EAAEL,IAAI,CAAC,YAAY,CAAE;MAC1BM,KAAK,EAAET,MAAM,CAACU,IAAK;MACnBC,aAAa,EAAEX,MAAM,CAACY;IAAkB,CACzC,CACF;IACD,CAACpB,cAAc,CAACqB,GAAG,GAAG,MACpBtB,KAAA,CAAAe,aAAA,CAACZ,YAAY;MACXa,gBAAgB,EAAEP,MAAM,CAACO,gBAAiB;MAC1CN,OAAO,EAAEA,OAAQ;MACjBC,SAAS,EAAEA,SAAU;MACrBM,KAAK,EAAEL,IAAI,CAAC,WAAW,CAAE;MACzBM,KAAK,EAAET,MAAM,CAACc,GAAI;MAClBH,aAAa,EAAEX,MAAM,CAACe;IAAiB,CACxC,CACF;IACD,CAACvB,cAAc,CAACwB,YAAY,GAAG,MAC7BzB,KAAA,CAAAe,aAAA,CAACb,kBAAkB;MACjBwB,kBAAkB,EAAEjB,MAAM,CAACiB,kBAAmB;MAC9ChB,OAAO,EAAEA,OAAQ;MACjBC,SAAS,EAAEA,SAAU;MACrBM,KAAK,EAAEL,IAAI,CAAC,sBAAsB;IAAE,CACrC,CACF;IACD,CAACX,cAAc,CAAC0B,MAAM,GAAG,MACvB3B,KAAA,CAAAe,aAAA,CAACV,aAAa;MACZK,OAAO,EAAEA,OAAQ;MACjBC,SAAS,EAAEA,SAAU;MACrBM,KAAK,EAAEL,IAAI,CAAC,QAAQ,CAAE;MACtBgB,KAAK,EAAEnB,MAAM,CAACoB;IAAO,CACtB,CACF;IACD,CAAC5B,cAAc,CAAC6B,SAAS,GAAG,MAC1B9B,KAAA,CAAAe,aAAA,CAACX,gBAAgB;MACfO,SAAS,EAAEA,SAAU;MACrBM,KAAK,EAAEL,IAAI,CAAC,WAAW,CAAE;MACzBmB,SAAS,EAAEtB,MAAM,CAACsB;IAAU,CAC7B;EAEL,CAAC;EAED,OAAOvB,aAAa,CAACwB,GAAG,CAAEC,IAAI,IAC5BjC,KAAA,CAAAe,aAAA,CAACf,KAAK,CAACkC,QAAQ;IAACC,GAAG,EAAEF;EAAK,GAAEpB,UAAU,CAACoB,IAAI,CAAC,GAAG,CAAC,IAAI,IAAqB,CAC1E,CAAC;AACJ,CAAC","ignoreList":[]}
@@ -15,7 +15,7 @@ export const Cards = _ref => {
15
15
  }, React.createElement(ChartError, null)));
16
16
  }
17
17
  return React.createElement(React.Fragment, null, recordsOrEmptyRecords.map((record, index) => React.createElement("div", {
18
- key: "card_".concat(startIndex + index)
18
+ key: `card_${startIndex + index}`
19
19
  }, renderCard({
20
20
  record,
21
21
  idx: startIndex + index + 1,
@@ -1 +1 @@
1
- {"version":3,"file":"Cards.js","names":["Card","ChartError","React","Cards","_ref","records","isError","emptyCardsCount","renderCard","startIndex","recordsOrEmptyRecords","length","Array","fill","createElement","className","Fragment","map","record","index","key","concat","idx","isLast"],"sources":["../../../../src/components/TableWidget/Cards.tsx"],"sourcesContent":["import { Card, ChartError } from '@oanda/labs-widget-common';\nimport React from 'react';\n\nimport type { DataRecord, EmptyRecord } from '../../types';\n\ninterface CardsProps {\n records: DataRecord[];\n isError?: boolean;\n emptyCardsCount?: number;\n startIndex?: number;\n renderCard: ({\n record,\n idx,\n isLast,\n }: {\n record: DataRecord | EmptyRecord;\n idx: number;\n isLast: boolean;\n }) => React.ReactNode;\n}\n\nexport const Cards = ({\n records,\n isError,\n emptyCardsCount,\n renderCard,\n startIndex = 0,\n}: CardsProps) => {\n const recordsOrEmptyRecords: DataRecord[] | EmptyRecord[] =\n records.length > 0 ? records : new Array(emptyCardsCount).fill({});\n\n if (isError) {\n return (\n <Card>\n <div className=\"lw-flex lw-h-[150px] lw-w-full lw-items-center lw-justify-center\">\n <ChartError />\n </div>\n </Card>\n );\n }\n\n return (\n <>\n {recordsOrEmptyRecords.map((record, index) => (\n <div key={`card_${startIndex + index}`}>\n {renderCard({\n record,\n idx: startIndex + index + 1,\n isLast: index + 1 === recordsOrEmptyRecords.length,\n })}\n </div>\n ))}\n </>\n );\n};\n"],"mappings":"AAAA,SAASA,IAAI,EAAEC,UAAU,QAAQ,2BAA2B;AAC5D,OAAOC,KAAK,MAAM,OAAO;AAoBzB,OAAO,MAAMC,KAAK,GAAGC,IAAA,IAMH;EAAA,IANI;IACpBC,OAAO;IACPC,OAAO;IACPC,eAAe;IACfC,UAAU;IACVC,UAAU,GAAG;EACH,CAAC,GAAAL,IAAA;EACX,MAAMM,qBAAmD,GACvDL,OAAO,CAACM,MAAM,GAAG,CAAC,GAAGN,OAAO,GAAG,IAAIO,KAAK,CAACL,eAAe,CAAC,CAACM,IAAI,CAAC,CAAC,CAAC,CAAC;EAEpE,IAAIP,OAAO,EAAE;IACX,OACEJ,KAAA,CAAAY,aAAA,CAACd,IAAI,QACHE,KAAA,CAAAY,aAAA;MAAKC,SAAS,EAAC;IAAkE,GAC/Eb,KAAA,CAAAY,aAAA,CAACb,UAAU,MAAE,CACV,CACD,CAAC;EAEX;EAEA,OACEC,KAAA,CAAAY,aAAA,CAAAZ,KAAA,CAAAc,QAAA,QACGN,qBAAqB,CAACO,GAAG,CAAC,CAACC,MAAM,EAAEC,KAAK,KACvCjB,KAAA,CAAAY,aAAA;IAAKM,GAAG,UAAAC,MAAA,CAAUZ,UAAU,GAAGU,KAAK;EAAG,GACpCX,UAAU,CAAC;IACVU,MAAM;IACNI,GAAG,EAAEb,UAAU,GAAGU,KAAK,GAAG,CAAC;IAC3BI,MAAM,EAAEJ,KAAK,GAAG,CAAC,KAAKT,qBAAqB,CAACC;EAC9C,CAAC,CACE,CACN,CACD,CAAC;AAEP,CAAC","ignoreList":[]}
1
+ {"version":3,"file":"Cards.js","names":["Card","ChartError","React","Cards","_ref","records","isError","emptyCardsCount","renderCard","startIndex","recordsOrEmptyRecords","length","Array","fill","createElement","className","Fragment","map","record","index","key","idx","isLast"],"sources":["../../../../src/components/TableWidget/Cards.tsx"],"sourcesContent":["import { Card, ChartError } from '@oanda/labs-widget-common';\nimport React from 'react';\n\nimport type { DataRecord, EmptyRecord } from '../../types';\n\ninterface CardsProps {\n records: DataRecord[];\n isError?: boolean;\n emptyCardsCount?: number;\n startIndex?: number;\n renderCard: ({\n record,\n idx,\n isLast,\n }: {\n record: DataRecord | EmptyRecord;\n idx: number;\n isLast: boolean;\n }) => React.ReactNode;\n}\n\nexport const Cards = ({\n records,\n isError,\n emptyCardsCount,\n renderCard,\n startIndex = 0,\n}: CardsProps) => {\n const recordsOrEmptyRecords: DataRecord[] | EmptyRecord[] =\n records.length > 0 ? records : new Array(emptyCardsCount).fill({});\n\n if (isError) {\n return (\n <Card>\n <div className=\"lw-flex lw-h-[150px] lw-w-full lw-items-center lw-justify-center\">\n <ChartError />\n </div>\n </Card>\n );\n }\n\n return (\n <>\n {recordsOrEmptyRecords.map((record, index) => (\n <div key={`card_${startIndex + index}`}>\n {renderCard({\n record,\n idx: startIndex + index + 1,\n isLast: index + 1 === recordsOrEmptyRecords.length,\n })}\n </div>\n ))}\n </>\n );\n};\n"],"mappings":"AAAA,SAASA,IAAI,EAAEC,UAAU,QAAQ,2BAA2B;AAC5D,OAAOC,KAAK,MAAM,OAAO;AAoBzB,OAAO,MAAMC,KAAK,GAAGC,IAAA,IAMH;EAAA,IANI;IACpBC,OAAO;IACPC,OAAO;IACPC,eAAe;IACfC,UAAU;IACVC,UAAU,GAAG;EACH,CAAC,GAAAL,IAAA;EACX,MAAMM,qBAAmD,GACvDL,OAAO,CAACM,MAAM,GAAG,CAAC,GAAGN,OAAO,GAAG,IAAIO,KAAK,CAACL,eAAe,CAAC,CAACM,IAAI,CAAC,CAAC,CAAC,CAAC;EAEpE,IAAIP,OAAO,EAAE;IACX,OACEJ,KAAA,CAAAY,aAAA,CAACd,IAAI,QACHE,KAAA,CAAAY,aAAA;MAAKC,SAAS,EAAC;IAAkE,GAC/Eb,KAAA,CAAAY,aAAA,CAACb,UAAU,MAAE,CACV,CACD,CAAC;EAEX;EAEA,OACEC,KAAA,CAAAY,aAAA,CAAAZ,KAAA,CAAAc,QAAA,QACGN,qBAAqB,CAACO,GAAG,CAAC,CAACC,MAAM,EAAEC,KAAK,KACvCjB,KAAA,CAAAY,aAAA;IAAKM,GAAG,EAAE,QAAQX,UAAU,GAAGU,KAAK;EAAG,GACpCX,UAAU,CAAC;IACVU,MAAM;IACNG,GAAG,EAAEZ,UAAU,GAAGU,KAAK,GAAG,CAAC;IAC3BG,MAAM,EAAEH,KAAK,GAAG,CAAC,KAAKT,qBAAqB,CAACC;EAC9C,CAAC,CACE,CACN,CACD,CAAC;AAEP,CAAC","ignoreList":[]}
@@ -34,7 +34,7 @@ export const ColumnRenderer = _ref => {
34
34
  isLoading: isLoading
35
35
  }),
36
36
  [DataRecordType.CHART]: () => React.createElement(ChartColumn, {
37
- chart: chart !== null && chart !== void 0 ? chart : [],
37
+ chart: chart ?? [],
38
38
  isLoading: !!isChartLoading,
39
39
  percentChange: record.dailyPercentChange
40
40
  }),
@@ -80,11 +80,8 @@ export const ColumnRenderer = _ref => {
80
80
  loaderSize: LoaderSize.sm
81
81
  }, React.createElement("span", null, record.dataSource))
82
82
  };
83
- return activeColumns.map(item => {
84
- var _allColumns$item, _allColumns$item2;
85
- return React.createElement(React.Fragment, {
86
- key: item
87
- }, (_allColumns$item = (_allColumns$item2 = allColumns[item]) === null || _allColumns$item2 === void 0 ? void 0 : _allColumns$item2.call(allColumns)) !== null && _allColumns$item !== void 0 ? _allColumns$item : null);
88
- });
83
+ return activeColumns.map(item => React.createElement(React.Fragment, {
84
+ key: item
85
+ }, allColumns[item]?.() ?? null));
89
86
  };
90
87
  //# sourceMappingURL=ColumnRenderer.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ColumnRenderer.js","names":["React","DataRecordType","LoaderSize","ChartColumn","DailyChangeColumn","PriceColumn","SentimentColumn","SpreadColumn","TableCell","ColumnRenderer","_ref","record","isLoading","isChartLoading","isError","activeColumns","chart","allColumns","SELL","createElement","column","displayPrecision","price","sell","priceMovement","sellPriceMovement","BUY","buy","buyPriceMovement","DAILY_CHANGE","dailyPercentChange","CHART","percentChange","SPREAD","value","spread","SENTIMENT","sentiment","HIGH","key","high","undefined","loaderSize","sm","LOW","low","SYMBOL","md","type","instrument","TRADE_MODE","additionalPaddingRight","tradeMode","DATA_SOURCE","dataSource","map","item","_allColumns$item","_allColumns$item2","Fragment","call"],"sources":["../../../../src/components/TableWidget/ColumnRenderer.tsx"],"sourcesContent":["import React from 'react';\n\nimport { type DataRecord, DataRecordType } from '../../types';\nimport { LoaderSize } from '../Loader';\nimport {\n ChartColumn,\n DailyChangeColumn,\n PriceColumn,\n SentimentColumn,\n SpreadColumn,\n TableCell,\n} from '../Table';\n\ninterface ColumnRendererProps {\n record: DataRecord;\n chart?: number[];\n isLoading: boolean;\n isChartLoading?: boolean;\n isError: boolean;\n activeColumns: DataRecordType[];\n}\n\nexport const ColumnRenderer = ({\n record,\n isLoading,\n isChartLoading,\n isError,\n activeColumns,\n chart,\n}: ColumnRendererProps) => {\n const allColumns: Partial<Record<DataRecordType, () => JSX.Element>> = {\n [DataRecordType.SELL]: () => (\n <PriceColumn\n column={DataRecordType.SELL}\n displayPrecision={record.displayPrecision}\n isError={isError}\n isLoading={isLoading}\n price={record.sell}\n priceMovement={record.sellPriceMovement}\n />\n ),\n [DataRecordType.BUY]: () => (\n <PriceColumn\n column={DataRecordType.BUY}\n displayPrecision={record.displayPrecision}\n isError={isError}\n isLoading={isLoading}\n price={record.buy}\n priceMovement={record.buyPriceMovement}\n />\n ),\n [DataRecordType.DAILY_CHANGE]: () => (\n <DailyChangeColumn\n dailyPercentChange={record.dailyPercentChange}\n isError={isError}\n isLoading={isLoading}\n />\n ),\n [DataRecordType.CHART]: () => (\n <ChartColumn\n chart={chart ?? []}\n isLoading={!!isChartLoading}\n percentChange={record.dailyPercentChange}\n />\n ),\n [DataRecordType.SPREAD]: () => (\n <SpreadColumn\n isError={isError}\n isLoading={isLoading}\n value={record.spread}\n />\n ),\n [DataRecordType.SENTIMENT]: () => (\n <SentimentColumn isLoading={isLoading} sentiment={record.sentiment} />\n ),\n [DataRecordType.HIGH]: () => (\n <TableCell\n key={DataRecordType.SPREAD}\n isError={isError}\n isLoading={isLoading || (record.high === undefined && !isError)}\n loaderSize={LoaderSize.sm}\n >\n <span>{record.high}</span>\n </TableCell>\n ),\n [DataRecordType.LOW]: () => (\n <TableCell\n key={DataRecordType.LOW}\n isError={isError}\n isLoading={isLoading || (record.low === undefined && !isError)}\n loaderSize={LoaderSize.sm}\n >\n <span>{record.low}</span>\n </TableCell>\n ),\n [DataRecordType.SYMBOL]: () => (\n <TableCell\n key={DataRecordType.SYMBOL}\n isError={isError}\n isLoading={isLoading}\n loaderSize={LoaderSize.md}\n type=\"textCentered\"\n >\n <span>{record.instrument}</span>\n </TableCell>\n ),\n [DataRecordType.TRADE_MODE]: () => (\n <TableCell\n key={DataRecordType.TRADE_MODE}\n additionalPaddingRight={true}\n isError={isError}\n isLoading={isLoading}\n loaderSize={LoaderSize.sm}\n >\n <span>{record.tradeMode}</span>\n </TableCell>\n ),\n [DataRecordType.DATA_SOURCE]: () => (\n <TableCell\n key={DataRecordType.TRADE_MODE}\n isError={!record.dataSource}\n isLoading={isLoading}\n loaderSize={LoaderSize.sm}\n >\n <span>{record.dataSource}</span>\n </TableCell>\n ),\n };\n\n return activeColumns.map((item) => (\n <React.Fragment key={item}>{allColumns[item]?.() ?? null}</React.Fragment>\n ));\n};\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"ColumnRenderer.js","names":["React","DataRecordType","LoaderSize","ChartColumn","DailyChangeColumn","PriceColumn","SentimentColumn","SpreadColumn","TableCell","ColumnRenderer","_ref","record","isLoading","isChartLoading","isError","activeColumns","chart","allColumns","SELL","createElement","column","displayPrecision","price","sell","priceMovement","sellPriceMovement","BUY","buy","buyPriceMovement","DAILY_CHANGE","dailyPercentChange","CHART","percentChange","SPREAD","value","spread","SENTIMENT","sentiment","HIGH","key","high","undefined","loaderSize","sm","LOW","low","SYMBOL","md","type","instrument","TRADE_MODE","additionalPaddingRight","tradeMode","DATA_SOURCE","dataSource","map","item","Fragment"],"sources":["../../../../src/components/TableWidget/ColumnRenderer.tsx"],"sourcesContent":["import React from 'react';\n\nimport { type DataRecord, DataRecordType } from '../../types';\nimport { LoaderSize } from '../Loader';\nimport {\n ChartColumn,\n DailyChangeColumn,\n PriceColumn,\n SentimentColumn,\n SpreadColumn,\n TableCell,\n} from '../Table';\n\ninterface ColumnRendererProps {\n record: DataRecord;\n chart?: number[];\n isLoading: boolean;\n isChartLoading?: boolean;\n isError: boolean;\n activeColumns: DataRecordType[];\n}\n\nexport const ColumnRenderer = ({\n record,\n isLoading,\n isChartLoading,\n isError,\n activeColumns,\n chart,\n}: ColumnRendererProps) => {\n const allColumns: Partial<Record<DataRecordType, () => JSX.Element>> = {\n [DataRecordType.SELL]: () => (\n <PriceColumn\n column={DataRecordType.SELL}\n displayPrecision={record.displayPrecision}\n isError={isError}\n isLoading={isLoading}\n price={record.sell}\n priceMovement={record.sellPriceMovement}\n />\n ),\n [DataRecordType.BUY]: () => (\n <PriceColumn\n column={DataRecordType.BUY}\n displayPrecision={record.displayPrecision}\n isError={isError}\n isLoading={isLoading}\n price={record.buy}\n priceMovement={record.buyPriceMovement}\n />\n ),\n [DataRecordType.DAILY_CHANGE]: () => (\n <DailyChangeColumn\n dailyPercentChange={record.dailyPercentChange}\n isError={isError}\n isLoading={isLoading}\n />\n ),\n [DataRecordType.CHART]: () => (\n <ChartColumn\n chart={chart ?? []}\n isLoading={!!isChartLoading}\n percentChange={record.dailyPercentChange}\n />\n ),\n [DataRecordType.SPREAD]: () => (\n <SpreadColumn\n isError={isError}\n isLoading={isLoading}\n value={record.spread}\n />\n ),\n [DataRecordType.SENTIMENT]: () => (\n <SentimentColumn isLoading={isLoading} sentiment={record.sentiment} />\n ),\n [DataRecordType.HIGH]: () => (\n <TableCell\n key={DataRecordType.SPREAD}\n isError={isError}\n isLoading={isLoading || (record.high === undefined && !isError)}\n loaderSize={LoaderSize.sm}\n >\n <span>{record.high}</span>\n </TableCell>\n ),\n [DataRecordType.LOW]: () => (\n <TableCell\n key={DataRecordType.LOW}\n isError={isError}\n isLoading={isLoading || (record.low === undefined && !isError)}\n loaderSize={LoaderSize.sm}\n >\n <span>{record.low}</span>\n </TableCell>\n ),\n [DataRecordType.SYMBOL]: () => (\n <TableCell\n key={DataRecordType.SYMBOL}\n isError={isError}\n isLoading={isLoading}\n loaderSize={LoaderSize.md}\n type=\"textCentered\"\n >\n <span>{record.instrument}</span>\n </TableCell>\n ),\n [DataRecordType.TRADE_MODE]: () => (\n <TableCell\n key={DataRecordType.TRADE_MODE}\n additionalPaddingRight={true}\n isError={isError}\n isLoading={isLoading}\n loaderSize={LoaderSize.sm}\n >\n <span>{record.tradeMode}</span>\n </TableCell>\n ),\n [DataRecordType.DATA_SOURCE]: () => (\n <TableCell\n key={DataRecordType.TRADE_MODE}\n isError={!record.dataSource}\n isLoading={isLoading}\n loaderSize={LoaderSize.sm}\n >\n <span>{record.dataSource}</span>\n </TableCell>\n ),\n };\n\n return activeColumns.map((item) => (\n <React.Fragment key={item}>{allColumns[item]?.() ?? null}</React.Fragment>\n ));\n};\n"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;AAEzB,SAA0BC,cAAc,QAAQ,aAAa;AAC7D,SAASC,UAAU,QAAQ,WAAW;AACtC,SACEC,WAAW,EACXC,iBAAiB,EACjBC,WAAW,EACXC,eAAe,EACfC,YAAY,EACZC,SAAS,QACJ,UAAU;AAWjB,OAAO,MAAMC,cAAc,GAAGC,IAAA,IAOH;EAAA,IAPI;IAC7BC,MAAM;IACNC,SAAS;IACTC,cAAc;IACdC,OAAO;IACPC,aAAa;IACbC;EACmB,CAAC,GAAAN,IAAA;EACpB,MAAMO,UAA8D,GAAG;IACrE,CAAChB,cAAc,CAACiB,IAAI,GAAG,MACrBlB,KAAA,CAAAmB,aAAA,CAACd,WAAW;MACVe,MAAM,EAAEnB,cAAc,CAACiB,IAAK;MAC5BG,gBAAgB,EAAEV,MAAM,CAACU,gBAAiB;MAC1CP,OAAO,EAAEA,OAAQ;MACjBF,SAAS,EAAEA,SAAU;MACrBU,KAAK,EAAEX,MAAM,CAACY,IAAK;MACnBC,aAAa,EAAEb,MAAM,CAACc;IAAkB,CACzC,CACF;IACD,CAACxB,cAAc,CAACyB,GAAG,GAAG,MACpB1B,KAAA,CAAAmB,aAAA,CAACd,WAAW;MACVe,MAAM,EAAEnB,cAAc,CAACyB,GAAI;MAC3BL,gBAAgB,EAAEV,MAAM,CAACU,gBAAiB;MAC1CP,OAAO,EAAEA,OAAQ;MACjBF,SAAS,EAAEA,SAAU;MACrBU,KAAK,EAAEX,MAAM,CAACgB,GAAI;MAClBH,aAAa,EAAEb,MAAM,CAACiB;IAAiB,CACxC,CACF;IACD,CAAC3B,cAAc,CAAC4B,YAAY,GAAG,MAC7B7B,KAAA,CAAAmB,aAAA,CAACf,iBAAiB;MAChB0B,kBAAkB,EAAEnB,MAAM,CAACmB,kBAAmB;MAC9ChB,OAAO,EAAEA,OAAQ;MACjBF,SAAS,EAAEA;IAAU,CACtB,CACF;IACD,CAACX,cAAc,CAAC8B,KAAK,GAAG,MACtB/B,KAAA,CAAAmB,aAAA,CAAChB,WAAW;MACVa,KAAK,EAAEA,KAAK,IAAI,EAAG;MACnBJ,SAAS,EAAE,CAAC,CAACC,cAAe;MAC5BmB,aAAa,EAAErB,MAAM,CAACmB;IAAmB,CAC1C,CACF;IACD,CAAC7B,cAAc,CAACgC,MAAM,GAAG,MACvBjC,KAAA,CAAAmB,aAAA,CAACZ,YAAY;MACXO,OAAO,EAAEA,OAAQ;MACjBF,SAAS,EAAEA,SAAU;MACrBsB,KAAK,EAAEvB,MAAM,CAACwB;IAAO,CACtB,CACF;IACD,CAAClC,cAAc,CAACmC,SAAS,GAAG,MAC1BpC,KAAA,CAAAmB,aAAA,CAACb,eAAe;MAACM,SAAS,EAAEA,SAAU;MAACyB,SAAS,EAAE1B,MAAM,CAAC0B;IAAU,CAAE,CACtE;IACD,CAACpC,cAAc,CAACqC,IAAI,GAAG,MACrBtC,KAAA,CAAAmB,aAAA,CAACX,SAAS;MACR+B,GAAG,EAAEtC,cAAc,CAACgC,MAAO;MAC3BnB,OAAO,EAAEA,OAAQ;MACjBF,SAAS,EAAEA,SAAS,IAAKD,MAAM,CAAC6B,IAAI,KAAKC,SAAS,IAAI,CAAC3B,OAAS;MAChE4B,UAAU,EAAExC,UAAU,CAACyC;IAAG,GAE1B3C,KAAA,CAAAmB,aAAA,eAAOR,MAAM,CAAC6B,IAAW,CAChB,CACZ;IACD,CAACvC,cAAc,CAAC2C,GAAG,GAAG,MACpB5C,KAAA,CAAAmB,aAAA,CAACX,SAAS;MACR+B,GAAG,EAAEtC,cAAc,CAAC2C,GAAI;MACxB9B,OAAO,EAAEA,OAAQ;MACjBF,SAAS,EAAEA,SAAS,IAAKD,MAAM,CAACkC,GAAG,KAAKJ,SAAS,IAAI,CAAC3B,OAAS;MAC/D4B,UAAU,EAAExC,UAAU,CAACyC;IAAG,GAE1B3C,KAAA,CAAAmB,aAAA,eAAOR,MAAM,CAACkC,GAAU,CACf,CACZ;IACD,CAAC5C,cAAc,CAAC6C,MAAM,GAAG,MACvB9C,KAAA,CAAAmB,aAAA,CAACX,SAAS;MACR+B,GAAG,EAAEtC,cAAc,CAAC6C,MAAO;MAC3BhC,OAAO,EAAEA,OAAQ;MACjBF,SAAS,EAAEA,SAAU;MACrB8B,UAAU,EAAExC,UAAU,CAAC6C,EAAG;MAC1BC,IAAI,EAAC;IAAc,GAEnBhD,KAAA,CAAAmB,aAAA,eAAOR,MAAM,CAACsC,UAAiB,CACtB,CACZ;IACD,CAAChD,cAAc,CAACiD,UAAU,GAAG,MAC3BlD,KAAA,CAAAmB,aAAA,CAACX,SAAS;MACR+B,GAAG,EAAEtC,cAAc,CAACiD,UAAW;MAC/BC,sBAAsB,EAAE,IAAK;MAC7BrC,OAAO,EAAEA,OAAQ;MACjBF,SAAS,EAAEA,SAAU;MACrB8B,UAAU,EAAExC,UAAU,CAACyC;IAAG,GAE1B3C,KAAA,CAAAmB,aAAA,eAAOR,MAAM,CAACyC,SAAgB,CACrB,CACZ;IACD,CAACnD,cAAc,CAACoD,WAAW,GAAG,MAC5BrD,KAAA,CAAAmB,aAAA,CAACX,SAAS;MACR+B,GAAG,EAAEtC,cAAc,CAACiD,UAAW;MAC/BpC,OAAO,EAAE,CAACH,MAAM,CAAC2C,UAAW;MAC5B1C,SAAS,EAAEA,SAAU;MACrB8B,UAAU,EAAExC,UAAU,CAACyC;IAAG,GAE1B3C,KAAA,CAAAmB,aAAA,eAAOR,MAAM,CAAC2C,UAAiB,CACtB;EAEf,CAAC;EAED,OAAOvC,aAAa,CAACwC,GAAG,CAAEC,IAAI,IAC5BxD,KAAA,CAAAmB,aAAA,CAACnB,KAAK,CAACyD,QAAQ;IAAClB,GAAG,EAAEiB;EAAK,GAAEvC,UAAU,CAACuC,IAAI,CAAC,GAAG,CAAC,IAAI,IAAqB,CAC1E,CAAC;AACJ,CAAC","ignoreList":[]}
@@ -49,7 +49,7 @@ export const TableWidget = _ref => {
49
49
  isError: hasError,
50
50
  records: records,
51
51
  renderRow: (record, index, isScrolled) => React.createElement(DataRecordRow, {
52
- key: "row_".concat(index),
52
+ key: `row_${index}`,
53
53
  activeColumns: activeColumns,
54
54
  hasBackgroundColor: index % 2 === 0,
55
55
  instrumentColumnWidth: instrumentColumnWidth,
@@ -1 +1 @@
1
- {"version":3,"file":"TableWidget.js","names":["useLocale","React","useLayoutProvider","cn","Size","LastUpdated","Table","Tooltip","CardRecordRow","Cards","DataRecordRow","TableWidget","_ref","testId","toolTipId","PaginationComponent","hasError","TabsComponent","headerColumns","records","target","isLoading","isChartLoading","activeColumns","timestamp","pageNumber","count","viewType","instrumentColumnWidth","lang","size","isDesktop","DESKTOP","isTable","createElement","className","headerConfig","isError","renderRow","record","index","isScrolled","key","concat","hasBackgroundColor","renderCard","_ref2","idx","isLast","tooltipId","startIndex","id","labelCallback"],"sources":["../../../../src/components/TableWidget/TableWidget.tsx"],"sourcesContent":["import { useLocale } from '@oanda/mono-i18n';\nimport type { ReactElement } from 'react';\nimport React from 'react';\n\nimport { useLayoutProvider } from '../../providers';\nimport { cn } from '../../tailwind';\nimport type { DataRecord, DataRecordType } from '../../types';\nimport { Size } from '../../types';\nimport { LastUpdated } from '../LastUpdated';\nimport type { Pagination, PaginationProps } from '../Pagination';\nimport type { HeaderColumns } from '../Table';\nimport { Table } from '../Table';\nimport type { Tabs } from '../Tabs';\nimport type { TabsProps } from '../Tabs/types';\nimport { Tooltip } from '../Tooltip';\nimport { CardRecordRow } from './CardRecordRow';\nimport { Cards } from './Cards';\nimport { DataRecordRow } from './DataRecordRow';\n\ninterface TableWidgetProps<TTabs> {\n testId: string;\n toolTipId: string;\n hasError?: boolean;\n TabsComponent?: ReactElement<TabsProps<TTabs>, typeof Tabs<TTabs>>;\n PaginationComponent?: ReactElement<PaginationProps, typeof Pagination>;\n headerColumns: HeaderColumns[];\n records: DataRecord[];\n target: EventTarget | null;\n isLoading: boolean;\n isChartLoading?: boolean;\n activeColumns: DataRecordType[];\n timestamp?: string;\n pageNumber: number;\n count: number;\n viewType?: 'table' | 'cards';\n instrumentColumnWidth?: string;\n}\n\nexport const TableWidget = <TTabs,>({\n testId,\n toolTipId,\n PaginationComponent,\n hasError,\n TabsComponent,\n headerColumns,\n records,\n target,\n isLoading,\n isChartLoading,\n activeColumns,\n timestamp,\n pageNumber,\n count,\n viewType,\n instrumentColumnWidth,\n}: TableWidgetProps<TTabs>) => {\n const { lang } = useLocale();\n const { size } = useLayoutProvider();\n const isDesktop = size === Size.DESKTOP;\n const isTable = viewType ? viewType === 'table' : isDesktop;\n\n if (!size) {\n return null;\n }\n\n return (\n <div\n className=\"lw-relative lw-text-sm lw-tracking-normal lw-text-text-primary\"\n data-testid={testId}\n >\n {TabsComponent}\n\n {isTable ? (\n <div className=\"lw-border lw-border-solid lw-border-border-primary\">\n <Table<DataRecord>\n headerConfig={headerColumns}\n isError={hasError}\n records={records}\n renderRow={(record, index, isScrolled) => (\n <DataRecordRow\n key={`row_${index}`}\n activeColumns={activeColumns}\n hasBackgroundColor={index % 2 === 0}\n instrumentColumnWidth={instrumentColumnWidth}\n isChartLoading={isChartLoading}\n isLoading={isLoading}\n isScrolled={isScrolled}\n record={record}\n target={target}\n toolTipId={toolTipId}\n />\n )}\n />\n </div>\n ) : (\n <Cards\n isError={hasError}\n records={records}\n renderCard={({ record, idx, isLast }) => (\n <CardRecordRow\n activeColumns={activeColumns}\n index={idx}\n isChartLoading={isChartLoading}\n isLast={isLast}\n isLoading={isLoading}\n record={record}\n target={target}\n tooltipId={toolTipId}\n />\n )}\n startIndex={pageNumber * count}\n />\n )}\n\n {PaginationComponent && !hasError && (\n <div\n className={cn('lw-border-solid lw-border-border-primary', {\n 'lw-border-x lw-border-b': isDesktop,\n })}\n >\n {PaginationComponent}\n </div>\n )}\n\n <Tooltip id={toolTipId} />\n\n {!hasError && timestamp && (\n <div className=\"lw-mt-2 lw-h-8\">\n <LastUpdated labelCallback={lang} timestamp={timestamp} />\n </div>\n )}\n </div>\n );\n};\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"TableWidget.js","names":["useLocale","React","useLayoutProvider","cn","Size","LastUpdated","Table","Tooltip","CardRecordRow","Cards","DataRecordRow","TableWidget","_ref","testId","toolTipId","PaginationComponent","hasError","TabsComponent","headerColumns","records","target","isLoading","isChartLoading","activeColumns","timestamp","pageNumber","count","viewType","instrumentColumnWidth","lang","size","isDesktop","DESKTOP","isTable","createElement","className","headerConfig","isError","renderRow","record","index","isScrolled","key","hasBackgroundColor","renderCard","_ref2","idx","isLast","tooltipId","startIndex","id","labelCallback"],"sources":["../../../../src/components/TableWidget/TableWidget.tsx"],"sourcesContent":["import { useLocale } from '@oanda/mono-i18n';\nimport type { ReactElement } from 'react';\nimport React from 'react';\n\nimport { useLayoutProvider } from '../../providers';\nimport { cn } from '../../tailwind';\nimport type { DataRecord, DataRecordType } from '../../types';\nimport { Size } from '../../types';\nimport { LastUpdated } from '../LastUpdated';\nimport type { Pagination, PaginationProps } from '../Pagination';\nimport type { HeaderColumns } from '../Table';\nimport { Table } from '../Table';\nimport type { Tabs } from '../Tabs';\nimport type { TabsProps } from '../Tabs/types';\nimport { Tooltip } from '../Tooltip';\nimport { CardRecordRow } from './CardRecordRow';\nimport { Cards } from './Cards';\nimport { DataRecordRow } from './DataRecordRow';\n\ninterface TableWidgetProps<TTabs> {\n testId: string;\n toolTipId: string;\n hasError?: boolean;\n TabsComponent?: ReactElement<TabsProps<TTabs>, typeof Tabs<TTabs>>;\n PaginationComponent?: ReactElement<PaginationProps, typeof Pagination>;\n headerColumns: HeaderColumns[];\n records: DataRecord[];\n target: EventTarget | null;\n isLoading: boolean;\n isChartLoading?: boolean;\n activeColumns: DataRecordType[];\n timestamp?: string;\n pageNumber: number;\n count: number;\n viewType?: 'table' | 'cards';\n instrumentColumnWidth?: string;\n}\n\nexport const TableWidget = <TTabs,>({\n testId,\n toolTipId,\n PaginationComponent,\n hasError,\n TabsComponent,\n headerColumns,\n records,\n target,\n isLoading,\n isChartLoading,\n activeColumns,\n timestamp,\n pageNumber,\n count,\n viewType,\n instrumentColumnWidth,\n}: TableWidgetProps<TTabs>) => {\n const { lang } = useLocale();\n const { size } = useLayoutProvider();\n const isDesktop = size === Size.DESKTOP;\n const isTable = viewType ? viewType === 'table' : isDesktop;\n\n if (!size) {\n return null;\n }\n\n return (\n <div\n className=\"lw-relative lw-text-sm lw-tracking-normal lw-text-text-primary\"\n data-testid={testId}\n >\n {TabsComponent}\n\n {isTable ? (\n <div className=\"lw-border lw-border-solid lw-border-border-primary\">\n <Table<DataRecord>\n headerConfig={headerColumns}\n isError={hasError}\n records={records}\n renderRow={(record, index, isScrolled) => (\n <DataRecordRow\n key={`row_${index}`}\n activeColumns={activeColumns}\n hasBackgroundColor={index % 2 === 0}\n instrumentColumnWidth={instrumentColumnWidth}\n isChartLoading={isChartLoading}\n isLoading={isLoading}\n isScrolled={isScrolled}\n record={record}\n target={target}\n toolTipId={toolTipId}\n />\n )}\n />\n </div>\n ) : (\n <Cards\n isError={hasError}\n records={records}\n renderCard={({ record, idx, isLast }) => (\n <CardRecordRow\n activeColumns={activeColumns}\n index={idx}\n isChartLoading={isChartLoading}\n isLast={isLast}\n isLoading={isLoading}\n record={record}\n target={target}\n tooltipId={toolTipId}\n />\n )}\n startIndex={pageNumber * count}\n />\n )}\n\n {PaginationComponent && !hasError && (\n <div\n className={cn('lw-border-solid lw-border-border-primary', {\n 'lw-border-x lw-border-b': isDesktop,\n })}\n >\n {PaginationComponent}\n </div>\n )}\n\n <Tooltip id={toolTipId} />\n\n {!hasError && timestamp && (\n <div className=\"lw-mt-2 lw-h-8\">\n <LastUpdated labelCallback={lang} timestamp={timestamp} />\n </div>\n )}\n </div>\n );\n};\n"],"mappings":"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","ignoreList":[]}
@@ -17,7 +17,7 @@ function Tabs(_ref) {
17
17
  label
18
18
  } = _ref2;
19
19
  return React.createElement(Tab, {
20
- key: "".concat(id, "-item"),
20
+ key: `${id}-item`,
21
21
  handleClick: handleClick,
22
22
  id: id,
23
23
  isActive: id === activeTab,
@@ -1 +1 @@
1
- {"version":3,"file":"Tabs.js","names":["React","Tab","Tabs","_ref","items","activeTab","labelCallback","handleClick","mobileFullWidth","createElement","className","map","_ref2","id","label","key","concat","isActive"],"sources":["../../../../src/components/Tabs/Tabs.tsx"],"sourcesContent":["import React from 'react';\n\nimport { Tab } from './Tab';\nimport type { TabsProps } from './types';\n\nfunction Tabs<T>({\n items,\n activeTab,\n labelCallback,\n handleClick,\n mobileFullWidth,\n}: TabsProps<T>) {\n return (\n <ul\n className=\"lw-mx-0 lw-mb-8 lw-flex lw-flex-wrap lw-justify-center lw-gap-4 lw-px-px\"\n data-testid=\"tabs\"\n >\n {items.map(({ id, label }) => (\n <Tab\n key={`${id}-item`}\n handleClick={handleClick}\n id={id}\n isActive={id === activeTab}\n label={labelCallback ? labelCallback(label) : label}\n mobileFullWidth={mobileFullWidth}\n />\n ))}\n </ul>\n );\n}\n\nexport { Tabs };\n"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;AAEzB,SAASC,GAAG,QAAQ,OAAO;AAG3B,SAASC,IAAIA,CAAAC,IAAA,EAMI;EAAA,IANA;IACfC,KAAK;IACLC,SAAS;IACTC,aAAa;IACbC,WAAW;IACXC;EACY,CAAC,GAAAL,IAAA;EACb,OACEH,KAAA,CAAAS,aAAA;IACEC,SAAS,EAAC,0EAA0E;IACpF,eAAY;EAAM,GAEjBN,KAAK,CAACO,GAAG,CAACC,KAAA;IAAA,IAAC;MAAEC,EAAE;MAAEC;IAAM,CAAC,GAAAF,KAAA;IAAA,OACvBZ,KAAA,CAAAS,aAAA,CAACR,GAAG;MACFc,GAAG,KAAAC,MAAA,CAAKH,EAAE,UAAQ;MAClBN,WAAW,EAAEA,WAAY;MACzBM,EAAE,EAAEA,EAAG;MACPI,QAAQ,EAAEJ,EAAE,KAAKR,SAAU;MAC3BS,KAAK,EAAER,aAAa,GAAGA,aAAa,CAACQ,KAAK,CAAC,GAAGA,KAAM;MACpDN,eAAe,EAAEA;IAAgB,CAClC,CAAC;EAAA,CACH,CACC,CAAC;AAET;AAEA,SAASN,IAAI","ignoreList":[]}
1
+ {"version":3,"file":"Tabs.js","names":["React","Tab","Tabs","_ref","items","activeTab","labelCallback","handleClick","mobileFullWidth","createElement","className","map","_ref2","id","label","key","isActive"],"sources":["../../../../src/components/Tabs/Tabs.tsx"],"sourcesContent":["import React from 'react';\n\nimport { Tab } from './Tab';\nimport type { TabsProps } from './types';\n\nfunction Tabs<T>({\n items,\n activeTab,\n labelCallback,\n handleClick,\n mobileFullWidth,\n}: TabsProps<T>) {\n return (\n <ul\n className=\"lw-mx-0 lw-mb-8 lw-flex lw-flex-wrap lw-justify-center lw-gap-4 lw-px-px\"\n data-testid=\"tabs\"\n >\n {items.map(({ id, label }) => (\n <Tab\n key={`${id}-item`}\n handleClick={handleClick}\n id={id}\n isActive={id === activeTab}\n label={labelCallback ? labelCallback(label) : label}\n mobileFullWidth={mobileFullWidth}\n />\n ))}\n </ul>\n );\n}\n\nexport { Tabs };\n"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;AAEzB,SAASC,GAAG,QAAQ,OAAO;AAG3B,SAASC,IAAIA,CAAAC,IAAA,EAMI;EAAA,IANA;IACfC,KAAK;IACLC,SAAS;IACTC,aAAa;IACbC,WAAW;IACXC;EACY,CAAC,GAAAL,IAAA;EACb,OACEH,KAAA,CAAAS,aAAA;IACEC,SAAS,EAAC,0EAA0E;IACpF,eAAY;EAAM,GAEjBN,KAAK,CAACO,GAAG,CAACC,KAAA;IAAA,IAAC;MAAEC,EAAE;MAAEC;IAAM,CAAC,GAAAF,KAAA;IAAA,OACvBZ,KAAA,CAAAS,aAAA,CAACR,GAAG;MACFc,GAAG,EAAE,GAAGF,EAAE,OAAQ;MAClBN,WAAW,EAAEA,WAAY;MACzBM,EAAE,EAAEA,EAAG;MACPG,QAAQ,EAAEH,EAAE,KAAKR,SAAU;MAC3BS,KAAK,EAAER,aAAa,GAAGA,aAAa,CAACQ,KAAK,CAAC,GAAGA,KAAM;MACpDN,eAAe,EAAEA;IAAgB,CAClC,CAAC;EAAA,CACH,CACC,CAAC;AAET;AAEA,SAASN,IAAI","ignoreList":[]}
@@ -9,15 +9,14 @@ const TextInput = _ref => {
9
9
  } = _ref;
10
10
  const inputRef = useRef(null);
11
11
  const handleReset = () => {
12
- var _inputRef$current;
13
- (_inputRef$current = inputRef.current) === null || _inputRef$current === void 0 || _inputRef$current.focus();
12
+ inputRef.current?.focus();
14
13
  onChange('');
15
14
  };
16
15
  return React.createElement("div", {
17
16
  className: "lw-text-text-primary"
18
17
  }, label && React.createElement("div", null, React.createElement("span", {
19
18
  className: "lw-text-base lw-font-bold"
20
- }, "".concat(label, ":"))), React.createElement("div", null), React.createElement("div", {
19
+ }, `${label}:`)), React.createElement("div", null), React.createElement("div", {
21
20
  className: "lw-relative"
22
21
  }, React.createElement("input", {
23
22
  ref: inputRef,