@semcore/d3-chart 3.54.0 → 3.55.2

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 (152) hide show
  1. package/CHANGELOG.md +24 -0
  2. package/lib/cjs/Area.js +11 -11
  3. package/lib/cjs/Axis.js +14 -14
  4. package/lib/cjs/Bar.js +16 -16
  5. package/lib/cjs/Bubble.js +12 -12
  6. package/lib/cjs/CompactHorizontalBar.js +16 -16
  7. package/lib/cjs/Donut.js +9 -9
  8. package/lib/cjs/Dots.js +8 -8
  9. package/lib/cjs/HorizontalBar.js +16 -16
  10. package/lib/cjs/Hover.js +3 -3
  11. package/lib/cjs/Line.js +9 -9
  12. package/lib/cjs/Plot.js +3 -3
  13. package/lib/cjs/Radar.js +19 -19
  14. package/lib/cjs/RadialTree.js +12 -12
  15. package/lib/cjs/Reference.js +12 -12
  16. package/lib/cjs/ScatterPlot.js +9 -9
  17. package/lib/cjs/Tooltip.js +9 -9
  18. package/lib/cjs/Venn.js +9 -9
  19. package/lib/cjs/a11y/PlotA11yModule.js +2 -2
  20. package/lib/cjs/a11y/PlotA11yModule.js.map +1 -1
  21. package/lib/cjs/a11y/PlotA11yView.js +21 -18
  22. package/lib/cjs/a11y/PlotA11yView.js.map +1 -1
  23. package/lib/cjs/component/Chart/AbstractChart.js +5 -2
  24. package/lib/cjs/component/Chart/AbstractChart.js.map +1 -1
  25. package/lib/cjs/component/Chart/AbstractChart.type.js.map +1 -1
  26. package/lib/cjs/component/Chart/AreaChart.js +10 -0
  27. package/lib/cjs/component/Chart/AreaChart.js.map +1 -1
  28. package/lib/cjs/component/Chart/BarChart.js +10 -0
  29. package/lib/cjs/component/Chart/BarChart.js.map +1 -1
  30. package/lib/cjs/component/Chart/BubbleChart.js +10 -0
  31. package/lib/cjs/component/Chart/BubbleChart.js.map +1 -1
  32. package/lib/cjs/component/Chart/CigaretteChart.js +10 -1
  33. package/lib/cjs/component/Chart/CigaretteChart.js.map +1 -1
  34. package/lib/cjs/component/Chart/CompactHorizontalBarChart.js +10 -0
  35. package/lib/cjs/component/Chart/CompactHorizontalBarChart.js.map +1 -1
  36. package/lib/cjs/component/Chart/DonutChart.js +10 -0
  37. package/lib/cjs/component/Chart/DonutChart.js.map +1 -1
  38. package/lib/cjs/component/Chart/HistogramChart.js +10 -0
  39. package/lib/cjs/component/Chart/HistogramChart.js.map +1 -1
  40. package/lib/cjs/component/Chart/LineChart.js +10 -0
  41. package/lib/cjs/component/Chart/LineChart.js.map +1 -1
  42. package/lib/cjs/component/Chart/RadarChart.js +11 -0
  43. package/lib/cjs/component/Chart/RadarChart.js.map +1 -1
  44. package/lib/cjs/component/Chart/ScatterPlotChart.js +10 -0
  45. package/lib/cjs/component/Chart/ScatterPlotChart.js.map +1 -1
  46. package/lib/cjs/component/Chart/VennChart.js +11 -3
  47. package/lib/cjs/component/Chart/VennChart.js.map +1 -1
  48. package/lib/cjs/component/ChartLegend/BaseLegend.js +4 -10
  49. package/lib/cjs/component/ChartLegend/BaseLegend.js.map +1 -1
  50. package/lib/cjs/component/ChartLegend/BaseLegend.type.js.map +1 -1
  51. package/lib/cjs/component/ChartLegend/LegendFlex/LegendFlex.js +7 -5
  52. package/lib/cjs/component/ChartLegend/LegendFlex/LegendFlex.js.map +1 -1
  53. package/lib/cjs/component/ChartLegend/LegendItem/LegendItem.js +35 -30
  54. package/lib/cjs/component/ChartLegend/LegendItem/LegendItem.js.map +1 -1
  55. package/lib/cjs/component/ChartLegend/LegendItem/LegendItem.type.js.map +1 -1
  56. package/lib/cjs/component/ChartLegend/LegendTable/LegendTable.js +8 -7
  57. package/lib/cjs/component/ChartLegend/LegendTable/LegendTable.js.map +1 -1
  58. package/lib/cjs/component/ChartLegend/LegendTable/LegendTable.type.js.map +1 -1
  59. package/lib/cjs/translations/de.json +2 -1
  60. package/lib/cjs/translations/en.json +2 -1
  61. package/lib/cjs/translations/es.json +2 -1
  62. package/lib/cjs/translations/fr.json +2 -1
  63. package/lib/cjs/translations/it.json +2 -1
  64. package/lib/cjs/translations/ja.json +2 -1
  65. package/lib/cjs/translations/ko.json +2 -1
  66. package/lib/cjs/translations/nl.json +2 -1
  67. package/lib/cjs/translations/pl.json +2 -1
  68. package/lib/cjs/translations/pt.json +2 -1
  69. package/lib/cjs/translations/sv.json +2 -1
  70. package/lib/cjs/translations/tr.json +2 -1
  71. package/lib/cjs/translations/vi.json +2 -1
  72. package/lib/cjs/translations/zh.json +2 -1
  73. package/lib/es6/Area.js +11 -11
  74. package/lib/es6/Axis.js +14 -14
  75. package/lib/es6/Bar.js +16 -16
  76. package/lib/es6/Bubble.js +12 -12
  77. package/lib/es6/CompactHorizontalBar.js +16 -16
  78. package/lib/es6/Donut.js +9 -9
  79. package/lib/es6/Dots.js +8 -8
  80. package/lib/es6/HorizontalBar.js +16 -16
  81. package/lib/es6/Hover.js +3 -3
  82. package/lib/es6/Line.js +9 -9
  83. package/lib/es6/Plot.js +3 -3
  84. package/lib/es6/Radar.js +19 -19
  85. package/lib/es6/RadialTree.js +12 -12
  86. package/lib/es6/Reference.js +12 -12
  87. package/lib/es6/ScatterPlot.js +9 -9
  88. package/lib/es6/Tooltip.js +9 -9
  89. package/lib/es6/Venn.js +9 -9
  90. package/lib/es6/a11y/PlotA11yModule.js +2 -2
  91. package/lib/es6/a11y/PlotA11yModule.js.map +1 -1
  92. package/lib/es6/a11y/PlotA11yView.js +21 -18
  93. package/lib/es6/a11y/PlotA11yView.js.map +1 -1
  94. package/lib/es6/component/Chart/AbstractChart.js +5 -2
  95. package/lib/es6/component/Chart/AbstractChart.js.map +1 -1
  96. package/lib/es6/component/Chart/AbstractChart.type.js.map +1 -1
  97. package/lib/es6/component/Chart/AreaChart.js +10 -0
  98. package/lib/es6/component/Chart/AreaChart.js.map +1 -1
  99. package/lib/es6/component/Chart/BarChart.js +10 -0
  100. package/lib/es6/component/Chart/BarChart.js.map +1 -1
  101. package/lib/es6/component/Chart/BubbleChart.js +10 -0
  102. package/lib/es6/component/Chart/BubbleChart.js.map +1 -1
  103. package/lib/es6/component/Chart/CigaretteChart.js +10 -1
  104. package/lib/es6/component/Chart/CigaretteChart.js.map +1 -1
  105. package/lib/es6/component/Chart/CompactHorizontalBarChart.js +10 -0
  106. package/lib/es6/component/Chart/CompactHorizontalBarChart.js.map +1 -1
  107. package/lib/es6/component/Chart/DonutChart.js +10 -0
  108. package/lib/es6/component/Chart/DonutChart.js.map +1 -1
  109. package/lib/es6/component/Chart/HistogramChart.js +10 -0
  110. package/lib/es6/component/Chart/HistogramChart.js.map +1 -1
  111. package/lib/es6/component/Chart/LineChart.js +10 -0
  112. package/lib/es6/component/Chart/LineChart.js.map +1 -1
  113. package/lib/es6/component/Chart/RadarChart.js +11 -0
  114. package/lib/es6/component/Chart/RadarChart.js.map +1 -1
  115. package/lib/es6/component/Chart/ScatterPlotChart.js +10 -0
  116. package/lib/es6/component/Chart/ScatterPlotChart.js.map +1 -1
  117. package/lib/es6/component/Chart/VennChart.js +11 -3
  118. package/lib/es6/component/Chart/VennChart.js.map +1 -1
  119. package/lib/es6/component/ChartLegend/BaseLegend.js +4 -10
  120. package/lib/es6/component/ChartLegend/BaseLegend.js.map +1 -1
  121. package/lib/es6/component/ChartLegend/BaseLegend.type.js.map +1 -1
  122. package/lib/es6/component/ChartLegend/LegendFlex/LegendFlex.js +7 -5
  123. package/lib/es6/component/ChartLegend/LegendFlex/LegendFlex.js.map +1 -1
  124. package/lib/es6/component/ChartLegend/LegendItem/LegendItem.js +35 -30
  125. package/lib/es6/component/ChartLegend/LegendItem/LegendItem.js.map +1 -1
  126. package/lib/es6/component/ChartLegend/LegendItem/LegendItem.type.js.map +1 -1
  127. package/lib/es6/component/ChartLegend/LegendTable/LegendTable.js +8 -7
  128. package/lib/es6/component/ChartLegend/LegendTable/LegendTable.js.map +1 -1
  129. package/lib/es6/component/ChartLegend/LegendTable/LegendTable.type.js.map +1 -1
  130. package/lib/es6/translations/de.json +2 -1
  131. package/lib/es6/translations/en.json +2 -1
  132. package/lib/es6/translations/es.json +2 -1
  133. package/lib/es6/translations/fr.json +2 -1
  134. package/lib/es6/translations/it.json +2 -1
  135. package/lib/es6/translations/ja.json +2 -1
  136. package/lib/es6/translations/ko.json +2 -1
  137. package/lib/es6/translations/nl.json +2 -1
  138. package/lib/es6/translations/pl.json +2 -1
  139. package/lib/es6/translations/pt.json +2 -1
  140. package/lib/es6/translations/sv.json +2 -1
  141. package/lib/es6/translations/tr.json +2 -1
  142. package/lib/es6/translations/vi.json +2 -1
  143. package/lib/es6/translations/zh.json +2 -1
  144. package/lib/types/a11y/PlotA11yModule.d.ts +1 -1
  145. package/lib/types/component/Chart/AbstractChart.d.ts +2 -1
  146. package/lib/types/component/Chart/AbstractChart.type.d.ts +11 -1
  147. package/lib/types/component/ChartLegend/BaseLegend.d.ts +1 -1
  148. package/lib/types/component/ChartLegend/BaseLegend.type.d.ts +2 -1
  149. package/lib/types/component/ChartLegend/LegendItem/LegendItem.type.d.ts +14 -4
  150. package/lib/types/component/ChartLegend/LegendTable/LegendTable.type.d.ts +1 -1
  151. package/lib/types/translations/__intergalactic-dynamic-locales.d.ts +13 -0
  152. package/package.json +6 -6
