@semcore/d3-chart 17.0.0-prerelease.34 → 17.0.0-prerelease.37
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.
- package/CHANGELOG.md +1 -1
- package/lib/cjs/a11y/PlotA11yView.js +5 -5
- package/lib/cjs/a11y/PlotA11yView.js.map +1 -1
- package/lib/es6/a11y/PlotA11yView.js +4 -3
- package/lib/es6/a11y/PlotA11yView.js.map +1 -1
- package/lib/esm/AnimatedClipPath.mjs +1 -1
- package/lib/esm/Area.mjs +1 -2
- package/lib/esm/Axis.mjs +4 -7
- package/lib/esm/Bar.mjs +1 -2
- package/lib/esm/Bubble.mjs +3 -5
- package/lib/esm/CompactHorizontalBar.mjs +4 -4
- package/lib/esm/Donut.mjs +5 -4
- package/lib/esm/Dots.mjs +1 -2
- package/lib/esm/HorizontalBar.mjs +1 -2
- package/lib/esm/Hover.mjs +2 -3
- package/lib/esm/Line.mjs +2 -3
- package/lib/esm/Pattern.mjs +6 -7
- package/lib/esm/Plot.mjs +3 -5
- package/lib/esm/Radar.mjs +7 -10
- package/lib/esm/RadialTree.mjs +17 -63
- package/lib/esm/Reference.mjs +0 -1
- package/lib/esm/ResponsiveContainer.mjs +3 -5
- package/lib/esm/ScatterPlot.mjs +2 -2
- package/lib/esm/StackBar.mjs +2 -2
- package/lib/esm/StackedArea.mjs +2 -2
- package/lib/esm/Tooltip.mjs +5 -8
- package/lib/esm/Venn.mjs +3 -3
- package/lib/esm/a11y/DataAccessibilityTable.mjs +2 -4
- package/lib/esm/a11y/PlotA11yModule.mjs +2 -2
- package/lib/esm/a11y/PlotA11yView.mjs +11 -19
- package/lib/esm/a11y/focus.mjs +2 -2
- package/lib/esm/a11y/hints.mjs +3 -3
- package/lib/esm/a11y/insights.mjs +15 -20
- package/lib/esm/a11y/intl.mjs +1 -1
- package/lib/esm/a11y/locale.mjs +1 -2
- package/lib/esm/a11y/serialize.mjs +17 -17
- package/lib/esm/component/Chart/AbstractChart.mjs +15 -17
- package/lib/esm/component/Chart/AreaChart.mjs +5 -4
- package/lib/esm/component/Chart/BarChart.mjs +4 -3
- package/lib/esm/component/Chart/BubbleChart.mjs +8 -8
- package/lib/esm/component/Chart/CigaretteChart.mjs +6 -6
- package/lib/esm/component/Chart/CompactHorizontalBarChart.mjs +2 -1
- package/lib/esm/component/Chart/DonutChart.mjs +3 -2
- package/lib/esm/component/Chart/HistogramChart.mjs +5 -4
- package/lib/esm/component/Chart/LineChart.mjs +5 -4
- package/lib/esm/component/Chart/RadarChart.mjs +4 -5
- package/lib/esm/component/Chart/ScatterPlotChart.mjs +3 -2
- package/lib/esm/component/Chart/VennChart.mjs +3 -3
- package/lib/esm/component/ChartLegend/BaseLegend.mjs +9 -14
- package/lib/esm/component/ChartLegend/LegendFlex/LegendFlex.mjs +1 -2
- package/lib/esm/component/ChartLegend/LegendItem/LegendItem.mjs +1 -2
- package/lib/esm/component/ChartLegend/LegendTable/LegendTable.mjs +2 -4
- package/lib/esm/component/ChartLegend/index.mjs +2 -0
- package/lib/esm/component/Cigarette/Cigarette.mjs +1 -2
- package/lib/esm/component/StackGroupBar/StackGroupBar.mjs +2 -3
- package/lib/esm/createElement.mjs +1 -1
- package/lib/esm/index.mjs +1 -0
- package/lib/esm/utils.mjs +2 -2
- package/lib/types/a11y/PlotA11yView.d.ts +1 -1
- package/package.json +14 -14
package/CHANGELOG.md
CHANGED
|
@@ -4,7 +4,7 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
|
|
|
4
4
|
Object.defineProperty(exports, "__esModule", {
|
|
5
5
|
value: true
|
|
6
6
|
});
|
|
7
|
-
exports.PlotA11yView =
|
|
7
|
+
exports.PlotA11yView = PlotA11yView;
|
|
8
8
|
var _core = require("@semcore/core");
|
|
9
9
|
var _baseComponents = require("@semcore/base-components");
|
|
10
10
|
var _i18nEnhance = require("@semcore/core/lib/utils/enhances/i18nEnhance");
|
|
@@ -21,7 +21,7 @@ const styles = (/*__reshadow_css_start__*/_core.sstyled.insert(/*__inner_css_sta
|
|
|
21
21
|
{
|
|
22
22
|
"__SPlotA11yView": "___SPlotA11yView_9ugu2_gg_"
|
|
23
23
|
});
|
|
24
|
-
|
|
24
|
+
function PlotA11yView({
|
|
25
25
|
id,
|
|
26
26
|
payload: providedData,
|
|
27
27
|
hints,
|
|
@@ -31,7 +31,7 @@ const PlotA11yView = ({
|
|
|
31
31
|
config: providedConfig,
|
|
32
32
|
locale,
|
|
33
33
|
onCloseHandler
|
|
34
|
-
})
|
|
34
|
+
}) {
|
|
35
35
|
var _ref = arguments[0],
|
|
36
36
|
_ref2;
|
|
37
37
|
const SPlotA11yView = _baseComponents.Box;
|
|
@@ -157,6 +157,6 @@ const PlotA11yView = ({
|
|
|
157
157
|
"config": config,
|
|
158
158
|
"intl": intl
|
|
159
159
|
})));
|
|
160
|
-
}
|
|
161
|
-
|
|
160
|
+
}
|
|
161
|
+
;
|
|
162
162
|
//# sourceMappingURL=PlotA11yView.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PlotA11yView.js","names":["_core","require","_baseComponents","_i18nEnhance","_react","_interopRequireDefault","_DataAccessibilityTable","_focus","_hints","_intl","_summarize","_intergalacticDynamicLocales","styles","sstyled","insert","PlotA11yView","id","payload","providedData","hints","plotLabel","triggerRef","plotRef","config","providedConfig","locale","onCloseHandler","_ref","arguments[0]","_ref2","SPlotA11yView","Box","translations","useAsyncI18nMessages","localizedMessages","intl","React","useMemo","getIntl","makeDataSummarizationConfig","data","Array","isArray","rootRef","useRef","summary","setSummary","useState","generatingSummary","setGeneratingSummary","useEffect","current","focus","focusOutHandler","event","relatedTarget","requestIdleCallback","HTMLElement","contains","addEventListener","removeEventListener","disable","override","setTimeout","summarize","handleClose","useCallback","handleSkip","preventDefault","heavyFindNextFocusableElement","handleSkipKeyboard","key","handleGoToTable","dataTableRef","handleGoToTableKeyboard","texts","label","formatMessage","close","skipPlot","goToTable","summaryPlaceholder","table","default","createElement","cn","assignProps","DataAccessibilityTable","exports"],"sources":["../../../src/a11y/PlotA11yView.tsx"],"sourcesContent":["import { Box } from '@semcore/base-components';\nimport { Root, sstyled } from '@semcore/core';\nimport { useAsyncI18nMessages } from '@semcore/core/lib/utils/enhances/i18nEnhance';\nimport React from 'react';\n\nimport { DataAccessibilityTable } from './DataAccessibilityTable';\nimport { heavyFindNextFocusableElement } from './focus';\nimport { makeDataSummarizationConfig } from './hints';\nimport type { DataStructureHints, PartialDataSummarizationConfig } from './hints';\nimport { getIntl } from './intl';\nimport { summarize } from './summarize';\nimport styles from '../style/plotA11yView.shadow.css';\nimport { localizedMessages } from './translations/view/__intergalactic-dynamic-locales';\n\nexport type A11yViewProps = {\n id: string;\n payload: Record<string, unknown>[];\n hints: DataStructureHints;\n plotLabel: string;\n locale: NavigatorLanguage['language'];\n config: PartialDataSummarizationConfig;\n\n plotRef: React.RefObject<HTMLElement>;\n triggerRef: React.RefObject<HTMLElement>;\n onCloseHandler: () => void;\n};\n\nexport const PlotA11yView: React.FC<A11yViewProps> = ({\n id,\n payload: providedData,\n hints,\n plotLabel,\n triggerRef,\n plotRef,\n config: providedConfig,\n locale,\n onCloseHandler,\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 const rootRef = React.useRef<HTMLDivElement>(null);\n\n const [summary, setSummary] = React.useState<string | null>(null);\n const [generatingSummary, setGeneratingSummary] = React.useState(true);\n\n React.useEffect(() => {\n rootRef.current?.focus();\n\n function focusOutHandler(event: FocusEvent) {\n if (event.relatedTarget === null) {\n return requestIdleCallback(onCloseHandler);\n }\n\n if (!(event.relatedTarget instanceof HTMLElement)) return;\n\n if (rootRef.current?.contains(event.relatedTarget)) return;\n\n requestIdleCallback(onCloseHandler);\n }\n\n rootRef.current?.addEventListener('focusout', focusOutHandler);\n return () => rootRef.current?.removeEventListener('focusout', focusOutHandler);\n }, []);\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 onCloseHandler();\n\n requestIdleCallback(() => {\n triggerRef.current?.focus();\n });\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 onCloseHandler();\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 ref={rootRef}\n >\n <button type='button' onClick={handleClose}>\n {texts.close}\n </button>\n <a href='#' onKeyDown={handleSkipKeyboard} onClick={handleSkip}>\n {texts.skipPlot}\n </a>\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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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"PlotA11yView.js","names":["_core","require","_baseComponents","_i18nEnhance","_react","_interopRequireDefault","_DataAccessibilityTable","_focus","_hints","_intl","_summarize","_intergalacticDynamicLocales","styles","sstyled","insert","PlotA11yView","id","payload","providedData","hints","plotLabel","triggerRef","plotRef","config","providedConfig","locale","onCloseHandler","_ref","arguments[0]","_ref2","SPlotA11yView","Box","translations","useAsyncI18nMessages","localizedMessages","intl","React","useMemo","getIntl","makeDataSummarizationConfig","data","Array","isArray","rootRef","useRef","summary","setSummary","useState","generatingSummary","setGeneratingSummary","useEffect","current","focus","focusOutHandler","event","relatedTarget","requestIdleCallback","HTMLElement","contains","addEventListener","removeEventListener","disable","override","setTimeout","summarize","handleClose","useCallback","handleSkip","preventDefault","heavyFindNextFocusableElement","handleSkipKeyboard","key","handleGoToTable","dataTableRef","handleGoToTableKeyboard","texts","label","formatMessage","close","skipPlot","goToTable","summaryPlaceholder","table","default","createElement","cn","assignProps","DataAccessibilityTable"],"sources":["../../../src/a11y/PlotA11yView.tsx"],"sourcesContent":["import { Box } from '@semcore/base-components';\nimport { Root, sstyled } from '@semcore/core';\nimport { useAsyncI18nMessages } from '@semcore/core/lib/utils/enhances/i18nEnhance';\nimport React from 'react';\n\nimport { DataAccessibilityTable } from './DataAccessibilityTable';\nimport { heavyFindNextFocusableElement } from './focus';\nimport { makeDataSummarizationConfig } from './hints';\nimport type { DataStructureHints, PartialDataSummarizationConfig } from './hints';\nimport { getIntl } from './intl';\nimport { summarize } from './summarize';\nimport styles from '../style/plotA11yView.shadow.css';\nimport { localizedMessages } from './translations/view/__intergalactic-dynamic-locales';\n\nexport type A11yViewProps = {\n id: string;\n payload: Record<string, unknown>[];\n hints: DataStructureHints;\n plotLabel: string;\n locale: NavigatorLanguage['language'];\n config: PartialDataSummarizationConfig;\n\n plotRef: React.RefObject<HTMLElement>;\n triggerRef: React.RefObject<HTMLElement>;\n onCloseHandler: () => void;\n};\n\nexport function PlotA11yView({\n id,\n payload: providedData,\n hints,\n plotLabel,\n triggerRef,\n plotRef,\n config: providedConfig,\n locale,\n onCloseHandler,\n}: A11yViewProps) {\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 const rootRef = React.useRef<HTMLDivElement>(null);\n\n const [summary, setSummary] = React.useState<string | null>(null);\n const [generatingSummary, setGeneratingSummary] = React.useState(true);\n\n React.useEffect(() => {\n rootRef.current?.focus();\n\n function focusOutHandler(event: FocusEvent) {\n if (event.relatedTarget === null) {\n return requestIdleCallback(onCloseHandler);\n }\n\n if (!(event.relatedTarget instanceof HTMLElement)) return;\n\n if (rootRef.current?.contains(event.relatedTarget)) return;\n\n requestIdleCallback(onCloseHandler);\n }\n\n rootRef.current?.addEventListener('focusout', focusOutHandler);\n return () => rootRef.current?.removeEventListener('focusout', focusOutHandler);\n }, []);\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 onCloseHandler();\n\n requestIdleCallback(() => {\n triggerRef.current?.focus();\n });\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 onCloseHandler();\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 ref={rootRef}\n >\n <button type='button' onClick={handleClose}>\n {texts.close}\n </button>\n <a href='#' onKeyDown={handleSkipKeyboard} onClick={handleSkip}>\n {texts.skipPlot}\n </a>\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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","ignoreList":[]}
|
|
@@ -16,7 +16,7 @@ const styles = (/*__reshadow_css_start__*/_sstyled.insert(/*__inner_css_start__*
|
|
|
16
16
|
"__SPlotA11yView": "___SPlotA11yView_9ugu2_gg_"
|
|
17
17
|
});
|
|
18
18
|
import { localizedMessages } from './translations/view/__intergalactic-dynamic-locales';
|
|
19
|
-
export
|
|
19
|
+
export function PlotA11yView({
|
|
20
20
|
id,
|
|
21
21
|
payload: providedData,
|
|
22
22
|
hints,
|
|
@@ -26,7 +26,7 @@ export const PlotA11yView = ({
|
|
|
26
26
|
config: providedConfig,
|
|
27
27
|
locale,
|
|
28
28
|
onCloseHandler
|
|
29
|
-
})
|
|
29
|
+
}) {
|
|
30
30
|
var _ref = arguments[0],
|
|
31
31
|
_ref2;
|
|
32
32
|
const SPlotA11yView = Box;
|
|
@@ -152,5 +152,6 @@ export const PlotA11yView = ({
|
|
|
152
152
|
"config": config,
|
|
153
153
|
"intl": intl
|
|
154
154
|
})));
|
|
155
|
-
}
|
|
155
|
+
}
|
|
156
|
+
;
|
|
156
157
|
//# sourceMappingURL=PlotA11yView.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PlotA11yView.js","names":["Box","Root","sstyled","useAsyncI18nMessages","React","DataAccessibilityTable","heavyFindNextFocusableElement","makeDataSummarizationConfig","getIntl","summarize","styles","_sstyled","insert","localizedMessages","PlotA11yView","id","payload","providedData","hints","plotLabel","triggerRef","plotRef","config","providedConfig","locale","onCloseHandler","_ref","arguments[0]","_ref2","SPlotA11yView","translations","intl","useMemo","data","Array","isArray","rootRef","useRef","summary","setSummary","useState","generatingSummary","setGeneratingSummary","useEffect","current","focus","focusOutHandler","event","relatedTarget","requestIdleCallback","HTMLElement","contains","addEventListener","removeEventListener","disable","override","setTimeout","handleClose","useCallback","handleSkip","preventDefault","handleSkipKeyboard","key","handleGoToTable","dataTableRef","handleGoToTableKeyboard","texts","label","formatMessage","close","skipPlot","goToTable","summaryPlaceholder","table","createElement","cn","_assignProps"],"sources":["../../../src/a11y/PlotA11yView.tsx"],"sourcesContent":["import { Box } from '@semcore/base-components';\nimport { Root, sstyled } from '@semcore/core';\nimport { useAsyncI18nMessages } from '@semcore/core/lib/utils/enhances/i18nEnhance';\nimport React from 'react';\n\nimport { DataAccessibilityTable } from './DataAccessibilityTable';\nimport { heavyFindNextFocusableElement } from './focus';\nimport { makeDataSummarizationConfig } from './hints';\nimport type { DataStructureHints, PartialDataSummarizationConfig } from './hints';\nimport { getIntl } from './intl';\nimport { summarize } from './summarize';\nimport styles from '../style/plotA11yView.shadow.css';\nimport { localizedMessages } from './translations/view/__intergalactic-dynamic-locales';\n\nexport type A11yViewProps = {\n id: string;\n payload: Record<string, unknown>[];\n hints: DataStructureHints;\n plotLabel: string;\n locale: NavigatorLanguage['language'];\n config: PartialDataSummarizationConfig;\n\n plotRef: React.RefObject<HTMLElement>;\n triggerRef: React.RefObject<HTMLElement>;\n onCloseHandler: () => void;\n};\n\nexport const PlotA11yView: React.FC<A11yViewProps> = ({\n id,\n payload: providedData,\n hints,\n plotLabel,\n triggerRef,\n plotRef,\n config: providedConfig,\n locale,\n onCloseHandler,\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 const rootRef = React.useRef<HTMLDivElement>(null);\n\n const [summary, setSummary] = React.useState<string | null>(null);\n const [generatingSummary, setGeneratingSummary] = React.useState(true);\n\n React.useEffect(() => {\n rootRef.current?.focus();\n\n function focusOutHandler(event: FocusEvent) {\n if (event.relatedTarget === null) {\n return requestIdleCallback(onCloseHandler);\n }\n\n if (!(event.relatedTarget instanceof HTMLElement)) return;\n\n if (rootRef.current?.contains(event.relatedTarget)) return;\n\n requestIdleCallback(onCloseHandler);\n }\n\n rootRef.current?.addEventListener('focusout', focusOutHandler);\n return () => rootRef.current?.removeEventListener('focusout', focusOutHandler);\n }, []);\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 onCloseHandler();\n\n requestIdleCallback(() => {\n triggerRef.current?.focus();\n });\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 onCloseHandler();\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 ref={rootRef}\n >\n <button type='button' onClick={handleClose}>\n {texts.close}\n </button>\n <a href='#' onKeyDown={handleSkipKeyboard} onClick={handleSkip}>\n {texts.skipPlot}\n </a>\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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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"PlotA11yView.js","names":["Box","Root","sstyled","useAsyncI18nMessages","React","DataAccessibilityTable","heavyFindNextFocusableElement","makeDataSummarizationConfig","getIntl","summarize","styles","_sstyled","insert","localizedMessages","PlotA11yView","id","payload","providedData","hints","plotLabel","triggerRef","plotRef","config","providedConfig","locale","onCloseHandler","_ref","arguments[0]","_ref2","SPlotA11yView","translations","intl","useMemo","data","Array","isArray","rootRef","useRef","summary","setSummary","useState","generatingSummary","setGeneratingSummary","useEffect","current","focus","focusOutHandler","event","relatedTarget","requestIdleCallback","HTMLElement","contains","addEventListener","removeEventListener","disable","override","setTimeout","handleClose","useCallback","handleSkip","preventDefault","handleSkipKeyboard","key","handleGoToTable","dataTableRef","handleGoToTableKeyboard","texts","label","formatMessage","close","skipPlot","goToTable","summaryPlaceholder","table","createElement","cn","_assignProps"],"sources":["../../../src/a11y/PlotA11yView.tsx"],"sourcesContent":["import { Box } from '@semcore/base-components';\nimport { Root, sstyled } from '@semcore/core';\nimport { useAsyncI18nMessages } from '@semcore/core/lib/utils/enhances/i18nEnhance';\nimport React from 'react';\n\nimport { DataAccessibilityTable } from './DataAccessibilityTable';\nimport { heavyFindNextFocusableElement } from './focus';\nimport { makeDataSummarizationConfig } from './hints';\nimport type { DataStructureHints, PartialDataSummarizationConfig } from './hints';\nimport { getIntl } from './intl';\nimport { summarize } from './summarize';\nimport styles from '../style/plotA11yView.shadow.css';\nimport { localizedMessages } from './translations/view/__intergalactic-dynamic-locales';\n\nexport type A11yViewProps = {\n id: string;\n payload: Record<string, unknown>[];\n hints: DataStructureHints;\n plotLabel: string;\n locale: NavigatorLanguage['language'];\n config: PartialDataSummarizationConfig;\n\n plotRef: React.RefObject<HTMLElement>;\n triggerRef: React.RefObject<HTMLElement>;\n onCloseHandler: () => void;\n};\n\nexport function PlotA11yView({\n id,\n payload: providedData,\n hints,\n plotLabel,\n triggerRef,\n plotRef,\n config: providedConfig,\n locale,\n onCloseHandler,\n}: A11yViewProps) {\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 const rootRef = React.useRef<HTMLDivElement>(null);\n\n const [summary, setSummary] = React.useState<string | null>(null);\n const [generatingSummary, setGeneratingSummary] = React.useState(true);\n\n React.useEffect(() => {\n rootRef.current?.focus();\n\n function focusOutHandler(event: FocusEvent) {\n if (event.relatedTarget === null) {\n return requestIdleCallback(onCloseHandler);\n }\n\n if (!(event.relatedTarget instanceof HTMLElement)) return;\n\n if (rootRef.current?.contains(event.relatedTarget)) return;\n\n requestIdleCallback(onCloseHandler);\n }\n\n rootRef.current?.addEventListener('focusout', focusOutHandler);\n return () => rootRef.current?.removeEventListener('focusout', focusOutHandler);\n }, []);\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 onCloseHandler();\n\n requestIdleCallback(() => {\n triggerRef.current?.focus();\n });\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 onCloseHandler();\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 ref={rootRef}\n >\n <button type='button' onClick={handleClose}>\n {texts.close}\n </button>\n <a href='#' onKeyDown={handleSkipKeyboard} onClick={handleSkip}>\n {texts.skipPlot}\n </a>\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":";;AAAA,SAASA,GAAG,QAAQ,0BAA0B;AAC9C,SAASC,IAAI,EAAEC,OAAO,QAAQ,eAAe;AAC7C,SAASC,oBAAoB,QAAQ,8CAA8C;AACnF,OAAOC,KAAK,MAAM,OAAO;AAEzB,SAASC,sBAAsB,QAAQ,0BAA0B;AACjE,SAASC,6BAA6B,QAAQ,SAAS;AACvD,SAASC,2BAA2B,QAAQ,SAAS;AAErD,SAASC,OAAO,QAAQ,QAAQ;AAChC,SAASC,SAAS,QAAQ,aAAa;AAAC;AAAA,MAAAC,MAAA,8BAAAC,QAAA,CAAAC,MAAA;AAAA;AAAA;EAAA;AAAA;AAExC,SAASC,iBAAiB,QAAQ,qDAAqD;AAevF,OAAO,SAASC,YAAYA,CAAC;EAC3BC,EAAE;EACFC,OAAO,EAAEC,YAAY;EACrBC,KAAK;EACLC,SAAS;EACTC,UAAU;EACVC,OAAO;EACPC,MAAM,EAAEC,cAAc;EACtBC,MAAM;EACNC;AACa,CAAC,EAAE;EAAA,IAAAC,IAAA,GAAAC,YAAA;IAAAC,KAAA;EAChB,MAAMC,aAAa,GA4GP7B,GAAG;EA3Gf,MAAM8B,YAAY,GAAG3B,oBAAoB,CAACU,iBAAiB,EAAEW,MAAM,CAAC;EACpE,MAAMO,IAAI,GAAG3B,KAAK,CAAC4B,OAAO,CACxB,MAAMxB,OAAO,CAACgB,MAAM,EAAEM,YAAY,EAAEjB,iBAAiB,CAAC,EACtD,CAACW,MAAM,EAAEM,YAAY,EAAEjB,iBAAiB,CAC1C,CAAC;EACD,MAAMS,MAAM,GAAGlB,KAAK,CAAC4B,OAAO,CAAC,MAAMzB,2BAA2B,CAACgB,cAAc,CAAC,EAAE,CAACA,cAAc,CAAC,CAAC;EACjG,MAAMU,IAAI,GAAG7B,KAAK,CAAC4B,OAAO,CACxB,MAAOE,KAAK,CAACC,OAAO,CAAClB,YAAY,CAAC,GAAGA,YAAY,GAAG,CAACA,YAAY,CAAE,EACnE,CAACA,YAAY,CACf,CAAC;EACD,MAAMmB,OAAO,GAAGhC,KAAK,CAACiC,MAAM,CAAiB,IAAI,CAAC;EAElD,MAAM,CAACC,OAAO,EAAEC,UAAU,CAAC,GAAGnC,KAAK,CAACoC,QAAQ,CAAgB,IAAI,CAAC;EACjE,MAAM,CAACC,iBAAiB,EAAEC,oBAAoB,CAAC,GAAGtC,KAAK,CAACoC,QAAQ,CAAC,IAAI,CAAC;EAEtEpC,KAAK,CAACuC,SAAS,CAAC,MAAM;IACpBP,OAAO,CAACQ,OAAO,EAAEC,KAAK,CAAC,CAAC;IAExB,SAASC,eAAeA,CAACC,KAAiB,EAAE;MAC1C,IAAIA,KAAK,CAACC,aAAa,KAAK,IAAI,EAAE;QAChC,OAAOC,mBAAmB,CAACxB,cAAc,CAAC;MAC5C;MAEA,IAAI,EAAEsB,KAAK,CAACC,aAAa,YAAYE,WAAW,CAAC,EAAE;MAEnD,IAAId,OAAO,CAACQ,OAAO,EAAEO,QAAQ,CAACJ,KAAK,CAACC,aAAa,CAAC,EAAE;MAEpDC,mBAAmB,CAACxB,cAAc,CAAC;IACrC;IAEAW,OAAO,CAACQ,OAAO,EAAEQ,gBAAgB,CAAC,UAAU,EAAEN,eAAe,CAAC;IAC9D,OAAO,MAAMV,OAAO,CAACQ,OAAO,EAAES,mBAAmB,CAAC,UAAU,EAAEP,eAAe,CAAC;EAChF,CAAC,EAAE,EAAE,CAAC;EAEN1C,KAAK,CAACuC,SAAS,CAAC,MAAM;IACpB,IAAIrB,MAAM,CAACgC,OAAO,EAAE;MAClBf,UAAU,CAAC,EAAE,CAAC;MACdG,oBAAoB,CAAC,KAAK,CAAC;MAC3B;IACF;IACA,IAAIpB,MAAM,CAACiC,QAAQ,EAAE;MACnBhB,UAAU,CAACjB,MAAM,CAACiC,QAAQ,CAAC;MAC3Bb,oBAAoB,CAAC,KAAK,CAAC;MAC3B;IACF;IACAc,UAAU,CAAC,MAAM;MACfjB,UAAU,CAAC9B,SAAS,CAACQ,YAAY,EAAEC,KAAK,EAAEI,MAAM,EAAEE,MAAM,EAAEM,YAAY,EAAEjB,iBAAiB,CAAC,CAAC;MAC3F6B,oBAAoB,CAAC,KAAK,CAAC;IAC7B,CAAC,EAAE,CAAC,CAAC;EACP,CAAC,EAAE,CAACzB,YAAY,EAAEC,KAAK,EAAEI,MAAM,EAAEE,MAAM,EAAEM,YAAY,EAAEjB,iBAAiB,CAAC,CAAC;EAE1E,MAAM4C,WAAW,GAAGrD,KAAK,CAACsD,WAAW,CAAC,MAAM;IAC1CjC,cAAc,CAAC,CAAC;IAEhBwB,mBAAmB,CAAC,MAAM;MACxB7B,UAAU,CAACwB,OAAO,EAAEC,KAAK,CAAC,CAAC;IAC7B,CAAC,CAAC;EACJ,CAAC,EAAE,EAAE,CAAC;EACN,MAAMc,UAAU,GAAGvD,KAAK,CAACsD,WAAW,CAAEX,KAA2B,IAAK;IACpEA,KAAK,CAACa,cAAc,CAAC,CAAC;IACtB,IAAI,CAACvC,OAAO,CAACuB,OAAO,EAAE;IAEtBtC,6BAA6B,CAACe,OAAO,CAACuB,OAAO,CAAC,EAAEC,KAAK,CAAC,CAAC;IAEvDpB,cAAc,CAAC,CAAC;EAClB,CAAC,EAAE,EAAE,CAAC;EACN,MAAMoC,kBAAkB,GAAGzD,KAAK,CAACsD,WAAW,CACzCX,KAA0B,IAAK;IAC9B,IAAI,EAAEA,KAAK,CAACe,GAAG,KAAK,OAAO,IAAIf,KAAK,CAACe,GAAG,KAAK,GAAG,CAAC,EAAE;IAEnDH,UAAU,CAACZ,KAAK,CAAC;EACnB,CAAC,EACD,CAACY,UAAU,CACb,CAAC;EACD,MAAMI,eAAe,GAAG3D,KAAK,CAACsD,WAAW,CAAEX,KAA2B,IAAK;IACzEA,KAAK,CAACa,cAAc,CAAC,CAAC;IACtBI,YAAY,CAACpB,OAAO,EAAEC,KAAK,CAAC,CAAC;EAC/B,CAAC,EAAE,EAAE,CAAC;EACN,MAAMoB,uBAAuB,GAAG7D,KAAK,CAACsD,WAAW,CAC9CX,KAA0B,IAAK;IAC9B,IAAI,EAAEA,KAAK,CAACe,GAAG,KAAK,OAAO,IAAIf,KAAK,CAACe,GAAG,KAAK,GAAG,CAAC,EAAE;IAEnDC,eAAe,CAAChB,KAAK,CAAC;EACxB,CAAC,EACD,CAACgB,eAAe,CAClB,CAAC;EAED,MAAMG,KAAK,GAAG9D,KAAK,CAAC4B,OAAO,CACzB,OAAO;IACLmC,KAAK,EAAEpC,IAAI,CAACqC,aAAa,CACvB;MAAErD,EAAE,EAAE;IAAa,CAAC,EACpB;MAAEI,SAAS,EAAEA,SAAS,IAAIY,IAAI,CAACqC,aAAa,CAAC;QAAErD,EAAE,EAAE;MAA0B,CAAC;IAAE,CAClF,CAAC;IACDsD,KAAK,EAAEtC,IAAI,CAACqC,aAAa,CAAC;MAAErD,EAAE,EAAE;IAAa,CAAC,CAAC;IAC/CuD,QAAQ,EAAEvC,IAAI,CAACqC,aAAa,CAAC;MAAErD,EAAE,EAAE;IAAiB,CAAC,CAAC;IACtDwD,SAAS,EAAExC,IAAI,CAACqC,aAAa,CAAC;MAAErD,EAAE,EAAE;IAAmB,CAAC,CAAC;IACzDuB,OAAO,EAAEP,IAAI,CAACqC,aAAa,CAAC;MAAErD,EAAE,EAAE;IAAoB,CAAC,CAAC;IACxDyD,kBAAkB,EAAEzC,IAAI,CAACqC,aAAa,CAAC;MAAErD,EAAE,EAAE;IAA2B,CAAC,CAAC;IAC1E0D,KAAK,EAAE1C,IAAI,CAACqC,aAAa,CAAC;MAAErD,EAAE,EAAE;IAAa,CAAC;EAChD,CAAC,CAAC,EACF,CAACgB,IAAI,EAAEZ,SAAS,CAClB,CAAC;EAED,MAAM6C,YAAY,GAAG5D,KAAK,CAACiC,MAAM,CAAmB,IAAI,CAAC;EAEzD,OAAAT,KAAA,GAAO1B,OAAO,CAACQ,MAAM,CAAC,eACpBN,KAAA,CAAAsE,aAAA,CAAC7C,aAAa,EAAAD,KAAA,CAAA+C,EAAA;IAAA,GAAAC,YAAA;MAAA,YAEF,CAAC;MAAA,cACCV,KAAK,CAACC,KAAK;MAAA,QAClB,QAAQ;MAAA,kBACG,CAAC,MAAM,CAAC;MAAA,OACnB/B;IAAO,GAAAV,IAAA;EAAA,iBAEZtB,KAAA,CAAAsE,aAAA,WAAA9C,KAAA,CAAA+C,EAAA;IAAA,QAAa,QAAQ;IAAA,WAAUlB;EAAW,IACvCS,KAAK,CAACG,KACD,CAAC,eACTjE,KAAA,CAAAsE,aAAA,MAAA9C,KAAA,CAAA+C,EAAA;IAAA,QAAQ,GAAG;IAAA,aAAYd,kBAAkB;IAAA,WAAWF;EAAU,IAC3DO,KAAK,CAACI,QACN,CAAC,eACJlE,KAAA,CAAAsE,aAAA,MAAA9C,KAAA,CAAA+C,EAAA;IAAA,QAAS,IAAI5D,EAAE,aAAa;IAAA,aAAakD,uBAAuB;IAAA,WAAWF;EAAe,IACvFG,KAAK,CAACK,SACN,CAAC,eACJnE,KAAA,CAAAsE,aAAA,WAAA9C,KAAA,CAAA+C,EAAA,6BACEvE,KAAA,CAAAsE,aAAA,UAAA9C,KAAA,CAAA+C,EAAA;IAAA,WAAgB,GAAG5D,EAAE;EAAe,IAAGmD,KAAK,CAAC5B,OAAe,CACtD,CAAC,eACTlC,KAAA,CAAAsE,aAAA,QAAA9C,KAAA,CAAA+C,EAAA;IAAA,MAAS,GAAG5D,EAAE,eAAe;IAAA,aAAa0B;EAAiB,IACxDA,iBAAiB,GAAGyB,KAAK,CAACM,kBAAkB,GAAGlC,OAC7C,CAAC,eACNlC,KAAA,CAAAsE,aAAA,WAAA9C,KAAA,CAAA+C,EAAA,6BACEvE,KAAA,CAAAsE,aAAA,UAAA9C,KAAA,CAAA+C,EAAA;IAAA,WAAgB,GAAG5D,EAAE;EAAa,IAAGmD,KAAK,CAACO,KAAa,CAClD,CAAC,eACTrE,KAAA,CAAAsE,aAAA,CAACrE,sBAAsB,EAAAuB,KAAA,CAAA+C,EAAA;IAAA,MACjB5D,EAAE;IAAA,gBACQiD,YAAY;IAAA,QACpB/B,IAAI;IAAA,SACHf,KAAK;IAAA,UACJI,MAAM;IAAA,QACRS;EAAI,EACX,CACY,CAAC;AAEpB;AAAC","ignoreList":[]}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import _extends from "@babel/runtime/helpers/esm/extends";
|
|
2
2
|
import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
|
|
3
|
-
import {
|
|
3
|
+
import { Component, createComponent } from "@semcore/core";
|
|
4
4
|
import propsForElement from "@semcore/core/lib/utils/propsForElement";
|
|
5
5
|
import React from "react";
|
|
6
6
|
class AnimatedClipPath extends Component {
|
package/lib/esm/Area.mjs
CHANGED
|
@@ -10,8 +10,7 @@ import { SvgElement } from "./component/SvgElement.mjs";
|
|
|
10
10
|
import createElement from "./createElement.mjs";
|
|
11
11
|
import Dots from "./Dots.mjs";
|
|
12
12
|
import { PatternFill } from "./Pattern.mjs";
|
|
13
|
-
import {
|
|
14
|
-
/*!__reshadow-styles__:"./style/area.shadow.css"*/
|
|
13
|
+
import { interpolateValue, getNullData, definedNullData, eventToPoint, invert, definedData, scaleOfBandwidth } from "./utils.mjs";
|
|
15
14
|
const style = (
|
|
16
15
|
/*__reshadow_css_start__*/
|
|
17
16
|
(sstyled.insert(
|
package/lib/esm/Axis.mjs
CHANGED
|
@@ -4,7 +4,6 @@ import { sstyled, Component } from "@semcore/core";
|
|
|
4
4
|
import React, { useState, useEffect } from "react";
|
|
5
5
|
import createElement from "./createElement.mjs";
|
|
6
6
|
import { scaleOfBandwidth } from "./utils.mjs";
|
|
7
|
-
/*!__reshadow-styles__:"./style/axis.shadow.css"*/
|
|
8
7
|
const style = (
|
|
9
8
|
/*__reshadow_css_start__*/
|
|
10
9
|
(sstyled.insert(
|
|
@@ -31,8 +30,8 @@ const style = (
|
|
|
31
30
|
"_position_custom_1": "_position_custom_1_yb2p1_gg_"
|
|
32
31
|
})
|
|
33
32
|
);
|
|
34
|
-
const CUSTOM_0 = Symbol("custom_0");
|
|
35
|
-
const CUSTOM_1 = Symbol("custom_1");
|
|
33
|
+
const CUSTOM_0 = /* @__PURE__ */ Symbol("custom_0");
|
|
34
|
+
const CUSTOM_1 = /* @__PURE__ */ Symbol("custom_1");
|
|
36
35
|
const MAP_INDEX_SCALE_SYMBOL = {
|
|
37
36
|
0: CUSTOM_0,
|
|
38
37
|
1: CUSTOM_1
|
|
@@ -243,14 +242,13 @@ function measureTextWidth(rootRef, text, fontSize = 12) {
|
|
|
243
242
|
}
|
|
244
243
|
class AxisRoot extends Component {
|
|
245
244
|
get ticks() {
|
|
246
|
-
var _a, _b;
|
|
247
245
|
const {
|
|
248
246
|
ticks,
|
|
249
247
|
indexScale,
|
|
250
248
|
scale
|
|
251
249
|
} = this.asProps;
|
|
252
250
|
const scl = scale[indexScale];
|
|
253
|
-
return ticks ||
|
|
251
|
+
return ticks || scl.ticks?.() || scl.domain?.() || [];
|
|
254
252
|
}
|
|
255
253
|
getTitleProps() {
|
|
256
254
|
const {
|
|
@@ -304,7 +302,6 @@ _defineProperty(AxisRoot, "displayName", "Axis");
|
|
|
304
302
|
_defineProperty(AxisRoot, "style", style);
|
|
305
303
|
_defineProperty(AxisRoot, "defaultProps", {});
|
|
306
304
|
function Ticks(props) {
|
|
307
|
-
var _a, _b;
|
|
308
305
|
const {
|
|
309
306
|
Element: STick,
|
|
310
307
|
styles,
|
|
@@ -323,7 +320,7 @@ function Ticks(props) {
|
|
|
323
320
|
useEffect(() => {
|
|
324
321
|
if (rootRef.current) setRootRefElement(rootRef.current);
|
|
325
322
|
}, []);
|
|
326
|
-
const tickBandwidth =
|
|
323
|
+
const tickBandwidth = scale[indexScale]?.bandwidth?.();
|
|
327
324
|
const ticksWithLines = ticks.map((tick) => ({
|
|
328
325
|
tick,
|
|
329
326
|
lines: typeof tick === "string" && multiline && rootRefElement ? splitTextByWidth(rootRefElement, tick, tickBandwidth) : []
|
package/lib/esm/Bar.mjs
CHANGED
|
@@ -7,7 +7,6 @@ import AnimatedClipPath from "./AnimatedClipPath.mjs";
|
|
|
7
7
|
import createElement from "./createElement.mjs";
|
|
8
8
|
import { PatternFill } from "./Pattern.mjs";
|
|
9
9
|
import { scaleToBand, roundedPath } from "./utils.mjs";
|
|
10
|
-
/*!__reshadow-styles__:"./style/bar.shadow.css"*/
|
|
11
10
|
const style = (
|
|
12
11
|
/*__reshadow_css_start__*/
|
|
13
12
|
(sstyled.insert(
|
|
@@ -102,7 +101,7 @@ class BarRoot extends Component {
|
|
|
102
101
|
const width = Math.min(bandWidth, maxBarSize);
|
|
103
102
|
const barX = xScale(d[x]) + bandWidth / 2 - width / 2 + offset[0];
|
|
104
103
|
const barY = yScale(Math.max(d[y0] ?? 0, height <= hMin && d[y] > 0 ? 0 : d[y])) + offset[1] - calcPartBarY(d[y], hMin, height);
|
|
105
|
-
const handleClick = (event) => onClick
|
|
104
|
+
const handleClick = (event) => onClick?.(d, event, i, y);
|
|
106
105
|
const dSvg = getRect({
|
|
107
106
|
x: barX,
|
|
108
107
|
y: barY,
|
package/lib/esm/Bubble.mjs
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
|
|
2
|
-
import { sstyled,
|
|
2
|
+
import { sstyled, Component, assignProps } from "@semcore/core";
|
|
3
3
|
import { callAllEventHandlers } from "@semcore/core/lib/utils/assignProps";
|
|
4
4
|
import findComponent from "@semcore/core/lib/utils/findComponent";
|
|
5
5
|
import uniqueIDEnhancement from "@semcore/core/lib/utils/uniqueID";
|
|
@@ -10,7 +10,6 @@ import createElement from "./createElement.mjs";
|
|
|
10
10
|
import { PatternFill } from "./Pattern.mjs";
|
|
11
11
|
import Tooltip from "./Tooltip.mjs";
|
|
12
12
|
import { getBubbleChartValueScale, measureText } from "./utils.mjs";
|
|
13
|
-
/*!__reshadow-styles__:"./style/bubble.shadow.css"*/
|
|
14
13
|
const style = (
|
|
15
14
|
/*__reshadow_css_start__*/
|
|
16
15
|
(sstyled.insert(
|
|
@@ -73,8 +72,7 @@ class BubbleRoot extends Component {
|
|
|
73
72
|
const selectRectNode = selectRect.node();
|
|
74
73
|
if (selectRectNode) {
|
|
75
74
|
selectRect.transition().duration(duration).attr("r", function(_, ind) {
|
|
76
|
-
|
|
77
|
-
return z((_a = data[ind]) == null ? void 0 : _a[value]);
|
|
75
|
+
return z(data[ind]?.[value]);
|
|
78
76
|
});
|
|
79
77
|
}
|
|
80
78
|
}
|
|
@@ -104,7 +102,7 @@ class BubbleRoot extends Component {
|
|
|
104
102
|
const {
|
|
105
103
|
onClick
|
|
106
104
|
} = this.asProps;
|
|
107
|
-
onClick
|
|
105
|
+
onClick?.(index, e);
|
|
108
106
|
};
|
|
109
107
|
}
|
|
110
108
|
getCircleProps() {
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
|
|
2
|
-
import { sstyled,
|
|
2
|
+
import { sstyled, Component, assignProps } from "@semcore/core";
|
|
3
3
|
import { Box } from "@semcore/base-components";
|
|
4
4
|
import { callAllEventHandlers } from "@semcore/core/lib/utils/assignProps";
|
|
5
5
|
import canUseDOM from "@semcore/core/lib/utils/canUseDOM";
|
|
@@ -10,8 +10,7 @@ import AnimatedClipPath from "./AnimatedClipPath.mjs";
|
|
|
10
10
|
import createElement from "./createElement.mjs";
|
|
11
11
|
import { PatternFill } from "./Pattern.mjs";
|
|
12
12
|
import Tooltip from "./Tooltip.mjs";
|
|
13
|
-
import {
|
|
14
|
-
/*!__reshadow-styles__:"./style/bar.shadow.css"*/
|
|
13
|
+
import { scaleToBand, roundedPath, eventToPoint } from "./utils.mjs";
|
|
15
14
|
const style = (
|
|
16
15
|
/*__reshadow_css_start__*/
|
|
17
16
|
(sstyled.insert(
|
|
@@ -334,7 +333,7 @@ function Bar(props) {
|
|
|
334
333
|
hide
|
|
335
334
|
} = props;
|
|
336
335
|
const onClickHandler = React.useCallback((event) => {
|
|
337
|
-
onClick
|
|
336
|
+
onClick?.(index, event);
|
|
338
337
|
}, [onClick, index]);
|
|
339
338
|
const contextValue = React.useMemo(() => ({
|
|
340
339
|
onClick: onClickHandler,
|
|
@@ -552,6 +551,7 @@ function CompactHorizontalBarTooltip(props) {
|
|
|
552
551
|
}, _ref4)
|
|
553
552
|
}));
|
|
554
553
|
}
|
|
554
|
+
;
|
|
555
555
|
const CompactHorizontalBar = createElement(CompactHorizontalBarRoot, {
|
|
556
556
|
Annotation,
|
|
557
557
|
Label,
|
package/lib/esm/Donut.mjs
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
|
|
2
|
-
import { sstyled,
|
|
2
|
+
import { sstyled, Component, assignProps } from "@semcore/core";
|
|
3
3
|
import { callAllEventHandlers } from "@semcore/core/lib/utils/assignProps";
|
|
4
4
|
import canUseDOM from "@semcore/core/lib/utils/canUseDOM";
|
|
5
5
|
import getOriginChildren from "@semcore/core/lib/utils/getOriginChildren";
|
|
@@ -12,7 +12,6 @@ import createElement from "./createElement.mjs";
|
|
|
12
12
|
import { PatternFill } from "./Pattern.mjs";
|
|
13
13
|
import Tooltip from "./Tooltip.mjs";
|
|
14
14
|
import { getChartDefaultColorName } from "./utils.mjs";
|
|
15
|
-
/*!__reshadow-styles__:"./style/donut.shadow.css"*/
|
|
16
15
|
const style = (
|
|
17
16
|
/*__reshadow_css_start__*/
|
|
18
17
|
(sstyled.insert(
|
|
@@ -32,7 +31,7 @@ const style = (
|
|
|
32
31
|
"__SLabel": "___SLabel_1s4vb_gg_"
|
|
33
32
|
})
|
|
34
33
|
);
|
|
35
|
-
const DEFAULT_INSTANCE = Symbol("DEFAULT_INSTANCE");
|
|
34
|
+
const DEFAULT_INSTANCE = /* @__PURE__ */ Symbol("DEFAULT_INSTANCE");
|
|
36
35
|
function transitionAnglePie({
|
|
37
36
|
selector,
|
|
38
37
|
duration,
|
|
@@ -334,7 +333,8 @@ _defineProperty(DonutRoot, "defaultProps", ({
|
|
|
334
333
|
}) => {
|
|
335
334
|
const d3Arc = arc().outerRadius(outerRadius || getOuterRadius({
|
|
336
335
|
size,
|
|
337
|
-
halfsize
|
|
336
|
+
halfsize,
|
|
337
|
+
outerRadius
|
|
338
338
|
})).innerRadius(innerRadius).padAngle(paddingAngle);
|
|
339
339
|
const d3ArcOut = arc().outerRadius((outerRadius || getOuterRadius({
|
|
340
340
|
size,
|
|
@@ -463,6 +463,7 @@ function DonutTooltip(props) {
|
|
|
463
463
|
}, _ref)
|
|
464
464
|
}));
|
|
465
465
|
}
|
|
466
|
+
;
|
|
466
467
|
const Donut = createElement(DonutRoot, {
|
|
467
468
|
Pie,
|
|
468
469
|
Label,
|
package/lib/esm/Dots.mjs
CHANGED
|
@@ -4,8 +4,7 @@ import { bisector } from "d3-array";
|
|
|
4
4
|
import React from "react";
|
|
5
5
|
import createElement from "./createElement.mjs";
|
|
6
6
|
import { getPatternSymbolSize, PatternSymbol } from "./Pattern.mjs";
|
|
7
|
-
import { interpolateValue, eventToPoint, invert
|
|
8
|
-
/*!__reshadow-styles__:"./style/dot.shadow.css"*/
|
|
7
|
+
import { getChartDefaultColorName, interpolateValue, eventToPoint, invert } from "./utils.mjs";
|
|
9
8
|
const style = (
|
|
10
9
|
/*__reshadow_css_start__*/
|
|
11
10
|
(sstyled.insert(
|
|
@@ -6,7 +6,6 @@ import AnimatedClipPath from "./AnimatedClipPath.mjs";
|
|
|
6
6
|
import createElement from "./createElement.mjs";
|
|
7
7
|
import { PatternFill } from "./Pattern.mjs";
|
|
8
8
|
import { scaleToBand, roundedPath } from "./utils.mjs";
|
|
9
|
-
/*!__reshadow-styles__:"./style/bar.shadow.css"*/
|
|
10
9
|
const style = (
|
|
11
10
|
/*__reshadow_css_start__*/
|
|
12
11
|
(sstyled.insert(
|
|
@@ -85,7 +84,7 @@ class HorizontalBarRoot extends Component {
|
|
|
85
84
|
const width = Number(d[x] - (d[x0] ?? 0)) === 0 ? 0 : Math.max(absWidth, wMin);
|
|
86
85
|
const barY = yScale(d[y]) + bandHeight / 2 - height / 2 + offset[1];
|
|
87
86
|
const barX = xScale(Math.min(d[x0] ?? 0, width <= wMin && d[x] < 0 ? 0 : d[x])) + offset[0] - calcPartBarX(d[x], wMin, width);
|
|
88
|
-
const handleClick = (event) => onClick
|
|
87
|
+
const handleClick = (event) => onClick?.(d, event, i, x);
|
|
89
88
|
const dSvg = getHorizontalRect({
|
|
90
89
|
x: barX,
|
|
91
90
|
y: barY,
|
package/lib/esm/Hover.mjs
CHANGED
|
@@ -1,13 +1,12 @@
|
|
|
1
1
|
import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
|
|
2
|
-
import { sstyled,
|
|
2
|
+
import { sstyled, Component, assignProps } from "@semcore/core";
|
|
3
3
|
import canUseDOM from "@semcore/core/lib/utils/canUseDOM";
|
|
4
4
|
import { hasParent } from "@semcore/core/lib/utils/hasParent";
|
|
5
5
|
import trottle from "@semcore/core/lib/utils/rafTrottle";
|
|
6
6
|
import React from "react";
|
|
7
7
|
import createElement from "./createElement.mjs";
|
|
8
8
|
import Tooltip from "./Tooltip.mjs";
|
|
9
|
-
import {
|
|
10
|
-
/*!__reshadow-styles__:"./style/hover.shadow.css"*/
|
|
9
|
+
import { eventToPoint, invert, getIndexFromData, scaleOfBandwidth, scaleToBand } from "./utils.mjs";
|
|
11
10
|
const style = (
|
|
12
11
|
/*__reshadow_css_start__*/
|
|
13
12
|
(sstyled.insert(
|
package/lib/esm/Line.mjs
CHANGED
|
@@ -2,14 +2,13 @@ import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
|
|
|
2
2
|
import { sstyled, Component } from "@semcore/core";
|
|
3
3
|
import uniqueIDEnhancement, { useUID } from "@semcore/core/lib/utils/uniqueID";
|
|
4
4
|
import { bisector } from "d3-array";
|
|
5
|
-
import {
|
|
5
|
+
import { line, curveLinear, curveCardinal, area } from "d3-shape";
|
|
6
6
|
import React from "react";
|
|
7
7
|
import AnimatedClipPath from "./AnimatedClipPath.mjs";
|
|
8
8
|
import createElement from "./createElement.mjs";
|
|
9
9
|
import Dots from "./Dots.mjs";
|
|
10
10
|
import { resolvePatternDasharray } from "./Pattern.mjs";
|
|
11
|
-
import { interpolateValue,
|
|
12
|
-
/*!__reshadow-styles__:"./style/line.shadow.css"*/
|
|
11
|
+
import { interpolateValue, getNullData, definedNullData, eventToPoint, invert, getChartDefaultColorName, definedData, scaleOfBandwidth } from "./utils.mjs";
|
|
13
12
|
const style = (
|
|
14
13
|
/*__reshadow_css_start__*/
|
|
15
14
|
(sstyled.insert(
|
package/lib/esm/Pattern.mjs
CHANGED
|
@@ -483,9 +483,8 @@ const getPatternSymbolSize = ({
|
|
|
483
483
|
patternKey,
|
|
484
484
|
patterns
|
|
485
485
|
}) => {
|
|
486
|
-
var _a;
|
|
487
486
|
const patternData = resolvePattern(patternKey, patterns);
|
|
488
|
-
if (!
|
|
487
|
+
if (!patternData?.symbol?.size) return [10, 10];
|
|
489
488
|
return patternData.symbol.size;
|
|
490
489
|
};
|
|
491
490
|
const PatternSymbol = ({
|
|
@@ -496,10 +495,10 @@ const PatternSymbol = ({
|
|
|
496
495
|
}) => {
|
|
497
496
|
const DefaultSymbol = React.useMemo(() => {
|
|
498
497
|
const patternData = resolvePattern(patternKey, patterns);
|
|
499
|
-
const children = patternData
|
|
500
|
-
const viewBox = patternData
|
|
501
|
-
const width = patternData
|
|
502
|
-
const height = patternData
|
|
498
|
+
const children = patternData?.symbol.children;
|
|
499
|
+
const viewBox = patternData?.symbol.viewBox;
|
|
500
|
+
const width = patternData?.symbol.size[0];
|
|
501
|
+
const height = patternData?.symbol.size[1];
|
|
503
502
|
return (props2) => /* @__PURE__ */ React.createElement("svg", _extends({
|
|
504
503
|
fill: color,
|
|
505
504
|
x: "0",
|
|
@@ -516,7 +515,7 @@ const PatternSymbol = ({
|
|
|
516
515
|
};
|
|
517
516
|
const resolvePatternDasharray = (patternKey, patterns) => {
|
|
518
517
|
const pattern = resolvePattern(patternKey, patterns);
|
|
519
|
-
return pattern
|
|
518
|
+
return pattern?.dasharray;
|
|
520
519
|
};
|
|
521
520
|
export {
|
|
522
521
|
PatternFill,
|
package/lib/esm/Plot.mjs
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
|
|
2
|
-
import {
|
|
2
|
+
import { sstyled, Component, assignProps, createComponent } from "@semcore/core";
|
|
3
3
|
import { Box } from "@semcore/base-components";
|
|
4
4
|
import i18nEnhance from "@semcore/core/lib/utils/enhances/i18nEnhance";
|
|
5
5
|
import resolveColorEnhance from "@semcore/core/lib/utils/enhances/resolveColorEnhance";
|
|
@@ -9,7 +9,6 @@ import { makeDataHintsContainer, makeDataHintsHandlers } from "./a11y/hints.mjs"
|
|
|
9
9
|
import { PlotA11yModule } from "./a11y/PlotA11yModule.mjs";
|
|
10
10
|
import { localizedMessages } from "./translations/__intergalactic-dynamic-locales.mjs";
|
|
11
11
|
import { uniqueId, eventToPoint } from "./utils.mjs";
|
|
12
|
-
/*!__reshadow-styles__:"./style/plot.shadow.css"*/
|
|
13
12
|
const style = (
|
|
14
13
|
/*__reshadow_css_start__*/
|
|
15
14
|
(sstyled.insert(
|
|
@@ -53,7 +52,6 @@ class PlotRoot extends Component {
|
|
|
53
52
|
this.eventEmitter = props.eventEmitter || new EventEmitter();
|
|
54
53
|
}
|
|
55
54
|
setContext() {
|
|
56
|
-
var _a, _b;
|
|
57
55
|
const {
|
|
58
56
|
scale,
|
|
59
57
|
data,
|
|
@@ -64,8 +62,8 @@ class PlotRoot extends Component {
|
|
|
64
62
|
patterns,
|
|
65
63
|
duration
|
|
66
64
|
} = this.asProps;
|
|
67
|
-
const yScaleDomain =
|
|
68
|
-
if (
|
|
65
|
+
const yScaleDomain = scale?.[1]?.domain?.();
|
|
66
|
+
if (yScaleDomain?.length && data?.length) {
|
|
69
67
|
this.dataHintsHandler.setPointsDensity(data.length / width, Math.abs(yScaleDomain[1] - yScaleDomain[0]) / height);
|
|
70
68
|
}
|
|
71
69
|
return {
|
package/lib/esm/Radar.mjs
CHANGED
|
@@ -1,17 +1,16 @@
|
|
|
1
1
|
import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
|
|
2
|
-
import { sstyled,
|
|
2
|
+
import { sstyled, Component, assignProps } from "@semcore/core";
|
|
3
3
|
import canUseDOM from "@semcore/core/lib/utils/canUseDOM";
|
|
4
4
|
import getOriginChildren from "@semcore/core/lib/utils/getOriginChildren";
|
|
5
5
|
import trottle from "@semcore/core/lib/utils/rafTrottle";
|
|
6
6
|
import uniqueIDEnhancement from "@semcore/core/lib/utils/uniqueID";
|
|
7
7
|
import { polygonContains } from "d3-polygon";
|
|
8
|
-
import {
|
|
8
|
+
import { lineRadial, curveLinearClosed, arc, line } from "d3-shape";
|
|
9
9
|
import React, { cloneElement } from "react";
|
|
10
10
|
import createElement from "./createElement.mjs";
|
|
11
|
-
import { getPatternSymbolSize, PatternSymbol
|
|
11
|
+
import { PatternFill, getPatternSymbolSize, PatternSymbol } from "./Pattern.mjs";
|
|
12
12
|
import Tooltip from "./Tooltip.mjs";
|
|
13
|
-
import {
|
|
14
|
-
/*!__reshadow-styles__:"./style/radar.shadow.css"*/
|
|
13
|
+
import { measureText, getChartDefaultColorName, eventToPoint } from "./utils.mjs";
|
|
15
14
|
const style = (
|
|
16
15
|
/*__reshadow_css_start__*/
|
|
17
16
|
(sstyled.insert(
|
|
@@ -71,12 +70,11 @@ function getLabelPlacement(i, total, angleOffset) {
|
|
|
71
70
|
}
|
|
72
71
|
function computeTextWidth(texts, textSize, defaultWidth = 50, defaultHeight = 20) {
|
|
73
72
|
const widths = texts.map((text) => {
|
|
74
|
-
var _a, _b;
|
|
75
73
|
if (typeof text === "string") {
|
|
76
74
|
return measureText(text, textSize);
|
|
77
75
|
}
|
|
78
76
|
if (/* @__PURE__ */ React.isValidElement(text)) {
|
|
79
|
-
return Math.max(
|
|
77
|
+
return Math.max(text.props?.width || defaultWidth, text.props?.height || defaultHeight);
|
|
80
78
|
}
|
|
81
79
|
return defaultWidth;
|
|
82
80
|
});
|
|
@@ -506,8 +504,7 @@ class AxisRoot extends Component {
|
|
|
506
504
|
this.unsubscribeTooltipVisible = eventEmitter.subscribe("setTooltipRenderingProps", this.handleTooltipRenderingProps);
|
|
507
505
|
}
|
|
508
506
|
componentWillUnmount() {
|
|
509
|
-
|
|
510
|
-
(_a = this.unsubscribeTooltipVisible) == null ? void 0 : _a.call(this);
|
|
507
|
+
this.unsubscribeTooltipVisible?.();
|
|
511
508
|
}
|
|
512
509
|
render() {
|
|
513
510
|
var _ref7;
|
|
@@ -626,7 +623,7 @@ function AxisLabels(props) {
|
|
|
626
623
|
const {
|
|
627
624
|
width = 0,
|
|
628
625
|
height = 0
|
|
629
|
-
} =
|
|
626
|
+
} = category?.props ?? {};
|
|
630
627
|
const [xOffset, yOffset] = getLabelOffsetPosition(xDirection, yDirection, width, height);
|
|
631
628
|
return /* @__PURE__ */ cloneElement(category, {
|
|
632
629
|
key: i,
|