@cloudscape-design/components 3.0.150 → 3.0.152
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/box/styles.css.js +189 -189
- package/box/styles.scoped.css +239 -233
- package/box/styles.selectors.js +189 -189
- package/button/styles.css.js +18 -18
- package/button/styles.scoped.css +140 -138
- package/button/styles.selectors.js +18 -18
- package/cards/styles.css.js +37 -37
- package/cards/styles.scoped.css +46 -44
- package/cards/styles.selectors.js +37 -37
- package/container/interfaces.d.ts +8 -0
- package/container/interfaces.d.ts.map +1 -1
- package/container/interfaces.js.map +1 -1
- package/container/internal.d.ts +1 -1
- package/container/internal.d.ts.map +1 -1
- package/container/internal.js +2 -2
- package/container/internal.js.map +1 -1
- package/container/styles.css.js +17 -16
- package/container/styles.scoped.css +34 -33
- package/container/styles.selectors.js +17 -16
- package/expandable-section/styles.css.js +21 -21
- package/expandable-section/styles.scoped.css +44 -42
- package/expandable-section/styles.selectors.js +21 -21
- package/header/internal.d.ts.map +1 -1
- package/header/internal.js +1 -1
- package/header/internal.js.map +1 -1
- package/header/styles.css.js +44 -40
- package/header/styles.scoped.css +74 -52
- package/header/styles.selectors.js +44 -40
- package/help-panel/styles.css.js +4 -4
- package/help-panel/styles.scoped.css +72 -58
- package/help-panel/styles.selectors.js +4 -4
- package/internal/base-component/styles.scoped.css +2 -0
- package/internal/components/menu-dropdown/styles.css.js +7 -7
- package/internal/components/menu-dropdown/styles.scoped.css +16 -14
- package/internal/components/menu-dropdown/styles.selectors.js +7 -7
- package/internal/environment.js +1 -1
- package/internal/generated/theming/index.cjs +6 -0
- package/internal/generated/theming/index.js +6 -0
- package/internal/manifest.json +1 -1
- package/link/styles.css.js +20 -20
- package/link/styles.scoped.css +75 -71
- package/link/styles.selectors.js +20 -20
- package/mixed-line-bar-chart/chart-container.d.ts.map +1 -1
- package/mixed-line-bar-chart/chart-container.js +13 -8
- package/mixed-line-bar-chart/chart-container.js.map +1 -1
- package/package.json +1 -1
- package/pagination/styles.css.js +9 -9
- package/pagination/styles.scoped.css +25 -23
- package/pagination/styles.selectors.js +9 -9
- package/pie-chart/pie-chart.d.ts.map +1 -1
- package/pie-chart/pie-chart.js +11 -4
- package/pie-chart/pie-chart.js.map +1 -1
- package/pie-chart/styles.css.js +27 -27
- package/pie-chart/styles.scoped.css +45 -43
- package/pie-chart/styles.selectors.js +27 -27
- package/popover/styles.css.js +50 -50
- package/popover/styles.scoped.css +67 -63
- package/popover/styles.selectors.js +50 -50
- package/progress-bar/styles.css.js +18 -18
- package/progress-bar/styles.scoped.css +34 -32
- package/progress-bar/styles.selectors.js +18 -18
- package/segmented-control/styles.css.js +14 -14
- package/segmented-control/styles.scoped.css +37 -35
- package/segmented-control/styles.selectors.js +14 -14
- package/side-navigation/styles.css.js +22 -22
- package/side-navigation/styles.scoped.css +36 -32
- package/side-navigation/styles.selectors.js +22 -22
- package/split-panel/styles.css.js +59 -59
- package/split-panel/styles.scoped.css +83 -81
- package/split-panel/styles.selectors.js +59 -59
- package/table/header-cell/styles.css.js +18 -18
- package/table/header-cell/styles.scoped.css +32 -30
- package/table/header-cell/styles.selectors.js +18 -18
- package/tabs/styles.css.js +21 -21
- package/tabs/styles.scoped.css +40 -38
- package/tabs/styles.selectors.js +21 -21
- package/tag-editor/styles.css.js +3 -3
- package/tag-editor/styles.scoped.css +12 -10
- package/tag-editor/styles.selectors.js +3 -3
- package/text-content/styles.css.js +1 -1
- package/text-content/styles.scoped.css +70 -60
- package/text-content/styles.selectors.js +1 -1
- package/top-navigation/1.0-beta/styles.css.js +25 -25
- package/top-navigation/1.0-beta/styles.scoped.css +44 -42
- package/top-navigation/1.0-beta/styles.selectors.js +25 -25
- package/top-navigation/styles.css.js +47 -47
- package/top-navigation/styles.scoped.css +72 -66
- package/top-navigation/styles.selectors.js +47 -47
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chart-container.js","sourceRoot":"","sources":["../../../src/mixed-line-bar-chart/chart-container.tsx"],"names":[],"mappings":"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","sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport React, { useCallback, useEffect, useLayoutEffect, useMemo, useRef, useState } from 'react';\n\nimport { nodeContains } from '../internal/utils/dom';\nimport { useVisualRefresh } from '../internal/hooks/use-visual-mode';\n\nimport { getXTickCount, getYTickCount, createXTicks, createYTicks } from '../internal/components/cartesian-chart/ticks';\nimport ChartPlot, { ChartPlotRef } from '../internal/components/chart-plot';\nimport AxisLabel from '../internal/components/cartesian-chart/axis-label';\nimport LabelsMeasure from '../internal/components/cartesian-chart/labels-measure';\nimport LeftLabels from '../internal/components/cartesian-chart/left-labels';\nimport BottomLabels from '../internal/components/cartesian-chart/bottom-labels';\nimport VerticalGridLines from '../internal/components/cartesian-chart/vertical-grid-lines';\nimport EmphasizedBaseline from '../internal/components/cartesian-chart/emphasized-baseline';\nimport HighlightedPoint from '../internal/components/cartesian-chart/highlighted-point';\nimport VerticalMarker from '../internal/components/cartesian-chart/vertical-marker';\nimport { ChartScale, NumericChartScale } from '../internal/components/cartesian-chart/scales';\nimport ChartPopover from './chart-popover';\nimport { ChartDataTypes, InternalChartSeries, MixedLineBarChartProps, ScaleType, VerticalMarkerX } from './interfaces';\nimport { computeDomainX, computeDomainY } from './domain';\nimport { isXThreshold } from './utils';\nimport makeScaledSeries, { ScaledPoint } from './make-scaled-series';\nimport makeScaledBarGroups, { ScaledBarGroup } from './make-scaled-bar-groups';\nimport formatHighlighted from './format-highlighted';\nimport DataSeries from './data-series';\nimport BarGroups from './bar-groups';\nimport { useMouseHover } from './hooks/use-mouse-hover';\nimport { useNavigation } from './hooks/use-navigation';\nimport { usePopover } from './hooks/use-popover';\n\nimport styles from './styles.css.js';\nimport { CartesianChartProps } from '../internal/components/cartesian-chart/interfaces';\nimport useContainerWidth from '../internal/utils/use-container-width';\nimport { useMergeRefs } from '../internal/hooks/use-merge-refs';\n\nconst LEFT_LABELS_MARGIN = 16;\nconst BOTTOM_LABELS_OFFSET = 12;\n\ntype TickFormatter = undefined | ((value: ChartDataTypes) => string);\n\nexport interface ChartContainerProps<T extends ChartDataTypes> {\n series: ReadonlyArray<InternalChartSeries<T>>;\n visibleSeries: ReadonlyArray<InternalChartSeries<T>>;\n\n height: number;\n detailPopoverSize: MixedLineBarChartProps<T>['detailPopoverSize'];\n\n xScaleType: ScaleType;\n yScaleType: 'linear' | 'log';\n\n xDomain: MixedLineBarChartProps<T>['xDomain'];\n yDomain: MixedLineBarChartProps<T>['yDomain'];\n\n xTickFormatter?: CartesianChartProps.TickFormatter<T>;\n yTickFormatter?: CartesianChartProps.TickFormatter<number>;\n\n xTitle?: string;\n yTitle?: string;\n\n stackedBars?: boolean;\n emphasizeBaselineAxis: boolean;\n horizontalBars?: boolean;\n\n highlightedSeries?: MixedLineBarChartProps<T>['highlightedSeries'];\n onHighlightChange: (series: InternalChartSeries<T>['series'] | null) => void;\n highlightedPoint: ScaledPoint<T> | null;\n setHighlightedPoint: (point: ScaledPoint<T> | null) => void;\n highlightedGroupIndex: number | null;\n setHighlightedGroupIndex: (groupIndex: number | null) => void;\n\n ariaLabel: MixedLineBarChartProps<T>['ariaLabel'];\n ariaLabelledby: MixedLineBarChartProps<T>['ariaLabelledby'];\n ariaDescription: MixedLineBarChartProps<T>['ariaDescription'];\n i18nStrings: MixedLineBarChartProps<T>['i18nStrings'];\n\n plotContainerRef: React.RefObject<HTMLDivElement>;\n}\n\nexport default function ChartContainer<T extends ChartDataTypes>({\n height: plotHeight,\n series,\n visibleSeries,\n highlightedSeries,\n onHighlightChange,\n highlightedPoint,\n setHighlightedPoint,\n highlightedGroupIndex,\n setHighlightedGroupIndex,\n detailPopoverSize = 'medium',\n stackedBars = false,\n horizontalBars = false,\n xScaleType,\n yScaleType,\n xTickFormatter,\n yTickFormatter,\n emphasizeBaselineAxis,\n xTitle,\n yTitle,\n ariaLabel,\n ariaLabelledby,\n ariaDescription,\n i18nStrings = {},\n plotContainerRef,\n ...props\n}: ChartContainerProps<T>) {\n const plotRef = useRef<ChartPlotRef>(null);\n const verticalMarkerRef = useRef<SVGLineElement>(null);\n\n const [leftLabelsWidth, setLeftLabelsWidth] = useState(0);\n const [bottomLabelsHeight, setBottomLabelsHeight] = useState(0);\n const [verticalMarkerX, setVerticalMarkerX] = useState<VerticalMarkerX<T> | null>(null);\n const [containerWidth, containerMeasureRef] = useContainerWidth(500);\n const plotWidth = containerWidth ? containerWidth - leftLabelsWidth - LEFT_LABELS_MARGIN : 500;\n const containerRefObject = useRef(null);\n const containerRef = useMergeRefs(containerMeasureRef, containerRefObject);\n const popoverRef = useRef<HTMLElement | null>(null);\n\n const isRefresh = useVisualRefresh();\n\n const linesOnly = series.every(({ series }) => series.type === 'line' || series.type === 'threshold');\n\n const xDomain = (props.xDomain || computeDomainX(series, xScaleType)) as\n | readonly number[]\n | readonly string[]\n | readonly Date[];\n const yDomain = (props.yDomain || computeDomainY(series, yScaleType, stackedBars)) as readonly number[];\n\n const xTickCount = getXTickCount(plotWidth);\n const yTickCount = getYTickCount(plotHeight);\n\n const rangeBottomTop: [number, number] = [0, plotHeight];\n const rangeTopBottom: [number, number] = [plotHeight, 0];\n const rangeLeftRight: [number, number] = [0, plotWidth];\n const xScale = new ChartScale(xScaleType, xDomain, horizontalBars ? rangeBottomTop : rangeLeftRight, linesOnly);\n const yScale = new NumericChartScale(\n yScaleType,\n yDomain,\n horizontalBars ? rangeLeftRight : rangeTopBottom,\n props.yDomain ? null : yTickCount\n );\n\n const xTicks = createXTicks(xScale, xTickCount);\n const yTicks = createYTicks(yScale, yTickCount);\n\n /**\n * Interactions\n */\n const highlightedPointRef = useRef<SVGGElement>(null);\n const highlightedGroupRef = useRef<SVGRectElement>(null);\n const [isPlotFocused, setPlotFocused] = useState(false);\n\n // Some chart components are rendered against \"x\" or \"y\" axes,\n // When \"horizontalBars\" is enabled, the axes are inverted.\n const x = !horizontalBars ? 'x' : 'y';\n const y = !horizontalBars ? 'y' : 'x';\n const xy = {\n ticks: { x: xTicks, y: yTicks },\n scale: { x: xScale, y: yScale },\n tickFormatter: { x: xTickFormatter, y: yTickFormatter },\n title: { x: xTitle, y: yTitle },\n ariaRoleDescription: { x: i18nStrings.xAxisAriaRoleDescription, y: i18nStrings.yAxisAriaRoleDescription },\n };\n\n const scaledSeries = makeScaledSeries(visibleSeries, xScale, yScale);\n const barGroups: ScaledBarGroup<T>[] = makeScaledBarGroups(visibleSeries, xScale, plotWidth, plotHeight, y);\n\n const { isPopoverOpen, isPopoverPinned, showPopover, pinPopover, dismissPopover } = usePopover();\n\n // Allows to add a delay between popover is dismissed and handlers are enabled to prevent immediate popover reopening.\n const [isHandlersDisabled, setHandlersDisabled] = useState(!isPopoverPinned);\n useEffect(() => {\n if (isPopoverPinned) {\n setHandlersDisabled(true);\n } else {\n const timeoutId = setTimeout(() => setHandlersDisabled(false), 25);\n return () => clearTimeout(timeoutId);\n }\n }, [isPopoverPinned]);\n\n const highlightSeries = useCallback(\n (series: MixedLineBarChartProps.ChartSeries<T> | null) => {\n if (series !== highlightedSeries) {\n onHighlightChange(series);\n }\n },\n [highlightedSeries, onHighlightChange]\n );\n\n const highlightPoint = useCallback(\n (point: ScaledPoint<T> | null) => {\n setHighlightedGroupIndex(null);\n setHighlightedPoint(point);\n if (point) {\n highlightSeries(point.series);\n setVerticalMarkerX({\n scaledX: point.x,\n label: point.datum?.x ?? null,\n });\n }\n },\n [setHighlightedGroupIndex, setHighlightedPoint, highlightSeries]\n );\n\n // Highlight all points at a given X in a line chart\n const highlightX = useCallback(\n (marker: VerticalMarkerX<T> | null) => {\n if (marker) {\n setHighlightedPoint(null);\n highlightSeries(null);\n setHighlightedGroupIndex(null);\n }\n setVerticalMarkerX(marker);\n },\n [highlightSeries, setHighlightedGroupIndex, setHighlightedPoint]\n );\n\n // Highlight all points and bars at a given X index in a mixed line and bar chart\n const highlightGroup = useCallback(\n (groupIndex: number) => {\n highlightSeries(null);\n setHighlightedPoint(null);\n setHighlightedGroupIndex(groupIndex);\n },\n [highlightSeries, setHighlightedPoint, setHighlightedGroupIndex]\n );\n\n const clearHighlightedSeries = useCallback(() => {\n highlightSeries(null);\n setHighlightedGroupIndex(null);\n setHighlightedPoint(null);\n dismissPopover();\n }, [dismissPopover, highlightSeries, setHighlightedGroupIndex, setHighlightedPoint]);\n\n const { isGroupNavigation, ...handlers } = useNavigation({\n series,\n visibleSeries,\n scaledSeries,\n barGroups,\n xScale,\n yScale,\n highlightedPoint,\n highlightedGroupIndex,\n highlightedSeries,\n isHandlersDisabled,\n pinPopover,\n highlightSeries,\n highlightGroup,\n highlightPoint,\n highlightX,\n clearHighlightedSeries,\n verticalMarkerX,\n });\n\n const { onSVGMouseMove, onSVGMouseOut, onPopoverLeave } = useMouseHover<T>({\n scaledSeries,\n barGroups,\n plotRef,\n popoverRef,\n highlightPoint,\n highlightGroup,\n clearHighlightedSeries,\n isGroupNavigation,\n isHandlersDisabled,\n highlightX,\n });\n\n // There are multiple ways to indicate what X is selected.\n // TODO: make a uniform verticalMarkerX state to fit all use-cases.\n const highlightedX = useMemo(() => {\n if (highlightedGroupIndex !== null) {\n return barGroups[highlightedGroupIndex].x;\n }\n if (verticalMarkerX !== null) {\n return verticalMarkerX.label;\n }\n return highlightedPoint?.datum?.x ?? null;\n }, [highlightedPoint, verticalMarkerX, highlightedGroupIndex, barGroups]);\n\n useEffect(() => {\n const onKeyDown = (event: KeyboardEvent) => {\n if (event.key === 'Escape') {\n dismissPopover();\n }\n };\n document.addEventListener('keydown', onKeyDown);\n return () => document.removeEventListener('keydown', onKeyDown);\n }, [dismissPopover]);\n\n useLayoutEffect(() => {\n if (highlightedX !== null || highlightedPoint !== null) {\n showPopover();\n }\n }, [highlightedX, highlightedPoint, showPopover]);\n\n const onPopoverDismiss = (outsideClick?: boolean) => {\n dismissPopover();\n\n if (!outsideClick) {\n // The delay is needed to bypass focus events caused by click or keypress needed to unpin the popover.\n setTimeout(() => {\n const isSomeInnerElementFocused = highlightedPoint || highlightedGroupIndex !== null || verticalMarkerX;\n if (isSomeInnerElementFocused) {\n plotRef.current?.focusApplication();\n } else {\n plotRef.current?.focusPlot();\n }\n }, 0);\n }\n };\n\n const onSVGMouseDown = (e: React.MouseEvent<SVGSVGElement, MouseEvent>) => {\n if (isPopoverOpen) {\n if (isPopoverPinned) {\n dismissPopover();\n } else {\n pinPopover();\n e.preventDefault();\n }\n } else {\n showPopover();\n }\n };\n\n const onSVGFocus = (event: React.FocusEvent, trigger: 'mouse' | 'keyboard') => {\n setPlotFocused(true);\n if (trigger === 'keyboard') {\n handlers.onFocus();\n } else {\n // noop: clicks are handled separately\n }\n };\n\n const onSVGBlur = (event: React.FocusEvent<Element>) => {\n setPlotFocused(false);\n const blurTarget = event.relatedTarget || event.target;\n if (\n blurTarget === null ||\n !(blurTarget instanceof Element) ||\n !nodeContains(containerRefObject.current, blurTarget)\n ) {\n setHighlightedPoint(null);\n setVerticalMarkerX(null);\n if (!plotContainerRef?.current?.contains(blurTarget)) {\n clearHighlightedSeries();\n }\n\n if (isPopoverOpen && !isPopoverPinned) {\n dismissPopover();\n }\n }\n };\n\n const onSVGKeyDown = handlers.onKeyDown;\n\n const xOffset = xScale.isCategorical() ? Math.max(0, xScale.d3Scale.bandwidth() - 1) / 2 : 0;\n\n let verticalLineX: number | null = null;\n if (verticalMarkerX !== null) {\n verticalLineX = verticalMarkerX.scaledX;\n } else if (isGroupNavigation && highlightedGroupIndex !== null) {\n const x = xScale.d3Scale(barGroups[highlightedGroupIndex].x as any) ?? null;\n if (x !== null) {\n verticalLineX = xOffset + x;\n }\n }\n\n const point = useMemo(\n () =>\n highlightedPoint\n ? {\n key: `${highlightedPoint.x}-${highlightedPoint.y}`,\n x: highlightedPoint.x,\n y: highlightedPoint.y,\n color: highlightedPoint.color,\n }\n : null,\n [highlightedPoint]\n );\n\n const verticalMarkers = useMemo(\n () =>\n verticalLineX !== null\n ? scaledSeries\n .filter(({ x, y }) => (x === verticalLineX || isNaN(x)) && !isNaN(y))\n .map(({ x, y, color }, index) => ({\n key: `${index}-${x}-${y}`,\n x: !horizontalBars ? verticalLineX || 0 : y,\n y: !horizontalBars ? y : verticalLineX || 0,\n color: color,\n }))\n : [],\n [scaledSeries, verticalLineX, horizontalBars]\n );\n\n const highlightedElementRef = isGroupNavigation\n ? highlightedGroupRef\n : highlightedPoint\n ? highlightedPointRef\n : verticalMarkerRef;\n\n const highlightDetails = useMemo(() => {\n if (highlightedX === null) {\n return null;\n }\n\n // When series point is highlighted show the corresponding series and matching x-thresholds.\n if (highlightedPoint) {\n const seriesToShow = visibleSeries.filter(\n series => series.series === highlightedPoint?.series || isXThreshold(series.series)\n );\n return formatHighlighted(highlightedX, seriesToShow, xTickFormatter);\n }\n\n // Otherwise - show all visible series details.\n return formatHighlighted(highlightedX, visibleSeries, xTickFormatter);\n }, [highlightedX, highlightedPoint, visibleSeries, xTickFormatter]);\n\n const activeAriaLabel = useMemo(\n () =>\n highlightDetails\n ? `${highlightDetails.position}, ${highlightDetails.details.map(d => d.key + ' ' + d.value).join(',')}`\n : '',\n [highlightDetails]\n );\n\n // Live region is used when nothing is focused e.g. when hovering.\n const activeLiveRegion =\n activeAriaLabel && !highlightedPoint && highlightedGroupIndex === null ? activeAriaLabel : '';\n\n const isLineXKeyboardFocused = isPlotFocused && !highlightedPoint && verticalMarkerX;\n\n return (\n <div className={styles['chart-container']} ref={containerRef}>\n <AxisLabel axis={y} position=\"left\" title={xy.title[y]} />\n <div className={styles['chart-container__horizontal']}>\n <LabelsMeasure\n ticks={xy.ticks[y]}\n scale={xy.scale[y]}\n tickFormatter={xy.tickFormatter[y] as TickFormatter}\n autoWidth={setLeftLabelsWidth}\n />\n\n <div className={styles['chart-container__vertical']}>\n <ChartPlot\n ref={plotRef}\n width={plotWidth}\n height={plotHeight}\n offsetBottom={bottomLabelsHeight}\n isClickable={isPopoverOpen && !isPopoverPinned}\n ariaLabel={ariaLabel}\n ariaLabelledby={ariaLabelledby}\n ariaDescription={ariaDescription}\n ariaRoleDescription={i18nStrings?.chartAriaRoleDescription}\n ariaLiveRegion={activeLiveRegion}\n activeElementRef={highlightedElementRef}\n activeElementKey={\n isPlotFocused &&\n (highlightedGroupIndex?.toString() ??\n (isLineXKeyboardFocused ? `point-index-${handlers.xIndex}` : point?.key))\n }\n activeElementFocusOffset={isGroupNavigation ? 0 : isLineXKeyboardFocused ? { x: 8, y: 0 } : 3}\n onMouseMove={onSVGMouseMove}\n onMouseOut={onSVGMouseOut}\n onMouseDown={onSVGMouseDown}\n onFocus={onSVGFocus}\n onBlur={onSVGBlur}\n onKeyDown={onSVGKeyDown}\n >\n <LeftLabels\n axis={y}\n ticks={xy.ticks[y]}\n scale={xy.scale[y]}\n tickFormatter={xy.tickFormatter[y] as TickFormatter}\n title={xy.title[y]}\n ariaRoleDescription={xy.ariaRoleDescription[y]}\n width={plotWidth}\n height={plotHeight}\n />\n\n {horizontalBars && <VerticalGridLines scale={yScale} ticks={yTicks} height={plotHeight} />}\n\n {emphasizeBaselineAxis && linesOnly && (\n <EmphasizedBaseline axis={x} scale={yScale} width={plotWidth} height={plotHeight} />\n )}\n\n <DataSeries\n axis={x}\n plotWidth={plotWidth}\n plotHeight={plotHeight}\n highlightedSeries={highlightedSeries ?? null}\n highlightedGroupIndex={highlightedGroupIndex}\n stackedBars={stackedBars}\n isGroupNavigation={isGroupNavigation}\n visibleSeries={visibleSeries}\n xScale={xScale}\n yScale={yScale}\n />\n\n {emphasizeBaselineAxis && !linesOnly && (\n <EmphasizedBaseline axis={x} scale={yScale} width={plotWidth} height={plotHeight} />\n )}\n\n <VerticalMarker\n key={verticalLineX || ''}\n height={plotHeight}\n showPoints={highlightedPoint === null}\n showLine={!isGroupNavigation}\n points={verticalMarkers}\n ref={verticalMarkerRef}\n />\n\n {highlightedPoint && (\n <HighlightedPoint\n ref={highlightedPointRef}\n point={point}\n role=\"button\"\n ariaLabel={activeAriaLabel}\n ariaHasPopup={true}\n ariaExpanded={isPopoverPinned}\n />\n )}\n\n {isGroupNavigation && xScale.isCategorical() && (\n <BarGroups\n ariaLabel={activeAriaLabel}\n isRefresh={isRefresh}\n isPopoverPinned={isPopoverPinned}\n barGroups={barGroups}\n highlightedGroupIndex={highlightedGroupIndex}\n highlightedGroupRef={highlightedGroupRef}\n />\n )}\n\n <BottomLabels\n axis={x}\n ticks={xy.ticks[x]}\n scale={xy.scale[x]}\n tickFormatter={xy.tickFormatter[x] as TickFormatter}\n title={xy.title[x]}\n ariaRoleDescription={xy.ariaRoleDescription[x]}\n height={plotHeight}\n width={plotWidth}\n offsetLeft={leftLabelsWidth + BOTTOM_LABELS_OFFSET}\n offsetRight={BOTTOM_LABELS_OFFSET}\n autoHeight={setBottomLabelsHeight}\n />\n </ChartPlot>\n\n <AxisLabel axis={x} position=\"bottom\" title={xy.title[x]} />\n </div>\n\n <ChartPopover\n ref={popoverRef}\n containerRef={containerRefObject}\n trackRef={highlightedElementRef}\n isOpen={isPopoverOpen}\n isPinned={isPopoverPinned}\n highlightDetails={highlightDetails}\n onDismiss={onPopoverDismiss}\n size={detailPopoverSize}\n dismissAriaLabel={i18nStrings.detailPopoverDismissAriaLabel}\n onMouseLeave={onPopoverLeave}\n />\n </div>\n </div>\n );\n}\n"]}
|
|
1
|
+
{"version":3,"file":"chart-container.js","sourceRoot":"","sources":["../../../src/mixed-line-bar-chart/chart-container.tsx"],"names":[],"mappings":"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","sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport React, { useCallback, useEffect, useLayoutEffect, useMemo, useRef, useState } from 'react';\n\nimport { nodeContains } from '../internal/utils/dom';\nimport { useVisualRefresh } from '../internal/hooks/use-visual-mode';\n\nimport { getXTickCount, getYTickCount, createXTicks, createYTicks } from '../internal/components/cartesian-chart/ticks';\nimport ChartPlot, { ChartPlotRef } from '../internal/components/chart-plot';\nimport AxisLabel from '../internal/components/cartesian-chart/axis-label';\nimport LabelsMeasure from '../internal/components/cartesian-chart/labels-measure';\nimport LeftLabels from '../internal/components/cartesian-chart/left-labels';\nimport BottomLabels from '../internal/components/cartesian-chart/bottom-labels';\nimport VerticalGridLines from '../internal/components/cartesian-chart/vertical-grid-lines';\nimport EmphasizedBaseline from '../internal/components/cartesian-chart/emphasized-baseline';\nimport HighlightedPoint from '../internal/components/cartesian-chart/highlighted-point';\nimport VerticalMarker from '../internal/components/cartesian-chart/vertical-marker';\nimport { ChartScale, NumericChartScale } from '../internal/components/cartesian-chart/scales';\nimport ChartPopover from './chart-popover';\nimport { ChartDataTypes, InternalChartSeries, MixedLineBarChartProps, ScaleType, VerticalMarkerX } from './interfaces';\nimport { computeDomainX, computeDomainY } from './domain';\nimport { isXThreshold } from './utils';\nimport makeScaledSeries, { ScaledPoint } from './make-scaled-series';\nimport makeScaledBarGroups, { ScaledBarGroup } from './make-scaled-bar-groups';\nimport formatHighlighted from './format-highlighted';\nimport DataSeries from './data-series';\nimport BarGroups from './bar-groups';\nimport { useMouseHover } from './hooks/use-mouse-hover';\nimport { useNavigation } from './hooks/use-navigation';\nimport { usePopover } from './hooks/use-popover';\n\nimport styles from './styles.css.js';\nimport { CartesianChartProps } from '../internal/components/cartesian-chart/interfaces';\nimport useContainerWidth from '../internal/utils/use-container-width';\nimport { useMergeRefs } from '../internal/hooks/use-merge-refs';\n\nconst LEFT_LABELS_MARGIN = 16;\nconst BOTTOM_LABELS_OFFSET = 12;\n\ntype TickFormatter = undefined | ((value: ChartDataTypes) => string);\n\nexport interface ChartContainerProps<T extends ChartDataTypes> {\n series: ReadonlyArray<InternalChartSeries<T>>;\n visibleSeries: ReadonlyArray<InternalChartSeries<T>>;\n\n height: number;\n detailPopoverSize: MixedLineBarChartProps<T>['detailPopoverSize'];\n\n xScaleType: ScaleType;\n yScaleType: 'linear' | 'log';\n\n xDomain: MixedLineBarChartProps<T>['xDomain'];\n yDomain: MixedLineBarChartProps<T>['yDomain'];\n\n xTickFormatter?: CartesianChartProps.TickFormatter<T>;\n yTickFormatter?: CartesianChartProps.TickFormatter<number>;\n\n xTitle?: string;\n yTitle?: string;\n\n stackedBars?: boolean;\n emphasizeBaselineAxis: boolean;\n horizontalBars?: boolean;\n\n highlightedSeries?: MixedLineBarChartProps<T>['highlightedSeries'];\n onHighlightChange: (series: InternalChartSeries<T>['series'] | null) => void;\n highlightedPoint: ScaledPoint<T> | null;\n setHighlightedPoint: (point: ScaledPoint<T> | null) => void;\n highlightedGroupIndex: number | null;\n setHighlightedGroupIndex: (groupIndex: number | null) => void;\n\n ariaLabel: MixedLineBarChartProps<T>['ariaLabel'];\n ariaLabelledby: MixedLineBarChartProps<T>['ariaLabelledby'];\n ariaDescription: MixedLineBarChartProps<T>['ariaDescription'];\n i18nStrings: MixedLineBarChartProps<T>['i18nStrings'];\n\n plotContainerRef: React.RefObject<HTMLDivElement>;\n}\n\nexport default function ChartContainer<T extends ChartDataTypes>({\n height: plotHeight,\n series,\n visibleSeries,\n highlightedSeries,\n onHighlightChange,\n highlightedPoint,\n setHighlightedPoint,\n highlightedGroupIndex,\n setHighlightedGroupIndex,\n detailPopoverSize = 'medium',\n stackedBars = false,\n horizontalBars = false,\n xScaleType,\n yScaleType,\n xTickFormatter,\n yTickFormatter,\n emphasizeBaselineAxis,\n xTitle,\n yTitle,\n ariaLabel,\n ariaLabelledby,\n ariaDescription,\n i18nStrings = {},\n plotContainerRef,\n ...props\n}: ChartContainerProps<T>) {\n const plotRef = useRef<ChartPlotRef>(null);\n const verticalMarkerRef = useRef<SVGLineElement>(null);\n\n const [leftLabelsWidth, setLeftLabelsWidth] = useState(0);\n const [bottomLabelsHeight, setBottomLabelsHeight] = useState(0);\n const [verticalMarkerX, setVerticalMarkerX] = useState<VerticalMarkerX<T> | null>(null);\n const [containerWidth, containerMeasureRef] = useContainerWidth(500);\n const plotWidth = containerWidth ? containerWidth - leftLabelsWidth - LEFT_LABELS_MARGIN : 500;\n const containerRefObject = useRef(null);\n const containerRef = useMergeRefs(containerMeasureRef, containerRefObject);\n const popoverRef = useRef<HTMLElement | null>(null);\n\n const isRefresh = useVisualRefresh();\n\n const linesOnly = series.every(({ series }) => series.type === 'line' || series.type === 'threshold');\n\n const xDomain = (props.xDomain || computeDomainX(series, xScaleType)) as\n | readonly number[]\n | readonly string[]\n | readonly Date[];\n const yDomain = (props.yDomain || computeDomainY(series, yScaleType, stackedBars)) as readonly number[];\n\n const xTickCount = getXTickCount(plotWidth);\n const yTickCount = getYTickCount(plotHeight);\n\n const rangeBottomTop: [number, number] = [0, plotHeight];\n const rangeTopBottom: [number, number] = [plotHeight, 0];\n const rangeLeftRight: [number, number] = [0, plotWidth];\n const xScale = new ChartScale(xScaleType, xDomain, horizontalBars ? rangeBottomTop : rangeLeftRight, linesOnly);\n const yScale = new NumericChartScale(\n yScaleType,\n yDomain,\n horizontalBars ? rangeLeftRight : rangeTopBottom,\n props.yDomain ? null : yTickCount\n );\n\n const xTicks = createXTicks(xScale, xTickCount);\n const yTicks = createYTicks(yScale, yTickCount);\n\n /**\n * Interactions\n */\n const highlightedPointRef = useRef<SVGGElement>(null);\n const highlightedGroupRef = useRef<SVGRectElement>(null);\n const [isPlotFocused, setPlotFocused] = useState(false);\n\n // Some chart components are rendered against \"x\" or \"y\" axes,\n // When \"horizontalBars\" is enabled, the axes are inverted.\n const x = !horizontalBars ? 'x' : 'y';\n const y = !horizontalBars ? 'y' : 'x';\n const xy = {\n ticks: { x: xTicks, y: yTicks },\n scale: { x: xScale, y: yScale },\n tickFormatter: { x: xTickFormatter, y: yTickFormatter },\n title: { x: xTitle, y: yTitle },\n ariaRoleDescription: { x: i18nStrings.xAxisAriaRoleDescription, y: i18nStrings.yAxisAriaRoleDescription },\n };\n\n const scaledSeries = makeScaledSeries(visibleSeries, xScale, yScale);\n const barGroups: ScaledBarGroup<T>[] = makeScaledBarGroups(visibleSeries, xScale, plotWidth, plotHeight, y);\n\n const { isPopoverOpen, isPopoverPinned, showPopover, pinPopover, dismissPopover } = usePopover();\n\n // Allows to add a delay between popover is dismissed and handlers are enabled to prevent immediate popover reopening.\n const [isHandlersDisabled, setHandlersDisabled] = useState(!isPopoverPinned);\n useEffect(() => {\n if (isPopoverPinned) {\n setHandlersDisabled(true);\n } else {\n const timeoutId = setTimeout(() => setHandlersDisabled(false), 25);\n return () => clearTimeout(timeoutId);\n }\n }, [isPopoverPinned]);\n\n const highlightSeries = useCallback(\n (series: MixedLineBarChartProps.ChartSeries<T> | null) => {\n if (series !== highlightedSeries) {\n onHighlightChange(series);\n }\n },\n [highlightedSeries, onHighlightChange]\n );\n\n const highlightPoint = useCallback(\n (point: ScaledPoint<T> | null) => {\n setHighlightedGroupIndex(null);\n setHighlightedPoint(point);\n if (point) {\n highlightSeries(point.series);\n setVerticalMarkerX({\n scaledX: point.x,\n label: point.datum?.x ?? null,\n });\n }\n },\n [setHighlightedGroupIndex, setHighlightedPoint, highlightSeries]\n );\n\n const clearAllHighlights = useCallback(() => {\n setHighlightedPoint(null);\n highlightSeries(null);\n setHighlightedGroupIndex(null);\n }, [highlightSeries, setHighlightedGroupIndex, setHighlightedPoint]);\n\n // Highlight all points at a given X in a line chart\n const highlightX = useCallback(\n (marker: VerticalMarkerX<T> | null) => {\n if (marker) {\n clearAllHighlights();\n }\n setVerticalMarkerX(marker);\n },\n [clearAllHighlights]\n );\n\n // Highlight all points and bars at a given X index in a mixed line and bar chart\n const highlightGroup = useCallback(\n (groupIndex: number) => {\n highlightSeries(null);\n setHighlightedPoint(null);\n setHighlightedGroupIndex(groupIndex);\n },\n [highlightSeries, setHighlightedPoint, setHighlightedGroupIndex]\n );\n\n const clearHighlightedSeries = useCallback(() => {\n clearAllHighlights();\n dismissPopover();\n }, [dismissPopover, clearAllHighlights]);\n\n const { isGroupNavigation, ...handlers } = useNavigation({\n series,\n visibleSeries,\n scaledSeries,\n barGroups,\n xScale,\n yScale,\n highlightedPoint,\n highlightedGroupIndex,\n highlightedSeries,\n isHandlersDisabled,\n pinPopover,\n highlightSeries,\n highlightGroup,\n highlightPoint,\n highlightX,\n clearHighlightedSeries,\n verticalMarkerX,\n });\n\n const { onSVGMouseMove, onSVGMouseOut, onPopoverLeave } = useMouseHover<T>({\n scaledSeries,\n barGroups,\n plotRef,\n popoverRef,\n highlightPoint,\n highlightGroup,\n clearHighlightedSeries,\n isGroupNavigation,\n isHandlersDisabled,\n highlightX,\n });\n\n // There are multiple ways to indicate what X is selected.\n // TODO: make a uniform verticalMarkerX state to fit all use-cases.\n const highlightedX = useMemo(() => {\n if (highlightedGroupIndex !== null) {\n return barGroups[highlightedGroupIndex].x;\n }\n if (verticalMarkerX !== null) {\n return verticalMarkerX.label;\n }\n return highlightedPoint?.datum?.x ?? null;\n }, [highlightedPoint, verticalMarkerX, highlightedGroupIndex, barGroups]);\n\n useEffect(() => {\n const onKeyDown = (event: KeyboardEvent) => {\n if (event.key === 'Escape') {\n dismissPopover();\n }\n };\n document.addEventListener('keydown', onKeyDown);\n return () => document.removeEventListener('keydown', onKeyDown);\n }, [dismissPopover]);\n\n useLayoutEffect(() => {\n if (highlightedX !== null || highlightedPoint !== null) {\n showPopover();\n }\n }, [highlightedX, highlightedPoint, showPopover]);\n\n const onPopoverDismiss = (outsideClick?: boolean) => {\n dismissPopover();\n\n if (!outsideClick) {\n // The delay is needed to bypass focus events caused by click or keypress needed to unpin the popover.\n setTimeout(() => {\n const isSomeInnerElementFocused = highlightedPoint || highlightedGroupIndex !== null || verticalMarkerX;\n if (isSomeInnerElementFocused) {\n plotRef.current?.focusApplication();\n } else {\n plotRef.current?.focusPlot();\n }\n }, 0);\n } else {\n clearAllHighlights();\n setVerticalMarkerX(null);\n }\n };\n\n const onSVGMouseDown = (e: React.MouseEvent<SVGSVGElement, MouseEvent>) => {\n if (isPopoverOpen) {\n if (isPopoverPinned) {\n dismissPopover();\n } else {\n pinPopover();\n e.preventDefault();\n }\n } else {\n showPopover();\n }\n };\n\n const onSVGFocus = (event: React.FocusEvent, trigger: 'mouse' | 'keyboard') => {\n setPlotFocused(true);\n if (trigger === 'keyboard') {\n handlers.onFocus();\n } else {\n // noop: clicks are handled separately\n }\n };\n\n const onSVGBlur = (event: React.FocusEvent<Element>) => {\n setPlotFocused(false);\n const blurTarget = event.relatedTarget || event.target;\n if (\n blurTarget === null ||\n !(blurTarget instanceof Element) ||\n !nodeContains(containerRefObject.current, blurTarget)\n ) {\n setHighlightedPoint(null);\n setVerticalMarkerX(null);\n if (!plotContainerRef?.current?.contains(blurTarget)) {\n clearHighlightedSeries();\n }\n\n if (isPopoverOpen && !isPopoverPinned) {\n dismissPopover();\n }\n }\n };\n\n const onSVGKeyDown = handlers.onKeyDown;\n\n const xOffset = xScale.isCategorical() ? Math.max(0, xScale.d3Scale.bandwidth() - 1) / 2 : 0;\n\n let verticalLineX: number | null = null;\n if (verticalMarkerX !== null) {\n verticalLineX = verticalMarkerX.scaledX;\n } else if (isGroupNavigation && highlightedGroupIndex !== null) {\n const x = xScale.d3Scale(barGroups[highlightedGroupIndex].x as any) ?? null;\n if (x !== null) {\n verticalLineX = xOffset + x;\n }\n }\n\n const point = useMemo(\n () =>\n highlightedPoint\n ? {\n key: `${highlightedPoint.x}-${highlightedPoint.y}`,\n x: highlightedPoint.x,\n y: highlightedPoint.y,\n color: highlightedPoint.color,\n }\n : null,\n [highlightedPoint]\n );\n\n const verticalMarkers = useMemo(\n () =>\n verticalLineX !== null\n ? scaledSeries\n .filter(({ x, y }) => (x === verticalLineX || isNaN(x)) && !isNaN(y))\n .map(({ x, y, color }, index) => ({\n key: `${index}-${x}-${y}`,\n x: !horizontalBars ? verticalLineX || 0 : y,\n y: !horizontalBars ? y : verticalLineX || 0,\n color: color,\n }))\n : [],\n [scaledSeries, verticalLineX, horizontalBars]\n );\n\n const highlightedElementRef = isGroupNavigation\n ? highlightedGroupRef\n : highlightedPoint\n ? highlightedPointRef\n : verticalMarkerRef;\n\n const highlightDetails = useMemo(() => {\n if (highlightedX === null) {\n return null;\n }\n\n // When series point is highlighted show the corresponding series and matching x-thresholds.\n if (highlightedPoint) {\n const seriesToShow = visibleSeries.filter(\n series => series.series === highlightedPoint?.series || isXThreshold(series.series)\n );\n return formatHighlighted(highlightedX, seriesToShow, xTickFormatter);\n }\n\n // Otherwise - show all visible series details.\n return formatHighlighted(highlightedX, visibleSeries, xTickFormatter);\n }, [highlightedX, highlightedPoint, visibleSeries, xTickFormatter]);\n\n const activeAriaLabel = useMemo(\n () =>\n highlightDetails\n ? `${highlightDetails.position}, ${highlightDetails.details.map(d => d.key + ' ' + d.value).join(',')}`\n : '',\n [highlightDetails]\n );\n\n // Live region is used when nothing is focused e.g. when hovering.\n const activeLiveRegion =\n activeAriaLabel && !highlightedPoint && highlightedGroupIndex === null ? activeAriaLabel : '';\n\n const isLineXKeyboardFocused = isPlotFocused && !highlightedPoint && verticalMarkerX;\n\n return (\n <div className={styles['chart-container']} ref={containerRef}>\n <AxisLabel axis={y} position=\"left\" title={xy.title[y]} />\n <div className={styles['chart-container__horizontal']}>\n <LabelsMeasure\n ticks={xy.ticks[y]}\n scale={xy.scale[y]}\n tickFormatter={xy.tickFormatter[y] as TickFormatter}\n autoWidth={setLeftLabelsWidth}\n />\n\n <div className={styles['chart-container__vertical']}>\n <ChartPlot\n ref={plotRef}\n width={plotWidth}\n height={plotHeight}\n offsetBottom={bottomLabelsHeight}\n isClickable={isPopoverOpen && !isPopoverPinned}\n ariaLabel={ariaLabel}\n ariaLabelledby={ariaLabelledby}\n ariaDescription={ariaDescription}\n ariaRoleDescription={i18nStrings?.chartAriaRoleDescription}\n ariaLiveRegion={activeLiveRegion}\n activeElementRef={highlightedElementRef}\n activeElementKey={\n isPlotFocused &&\n (highlightedGroupIndex?.toString() ??\n (isLineXKeyboardFocused ? `point-index-${handlers.xIndex}` : point?.key))\n }\n activeElementFocusOffset={isGroupNavigation ? 0 : isLineXKeyboardFocused ? { x: 8, y: 0 } : 3}\n onMouseMove={onSVGMouseMove}\n onMouseOut={onSVGMouseOut}\n onMouseDown={onSVGMouseDown}\n onFocus={onSVGFocus}\n onBlur={onSVGBlur}\n onKeyDown={onSVGKeyDown}\n >\n <LeftLabels\n axis={y}\n ticks={xy.ticks[y]}\n scale={xy.scale[y]}\n tickFormatter={xy.tickFormatter[y] as TickFormatter}\n title={xy.title[y]}\n ariaRoleDescription={xy.ariaRoleDescription[y]}\n width={plotWidth}\n height={plotHeight}\n />\n\n {horizontalBars && <VerticalGridLines scale={yScale} ticks={yTicks} height={plotHeight} />}\n\n {emphasizeBaselineAxis && linesOnly && (\n <EmphasizedBaseline axis={x} scale={yScale} width={plotWidth} height={plotHeight} />\n )}\n\n <DataSeries\n axis={x}\n plotWidth={plotWidth}\n plotHeight={plotHeight}\n highlightedSeries={highlightedSeries ?? null}\n highlightedGroupIndex={highlightedGroupIndex}\n stackedBars={stackedBars}\n isGroupNavigation={isGroupNavigation}\n visibleSeries={visibleSeries}\n xScale={xScale}\n yScale={yScale}\n />\n\n {emphasizeBaselineAxis && !linesOnly && (\n <EmphasizedBaseline axis={x} scale={yScale} width={plotWidth} height={plotHeight} />\n )}\n\n <VerticalMarker\n key={verticalLineX || ''}\n height={plotHeight}\n showPoints={highlightedPoint === null}\n showLine={!isGroupNavigation}\n points={verticalMarkers}\n ref={verticalMarkerRef}\n />\n\n {highlightedPoint && (\n <HighlightedPoint\n ref={highlightedPointRef}\n point={point}\n role=\"button\"\n ariaLabel={activeAriaLabel}\n ariaHasPopup={true}\n ariaExpanded={isPopoverPinned}\n />\n )}\n\n {isGroupNavigation && xScale.isCategorical() && (\n <BarGroups\n ariaLabel={activeAriaLabel}\n isRefresh={isRefresh}\n isPopoverPinned={isPopoverPinned}\n barGroups={barGroups}\n highlightedGroupIndex={highlightedGroupIndex}\n highlightedGroupRef={highlightedGroupRef}\n />\n )}\n\n <BottomLabels\n axis={x}\n ticks={xy.ticks[x]}\n scale={xy.scale[x]}\n tickFormatter={xy.tickFormatter[x] as TickFormatter}\n title={xy.title[x]}\n ariaRoleDescription={xy.ariaRoleDescription[x]}\n height={plotHeight}\n width={plotWidth}\n offsetLeft={leftLabelsWidth + BOTTOM_LABELS_OFFSET}\n offsetRight={BOTTOM_LABELS_OFFSET}\n autoHeight={setBottomLabelsHeight}\n />\n </ChartPlot>\n\n <AxisLabel axis={x} position=\"bottom\" title={xy.title[x]} />\n </div>\n\n <ChartPopover\n ref={popoverRef}\n containerRef={containerRefObject}\n trackRef={highlightedElementRef}\n isOpen={isPopoverOpen}\n isPinned={isPopoverPinned}\n highlightDetails={highlightDetails}\n onDismiss={onPopoverDismiss}\n size={detailPopoverSize}\n dismissAriaLabel={i18nStrings.detailPopoverDismissAriaLabel}\n onMouseLeave={onPopoverLeave}\n />\n </div>\n </div>\n );\n}\n"]}
|
package/package.json
CHANGED
package/pagination/styles.css.js
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
|
|
2
2
|
import './styles.scoped.css';
|
|
3
3
|
export default {
|
|
4
|
-
"root": "
|
|
5
|
-
"button": "
|
|
6
|
-
"dots": "
|
|
7
|
-
"button-disabled": "awsui_button-
|
|
8
|
-
"arrow": "
|
|
9
|
-
"page-number": "awsui_page-
|
|
10
|
-
"button-current": "awsui_button-
|
|
11
|
-
"page-item": "awsui_page-
|
|
12
|
-
"root-disabled": "awsui_root-
|
|
4
|
+
"root": "awsui_root_fvjdu_yr7md_93",
|
|
5
|
+
"button": "awsui_button_fvjdu_yr7md_111",
|
|
6
|
+
"dots": "awsui_dots_fvjdu_yr7md_112",
|
|
7
|
+
"button-disabled": "awsui_button-disabled_fvjdu_yr7md_134",
|
|
8
|
+
"arrow": "awsui_arrow_fvjdu_yr7md_139",
|
|
9
|
+
"page-number": "awsui_page-number_fvjdu_yr7md_149",
|
|
10
|
+
"button-current": "awsui_button-current_fvjdu_yr7md_155",
|
|
11
|
+
"page-item": "awsui_page-item_fvjdu_yr7md_172",
|
|
12
|
+
"root-disabled": "awsui_root-disabled_fvjdu_yr7md_188"
|
|
13
13
|
};
|
|
14
14
|
|
|
@@ -90,7 +90,7 @@ surrounding text. (WCAG F73) https://www.w3.org/WAI/WCAG21/Techniques/failures/F
|
|
|
90
90
|
Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
|
|
91
91
|
SPDX-License-Identifier: Apache-2.0
|
|
92
92
|
*/
|
|
93
|
-
.
|
|
93
|
+
.awsui_root_fvjdu_yr7md_93:not(#\9) {
|
|
94
94
|
/* stylelint-disable-next-line plugin/no-unsupported-browser-features */
|
|
95
95
|
border-collapse: separate;
|
|
96
96
|
border-spacing: 0;
|
|
@@ -134,13 +134,13 @@ surrounding text. (WCAG F73) https://www.w3.org/WAI/WCAG21/Techniques/failures/F
|
|
|
134
134
|
list-style: none;
|
|
135
135
|
}
|
|
136
136
|
|
|
137
|
-
.
|
|
138
|
-
.
|
|
137
|
+
.awsui_button_fvjdu_yr7md_111:not(#\9),
|
|
138
|
+
.awsui_dots_fvjdu_yr7md_112:not(#\9) {
|
|
139
139
|
min-width: var(--space-l-4vl6xu, 20px);
|
|
140
140
|
border: var(--border-field-width-idlekx, 2px) solid transparent;
|
|
141
141
|
}
|
|
142
142
|
|
|
143
|
-
.
|
|
143
|
+
.awsui_button_fvjdu_yr7md_111:not(#\9) {
|
|
144
144
|
cursor: pointer;
|
|
145
145
|
text-align: center;
|
|
146
146
|
box-sizing: border-box;
|
|
@@ -148,67 +148,69 @@ surrounding text. (WCAG F73) https://www.w3.org/WAI/WCAG21/Techniques/failures/F
|
|
|
148
148
|
line-height: inherit;
|
|
149
149
|
padding: 0;
|
|
150
150
|
}
|
|
151
|
-
.
|
|
151
|
+
.awsui_button_fvjdu_yr7md_111:not(#\9):focus {
|
|
152
152
|
outline: none;
|
|
153
153
|
}
|
|
154
|
-
.
|
|
154
|
+
.awsui_button_fvjdu_yr7md_111[data-awsui-focus-visible=true]:not(#\9):focus {
|
|
155
155
|
outline: 2px dotted transparent;
|
|
156
156
|
border: var(--border-field-width-idlekx, 2px) solid var(--color-border-item-focused-ap3b6s, #0972d3);
|
|
157
157
|
border-radius: var(--border-radius-control-default-focus-ring-7661kz, 4px);
|
|
158
158
|
box-shadow: 0 0 0 var(--border-control-focus-ring-shadow-spread-srzyiu, 0px) var(--color-border-item-focused-ap3b6s, #0972d3);
|
|
159
159
|
}
|
|
160
|
-
.awsui_button-
|
|
160
|
+
.awsui_button-disabled_fvjdu_yr7md_134:not(#\9) {
|
|
161
161
|
cursor: default;
|
|
162
162
|
color: var(--color-text-interactive-disabled-3pbb07, #9ba7b6);
|
|
163
163
|
}
|
|
164
164
|
|
|
165
|
-
.
|
|
165
|
+
.awsui_arrow_fvjdu_yr7md_139:not(#\9) {
|
|
166
166
|
color: var(--color-text-interactive-default-eg5fsa, #414d5c);
|
|
167
167
|
}
|
|
168
|
-
.
|
|
168
|
+
.awsui_arrow_fvjdu_yr7md_139:not(#\9):not(.awsui_button-disabled_fvjdu_yr7md_134):hover {
|
|
169
169
|
color: var(--color-text-interactive-hover-v3lasm, #000716);
|
|
170
170
|
}
|
|
171
|
-
.
|
|
171
|
+
.awsui_arrow_fvjdu_yr7md_139.awsui_button-disabled_fvjdu_yr7md_134:not(#\9) {
|
|
172
172
|
color: var(--color-text-interactive-disabled-3pbb07, #9ba7b6);
|
|
173
173
|
}
|
|
174
174
|
|
|
175
|
-
.awsui_page-
|
|
175
|
+
.awsui_page-number_fvjdu_yr7md_149:not(#\9) {
|
|
176
176
|
color: var(--color-text-pagination-page-number-default-z6gnaa, #414d5c);
|
|
177
177
|
}
|
|
178
|
-
.awsui_page-
|
|
178
|
+
.awsui_page-number_fvjdu_yr7md_149:not(#\9):not(.awsui_button-disabled_fvjdu_yr7md_134):hover {
|
|
179
179
|
color: var(--color-text-interactive-hover-v3lasm, #000716);
|
|
180
180
|
}
|
|
181
|
-
.awsui_page-
|
|
181
|
+
.awsui_page-number_fvjdu_yr7md_149.awsui_button-current_fvjdu_yr7md_155:not(#\9) {
|
|
182
182
|
font-weight: var(--font-wayfinding-link-active-weight-l3fid7, 800);
|
|
183
|
+
-webkit-font-smoothing: var(--font-smoothing-webkit-vu3hx4, antialiased);
|
|
184
|
+
-moz-osx-font-smoothing: var(--font-smoothing-moz-osx-nkh1jb, grayscale);
|
|
183
185
|
color: var(--color-text-interactive-active-vol84d, #000716);
|
|
184
186
|
}
|
|
185
|
-
.awsui_page-
|
|
187
|
+
.awsui_page-number_fvjdu_yr7md_149.awsui_button-current_fvjdu_yr7md_155.awsui_button-disabled_fvjdu_yr7md_134:not(#\9) {
|
|
186
188
|
color: var(--color-text-pagination-page-number-active-disabled-sjs1t5, #9ba7b6);
|
|
187
189
|
}
|
|
188
|
-
.awsui_page-
|
|
190
|
+
.awsui_page-number_fvjdu_yr7md_149.awsui_button-disabled_fvjdu_yr7md_134:not(#\9) {
|
|
189
191
|
color: var(--color-text-interactive-disabled-3pbb07, #9ba7b6);
|
|
190
192
|
}
|
|
191
193
|
|
|
192
|
-
.
|
|
194
|
+
.awsui_dots_fvjdu_yr7md_112:not(#\9) {
|
|
193
195
|
color: var(--color-text-interactive-default-eg5fsa, #414d5c);
|
|
194
196
|
}
|
|
195
197
|
|
|
196
|
-
.awsui_page-
|
|
197
|
-
.
|
|
198
|
+
.awsui_page-item_fvjdu_yr7md_172:not(#\9),
|
|
199
|
+
.awsui_dots_fvjdu_yr7md_112:not(#\9) {
|
|
198
200
|
margin: var(--space-scaled-xxs-95dhkm, 4px) var(--space-xxs-ynfts5, 4px);
|
|
199
201
|
text-align: center;
|
|
200
202
|
box-sizing: border-box;
|
|
201
203
|
padding: 0;
|
|
202
204
|
}
|
|
203
|
-
.awsui_page-
|
|
204
|
-
.
|
|
205
|
+
.awsui_page-item_fvjdu_yr7md_172:not(#\9):first-child,
|
|
206
|
+
.awsui_dots_fvjdu_yr7md_112:not(#\9):first-child {
|
|
205
207
|
margin-left: 0;
|
|
206
208
|
}
|
|
207
|
-
.awsui_page-
|
|
208
|
-
.
|
|
209
|
+
.awsui_page-item_fvjdu_yr7md_172:not(#\9):last-child,
|
|
210
|
+
.awsui_dots_fvjdu_yr7md_112:not(#\9):last-child {
|
|
209
211
|
margin-right: 0;
|
|
210
212
|
}
|
|
211
213
|
|
|
212
|
-
.awsui_root-
|
|
214
|
+
.awsui_root-disabled_fvjdu_yr7md_188 > .awsui_dots_fvjdu_yr7md_112:not(#\9) {
|
|
213
215
|
color: var(--color-text-interactive-disabled-3pbb07, #9ba7b6);
|
|
214
216
|
}
|
|
@@ -2,14 +2,14 @@
|
|
|
2
2
|
// es-module interop with Babel and Typescript
|
|
3
3
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
4
|
module.exports.default = {
|
|
5
|
-
"root": "
|
|
6
|
-
"button": "
|
|
7
|
-
"dots": "
|
|
8
|
-
"button-disabled": "awsui_button-
|
|
9
|
-
"arrow": "
|
|
10
|
-
"page-number": "awsui_page-
|
|
11
|
-
"button-current": "awsui_button-
|
|
12
|
-
"page-item": "awsui_page-
|
|
13
|
-
"root-disabled": "awsui_root-
|
|
5
|
+
"root": "awsui_root_fvjdu_yr7md_93",
|
|
6
|
+
"button": "awsui_button_fvjdu_yr7md_111",
|
|
7
|
+
"dots": "awsui_dots_fvjdu_yr7md_112",
|
|
8
|
+
"button-disabled": "awsui_button-disabled_fvjdu_yr7md_134",
|
|
9
|
+
"arrow": "awsui_arrow_fvjdu_yr7md_139",
|
|
10
|
+
"page-number": "awsui_page-number_fvjdu_yr7md_149",
|
|
11
|
+
"button-current": "awsui_button-current_fvjdu_yr7md_155",
|
|
12
|
+
"page-item": "awsui_page-item_fvjdu_yr7md_172",
|
|
13
|
+
"root-disabled": "awsui_root-disabled_fvjdu_yr7md_188"
|
|
14
14
|
};
|
|
15
15
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pie-chart.d.ts","sourceRoot":"","sources":["../../../src/pie-chart/pie-chart.tsx"],"names":[],"mappings":"AAEA,OAAO,KAA4D,MAAM,OAAO,CAAC;AAcjF,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAMzD,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAEjD,MAAM,WAAW,kBAAkB,CAAC,CAAC;IACnC,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC;CACpB;AAED,UAAU,qBAAqB,CAAC,CAAC,SAAS,aAAa,CAAC,KAAK,CAC3D,SAAQ,YAAY,CAClB,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,mBAAmB,CAAC,EAC3C,SAAS,GAAG,MAAM,GAAG,aAAa,GAAG,YAAY,GAAG,kBAAkB,GAAG,YAAY,CACtF;IACD,WAAW,EAAE,KAAK,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,CAAC;IAC1C,KAAK,EAAE,MAAM,CAAC;IAEd,kBAAkB,EAAE,CAAC,GAAG,IAAI,CAAC;IAC7B,iBAAiB,EAAE,CAAC,OAAO,EAAE,IAAI,GAAG,CAAC,KAAK,IAAI,CAAC;IAE/C,aAAa,EAAE,CAAC,GAAG,IAAI,CAAC;IAExB,aAAa,EAAE,CAAC,GAAG,IAAI,CAAC;IACxB,gBAAgB,EAAE,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC;CAClE;AAED,MAAM,WAAW,WAAW,CAAC,CAAC;IAC5B,KAAK,EAAE,CAAC,CAAC;IACT,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;IACtC,MAAM,EAAE,UAAU,CAAC;CACpB;;AAED,
|
|
1
|
+
{"version":3,"file":"pie-chart.d.ts","sourceRoot":"","sources":["../../../src/pie-chart/pie-chart.tsx"],"names":[],"mappings":"AAEA,OAAO,KAA4D,MAAM,OAAO,CAAC;AAcjF,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAMzD,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAEjD,MAAM,WAAW,kBAAkB,CAAC,CAAC;IACnC,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC;CACpB;AAED,UAAU,qBAAqB,CAAC,CAAC,SAAS,aAAa,CAAC,KAAK,CAC3D,SAAQ,YAAY,CAClB,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,mBAAmB,CAAC,EAC3C,SAAS,GAAG,MAAM,GAAG,aAAa,GAAG,YAAY,GAAG,kBAAkB,GAAG,YAAY,CACtF;IACD,WAAW,EAAE,KAAK,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,CAAC;IAC1C,KAAK,EAAE,MAAM,CAAC;IAEd,kBAAkB,EAAE,CAAC,GAAG,IAAI,CAAC;IAC7B,iBAAiB,EAAE,CAAC,OAAO,EAAE,IAAI,GAAG,CAAC,KAAK,IAAI,CAAC;IAE/C,aAAa,EAAE,CAAC,GAAG,IAAI,CAAC;IAExB,aAAa,EAAE,CAAC,GAAG,IAAI,CAAC;IACxB,gBAAgB,EAAE,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC;CAClE;AAED,MAAM,WAAW,WAAW,CAAC,CAAC;IAC5B,KAAK,EAAE,CAAC,CAAC;IACT,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;IACtC,MAAM,EAAE,UAAU,CAAC;CACpB;;AAED,wBAyWE"}
|
package/pie-chart/pie-chart.js
CHANGED
|
@@ -125,25 +125,29 @@ export default (function (_a) {
|
|
|
125
125
|
clearHighlightedSegment();
|
|
126
126
|
}, [pinnedSegment, clearHighlightedSegment]);
|
|
127
127
|
var onKeyDown = useCallback(function (event) {
|
|
128
|
-
|
|
128
|
+
var keyCode = event.keyCode;
|
|
129
|
+
if (keyCode !== KeyCode.right &&
|
|
130
|
+
keyCode !== KeyCode.left &&
|
|
131
|
+
keyCode !== KeyCode.enter &&
|
|
132
|
+
keyCode !== KeyCode.space) {
|
|
129
133
|
return;
|
|
130
134
|
}
|
|
131
135
|
event.preventDefault();
|
|
132
136
|
var nextIndex = highlightedSegmentIndex || 0;
|
|
133
137
|
var MAX = pieData.length - 1;
|
|
134
|
-
if (
|
|
138
|
+
if (keyCode === KeyCode.right) {
|
|
135
139
|
nextIndex++;
|
|
136
140
|
if (nextIndex > MAX) {
|
|
137
141
|
nextIndex = 0;
|
|
138
142
|
}
|
|
139
143
|
}
|
|
140
|
-
else if (
|
|
144
|
+
else if (keyCode === KeyCode.left) {
|
|
141
145
|
nextIndex--;
|
|
142
146
|
if (nextIndex < 0) {
|
|
143
147
|
nextIndex = MAX;
|
|
144
148
|
}
|
|
145
149
|
}
|
|
146
|
-
if (
|
|
150
|
+
if (keyCode === KeyCode.enter || keyCode === KeyCode.space) {
|
|
147
151
|
setPinnedSegment(pieData[nextIndex].data.datum);
|
|
148
152
|
}
|
|
149
153
|
highlightSegment(pieData[nextIndex].data);
|
|
@@ -180,6 +184,9 @@ export default (function (_a) {
|
|
|
180
184
|
popoverDismissedRecently.current = false;
|
|
181
185
|
}, 0);
|
|
182
186
|
}
|
|
187
|
+
else {
|
|
188
|
+
onHighlightChange(null);
|
|
189
|
+
}
|
|
183
190
|
};
|
|
184
191
|
var onPopoverLeave = function (event) {
|
|
185
192
|
if (pinnedSegment !== null || focusedSegmentRef.current.contains(event.relatedTarget)) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pie-chart.js","sourceRoot":"","sources":["../../../src/pie-chart/pie-chart.tsx"],"names":[],"mappings":"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","sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport React, { useCallback, useEffect, useMemo, useRef, useState } from 'react';\nimport clsx from 'clsx';\nimport { pie } from 'd3-shape';\n\nimport { KeyCode } from '../internal/keycode';\nimport { nodeContains } from '../internal/utils/dom';\nimport { useUniqueId } from '../internal/hooks/use-unique-id';\nimport ChartPopover from '../internal/components/chart-popover';\nimport SeriesDetails from '../internal/components/chart-series-details';\nimport SeriesMarker from '../internal/components/chart-series-marker';\nimport ChartStatusContainer, { getChartStatus } from '../internal/components/chart-status-container';\nimport InternalBox from '../box/internal';\n\nimport Labels from './labels';\nimport { PieChartProps, SeriesInfo } from './interfaces';\nimport styles from './styles.css.js';\nimport { defaultDetails, dimensionsBySize, refreshDimensionsBySize } from './utils';\nimport Segments from './segments';\nimport { useVisualRefresh } from '../internal/hooks/use-visual-mode';\nimport ChartPlot, { ChartPlotRef } from '../internal/components/chart-plot';\nimport { SomeRequired } from '../internal/types';\n\nexport interface InternalChartDatum<T> {\n index: number;\n color: string;\n datum: Readonly<T>;\n}\n\ninterface InternalPieChartProps<T extends PieChartProps.Datum>\n extends SomeRequired<\n Omit<PieChartProps<T>, 'onHighlightChange'>,\n 'variant' | 'size' | 'i18nStrings' | 'hideTitles' | 'hideDescriptions' | 'statusType'\n > {\n visibleData: Array<InternalChartDatum<T>>;\n width: number;\n\n highlightedSegment: T | null;\n onHighlightChange: (segment: null | T) => void;\n\n legendSegment: T | null;\n\n pinnedSegment: T | null;\n setPinnedSegment: React.Dispatch<React.SetStateAction<T | null>>;\n}\n\nexport interface TooltipData<T> {\n datum: T;\n trackRef: React.RefObject<SVGElement>;\n series: SeriesInfo;\n}\n\nexport default <T extends PieChartProps.Datum>({\n variant,\n size,\n i18nStrings,\n ariaLabel,\n ariaLabelledby,\n data,\n visibleData,\n ariaDescription,\n innerMetricValue,\n innerMetricDescription,\n hideTitles,\n hideDescriptions,\n detailPopoverContent,\n detailPopoverSize,\n width,\n additionalFilters,\n hideFilter,\n hideLegend,\n statusType,\n empty,\n noMatch,\n errorText,\n recoveryText,\n loadingText,\n onRecoveryClick,\n segmentDescription,\n highlightedSegment,\n onHighlightChange,\n legendSegment,\n pinnedSegment,\n setPinnedSegment,\n}: InternalPieChartProps<T>) => {\n const plotRef = useRef<ChartPlotRef>(null);\n const containerRef = useRef<HTMLDivElement>(null);\n const focusedSegmentRef = useRef<SVGGElement>(null);\n const popoverTrackRef = useRef<SVGCircleElement>(null);\n const popoverRef = useRef<HTMLElement | null>(null);\n const isRefresh = useVisualRefresh();\n\n const dimensions = isRefresh ? refreshDimensionsBySize[size] : dimensionsBySize[size];\n const radius = dimensions.outerRadius;\n\n const hasLabels = !(hideTitles && hideDescriptions);\n const height = 2 * (radius + dimensions.padding + (hasLabels ? dimensions.paddingLabels : 0));\n\n // Inner content is only available for donut charts and the inner description is not displayed for small charts\n const hasInnerContent = variant === 'donut' && (innerMetricValue || (innerMetricDescription && size !== 'small'));\n\n const innerMetricId = useUniqueId('awsui-pie-chart__inner');\n\n const [isTooltipOpen, setTooltipOpen] = useState<boolean>(false);\n const [tooltipData, setTooltipData] = useState<TooltipData<T>>();\n\n const { pieData, dataSum } = useMemo(() => {\n const dataSum = visibleData.reduce((sum, d) => sum + d.datum.value, 0);\n\n const pieFactory = pie<InternalChartDatum<T>>()\n // Minimum 1% segment size\n .value(d => (d.datum.value < dataSum / 100 ? dataSum / 100 : d.datum.value))\n .sort(null);\n\n // Filter out segments with value of zero or below\n const pieData = pieFactory(visibleData.filter(d => d.datum.value > 0));\n\n return { pieData, dataSum };\n }, [visibleData]);\n\n const highlightedSegmentIndex = useMemo(() => {\n for (let index = 0; index < pieData.length; index++) {\n if (pieData[index].data.datum === highlightedSegment) {\n return index;\n }\n }\n return null;\n }, [pieData, highlightedSegment]);\n\n const detailFunction = detailPopoverContent || defaultDetails(i18nStrings);\n const details = tooltipData ? detailFunction(tooltipData.datum, dataSum) : [];\n const tooltipContent = tooltipData && <SeriesDetails details={details} />;\n\n const { isEmpty, showChart } = getChartStatus({ externalData: data, visibleData: pieData, statusType });\n\n // Pie charts have a special condition for empty/noMatch due to how zero-value segments are handled.\n const isNoMatch = isEmpty && visibleData.length !== data.length;\n\n const reserveLegendSpace = !showChart && !hideLegend;\n const reserveFilterSpace = statusType !== 'finished' && !isNoMatch && (!hideFilter || additionalFilters);\n\n const popoverDismissedRecently = useRef(false);\n const escapePressed = useRef(false);\n\n const highlightSegment = useCallback(\n (internalDatum: InternalChartDatum<T>) => {\n const segment = internalDatum.datum;\n if (segment !== highlightedSegment) {\n onHighlightChange(segment);\n }\n\n if (popoverTrackRef.current) {\n setTooltipData({\n datum: internalDatum.datum,\n series: {\n color: internalDatum.color,\n index: internalDatum.index,\n label: internalDatum.datum.title,\n markerType: 'rectangle',\n },\n trackRef: popoverTrackRef,\n });\n setTooltipOpen(true);\n }\n },\n [highlightedSegment, setTooltipOpen, onHighlightChange]\n );\n\n const clearHighlightedSegment = useCallback(() => {\n setTooltipOpen(false);\n onHighlightChange(null);\n }, [onHighlightChange, setTooltipOpen]);\n\n useEffect(() => {\n const onKeyDown = (event: KeyboardEvent) => {\n if (event.key === 'Escape') {\n clearHighlightedSegment();\n escapePressed.current = true;\n }\n };\n document.addEventListener('keydown', onKeyDown);\n return () => document.removeEventListener('keydown', onKeyDown);\n }, [clearHighlightedSegment]);\n\n const onMouseDown = useCallback(\n (internalDatum: InternalChartDatum<T>) => {\n if (pinnedSegment === internalDatum.datum) {\n setPinnedSegment(null);\n clearHighlightedSegment();\n } else {\n setPinnedSegment(internalDatum.datum);\n highlightSegment(internalDatum);\n }\n },\n [pinnedSegment, clearHighlightedSegment, setPinnedSegment, highlightSegment]\n );\n const onMouseOver = useCallback(\n (internalDatum: InternalChartDatum<T>) => {\n if (escapePressed.current) {\n escapePressed.current = false;\n return;\n }\n if (pinnedSegment !== null) {\n return;\n }\n highlightSegment(internalDatum);\n },\n [pinnedSegment, highlightSegment]\n );\n const onMouseOut = useCallback(\n (event: React.MouseEvent<SVGElement, MouseEvent>) => {\n if (pinnedSegment !== null || popoverRef.current?.contains(event.relatedTarget as Node)) {\n return;\n }\n\n clearHighlightedSegment();\n },\n [pinnedSegment, clearHighlightedSegment]\n );\n const onKeyDown = useCallback(\n (event: React.KeyboardEvent) => {\n if (event.keyCode !== KeyCode.right && event.keyCode !== KeyCode.left && event.keyCode !== KeyCode.enter) {\n return;\n }\n\n event.preventDefault();\n\n let nextIndex = highlightedSegmentIndex || 0;\n const MAX = pieData.length - 1;\n if (event.keyCode === KeyCode.right) {\n nextIndex++;\n if (nextIndex > MAX) {\n nextIndex = 0;\n }\n } else if (event.keyCode === KeyCode.left) {\n nextIndex--;\n if (nextIndex < 0) {\n nextIndex = MAX;\n }\n }\n if (event.keyCode === KeyCode.enter) {\n setPinnedSegment(pieData[nextIndex].data.datum);\n }\n highlightSegment(pieData[nextIndex].data);\n },\n [setPinnedSegment, highlightSegment, pieData, highlightedSegmentIndex]\n );\n const onFocus = useCallback(\n (_event: any, target: 'keyboard' | 'mouse') => {\n // We need to make sure that we do not re-show the popover when we focus the segment after the popover is dismissed.\n // Normally we would check `event.relatedTarget` for the previously focused element,\n // but this is not supported for SVG elements in IE11. The workaround is this `popoverDismissedRecently` ref.\n if (pinnedSegment !== null || popoverDismissedRecently.current || target === 'mouse') {\n return;\n }\n\n const segment = highlightedSegment || legendSegment || pieData[0].data.datum;\n const matched = pieData.filter(d => d.data.datum === segment);\n highlightSegment(matched[0].data);\n },\n [pinnedSegment, pieData, highlightSegment, highlightedSegment, legendSegment]\n );\n\n const onBlur = useCallback(\n (event: React.FocusEvent) => {\n const blurTarget = event.relatedTarget || event.target;\n if (blurTarget === null || !(blurTarget instanceof Element) || !nodeContains(containerRef.current, blurTarget)) {\n // We only need to close the tooltip and remove the pinned segment so that we keep track of the current\n // highlighted legendSeries. using clearHighlightedSegment() would set the legendSeries to null, in that case\n // using Keyboard Tab will always highlight the first legend item in the legend component.\n setTooltipOpen(false);\n setPinnedSegment(null);\n }\n },\n [setPinnedSegment]\n );\n const onPopoverDismiss = (outsideClick?: boolean) => {\n setTooltipOpen(false);\n setPinnedSegment(null);\n\n if (!outsideClick) {\n // The delay is needed to bypass focus events caused by click or keypress needed to unpin the popover.\n setTimeout(() => {\n popoverDismissedRecently.current = true;\n plotRef.current!.focusApplication();\n popoverDismissedRecently.current = false;\n }, 0);\n }\n };\n\n const onPopoverLeave = (event: React.MouseEvent) => {\n if (pinnedSegment !== null || focusedSegmentRef.current!.contains(event.relatedTarget as Node)) {\n return;\n }\n clearHighlightedSegment();\n };\n\n return (\n <div\n className={clsx(styles.content, styles[`content--${size}`], {\n [styles['content--without-labels']]: !hasLabels,\n [styles['content--reserve-filter']]: reserveFilterSpace,\n [styles['content--reserve-legend']]: reserveLegendSpace,\n })}\n >\n <ChartStatusContainer\n isEmpty={isEmpty}\n isNoMatch={isNoMatch}\n showChart={showChart}\n statusType={statusType}\n empty={empty}\n noMatch={noMatch}\n loadingText={loadingText}\n errorText={errorText}\n recoveryText={recoveryText}\n onRecoveryClick={onRecoveryClick}\n />\n {showChart && (\n <div className={styles['chart-container']} ref={containerRef}>\n <ChartPlot\n ref={plotRef}\n width={width}\n height={height}\n transform={`translate(${width / 2} ${height / 2})`}\n isPrecise={true}\n isClickable={!isTooltipOpen}\n ariaLabel={ariaLabel}\n ariaLabelledby={ariaLabelledby}\n ariaDescription={ariaDescription}\n ariaDescribedby={hasInnerContent ? innerMetricId : undefined}\n ariaRoleDescription={i18nStrings?.chartAriaRoleDescription}\n ariaLiveRegion={tooltipContent}\n activeElementRef={focusedSegmentRef}\n activeElementKey={highlightedSegmentIndex?.toString()}\n onFocus={onFocus}\n onBlur={onBlur}\n onKeyDown={onKeyDown}\n onMouseOut={onMouseOut}\n >\n <Segments\n pieData={pieData}\n size={size}\n variant={variant}\n focusedSegmentRef={focusedSegmentRef}\n popoverTrackRef={popoverTrackRef}\n highlightedSegment={highlightedSegment}\n segmentAriaRoleDescription={i18nStrings?.segmentAriaRoleDescription}\n onMouseDown={onMouseDown}\n onMouseOver={onMouseOver}\n onMouseOut={onMouseOut}\n />\n {hasLabels && (\n <Labels\n pieData={pieData}\n size={size}\n segmentDescription={segmentDescription}\n visibleDataSum={dataSum}\n hideTitles={hideTitles}\n hideDescriptions={hideDescriptions}\n highlightedSegment={highlightedSegment}\n containerRef={containerRef}\n />\n )}\n </ChartPlot>\n {hasInnerContent && (\n <div className={styles['inner-content']} id={innerMetricId}>\n {innerMetricValue && (\n <InternalBox variant={size === 'small' ? 'h3' : 'h1'} tagOverride=\"div\" color=\"inherit\" padding=\"n\">\n {innerMetricValue}\n </InternalBox>\n )}\n {innerMetricDescription && size !== 'small' && (\n <InternalBox variant=\"h3\" color=\"text-body-secondary\" tagOverride=\"div\" padding=\"n\">\n {innerMetricDescription}\n </InternalBox>\n )}\n </div>\n )}\n {isTooltipOpen && tooltipData && (\n <ChartPopover\n ref={popoverRef}\n title={\n tooltipData.series && (\n <InternalBox className={styles['popover-header']} variant=\"strong\">\n <SeriesMarker color={tooltipData.series.color} type={tooltipData.series.markerType} />{' '}\n {tooltipData.series.label}\n </InternalBox>\n )\n }\n trackRef={tooltipData.trackRef}\n trackKey={tooltipData.series.index}\n dismissButton={pinnedSegment !== null}\n dismissAriaLabel={i18nStrings.detailPopoverDismissAriaLabel}\n onDismiss={onPopoverDismiss}\n container={plotRef.current?.svg || null}\n size={detailPopoverSize}\n onMouseLeave={onPopoverLeave}\n >\n {tooltipContent}\n </ChartPopover>\n )}\n </div>\n )}\n </div>\n );\n};\n"]}
|
|
1
|
+
{"version":3,"file":"pie-chart.js","sourceRoot":"","sources":["../../../src/pie-chart/pie-chart.tsx"],"names":[],"mappings":"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","sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport React, { useCallback, useEffect, useMemo, useRef, useState } from 'react';\nimport clsx from 'clsx';\nimport { pie } from 'd3-shape';\n\nimport { KeyCode } from '../internal/keycode';\nimport { nodeContains } from '../internal/utils/dom';\nimport { useUniqueId } from '../internal/hooks/use-unique-id';\nimport ChartPopover from '../internal/components/chart-popover';\nimport SeriesDetails from '../internal/components/chart-series-details';\nimport SeriesMarker from '../internal/components/chart-series-marker';\nimport ChartStatusContainer, { getChartStatus } from '../internal/components/chart-status-container';\nimport InternalBox from '../box/internal';\n\nimport Labels from './labels';\nimport { PieChartProps, SeriesInfo } from './interfaces';\nimport styles from './styles.css.js';\nimport { defaultDetails, dimensionsBySize, refreshDimensionsBySize } from './utils';\nimport Segments from './segments';\nimport { useVisualRefresh } from '../internal/hooks/use-visual-mode';\nimport ChartPlot, { ChartPlotRef } from '../internal/components/chart-plot';\nimport { SomeRequired } from '../internal/types';\n\nexport interface InternalChartDatum<T> {\n index: number;\n color: string;\n datum: Readonly<T>;\n}\n\ninterface InternalPieChartProps<T extends PieChartProps.Datum>\n extends SomeRequired<\n Omit<PieChartProps<T>, 'onHighlightChange'>,\n 'variant' | 'size' | 'i18nStrings' | 'hideTitles' | 'hideDescriptions' | 'statusType'\n > {\n visibleData: Array<InternalChartDatum<T>>;\n width: number;\n\n highlightedSegment: T | null;\n onHighlightChange: (segment: null | T) => void;\n\n legendSegment: T | null;\n\n pinnedSegment: T | null;\n setPinnedSegment: React.Dispatch<React.SetStateAction<T | null>>;\n}\n\nexport interface TooltipData<T> {\n datum: T;\n trackRef: React.RefObject<SVGElement>;\n series: SeriesInfo;\n}\n\nexport default <T extends PieChartProps.Datum>({\n variant,\n size,\n i18nStrings,\n ariaLabel,\n ariaLabelledby,\n data,\n visibleData,\n ariaDescription,\n innerMetricValue,\n innerMetricDescription,\n hideTitles,\n hideDescriptions,\n detailPopoverContent,\n detailPopoverSize,\n width,\n additionalFilters,\n hideFilter,\n hideLegend,\n statusType,\n empty,\n noMatch,\n errorText,\n recoveryText,\n loadingText,\n onRecoveryClick,\n segmentDescription,\n highlightedSegment,\n onHighlightChange,\n legendSegment,\n pinnedSegment,\n setPinnedSegment,\n}: InternalPieChartProps<T>) => {\n const plotRef = useRef<ChartPlotRef>(null);\n const containerRef = useRef<HTMLDivElement>(null);\n const focusedSegmentRef = useRef<SVGGElement>(null);\n const popoverTrackRef = useRef<SVGCircleElement>(null);\n const popoverRef = useRef<HTMLElement | null>(null);\n const isRefresh = useVisualRefresh();\n\n const dimensions = isRefresh ? refreshDimensionsBySize[size] : dimensionsBySize[size];\n const radius = dimensions.outerRadius;\n\n const hasLabels = !(hideTitles && hideDescriptions);\n const height = 2 * (radius + dimensions.padding + (hasLabels ? dimensions.paddingLabels : 0));\n\n // Inner content is only available for donut charts and the inner description is not displayed for small charts\n const hasInnerContent = variant === 'donut' && (innerMetricValue || (innerMetricDescription && size !== 'small'));\n\n const innerMetricId = useUniqueId('awsui-pie-chart__inner');\n\n const [isTooltipOpen, setTooltipOpen] = useState<boolean>(false);\n const [tooltipData, setTooltipData] = useState<TooltipData<T>>();\n\n const { pieData, dataSum } = useMemo(() => {\n const dataSum = visibleData.reduce((sum, d) => sum + d.datum.value, 0);\n\n const pieFactory = pie<InternalChartDatum<T>>()\n // Minimum 1% segment size\n .value(d => (d.datum.value < dataSum / 100 ? dataSum / 100 : d.datum.value))\n .sort(null);\n\n // Filter out segments with value of zero or below\n const pieData = pieFactory(visibleData.filter(d => d.datum.value > 0));\n\n return { pieData, dataSum };\n }, [visibleData]);\n\n const highlightedSegmentIndex = useMemo(() => {\n for (let index = 0; index < pieData.length; index++) {\n if (pieData[index].data.datum === highlightedSegment) {\n return index;\n }\n }\n return null;\n }, [pieData, highlightedSegment]);\n\n const detailFunction = detailPopoverContent || defaultDetails(i18nStrings);\n const details = tooltipData ? detailFunction(tooltipData.datum, dataSum) : [];\n const tooltipContent = tooltipData && <SeriesDetails details={details} />;\n\n const { isEmpty, showChart } = getChartStatus({ externalData: data, visibleData: pieData, statusType });\n\n // Pie charts have a special condition for empty/noMatch due to how zero-value segments are handled.\n const isNoMatch = isEmpty && visibleData.length !== data.length;\n\n const reserveLegendSpace = !showChart && !hideLegend;\n const reserveFilterSpace = statusType !== 'finished' && !isNoMatch && (!hideFilter || additionalFilters);\n\n const popoverDismissedRecently = useRef(false);\n const escapePressed = useRef(false);\n\n const highlightSegment = useCallback(\n (internalDatum: InternalChartDatum<T>) => {\n const segment = internalDatum.datum;\n if (segment !== highlightedSegment) {\n onHighlightChange(segment);\n }\n\n if (popoverTrackRef.current) {\n setTooltipData({\n datum: internalDatum.datum,\n series: {\n color: internalDatum.color,\n index: internalDatum.index,\n label: internalDatum.datum.title,\n markerType: 'rectangle',\n },\n trackRef: popoverTrackRef,\n });\n setTooltipOpen(true);\n }\n },\n [highlightedSegment, setTooltipOpen, onHighlightChange]\n );\n\n const clearHighlightedSegment = useCallback(() => {\n setTooltipOpen(false);\n onHighlightChange(null);\n }, [onHighlightChange, setTooltipOpen]);\n\n useEffect(() => {\n const onKeyDown = (event: KeyboardEvent) => {\n if (event.key === 'Escape') {\n clearHighlightedSegment();\n escapePressed.current = true;\n }\n };\n document.addEventListener('keydown', onKeyDown);\n return () => document.removeEventListener('keydown', onKeyDown);\n }, [clearHighlightedSegment]);\n\n const onMouseDown = useCallback(\n (internalDatum: InternalChartDatum<T>) => {\n if (pinnedSegment === internalDatum.datum) {\n setPinnedSegment(null);\n clearHighlightedSegment();\n } else {\n setPinnedSegment(internalDatum.datum);\n highlightSegment(internalDatum);\n }\n },\n [pinnedSegment, clearHighlightedSegment, setPinnedSegment, highlightSegment]\n );\n const onMouseOver = useCallback(\n (internalDatum: InternalChartDatum<T>) => {\n if (escapePressed.current) {\n escapePressed.current = false;\n return;\n }\n if (pinnedSegment !== null) {\n return;\n }\n highlightSegment(internalDatum);\n },\n [pinnedSegment, highlightSegment]\n );\n const onMouseOut = useCallback(\n (event: React.MouseEvent<SVGElement, MouseEvent>) => {\n if (pinnedSegment !== null || popoverRef.current?.contains(event.relatedTarget as Node)) {\n return;\n }\n\n clearHighlightedSegment();\n },\n [pinnedSegment, clearHighlightedSegment]\n );\n const onKeyDown = useCallback(\n (event: React.KeyboardEvent) => {\n const keyCode = event.keyCode;\n if (\n keyCode !== KeyCode.right &&\n keyCode !== KeyCode.left &&\n keyCode !== KeyCode.enter &&\n keyCode !== KeyCode.space\n ) {\n return;\n }\n\n event.preventDefault();\n\n let nextIndex = highlightedSegmentIndex || 0;\n const MAX = pieData.length - 1;\n if (keyCode === KeyCode.right) {\n nextIndex++;\n if (nextIndex > MAX) {\n nextIndex = 0;\n }\n } else if (keyCode === KeyCode.left) {\n nextIndex--;\n if (nextIndex < 0) {\n nextIndex = MAX;\n }\n }\n if (keyCode === KeyCode.enter || keyCode === KeyCode.space) {\n setPinnedSegment(pieData[nextIndex].data.datum);\n }\n highlightSegment(pieData[nextIndex].data);\n },\n [setPinnedSegment, highlightSegment, pieData, highlightedSegmentIndex]\n );\n const onFocus = useCallback(\n (_event: any, target: 'keyboard' | 'mouse') => {\n // We need to make sure that we do not re-show the popover when we focus the segment after the popover is dismissed.\n // Normally we would check `event.relatedTarget` for the previously focused element,\n // but this is not supported for SVG elements in IE11. The workaround is this `popoverDismissedRecently` ref.\n if (pinnedSegment !== null || popoverDismissedRecently.current || target === 'mouse') {\n return;\n }\n\n const segment = highlightedSegment || legendSegment || pieData[0].data.datum;\n const matched = pieData.filter(d => d.data.datum === segment);\n highlightSegment(matched[0].data);\n },\n [pinnedSegment, pieData, highlightSegment, highlightedSegment, legendSegment]\n );\n\n const onBlur = useCallback(\n (event: React.FocusEvent) => {\n const blurTarget = event.relatedTarget || event.target;\n if (blurTarget === null || !(blurTarget instanceof Element) || !nodeContains(containerRef.current, blurTarget)) {\n // We only need to close the tooltip and remove the pinned segment so that we keep track of the current\n // highlighted legendSeries. using clearHighlightedSegment() would set the legendSeries to null, in that case\n // using Keyboard Tab will always highlight the first legend item in the legend component.\n setTooltipOpen(false);\n setPinnedSegment(null);\n }\n },\n [setPinnedSegment]\n );\n const onPopoverDismiss = (outsideClick?: boolean) => {\n setTooltipOpen(false);\n setPinnedSegment(null);\n\n if (!outsideClick) {\n // The delay is needed to bypass focus events caused by click or keypress needed to unpin the popover.\n setTimeout(() => {\n popoverDismissedRecently.current = true;\n plotRef.current!.focusApplication();\n popoverDismissedRecently.current = false;\n }, 0);\n } else {\n onHighlightChange(null);\n }\n };\n\n const onPopoverLeave = (event: React.MouseEvent) => {\n if (pinnedSegment !== null || focusedSegmentRef.current!.contains(event.relatedTarget as Node)) {\n return;\n }\n clearHighlightedSegment();\n };\n\n return (\n <div\n className={clsx(styles.content, styles[`content--${size}`], {\n [styles['content--without-labels']]: !hasLabels,\n [styles['content--reserve-filter']]: reserveFilterSpace,\n [styles['content--reserve-legend']]: reserveLegendSpace,\n })}\n >\n <ChartStatusContainer\n isEmpty={isEmpty}\n isNoMatch={isNoMatch}\n showChart={showChart}\n statusType={statusType}\n empty={empty}\n noMatch={noMatch}\n loadingText={loadingText}\n errorText={errorText}\n recoveryText={recoveryText}\n onRecoveryClick={onRecoveryClick}\n />\n {showChart && (\n <div className={styles['chart-container']} ref={containerRef}>\n <ChartPlot\n ref={plotRef}\n width={width}\n height={height}\n transform={`translate(${width / 2} ${height / 2})`}\n isPrecise={true}\n isClickable={!isTooltipOpen}\n ariaLabel={ariaLabel}\n ariaLabelledby={ariaLabelledby}\n ariaDescription={ariaDescription}\n ariaDescribedby={hasInnerContent ? innerMetricId : undefined}\n ariaRoleDescription={i18nStrings?.chartAriaRoleDescription}\n ariaLiveRegion={tooltipContent}\n activeElementRef={focusedSegmentRef}\n activeElementKey={highlightedSegmentIndex?.toString()}\n onFocus={onFocus}\n onBlur={onBlur}\n onKeyDown={onKeyDown}\n onMouseOut={onMouseOut}\n >\n <Segments\n pieData={pieData}\n size={size}\n variant={variant}\n focusedSegmentRef={focusedSegmentRef}\n popoverTrackRef={popoverTrackRef}\n highlightedSegment={highlightedSegment}\n segmentAriaRoleDescription={i18nStrings?.segmentAriaRoleDescription}\n onMouseDown={onMouseDown}\n onMouseOver={onMouseOver}\n onMouseOut={onMouseOut}\n />\n {hasLabels && (\n <Labels\n pieData={pieData}\n size={size}\n segmentDescription={segmentDescription}\n visibleDataSum={dataSum}\n hideTitles={hideTitles}\n hideDescriptions={hideDescriptions}\n highlightedSegment={highlightedSegment}\n containerRef={containerRef}\n />\n )}\n </ChartPlot>\n {hasInnerContent && (\n <div className={styles['inner-content']} id={innerMetricId}>\n {innerMetricValue && (\n <InternalBox variant={size === 'small' ? 'h3' : 'h1'} tagOverride=\"div\" color=\"inherit\" padding=\"n\">\n {innerMetricValue}\n </InternalBox>\n )}\n {innerMetricDescription && size !== 'small' && (\n <InternalBox variant=\"h3\" color=\"text-body-secondary\" tagOverride=\"div\" padding=\"n\">\n {innerMetricDescription}\n </InternalBox>\n )}\n </div>\n )}\n {isTooltipOpen && tooltipData && (\n <ChartPopover\n ref={popoverRef}\n title={\n tooltipData.series && (\n <InternalBox className={styles['popover-header']} variant=\"strong\">\n <SeriesMarker color={tooltipData.series.color} type={tooltipData.series.markerType} />{' '}\n {tooltipData.series.label}\n </InternalBox>\n )\n }\n trackRef={tooltipData.trackRef}\n trackKey={tooltipData.series.index}\n dismissButton={pinnedSegment !== null}\n dismissAriaLabel={i18nStrings.detailPopoverDismissAriaLabel}\n onDismiss={onPopoverDismiss}\n container={plotRef.current?.svg || null}\n size={detailPopoverSize}\n onMouseLeave={onPopoverLeave}\n >\n {tooltipContent}\n </ChartPopover>\n )}\n </div>\n )}\n </div>\n );\n};\n"]}
|
package/pie-chart/styles.css.js
CHANGED
|
@@ -1,32 +1,32 @@
|
|
|
1
1
|
|
|
2
2
|
import './styles.scoped.css';
|
|
3
3
|
export default {
|
|
4
|
-
"segment__path": "
|
|
5
|
-
"segment": "
|
|
6
|
-
"segment__hover": "
|
|
7
|
-
"label": "
|
|
8
|
-
"root": "
|
|
9
|
-
"filter-container": "awsui_filter-
|
|
10
|
-
"has-default-filter": "awsui_has-default-
|
|
11
|
-
"content": "
|
|
12
|
-
"content--small": "awsui_content--
|
|
13
|
-
"content--without-labels": "awsui_content--without-
|
|
14
|
-
"content--medium": "awsui_content--
|
|
15
|
-
"content--large": "awsui_content--
|
|
16
|
-
"content--reserve-filter": "awsui_content--reserve-
|
|
17
|
-
"content--reserve-legend": "awsui_content--reserve-
|
|
18
|
-
"status-container": "awsui_status-
|
|
19
|
-
"chart-container": "awsui_chart-
|
|
20
|
-
"inner-content": "awsui_inner-
|
|
21
|
-
"segment__highlight": "
|
|
22
|
-
"segment--dimmed": "awsui_segment--
|
|
23
|
-
"segment--highlighted": "awsui_segment--
|
|
24
|
-
"label--dimmed": "awsui_label--
|
|
25
|
-
"label--align-right": "awsui_label--align-
|
|
26
|
-
"label-text": "awsui_label-
|
|
27
|
-
"label__description": "
|
|
28
|
-
"label-line": "awsui_label-
|
|
29
|
-
"label--highlighted": "awsui_label--
|
|
30
|
-
"popover-header": "awsui_popover-
|
|
4
|
+
"segment__path": "awsui_segment__path_1edmh_ynxxl_97",
|
|
5
|
+
"segment": "awsui_segment_1edmh_ynxxl_97",
|
|
6
|
+
"segment__hover": "awsui_segment__hover_1edmh_ynxxl_124",
|
|
7
|
+
"label": "awsui_label_1edmh_ynxxl_138",
|
|
8
|
+
"root": "awsui_root_1edmh_ynxxl_156",
|
|
9
|
+
"filter-container": "awsui_filter-container_1edmh_ynxxl_168",
|
|
10
|
+
"has-default-filter": "awsui_has-default-filter_1edmh_ynxxl_172",
|
|
11
|
+
"content": "awsui_content_1edmh_ynxxl_176",
|
|
12
|
+
"content--small": "awsui_content--small_1edmh_ynxxl_182",
|
|
13
|
+
"content--without-labels": "awsui_content--without-labels_1edmh_ynxxl_185",
|
|
14
|
+
"content--medium": "awsui_content--medium_1edmh_ynxxl_188",
|
|
15
|
+
"content--large": "awsui_content--large_1edmh_ynxxl_194",
|
|
16
|
+
"content--reserve-filter": "awsui_content--reserve-filter_1edmh_ynxxl_200",
|
|
17
|
+
"content--reserve-legend": "awsui_content--reserve-legend_1edmh_ynxxl_203",
|
|
18
|
+
"status-container": "awsui_status-container_1edmh_ynxxl_207",
|
|
19
|
+
"chart-container": "awsui_chart-container_1edmh_ynxxl_211",
|
|
20
|
+
"inner-content": "awsui_inner-content_1edmh_ynxxl_216",
|
|
21
|
+
"segment__highlight": "awsui_segment__highlight_1edmh_ynxxl_230",
|
|
22
|
+
"segment--dimmed": "awsui_segment--dimmed_1edmh_ynxxl_245",
|
|
23
|
+
"segment--highlighted": "awsui_segment--highlighted_1edmh_ynxxl_248",
|
|
24
|
+
"label--dimmed": "awsui_label--dimmed_1edmh_ynxxl_265",
|
|
25
|
+
"label--align-right": "awsui_label--align-right_1edmh_ynxxl_268",
|
|
26
|
+
"label-text": "awsui_label-text_1edmh_ynxxl_276",
|
|
27
|
+
"label__description": "awsui_label__description_1edmh_ynxxl_284",
|
|
28
|
+
"label-line": "awsui_label-line_1edmh_ynxxl_291",
|
|
29
|
+
"label--highlighted": "awsui_label--highlighted_1edmh_ynxxl_295",
|
|
30
|
+
"popover-header": "awsui_popover-header_1edmh_ynxxl_299"
|
|
31
31
|
};
|
|
32
32
|
|