@@ -1 +1 @@
1
- {"version":3,"file":"PlotA11yView.js","names":["React","heavyFindNextFocusableElement","makeDataSummarizationConfig","getIntl","summarize","Root","sstyled","styles","_sstyled","insert","Box","useAsyncI18nMessages","localizedMessages","DataAccessibilityTable","PlotA11yView","_ref3","_ref","arguments[0]","_ref2","id","providedData","data","hints","plotLabel","plotRef","providedConfig","config","locale","SPlotA11yView","translations","intl","useMemo","Array","isArray","_React$useState","useState","_React$useState2","_slicedToArray","summary","setSummary","_React$useState3","_React$useState4","generatingSummary","setGeneratingSummary","useEffect","disable","override","setTimeout","handleSkip","useCallback","_heavyFindNextFocusab","current","focus","handleSkipKeyboard","event","key","preventDefault","handleGoToTable","_dataTableRef$current","dataTableRef","handleGoToTableKeyboard","texts","label","formatMessage","close","skipPlot","goToTable","summaryPlaceholder","table","useRef","createElement","cn","_objectSpread","_assignProps","concat"],"sources":["../../../src/a11y/PlotA11yView.tsx"],"sourcesContent":["import React from 'react';\nimport { heavyFindNextFocusableElement } from './focus';\nimport { makeDataSummarizationConfig } from './hints';\nimport type { A11yViewProps } from './PlotA11yModule';\nimport { getIntl } from './intl';\nimport { summarize } from './summarize';\nimport { Root, sstyled } from '@semcore/core';\nimport styles from '../style/plotA11yView.shadow.css';\nimport { Box } from '@semcore/flex-box';\nimport { useAsyncI18nMessages } from '@semcore/utils/lib/enhances/i18nEnhance';\nimport { localizedMessages } from './translations/view/__intergalactic-dynamic-locales';\nimport { DataAccessibilityTable } from './DataAccessibilityTable';\n\nexport const PlotA11yView: React.FC<A11yViewProps> = ({\n id,\n data: providedData,\n hints,\n plotLabel,\n plotRef,\n config: providedConfig,\n locale,\n}) => {\n const SPlotA11yView = Root;\n const translations = useAsyncI18nMessages(localizedMessages, locale);\n const intl = React.useMemo(\n () => getIntl(locale, translations, localizedMessages),\n [locale, translations, localizedMessages],\n );\n const config = React.useMemo(() => makeDataSummarizationConfig(providedConfig), [providedConfig]);\n const data = React.useMemo(\n () => (Array.isArray(providedData) ? providedData : [providedData]),\n [providedData],\n );\n\n const [summary, setSummary] = React.useState<string | null>(null);\n const [generatingSummary, setGeneratingSummary] = React.useState(true);\n\n React.useEffect(() => {\n if (config.disable) {\n setSummary('');\n setGeneratingSummary(false);\n return;\n }\n if (config.override) {\n setSummary(config.override);\n setGeneratingSummary(false);\n return;\n }\n setTimeout(() => {\n setSummary(summarize(providedData, hints, config, locale, translations, localizedMessages));\n setGeneratingSummary(false);\n }, 0);\n }, [providedData, hints, config, locale, translations, localizedMessages]);\n\n const handleSkip = React.useCallback(() => {\n if (!plotRef.current) return;\n\n heavyFindNextFocusableElement(plotRef.current)?.focus();\n }, []);\n const handleSkipKeyboard = React.useCallback(\n (event: React.KeyboardEvent) => {\n if (!(event.key === 'Enter' || event.key === ' ')) return;\n\n event.preventDefault();\n handleSkip();\n },\n [handleSkip],\n );\n const handleGoToTable = React.useCallback(() => {\n dataTableRef.current?.focus();\n }, []);\n const handleGoToTableKeyboard = React.useCallback(\n (event: React.KeyboardEvent) => {\n if (!(event.key === 'Enter' || event.key === ' ')) return;\n\n event.preventDefault();\n handleGoToTable();\n },\n [handleGoToTable],\n );\n\n const texts = React.useMemo(\n () => ({\n label: intl.formatMessage(\n { id: 'view-label' },\n { plotLabel: plotLabel ?? intl.formatMessage({ id: 'view-default-plot-label' }) },\n ),\n close: intl.formatMessage({ id: 'view-close' }),\n skipPlot: intl.formatMessage({ id: 'view-skip-plot' }),\n goToTable: intl.formatMessage({ id: 'view-go-to-table' }),\n summary: intl.formatMessage({ id: 'view-data-summary' }),\n summaryPlaceholder: intl.formatMessage({ id: 'view-summary-placeholder' }),\n table: intl.formatMessage({ id: 'view-table' }),\n }),\n [intl, plotLabel],\n );\n\n const dataTableRef = React.useRef<HTMLTableElement>(null);\n\n return sstyled(styles)(\n <SPlotA11yView render={Box} tabIndex={0} aria-label={texts.label}>\n {/* biome-ignore lint/a11y/useValidAnchor: */}\n <a aria-hidden onClick={handleSkip}>\n {texts.close}\n </a>\n {/* biome-ignore lint/a11y/useValidAnchor: */}\n <a role='link' tabIndex={0} onKeyDown={handleSkipKeyboard} onClick={handleSkip}>\n {texts.skipPlot}\n </a>\n {/* biome-ignore lint/a11y/useValidAnchor: */}\n <a role='link' tabIndex={0} onKeyDown={handleGoToTableKeyboard} onClick={handleGoToTable}>\n {texts.goToTable}\n </a>\n <strong>\n <label htmlFor={`${id}-data-summary`}>{texts.summary}</label>\n </strong>\n <div id={`${id}-data-summary`} aria-busy={generatingSummary} tabIndex={0}>\n {generatingSummary ? texts.summaryPlaceholder : summary}\n </div>\n <strong>\n <label htmlFor={`${id}-data-table`}>{texts.table}</label>\n </strong>\n <DataAccessibilityTable\n id={id}\n dataTableRef={dataTableRef}\n data={data}\n hints={hints}\n config={config}\n intl={intl}\n />\n </SPlotA11yView>,\n ) as React.ReactElement;\n};\n"],"mappings":"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"}
1
+ {"version":3,"file":"PlotA11yView.js","names":["React","heavyFindNextFocusableElement","makeDataSummarizationConfig","getIntl","summarize","Root","sstyled","styles","_sstyled","insert","Box","useAsyncI18nMessages","localizedMessages","DataAccessibilityTable","PlotA11yView","_ref3","_ref","arguments[0]","_ref2","id","providedData","data","hints","plotLabel","plotRef","providedConfig","config","locale","SPlotA11yView","translations","intl","useMemo","Array","isArray","_React$useState","useState","_React$useState2","_slicedToArray","summary","setSummary","_React$useState3","_React$useState4","generatingSummary","setGeneratingSummary","useEffect","disable","override","setTimeout","handleClose","useCallback","_plotRef$current","current","focus","handleSkip","event","_heavyFindNextFocusab","preventDefault","handleSkipKeyboard","key","handleGoToTable","_dataTableRef$current","dataTableRef","handleGoToTableKeyboard","texts","label","formatMessage","close","skipPlot","goToTable","summaryPlaceholder","table","useRef","createElement","cn","_objectSpread","_assignProps","concat"],"sources":["../../../src/a11y/PlotA11yView.tsx"],"sourcesContent":["import React from 'react';\nimport { heavyFindNextFocusableElement } from './focus';\nimport { makeDataSummarizationConfig } from './hints';\nimport type { A11yViewProps } from './PlotA11yModule';\nimport { getIntl } from './intl';\nimport { summarize } from './summarize';\nimport { Root, sstyled } from '@semcore/core';\nimport styles from '../style/plotA11yView.shadow.css';\nimport { Box } from '@semcore/flex-box';\nimport { useAsyncI18nMessages } from '@semcore/utils/lib/enhances/i18nEnhance';\nimport { localizedMessages } from './translations/view/__intergalactic-dynamic-locales';\nimport { DataAccessibilityTable } from './DataAccessibilityTable';\n\nexport const PlotA11yView: React.FC<A11yViewProps> = ({\n id,\n data: providedData,\n hints,\n plotLabel,\n plotRef,\n config: providedConfig,\n locale,\n}) => {\n const SPlotA11yView = Root;\n const translations = useAsyncI18nMessages(localizedMessages, locale);\n const intl = React.useMemo(\n () => getIntl(locale, translations, localizedMessages),\n [locale, translations, localizedMessages],\n );\n const config = React.useMemo(() => makeDataSummarizationConfig(providedConfig), [providedConfig]);\n const data = React.useMemo(\n () => (Array.isArray(providedData) ? providedData : [providedData]),\n [providedData],\n );\n\n const [summary, setSummary] = React.useState<string | null>(null);\n const [generatingSummary, setGeneratingSummary] = React.useState(true);\n\n React.useEffect(() => {\n if (config.disable) {\n setSummary('');\n setGeneratingSummary(false);\n return;\n }\n if (config.override) {\n setSummary(config.override);\n setGeneratingSummary(false);\n return;\n }\n setTimeout(() => {\n setSummary(summarize(providedData, hints, config, locale, translations, localizedMessages));\n setGeneratingSummary(false);\n }, 0);\n }, [providedData, hints, config, locale, translations, localizedMessages]);\n\n const handleClose = React.useCallback(() => {\n plotRef.current?.focus();\n }, []);\n const handleSkip = React.useCallback((event: React.SyntheticEvent) => {\n event.preventDefault();\n if (!plotRef.current) return;\n\n heavyFindNextFocusableElement(plotRef.current)?.focus();\n }, []);\n const handleSkipKeyboard = React.useCallback(\n (event: React.KeyboardEvent) => {\n if (!(event.key === 'Enter' || event.key === ' ')) return;\n\n handleSkip(event);\n },\n [handleSkip],\n );\n const handleGoToTable = React.useCallback((event: React.SyntheticEvent) => {\n event.preventDefault();\n dataTableRef.current?.focus();\n }, []);\n const handleGoToTableKeyboard = React.useCallback(\n (event: React.KeyboardEvent) => {\n if (!(event.key === 'Enter' || event.key === ' ')) return;\n\n handleGoToTable(event);\n },\n [handleGoToTable],\n );\n\n const texts = React.useMemo(\n () => ({\n label: intl.formatMessage(\n { id: 'view-label' },\n { plotLabel: plotLabel ?? intl.formatMessage({ id: 'view-default-plot-label' }) },\n ),\n close: intl.formatMessage({ id: 'view-close' }),\n skipPlot: intl.formatMessage({ id: 'view-skip-plot' }),\n goToTable: intl.formatMessage({ id: 'view-go-to-table' }),\n summary: intl.formatMessage({ id: 'view-data-summary' }),\n summaryPlaceholder: intl.formatMessage({ id: 'view-summary-placeholder' }),\n table: intl.formatMessage({ id: 'view-table' }),\n }),\n [intl, plotLabel],\n );\n\n const dataTableRef = React.useRef<HTMLTableElement>(null);\n\n return sstyled(styles)(\n <SPlotA11yView\n render={Box}\n tabIndex={0}\n aria-label={texts.label}\n role={'dialog'}\n __excludeProps={['data']}\n >\n <button type={'button'} onClick={handleClose}>\n {texts.close}\n </button>\n {/* biome-ignore lint/a11y/useValidAnchor: */}\n <a href={'#'} onKeyDown={handleSkipKeyboard} onClick={handleSkip}>\n {texts.skipPlot}\n </a>\n {/* biome-ignore lint/a11y/useValidAnchor: */}\n <a href={`#${id}-data-table`} onKeyDown={handleGoToTableKeyboard} onClick={handleGoToTable}>\n {texts.goToTable}\n </a>\n <strong>\n <label htmlFor={`${id}-data-summary`}>{texts.summary}</label>\n </strong>\n <div id={`${id}-data-summary`} aria-busy={generatingSummary}>\n {generatingSummary ? texts.summaryPlaceholder : summary}\n </div>\n <strong>\n <label htmlFor={`${id}-data-table`}>{texts.table}</label>\n </strong>\n <DataAccessibilityTable\n id={id}\n dataTableRef={dataTableRef}\n data={data}\n hints={hints}\n config={config}\n intl={intl}\n />\n </SPlotA11yView>,\n ) as React.ReactElement;\n};\n"],"mappings":"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"}
@@ -352,7 +352,8 @@ export var AbstractChart = /*#__PURE__*/function (_Component) {
352
352
  direction: (_lProps$direction = lProps.direction) !== null && _lProps$direction !== void 0 ? _lProps$direction : direction === 'row' || direction === 'row-reverse' ? 'column' : 'row',
353
353
  onChangeVisibleItem: lProps.disableSelectItems ? undefined : callAllEventHandlers(lProps.onChangeVisibleItem, this.handleChangeVisible),
354
354
  onMouseEnterItem: lProps.disableHoverItems ? undefined : callAllEventHandlers(lProps.onMouseEnterItem, this.handleMouseEnter),
355
- onMouseLeaveItem: lProps.disableHoverItems ? undefined : callAllEventHandlers(lProps.onMouseLeaveItem, this.handleMouseLeave)
355
+ onMouseLeaveItem: lProps.disableHoverItems ? undefined : callAllEventHandlers(lProps.onMouseLeaveItem, this.handleMouseLeave),
356
+ 'aria-label': this.getLegendAriaLabel()
356
357
  };
