@sproutsocial/seeds-react-data-viz 0.24.3 → 0.25.0
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/dist/bar/index.js +12 -13
- package/dist/bar/index.js.map +1 -1
- package/dist/bubble/index.d.mts +1 -1
- package/dist/bubble/index.d.ts +1 -1
- package/dist/bubble/index.js +9 -10
- package/dist/bubble/index.js.map +1 -1
- package/dist/{chartOptions-DHzoGRdG.d.mts → chartOptions-D6MzNjbB.d.mts} +3 -1
- package/dist/{chartOptions-DHzoGRdG.d.ts → chartOptions-D6MzNjbB.d.ts} +3 -1
- package/dist/charts.css +80 -0
- package/dist/{chunk-LKUL4EFZ.js → chunk-2A3KLUIF.js} +3 -3
- package/dist/{chunk-LKUL4EFZ.js.map → chunk-2A3KLUIF.js.map} +1 -1
- package/dist/{chunk-GHZHRFE6.js → chunk-CWKFNAXF.js} +3 -3
- package/dist/{chunk-GHZHRFE6.js.map → chunk-CWKFNAXF.js.map} +1 -1
- package/dist/{chunk-W57R2V23.js → chunk-LWDHU4QK.js} +183 -7
- package/dist/chunk-LWDHU4QK.js.map +1 -0
- package/dist/{chunk-5JQXDK23.js → chunk-TNZNBMSZ.js} +292 -73
- package/dist/chunk-TNZNBMSZ.js.map +1 -0
- package/dist/donut/index.js +6 -7
- package/dist/donut/index.js.map +1 -1
- package/dist/esm/bar/index.js +6 -7
- package/dist/esm/bar/index.js.map +1 -1
- package/dist/esm/bubble/index.js +6 -7
- package/dist/esm/bubble/index.js.map +1 -1
- package/dist/esm/{chunk-AUU3KROF.js → chunk-AJGRGRI6.js} +2 -2
- package/dist/esm/{chunk-DF5PVRXT.js → chunk-CIG5NERD.js} +2 -2
- package/dist/esm/{chunk-EWAD675C.js → chunk-V63L6753.js} +257 -38
- package/dist/esm/chunk-V63L6753.js.map +1 -0
- package/dist/esm/{chunk-32QLJDP2.js → chunk-VCTZWYEM.js} +177 -1
- package/dist/esm/chunk-VCTZWYEM.js.map +1 -0
- package/dist/esm/donut/index.js +4 -5
- package/dist/esm/donut/index.js.map +1 -1
- package/dist/esm/index.js +15 -15
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/line-area/index.js +6 -7
- package/dist/esm/line-area/index.js.map +1 -1
- package/dist/esm/sparkline/index.js +3 -3
- package/dist/esm/wordcloud/index.js +82 -0
- package/dist/esm/wordcloud/index.js.map +1 -0
- package/dist/index.d.mts +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.js +54 -54
- package/dist/index.js.map +1 -1
- package/dist/line-area/index.js +12 -13
- package/dist/line-area/index.js.map +1 -1
- package/dist/sparkline/index.js +7 -7
- package/dist/wordcloud/index.d.mts +62 -0
- package/dist/wordcloud/index.d.ts +62 -0
- package/dist/wordcloud/index.js +82 -0
- package/dist/wordcloud/index.js.map +1 -0
- package/dist/wordcloud.css +79 -0
- package/package.json +19 -12
- package/dist/chunk-33Y5FZTT.js +0 -177
- package/dist/chunk-33Y5FZTT.js.map +0 -1
- package/dist/chunk-5JQXDK23.js.map +0 -1
- package/dist/chunk-W57R2V23.js.map +0 -1
- package/dist/esm/chunk-32QLJDP2.js.map +0 -1
- package/dist/esm/chunk-EWAD675C.js.map +0 -1
- package/dist/esm/chunk-XRZJACCB.js +0 -177
- package/dist/esm/chunk-XRZJACCB.js.map +0 -1
- /package/dist/esm/{chunk-AUU3KROF.js.map → chunk-AJGRGRI6.js.map} +0 -0
- /package/dist/esm/{chunk-DF5PVRXT.js.map → chunk-CIG5NERD.js.map} +0 -0
|
@@ -2,23 +2,22 @@ import {
|
|
|
2
2
|
buildAnnotationConfig,
|
|
3
3
|
defaultValueAxisLabelFormatter,
|
|
4
4
|
makeValueAxisLabelFormatter
|
|
5
|
-
} from "../chunk-
|
|
5
|
+
} from "../chunk-AJGRGRI6.js";
|
|
6
6
|
import {
|
|
7
7
|
buildDimensionalAxis,
|
|
8
8
|
resolveTooltipOptions
|
|
9
|
-
} from "../chunk-
|
|
9
|
+
} from "../chunk-CIG5NERD.js";
|
|
10
10
|
import {
|
|
11
11
|
getChartContainerProps
|
|
12
12
|
} from "../chunk-P3MVYSHX.js";
|
|
13
|
-
import {
|
|
14
|
-
TIME_SERIES_CHART_HEIGHT
|
|
15
|
-
} from "../chunk-XRZJACCB.js";
|
|
16
13
|
import {
|
|
17
14
|
ChartRenderer,
|
|
18
15
|
buildBaseChartOptions,
|
|
19
16
|
useSeedsChartSetup
|
|
20
|
-
} from "../chunk-
|
|
21
|
-
import
|
|
17
|
+
} from "../chunk-V63L6753.js";
|
|
18
|
+
import {
|
|
19
|
+
TIME_SERIES_CHART_HEIGHT
|
|
20
|
+
} from "../chunk-VCTZWYEM.js";
|
|
22
21
|
|
|
23
22
|
// src/charts/line-area/LineAreaChart.tsx
|
|
24
23
|
import { memo, useMemo } from "react";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/charts/line-area/LineAreaChart.tsx","../../../src/charts/line-area/adapter.ts"],"sourcesContent":["import { memo, useMemo } from \"react\";\nimport { useSeedsChartSetup, ChartRenderer } from \"../shared/chartBase\";\nimport { getChartContainerProps } from \"../shared/chartContainer\";\nimport { buildLineAreaChartOptions } from \"./adapter\";\nimport type { LineAreaChartProps, LineAreaVariant } from \"./types\";\n\nconst AREA_VARIANTS = new Set<LineAreaVariant>([\"area\", \"areaspline\"]);\n\n/**\n * LineAreaChart — the v2 time-series line/area family.\n *\n * Like SparklineChart, the wrapper carries no styled-components: it is a plain\n * <div> whose className / inline custom properties / data-attributes come from\n * the shared getChartContainerProps contract (CE-164), and its Highcharts\n * styling ships as a static line-area.css. chart-styles.css owns the shared\n * base (background, per-series color fallback, click cursor, tooltip, legend)\n * AND the shared cross-family .seeds-chart-time-series layer (crosshair,\n * grid/axis lines, ticks, zero line, axis-label typography) that bar also uses;\n * line-area.css owns only the .seeds-chart-line / .seeds-chart-area selectors.\n * Neither is imported here — matching the Sparkline/bar convention, the component never\n * self-imports its stylesheet; consumers import both explicitly (see\n * charts/README.md).\n */\nexport const LineAreaChart = memo(function LineAreaChart(\n props: LineAreaChartProps\n) {\n const { colors, patterns } = useSeedsChartSetup({\n series: props.series,\n includePatterns: true,\n });\n const { options, annotationLookup, tooltipOptions } = useMemo(\n () => buildLineAreaChartOptions(props),\n [props]\n );\n const hasOnClick = Boolean(props.onClick);\n const isArea = AREA_VARIANTS.has(props.variant);\n\n return (\n <div\n {...getChartContainerProps({\n familyClasses: [\n \"seeds-chart-time-series\",\n isArea ? \"seeds-chart-area\" : \"seeds-chart-line\",\n ],\n // RAW per-series colors: only an explicit consumer override is inlined\n // as --highcharts-color-N; an unset series falls through to the DS\n // palette default in chart-styles.css. ChartRenderer below still gets\n // the palette-RESOLVED `colors` for its own styled-components engine.\n colors: props.series.map((s) => s.color),\n patterns,\n hasOnClick,\n className: props.className,\n })}\n >\n <ChartRenderer\n options={options}\n series={props.series}\n colors={colors}\n tooltip={props.tooltip}\n annotationLookup={annotationLookup}\n hasOnClick={hasOnClick}\n tooltipClickLabel={props.tooltipClickLabel}\n tooltipOptions={tooltipOptions}\n invalidNumberLabel={props.invalidNumberLabel}\n valueFormat={props.yAxis?.format}\n exportTitle={props.exportTitle}\n onReady={props.onReady}\n />\n </div>\n );\n});\n","import { buildAnnotationConfig } from \"../shared/annotations\";\nimport type { ChartAnnotationLookup } from \"../shared/annotations\";\nimport type {\n ChartTooltipProps,\n SeedsChartDataPoint,\n SeedsChartOptions,\n} from \"../shared/chartBase\";\nimport { buildBaseChartOptions } from \"../shared/baseChartOptions\";\nimport { TIME_SERIES_CHART_HEIGHT } from \"../../constants/chartOptions\";\nimport {\n buildDimensionalAxis,\n resolveTooltipOptions,\n} from \"../shared/axisOptions\";\nimport {\n defaultValueAxisLabelFormatter,\n makeValueAxisLabelFormatter,\n} from \"../shared/valueAxisLabelFormatter\";\nimport type { ChartDataPoint } from \"../shared/axis\";\nimport type { LineAreaChartProps, LineAreaVariant } from \"./types\";\n\n// `stacking` is meaningful only for filled variants; on `line`/`spline` it's a\n// no-op, so the adapter drops it rather than emitting a misleading option.\nconst AREA_VARIANTS = new Set<LineAreaVariant>([\"area\", \"areaspline\"]);\n\ntype SeriesPoint =\n | number\n | null\n | [number, number | null]\n | SeedsChartDataPoint;\n\nfunction pointY(point: ChartDataPoint): number | null {\n if (point === null) return null;\n if (typeof point === \"number\") return point;\n if (Array.isArray(point)) return point[1];\n return point.y;\n}\n\n// Point markers are hidden by default (set on `plotOptions.series`), but an\n// *isolated* non-null point — one with a null (or the chart edge) on both\n// sides — gets a circle marker so a point with no connecting line segment\n// stays visible. Connected points pass through unchanged so the line/area\n// renders dot-free, matching the designs.\nfunction withIsolatedPointMarkers(\n data: ReadonlyArray<ChartDataPoint>\n): SeriesPoint[] {\n return data.map((point, i): SeriesPoint => {\n if (point === null) return null; // explicit gap\n if (pointY(point) === null) return point; // tuple/object with null y — a gap\n const prevY = i === 0 ? null : pointY(data[i - 1]!);\n const nextY = i === data.length - 1 ? null : pointY(data[i + 1]!);\n if (prevY !== null || nextY !== null) return point; // connected → no marker\n const marker = { enabled: true, symbol: \"circle\" as const };\n if (typeof point === \"number\") return { y: point, marker };\n if (Array.isArray(point)) return { x: point[0], y: point[1], marker };\n return { ...point, marker };\n });\n}\n\nexport function buildLineAreaChartOptions(props: LineAreaChartProps): {\n options: SeedsChartOptions;\n annotationLookup: ChartAnnotationLookup | undefined;\n /** Resolved datetime-derived tooltip options (timezone / timeFormat / textLocale); all undefined on category axes. */\n tooltipOptions: Pick<\n ChartTooltipProps,\n \"timezone\" | \"timeFormat\" | \"textLocale\"\n >;\n} {\n const tooltipOptions = resolveTooltipOptions(props);\n const isStacked = AREA_VARIANTS.has(props.variant) && Boolean(props.stacking);\n const { annotations, lookup: annotationLookup } = buildAnnotationConfig(\n props.annotations\n );\n\n const base = buildBaseChartOptions({\n type: props.variant,\n description: props.description,\n reserveTopMargin: Boolean(annotations),\n timezone: tooltipOptions.timezone,\n });\n\n const options: SeedsChartOptions = {\n ...base,\n // Default height baseline (overridable via `props.height`) so consumers\n // who don't configure sizing keep the design-reviewed default.\n chart: {\n ...base.chart,\n // Re-assert the definite `type` so spreading the optionally-typed\n // `base.chart` doesn't widen the required `type` field to optional.\n type: props.variant,\n height: props.height ?? TIME_SERIES_CHART_HEIGHT,\n // Tight time-series spacing (from constants/chartOptions.ts) so the plot\n // area fills the 275px container; without it Highcharts' larger default\n // spacing ([10, 10, 15, 10]) shrinks the plot area.\n spacing: [5, 1, 0, 2],\n },\n xAxis: buildDimensionalAxis(props.xAxis, tooltipOptions.timezone ?? \"UTC\"),\n yAxis: {\n min: props.yAxis?.min,\n max: props.yAxis?.max,\n // Anchor the value axis to 0 (as the bar/area families do): line/spline otherwise\n // auto-scale above 0, which truncates the axis and pushes the annotation\n // anchor (y: 0) out of range. `soft` still extends for negative data.\n softMin: 0,\n softMax: 0,\n gridLineWidth: props.yAxis?.showGridLines === false ? 0 : 1,\n // A dedicated plotLine at 0, styled distinctly from regular gridlines\n // (see chartStyles.ts).\n plotLines: [{ value: 0, className: \"y-axis-zero-line\", zIndex: 3 }],\n title: { text: props.yAxis?.title ?? \"\" },\n // Zero-config default: abbreviate value-axis ticks (1.20K / 1.20M / 1.20B).\n labels: {\n // A declarative `format` drives ticks through the shared valueFormatter;\n // absent it, the zero-config decimal default (1.20K / 1.20M / 1.20B).\n formatter: props.yAxis?.format\n ? makeValueAxisLabelFormatter(props.yAxis.format)\n : defaultValueAxisLabelFormatter,\n },\n },\n plotOptions: {\n series: {\n animation: false,\n // Hide point markers by default (per the designs); isolated points\n // re-enable their own marker via `withIsolatedPointMarkers`.\n marker: { enabled: false },\n ...(props.onClick || props.onMouseEnter || props.onMouseLeave\n ? {\n point: {\n events: {\n click: props.onClick\n ? (event) => props.onClick!({ position: event.point.x })\n : undefined,\n mouseOver: props.onMouseEnter\n ? function (this: { x: number | string }) {\n props.onMouseEnter!({ position: this.x });\n }\n : undefined,\n mouseOut: props.onMouseLeave\n ? function (this: { x: number | string }) {\n props.onMouseLeave!({ position: this.x });\n }\n : undefined,\n },\n },\n }\n : {}),\n },\n // Type-scoped stacking: only the (area) variant stacks. `isStacked` already\n // guarantees `props.variant` is an area variant here, so the computed key is\n // always a valid plotOptions slot. Matches bar's per-type placement and keeps\n // line/spline unstacked.\n ...(isStacked ? { [props.variant]: { stacking: props.stacking } } : {}),\n },\n series: props.series.map((s) => ({\n type: props.variant,\n name: s.name,\n data: withIsolatedPointMarkers(s.data),\n })),\n ...(annotations ? { annotations } : {}),\n };\n\n return { options, annotationLookup, tooltipOptions };\n}\n"],"mappings":"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","names":["AREA_VARIANTS","LineAreaChart"]}
|
|
1
|
+
{"version":3,"sources":["../../../src/charts/line-area/LineAreaChart.tsx","../../../src/charts/line-area/adapter.ts"],"sourcesContent":["import { memo, useMemo } from \"react\";\nimport { useSeedsChartSetup, ChartRenderer } from \"../shared/chartBase\";\nimport { getChartContainerProps } from \"../shared/chartContainer\";\nimport { buildLineAreaChartOptions } from \"./adapter\";\nimport type { LineAreaChartProps, LineAreaVariant } from \"./types\";\n\nconst AREA_VARIANTS = new Set<LineAreaVariant>([\"area\", \"areaspline\"]);\n\n/**\n * LineAreaChart — the v2 time-series line/area family.\n *\n * Like SparklineChart, the wrapper carries no styled-components: it is a plain\n * <div> whose className / inline custom properties / data-attributes come from\n * the shared getChartContainerProps contract (CE-164), and its Highcharts\n * styling ships as a static line-area.css. chart-styles.css owns the shared\n * base (background, per-series color fallback, click cursor, tooltip, legend)\n * AND the shared cross-family .seeds-chart-time-series layer (crosshair,\n * grid/axis lines, ticks, zero line, axis-label typography) that bar also uses;\n * line-area.css owns only the .seeds-chart-line / .seeds-chart-area selectors.\n * Neither is imported here — matching the Sparkline/bar convention, the component never\n * self-imports its stylesheet; consumers import both explicitly (see\n * charts/README.md).\n */\nexport const LineAreaChart = memo(function LineAreaChart(\n props: LineAreaChartProps\n) {\n const { colors, patterns } = useSeedsChartSetup({\n series: props.series,\n includePatterns: true,\n });\n const { options, annotationLookup, tooltipOptions } = useMemo(\n () => buildLineAreaChartOptions(props),\n [props]\n );\n const hasOnClick = Boolean(props.onClick);\n const isArea = AREA_VARIANTS.has(props.variant);\n\n return (\n <div\n {...getChartContainerProps({\n familyClasses: [\n \"seeds-chart-time-series\",\n isArea ? \"seeds-chart-area\" : \"seeds-chart-line\",\n ],\n // RAW per-series colors: only an explicit consumer override is inlined\n // as --highcharts-color-N; an unset series falls through to the DS\n // palette default in chart-styles.css. ChartRenderer below still gets\n // the palette-RESOLVED `colors` for its own styled-components engine.\n colors: props.series.map((s) => s.color),\n patterns,\n hasOnClick,\n className: props.className,\n })}\n >\n <ChartRenderer\n options={options}\n series={props.series}\n colors={colors}\n tooltip={props.tooltip}\n annotationLookup={annotationLookup}\n hasOnClick={hasOnClick}\n tooltipClickLabel={props.tooltipClickLabel}\n tooltipOptions={tooltipOptions}\n invalidNumberLabel={props.invalidNumberLabel}\n valueFormat={props.yAxis?.format}\n exportTitle={props.exportTitle}\n onReady={props.onReady}\n />\n </div>\n );\n});\n","import { buildAnnotationConfig } from \"../shared/annotations\";\nimport type { ChartAnnotationLookup } from \"../shared/annotations\";\nimport type {\n ChartTooltipProps,\n SeedsChartDataPoint,\n SeedsChartOptions,\n} from \"../shared/chartBase\";\nimport { buildBaseChartOptions } from \"../shared/baseChartOptions\";\nimport { TIME_SERIES_CHART_HEIGHT } from \"../../constants/chartOptions\";\nimport {\n buildDimensionalAxis,\n resolveTooltipOptions,\n} from \"../shared/axisOptions\";\nimport {\n defaultValueAxisLabelFormatter,\n makeValueAxisLabelFormatter,\n} from \"../shared/valueAxisLabelFormatter\";\nimport type { ChartDataPoint } from \"../shared/axis\";\nimport type { LineAreaChartProps, LineAreaVariant } from \"./types\";\n\n// `stacking` is meaningful only for filled variants; on `line`/`spline` it's a\n// no-op, so the adapter drops it rather than emitting a misleading option.\nconst AREA_VARIANTS = new Set<LineAreaVariant>([\"area\", \"areaspline\"]);\n\ntype SeriesPoint =\n | number\n | null\n | [number, number | null]\n | SeedsChartDataPoint;\n\nfunction pointY(point: ChartDataPoint): number | null {\n if (point === null) return null;\n if (typeof point === \"number\") return point;\n if (Array.isArray(point)) return point[1];\n return point.y;\n}\n\n// Point markers are hidden by default (set on `plotOptions.series`), but an\n// *isolated* non-null point — one with a null (or the chart edge) on both\n// sides — gets a circle marker so a point with no connecting line segment\n// stays visible. Connected points pass through unchanged so the line/area\n// renders dot-free, matching the designs.\nfunction withIsolatedPointMarkers(\n data: ReadonlyArray<ChartDataPoint>\n): SeriesPoint[] {\n return data.map((point, i): SeriesPoint => {\n if (point === null) return null; // explicit gap\n if (pointY(point) === null) return point; // tuple/object with null y — a gap\n const prevY = i === 0 ? null : pointY(data[i - 1]!);\n const nextY = i === data.length - 1 ? null : pointY(data[i + 1]!);\n if (prevY !== null || nextY !== null) return point; // connected → no marker\n const marker = { enabled: true, symbol: \"circle\" as const };\n if (typeof point === \"number\") return { y: point, marker };\n if (Array.isArray(point)) return { x: point[0], y: point[1], marker };\n return { ...point, marker };\n });\n}\n\nexport function buildLineAreaChartOptions(props: LineAreaChartProps): {\n options: SeedsChartOptions;\n annotationLookup: ChartAnnotationLookup | undefined;\n /** Resolved datetime-derived tooltip options (timezone / timeFormat / textLocale); all undefined on category axes. */\n tooltipOptions: Pick<\n ChartTooltipProps,\n \"timezone\" | \"timeFormat\" | \"textLocale\"\n >;\n} {\n const tooltipOptions = resolveTooltipOptions(props);\n const isStacked = AREA_VARIANTS.has(props.variant) && Boolean(props.stacking);\n const { annotations, lookup: annotationLookup } = buildAnnotationConfig(\n props.annotations\n );\n\n const base = buildBaseChartOptions({\n type: props.variant,\n description: props.description,\n reserveTopMargin: Boolean(annotations),\n timezone: tooltipOptions.timezone,\n });\n\n const options: SeedsChartOptions = {\n ...base,\n // Default height baseline (overridable via `props.height`) so consumers\n // who don't configure sizing keep the design-reviewed default.\n chart: {\n ...base.chart,\n // Re-assert the definite `type` so spreading the optionally-typed\n // `base.chart` doesn't widen the required `type` field to optional.\n type: props.variant,\n height: props.height ?? TIME_SERIES_CHART_HEIGHT,\n // Tight time-series spacing (from constants/chartOptions.ts) so the plot\n // area fills the 275px container; without it Highcharts' larger default\n // spacing ([10, 10, 15, 10]) shrinks the plot area.\n spacing: [5, 1, 0, 2],\n },\n xAxis: buildDimensionalAxis(props.xAxis, tooltipOptions.timezone ?? \"UTC\"),\n yAxis: {\n min: props.yAxis?.min,\n max: props.yAxis?.max,\n // Anchor the value axis to 0 (as the bar/area families do): line/spline otherwise\n // auto-scale above 0, which truncates the axis and pushes the annotation\n // anchor (y: 0) out of range. `soft` still extends for negative data.\n softMin: 0,\n softMax: 0,\n gridLineWidth: props.yAxis?.showGridLines === false ? 0 : 1,\n // A dedicated plotLine at 0, styled distinctly from regular gridlines\n // (see chartStyles.ts).\n plotLines: [{ value: 0, className: \"y-axis-zero-line\", zIndex: 3 }],\n title: { text: props.yAxis?.title ?? \"\" },\n // Zero-config default: abbreviate value-axis ticks (1.20K / 1.20M / 1.20B).\n labels: {\n // A declarative `format` drives ticks through the shared valueFormatter;\n // absent it, the zero-config decimal default (1.20K / 1.20M / 1.20B).\n formatter: props.yAxis?.format\n ? makeValueAxisLabelFormatter(props.yAxis.format)\n : defaultValueAxisLabelFormatter,\n },\n },\n plotOptions: {\n series: {\n animation: false,\n // Hide point markers by default (per the designs); isolated points\n // re-enable their own marker via `withIsolatedPointMarkers`.\n marker: { enabled: false },\n ...(props.onClick || props.onMouseEnter || props.onMouseLeave\n ? {\n point: {\n events: {\n click: props.onClick\n ? (event) => props.onClick!({ position: event.point.x })\n : undefined,\n mouseOver: props.onMouseEnter\n ? function (this: { x: number | string }) {\n props.onMouseEnter!({ position: this.x });\n }\n : undefined,\n mouseOut: props.onMouseLeave\n ? function (this: { x: number | string }) {\n props.onMouseLeave!({ position: this.x });\n }\n : undefined,\n },\n },\n }\n : {}),\n },\n // Type-scoped stacking: only the (area) variant stacks. `isStacked` already\n // guarantees `props.variant` is an area variant here, so the computed key is\n // always a valid plotOptions slot. Matches bar's per-type placement and keeps\n // line/spline unstacked.\n ...(isStacked ? { [props.variant]: { stacking: props.stacking } } : {}),\n },\n series: props.series.map((s) => ({\n type: props.variant,\n name: s.name,\n data: withIsolatedPointMarkers(s.data),\n })),\n ...(annotations ? { annotations } : {}),\n };\n\n return { options, annotationLookup, tooltipOptions };\n}\n"],"mappings":"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","names":["AREA_VARIANTS","LineAreaChart"]}
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import {
|
|
2
2
|
buildDimensionalAxis,
|
|
3
3
|
resolveTooltipOptions
|
|
4
|
-
} from "../chunk-
|
|
4
|
+
} from "../chunk-CIG5NERD.js";
|
|
5
5
|
import {
|
|
6
6
|
ChartRenderer,
|
|
7
7
|
buildBaseChartOptions
|
|
8
|
-
} from "../chunk-
|
|
9
|
-
import "../chunk-
|
|
8
|
+
} from "../chunk-V63L6753.js";
|
|
9
|
+
import "../chunk-VCTZWYEM.js";
|
|
10
10
|
|
|
11
11
|
// src/charts/sparkline/SparklineChart.tsx
|
|
12
12
|
import { memo } from "react";
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
import {
|
|
2
|
+
getChartContainerProps
|
|
3
|
+
} from "../chunk-P3MVYSHX.js";
|
|
4
|
+
import {
|
|
5
|
+
ChartRenderer,
|
|
6
|
+
buildWordCloudOptions,
|
|
7
|
+
deriveMaxFontSize,
|
|
8
|
+
deriveMaxWordCount,
|
|
9
|
+
deriveWordPadding,
|
|
10
|
+
useSeedsChartSetup
|
|
11
|
+
} from "../chunk-V63L6753.js";
|
|
12
|
+
import "../chunk-VCTZWYEM.js";
|
|
13
|
+
|
|
14
|
+
// src/charts/wordcloud/WordCloud.tsx
|
|
15
|
+
import { memo, useMemo, useRef } from "react";
|
|
16
|
+
import { useMeasure } from "@sproutsocial/seeds-react-hooks";
|
|
17
|
+
import { jsx } from "react/jsx-runtime";
|
|
18
|
+
function resolveActiveGroupIndex(activeGroupId, groups) {
|
|
19
|
+
if (activeGroupId == null || !groups?.length) return void 0;
|
|
20
|
+
const index = groups.findIndex((group) => group.id === activeGroupId);
|
|
21
|
+
return index === -1 ? void 0 : index;
|
|
22
|
+
}
|
|
23
|
+
var WordCloud = memo(function WordCloud2(props) {
|
|
24
|
+
const { colors } = useSeedsChartSetup({
|
|
25
|
+
series: props.groups?.length ? props.groups.map((group) => ({ color: group.color })) : [{ color: void 0 }]
|
|
26
|
+
});
|
|
27
|
+
const containerRef = useRef(null);
|
|
28
|
+
const { width: measuredWidth } = useMeasure(containerRef, true);
|
|
29
|
+
const width = props.width ?? measuredWidth;
|
|
30
|
+
const derivedMaxFontSize = deriveMaxFontSize(width);
|
|
31
|
+
const derivedMaxWordCount = deriveMaxWordCount(width);
|
|
32
|
+
const derivedWordPadding = deriveWordPadding(width);
|
|
33
|
+
const options = useMemo(
|
|
34
|
+
() => buildWordCloudOptions(props, width),
|
|
35
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps -- `width` is intentionally excluded; see the comment above `derivedMaxFontSize`.
|
|
36
|
+
[props, derivedMaxFontSize, derivedMaxWordCount, derivedWordPadding]
|
|
37
|
+
);
|
|
38
|
+
const activeGroupIndex = resolveActiveGroupIndex(
|
|
39
|
+
props.activeGroupId,
|
|
40
|
+
props.groups
|
|
41
|
+
);
|
|
42
|
+
const containerProps = getChartContainerProps({
|
|
43
|
+
familyClasses: ["seeds-chart-wordcloud"],
|
|
44
|
+
// RAW per-group colors only — an unset group falls through to
|
|
45
|
+
// chart-styles.css's --highcharts-color-N default, matching the
|
|
46
|
+
// bubble/bar convention. Only an explicit consumer override is inlined.
|
|
47
|
+
colors: props.groups?.map((group) => group.color) ?? [],
|
|
48
|
+
hasOnClick: Boolean(props.onClick),
|
|
49
|
+
className: props.className
|
|
50
|
+
});
|
|
51
|
+
return /* @__PURE__ */ jsx(
|
|
52
|
+
"div",
|
|
53
|
+
{
|
|
54
|
+
ref: containerRef,
|
|
55
|
+
...containerProps,
|
|
56
|
+
...activeGroupIndex !== void 0 ? { "data-active-group-index": activeGroupIndex } : {},
|
|
57
|
+
// Gate the chart's one-and-only real mount on a genuinely measured
|
|
58
|
+
// width. This container `<div>` still always renders (measuring it
|
|
59
|
+
// is what produces `measuredWidth` in the first place) — but a
|
|
60
|
+
// `width` of 0 means "no room to lay out yet," not "assume the
|
|
61
|
+
// widest case," so nothing else renders until it's positive. This
|
|
62
|
+
// is also what makes Highcharts' native center-burst entrance
|
|
63
|
+
// animation (plotOptions.wordcloud.animation, above) fire on first
|
|
64
|
+
// paint: `chart.hasRendered` never gets set by a wrong-then-corrected
|
|
65
|
+
// double render.
|
|
66
|
+
children: width > 0 && /* @__PURE__ */ jsx(
|
|
67
|
+
ChartRenderer,
|
|
68
|
+
{
|
|
69
|
+
options,
|
|
70
|
+
series: options.series?.length ? [{ name: "Word Cloud" }] : [],
|
|
71
|
+
colors,
|
|
72
|
+
hideLegend: true,
|
|
73
|
+
onReady: props.onReady
|
|
74
|
+
}
|
|
75
|
+
)
|
|
76
|
+
}
|
|
77
|
+
);
|
|
78
|
+
});
|
|
79
|
+
export {
|
|
80
|
+
WordCloud
|
|
81
|
+
};
|
|
82
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/charts/wordcloud/WordCloud.tsx"],"sourcesContent":["import { memo, useMemo, useRef } from \"react\";\nimport { useMeasure } from \"@sproutsocial/seeds-react-hooks\";\nimport { useSeedsChartSetup, ChartRenderer } from \"../shared/chartBase\";\nimport { getChartContainerProps } from \"../shared/chartContainer\";\nimport {\n buildWordCloudOptions,\n deriveMaxFontSize,\n deriveMaxWordCount,\n deriveWordPadding,\n} from \"./adapter\";\nimport type { WordCloudGroup, WordCloudProps } from \"./types\";\n\n/**\n * Resolves `activeGroupId` to its index in `groups` for the container's\n * `data-active-group-index` attribute (layer 2 CSS dimming, wordcloud.css).\n * An unresolvable id (unknown, or no `groups`) is treated the same as\n * null/undefined — no dimming — rather than falling back to group 0, which\n * would incorrectly mark group 0 as \"active\" and dim everything else.\n */\nfunction resolveActiveGroupIndex(\n activeGroupId: string | null | undefined,\n groups: ReadonlyArray<WordCloudGroup> | undefined\n): number | undefined {\n if (activeGroupId == null || !groups?.length) return undefined;\n const index = groups.findIndex((group) => group.id === activeGroupId);\n return index === -1 ? undefined : index;\n}\n\n/**\n * WordCloud renders a Highcharts wordcloud chart from a flat list of weighted\n * words, optionally grouped (competitive coloring + externally-driven dimming\n * via `activeGroupId`).\n *\n * Like BubbleChart/DonutChart, it carries no `styled-components`: the wrapper\n * is a plain `<div>` and the Highcharts styling ships as static CSS. Consumers\n * import both `@sproutsocial/seeds-react-data-viz/chart-styles.css` and\n * `.../wordcloud.css` once (the component never self-imports its CSS).\n */\nexport const WordCloud = memo(function WordCloud(props: WordCloudProps) {\n // One \"series\" input per group (or a single default entry when ungrouped),\n // matching bubble/donut's convention: colorIndex slots map 1:1 to entries\n // here, so the resolved `colors` array sizes and resolves correctly for\n // both the live chart and the styledMode:false export clone.\n const { colors } = useSeedsChartSetup({\n series: props.groups?.length\n ? props.groups.map((group) => ({ color: group.color }))\n : [{ color: undefined }],\n });\n\n const containerRef = useRef<HTMLDivElement>(null);\n // `synchronous: true` reads the container's bounds before first paint\n // instead of waiting on ResizeObserver's own (always-async) first\n // callback — otherwise every derive* below sees a false `width: 0` on\n // mount and renders the widest-case guess before snapping to the real\n // layout a tick later (the flash this family shipped with through Slice\n // 8). An explicit `props.width` skips measurement entirely.\n const { width: measuredWidth } = useMeasure(containerRef, true);\n const width = props.width ?? measuredWidth;\n // These derived values, not raw `width`, drive the memo dependency below.\n // Each is a step function of width (`deriveMaxFontSize`/`deriveMaxWordCount`/\n // `deriveWordPadding` in adapter.ts), so a resize tick that lands in the\n // same bucket for all three — most of them, during a drag-resize — leaves\n // the dependency array unchanged and the options object keeps its identity\n // instead of forcing Highcharts to re-lay out the cloud on every\n // ResizeObserver callback.\n const derivedMaxFontSize = deriveMaxFontSize(width);\n const derivedMaxWordCount = deriveMaxWordCount(width);\n const derivedWordPadding = deriveWordPadding(width);\n const options = useMemo(\n () => buildWordCloudOptions(props, width),\n // eslint-disable-next-line react-hooks/exhaustive-deps -- `width` is intentionally excluded; see the comment above `derivedMaxFontSize`.\n [props, derivedMaxFontSize, derivedMaxWordCount, derivedWordPadding]\n );\n const activeGroupIndex = resolveActiveGroupIndex(\n props.activeGroupId,\n props.groups\n );\n\n const containerProps = getChartContainerProps({\n familyClasses: [\"seeds-chart-wordcloud\"],\n // RAW per-group colors only — an unset group falls through to\n // chart-styles.css's --highcharts-color-N default, matching the\n // bubble/bar convention. Only an explicit consumer override is inlined.\n colors: props.groups?.map((group) => group.color) ?? [],\n hasOnClick: Boolean(props.onClick),\n className: props.className,\n });\n\n return (\n <div\n ref={containerRef}\n {...containerProps}\n {...(activeGroupIndex !== undefined\n ? { \"data-active-group-index\": activeGroupIndex }\n : {})}\n >\n {\n // Gate the chart's one-and-only real mount on a genuinely measured\n // width. This container `<div>` still always renders (measuring it\n // is what produces `measuredWidth` in the first place) — but a\n // `width` of 0 means \"no room to lay out yet,\" not \"assume the\n // widest case,\" so nothing else renders until it's positive. This\n // is also what makes Highcharts' native center-burst entrance\n // animation (plotOptions.wordcloud.animation, above) fire on first\n // paint: `chart.hasRendered` never gets set by a wrong-then-corrected\n // double render.\n width > 0 && (\n <ChartRenderer\n options={options}\n // A single Highcharts series (all words), so a single entry here —\n // its only job is satisfying ChartRenderer's non-empty-series check,\n // since hideLegend suppresses the legend this would otherwise feed.\n series={options.series?.length ? [{ name: \"Word Cloud\" }] : []}\n colors={colors}\n hideLegend\n onReady={props.onReady}\n />\n )\n }\n </div>\n );\n});\n"],"mappings":";;;;;;;;;;;;;;AAAA,SAAS,MAAM,SAAS,cAAc;AACtC,SAAS,kBAAkB;AA0GjB;AAxFV,SAAS,wBACP,eACA,QACoB;AACpB,MAAI,iBAAiB,QAAQ,CAAC,QAAQ,OAAQ,QAAO;AACrD,QAAM,QAAQ,OAAO,UAAU,CAAC,UAAU,MAAM,OAAO,aAAa;AACpE,SAAO,UAAU,KAAK,SAAY;AACpC;AAYO,IAAM,YAAY,KAAK,SAASA,WAAU,OAAuB;AAKtE,QAAM,EAAE,OAAO,IAAI,mBAAmB;AAAA,IACpC,QAAQ,MAAM,QAAQ,SAClB,MAAM,OAAO,IAAI,CAAC,WAAW,EAAE,OAAO,MAAM,MAAM,EAAE,IACpD,CAAC,EAAE,OAAO,OAAU,CAAC;AAAA,EAC3B,CAAC;AAED,QAAM,eAAe,OAAuB,IAAI;AAOhD,QAAM,EAAE,OAAO,cAAc,IAAI,WAAW,cAAc,IAAI;AAC9D,QAAM,QAAQ,MAAM,SAAS;AAQ7B,QAAM,qBAAqB,kBAAkB,KAAK;AAClD,QAAM,sBAAsB,mBAAmB,KAAK;AACpD,QAAM,qBAAqB,kBAAkB,KAAK;AAClD,QAAM,UAAU;AAAA,IACd,MAAM,sBAAsB,OAAO,KAAK;AAAA;AAAA,IAExC,CAAC,OAAO,oBAAoB,qBAAqB,kBAAkB;AAAA,EACrE;AACA,QAAM,mBAAmB;AAAA,IACvB,MAAM;AAAA,IACN,MAAM;AAAA,EACR;AAEA,QAAM,iBAAiB,uBAAuB;AAAA,IAC5C,eAAe,CAAC,uBAAuB;AAAA;AAAA;AAAA;AAAA,IAIvC,QAAQ,MAAM,QAAQ,IAAI,CAAC,UAAU,MAAM,KAAK,KAAK,CAAC;AAAA,IACtD,YAAY,QAAQ,MAAM,OAAO;AAAA,IACjC,WAAW,MAAM;AAAA,EACnB,CAAC;AAED,SACE;AAAA,IAAC;AAAA;AAAA,MACC,KAAK;AAAA,MACJ,GAAG;AAAA,MACH,GAAI,qBAAqB,SACtB,EAAE,2BAA2B,iBAAiB,IAC9C,CAAC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MAYH,kBAAQ,KACN;AAAA,QAAC;AAAA;AAAA,UACC;AAAA,UAIA,QAAQ,QAAQ,QAAQ,SAAS,CAAC,EAAE,MAAM,aAAa,CAAC,IAAI,CAAC;AAAA,UAC7D;AAAA,UACA,YAAU;AAAA,UACV,SAAS,MAAM;AAAA;AAAA,MACjB;AAAA;AAAA,EAGN;AAEJ,CAAC;","names":["WordCloud"]}
|
package/dist/index.d.mts
CHANGED
|
@@ -9,7 +9,7 @@ import { Chart, TooltipFormatterContextObject, SeriesSplineOptions, SeriesAreasp
|
|
|
9
9
|
import { TypeIconName } from '@sproutsocial/seeds-react-icon';
|
|
10
10
|
import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
11
11
|
import * as styled_components from 'styled-components';
|
|
12
|
-
export { B as BUBBLE_CHART_DEFAULT_MAX_SIZE, a as BUBBLE_CHART_DEFAULT_PADDING, b as BUBBLE_CHART_HEIGHT, D as DONUT_CHART_HALO_SIZE, c as DONUT_CHART_HEIGHT, d as DONUT_CHART_WIDTH, T as TIME_SERIES_CHART_HEIGHT, V as VERTICAL_BAR_CHART_DEFAULT_SERIES_LIMIT, e as areaChartOptions, f as baseChartOptions, g as columnChartOptions, h as defaultBubbleChartWidth, i as donutChartOptions, l as lineChartOptions, t as timeSeriesChartOptions } from './chartOptions-
|
|
12
|
+
export { B as BUBBLE_CHART_DEFAULT_MAX_SIZE, a as BUBBLE_CHART_DEFAULT_PADDING, b as BUBBLE_CHART_HEIGHT, D as DONUT_CHART_HALO_SIZE, c as DONUT_CHART_HEIGHT, d as DONUT_CHART_WIDTH, T as TIME_SERIES_CHART_HEIGHT, V as VERTICAL_BAR_CHART_DEFAULT_SERIES_LIMIT, W as WORD_CLOUD_CHART_HEIGHT, e as areaChartOptions, f as baseChartOptions, g as columnChartOptions, h as defaultBubbleChartWidth, i as donutChartOptions, l as lineChartOptions, t as timeSeriesChartOptions } from './chartOptions-D6MzNjbB.mjs';
|
|
13
13
|
|
|
14
14
|
type TypeAreaChartProps = Readonly<{
|
|
15
15
|
data: ReadonlyArray<Readonly<{
|
package/dist/index.d.ts
CHANGED
|
@@ -9,7 +9,7 @@ import { Chart, TooltipFormatterContextObject, SeriesSplineOptions, SeriesAreasp
|
|
|
9
9
|
import { TypeIconName } from '@sproutsocial/seeds-react-icon';
|
|
10
10
|
import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
11
11
|
import * as styled_components from 'styled-components';
|
|
12
|
-
export { B as BUBBLE_CHART_DEFAULT_MAX_SIZE, a as BUBBLE_CHART_DEFAULT_PADDING, b as BUBBLE_CHART_HEIGHT, D as DONUT_CHART_HALO_SIZE, c as DONUT_CHART_HEIGHT, d as DONUT_CHART_WIDTH, T as TIME_SERIES_CHART_HEIGHT, V as VERTICAL_BAR_CHART_DEFAULT_SERIES_LIMIT, e as areaChartOptions, f as baseChartOptions, g as columnChartOptions, h as defaultBubbleChartWidth, i as donutChartOptions, l as lineChartOptions, t as timeSeriesChartOptions } from './chartOptions-
|
|
12
|
+
export { B as BUBBLE_CHART_DEFAULT_MAX_SIZE, a as BUBBLE_CHART_DEFAULT_PADDING, b as BUBBLE_CHART_HEIGHT, D as DONUT_CHART_HALO_SIZE, c as DONUT_CHART_HEIGHT, d as DONUT_CHART_WIDTH, T as TIME_SERIES_CHART_HEIGHT, V as VERTICAL_BAR_CHART_DEFAULT_SERIES_LIMIT, W as WORD_CLOUD_CHART_HEIGHT, e as areaChartOptions, f as baseChartOptions, g as columnChartOptions, h as defaultBubbleChartWidth, i as donutChartOptions, l as lineChartOptions, t as timeSeriesChartOptions } from './chartOptions-D6MzNjbB.js';
|
|
13
13
|
|
|
14
14
|
type TypeAreaChartProps = Readonly<{
|
|
15
15
|
data: ReadonlyArray<Readonly<{
|
package/dist/index.js
CHANGED
|
@@ -14,7 +14,6 @@
|
|
|
14
14
|
|
|
15
15
|
|
|
16
16
|
|
|
17
|
-
var _chunk33Y5FZTTjs = require('./chunk-33Y5FZTT.js');
|
|
18
17
|
|
|
19
18
|
|
|
20
19
|
|
|
@@ -34,7 +33,7 @@ var _chunk33Y5FZTTjs = require('./chunk-33Y5FZTT.js');
|
|
|
34
33
|
|
|
35
34
|
|
|
36
35
|
|
|
37
|
-
var
|
|
36
|
+
var _chunkLWDHU4QKjs = require('./chunk-LWDHU4QK.js');
|
|
38
37
|
|
|
39
38
|
// src/components/AreaChart/AreaChart.tsx
|
|
40
39
|
var _react = require('react');
|
|
@@ -52,7 +51,7 @@ var _seedsreacttheme = require('@sproutsocial/seeds-react-theme');
|
|
|
52
51
|
// src/components/ColorBox/DatavizColorBox.tsx
|
|
53
52
|
|
|
54
53
|
|
|
55
|
-
var DatavizColorBox = _styledcomponents2.default.call(void 0,
|
|
54
|
+
var DatavizColorBox = _styledcomponents2.default.call(void 0, _chunkLWDHU4QKjs.ColorBox).attrs(
|
|
56
55
|
({ colorIndex }) => ({
|
|
57
56
|
style: {
|
|
58
57
|
background: getDatavizColor(colorIndex),
|
|
@@ -82,7 +81,7 @@ var NetworkColorBox = ({
|
|
|
82
81
|
networkColor,
|
|
83
82
|
...props
|
|
84
83
|
}) => {
|
|
85
|
-
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
84
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkLWDHU4QKjs.ColorBox, { ...props, bg: _seedsnetworkcolor2.default[networkColor] });
|
|
86
85
|
};
|
|
87
86
|
|
|
88
87
|
// src/components/ChartLegend/components/ChartLegendLabelContentWithIcon.tsx
|
|
@@ -113,7 +112,7 @@ var getAreaChartLegendLabels = ({
|
|
|
113
112
|
};
|
|
114
113
|
var AreaChartLegend = _react.memo.call(void 0,
|
|
115
114
|
function AreaChartLegend2({ data }) {
|
|
116
|
-
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
115
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkLWDHU4QKjs.ChartLegend, { legendLabels: getAreaChartLegendLabels({ data }) });
|
|
117
116
|
}
|
|
118
117
|
);
|
|
119
118
|
|
|
@@ -146,7 +145,7 @@ var AreaChartTooltip = _react.memo.call(void 0,
|
|
|
146
145
|
return {
|
|
147
146
|
cells: [
|
|
148
147
|
{
|
|
149
|
-
content: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
148
|
+
content: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkLWDHU4QKjs.ChartLegendLabel, { color, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, ChartLegendLabelContentWithIcon, { icon, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _seedsreacttext.Text, { "aria-label": `${name}: `, children: name }) }) })
|
|
150
149
|
},
|
|
151
150
|
{
|
|
152
151
|
content: value === null && invalidNumberLabel ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _seedsreacttext.Text, { children: invalidNumberLabel }) : numberFormat === "duration" ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _seedsreactduration.Duration, { locale: textLocale, milliseconds: value }) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
@@ -194,16 +193,16 @@ var AreaChartTooltip = _react.memo.call(void 0,
|
|
|
194
193
|
isAppendedRow: true
|
|
195
194
|
}
|
|
196
195
|
] : [];
|
|
197
|
-
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
196
|
+
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkLWDHU4QKjs.ChartTooltip, { children: [
|
|
198
197
|
xAnnotationDetails ? xAnnotationDetails() : void 0,
|
|
199
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
198
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkLWDHU4QKjs.ChartTooltipTitle, { children: tooltipDateFormatter({ x }) }),
|
|
200
199
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
201
|
-
|
|
200
|
+
_chunkLWDHU4QKjs.ChartTooltipTable,
|
|
202
201
|
{
|
|
203
202
|
rows: [...rows, ...appendedRows]
|
|
204
203
|
}
|
|
205
204
|
),
|
|
206
|
-
onClick && tooltipClickLabel ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
205
|
+
onClick && tooltipClickLabel ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkLWDHU4QKjs.ChartTooltipFooter, { children: typeof tooltipClickLabel === "string" ? /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _seedsreactbox.Box, { display: "flex", alignItems: "center", gap: 300, children: [
|
|
207
206
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _seedsreacticon.Icon, { name: "hand-pointer-clicking-outline", color: "icon.base" }),
|
|
208
207
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _seedsreacttext.Text, { color: "text.subtext", fontSize: 200, children: tooltipClickLabel })
|
|
209
208
|
] }) : tooltipClickLabel }) : null
|
|
@@ -700,13 +699,13 @@ var useTimeSeriesChartOptions = ({
|
|
|
700
699
|
const getBaseChartOptions = (type) => {
|
|
701
700
|
switch (type) {
|
|
702
701
|
case "areaspline":
|
|
703
|
-
return
|
|
702
|
+
return _chunkLWDHU4QKjs.areaChartOptions;
|
|
704
703
|
case "spline":
|
|
705
|
-
return
|
|
704
|
+
return _chunkLWDHU4QKjs.lineChartOptions;
|
|
706
705
|
case "column":
|
|
707
|
-
return
|
|
706
|
+
return _chunkLWDHU4QKjs.columnChartOptions;
|
|
708
707
|
default:
|
|
709
|
-
return
|
|
708
|
+
return _chunkLWDHU4QKjs.lineChartOptions;
|
|
710
709
|
}
|
|
711
710
|
};
|
|
712
711
|
const baseChartOptions2 = getBaseChartOptions(seriesType);
|
|
@@ -736,7 +735,7 @@ var useTimeSeriesChartOptions = ({
|
|
|
736
735
|
return onClick({ x: _optionalChain([this, 'optionalAccess', _28 => _28.hoverPoint, 'optionalAccess', _29 => _29.x]) });
|
|
737
736
|
} : void 0,
|
|
738
737
|
load: function() {
|
|
739
|
-
const tooltipId =
|
|
738
|
+
const tooltipId = _chunkLWDHU4QKjs.generateChartTooltipPortalId.call(void 0, this.index);
|
|
740
739
|
attachTooltipEventListeners(this.series, tooltipId);
|
|
741
740
|
}
|
|
742
741
|
}
|
|
@@ -902,7 +901,7 @@ var xAxisLabelFormatterDefault = xAxisLabelFormatter;
|
|
|
902
901
|
_accessibility2.default.call(void 0, _highcharts2.default);
|
|
903
902
|
_annotations2.default.call(void 0, _highcharts2.default);
|
|
904
903
|
var StyledBox = _styledcomponents2.default.call(void 0, _seedsreactbox.Box)`
|
|
905
|
-
${
|
|
904
|
+
${_chunkLWDHU4QKjs.areaChartStyles}
|
|
906
905
|
`;
|
|
907
906
|
var AreaChart = _react.memo.call(void 0, function AreaChart2(props) {
|
|
908
907
|
const { data } = props;
|
|
@@ -945,7 +944,7 @@ var AreaChartWithData = _react.memo.call(void 0, function AreaChartWithData2({
|
|
|
945
944
|
(series, index) => _nullishCoalesce(_optionalChain([series, 'access', _32 => _32.styles, 'optionalAccess', _33 => _33.color]), () => ( _seedsreacttheme.theme.colors.DATAVIZ_COLORS_LIST[index]))
|
|
946
945
|
);
|
|
947
946
|
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment, { children: [
|
|
948
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
947
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkLWDHU4QKjs.GlobalChartStyleOverrides, {}),
|
|
949
948
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
950
949
|
StyledBox,
|
|
951
950
|
{
|
|
@@ -970,11 +969,11 @@ var AreaChartWithData = _react.memo.call(void 0, function AreaChartWithData2({
|
|
|
970
969
|
}
|
|
971
970
|
) : null,
|
|
972
971
|
chart && !disableTooltips ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
973
|
-
|
|
972
|
+
_chunkLWDHU4QKjs.ChartTooltipPortal,
|
|
974
973
|
{
|
|
975
974
|
chart,
|
|
976
975
|
renderContent: (context) => {
|
|
977
|
-
const tooltipData =
|
|
976
|
+
const tooltipData = _chunkLWDHU4QKjs.transformTimeSeriesTooltipData.call(void 0, {
|
|
978
977
|
context,
|
|
979
978
|
data
|
|
980
979
|
});
|
|
@@ -1017,7 +1016,7 @@ var AreaChartWithData = _react.memo.call(void 0, function AreaChartWithData2({
|
|
|
1017
1016
|
|
|
1018
1017
|
var ChartXAnnotationDetails = _react.memo.call(void 0,
|
|
1019
1018
|
function ChartXAnnotationDetails2({ iconName, text }) {
|
|
1020
|
-
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
1019
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkLWDHU4QKjs.ChartTooltipHeader, { children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _seedsreactbox.Box, { display: "flex", alignItems: "center", gap: 300, children: [
|
|
1021
1020
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _seedsreacticon.Icon, { name: iconName, size: "mini", color: "icon.base" }),
|
|
1022
1021
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _seedsreacttext.Text, { color: "text.body", fontSize: 200, children: text })
|
|
1023
1022
|
] }) });
|
|
@@ -1072,7 +1071,7 @@ var getDonutChartLegendLabels = ({
|
|
|
1072
1071
|
};
|
|
1073
1072
|
var DonutChartLegend = _react.memo.call(void 0,
|
|
1074
1073
|
function DonutChartLegend2({ data }) {
|
|
1075
|
-
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
1074
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkLWDHU4QKjs.ChartLegend, { legendLabels: getDonutChartLegendLabels({ data }) });
|
|
1076
1075
|
}
|
|
1077
1076
|
);
|
|
1078
1077
|
|
|
@@ -1102,7 +1101,7 @@ var DonutChartTooltip = _react.memo.call(void 0,
|
|
|
1102
1101
|
{
|
|
1103
1102
|
cells: [
|
|
1104
1103
|
{
|
|
1105
|
-
content: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
1104
|
+
content: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkLWDHU4QKjs.ChartLegendLabel, { color, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, ChartLegendLabelContentWithIcon, { icon, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _seedsreacttext.Text, { "aria-label": `${name}: `, children: name }) }) })
|
|
1106
1105
|
},
|
|
1107
1106
|
{
|
|
1108
1107
|
content: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _seedsreactbox.Box, { display: "inline-flex", alignItems: "center", gap: 350, children: [
|
|
@@ -1131,9 +1130,9 @@ var DonutChartTooltip = _react.memo.call(void 0,
|
|
|
1131
1130
|
]
|
|
1132
1131
|
}
|
|
1133
1132
|
];
|
|
1134
|
-
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
1135
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
1136
|
-
onClick && tooltipClickLabel ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
1133
|
+
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkLWDHU4QKjs.ChartTooltip, { children: [
|
|
1134
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkLWDHU4QKjs.ChartTooltipTable, { rows }),
|
|
1135
|
+
onClick && tooltipClickLabel ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkLWDHU4QKjs.ChartTooltipFooter, { children: typeof tooltipClickLabel === "string" ? /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _seedsreactbox.Box, { display: "flex", alignItems: "center", gap: 300, children: [
|
|
1137
1136
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _seedsreacticon.Icon, { name: "hand-pointer-clicking-outline", color: "icon.base" }),
|
|
1138
1137
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _seedsreacttext.Text, { color: "text.subtext", fontSize: 200, children: tooltipClickLabel })
|
|
1139
1138
|
] }) : tooltipClickLabel }) : null
|
|
@@ -1162,7 +1161,7 @@ var transformDonutChartTooltipData = ({
|
|
|
1162
1161
|
|
|
1163
1162
|
_accessibility2.default.call(void 0, _highcharts2.default);
|
|
1164
1163
|
var StyledBox2 = _styledcomponents2.default.call(void 0, _seedsreactbox.Box)`
|
|
1165
|
-
${
|
|
1164
|
+
${_chunkLWDHU4QKjs.donutChartStyles}
|
|
1166
1165
|
`;
|
|
1167
1166
|
var DonutChart = _react.memo.call(void 0, function DonutChart2(props) {
|
|
1168
1167
|
const { data } = props;
|
|
@@ -1182,7 +1181,7 @@ var DonutChartWithData = _react.memo.call(void 0,
|
|
|
1182
1181
|
onClick,
|
|
1183
1182
|
tooltipClickLabel
|
|
1184
1183
|
}) {
|
|
1185
|
-
const [options, setOptions] = _react.useState.call(void 0,
|
|
1184
|
+
const [options, setOptions] = _react.useState.call(void 0, _chunkLWDHU4QKjs.donutChartOptions);
|
|
1186
1185
|
const [chart, setChart] = _react.useState.call(void 0, null);
|
|
1187
1186
|
const callback = _react.useCallback.call(void 0, (chartInstance) => {
|
|
1188
1187
|
setChart(chartInstance);
|
|
@@ -1200,7 +1199,7 @@ var DonutChartWithData = _react.memo.call(void 0,
|
|
|
1200
1199
|
events: {
|
|
1201
1200
|
render: function() {
|
|
1202
1201
|
const allSlices = _nullishCoalesce(_optionalChain([this, 'access', _49 => _49.series, 'access', _50 => _50[0], 'optionalAccess', _51 => _51.data]), () => ( []));
|
|
1203
|
-
const tooltipId =
|
|
1202
|
+
const tooltipId = _chunkLWDHU4QKjs.generateChartTooltipPortalId.call(void 0, this.index);
|
|
1204
1203
|
allSlices.forEach((slice) => {
|
|
1205
1204
|
const sliceElement = _optionalChain([slice, 'optionalAccess', _52 => _52.graphic, 'optionalAccess', _53 => _53.element]);
|
|
1206
1205
|
_optionalChain([sliceElement, 'optionalAccess', _54 => _54.setAttribute, 'call', _55 => _55("aria-describedby", tooltipId)]);
|
|
@@ -1240,7 +1239,7 @@ var DonutChartWithData = _react.memo.call(void 0,
|
|
|
1240
1239
|
(series, index) => _nullishCoalesce(_nullishCoalesce(_optionalChain([series, 'access', _60 => _60.styles, 'optionalAccess', _61 => _61.color]), () => ( _seedsreacttheme.theme.colors.DATAVIZ_COLORS_LIST[index])), () => ( ""))
|
|
1241
1240
|
);
|
|
1242
1241
|
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment, { children: [
|
|
1243
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
1242
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkLWDHU4QKjs.GlobalChartStyleOverrides, {}),
|
|
1244
1243
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
1245
1244
|
StyledBox2,
|
|
1246
1245
|
{
|
|
@@ -1257,7 +1256,7 @@ var DonutChartWithData = _react.memo.call(void 0,
|
|
|
1257
1256
|
}
|
|
1258
1257
|
),
|
|
1259
1258
|
chart && !disableTooltips ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
1260
|
-
|
|
1259
|
+
_chunkLWDHU4QKjs.ChartTooltipPortal,
|
|
1261
1260
|
{
|
|
1262
1261
|
chart,
|
|
1263
1262
|
renderContent: (context) => {
|
|
@@ -1317,7 +1316,7 @@ var DonutChartLegendTable = _react.memo.call(void 0,
|
|
|
1317
1316
|
return {
|
|
1318
1317
|
cells: [
|
|
1319
1318
|
{
|
|
1320
|
-
content: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
1319
|
+
content: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkLWDHU4QKjs.ChartLegendLabel, { color, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, ChartLegendLabelContentWithIcon, { icon, children: name }) })
|
|
1321
1320
|
},
|
|
1322
1321
|
{
|
|
1323
1322
|
content: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _seedsreactbox.Box, { display: "inline-flex", alignItems: "center", gap: 350, children: [
|
|
@@ -1370,7 +1369,7 @@ var DonutChartLegendTable = _react.memo.call(void 0,
|
|
|
1370
1369
|
}
|
|
1371
1370
|
];
|
|
1372
1371
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
1373
|
-
|
|
1372
|
+
_chunkLWDHU4QKjs.ChartTable,
|
|
1374
1373
|
{
|
|
1375
1374
|
rows: [...rows, ...totalRow]
|
|
1376
1375
|
}
|
|
@@ -1401,7 +1400,7 @@ var getLineChartLegendLabels = ({
|
|
|
1401
1400
|
};
|
|
1402
1401
|
var LineChartLegend = _react.memo.call(void 0,
|
|
1403
1402
|
function LineChartLegend2({ data }) {
|
|
1404
|
-
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
1403
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkLWDHU4QKjs.ChartLegend, { legendLabels: getLineChartLegendLabels({ data }) });
|
|
1405
1404
|
}
|
|
1406
1405
|
);
|
|
1407
1406
|
|
|
@@ -1432,7 +1431,7 @@ var LineChartTooltip = _react.memo.call(void 0,
|
|
|
1432
1431
|
return {
|
|
1433
1432
|
cells: [
|
|
1434
1433
|
{
|
|
1435
|
-
content: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
1434
|
+
content: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkLWDHU4QKjs.ChartLegendLabel, { color, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, ChartLegendLabelContentWithIcon, { icon, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _seedsreacttext.Text, { "aria-label": `${name}: `, children: name }) }) })
|
|
1436
1435
|
},
|
|
1437
1436
|
{
|
|
1438
1437
|
content: value === null && invalidNumberLabel ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _seedsreacttext.Text, { children: invalidNumberLabel }) : numberFormat === "duration" ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _seedsreactduration.Duration, { locale: textLocale, milliseconds: value }) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
@@ -1450,11 +1449,11 @@ var LineChartTooltip = _react.memo.call(void 0,
|
|
|
1450
1449
|
]
|
|
1451
1450
|
};
|
|
1452
1451
|
});
|
|
1453
|
-
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
1452
|
+
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkLWDHU4QKjs.ChartTooltip, { children: [
|
|
1454
1453
|
xAnnotationDetails ? xAnnotationDetails() : void 0,
|
|
1455
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
1456
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
1457
|
-
onClick && tooltipClickLabel ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
1454
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkLWDHU4QKjs.ChartTooltipTitle, { children: tooltipDateFormatter({ x }) }),
|
|
1455
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkLWDHU4QKjs.ChartTooltipTable, { rows }),
|
|
1456
|
+
onClick && tooltipClickLabel ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkLWDHU4QKjs.ChartTooltipFooter, { children: typeof tooltipClickLabel === "string" ? /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _seedsreactbox.Box, { display: "flex", alignItems: "center", gap: 300, children: [
|
|
1458
1457
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _seedsreacticon.Icon, { name: "hand-pointer-clicking-outline", color: "icon.base" }),
|
|
1459
1458
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _seedsreacttext.Text, { color: "text.subtext", fontSize: 200, children: tooltipClickLabel })
|
|
1460
1459
|
] }) : tooltipClickLabel }) : null
|
|
@@ -1468,7 +1467,7 @@ var LineChartTooltip = _react.memo.call(void 0,
|
|
|
1468
1467
|
_accessibility2.default.call(void 0, _highcharts2.default);
|
|
1469
1468
|
_annotations2.default.call(void 0, _highcharts2.default);
|
|
1470
1469
|
var StyledBox3 = _styledcomponents2.default.call(void 0, _seedsreactbox.Box)`
|
|
1471
|
-
${
|
|
1470
|
+
${_chunkLWDHU4QKjs.lineChartStyles}
|
|
1472
1471
|
`;
|
|
1473
1472
|
var LineChart = _react.memo.call(void 0, function LineChart2(props) {
|
|
1474
1473
|
const { data } = props;
|
|
@@ -1522,7 +1521,7 @@ var LineChartWithData = _react.memo.call(void 0, function LineChartWithData2({
|
|
|
1522
1521
|
}
|
|
1523
1522
|
);
|
|
1524
1523
|
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment, { children: [
|
|
1525
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
1524
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkLWDHU4QKjs.GlobalChartStyleOverrides, {}),
|
|
1526
1525
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
1527
1526
|
StyledBox3,
|
|
1528
1527
|
{
|
|
@@ -1548,11 +1547,11 @@ var LineChartWithData = _react.memo.call(void 0, function LineChartWithData2({
|
|
|
1548
1547
|
}
|
|
1549
1548
|
) : null,
|
|
1550
1549
|
chart && !disableTooltips ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
1551
|
-
|
|
1550
|
+
_chunkLWDHU4QKjs.ChartTooltipPortal,
|
|
1552
1551
|
{
|
|
1553
1552
|
chart,
|
|
1554
1553
|
renderContent: (context) => {
|
|
1555
|
-
const tooltipData =
|
|
1554
|
+
const tooltipData = _chunkLWDHU4QKjs.transformTimeSeriesTooltipData.call(void 0, {
|
|
1556
1555
|
context,
|
|
1557
1556
|
data
|
|
1558
1557
|
});
|
|
@@ -1607,7 +1606,7 @@ var getVerticalBarChartLegendLabels = ({
|
|
|
1607
1606
|
};
|
|
1608
1607
|
var VerticalBarChartLegend = _react.memo.call(void 0,
|
|
1609
1608
|
function VerticalbarChartLegend({ data }) {
|
|
1610
|
-
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
1609
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkLWDHU4QKjs.ChartLegend, { legendLabels: getVerticalBarChartLegendLabels({ data }) });
|
|
1611
1610
|
}
|
|
1612
1611
|
);
|
|
1613
1612
|
|
|
@@ -1638,7 +1637,7 @@ var VerticalBarChartTooltip = _react.memo.call(void 0,
|
|
|
1638
1637
|
return {
|
|
1639
1638
|
cells: [
|
|
1640
1639
|
{
|
|
1641
|
-
content: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
1640
|
+
content: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkLWDHU4QKjs.ChartLegendLabel, { color, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, ChartLegendLabelContentWithIcon, { icon, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _seedsreacttext.Text, { "aria-label": `${name}: `, children: name }) }) })
|
|
1642
1641
|
},
|
|
1643
1642
|
{
|
|
1644
1643
|
content: value === null && invalidNumberLabel ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _seedsreacttext.Text, { children: invalidNumberLabel }) : numberFormat === "duration" ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _seedsreactduration.Duration, { locale: textLocale, milliseconds: value }) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
@@ -1656,11 +1655,11 @@ var VerticalBarChartTooltip = _react.memo.call(void 0,
|
|
|
1656
1655
|
]
|
|
1657
1656
|
};
|
|
1658
1657
|
});
|
|
1659
|
-
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
1658
|
+
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkLWDHU4QKjs.ChartTooltip, { children: [
|
|
1660
1659
|
xAnnotationDetails ? xAnnotationDetails() : void 0,
|
|
1661
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
1662
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
1663
|
-
onClick && tooltipClickLabel ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
1660
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkLWDHU4QKjs.ChartTooltipTitle, { children: tooltipDateFormatter({ x }) }),
|
|
1661
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkLWDHU4QKjs.ChartTooltipTable, { rows }),
|
|
1662
|
+
onClick && tooltipClickLabel ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkLWDHU4QKjs.ChartTooltipFooter, { children: typeof tooltipClickLabel === "string" ? /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _seedsreactbox.Box, { display: "flex", alignItems: "center", gap: 300, children: [
|
|
1664
1663
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _seedsreacticon.Icon, { name: "hand-pointer-clicking-outline", color: "icon.base" }),
|
|
1665
1664
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _seedsreacttext.Text, { color: "text.subtext", fontSize: 200, children: tooltipClickLabel })
|
|
1666
1665
|
] }) : tooltipClickLabel }) : null
|
|
@@ -1674,7 +1673,7 @@ var VerticalBarChartTooltip = _react.memo.call(void 0,
|
|
|
1674
1673
|
// src/components/VerticalBarChart/styles.ts
|
|
1675
1674
|
|
|
1676
1675
|
var verticalBarChartStyles = _styledcomponents.css`
|
|
1677
|
-
${
|
|
1676
|
+
${_chunkLWDHU4QKjs.timeSeriesChartStyles}
|
|
1678
1677
|
|
|
1679
1678
|
/*
|
|
1680
1679
|
When the chart container is hovered, reduce the opacity of all columns.
|
|
@@ -1700,7 +1699,7 @@ var StyledBox4 = _styledcomponents2.default.call(void 0, _seedsreactbox.Box)`
|
|
|
1700
1699
|
var VerticalBarChart = _react.memo.call(void 0,
|
|
1701
1700
|
function VerticalBarChart2(props) {
|
|
1702
1701
|
const { data, showSeriesLimitWarning = true } = props;
|
|
1703
|
-
const seriesLimit = _nullishCoalesce(props.seriesLimit, () => (
|
|
1702
|
+
const seriesLimit = _nullishCoalesce(props.seriesLimit, () => ( _chunkLWDHU4QKjs.VERTICAL_BAR_CHART_DEFAULT_SERIES_LIMIT));
|
|
1704
1703
|
const isSeriesLimitOverridden = props.seriesLimit !== void 0;
|
|
1705
1704
|
if (data.length === 0) {
|
|
1706
1705
|
return null;
|
|
@@ -1802,7 +1801,7 @@ var VerticalBarChartWithData = _react.memo.call(void 0,
|
|
|
1802
1801
|
}
|
|
1803
1802
|
);
|
|
1804
1803
|
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment, { children: [
|
|
1805
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
1804
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkLWDHU4QKjs.GlobalChartStyleOverrides, {}),
|
|
1806
1805
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
1807
1806
|
StyledBox4,
|
|
1808
1807
|
{
|
|
@@ -1827,11 +1826,11 @@ var VerticalBarChartWithData = _react.memo.call(void 0,
|
|
|
1827
1826
|
}
|
|
1828
1827
|
) : null,
|
|
1829
1828
|
chart ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
1830
|
-
|
|
1829
|
+
_chunkLWDHU4QKjs.ChartTooltipPortal,
|
|
1831
1830
|
{
|
|
1832
1831
|
chart,
|
|
1833
1832
|
renderContent: (context) => {
|
|
1834
|
-
const tooltipData =
|
|
1833
|
+
const tooltipData = _chunkLWDHU4QKjs.transformTimeSeriesTooltipData.call(void 0, {
|
|
1835
1834
|
context,
|
|
1836
1835
|
data
|
|
1837
1836
|
});
|
|
@@ -1916,5 +1915,6 @@ var VerticalBarChartWithData = _react.memo.call(void 0,
|
|
|
1916
1915
|
|
|
1917
1916
|
|
|
1918
1917
|
|
|
1919
|
-
|
|
1918
|
+
|
|
1919
|
+
exports.AreaChart = AreaChart; exports.BUBBLE_CHART_DEFAULT_MAX_SIZE = _chunkLWDHU4QKjs.BUBBLE_CHART_DEFAULT_MAX_SIZE; exports.BUBBLE_CHART_DEFAULT_PADDING = _chunkLWDHU4QKjs.BUBBLE_CHART_DEFAULT_PADDING; exports.BUBBLE_CHART_HEIGHT = _chunkLWDHU4QKjs.BUBBLE_CHART_HEIGHT; exports.ChartLegend = _chunkLWDHU4QKjs.ChartLegend; exports.ChartLegendLabel = _chunkLWDHU4QKjs.ChartLegendLabel; exports.ChartTable = _chunkLWDHU4QKjs.ChartTable; exports.ChartTooltip = _chunkLWDHU4QKjs.ChartTooltip; exports.ChartTooltipFooter = _chunkLWDHU4QKjs.ChartTooltipFooter; exports.ChartTooltipHeader = _chunkLWDHU4QKjs.ChartTooltipHeader; exports.ChartTooltipPortal = _chunkLWDHU4QKjs.ChartTooltipPortal; exports.ChartTooltipTable = _chunkLWDHU4QKjs.ChartTooltipTable; exports.ChartTooltipTitle = _chunkLWDHU4QKjs.ChartTooltipTitle; exports.ChartXAnnotationDetails = ChartXAnnotationDetails; exports.ChartXAnnotationMarker = ChartXAnnotationMarker; exports.ColorBox = _chunkLWDHU4QKjs.ColorBox; exports.DONUT_CHART_HALO_SIZE = _chunkLWDHU4QKjs.DONUT_CHART_HALO_SIZE; exports.DONUT_CHART_HEIGHT = _chunkLWDHU4QKjs.DONUT_CHART_HEIGHT; exports.DONUT_CHART_WIDTH = _chunkLWDHU4QKjs.DONUT_CHART_WIDTH; exports.DatavizColorBox = DatavizColorBox; exports.DonutChart = DonutChart; exports.DonutChartLegendTable = DonutChartLegendTable; exports.GlobalChartStyleOverrides = _chunkLWDHU4QKjs.GlobalChartStyleOverrides; exports.LineChart = LineChart; exports.NetworkColorBox = NetworkColorBox; exports.TIME_SERIES_CHART_HEIGHT = _chunkLWDHU4QKjs.TIME_SERIES_CHART_HEIGHT; exports.VERTICAL_BAR_CHART_DEFAULT_SERIES_LIMIT = _chunkLWDHU4QKjs.VERTICAL_BAR_CHART_DEFAULT_SERIES_LIMIT; exports.VerticalBarChart = VerticalBarChart; exports.WORD_CLOUD_CHART_HEIGHT = _chunkLWDHU4QKjs.WORD_CLOUD_CHART_HEIGHT; exports.areaChartOptions = _chunkLWDHU4QKjs.areaChartOptions; exports.areaChartStyles = _chunkLWDHU4QKjs.areaChartStyles; exports.baseChartOptions = _chunkLWDHU4QKjs.baseChartOptions; exports.baseChartStyles = _chunkLWDHU4QKjs.baseChartStyles; exports.columnChartOptions = _chunkLWDHU4QKjs.columnChartOptions; exports.defaultBubbleChartWidth = _chunkLWDHU4QKjs.defaultBubbleChartWidth; exports.donutChartOptions = _chunkLWDHU4QKjs.donutChartOptions; exports.donutChartStyles = _chunkLWDHU4QKjs.donutChartStyles; exports.generateChartTooltipPortalId = _chunkLWDHU4QKjs.generateChartTooltipPortalId; exports.getDatavizColor = getDatavizColor; exports.getDatavizColorWithAlpha = getDatavizColorWithAlpha; exports.getDatavizOpacity = getDatavizOpacity; exports.getStorybookCategoricalData = getStorybookCategoricalData; exports.getStorybookSparseTimelineData = getStorybookSparseTimelineData; exports.isCategoricalHourData = isCategoricalHourData; exports.isHourlyTimeData = isHourlyTimeData; exports.lineChartOptions = _chunkLWDHU4QKjs.lineChartOptions; exports.lineChartStyles = _chunkLWDHU4QKjs.lineChartStyles; exports.timeSeriesChartOptions = _chunkLWDHU4QKjs.timeSeriesChartOptions; exports.timeSeriesChartStyles = _chunkLWDHU4QKjs.timeSeriesChartStyles; exports.transformDataToSeries = transformDataToSeries; exports.transformTimeSeriesTooltipData = _chunkLWDHU4QKjs.transformTimeSeriesTooltipData; exports.xAxisLabelFormatter = xAxisLabelFormatter; exports.yAxisLabelFormatter = yAxisLabelFormatter;
|
|
1920
1920
|
//# sourceMappingURL=index.js.map
|