357
358
  if (lProps.legendType === 'Table') {
358
359
  return /*#__PURE__*/React.createElement(ChartLegendTable, commonLegendProps);
@@ -420,7 +421,9 @@ export var AbstractChart = /*#__PURE__*/function (_Component) {
420
421
  a11yAltTextConfig = _this$asProps7.a11yAltTextConfig,
421
422
  duration = _this$asProps7.duration;
422
423
  return _ref2 = sstyled(styles), /*#__PURE__*/React.createElement(SChart, _ref2.cn("SChart", _objectSpread({}, _assignProps({
423
- "gap": 5
424
+ "gap": 5,
425
+ "__excludeProps": ['data'],
426
+ "role": 'group'
424
427
  }, _ref))), this.renderLegend(), /*#__PURE__*/React.createElement(Plot, _ref2.cn("Plot", {
425
428
  "data": data,
426
429
  "scale": [this.xScale, this.yScale],
@@ -1 +1 @@
1
- {"version":3,"file":"AbstractChart.js","names":["makeDataHintsContainer","interpolateValue","React","Component","Root","sstyled","callAllEventHandlers","ChartLegend","ChartLegendTable","Flex","Plot","XAxis","YAxis","Text","AbstractChart","_Component","_inherits","_super","_createSuper","props","_this","_classCallCheck","call","_defineProperty","_assertThisInitialized","dataDefinitions","getDefaultDataDefinitions","highlightedLine","withTrend","setHighlightedLine","bind","handleChangeVisible","handleMouseEnter","handleMouseLeave","resolveColor","tooltipValueFormatter","handleWithTrendChange","_createClass","key","value","componentDidUpdate","prevProps","data","legendProps","setState","_this2","_this$props","dataKeys","map","index","_legendProps$legendMa","_legendData$label","_legendData$icon","_legendData$defaultCh","legendData","legendMap","dataDefinition","id","label","icon","undefined","checked","defaultChecked","color","columns","additionalInfo","count","Array","isArray","_value","dataValue","Map","get","Number","total","Object","values","reduce","sum","i","percent","toFixed","createElement","concat","use","_this$props2","groupKey","keys","filter","_this$asProps","asProps","invertAxis","xTicksCount","yTicksCount","scale","xScale","ticks","_this$asProps2","yScale","_this$asProps3","flatValues","result","item","add","entries","forEach","_ref3","_ref4","_slicedToArray","Set","_this$asProps4","max","val","barSum","_ref5","_ref6","Date","isNaN","getMilliseconds","totalValue","state","legendItem","getValueScale","Math","apply","_toConsumableArray","min","avg","round","log10","valueScale","pow","isVisible","prevState","findIndex","line","_this$props$colorMap$","_this$props$colorMap","colorMap","toDateString","toString","defaultLegendProps","legendType","renderLegend","_lProps$direction","_this$asProps5","direction","showLegend","patterns","length","_this$state","lProps","_objectSpread","commonLegendProps","dataHints","items","size","shape","w","h","onChangeVisibleItem","disableSelectItems","onMouseEnterItem","disableHoverItems","onMouseLeaveItem","flexLegendProps","trendLabel","trendIsVisible","onTrendIsVisibleChange","renderAxis","_this$asProps6","showXAxis","showYAxis","axisXValueFormatter","axisYValueFormatter","xTicks","yTicks","childrenX","_ref7","children","childrenY","_ref8","Fragment","Ticks","Grid","render","_ref","_ref2","SChart","_this$asProps7","styles","plotWidth","plotHeight","a11yAltTextConfig","duration","cn","_assignProps","renderTooltip","renderChart","showTooltip"],"sources":["../../../../src/component/Chart/AbstractChart.tsx"],"sourcesContent":["import { makeDataHintsContainer } from '../../a11y/hints';\nimport { LegendItem } from '../ChartLegend/LegendItem/LegendItem.type';\nimport { ScaleBand, ScaleLinear, ScaleTime } from 'd3-scale';\nimport { interpolateValue } from '../../utils';\nimport React from 'react';\nimport { Component, Root, sstyled } from '@semcore/core';\nimport { BaseChartProps, BaseLegendProps, ListData, ObjectData } from './AbstractChart.type';\nimport { callAllEventHandlers } from '@semcore/utils/lib/assignProps';\nimport ChartLegend, { ChartLegendTable } from '../ChartLegend';\nimport { Flex } from '@semcore/flex-box';\n// @ts-ignore\nimport { Plot, XAxis, YAxis } from '../..';\nimport { Text } from '@semcore/typography';\nimport { LegendFlexProps } from '../ChartLegend/LegendFlex/LegendFlex.type';\n\ntype ChartState = {\n dataDefinitions: Array<LegendItem & { columns: React.ReactNode[] }>;\n highlightedLine: number;\n withTrend: boolean;\n};\n\nexport abstract class AbstractChart<\n D extends ListData | ObjectData,\n T extends BaseChartProps<D>,\n E = {},\n> extends Component<T, {}, ChartState, E> {\n public static style = {};\n public static defaultProps: Partial<BaseChartProps<any>> = {\n direction: 'column',\n showXAxis: true,\n showYAxis: true,\n showTooltip: true,\n showLegend: true,\n };\n\n /**\n * Padding from the end's of chart to the container (except axis sides)\n */\n protected plotPadding = 6;\n\n protected dataHints = makeDataHintsContainer();\n\n public state: ChartState = {\n dataDefinitions: this.getDefaultDataDefinitions(),\n highlightedLine: -1,\n withTrend: false,\n };\n\n constructor(props: T) {\n super(props);\n\n this.setHighlightedLine = this.setHighlightedLine.bind(this);\n this.handleChangeVisible = this.handleChangeVisible.bind(this);\n this.handleMouseEnter = this.handleMouseEnter.bind(this);\n this.handleMouseLeave = this.handleMouseLeave.bind(this);\n this.resolveColor = this.resolveColor.bind(this);\n this.tooltipValueFormatter = this.tooltipValueFormatter.bind(this);\n this.handleWithTrendChange = this.handleWithTrendChange.bind(this);\n }\n\n public componentDidUpdate(prevProps: T) {\n if (prevProps.data !== this.props.data || prevProps.legendProps !== this.props.legendProps) {\n this.setState({ dataDefinitions: this.getDefaultDataDefinitions() });\n }\n }\n\n protected getDefaultDataDefinitions(): Array<LegendItem & { columns: React.ReactNode[] }> {\n const { data, legendProps } = this.props;\n\n return this.dataKeys.map((key, index) => {\n const legendData = legendProps?.legendMap?.[key];\n\n const dataDefinition: LegendItem & { columns: React.ReactNode[] } = {\n id: key,\n label: legendData?.label ?? key,\n icon: legendData?.icon ?? undefined,\n checked: legendData?.defaultChecked ?? true,\n color: this.resolveColor(key, index),\n columns: [],\n };\n\n if (legendData?.additionalInfo || legendData?.count) {\n dataDefinition.additionalInfo = legendData.additionalInfo\n ? { label: legendData.additionalInfo }\n : legendData.count\n ? { count: legendData.count }\n : undefined;\n }\n\n if (legendData && 'columns' in legendData) {\n dataDefinition.columns = legendData.columns || [];\n } else if (!Array.isArray(data)) {\n let value: number | undefined = undefined;\n let dataValue = data[key];\n\n if (data instanceof Map) {\n dataValue = data.get(key);\n }\n\n if (dataValue !== interpolateValue) {\n value = Number(dataValue);\n }\n\n const total = Object.values(data).reduce<number>((sum, i) => {\n if (i !== interpolateValue) {\n return sum + Number(i);\n }\n\n return sum;\n }, 0);\n const percent = value !== undefined ? ((value / total) * 100).toFixed(2) : undefined;\n\n dataDefinition.columns = [\n <Text key={`${key}_percent`} use={'secondary'}>\n {percent !== undefined ? `${percent}%` : ''}\n </Text>,\n <Text key={`${key}_value`} use={value ? 'primary' : 'secondary'}>\n {value ?? 'n/a'}\n </Text>,\n ];\n }\n\n return dataDefinition;\n });\n }\n\n protected abstract get xScale(): ScaleBand<any> | ScaleLinear<any, any> | ScaleTime<any, any>;\n protected abstract get yScale(): ScaleBand<any> | ScaleLinear<any, any> | ScaleTime<any, any>;\n\n protected abstract renderChart(): React.ReactNode;\n protected abstract renderTooltip(): React.ReactNode;\n\n protected get dataKeys(): string[] {\n const { data, groupKey } = this.props;\n\n let dataKeys: string[];\n\n if (Array.isArray(data) && groupKey) {\n dataKeys = Object.keys(data[0]).filter((key) => key !== groupKey);\n } else {\n dataKeys = Object.keys(data);\n }\n\n return dataKeys;\n }\n\n protected get xTicks(): number[] | Date[] | undefined {\n const { data, invertAxis, xTicksCount, yTicksCount } = this.asProps;\n\n const scale = this.xScale;\n\n if (Array.isArray(data) && 'ticks' in scale) {\n if (invertAxis && yTicksCount) {\n return scale.ticks(yTicksCount);\n } else if (xTicksCount) {\n return scale.ticks(xTicksCount);\n }\n\n return undefined;\n }\n\n return undefined;\n }\n\n protected get yTicks(): number[] | Date[] | undefined {\n const { data, invertAxis, xTicksCount, yTicksCount } = this.asProps;\n\n const scale = this.yScale;\n\n if (Array.isArray(data) && 'ticks' in scale) {\n if (invertAxis && xTicksCount) {\n return scale.ticks(xTicksCount);\n } else if (yTicksCount) {\n return scale.ticks(yTicksCount);\n }\n\n return undefined;\n }\n\n return undefined;\n }\n\n protected get flatValues(): Set<number> {\n const { data, groupKey } = this.asProps;\n const values: any[] = Array.isArray(data) ? data : Object.values(data);\n\n const flatValues = values.reduce<Set<number>>((result, item) => {\n if (!groupKey && typeof item === 'number') {\n result.add(item);\n } else {\n Object.entries(item).forEach(([key, value]) => {\n if (key !== groupKey && typeof value === 'number') {\n result.add(value);\n }\n });\n }\n\n return result;\n }, new Set());\n\n return flatValues;\n }\n\n protected get maxStackedValue(): number {\n const { data, groupKey } = this.asProps;\n\n if (!Array.isArray(data)) {\n const max = Object.values(data).reduce<number>((sum, val) => {\n if (typeof val === 'number') {\n sum = sum + val;\n }\n\n return sum;\n }, 0);\n\n return max;\n }\n\n const max = data.reduce((max, item) => {\n const barSum = Object.entries(item).reduce<number>((sum, [key, val]) => {\n if (key === groupKey) {\n return sum;\n }\n\n if (typeof val === 'number') {\n return sum + val;\n }\n\n if (val instanceof Date && !Number.isNaN(val.getMilliseconds())) {\n return sum + val.getMilliseconds();\n }\n\n return sum;\n }, 0);\n\n if (barSum > max) {\n max = barSum;\n }\n\n return max;\n }, 0);\n\n return max;\n }\n\n protected totalValue(data: ObjectData): number {\n const { dataDefinitions } = this.state;\n\n const total = dataDefinitions.reduce((sum, legendItem) => {\n const item = data[legendItem.id];\n\n if (typeof item === 'number') {\n return sum + item;\n }\n\n if (item instanceof Date && !Number.isNaN(item.getMilliseconds())) {\n return sum + item.getMilliseconds();\n }\n\n return sum;\n }, 0);\n\n return total;\n }\n\n protected getValueScale(values: number[]): number {\n const max = Math.max(...values);\n const min = Math.min(...values);\n\n const avg = (max + min) / 2;\n const count = Math.round(Math.log10(avg));\n\n const valueScale = 100 / 10 ** count;\n\n return valueScale;\n }\n\n protected setHighlightedLine(index: number) {\n this.setState({ highlightedLine: index });\n }\n\n protected handleChangeVisible(id: string, isVisible: boolean) {\n this.setState((prevState) => {\n const dataDefinitions = prevState.dataDefinitions.map((item) => {\n if (item.id === id) {\n item.checked = isVisible;\n }\n\n return item;\n });\n\n return { dataDefinitions };\n });\n }\n\n protected handleWithTrendChange(isVisible: boolean) {\n this.setState({ withTrend: isVisible });\n }\n\n protected handleMouseEnter(id: string) {\n this.setHighlightedLine(this.state.dataDefinitions.findIndex((line) => line.id === id));\n }\n\n protected handleMouseLeave() {\n this.setHighlightedLine(-1);\n }\n\n protected resolveColor(id: string, index: number) {\n return this.props.colorMap?.[id] ?? `chart-palette-order-${index + 1}`;\n }\n\n protected tooltipValueFormatter(\n value?: string | number | typeof interpolateValue | Date,\n ): string {\n const { tooltipValueFormatter } = this.asProps;\n\n if (tooltipValueFormatter) {\n return tooltipValueFormatter(value);\n }\n\n if (value === undefined || value === interpolateValue) {\n return 'n/a';\n }\n\n if (value === null) {\n return '0';\n }\n\n if (value instanceof Date) {\n return value.toDateString();\n }\n\n return value.toString();\n }\n\n protected defaultLegendProps(): Partial<BaseLegendProps> {\n return {\n legendType: 'Flex',\n };\n }\n\n protected renderLegend() {\n const { legendProps, direction, showLegend, patterns } = this.asProps;\n\n if (\n !showLegend ||\n // we hide Legend for one item on chart except not manually set to show.\n (this.dataKeys.length === 1 && showLegend === true)\n ) {\n return null;\n }\n\n const { dataDefinitions, withTrend } = this.state;\n const lProps = {\n ...this.defaultLegendProps(),\n ...legendProps,\n };\n\n const commonLegendProps = {\n dataHints: this.dataHints,\n items: dataDefinitions,\n size: lProps.size,\n shape: lProps.shape,\n w: lProps.w,\n h: lProps.h,\n patterns,\n direction:\n lProps.direction ?? (direction === 'row' || direction === 'row-reverse' ? 'column' : 'row'),\n onChangeVisibleItem: lProps.disableSelectItems\n ? undefined\n : callAllEventHandlers(lProps.onChangeVisibleItem, this.handleChangeVisible),\n onMouseEnterItem: lProps.disableHoverItems\n ? undefined\n : callAllEventHandlers(lProps.onMouseEnterItem, this.handleMouseEnter),\n onMouseLeaveItem: lProps.disableHoverItems\n ? undefined\n : callAllEventHandlers(lProps.onMouseLeaveItem, this.handleMouseLeave),\n };\n\n if (lProps.legendType === 'Table') {\n return <ChartLegendTable {...commonLegendProps} />;\n }\n\n if ('withTrend' in lProps) {\n const flexLegendProps: LegendFlexProps = {\n ...commonLegendProps,\n withTrend: true,\n trendLabel: lProps.trendLabel,\n trendIsVisible: withTrend,\n onTrendIsVisibleChange: this.handleWithTrendChange,\n };\n\n return <ChartLegend {...flexLegendProps} />;\n }\n\n return <ChartLegend {...commonLegendProps} />;\n }\n\n protected renderAxis(): React.ReactNode {\n const { invertAxis, showXAxis, showYAxis, data, axisXValueFormatter, axisYValueFormatter } =\n this.asProps;\n\n if (!Array.isArray(data)) {\n return null;\n }\n\n const xTicks = this.xTicks;\n const yTicks = this.yTicks;\n\n const childrenX = axisXValueFormatter\n ? ({ value }: any) => ({ children: axisXValueFormatter(value) })\n : undefined;\n const childrenY = axisYValueFormatter\n ? ({ value }: any) => ({ children: axisYValueFormatter(value) })\n : undefined;\n\n return (\n <>\n {showYAxis && (\n <YAxis>\n {yTicks ? (\n <YAxis.Ticks ticks={yTicks}>{childrenY}</YAxis.Ticks>\n ) : (\n <YAxis.Ticks>{childrenY}</YAxis.Ticks>\n )}\n {invertAxis !== true && (yTicks ? <YAxis.Grid ticks={yTicks} /> : <YAxis.Grid />)}\n </YAxis>\n )}\n\n {showXAxis && (\n <XAxis>\n {xTicks ? (\n <XAxis.Ticks ticks={xTicks}>{childrenX}</XAxis.Ticks>\n ) : (\n <XAxis.Ticks>{childrenX}</XAxis.Ticks>\n )}\n {invertAxis === true && (xTicks ? <XAxis.Grid ticks={xTicks} /> : <XAxis.Grid />)}\n </XAxis>\n )}\n </>\n );\n }\n\n public render() {\n const SChart = Root;\n const { styles, plotWidth, plotHeight, data, patterns, a11yAltTextConfig, duration } =\n this.asProps;\n\n return sstyled(styles)(\n <SChart render={Flex} gap={5}>\n {this.renderLegend()}\n <Plot\n data={data}\n scale={[this.xScale, this.yScale]}\n width={plotWidth}\n height={plotHeight}\n dataHints={this.dataHints}\n a11yAltTextConfig={a11yAltTextConfig}\n patterns={patterns}\n duration={duration}\n >\n {this.renderAxis()}\n {this.renderTooltip()}\n {this.renderChart()}\n </Plot>\n </SChart>,\n );\n }\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"AbstractChart.js","names":["makeDataHintsContainer","interpolateValue","React","Component","Root","sstyled","callAllEventHandlers","ChartLegend","ChartLegendTable","Flex","Plot","XAxis","YAxis","Text","AbstractChart","_Component","_inherits","_super","_createSuper","props","_this","_classCallCheck","call","_defineProperty","_assertThisInitialized","dataDefinitions","getDefaultDataDefinitions","highlightedLine","withTrend","setHighlightedLine","bind","handleChangeVisible","handleMouseEnter","handleMouseLeave","resolveColor","tooltipValueFormatter","handleWithTrendChange","_createClass","key","value","componentDidUpdate","prevProps","data","legendProps","setState","_this2","_this$props","dataKeys","map","index","_legendProps$legendMa","_legendData$label","_legendData$icon","_legendData$defaultCh","legendData","legendMap","dataDefinition","id","label","icon","undefined","checked","defaultChecked","color","columns","additionalInfo","count","Array","isArray","_value","dataValue","Map","get","Number","total","Object","values","reduce","sum","i","percent","toFixed","createElement","concat","use","_this$props2","groupKey","keys","filter","_this$asProps","asProps","invertAxis","xTicksCount","yTicksCount","scale","xScale","ticks","_this$asProps2","yScale","_this$asProps3","flatValues","result","item","add","entries","forEach","_ref3","_ref4","_slicedToArray","Set","_this$asProps4","max","val","barSum","_ref5","_ref6","Date","isNaN","getMilliseconds","totalValue","state","legendItem","getValueScale","Math","apply","_toConsumableArray","min","avg","round","log10","valueScale","pow","isVisible","prevState","findIndex","line","_this$props$colorMap$","_this$props$colorMap","colorMap","toDateString","toString","defaultLegendProps","legendType","renderLegend","_lProps$direction","_this$asProps5","direction","showLegend","patterns","length","_this$state","lProps","_objectSpread","commonLegendProps","dataHints","items","size","shape","w","h","onChangeVisibleItem","disableSelectItems","onMouseEnterItem","disableHoverItems","onMouseLeaveItem","getLegendAriaLabel","flexLegendProps","trendLabel","trendIsVisible","onTrendIsVisibleChange","renderAxis","_this$asProps6","showXAxis","showYAxis","axisXValueFormatter","axisYValueFormatter","xTicks","yTicks","childrenX","_ref7","children","childrenY","_ref8","Fragment","Ticks","Grid","render","_ref","_ref2","SChart","_this$asProps7","styles","plotWidth","plotHeight","a11yAltTextConfig","duration","cn","_assignProps","renderTooltip","renderChart","showTooltip"],"sources":["../../../../src/component/Chart/AbstractChart.tsx"],"sourcesContent":["import { makeDataHintsContainer } from '../../a11y/hints';\nimport { LegendItem } from '../ChartLegend/LegendItem/LegendItem.type';\nimport { ScaleBand, ScaleLinear, ScaleTime } from 'd3-scale';\nimport { interpolateValue } from '../../utils';\nimport React from 'react';\nimport { Component, Root, sstyled } from '@semcore/core';\nimport { BaseChartProps, BaseLegendProps, ListData, ObjectData } from './AbstractChart.type';\nimport { callAllEventHandlers } from '@semcore/utils/lib/assignProps';\nimport ChartLegend, { ChartLegendTable } from '../ChartLegend';\nimport { Flex } from '@semcore/flex-box';\n// @ts-ignore\nimport { Plot, XAxis, YAxis } from '../..';\nimport { Text } from '@semcore/typography';\nimport { LegendFlexProps } from '../ChartLegend/LegendFlex/LegendFlex.type';\nimport { LegendTableProps } from '../ChartLegend/LegendTable/LegendTable.type';\n\ntype ChartState = {\n dataDefinitions: Array<LegendItem & { columns: React.ReactNode[] }>;\n highlightedLine: number;\n withTrend: boolean;\n};\n\nexport abstract class AbstractChart<\n D extends ListData | ObjectData,\n T extends BaseChartProps<D>,\n E extends readonly ((...args: any[]) => any)[] = [],\n> extends Component<T, {}, ChartState, E> {\n public static style = {};\n public static defaultProps: Partial<BaseChartProps<any>> = {\n direction: 'column',\n showXAxis: true,\n showYAxis: true,\n showTooltip: true,\n showLegend: true,\n };\n\n /**\n * Padding from the end's of chart to the container (except axis sides)\n */\n protected plotPadding = 6;\n\n protected dataHints = makeDataHintsContainer();\n\n public state: ChartState = {\n dataDefinitions: this.getDefaultDataDefinitions(),\n highlightedLine: -1,\n withTrend: false,\n };\n\n constructor(props: T) {\n super(props);\n\n this.setHighlightedLine = this.setHighlightedLine.bind(this);\n this.handleChangeVisible = this.handleChangeVisible.bind(this);\n this.handleMouseEnter = this.handleMouseEnter.bind(this);\n this.handleMouseLeave = this.handleMouseLeave.bind(this);\n this.resolveColor = this.resolveColor.bind(this);\n this.tooltipValueFormatter = this.tooltipValueFormatter.bind(this);\n this.handleWithTrendChange = this.handleWithTrendChange.bind(this);\n }\n\n public componentDidUpdate(prevProps: T) {\n if (prevProps.data !== this.props.data || prevProps.legendProps !== this.props.legendProps) {\n this.setState({ dataDefinitions: this.getDefaultDataDefinitions() });\n }\n }\n\n protected getDefaultDataDefinitions(): Array<LegendItem & { columns: React.ReactNode[] }> {\n const { data, legendProps } = this.props;\n\n return this.dataKeys.map((key, index) => {\n const legendData = legendProps?.legendMap?.[key];\n\n const dataDefinition: LegendItem & { columns: React.ReactNode[] } = {\n id: key,\n label: legendData?.label ?? key,\n icon: legendData?.icon ?? undefined,\n checked: legendData?.defaultChecked ?? true,\n color: this.resolveColor(key, index),\n columns: [],\n };\n\n if (legendData?.additionalInfo || legendData?.count) {\n dataDefinition.additionalInfo = legendData.additionalInfo\n ? { label: legendData.additionalInfo }\n : legendData.count\n ? { count: legendData.count }\n : undefined;\n }\n\n if (legendData && 'columns' in legendData) {\n dataDefinition.columns = legendData.columns || [];\n } else if (!Array.isArray(data)) {\n let value: number | undefined = undefined;\n let dataValue = data[key];\n\n if (data instanceof Map) {\n dataValue = data.get(key);\n }\n\n if (dataValue !== interpolateValue) {\n value = Number(dataValue);\n }\n\n const total = Object.values(data).reduce<number>((sum, i) => {\n if (i !== interpolateValue) {\n return sum + Number(i);\n }\n\n return sum;\n }, 0);\n const percent = value !== undefined ? ((value / total) * 100).toFixed(2) : undefined;\n\n dataDefinition.columns = [\n <Text key={`${key}_percent`} use={'secondary'}>\n {percent !== undefined ? `${percent}%` : ''}\n </Text>,\n <Text key={`${key}_value`} use={value ? 'primary' : 'secondary'}>\n {value ?? 'n/a'}\n </Text>,\n ];\n }\n\n return dataDefinition;\n });\n }\n\n protected abstract get xScale(): ScaleBand<any> | ScaleLinear<any, any> | ScaleTime<any, any>;\n protected abstract get yScale(): ScaleBand<any> | ScaleLinear<any, any> | ScaleTime<any, any>;\n\n protected abstract getLegendAriaLabel(): string;\n protected abstract renderChart(): React.ReactNode;\n protected abstract renderTooltip(): React.ReactNode;\n\n protected get dataKeys(): string[] {\n const { data, groupKey } = this.props;\n\n let dataKeys: string[];\n\n if (Array.isArray(data) && groupKey) {\n dataKeys = Object.keys(data[0]).filter((key) => key !== groupKey);\n } else {\n dataKeys = Object.keys(data);\n }\n\n return dataKeys;\n }\n\n protected get xTicks(): number[] | Date[] | undefined {\n const { data, invertAxis, xTicksCount, yTicksCount } = this.asProps;\n\n const scale = this.xScale;\n\n if (Array.isArray(data) && 'ticks' in scale) {\n if (invertAxis && yTicksCount) {\n return scale.ticks(yTicksCount);\n } else if (xTicksCount) {\n return scale.ticks(xTicksCount);\n }\n\n return undefined;\n }\n\n return undefined;\n }\n\n protected get yTicks(): number[] | Date[] | undefined {\n const { data, invertAxis, xTicksCount, yTicksCount } = this.asProps;\n\n const scale = this.yScale;\n\n if (Array.isArray(data) && 'ticks' in scale) {\n if (invertAxis && xTicksCount) {\n return scale.ticks(xTicksCount);\n } else if (yTicksCount) {\n return scale.ticks(yTicksCount);\n }\n\n return undefined;\n }\n\n return undefined;\n }\n\n protected get flatValues(): Set<number> {\n const { data, groupKey } = this.asProps;\n const values: any[] = Array.isArray(data) ? data : Object.values(data);\n\n const flatValues = values.reduce<Set<number>>((result, item) => {\n if (!groupKey && typeof item === 'number') {\n result.add(item);\n } else {\n Object.entries(item).forEach(([key, value]) => {\n if (key !== groupKey && typeof value === 'number') {\n result.add(value);\n }\n });\n }\n\n return result;\n }, new Set());\n\n return flatValues;\n }\n\n protected get maxStackedValue(): number {\n const { data, groupKey } = this.asProps;\n\n if (!Array.isArray(data)) {\n const max = Object.values(data).reduce<number>((sum, val) => {\n if (typeof val === 'number') {\n sum = sum + val;\n }\n\n return sum;\n }, 0);\n\n return max;\n }\n\n const max = data.reduce((max, item) => {\n const barSum = Object.entries(item).reduce<number>((sum, [key, val]) => {\n if (key === groupKey) {\n return sum;\n }\n\n if (typeof val === 'number') {\n return sum + val;\n }\n\n if (val instanceof Date && !Number.isNaN(val.getMilliseconds())) {\n return sum + val.getMilliseconds();\n }\n\n return sum;\n }, 0);\n\n if (barSum > max) {\n max = barSum;\n }\n\n return max;\n }, 0);\n\n return max;\n }\n\n protected totalValue(data: ObjectData): number {\n const { dataDefinitions } = this.state;\n\n const total = dataDefinitions.reduce((sum, legendItem) => {\n const item = data[legendItem.id];\n\n if (typeof item === 'number') {\n return sum + item;\n }\n\n if (item instanceof Date && !Number.isNaN(item.getMilliseconds())) {\n return sum + item.getMilliseconds();\n }\n\n return sum;\n }, 0);\n\n return total;\n }\n\n protected getValueScale(values: number[]): number {\n const max = Math.max(...values);\n const min = Math.min(...values);\n\n const avg = (max + min) / 2;\n const count = Math.round(Math.log10(avg));\n\n const valueScale = 100 / 10 ** count;\n\n return valueScale;\n }\n\n protected setHighlightedLine(index: number) {\n this.setState({ highlightedLine: index });\n }\n\n protected handleChangeVisible(id: string, isVisible: boolean) {\n this.setState((prevState) => {\n const dataDefinitions = prevState.dataDefinitions.map((item) => {\n if (item.id === id) {\n item.checked = isVisible;\n }\n\n return item;\n });\n\n return { dataDefinitions };\n });\n }\n\n protected handleWithTrendChange(isVisible: boolean) {\n this.setState({ withTrend: isVisible });\n }\n\n protected handleMouseEnter(id: string) {\n this.setHighlightedLine(this.state.dataDefinitions.findIndex((line) => line.id === id));\n }\n\n protected handleMouseLeave() {\n this.setHighlightedLine(-1);\n }\n\n protected resolveColor(id: string, index: number) {\n return this.props.colorMap?.[id] ?? `chart-palette-order-${index + 1}`;\n }\n\n protected tooltipValueFormatter(\n value?: string | number | typeof interpolateValue | Date,\n ): string {\n const { tooltipValueFormatter } = this.asProps;\n\n if (tooltipValueFormatter) {\n return tooltipValueFormatter(value);\n }\n\n if (value === undefined || value === interpolateValue) {\n return 'n/a';\n }\n\n if (value === null) {\n return '0';\n }\n\n if (value instanceof Date) {\n return value.toDateString();\n }\n\n return value.toString();\n }\n\n protected defaultLegendProps(): Partial<BaseLegendProps> {\n return {\n legendType: 'Flex',\n };\n }\n\n protected renderLegend() {\n const { legendProps, direction, showLegend, patterns } = this.asProps;\n\n if (\n !showLegend ||\n // we hide Legend for one item on chart except not manually set to show.\n (this.dataKeys.length === 1 && showLegend === true)\n ) {\n return null;\n }\n\n const { dataDefinitions, withTrend } = this.state;\n const lProps = {\n ...this.defaultLegendProps(),\n ...legendProps,\n };\n\n const commonLegendProps: LegendFlexProps | LegendTableProps = {\n dataHints: this.dataHints,\n items: dataDefinitions,\n size: lProps.size,\n shape: lProps.shape,\n w: lProps.w,\n h: lProps.h,\n patterns,\n direction:\n lProps.direction ?? (direction === 'row' || direction === 'row-reverse' ? 'column' : 'row'),\n onChangeVisibleItem: lProps.disableSelectItems\n ? undefined\n : callAllEventHandlers(lProps.onChangeVisibleItem, this.handleChangeVisible),\n onMouseEnterItem: lProps.disableHoverItems\n ? undefined\n : callAllEventHandlers(lProps.onMouseEnterItem, this.handleMouseEnter),\n onMouseLeaveItem: lProps.disableHoverItems\n ? undefined\n : callAllEventHandlers(lProps.onMouseLeaveItem, this.handleMouseLeave),\n 'aria-label': this.getLegendAriaLabel(),\n };\n\n if (lProps.legendType === 'Table') {\n return <ChartLegendTable {...(commonLegendProps as LegendTableProps)} />;\n }\n\n if ('withTrend' in lProps) {\n const flexLegendProps = {\n ...commonLegendProps,\n withTrend: true,\n trendLabel: lProps.trendLabel,\n trendIsVisible: withTrend,\n onTrendIsVisibleChange: this.handleWithTrendChange,\n };\n\n return <ChartLegend {...(flexLegendProps as LegendFlexProps)} />;\n }\n\n return <ChartLegend {...(commonLegendProps as LegendFlexProps)} />;\n }\n\n protected renderAxis(): React.ReactNode {\n const { invertAxis, showXAxis, showYAxis, data, axisXValueFormatter, axisYValueFormatter } =\n this.asProps;\n\n if (!Array.isArray(data)) {\n return null;\n }\n\n const xTicks = this.xTicks;\n const yTicks = this.yTicks;\n\n const childrenX = axisXValueFormatter\n ? ({ value }: any) => ({ children: axisXValueFormatter(value) })\n : undefined;\n const childrenY = axisYValueFormatter\n ? ({ value }: any) => ({ children: axisYValueFormatter(value) })\n : undefined;\n\n return (\n <>\n {showYAxis && (\n <YAxis>\n {yTicks ? (\n <YAxis.Ticks ticks={yTicks}>{childrenY}</YAxis.Ticks>\n ) : (\n <YAxis.Ticks>{childrenY}</YAxis.Ticks>\n )}\n {invertAxis !== true && (yTicks ? <YAxis.Grid ticks={yTicks} /> : <YAxis.Grid />)}\n </YAxis>\n )}\n\n {showXAxis && (\n <XAxis>\n {xTicks ? (\n <XAxis.Ticks ticks={xTicks}>{childrenX}</XAxis.Ticks>\n ) : (\n <XAxis.Ticks>{childrenX}</XAxis.Ticks>\n )}\n {invertAxis === true && (xTicks ? <XAxis.Grid ticks={xTicks} /> : <XAxis.Grid />)}\n </XAxis>\n )}\n </>\n );\n }\n\n public render() {\n const SChart = Root;\n const { styles, plotWidth, plotHeight, data, patterns, a11yAltTextConfig, duration } =\n this.asProps;\n\n return sstyled(styles)(\n <SChart render={Flex} gap={5} __excludeProps={['data']} role={'group'}>\n {this.renderLegend()}\n <Plot\n data={data}\n scale={[this.xScale, this.yScale]}\n width={plotWidth}\n height={plotHeight}\n dataHints={this.dataHints}\n a11yAltTextConfig={a11yAltTextConfig}\n patterns={patterns}\n duration={duration}\n >\n {this.renderAxis()}\n {this.renderTooltip()}\n {this.renderChart()}\n </Plot>\n </SChart>,\n );\n }\n}\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"AbstractChart.type.js","names":[],"sources":["../../../../src/component/Chart/AbstractChart.type.ts"],"sourcesContent":["import React from 'react';\nimport { FlexProps } from '@semcore/flex-box';\nimport { LegendItemKey } from '../ChartLegend/LegendItem/LegendItem.type';\nimport Icon from '@semcore/icon';\nimport { BaseChartLegendProps } from '../ChartLegend/BaseLegend.type';\nimport { TrendProps } from '../ChartLegend/LegendFlex/LegendFlex.type';\nimport { PatternsConfig } from '../../Pattern';\n// @ts-ignore\nimport { PlotSummarizerConfig } from '../../Plot';\n\nexport type BaseLegendProps = BaseChartLegendProps & {\n /**\n * Disable hover (for transition items legend of each not hovered)\n */\n disableHoverItems?: boolean;\n /**\n * Disable selectable of data items by checkboxes in Legend\n */\n disableSelectItems?: boolean;\n} & (\n | (TrendProps & {\n /**\n * How to render Legend - Flex view. Just list of legend items\n */\n legendType?: never | 'Flex';\n /**\n * Config for Legend items\n */\n legendMap?: LegendDataMap<'Flex'>;\n })\n | {\n /**\n * How to render Legend - Table view. Table of legend items with some additional information in columns\n */\n legendType: 'Table';\n /**\n * Config for Legend items\n */\n legendMap?: LegendDataMap<'Table'>;\n }\n );\n\nexport type ObjectData = Record<string, unknown>;\nexport type ListData = ObjectData[];\n\nexport type BaseChartProps<T extends ListData | ObjectData> = FlexProps & {\n /**\n * Chart data. For all charts except Donut(Pie), Radar and Venn should be an Array\n */\n data: T;\n /**\n * Width of plot\n */\n plotWidth: number;\n /**\n * Height of plot\n */\n plotHeight: number;\n\n /** Enables charts patterns that enhances charts accessibility */\n patterns?: PatternsConfig;\n /**\n * Margin (for Y axis points) from left side of chart container to Y axis\n */\n marginY?: number;\n /**\n * Margin (for X axis points) from bottom of chart container to X axis\n */\n marginX?: number;\n /**\n * invert axis and show horizontal charts (only for Bars!)\n */\n invertAxis?: boolean;\n\n /**\n * Show X axis\n * @default true (for charts with axis: Area, Line, Bar, ScatterPlot, ...)\n */\n showXAxis?: boolean;\n /**\n * Show Y axis\n * @default true (for charts with axis: Area, Line, Bar, ScatterPlot, ...)\n */\n showYAxis?: boolean;\n /**\n * Map with colors for data items\n */\n colorMap?: Record<string, string>;\n /**\n * Show tooltip's.\n * @default true\n */\n showTooltip?: boolean;\n /**\n * Show sum of values for selected point in tooltip\n */\n showTotalInTooltip?: boolean;\n /**\n * Scale for xAxis (see more in d3-scale)\n */\n xScale?: unknown;\n /**\n * Scale for yAxis (see more in d3-scale)\n */\n yScale?: unknown;\n /**\n * Count of ticks for X axis\n */\n xTicksCount?: number;\n /**\n * Count of ticks for Y axis\n */\n yTicksCount?: number;\n /**\n * Group key for all array-based charts (for get keys of items for legend except that group key)\n */\n groupKey?: string;\n /**\n * function for format axis item text\n */\n axisXValueFormatter?: (value: unknown) => string;\n axisYValueFormatter?: (value: unknown) => string;\n /**\n * Function for format text for tooltip\n */\n tooltipValueFormatter?: (value?: unknown) => string;\n /**\n * Config for a11y summary\n */\n a11yAltTextConfig?: PlotSummarizerConfig;\n\n /**\n * Animations duration, set 0 to disable animations\n */\n duration?: number;\n} /**\n * By default, we show the Legend for all charts with more the one data item.\n * For hide the Legend, you should set showLegend prop to `false`.\n */ & (\n | {\n /**\n * Don't show legend\n */\n showLegend?: false;\n legendProps?: never;\n }\n | {\n /**\n * By default (if showLegend don't set), for one data item on chart,\n * Legend component will be hide, and show for more then 1 data item.\n * If set `true` - Legend component will show always.\n */\n showLegend?: true;\n /**\n * Props for Legend\n */\n legendProps?: Partial<BaseLegendProps>;\n }\n );\n\ntype LegendDataMap<T extends 'Flex' | 'Table'> = Record<\n LegendItemKey,\n {\n /**\n * Custom label for legend item (by default use keys from data item object)\n */\n label?: string;\n /**\n * Additional text after label\n */\n additionalInfo?: string;\n /**\n * Count after label\n */\n count?: number;\n /**\n * Custom Icon\n */\n icon?: typeof Icon;\n /**\n * Flag for uncheck some items by default\n */\n defaultChecked?: boolean;\n } & (T extends 'Table' ? { columns?: React.ReactNode[] } : { columns?: never })\n>;\n"],"mappings":""}
1
+ {"version":3,"file":"AbstractChart.type.js","names":[],"sources":["../../../../src/component/Chart/AbstractChart.type.ts"],"sourcesContent":["import React from 'react';\nimport { FlexProps } from '@semcore/flex-box';\nimport { LegendItemKey } from '../ChartLegend/LegendItem/LegendItem.type';\nimport Icon from '@semcore/icon';\nimport { BaseChartLegendProps } from '../ChartLegend/BaseLegend.type';\nimport { TrendProps } from '../ChartLegend/LegendFlex/LegendFlex.type';\nimport { PatternsConfig } from '../../Pattern';\n// @ts-ignore\nimport { PlotSummarizerConfig } from '../../Plot';\nimport { Intergalactic } from '@semcore/utils/lib/core';\n\nexport type BaseLegendProps = BaseChartLegendProps & {\n /**\n * Disable hover (for transition items legend of each not hovered)\n */\n disableHoverItems?: boolean;\n /**\n * Disable selectable of data items by checkboxes in Legend\n */\n disableSelectItems?: boolean;\n} & (\n | (TrendProps & {\n /**\n * How to render Legend - Flex view. Just list of legend items\n */\n legendType?: never | 'Flex';\n /**\n * Config for Legend items\n */\n legendMap?: LegendDataMap<'Flex'>;\n })\n | {\n /**\n * How to render Legend - Table view. Table of legend items with some additional information in columns\n */\n legendType: 'Table';\n /**\n * Config for Legend items\n */\n legendMap?: LegendDataMap<'Table'>;\n }\n );\n\nexport type ObjectData = Record<string, unknown>;\nexport type ListData = ObjectData[];\n\n/**\n * Chart, Legend must have an accessible names (aria-name).\n * It should describe chart or legend content.\n */\nexport type AriaNameProps = Intergalactic.RequireAtLeastOne<{\n 'aria-label'?: string;\n 'aria-labelledby'?: string;\n title?: string;\n}>;\n\nexport type BaseChartProps<T extends ListData | ObjectData> = FlexProps &\n AriaNameProps & {\n /**\n * Chart data. For all charts except Donut(Pie), Radar and Venn should be an Array\n */\n data: T;\n /**\n * Width of plot\n */\n plotWidth: number;\n /**\n * Height of plot\n */\n plotHeight: number;\n\n /** Enables charts patterns that enhances charts accessibility */\n patterns?: PatternsConfig;\n /**\n * Margin (for Y axis points) from left side of chart container to Y axis\n */\n marginY?: number;\n /**\n * Margin (for X axis points) from bottom of chart container to X axis\n */\n marginX?: number;\n /**\n * invert axis and show horizontal charts (only for Bars!)\n */\n invertAxis?: boolean;\n\n /**\n * Show X axis\n * @default true (for charts with axis: Area, Line, Bar, ScatterPlot, ...)\n */\n showXAxis?: boolean;\n /**\n * Show Y axis\n * @default true (for charts with axis: Area, Line, Bar, ScatterPlot, ...)\n */\n showYAxis?: boolean;\n /**\n * Map with colors for data items\n */\n colorMap?: Record<string, string>;\n /**\n * Show tooltip's.\n * @default true\n */\n showTooltip?: boolean;\n /**\n * Show sum of values for selected point in tooltip\n */\n showTotalInTooltip?: boolean;\n /**\n * Scale for xAxis (see more in d3-scale)\n */\n xScale?: unknown;\n /**\n * Scale for yAxis (see more in d3-scale)\n */\n yScale?: unknown;\n /**\n * Count of ticks for X axis\n */\n xTicksCount?: number;\n /**\n * Count of ticks for Y axis\n */\n yTicksCount?: number;\n /**\n * Group key for all array-based charts (for get keys of items for legend except that group key)\n */\n groupKey?: string;\n /**\n * function for format axis item text\n */\n axisXValueFormatter?: (value: unknown) => string;\n axisYValueFormatter?: (value: unknown) => string;\n /**\n * Function for format text for tooltip\n */\n tooltipValueFormatter?: (value?: unknown) => string;\n /**\n * Config for a11y summary\n */\n a11yAltTextConfig?: PlotSummarizerConfig;\n\n /**\n * Animations duration, set 0 to disable animations\n */\n duration?: number;\n } /**\n * By default, we show the Legend for all charts with more the one data item.\n * For hide the Legend, you should set showLegend prop to `false`.\n */ & (\n | {\n /**\n * Don't show legend\n */\n showLegend?: false;\n legendProps?: never;\n }\n | {\n /**\n * By default (if showLegend don't set), for one data item on chart,\n * Legend component will be hide, and show for more then 1 data item.\n * If set `true` - Legend component will show always.\n */\n showLegend?: true;\n /**\n * Props for Legend\n */\n legendProps?: Partial<BaseLegendProps>;\n }\n );\n\ntype LegendDataMap<T extends 'Flex' | 'Table'> = Record<\n LegendItemKey,\n {\n /**\n * Custom label for legend item (by default use keys from data item object)\n */\n label?: string;\n /**\n * Additional text after label\n */\n additionalInfo?: string;\n /**\n * Count after label\n */\n count?: number;\n /**\n * Custom Icon\n */\n icon?: typeof Icon;\n /**\n * Flag for uncheck some items by default\n */\n defaultChecked?: boolean;\n } & (T extends 'Table' ? { columns?: React.ReactNode[] } : { columns?: never })\n>;\n"],"mappings":""}
@@ -14,6 +14,8 @@ import { Area, minMax, HoverLine, StackedArea } from '../..';
14
14
  import { AbstractChart } from './AbstractChart';
15
15
  import { Flex, Box } from '@semcore/flex-box';
16
16
  import { Text } from '@semcore/typography';
17
+ import { localizedMessages } from '../../translations/__intergalactic-dynamic-locales';
18
+ import i18nEnhance from '@semcore/utils/lib/enhances/i18nEnhance';
17
19
  var AreaChartComponent = /*#__PURE__*/function (_AbstractChart) {
18
20
  _inherits(AreaChartComponent, _AbstractChart);
19
21
  var _super = _createSuper(AreaChartComponent);
@@ -144,9 +146,17 @@ var AreaChartComponent = /*#__PURE__*/function (_AbstractChart) {
144
146
  };
145
147
  });
146
148
  }
149
+ }, {
150
+ key: "getLegendAriaLabel",
151
+ value: function getLegendAriaLabel() {
152
+ return this.asProps.getI18nText('legendForChart', {
153
+ chartType: 'Area'
154
+ });
155
+ }
147
156
  }]);
148
157
  return AreaChartComponent;
149
158
  }(AbstractChart);
150
159
  _defineProperty(AreaChartComponent, "displayName", 'Chart.Area');
160
+ _defineProperty(AreaChartComponent, "enhance", [i18nEnhance(localizedMessages)]);
151
161
  export var AreaChart = createComponent(AreaChartComponent);
152
162
  //# sourceMappingURL=AreaChart.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"AreaChart.js","names":["React","createComponent","scaleLinear","scaleTime","Area","minMax","HoverLine","StackedArea","AbstractChart","Flex","Box","Text","AreaChartComponent","_AbstractChart","_inherits","_super","_createSuper","_classCallCheck","apply","arguments","_createClass","key","get","_this$asProps","asProps","xScale","_this$asProps$marginY","marginY","plotWidth","data","groupKey","testItem","range","plotPadding","domain","Date","Number","isNaN","getMilliseconds","_this$asProps2","yScale","_this$asProps2$margin","marginX","plotHeight","stacked","flatValues","_get","_getPrototypeOf","prototype","min","Math","_toConsumableArray","max","value","renderChart","_this$asProps3","curve","showDots","_this$state","state","dataDefinitions","highlightedLine","createElement","x","map","item","index","checked","y","id","color","transparent","Dots","display","renderTooltip","_this","_this$asProps4","showTotalInTooltip","showTooltip","Tooltip","wMin","_ref","_dataItem$groupKey","xIndex","dataItem","total","totalValue","children","Fragment","Title","toString","justifyContent","Dot","mr","label","bold","tooltipValueFormatter","mt","_defineProperty","AreaChart"],"sources":["../../../../src/component/Chart/AreaChart.tsx"],"sourcesContent":["import React from 'react';\nimport createComponent from '@semcore/core';\nimport { ScaleLinear, scaleLinear, scaleTime } from 'd3-scale';\n// @ts-ignore\nimport { Area, minMax, HoverLine, StackedArea } from '../..';\nimport { AbstractChart } from './AbstractChart';\nimport { AreaChartData, AreaChartProps, AreaChartType } from './AreaChart.type';\nimport { Flex, Box } from '@semcore/flex-box';\nimport { Text } from '@semcore/typography';\n\nclass AreaChartComponent extends AbstractChart<AreaChartData, AreaChartProps> {\n static displayName = 'Chart.Area';\n\n get xScale() {\n const { xScale, marginY = 40, plotWidth, data, groupKey } = this.asProps;\n\n if (xScale) {\n return xScale;\n }\n\n const testItem = data[0][groupKey];\n const range = [marginY, plotWidth - this.plotPadding];\n const domain = minMax(data, groupKey);\n\n if (testItem instanceof Date && !Number.isNaN(testItem.getMilliseconds())) {\n return scaleTime(domain, range);\n }\n\n return scaleLinear(domain, range);\n }\n\n get yScale(): ScaleLinear<any, any> {\n const { yScale, marginX = 24, plotHeight, stacked, data, groupKey } = this.asProps;\n\n if (yScale) {\n return yScale;\n }\n\n const flatValues = super.flatValues;\n const min = Math.min(...flatValues);\n const max = stacked ? super.maxStackedValue : Math.max(...flatValues);\n\n return scaleLinear()\n .range([plotHeight - marginX, this.plotPadding])\n .domain([min, max]);\n }\n\n renderChart() {\n const { groupKey, curve, showDots, stacked } = this.asProps;\n const { dataDefinitions, highlightedLine } = this.state;\n\n if (stacked) {\n return (\n <StackedArea x={groupKey}>\n {dataDefinitions.map((item, index) => {\n return (\n item.checked && (\n <StackedArea.Area\n x={groupKey}\n y={item.id}\n key={item.id}\n color={item.color}\n transparent={highlightedLine !== -1 && highlightedLine !== index}\n curve={curve}\n >\n {showDots && <StackedArea.Area.Dots display />}\n </StackedArea.Area>\n )\n );\n })}\n </StackedArea>\n );\n }\n\n return dataDefinitions.map((item, index) => {\n return (\n item.checked && (\n <Area\n x={groupKey}\n y={item.id}\n key={item.id}\n color={item.color}\n transparent={highlightedLine !== -1 && highlightedLine !== index}\n curve={curve}\n >\n {showDots && <Area.Dots display />}\n </Area>\n )\n );\n });\n }\n\n renderTooltip() {\n const { data, groupKey, showTotalInTooltip, showTooltip } = this.asProps;\n const { dataDefinitions } = this.state;\n\n if (!showTooltip) {\n return null;\n }\n\n return (\n <HoverLine.Tooltip x={groupKey} wMin={100}>\n {({ xIndex }: any) => {\n const dataItem = data[xIndex];\n const total = this.totalValue(dataItem);\n\n return {\n children: (\n <>\n <HoverLine.Tooltip.Title>{dataItem[groupKey]?.toString()}</HoverLine.Tooltip.Title>\n\n {dataDefinitions.map((item) => {\n return (\n item.checked && (\n <Flex justifyContent='space-between' key={item.id}>\n <HoverLine.Tooltip.Dot mr={4} color={item.color}>\n {item.label}\n </HoverLine.Tooltip.Dot>\n <Text bold>{this.tooltipValueFormatter(dataItem[item.id])}</Text>\n </Flex>\n )\n );\n })}\n\n {showTotalInTooltip === true && (\n <Flex mt={2} justifyContent='space-between'>\n <Box mr={4}>Total</Box>\n <Text bold>{total}</Text>\n </Flex>\n )}\n </>\n ),\n };\n }}\n </HoverLine.Tooltip>\n );\n }\n}\n\nexport const AreaChart: AreaChartType = createComponent(AreaChartComponent);\n"],"mappings":"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"}
1
+ {"version":3,"file":"AreaChart.js","names":["React","createComponent","scaleLinear","scaleTime","Area","minMax","HoverLine","StackedArea","AbstractChart","Flex","Box","Text","localizedMessages","i18nEnhance","AreaChartComponent","_AbstractChart","_inherits","_super","_createSuper","_classCallCheck","apply","arguments","_createClass","key","get","_this$asProps","asProps","xScale","_this$asProps$marginY","marginY","plotWidth","data","groupKey","testItem","range","plotPadding","domain","Date","Number","isNaN","getMilliseconds","_this$asProps2","yScale","_this$asProps2$margin","marginX","plotHeight","stacked","flatValues","_get","_getPrototypeOf","prototype","min","Math","_toConsumableArray","max","value","renderChart","_this$asProps3","curve","showDots","_this$state","state","dataDefinitions","highlightedLine","createElement","x","map","item","index","checked","y","id","color","transparent","Dots","display","renderTooltip","_this","_this$asProps4","showTotalInTooltip","showTooltip","Tooltip","wMin","_ref","_dataItem$groupKey","xIndex","dataItem","total","totalValue","children","Fragment","Title","toString","justifyContent","Dot","mr","label","bold","tooltipValueFormatter","mt","getLegendAriaLabel","getI18nText","chartType","_defineProperty","AreaChart"],"sources":["../../../../src/component/Chart/AreaChart.tsx"],"sourcesContent":["import React from 'react';\nimport createComponent from '@semcore/core';\nimport { ScaleLinear, scaleLinear, scaleTime } from 'd3-scale';\n// @ts-ignore\nimport { Area, minMax, HoverLine, StackedArea } from '../..';\nimport { AbstractChart } from './AbstractChart';\nimport { AreaChartData, AreaChartProps, AreaChartType } from './AreaChart.type';\nimport { Flex, Box } from '@semcore/flex-box';\nimport { Text } from '@semcore/typography';\nimport { localizedMessages } from '../../translations/__intergalactic-dynamic-locales';\nimport i18nEnhance from '@semcore/utils/lib/enhances/i18nEnhance';\n\nclass AreaChartComponent extends AbstractChart<\n AreaChartData,\n AreaChartProps,\n typeof AreaChartComponent.enhance\n> {\n static displayName = 'Chart.Area';\n\n static enhance = [i18nEnhance(localizedMessages)] as const;\n\n get xScale() {\n const { xScale, marginY = 40, plotWidth, data, groupKey } = this.asProps;\n\n if (xScale) {\n return xScale;\n }\n\n const testItem = data[0][groupKey];\n const range = [marginY, plotWidth - this.plotPadding];\n const domain = minMax(data, groupKey);\n\n if (testItem instanceof Date && !Number.isNaN(testItem.getMilliseconds())) {\n return scaleTime(domain, range);\n }\n\n return scaleLinear(domain, range);\n }\n\n get yScale(): ScaleLinear<any, any> {\n const { yScale, marginX = 24, plotHeight, stacked, data, groupKey } = this.asProps;\n\n if (yScale) {\n return yScale;\n }\n\n const flatValues = super.flatValues;\n const min = Math.min(...flatValues);\n const max = stacked ? super.maxStackedValue : Math.max(...flatValues);\n\n return scaleLinear()\n .range([plotHeight - marginX, this.plotPadding])\n .domain([min, max]);\n }\n\n renderChart() {\n const { groupKey, curve, showDots, stacked } = this.asProps;\n const { dataDefinitions, highlightedLine } = this.state;\n\n if (stacked) {\n return (\n <StackedArea x={groupKey}>\n {dataDefinitions.map((item, index) => {\n return (\n item.checked && (\n <StackedArea.Area\n x={groupKey}\n y={item.id}\n key={item.id}\n color={item.color}\n transparent={highlightedLine !== -1 && highlightedLine !== index}\n curve={curve}\n >\n {showDots && <StackedArea.Area.Dots display />}\n </StackedArea.Area>\n )\n );\n })}\n </StackedArea>\n );\n }\n\n return dataDefinitions.map((item, index) => {\n return (\n item.checked && (\n <Area\n x={groupKey}\n y={item.id}\n key={item.id}\n color={item.color}\n transparent={highlightedLine !== -1 && highlightedLine !== index}\n curve={curve}\n >\n {showDots && <Area.Dots display />}\n </Area>\n )\n );\n });\n }\n\n renderTooltip() {\n const { data, groupKey, showTotalInTooltip, showTooltip } = this.asProps;\n const { dataDefinitions } = this.state;\n\n if (!showTooltip) {\n return null;\n }\n\n return (\n <HoverLine.Tooltip x={groupKey} wMin={100}>\n {({ xIndex }: any) => {\n const dataItem = data[xIndex];\n const total = this.totalValue(dataItem);\n\n return {\n children: (\n <>\n <HoverLine.Tooltip.Title>{dataItem[groupKey]?.toString()}</HoverLine.Tooltip.Title>\n\n {dataDefinitions.map((item) => {\n return (\n item.checked && (\n <Flex justifyContent='space-between' key={item.id}>\n <HoverLine.Tooltip.Dot mr={4} color={item.color}>\n {item.label}\n </HoverLine.Tooltip.Dot>\n <Text bold>{this.tooltipValueFormatter(dataItem[item.id])}</Text>\n </Flex>\n )\n );\n })}\n\n {showTotalInTooltip === true && (\n <Flex mt={2} justifyContent='space-between'>\n <Box mr={4}>Total</Box>\n <Text bold>{total}</Text>\n </Flex>\n )}\n </>\n ),\n };\n }}\n </HoverLine.Tooltip>\n );\n }\n\n protected getLegendAriaLabel(): string {\n return this.asProps.getI18nText('legendForChart', { chartType: 'Area' });\n }\n}\n\nexport const AreaChart: AreaChartType = createComponent(AreaChartComponent);\n"],"mappings":"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"}
@@ -16,6 +16,8 @@ import { minMax, GroupBar, HoverRect, StackBar, Line } from '../..';
16
16
  import { AbstractChart } from './AbstractChart';
17
17
  import { Box, Flex } from '@semcore/flex-box';
18
18
  import { Text } from '@semcore/typography';
19
+ import { localizedMessages } from '../../translations/__intergalactic-dynamic-locales';
20
+ import i18nEnhance from '@semcore/utils/lib/enhances/i18nEnhance';
19
21
  var BarChartComponent = /*#__PURE__*/function (_AbstractChart) {
20
22
  _inherits(BarChartComponent, _AbstractChart);
21
23
  var _super = _createSuper(BarChartComponent);
@@ -215,6 +217,13 @@ var BarChartComponent = /*#__PURE__*/function (_AbstractChart) {
215
217
  };
216
218
  });
217
219
  }
220
+ }, {
221
+ key: "getLegendAriaLabel",
222
+ value: function getLegendAriaLabel() {
223
+ return this.asProps.getI18nText('legendForChart', {
224
+ chartType: 'Bar'
225
+ });
226
+ }
218
227
  }, {
219
228
  key: "categoryScale",
220
229
  get: function get() {
@@ -258,5 +267,6 @@ var BarChartComponent = /*#__PURE__*/function (_AbstractChart) {
258
267
  return BarChartComponent;
259
268
  }(AbstractChart);
260
269
  _defineProperty(BarChartComponent, "displayName", 'Chart.Bar');
270
+ _defineProperty(BarChartComponent, "enhance", [i18nEnhance(localizedMessages)]);
261
271
  export var BarChart = createComponent(BarChartComponent);
262
272
  //# sourceMappingURL=BarChart.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"BarChart.js","names":["React","createComponent","scaleBand","scaleLinear","scaleTime","minMax","GroupBar","HoverRect","StackBar","Line","AbstractChart","Box","Flex","Text","BarChartComponent","_AbstractChart","_inherits","_super","_createSuper","_this","_classCallCheck","_len","arguments","length","args","Array","_key","call","apply","concat","_defineProperty","_assertThisInitialized","_data","e","barIndex","barKey","onClickBar","asProps","_createClass","key","get","_this$asProps","xScale","invertAxis","valueScale","categoryScale","_this$asProps2","yScale","value","defaultLegendProps","props","trend","undefined","withTrend","renderTrend","_this$asProps3","groupKey","_this$asProps3$type","type","state","trendItem","createElement","data","x","y","color","style","strokeWidth","strokeDasharray","Dots","display","renderChart","_this2","_this$asProps4","_this$asProps4$type","_this$state","dataDefinitions","highlightedLine","item","BarComponent","HorizontalBar","Bar","Fragment","id","onClick","handleClickBar","map","index","commonBarComponentProps","transparent","checked","_extends","renderTooltip","_this3","_this$asProps5","showTotalInTooltip","showTooltip","onClickHoverRect","Tooltip","wMin","_ref","_dataItem$groupKey","xIndex","yIndex","dataItem","total","totalValue","children","Title","toString","justifyContent","Dot","mr","label","bold","tooltipValueFormatter","mt","_this$asProps6","_this$asProps6$margin","marginY","_this$asProps6$margin2","marginX","plotWidth","plotHeight","testItem","range","plotPadding","Date","Number","isNaN","getMilliseconds","domain","paddingInner","paddingOuter","_this$asProps7","_this$asProps7$margin","_this$asProps7$margin2","max","_get","_getPrototypeOf","prototype","Math","_toConsumableArray","BarChart"],"sources":["../../../../src/component/Chart/BarChart.tsx"],"sourcesContent":["import React from 'react';\nimport createComponent from '@semcore/core';\nimport { BaseLegendProps } from './AbstractChart.type';\nimport { BarChartData, BarChartProps, BarChartType } from './BarChart.type';\nimport { scaleBand, scaleLinear, scaleTime } from 'd3-scale';\n// @ts-ignore\nimport { minMax, GroupBar, HoverRect, StackBar, Line } from '../..';\nimport { AbstractChart } from './AbstractChart';\nimport { BarProps } from '../../types';\nimport { Box, Flex } from '@semcore/flex-box';\nimport { Text } from '@semcore/typography';\nimport { LegendItemKey } from '../ChartLegend/LegendItem/LegendItem.type';\n\nclass BarChartComponent extends AbstractChart<BarChartData, BarChartProps> {\n static displayName = 'Chart.Bar';\n\n get xScale() {\n const { xScale, invertAxis } = this.asProps;\n\n if (xScale) {\n return xScale;\n }\n\n return invertAxis ? this.valueScale : this.categoryScale;\n }\n\n get yScale() {\n const { yScale, invertAxis } = this.asProps;\n\n if (yScale) {\n return yScale;\n }\n\n return invertAxis ? this.categoryScale : this.valueScale;\n }\n\n protected defaultLegendProps(): Partial<BaseLegendProps> {\n if (this.props.trend !== undefined) {\n return { withTrend: true };\n }\n\n return {};\n }\n\n renderTrend(key: LegendItemKey) {\n const { groupKey, type = 'group', invertAxis, trend } = this.asProps;\n const { withTrend } = this.state;\n const trendItem = trend?.[key];\n\n if (withTrend && trendItem) {\n return (\n <Line\n data={trendItem}\n key={`${key}_${groupKey}`}\n x={invertAxis ? 'y' : 'x'}\n y={invertAxis ? 'x' : 'y'}\n color={'wall'}\n style={{ strokeWidth: 3, strokeDasharray: 5 }}\n >\n <Line.Dots data={trendItem} display />\n </Line>\n );\n }\n\n return null;\n }\n\n renderChart() {\n const { groupKey, type = 'group', invertAxis } = this.asProps;\n const { dataDefinitions, highlightedLine } = this.state;\n\n if (dataDefinitions.length === 1) {\n const item = dataDefinitions[0];\n const BarComponent = invertAxis ? GroupBar.HorizontalBar : GroupBar.Bar;\n\n return (\n <>\n <BarComponent\n x={invertAxis ? item.id : groupKey}\n y={invertAxis ? groupKey : item.id}\n key={item.id}\n color={item.color}\n onClick={this.handleClickBar}\n />\n {this.renderTrend(item.id)}\n </>\n );\n }\n\n if (type === 'group') {\n return (\n <>\n <GroupBar x={invertAxis ? undefined : groupKey} y={invertAxis ? groupKey : undefined}>\n {dataDefinitions.map((item, index) => {\n const BarComponent = invertAxis ? GroupBar.HorizontalBar : GroupBar.Bar;\n\n const commonBarComponentProps: BarProps = {\n color: item.color,\n transparent: highlightedLine !== -1 && highlightedLine !== index,\n onClick: this.handleClickBar,\n };\n\n if (invertAxis) {\n commonBarComponentProps.x = item.id;\n } else {\n commonBarComponentProps.y = item.id;\n }\n\n return item.checked && <BarComponent key={item.id} {...commonBarComponentProps} />;\n })}\n </GroupBar>\n {dataDefinitions.map((item) => item.checked && this.renderTrend(item.id))}\n </>\n );\n }\n\n if (type === 'stack') {\n return (\n <>\n <StackBar x={invertAxis ? undefined : groupKey} y={invertAxis ? groupKey : undefined}>\n {dataDefinitions.map((item, index) => {\n const BarComponent = invertAxis ? StackBar.HorizontalBar : StackBar.Bar;\n\n const commonBarComponentProps: BarProps = {\n color: item.color,\n transparent: highlightedLine !== -1 && highlightedLine !== index,\n onClick: this.handleClickBar,\n };\n\n if (invertAxis) {\n commonBarComponentProps.x = item.id;\n } else {\n commonBarComponentProps.y = item.id;\n }\n\n return item.checked && <BarComponent key={item.id} {...commonBarComponentProps} />;\n })}\n </StackBar>\n {dataDefinitions.map((item) => item.checked && this.renderTrend(item.id))}\n </>\n );\n }\n\n return null;\n }\n\n renderTooltip(): React.ReactNode {\n const { data, groupKey, showTotalInTooltip, showTooltip, invertAxis, onClickHoverRect } =\n this.asProps;\n const { dataDefinitions } = this.state;\n\n if (!showTooltip) {\n return null;\n }\n\n return (\n <HoverRect.Tooltip\n x={invertAxis ? undefined : groupKey}\n y={invertAxis ? groupKey : undefined}\n wMin={100}\n onClick={onClickHoverRect}\n >\n {({ xIndex, yIndex }: any) => {\n const index = invertAxis ? yIndex : xIndex;\n const dataItem = data[index];\n const total = this.totalValue(dataItem);\n\n return {\n children: (\n <>\n <HoverRect.Tooltip.Title>{dataItem[groupKey]?.toString()}</HoverRect.Tooltip.Title>\n\n {dataDefinitions.map((item) => {\n return (\n item.checked && (\n <Flex justifyContent='space-between' key={item.id}>\n <HoverRect.Tooltip.Dot mr={4} color={item.color}>\n {item.label}\n </HoverRect.Tooltip.Dot>\n <Text bold>{this.tooltipValueFormatter(dataItem[item.id])}</Text>\n </Flex>\n )\n );\n })}\n\n {showTotalInTooltip === true && (\n <Flex mt={2} justifyContent='space-between'>\n <Box mr={4}>Total</Box>\n <Text bold>{total}</Text>\n </Flex>\n )}\n </>\n ),\n };\n }}\n </HoverRect.Tooltip>\n );\n }\n\n private handleClickBar = (\n _data: BarChartData[0],\n e: React.SyntheticEvent,\n barIndex: number,\n barKey: string,\n ) => {\n const { onClickBar } = this.asProps;\n\n if (onClickBar) {\n onClickBar(barIndex, barKey, e);\n }\n };\n\n private get categoryScale() {\n const {\n marginY = 40,\n marginX = 24,\n plotWidth,\n plotHeight,\n invertAxis,\n data,\n groupKey,\n } = this.asProps;\n\n const testItem = data[0][groupKey];\n const range = invertAxis\n ? [plotHeight - marginX, this.plotPadding]\n : [marginY, plotWidth - this.plotPadding];\n\n if (testItem instanceof Date && !Number.isNaN(testItem.getMilliseconds())) {\n const domain = minMax(data, groupKey);\n\n return scaleTime(domain, range);\n }\n\n const domain = data.map((item) => item[groupKey]);\n\n return scaleBand(domain, range).paddingInner(0.4).paddingOuter(0.2);\n }\n\n private get valueScale() {\n const { marginY = 40, marginX = 24, plotWidth, plotHeight, invertAxis, type } = this.asProps;\n\n const max = type === 'stack' ? super.maxStackedValue : Math.max(...super.flatValues);\n\n return scaleLinear()\n .range(\n invertAxis\n ? [marginY, plotWidth - this.plotPadding]\n : [plotHeight - marginX, this.plotPadding],\n )\n .domain([0, max]);\n }\n}\n\nexport const BarChart: BarChartType = createComponent(BarChartComponent);\n"],"mappings":"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"}
1
+ {"version":3,"file":"BarChart.js","names":["React","createComponent","scaleBand","scaleLinear","scaleTime","minMax","GroupBar","HoverRect","StackBar","Line","AbstractChart","Box","Flex","Text","localizedMessages","i18nEnhance","BarChartComponent","_AbstractChart","_inherits","_super","_createSuper","_this","_classCallCheck","_len","arguments","length","args","Array","_key","call","apply","concat","_defineProperty","_assertThisInitialized","_data","e","barIndex","barKey","onClickBar","asProps","_createClass","key","get","_this$asProps","xScale","invertAxis","valueScale","categoryScale","_this$asProps2","yScale","value","defaultLegendProps","props","trend","undefined","withTrend","renderTrend","_this$asProps3","groupKey","_this$asProps3$type","type","state","trendItem","createElement","data","x","y","color","style","strokeWidth","strokeDasharray","Dots","display","renderChart","_this2","_this$asProps4","_this$asProps4$type","_this$state","dataDefinitions","highlightedLine","item","BarComponent","HorizontalBar","Bar","Fragment","id","onClick","handleClickBar","map","index","commonBarComponentProps","transparent","checked","_extends","renderTooltip","_this3","_this$asProps5","showTotalInTooltip","showTooltip","onClickHoverRect","Tooltip","wMin","_ref","_dataItem$groupKey","xIndex","yIndex","dataItem","total","totalValue","children","Title","toString","justifyContent","Dot","mr","label","bold","tooltipValueFormatter","mt","getLegendAriaLabel","getI18nText","chartType","_this$asProps6","_this$asProps6$margin","marginY","_this$asProps6$margin2","marginX","plotWidth","plotHeight","testItem","range","plotPadding","Date","Number","isNaN","getMilliseconds","domain","paddingInner","paddingOuter","_this$asProps7","_this$asProps7$margin","_this$asProps7$margin2","max","_get","_getPrototypeOf","prototype","Math","_toConsumableArray","BarChart"],"sources":["../../../../src/component/Chart/BarChart.tsx"],"sourcesContent":["import React from 'react';\nimport createComponent from '@semcore/core';\nimport { BaseLegendProps } from './AbstractChart.type';\nimport { BarChartData, BarChartProps, BarChartType } from './BarChart.type';\nimport { scaleBand, scaleLinear, scaleTime } from 'd3-scale';\n// @ts-ignore\nimport { minMax, GroupBar, HoverRect, StackBar, Line } from '../..';\nimport { AbstractChart } from './AbstractChart';\nimport { BarProps } from '../../types';\nimport { Box, Flex } from '@semcore/flex-box';\nimport { Text } from '@semcore/typography';\nimport { LegendItemKey } from '../ChartLegend/LegendItem/LegendItem.type';\nimport { localizedMessages } from '../../translations/__intergalactic-dynamic-locales';\nimport i18nEnhance from '@semcore/utils/lib/enhances/i18nEnhance';\n\nclass BarChartComponent extends AbstractChart<\n BarChartData,\n BarChartProps,\n typeof BarChartComponent.enhance\n> {\n static displayName = 'Chart.Bar';\n\n static enhance = [i18nEnhance(localizedMessages)] as const;\n\n get xScale() {\n const { xScale, invertAxis } = this.asProps;\n\n if (xScale) {\n return xScale;\n }\n\n return invertAxis ? this.valueScale : this.categoryScale;\n }\n\n get yScale() {\n const { yScale, invertAxis } = this.asProps;\n\n if (yScale) {\n return yScale;\n }\n\n return invertAxis ? this.categoryScale : this.valueScale;\n }\n\n protected defaultLegendProps(): Partial<BaseLegendProps> {\n if (this.props.trend !== undefined) {\n return { withTrend: true };\n }\n\n return {};\n }\n\n renderTrend(key: LegendItemKey) {\n const { groupKey, type = 'group', invertAxis, trend } = this.asProps;\n const { withTrend } = this.state;\n const trendItem = trend?.[key];\n\n if (withTrend && trendItem) {\n return (\n <Line\n data={trendItem}\n key={`${key}_${groupKey}`}\n x={invertAxis ? 'y' : 'x'}\n y={invertAxis ? 'x' : 'y'}\n color={'wall'}\n style={{ strokeWidth: 3, strokeDasharray: 5 }}\n >\n <Line.Dots data={trendItem} display />\n </Line>\n );\n }\n\n return null;\n }\n\n renderChart() {\n const { groupKey, type = 'group', invertAxis } = this.asProps;\n const { dataDefinitions, highlightedLine } = this.state;\n\n if (dataDefinitions.length === 1) {\n const item = dataDefinitions[0];\n const BarComponent = invertAxis ? GroupBar.HorizontalBar : GroupBar.Bar;\n\n return (\n <>\n <BarComponent\n x={invertAxis ? item.id : groupKey}\n y={invertAxis ? groupKey : item.id}\n key={item.id}\n color={item.color}\n onClick={this.handleClickBar}\n />\n {this.renderTrend(item.id)}\n </>\n );\n }\n\n if (type === 'group') {\n return (\n <>\n <GroupBar x={invertAxis ? undefined : groupKey} y={invertAxis ? groupKey : undefined}>\n {dataDefinitions.map((item, index) => {\n const BarComponent = invertAxis ? GroupBar.HorizontalBar : GroupBar.Bar;\n\n const commonBarComponentProps: BarProps = {\n color: item.color,\n transparent: highlightedLine !== -1 && highlightedLine !== index,\n onClick: this.handleClickBar,\n };\n\n if (invertAxis) {\n commonBarComponentProps.x = item.id;\n } else {\n commonBarComponentProps.y = item.id;\n }\n\n return item.checked && <BarComponent key={item.id} {...commonBarComponentProps} />;\n })}\n </GroupBar>\n {dataDefinitions.map((item) => item.checked && this.renderTrend(item.id))}\n </>\n );\n }\n\n if (type === 'stack') {\n return (\n <>\n <StackBar x={invertAxis ? undefined : groupKey} y={invertAxis ? groupKey : undefined}>\n {dataDefinitions.map((item, index) => {\n const BarComponent = invertAxis ? StackBar.HorizontalBar : StackBar.Bar;\n\n const commonBarComponentProps: BarProps = {\n color: item.color,\n transparent: highlightedLine !== -1 && highlightedLine !== index,\n onClick: this.handleClickBar,\n };\n\n if (invertAxis) {\n commonBarComponentProps.x = item.id;\n } else {\n commonBarComponentProps.y = item.id;\n }\n\n return item.checked && <BarComponent key={item.id} {...commonBarComponentProps} />;\n })}\n </StackBar>\n {dataDefinitions.map((item) => item.checked && this.renderTrend(item.id))}\n </>\n );\n }\n\n return null;\n }\n\n renderTooltip(): React.ReactNode {\n const { data, groupKey, showTotalInTooltip, showTooltip, invertAxis, onClickHoverRect } =\n this.asProps;\n const { dataDefinitions } = this.state;\n\n if (!showTooltip) {\n return null;\n }\n\n return (\n <HoverRect.Tooltip\n x={invertAxis ? undefined : groupKey}\n y={invertAxis ? groupKey : undefined}\n wMin={100}\n onClick={onClickHoverRect}\n >\n {({ xIndex, yIndex }: any) => {\n const index = invertAxis ? yIndex : xIndex;\n const dataItem = data[index];\n const total = this.totalValue(dataItem);\n\n return {\n children: (\n <>\n <HoverRect.Tooltip.Title>{dataItem[groupKey]?.toString()}</HoverRect.Tooltip.Title>\n\n {dataDefinitions.map((item) => {\n return (\n item.checked && (\n <Flex justifyContent='space-between' key={item.id}>\n <HoverRect.Tooltip.Dot mr={4} color={item.color}>\n {item.label}\n </HoverRect.Tooltip.Dot>\n <Text bold>{this.tooltipValueFormatter(dataItem[item.id])}</Text>\n </Flex>\n )\n );\n })}\n\n {showTotalInTooltip === true && (\n <Flex mt={2} justifyContent='space-between'>\n <Box mr={4}>Total</Box>\n <Text bold>{total}</Text>\n </Flex>\n )}\n </>\n ),\n };\n }}\n </HoverRect.Tooltip>\n );\n }\n\n protected getLegendAriaLabel(): string {\n return this.asProps.getI18nText('legendForChart', { chartType: 'Bar' });\n }\n\n private handleClickBar = (\n _data: BarChartData[0],\n e: React.SyntheticEvent,\n barIndex: number,\n barKey: string,\n ) => {\n const { onClickBar } = this.asProps;\n\n if (onClickBar) {\n onClickBar(barIndex, barKey, e);\n }\n };\n\n private get categoryScale() {\n const {\n marginY = 40,\n marginX = 24,\n plotWidth,\n plotHeight,\n invertAxis,\n data,\n groupKey,\n } = this.asProps;\n\n const testItem = data[0][groupKey];\n const range = invertAxis\n ? [plotHeight - marginX, this.plotPadding]\n : [marginY, plotWidth - this.plotPadding];\n\n if (testItem instanceof Date && !Number.isNaN(testItem.getMilliseconds())) {\n const domain = minMax(data, groupKey);\n\n return scaleTime(domain, range);\n }\n\n const domain = data.map((item) => item[groupKey]);\n\n return scaleBand(domain, range).paddingInner(0.4).paddingOuter(0.2);\n }\n\n private get valueScale() {\n const { marginY = 40, marginX = 24, plotWidth, plotHeight, invertAxis, type } = this.asProps;\n\n const max = type === 'stack' ? super.maxStackedValue : Math.max(...super.flatValues);\n\n return scaleLinear()\n .range(\n invertAxis\n ? [marginY, plotWidth - this.plotPadding]\n : [plotHeight - marginX, this.plotPadding],\n )\n .domain([0, max]);\n }\n}\n\nexport const BarChart: BarChartType = createComponent(BarChartComponent);\n"],"mappings":"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"}
@@ -10,6 +10,8 @@ import { scaleLinear } from 'd3-scale';
10
10
  import { Bubble, calculateBubbleDomain } from '../..';
11
11
  import { AbstractChart } from './AbstractChart';
12
12
  import { Text } from '@semcore/typography';
13
+ import { localizedMessages } from '../../translations/__intergalactic-dynamic-locales';
14
+ import i18nEnhance from '@semcore/utils/lib/enhances/i18nEnhance';
13
15
  var BubbleChartComponent = /*#__PURE__*/function (_AbstractChart) {
14
16
  _inherits(BubbleChartComponent, _AbstractChart);
15
17
  var _super = _createSuper(BubbleChartComponent);
@@ -128,9 +130,17 @@ var BubbleChartComponent = /*#__PURE__*/function (_AbstractChart) {
128
130
  };
129
131
  });
130
132
  }
133
+ }, {
134
+ key: "getLegendAriaLabel",
135
+ value: function getLegendAriaLabel() {
136
+ return this.asProps.getI18nText('legendForChart', {
137
+ chartType: 'Bubble'
138
+ });
139
+ }
131
140
  }]);
132
141
  return BubbleChartComponent;
133
142
  }(AbstractChart);
134
143
  _defineProperty(BubbleChartComponent, "displayName", 'Chart.Bubble');
144
+ _defineProperty(BubbleChartComponent, "enhance", [i18nEnhance(localizedMessages)]);
135
145
  export var BubbleChart = createComponent(BubbleChartComponent);
136
146
  //# sourceMappingURL=BubbleChart.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"BubbleChart.js","names":["React","createComponent","scaleLinear","Bubble","calculateBubbleDomain","AbstractChart","Text","BubbleChartComponent","_AbstractChart","_inherits","_super","_createSuper","_classCallCheck","apply","arguments","_createClass","key","get","data","props","map","_","index","toString","value","getDefaultDataDefinitions","_this","_this$props","legendProps","item","_legendProps$legendMa","_ref","_legendData$label","_legendData$icon","_legendData$defaultCh","legendData","legendMap","color","undefined","resolveColor","dataDefinition","id","label","icon","checked","defaultChecked","columns","additionalInfo","count","_this$asProps","asProps","xScale","_this$asProps$marginY","marginY","plotWidth","range","plotPadding","domain","_this$asProps2","yScale","_this$asProps2$margin","marginX","plotHeight","defaultLegendProps","shape","renderChart","createElement","x","y","renderTooltip","showTooltip","Tooltip","_ref2","children","Fragment","Title","tag","_defineProperty","BubbleChart"],"sources":["../../../../src/component/Chart/BubbleChart.tsx"],"sourcesContent":["import React from 'react';\nimport createComponent from '@semcore/core';\nimport { scaleLinear, ScaleLinear } from 'd3-scale';\n// @ts-ignore\nimport { Bubble, calculateBubbleDomain } from '../..';\nimport { AbstractChart } from './AbstractChart';\nimport { BubbleChartData, BubbleChartProps, BubbleChartType } from './BubbleChart.type';\nimport { Text } from '@semcore/typography';\nimport { LegendItem } from '../ChartLegend/LegendItem/LegendItem.type';\n\nclass BubbleChartComponent extends AbstractChart<BubbleChartData, BubbleChartProps> {\n static displayName = 'Chart.Bubble';\n\n protected get dataKeys(): string[] {\n const { data } = this.props;\n\n return data.map((_, index) => index.toString());\n }\n\n protected override getDefaultDataDefinitions(): Array<\n LegendItem & { columns: React.ReactNode[] }\n > {\n const { legendProps, data } = this.props;\n\n return data.map((item, index) => {\n const key = index.toString();\n const legendData = legendProps?.legendMap?.[key];\n\n if (item.color === undefined) {\n item.color = this.resolveColor(key, index);\n }\n\n const dataDefinition: LegendItem & { columns: React.ReactNode[] } = {\n id: key,\n label: legendData?.label ?? item.label ?? key,\n icon: legendData?.icon ?? undefined,\n checked: legendData?.defaultChecked ?? true,\n color: item.color,\n columns: [],\n };\n\n if (legendData?.additionalInfo || legendData?.count) {\n dataDefinition.additionalInfo = legendData.additionalInfo\n ? { label: legendData.additionalInfo }\n : legendData.count\n ? { count: legendData.count }\n : undefined;\n }\n\n return dataDefinition;\n });\n }\n\n get xScale() {\n const { xScale, marginY = 30, plotWidth, data } = this.asProps;\n\n if (xScale) {\n return xScale;\n }\n\n const range = [marginY, plotWidth - this.plotPadding];\n const domain = calculateBubbleDomain(data, 'x', range);\n\n return scaleLinear().domain(domain).range(range);\n }\n\n get yScale(): ScaleLinear<any, any> {\n const { yScale, marginX = 30, plotHeight, data } = this.asProps;\n\n if (yScale) {\n return yScale;\n }\n\n const range = [plotHeight - marginX, this.plotPadding];\n const domain = calculateBubbleDomain(data, 'y', range);\n\n return scaleLinear().domain(domain).range(range);\n }\n\n defaultLegendProps() {\n return {\n shape: 'Circle' as const,\n };\n }\n\n renderChart() {\n return <Bubble x='x' y='y' value='value' color={'color'} label={'label'} />;\n }\n\n renderTooltip() {\n const { showTooltip } = this.asProps;\n\n if (!showTooltip) {\n return null;\n }\n\n return (\n <Bubble.Tooltip>\n {({ index, data }: any) => {\n return {\n children: (\n <>\n <Bubble.Tooltip.Title>Data</Bubble.Tooltip.Title>\n <Text tag='div'>X axis {data[index].x}</Text>\n <Text tag='div'>Y axis {data[index].y}</Text>\n <Text tag='div'>Value {data[index].value}</Text>\n </>\n ),\n };\n }}\n </Bubble.Tooltip>\n );\n }\n}\n\nexport const BubbleChart: BubbleChartType = createComponent(BubbleChartComponent);\n"],"mappings":";;;;;AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,OAAOC,eAAe,MAAM,eAAe;AAC3C,SAASC,WAAW,QAAqB,UAAU;AACnD;AACA,SAASC,MAAM,EAAEC,qBAAqB,QAAQ,OAAO;AACrD,SAASC,aAAa,QAAQ,iBAAiB;AAE/C,SAASC,IAAI,QAAQ,qBAAqB;AAAC,IAGrCC,oBAAoB,0BAAAC,cAAA;EAAAC,SAAA,CAAAF,oBAAA,EAAAC,cAAA;EAAA,IAAAE,MAAA,GAAAC,YAAA,CAAAJ,oBAAA;EAAA,SAAAA,qBAAA;IAAAK,eAAA,OAAAL,oBAAA;IAAA,OAAAG,MAAA,CAAAG,KAAA,OAAAC,SAAA;EAAA;EAAAC,YAAA,CAAAR,oBAAA;IAAAS,GAAA;IAAAC,GAAA,EAGxB,SAAAA,IAAA,EAAmC;MACjC,IAAQC,IAAI,GAAK,IAAI,CAACC,KAAK,CAAnBD,IAAI;MAEZ,OAAOA,IAAI,CAACE,GAAG,CAAC,UAACC,CAAC,EAAEC,KAAK;QAAA,OAAKA,KAAK,CAACC,QAAQ,EAAE;MAAA,EAAC;IACjD;EAAC;IAAAP,GAAA;IAAAQ,KAAA,EAED,SAAAC,0BAAA,EAEE;MAAA,IAAAC,KAAA;MACA,IAAAC,WAAA,GAA8B,IAAI,CAACR,KAAK;QAAhCS,WAAW,GAAAD,WAAA,CAAXC,WAAW;QAAEV,IAAI,GAAAS,WAAA,CAAJT,IAAI;MAEzB,OAAOA,IAAI,CAACE,GAAG,CAAC,UAACS,IAAI,EAAEP,KAAK,EAAK;QAAA,IAAAQ,qBAAA,EAAAC,IAAA,EAAAC,iBAAA,EAAAC,gBAAA,EAAAC,qBAAA;QAC/B,IAAMlB,GAAG,GAAGM,KAAK,CAACC,QAAQ,EAAE;QAC5B,IAAMY,UAAU,GAAGP,WAAW,aAAXA,WAAW,wBAAAE,qBAAA,GAAXF,WAAW,CAAEQ,SAAS,cAAAN,qBAAA,uBAAtBA,qBAAA,CAAyBd,GAAG,CAAC;QAEhD,IAAIa,IAAI,CAACQ,KAAK,KAAKC,SAAS,EAAE;UAC5BT,IAAI,CAACQ,KAAK,GAAGX,KAAI,CAACa,YAAY,CAACvB,GAAG,EAAEM,KAAK,CAAC;QAC5C;QAEA,IAAMkB,cAA2D,GAAG;UAClEC,EAAE,EAAEzB,GAAG;UACP0B,KAAK,GAAAX,IAAA,IAAAC,iBAAA,GAAEG,UAAU,aAAVA,UAAU,uBAAVA,UAAU,CAAEO,KAAK,cAAAV,iBAAA,cAAAA,iBAAA,GAAIH,IAAI,CAACa,KAAK,cAAAX,IAAA,cAAAA,IAAA,GAAIf,GAAG;UAC7C2B,IAAI,GAAAV,gBAAA,GAAEE,UAAU,aAAVA,UAAU,uBAAVA,UAAU,CAAEQ,IAAI,cAAAV,gBAAA,cAAAA,gBAAA,GAAIK,SAAS;UACnCM,OAAO,GAAAV,qBAAA,GAAEC,UAAU,aAAVA,UAAU,uBAAVA,UAAU,CAAEU,cAAc,cAAAX,qBAAA,cAAAA,qBAAA,GAAI,IAAI;UAC3CG,KAAK,EAAER,IAAI,CAACQ,KAAK;UACjBS,OAAO,EAAE;QACX,CAAC;QAED,IAAIX,UAAU,aAAVA,UAAU,eAAVA,UAAU,CAAEY,cAAc,IAAIZ,UAAU,aAAVA,UAAU,eAAVA,UAAU,CAAEa,KAAK,EAAE;UACnDR,cAAc,CAACO,cAAc,GAAGZ,UAAU,CAACY,cAAc,GACrD;YAAEL,KAAK,EAAEP,UAAU,CAACY;UAAe,CAAC,GACpCZ,UAAU,CAACa,KAAK,GAChB;YAAEA,KAAK,EAAEb,UAAU,CAACa;UAAM,CAAC,GAC3BV,SAAS;QACf;QAEA,OAAOE,cAAc;MACvB,CAAC,CAAC;IACJ;EAAC;IAAAxB,GAAA;IAAAC,GAAA,EAED,SAAAA,IAAA,EAAa;MACX,IAAAgC,aAAA,GAAkD,IAAI,CAACC,OAAO;QAAtDC,MAAM,GAAAF,aAAA,CAANE,MAAM;QAAAC,qBAAA,GAAAH,aAAA,CAAEI,OAAO;QAAPA,OAAO,GAAAD,qBAAA,cAAG,EAAE,GAAAA,qBAAA;QAAEE,SAAS,GAAAL,aAAA,CAATK,SAAS;QAAEpC,IAAI,GAAA+B,aAAA,CAAJ/B,IAAI;MAE7C,IAAIiC,MAAM,EAAE;QACV,OAAOA,MAAM;MACf;MAEA,IAAMI,KAAK,GAAG,CAACF,OAAO,EAAEC,SAAS,GAAG,IAAI,CAACE,WAAW,CAAC;MACrD,IAAMC,MAAM,GAAGrD,qBAAqB,CAACc,IAAI,EAAE,GAAG,EAAEqC,KAAK,CAAC;MAEtD,OAAOrD,WAAW,EAAE,CAACuD,MAAM,CAACA,MAAM,CAAC,CAACF,KAAK,CAACA,KAAK,CAAC;IAClD;EAAC;IAAAvC,GAAA;IAAAC,GAAA,EAED,SAAAA,IAAA,EAAoC;MAClC,IAAAyC,cAAA,GAAmD,IAAI,CAACR,OAAO;QAAvDS,MAAM,GAAAD,cAAA,CAANC,MAAM;QAAAC,qBAAA,GAAAF,cAAA,CAAEG,OAAO;QAAPA,OAAO,GAAAD,qBAAA,cAAG,EAAE,GAAAA,qBAAA;QAAEE,UAAU,GAAAJ,cAAA,CAAVI,UAAU;QAAE5C,IAAI,GAAAwC,cAAA,CAAJxC,IAAI;MAE9C,IAAIyC,MAAM,EAAE;QACV,OAAOA,MAAM;MACf;MAEA,IAAMJ,KAAK,GAAG,CAACO,UAAU,GAAGD,OAAO,EAAE,IAAI,CAACL,WAAW,CAAC;MACtD,IAAMC,MAAM,GAAGrD,qBAAqB,CAACc,IAAI,EAAE,GAAG,EAAEqC,KAAK,CAAC;MAEtD,OAAOrD,WAAW,EAAE,CAACuD,MAAM,CAACA,MAAM,CAAC,CAACF,KAAK,CAACA,KAAK,CAAC;IAClD;EAAC;IAAAvC,GAAA;IAAAQ,KAAA,EAED,SAAAuC,mBAAA,EAAqB;MACnB,OAAO;QACLC,KAAK,EAAE;MACT,CAAC;IACH;EAAC;IAAAhD,GAAA;IAAAQ,KAAA,EAED,SAAAyC,YAAA,EAAc;MACZ,oBAAOjE,KAAA,CAAAkE,aAAA,CAAC/D,MAAM;QAACgE,CAAC,EAAC,GAAG;QAACC,CAAC,EAAC,GAAG;QAAC5C,KAAK,EAAC,OAAO;QAACa,KAAK,EAAE,OAAQ;QAACK,KAAK,EAAE;MAAQ,EAAG;IAC7E;EAAC;IAAA1B,GAAA;IAAAQ,KAAA,EAED,SAAA6C,cAAA,EAAgB;MACd,IAAQC,WAAW,GAAK,IAAI,CAACpB,OAAO,CAA5BoB,WAAW;MAEnB,IAAI,CAACA,WAAW,EAAE;QAChB,OAAO,IAAI;MACb;MAEA,oBACEtE,KAAA,CAAAkE,aAAA,CAAC/D,MAAM,CAACoE,OAAO,QACZ,UAAAC,KAAA,EAA0B;QAAA,IAAvBlD,KAAK,GAAAkD,KAAA,CAALlD,KAAK;UAAEJ,IAAI,GAAAsD,KAAA,CAAJtD,IAAI;QACb,OAAO;UACLuD,QAAQ,eACNzE,KAAA,CAAAkE,aAAA,CAAAlE,KAAA,CAAA0E,QAAA,qBACE1E,KAAA,CAAAkE,aAAA,CAAC/D,MAAM,CAACoE,OAAO,CAACI,KAAK,QAAC,MAAI,CAAuB,eACjD3E,KAAA,CAAAkE,aAAA,CAAC5D,IAAI;YAACsE,GAAG,EAAC;UAAK,GAAC,SAAO,EAAC1D,IAAI,CAACI,KAAK,CAAC,CAAC6C,CAAC,CAAQ,eAC7CnE,KAAA,CAAAkE,aAAA,CAAC5D,IAAI;YAACsE,GAAG,EAAC;UAAK,GAAC,SAAO,EAAC1D,IAAI,CAACI,KAAK,CAAC,CAAC8C,CAAC,CAAQ,eAC7CpE,KAAA,CAAAkE,aAAA,CAAC5D,IAAI;YAACsE,GAAG,EAAC;UAAK,GAAC,QAAM,EAAC1D,IAAI,CAACI,KAAK,CAAC,CAACE,KAAK,CAAQ;QAGtD,CAAC;MACH,CAAC,CACc;IAErB;EAAC;EAAA,OAAAjB,oBAAA;AAAA,EAtGgCF,aAAa;AAAAwE,eAAA,CAA1CtE,oBAAoB,iBACH,cAAc;AAwGrC,OAAO,IAAMuE,WAA4B,GAAG7E,eAAe,CAACM,oBAAoB,CAAC"}
1
+ {"version":3,"file":"BubbleChart.js","names":["React","createComponent","scaleLinear","Bubble","calculateBubbleDomain","AbstractChart","Text","localizedMessages","i18nEnhance","BubbleChartComponent","_AbstractChart","_inherits","_super","_createSuper","_classCallCheck","apply","arguments","_createClass","key","get","data","props","map","_","index","toString","value","getDefaultDataDefinitions","_this","_this$props","legendProps","item","_legendProps$legendMa","_ref","_legendData$label","_legendData$icon","_legendData$defaultCh","legendData","legendMap","color","undefined","resolveColor","dataDefinition","id","label","icon","checked","defaultChecked","columns","additionalInfo","count","_this$asProps","asProps","xScale","_this$asProps$marginY","marginY","plotWidth","range","plotPadding","domain","_this$asProps2","yScale","_this$asProps2$margin","marginX","plotHeight","defaultLegendProps","shape","renderChart","createElement","x","y","renderTooltip","showTooltip","Tooltip","_ref2","children","Fragment","Title","tag","getLegendAriaLabel","getI18nText","chartType","_defineProperty","BubbleChart"],"sources":["../../../../src/component/Chart/BubbleChart.tsx"],"sourcesContent":["import React from 'react';\nimport createComponent from '@semcore/core';\nimport { scaleLinear, ScaleLinear } from 'd3-scale';\n// @ts-ignore\nimport { Bubble, calculateBubbleDomain } from '../..';\nimport { AbstractChart } from './AbstractChart';\nimport { BubbleChartData, BubbleChartProps, BubbleChartType } from './BubbleChart.type';\nimport { Text } from '@semcore/typography';\nimport { LegendItem } from '../ChartLegend/LegendItem/LegendItem.type';\nimport { localizedMessages } from '../../translations/__intergalactic-dynamic-locales';\nimport i18nEnhance from '@semcore/utils/lib/enhances/i18nEnhance';\n\nclass BubbleChartComponent extends AbstractChart<\n BubbleChartData,\n BubbleChartProps,\n typeof BubbleChartComponent.enhance\n> {\n static displayName = 'Chart.Bubble';\n\n static enhance = [i18nEnhance(localizedMessages)] as const;\n\n protected get dataKeys(): string[] {\n const { data } = this.props;\n\n return data.map((_, index) => index.toString());\n }\n\n protected override getDefaultDataDefinitions(): Array<\n LegendItem & { columns: React.ReactNode[] }\n > {\n const { legendProps, data } = this.props;\n\n return data.map((item, index) => {\n const key = index.toString();\n const legendData = legendProps?.legendMap?.[key];\n\n if (item.color === undefined) {\n item.color = this.resolveColor(key, index);\n }\n\n const dataDefinition: LegendItem & { columns: React.ReactNode[] } = {\n id: key,\n label: legendData?.label ?? item.label ?? key,\n icon: legendData?.icon ?? undefined,\n checked: legendData?.defaultChecked ?? true,\n color: item.color,\n columns: [],\n };\n\n if (legendData?.additionalInfo || legendData?.count) {\n dataDefinition.additionalInfo = legendData.additionalInfo\n ? { label: legendData.additionalInfo }\n : legendData.count\n ? { count: legendData.count }\n : undefined;\n }\n\n return dataDefinition;\n });\n }\n\n get xScale() {\n const { xScale, marginY = 30, plotWidth, data } = this.asProps;\n\n if (xScale) {\n return xScale;\n }\n\n const range = [marginY, plotWidth - this.plotPadding];\n const domain = calculateBubbleDomain(data, 'x', range);\n\n return scaleLinear().domain(domain).range(range);\n }\n\n get yScale(): ScaleLinear<any, any> {\n const { yScale, marginX = 30, plotHeight, data } = this.asProps;\n\n if (yScale) {\n return yScale;\n }\n\n const range = [plotHeight - marginX, this.plotPadding];\n const domain = calculateBubbleDomain(data, 'y', range);\n\n return scaleLinear().domain(domain).range(range);\n }\n\n defaultLegendProps() {\n return {\n shape: 'Circle' as const,\n };\n }\n\n renderChart() {\n return <Bubble x='x' y='y' value='value' color={'color'} label={'label'} />;\n }\n\n renderTooltip() {\n const { showTooltip } = this.asProps;\n\n if (!showTooltip) {\n return null;\n }\n\n return (\n <Bubble.Tooltip>\n {({ index, data }: any) => {\n return {\n children: (\n <>\n <Bubble.Tooltip.Title>Data</Bubble.Tooltip.Title>\n <Text tag='div'>X axis {data[index].x}</Text>\n <Text tag='div'>Y axis {data[index].y}</Text>\n <Text tag='div'>Value {data[index].value}</Text>\n </>\n ),\n };\n }}\n </Bubble.Tooltip>\n );\n }\n\n protected getLegendAriaLabel(): string {\n return this.asProps.getI18nText('legendForChart', { chartType: 'Bubble' });\n }\n}\n\nexport const BubbleChart: BubbleChartType = createComponent(BubbleChartComponent);\n"],"mappings":"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"}