@semcore/d3-chart 2.17.1 → 2.17.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +8 -0
- package/lib/cjs/Area.js +14 -14
- package/lib/cjs/Area.js.map +1 -1
- package/lib/cjs/Axis.js +23 -22
- package/lib/cjs/Axis.js.map +1 -1
- package/lib/cjs/Bar.js +12 -12
- package/lib/cjs/Bar.js.map +1 -1
- package/lib/cjs/Bubble.js +13 -13
- package/lib/cjs/Bubble.js.map +1 -1
- package/lib/cjs/ClipPath.js +2 -2
- package/lib/cjs/ClipPath.js.map +1 -1
- package/lib/cjs/Donut.js +7 -7
- package/lib/cjs/Donut.js.map +1 -1
- package/lib/cjs/Dots.js +11 -11
- package/lib/cjs/Dots.js.map +1 -1
- package/lib/cjs/GroupBar.js.map +1 -1
- package/lib/cjs/HorizontalBar.js +12 -12
- package/lib/cjs/HorizontalBar.js.map +1 -1
- package/lib/cjs/Hover.js +7 -7
- package/lib/cjs/Hover.js.map +1 -1
- package/lib/cjs/Line.js +12 -12
- package/lib/cjs/Line.js.map +1 -1
- package/lib/cjs/Plot.js +10 -10
- package/lib/cjs/Plot.js.map +1 -1
- package/lib/cjs/Radar.js +46 -45
- package/lib/cjs/Radar.js.map +1 -1
- package/lib/cjs/RadialTree.js +30 -29
- package/lib/cjs/RadialTree.js.map +1 -1
- package/lib/cjs/ReferenceLine.js +14 -14
- package/lib/cjs/ReferenceLine.js.map +1 -1
- package/lib/cjs/ScatterPlot.js +9 -9
- package/lib/cjs/ScatterPlot.js.map +1 -1
- package/lib/cjs/StackBar.js.map +1 -1
- package/lib/cjs/StackedArea.js.map +1 -1
- package/lib/cjs/Tooltip.js +10 -10
- package/lib/cjs/Tooltip.js.map +1 -1
- package/lib/cjs/Venn.js +8 -8
- package/lib/cjs/Venn.js.map +1 -1
- package/lib/cjs/a11y/PlotA11yModule.js +4 -5
- package/lib/cjs/a11y/PlotA11yModule.js.map +1 -1
- package/lib/cjs/a11y/PlotA11yView.js +6 -6
- package/lib/cjs/a11y/PlotA11yView.js.map +1 -1
- package/lib/cjs/a11y/focus.js +0 -3
- package/lib/cjs/a11y/focus.js.map +1 -1
- package/lib/cjs/a11y/hints.js.map +1 -1
- package/lib/cjs/a11y/insights.js +1 -1
- package/lib/cjs/a11y/insights.js.map +1 -1
- package/lib/cjs/a11y/intl.js +2 -4
- package/lib/cjs/a11y/intl.js.map +1 -1
- package/lib/cjs/a11y/locale.js +0 -1
- package/lib/cjs/a11y/locale.js.map +1 -1
- package/lib/cjs/createElement.js +1 -2
- package/lib/cjs/createElement.js.map +1 -1
- package/lib/cjs/types/index.d.js.map +1 -1
- package/lib/cjs/utils.js +17 -18
- package/lib/cjs/utils.js.map +1 -1
- package/lib/es6/Area.js +14 -14
- package/lib/es6/Area.js.map +1 -1
- package/lib/es6/Axis.js +23 -22
- package/lib/es6/Axis.js.map +1 -1
- package/lib/es6/Bar.js +12 -12
- package/lib/es6/Bar.js.map +1 -1
- package/lib/es6/Bubble.js +13 -13
- package/lib/es6/Bubble.js.map +1 -1
- package/lib/es6/ClipPath.js +2 -2
- package/lib/es6/ClipPath.js.map +1 -1
- package/lib/es6/Donut.js +7 -7
- package/lib/es6/Donut.js.map +1 -1
- package/lib/es6/Dots.js +11 -11
- package/lib/es6/Dots.js.map +1 -1
- package/lib/es6/GroupBar.js.map +1 -1
- package/lib/es6/HorizontalBar.js +12 -12
- package/lib/es6/HorizontalBar.js.map +1 -1
- package/lib/es6/Hover.js +7 -7
- package/lib/es6/Hover.js.map +1 -1
- package/lib/es6/Line.js +12 -12
- package/lib/es6/Line.js.map +1 -1
- package/lib/es6/Plot.js +10 -10
- package/lib/es6/Plot.js.map +1 -1
- package/lib/es6/Radar.js +46 -45
- package/lib/es6/Radar.js.map +1 -1
- package/lib/es6/RadialTree.js +30 -29
- package/lib/es6/RadialTree.js.map +1 -1
- package/lib/es6/ReferenceLine.js +14 -14
- package/lib/es6/ReferenceLine.js.map +1 -1
- package/lib/es6/ScatterPlot.js +9 -9
- package/lib/es6/ScatterPlot.js.map +1 -1
- package/lib/es6/StackBar.js.map +1 -1
- package/lib/es6/StackedArea.js.map +1 -1
- package/lib/es6/Tooltip.js +10 -10
- package/lib/es6/Tooltip.js.map +1 -1
- package/lib/es6/Venn.js +8 -8
- package/lib/es6/Venn.js.map +1 -1
- package/lib/es6/a11y/PlotA11yModule.js +4 -5
- package/lib/es6/a11y/PlotA11yModule.js.map +1 -1
- package/lib/es6/a11y/PlotA11yView.js +6 -6
- package/lib/es6/a11y/PlotA11yView.js.map +1 -1
- package/lib/es6/a11y/focus.js +0 -3
- package/lib/es6/a11y/focus.js.map +1 -1
- package/lib/es6/a11y/hints.js.map +1 -1
- package/lib/es6/a11y/insights.js +1 -1
- package/lib/es6/a11y/insights.js.map +1 -1
- package/lib/es6/a11y/intl.js +2 -4
- package/lib/es6/a11y/intl.js.map +1 -1
- package/lib/es6/a11y/locale.js +0 -1
- package/lib/es6/a11y/locale.js.map +1 -1
- package/lib/es6/createElement.js +1 -2
- package/lib/es6/createElement.js.map +1 -1
- package/lib/es6/types/index.d.js +1 -2
- package/lib/es6/types/index.d.js.map +1 -1
- package/lib/es6/utils.js +17 -18
- package/lib/es6/utils.js.map +1 -1
- package/lib/types/index.d.ts +2 -2
- package/lib/types/utils.d.ts +0 -1
- package/package.json +4 -10
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RadialTree.js","names":["React","transition","Component","sstyled","uniqueIDEnhancement","shade","assignProps","getOriginChildren","canUseDOM","createElement","measureText","style","_sstyled","insert","baseAngle","Math","PI","RadialTreeBase","_Component","_inherits","_super","_createSuper","props","_this","_classCallCheck","call","_defineProperty","_assertThisInitialized","handleRadianClick","bind","_createClass","key","value","uncontrolledProps","activeKey","runAppearAnimation","_window$matchMedia","_this$asProps","asProps","duration","uid","preferReduceMotion","window","matchMedia","matches","circlesAnimation","selection","selectAll","concat","interrupt","iconsAnimation","linesAnimation","labelsAnimation","circlesNodes","nodes","iconsNodes","linesNodes","labelsNodes","length","attrs","map","node","_lineNode$x","_lineNode$x$baseVal","_lineNode$y","_lineNode$y$baseVal","radianIndex","parseInt","dataset","lineNode","from","cx","x1","baseVal","cy","y1","to","attr","_","index","_attrs$index$from","_attrs$index$from2","_attrs$index$to","_attrs$index$to2","_node$width","_node$width$baseVal","_node$height","_node$height$baseVal","_lineNode$x2","_lineNode$x2$baseVal","_lineNode$y2","_lineNode$y2$baseVal","width","height","x","y","_attrs$index$from3","_attrs$index$from4","_attrs$index$to3","_attrs$index$to4","_node$x","_node$x$baseVal","_node$y","_node$y$baseVal","x2","y2","_attrs2$index$from","_attrs2$index$from2","_attrs2$index$to","_attrs2$index$to2","componentDidUpdate","prevProps","$rootProps","data","componentDidMount","_this2","event","newKey","handlers","computeTextWidth","_this$asProps2","textSize","widths","_ref9","label","max","apply","_toConsumableArray","getTitleProps","_this$asProps3","size","_size","_slicedToArray","center","getRadianProps","_this$asProps4","restRootProps","_objectWithoutProperties","_excluded","textWidth","_objectSpread","radiansCount","onRadianClick","render","_ref","SRadialTree","Element","Children","dataHintsHandler","establishDataType","styles","cn","angleOffset","centralMargin","labelMargin","iconColor","capSize","iconSize","defaultActiveKey","RadialTreeRadian","_Component2","_super2","_this3","renderRadian","getInteractiveAreaProps","_ref11","_this$computeRadianPo","computeRadianPosition","xStart","yStart","xLabelCenter","yLabelCenter","strokeWidth","getLineProps","_ref12","_data$color","_ref13","_this$computeRadianPo2","xEnd","yEnd","_this$asProps5","transparent","color","stroke","getCapProps","_ref14","_data$color2","_ref15","_this$computeRadianPo3","_this$asProps6","getIconProps","_ref16","_data$iconColor","_data$iconSize","_data$icon","_ref17","_this$computeRadianPo4","isActive","icon","getLabelProps","_ref18","_data$color3","_ref19","_this$computeRadianPo5","labelAngle","isHorizontal","_this$asProps7","angle","getRadianKey","_data$key","_data$capSize","_this$asProps8","_size2","baseCapSize","minDemSize","min","topAngle","xCenter","yCenter","start","cos","sin","end","labelCenter","_ref2","_this$asProps9","SRadian","children","_child","mergedProps","describeValueEntity","InteractiveArea","RadialTree","Radian","_ref3","_this4","SRadianList","_ref20","_ref4","SInteractiveArea","Line","_ref21","_ref5","SLine","Cap","_ref22","_ref6","SCap","radius","Icon","_ref23","_ref7","SIcon","tag","Label","_ref24","SLabel","lines","String","split","linesCount","SLabelLine","angleDegs","toFixed","transformOrigin","transform","join","sstyles","sLabelStyles","textAnchor","dominantBaseline","className","lineText","lineIndex","Title","_ref25","_ref8","STitle","setTitle"],"sources":["../../src/RadialTree.tsx"],"sourcesContent":["import React from 'react';\nimport { transition } from 'd3-transition';\nimport { Component, sstyled, ReturnEl } from '@semcore/core';\nimport uniqueIDEnhancement from '@semcore/utils/lib/uniqueID';\nimport { shade } from '@semcore/utils/lib/color';\nimport assignProps from '@semcore/utils/lib/assignProps';\nimport getOriginChildren from '@semcore/utils/lib/getOriginChildren';\nimport canUseDOM from '@semcore/utils/lib/canUseDOM';\nimport createElement from './createElement';\nimport { measureText } from './utils';\nimport { DataHintsHandler } from './a11y/hints';\n\nimport style from './style/radial-tree.shadow.css';\nimport type { MapProps } from './types';\n\nconst baseAngle = -Math.PI / 2; // The top vertical line\n\ntype RadianData = {\n /**\n * Text label on the end of radian.\n */\n label: string;\n /**\n * Radian key. Radian, which `key` is equal to `activeKey` is displayed as active.\n */\n key: string;\n /**\n * Size of the cap (filled circle on the end of the radian).\n * @default 16\n */\n capSize?: number;\n /**\n * Icon, that displayed in the cap of the active radian (usage example `icon: UserM`).\n */\n icon?: React.FC;\n /**\n * Color of radian's line, cap and label.\n * @default #008FF8\n */\n color?: string;\n /**\n * Color of icon.\n * @default #fff\n */\n iconColor?: string;\n /**\n * Size of icon.\n * @default 16\n */\n iconSize?: number;\n};\n\nexport interface IRadialTreeProps {\n /**\n * List of radians. `{ label: string; key: string; capSize?: number; icon?: React.FC; color?: string; iconColor?: string; iconSize?: number; }`\n */\n data: RadianData[];\n /**\n * Angel (in rads) that rotates chart. 0 means that first radian is exactly on top vertical line.\n * @default 0\n */\n angleOffset?: number;\n /**\n * Duration of appear and update animation.\n * @default 300\n */\n duration?: number;\n /**\n * Gap between the chart center and radians start point.\n * @default 50\n */\n centralMargin?: number;\n /**\n * Gap around text label.\n * @default 2\n */\n labelMargin?: number;\n /**\n * Color of all radian's line, cap and label.\n * @default #008FF8\n */\n color?: string;\n /**\n * Size of the cap (filled circle on the end of the radian).\n * @default 16\n */\n capSize?: number;\n /**\n * Icon, that displayed in the cap of the active radian (usage example `icon: UserM`).\n */\n icon?: React.FC;\n /**\n * Color of icon.\n * @default #fff\n */\n iconColor?: string;\n /**\n * Size of icon.\n * @default 16\n */\n iconSize?: number;\n /**\n * Text size in radians' labels. 1.5x is used as default text size of center text.\n * @default 14\n */\n textSize?: number;\n /**\n * Used to define the active radian in controlled way. Active radian is highligted with inreased cap size.\n */\n activeKey?: string | null;\n /**\n * Default value for `activeKey` property.\n */\n defaultActiveKey?: string | null;\n /** Enables element transparency */\n transparent?: boolean;\n}\n\ntype RootAsProps = IRadialTreeProps & {\n uid: string;\n styles: React.CSSProperties;\n activeKey: string | null;\n Children: React.FC;\n size: [width: number, height: number];\n data: RadianData[];\n duration: number;\n textSize: number;\n capSize: number;\n centralMargin: number;\n labelMargin: number;\n angleOffset: number;\n transparent: boolean;\n $rootProps: RootAsProps;\n dataHintsHandler: DataHintsHandler;\n};\n\nclass RadialTreeBase extends Component<RootAsProps> {\n static displayName = 'RadialTree';\n static style = style;\n static enhance = [uniqueIDEnhancement()];\n\n static defaultProps: Partial<IRadialTreeProps> = {\n angleOffset: 0,\n duration: 300,\n centralMargin: 50,\n labelMargin: 5,\n iconColor: '#fff',\n capSize: 8,\n iconSize: 8,\n textSize: 14,\n defaultActiveKey: null,\n };\n\n Element!: React.FC<{ children?: React.ReactNode; render: string }>;\n\n constructor(props: any) {\n super(props);\n this.handleRadianClick = this.handleRadianClick.bind(this);\n }\n\n uncontrolledProps() {\n return {\n activeKey: null,\n };\n }\n\n runAppearAnimation() {\n const { duration, uid } = this.asProps;\n if (!canUseDOM()) return;\n const preferReduceMotion = window.matchMedia('(prefers-reduced-motion: reduce)')?.matches;\n\n /** using `!(>)` instead of `<=` to get true on NaN and non numbers stuff */\n if (!(duration > 0)) return;\n if (preferReduceMotion) return;\n\n const circlesAnimation = transition()\n .selection()\n .selectAll(`[data-radial-animation=${uid}-cap-circle]`)\n .interrupt();\n const iconsAnimation = transition()\n .selection()\n .selectAll(`[data-radial-animation=${uid}-cap-icon]`)\n .interrupt();\n const linesAnimation = transition()\n .selection()\n .selectAll(`[data-radial-animation=${uid}-line]`)\n .interrupt();\n const labelsAnimation = transition()\n .selection()\n .selectAll(`[data-radial-animation=${uid}-label]`)\n .interrupt();\n const circlesNodes = circlesAnimation.nodes() as SVGCircleElement[];\n const iconsNodes = iconsAnimation.nodes() as SVGRectElement[];\n const linesNodes = linesAnimation.nodes() as SVGLineElement[];\n const labelsNodes = linesAnimation.nodes() as SVGTextElement[];\n\n if (circlesNodes.length > 0) {\n const attrs = circlesNodes.map((node) => {\n const radianIndex = parseInt(node.dataset.radianIndex!, 10);\n const lineNode = linesNodes[radianIndex];\n return {\n from: {\n cx: lineNode.x1?.baseVal?.value,\n cy: lineNode.y1?.baseVal?.value,\n },\n to: {\n cx: node.dataset['cx'],\n cy: node.dataset['cy'],\n },\n };\n });\n\n circlesAnimation\n .attr('opacity', 0)\n .attr('cx', (_, index) => attrs[index].from?.cx)\n .attr('cy', (_, index) => attrs[index].from?.cy)\n .transition()\n .duration(duration)\n .attr('opacity', 1)\n .attr('cx', (_, index) => attrs[index].to?.cx)\n .attr('cy', (_, index) => attrs[index].to?.cy);\n }\n if (iconsNodes.length > 0) {\n const attrs = iconsNodes.map((node) => {\n const width = node.width?.baseVal?.value;\n const height = node.height?.baseVal?.value;\n const radianIndex = parseInt(node.dataset.radianIndex!, 10);\n const lineNode = linesNodes[radianIndex];\n return {\n from: {\n x: lineNode.x1?.baseVal?.value - width / 2,\n y: lineNode.y1?.baseVal?.value - height / 2,\n },\n to: {\n x: node.dataset['x'],\n y: node.dataset['y'],\n },\n };\n });\n\n iconsAnimation\n .attr('opacity', 0)\n .attr('x', (_, index) => attrs[index].from?.x)\n .attr('y', (_, index) => attrs[index].from?.y)\n .transition()\n .duration(duration)\n .attr('opacity', 1)\n .attr('x', (_, index) => attrs[index].to?.x)\n .attr('y', (_, index) => attrs[index].to?.y);\n }\n if (linesNodes.length > 0) {\n const attrs = linesNodes.map((node) => {\n return {\n from: {\n x2: node.x1?.baseVal?.value,\n y2: node.y1?.baseVal?.value,\n },\n to: {\n x2: node.dataset['x2'],\n y2: node.dataset['y2'],\n },\n };\n });\n\n linesAnimation\n .attr('opacity', 0)\n .attr('x2', (_, index) => attrs[index].from?.x2)\n .attr('y2', (_, index) => attrs[index].from?.y2)\n .transition()\n .duration(duration)\n .attr('opacity', 1)\n .attr('x2', (_, index) => attrs[index].to?.x2)\n .attr('y2', (_, index) => attrs[index].to?.y2);\n }\n if (labelsNodes.length > 0) {\n labelsAnimation.attr('opacity', 0);\n labelsAnimation.transition().duration(duration).attr('opacity', 1);\n }\n }\n\n componentDidUpdate(prevProps: RootAsProps) {\n if (prevProps.$rootProps.data !== this.asProps.data) {\n this.runAppearAnimation();\n }\n }\n\n componentDidMount() {\n this.runAppearAnimation();\n }\n\n handleRadianClick(key: string) {\n return (event: React.MouseEvent) => {\n const newKey = key !== this.asProps.activeKey ? key : null;\n this.handlers.activeKey(newKey, event);\n };\n }\n\n computeTextWidth() {\n const { data, textSize } = this.asProps;\n const widths = data.map(({ label }) => measureText(label, textSize));\n\n return Math.max(...widths);\n }\n\n getTitleProps() {\n const { uid, size, textSize } = this.asProps;\n\n const [width, height] = size;\n const center = [width / 2, height / 2];\n const [x, y] = center;\n return {\n x,\n y,\n textSize: textSize * 1.5,\n ['data-radial-animation']: `${uid}-label`,\n } as IRadialTreeTitleProps;\n }\n\n getRadianProps() {\n const { data, ...restRootProps } = this.asProps;\n const textWidth = this.computeTextWidth();\n\n return {\n ...restRootProps,\n radiansCount: data.length,\n data,\n textWidth,\n onRadianClick: this.handleRadianClick,\n } as IRadialTreeRadianProps;\n }\n\n render() {\n const SRadialTree = this.Element;\n const { Children } = this.asProps;\n this.asProps.dataHintsHandler.establishDataType('values-set');\n\n return sstyled(this.asProps.styles)(\n <SRadialTree render=\"g\">\n <Children />\n </SRadialTree>,\n );\n }\n}\n\nexport interface IRadialTreeRadianProps extends IRadialTreeProps {\n radiansCount?: number;\n textWidth?: number;\n onRadianClick?: (key: string) => (event: React.MouseEvent) => void;\n}\n\ntype RadianAsProps = RootAsProps & {\n radiansCount: number;\n textWidth: number;\n onRadianClick: (key: string) => (event: React.MouseEvent) => void;\n};\n\nclass RadialTreeRadian extends Component<RadianAsProps> {\n static displayName = 'RadialTreeRadian';\n static style = style;\n\n static defaultProps: Partial<IRadialTreeRadianProps> = {\n centralMargin: 50,\n labelMargin: 2,\n iconColor: '#fff',\n capSize: 16,\n iconSize: 16,\n textSize: 14,\n };\n Element!: React.FC<{ render: string }>;\n\n constructor(props: any) {\n super(props);\n this.renderRadian = this.renderRadian.bind(this);\n }\n\n getInteractiveAreaProps({ $rootProps }: { $rootProps: IRadialTreeProps }, index: number) {\n const data = $rootProps.data![index];\n const { xStart, yStart, xLabelCenter, yLabelCenter, capSize } = this.computeRadianPosition(\n data,\n index,\n );\n\n return {\n x1: xStart,\n y1: yStart,\n x2: xLabelCenter,\n y2: yLabelCenter,\n strokeWidth: capSize * 3,\n } as IRadialTreeRadianInteractiveAreaProps;\n }\n\n getLineProps({ $rootProps }: { $rootProps: IRadialTreeProps }, index: number) {\n const data = $rootProps.data![index];\n const { xStart, yStart, xEnd, yEnd } = this.computeRadianPosition(data, index);\n const { uid, transparent } = this.asProps;\n const color = data.color ?? this.asProps.color;\n\n return {\n x1: xStart,\n y1: yStart,\n x2: xEnd,\n y2: yEnd,\n stroke: color,\n transparent,\n ['data-x1']: xStart,\n ['data-y1']: yStart,\n ['data-x2']: xEnd,\n ['data-y2']: yEnd,\n ['data-radial-animation']: `${uid}-line`,\n ['data-radian-index']: index,\n } as IRadialTreeRadianLineProps;\n }\n\n getCapProps({ $rootProps }: { $rootProps: IRadialTreeProps }, index: number) {\n const data = $rootProps.data![index];\n const { xEnd, yEnd, capSize } = this.computeRadianPosition(data, index);\n const { uid, transparent } = this.asProps;\n const color = data.color ?? this.asProps.color;\n\n return {\n x: xEnd,\n y: yEnd,\n ['data-cx']: xEnd,\n ['data-cy']: yEnd,\n radius: capSize,\n color,\n transparent,\n ['data-radial-animation']: `${uid}-cap-circle`,\n ['data-radian-index']: index,\n } as IRadialTreeRadianCapProps;\n }\n\n getIconProps({ $rootProps }: { $rootProps: IRadialTreeProps }, index: number) {\n const data = $rootProps.data![index];\n const { xEnd, yEnd, isActive } = this.computeRadianPosition(data, index);\n const { uid } = this.asProps;\n const iconColor = data.iconColor ?? this.asProps.iconColor;\n const iconSize = data.iconSize ?? this.asProps.iconSize;\n const icon = data.icon ?? this.asProps.icon;\n const x = xEnd - iconSize! / 2;\n const y = yEnd - iconSize! / 2;\n return {\n x,\n y,\n ['data-x']: x,\n ['data-y']: y,\n iconSize,\n color: iconColor ?? '#fff',\n ['data-radial-animation']: `${uid}-cap-icon`,\n ['data-radian-index']: index,\n icon,\n tag: icon,\n isActive,\n } as IRadialTreeRadianIconProps;\n }\n\n getLabelProps({ $rootProps }: { $rootProps: IRadialTreeProps }, index: number) {\n const data = $rootProps.data![index];\n const { xLabelCenter, yLabelCenter, labelAngle, isHorizontal } = this.computeRadianPosition(\n data,\n index,\n );\n const { uid, textSize, transparent } = this.asProps;\n const { label } = data;\n const color = data.color ?? this.asProps.color;\n\n return {\n x: xLabelCenter,\n y: yLabelCenter,\n angle: labelAngle,\n ['data-radial-animation']: `${uid}-label`,\n ['data-radian-index']: index,\n label,\n color,\n isHorizontal,\n textSize,\n transparent,\n } as IRadialTreeRadianLabelProps;\n }\n\n getRadianKey(data: RadianData, index: number) {\n return data.key ?? `radian-${index}`;\n }\n\n computeRadianPosition(data: RadianData, index: number) {\n const { centralMargin, labelMargin, angleOffset, activeKey, size, radiansCount, textWidth } =\n this.asProps;\n const [width, height] = size;\n const key = this.getRadianKey(data, index);\n const isActive = activeKey === key;\n const baseCapSize = data.capSize ?? this.asProps.capSize;\n const capSize = baseCapSize * (isActive ? 1 : 0.5);\n\n const minDemSize = Math.min(width, height) / 2;\n const length = Math.max(\n minDemSize - textWidth - baseCapSize - centralMargin - labelMargin * 2,\n 10,\n );\n\n const angle = baseAngle + angleOffset + (index / radiansCount) * (Math.PI * 2);\n const isHorizontal =\n (angle - baseAngle > (1 / 6) * Math.PI && angle - baseAngle < (5 / 6) * Math.PI) ||\n (angle - baseAngle > (7 / 6) * Math.PI && angle - baseAngle < (11 / 6) * Math.PI);\n const topAngle = -Math.PI / 2;\n const labelAngle = ((angle - topAngle) % Math.PI) + topAngle;\n\n const center = [width / 2, height / 2];\n const [xCenter, yCenter] = center;\n const start = [\n xCenter + Math.cos(angle) * centralMargin,\n yCenter + Math.sin(angle) * centralMargin,\n ];\n const end = [\n xCenter + Math.cos(angle) * (centralMargin + length),\n yCenter + Math.sin(angle) * (centralMargin + length),\n ];\n const [xStart, yStart] = start;\n const [xEnd, yEnd] = end;\n\n const labelCenter = [\n xCenter +\n Math.cos(angle) * (centralMargin + length + baseCapSize + textWidth / 2 + labelMargin),\n yCenter +\n Math.sin(angle) * (centralMargin + length + baseCapSize + textWidth / 2 + labelMargin),\n ];\n const [xLabelCenter, yLabelCenter] = labelCenter;\n\n return {\n xStart,\n yStart,\n xEnd,\n yEnd,\n xLabelCenter,\n yLabelCenter,\n labelAngle,\n isHorizontal,\n capSize,\n isActive,\n };\n }\n\n renderRadian(data: RadianData, index: number) {\n const { styles, Children, onRadianClick } = this.asProps;\n const key = this.getRadianKey(data, index);\n const SRadian = 'g';\n\n let children = getOriginChildren(Children);\n\n if (typeof children === 'function') {\n const _child = this.asProps.children;\n const mergedProps = assignProps(children(this.asProps), this.asProps);\n children = mergedProps.children;\n mergedProps.children = _child;\n }\n\n this.asProps.dataHintsHandler.describeValueEntity(`${index}.${data.label}`, data.label);\n\n // hidden from publicly typed export\n const InteractiveArea = (RadialTree.Radian as any).InteractiveArea;\n\n return sstyled(styles)(\n <SRadian aria-hidden key={key} onClick={onRadianClick(key)}>\n <InteractiveArea />\n {children}\n </SRadian>,\n );\n }\n\n render() {\n const { data } = this.asProps;\n const SRadianList = 'g';\n\n return sstyled(this.asProps.styles)(\n <SRadianList>{data.map((data, index) => this.renderRadian(data, index))}</SRadianList>,\n );\n }\n}\n\nexport interface IRadialTreeRadianInteractiveAreaProps {\n x1?: number;\n y1?: number;\n x2?: number;\n y2?: number;\n strokeWidth?: number;\n}\n\ntype RadialTreeRadianInteractiveAreaAsProps = IRadialTreeRadianInteractiveAreaProps & {\n Element: React.FC<{ render: string } & React.SVGProps<any>>;\n styles: React.CSSProperties;\n};\nconst InteractiveArea: React.FC<RadialTreeRadianInteractiveAreaAsProps> = ({\n Element: SInteractiveArea,\n styles,\n}) => {\n return sstyled(styles)(\n <SInteractiveArea stroke=\"transparent\" render=\"line\" />,\n ) as React.ReactElement;\n};\n\nexport interface IRadialTreeRadianLineProps {\n x1?: number;\n y1?: number;\n x2?: number;\n y2?: number;\n stroke?: string;\n transparent?: boolean;\n ['data-radial-animation']?: `${string}-line`;\n ['data-radian-index']?: number;\n}\n\ntype RadialTreeRadianLineAsProps = IRadialTreeRadianLineProps & {\n Element: React.FC<{ render: string; transparent: boolean } & React.SVGProps<any>>;\n styles: React.CSSProperties;\n};\nconst Line: React.FC<RadialTreeRadianLineAsProps> = ({\n Element: SLine,\n styles,\n stroke,\n transparent,\n}) => {\n return sstyled(styles)(\n <SLine render=\"line\" stroke={stroke} transparent={transparent} />,\n ) as React.ReactElement;\n};\n\nexport interface IRadialTreeRadianCapProps {\n x?: number;\n y?: number;\n radius?: number;\n color?: string;\n transparent?: boolean;\n ['data-radial-animation']?: `${string}-cap-circle`;\n ['data-radian-index']?: number;\n}\n\ntype RadialTreeRadianCapAsProps = IRadialTreeRadianCapProps & {\n Element: React.FC<{ render: string; transparent: boolean } & React.SVGProps<any>>;\n styles: React.CSSProperties;\n};\nconst Cap: React.FC<RadialTreeRadianCapAsProps> = ({\n Element: SCap,\n styles,\n x,\n y,\n radius,\n color,\n transparent,\n}) => {\n return sstyled(styles)(\n <SCap render=\"circle\" cx={x} cy={y} r={radius} fill={color} transparent={transparent} />,\n ) as React.ReactElement;\n};\n\nexport interface IRadialTreeRadianIconProps {\n x?: number;\n y?: number;\n iconSize?: number;\n color?: string;\n ['data-radial-animation']?: `${string}-cap-icon`;\n ['data-radian-index']?: number;\n tag?: React.FC;\n isActive?: boolean;\n transparent?: boolean;\n}\n\ntype RadialTreeRadianIconAsProps = IRadialTreeRadianIconProps & {\n Element: React.FC<{ render: string | React.FC; transparent: boolean } & React.SVGProps<any>>;\n x: number;\n y: number;\n iconSize: number;\n styles: React.CSSProperties;\n};\nconst Icon: React.FC<RadialTreeRadianIconAsProps> = ({\n Element: SIcon,\n styles,\n isActive,\n tag,\n x,\n y,\n iconSize,\n transparent,\n}) => {\n if (!(isActive && tag)) return null;\n const width = iconSize;\n const height = iconSize;\n return sstyled(styles)(\n <SIcon x={x} y={y} width={width} height={height} render={tag} transparent={transparent} />,\n ) as React.ReactElement;\n};\n\nexport interface IRadialTreeRadianLabelProps {\n x?: number;\n y?: number;\n color?: string;\n textSize?: number;\n ['data-radial-animation']?: `${string}-label`;\n ['data-radian-index']?: number;\n label?: string;\n isHorizontal?: boolean;\n angle?: number;\n transparent?: boolean;\n}\n\ntype RadialTreeRadianLabelAsProps = IRadialTreeRadianLabelProps & {\n Element: React.FC<{ render: string } & React.SVGProps<any>>;\n Children: React.FC;\n styles: React.CSSProperties;\n x: number;\n y: number;\n angle: number;\n textSize: number;\n};\nconst Label: React.FC<RadialTreeRadianLabelAsProps> = ({\n Element: SLabel,\n Children,\n styles,\n label,\n color,\n isHorizontal,\n x,\n y,\n textSize,\n angle,\n transparent,\n}) => {\n const lines = String(label).split('\\n');\n const linesCount = lines.length;\n const SLabelLine = 'tspan';\n\n const angleDegs = ((angle / Math.PI) * 180).toFixed(2);\n const transformOrigin = [x.toFixed(2), y.toFixed(2)];\n const transform = `rotate(${[angleDegs, ...transformOrigin].join(', ')})`;\n\n const sstyles = sstyled(styles);\n const sLabelStyles = sstyles.cn('SLabel', {\n color,\n 'color-hovered': shade(color, -0.12),\n 'text-cursor': isHorizontal ? 'text' : 'vertical-text',\n transparent,\n });\n\n return (\n <SLabel\n aria-hidden\n render=\"text\"\n textAnchor=\"middle\"\n dominantBaseline=\"central\"\n className={sLabelStyles.className}\n style={sLabelStyles.style}\n x={x.toFixed(2)}\n y={y.toFixed(2)}\n transform={transform}\n >\n {lines.map((lineText, lineIndex) => (\n <SLabelLine\n x={x}\n y={y + (lineIndex - (linesCount - 1) / 2) * textSize}\n key={`#${lineIndex}-${lineText}`}\n >\n {lineText}\n </SLabelLine>\n ))}\n <Children />\n </SLabel>\n ) as React.ReactElement;\n};\n\nconst Radian = createElement(RadialTreeRadian, {\n InteractiveArea,\n Line,\n Cap,\n Icon,\n Label,\n});\n\nexport interface IRadialTreeTitleProps {\n x?: number;\n y?: number;\n textSize?: number;\n ['data-radial-animation']?: `${string}-label`;\n color?: string;\n}\n\ntype RadialTreeTitleAsProps = IRadialTreeTitleProps & {\n Element: React.FC<{ render: string } & React.SVGProps<any>>;\n Children: React.FC;\n children: React.ReactNode;\n styles: React.CSSProperties;\n dataHintsHandler: DataHintsHandler;\n};\nconst Title: React.FC<RadialTreeTitleAsProps> = ({\n Element: STitle,\n Children,\n children,\n styles,\n textSize,\n color,\n x,\n y,\n dataHintsHandler,\n}) => {\n if (typeof children === 'string') {\n dataHintsHandler.setTitle('vertical', children);\n }\n return sstyled(styles)(\n <STitle\n aria-hidden\n render=\"text\"\n textAnchor=\"middle\"\n dominantBaseline=\"central\"\n fontSize={textSize}\n fill={color}\n x={x}\n y={y}\n >\n <Children />\n </STitle>,\n ) as React.ReactElement;\n};\n\nconst RadialTree = createElement(RadialTreeBase, { Title, Radian }) as (<T>(\n props: MapProps<IRadialTreeProps & T>,\n) => ReturnEl) & {\n Title: <T>(props: MapProps<IRadialTreeTitleProps & T>) => ReturnEl;\n Radian: (<T>(props: MapProps<IRadialTreeRadianProps & T>) => ReturnEl) & {\n Line: <T>(props: MapProps<IRadialTreeRadianLineProps & T>) => ReturnEl;\n Cap: <T>(props: MapProps<IRadialTreeRadianCapProps & T>) => ReturnEl;\n Icon: <T>(props: MapProps<IRadialTreeRadianIconProps & T>) => ReturnEl;\n Label: <T>(props: MapProps<IRadialTreeRadianLabelProps & T>) => ReturnEl;\n };\n};\n\nexport default RadialTree;\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"RadialTree.js","names":["React","transition","Component","sstyled","uniqueIDEnhancement","shade","assignProps","getOriginChildren","canUseDOM","createElement","measureText","style","_sstyled","insert","baseAngle","Math","PI","RadialTreeBase","_Component","_inherits","_super","_createSuper","props","_this","_classCallCheck","call","_defineProperty","_assertThisInitialized","handleRadianClick","bind","_createClass","key","value","uncontrolledProps","activeKey","runAppearAnimation","_window$matchMedia","_this$asProps","asProps","duration","uid","preferReduceMotion","window","matchMedia","matches","circlesAnimation","selection","selectAll","concat","interrupt","iconsAnimation","linesAnimation","labelsAnimation","circlesNodes","nodes","iconsNodes","linesNodes","labelsNodes","length","attrs","map","node","_lineNode$x","_lineNode$x$baseVal","_lineNode$y","_lineNode$y$baseVal","radianIndex","parseInt","dataset","lineNode","from","cx","x1","baseVal","cy","y1","to","attr","_","index","_attrs$index$from","_attrs$index$from2","_attrs$index$to","_attrs$index$to2","_node$width","_node$width$baseVal","_node$height","_node$height$baseVal","_lineNode$x2","_lineNode$x2$baseVal","_lineNode$y2","_lineNode$y2$baseVal","width","height","x","y","_attrs$index$from3","_attrs$index$from4","_attrs$index$to3","_attrs$index$to4","_node$x","_node$x$baseVal","_node$y","_node$y$baseVal","x2","y2","_attrs2$index$from","_attrs2$index$from2","_attrs2$index$to","_attrs2$index$to2","componentDidUpdate","prevProps","$rootProps","data","componentDidMount","_this2","event","newKey","handlers","computeTextWidth","_this$asProps2","textSize","widths","_ref9","label","max","apply","_toConsumableArray","getTitleProps","_this$asProps3","size","_size","_slicedToArray","center","getRadianProps","_this$asProps4","restRootProps","_objectWithoutProperties","_excluded","textWidth","_objectSpread","radiansCount","onRadianClick","render","_ref","SRadialTree","Element","Children","dataHintsHandler","establishDataType","styles","cn","angleOffset","centralMargin","labelMargin","iconColor","capSize","iconSize","defaultActiveKey","RadialTreeRadian","_Component2","_super2","_this3","renderRadian","getInteractiveAreaProps","_ref11","_$rootProps$data","_this$computeRadianPo","computeRadianPosition","xStart","yStart","xLabelCenter","yLabelCenter","strokeWidth","getLineProps","_ref12","_$rootProps$data2","_data$color","_ref13","_this$computeRadianPo2","xEnd","yEnd","_this$asProps5","transparent","color","stroke","getCapProps","_ref14","_$rootProps$data3","_data$color2","_ref15","_this$computeRadianPo3","_this$asProps6","getIconProps","_ref16","_$rootProps$data4","_data$iconColor","_data$iconSize","_data$icon","_ref17","_this$computeRadianPo4","isActive","icon","getLabelProps","_ref18","_$rootProps$data5","_data$color3","_ref19","_this$computeRadianPo5","labelAngle","isHorizontal","_this$asProps7","angle","getRadianKey","_data$key","_data$capSize","_this$asProps8","_size2","baseCapSize","minDemSize","min","topAngle","xCenter","yCenter","start","cos","sin","end","labelCenter","_ref2","_this$asProps9","SRadian","children","_child","mergedProps","describeValueEntity","InteractiveArea","RadialTree","Radian","_ref3","_this4","SRadianList","_ref20","_ref4","SInteractiveArea","Line","_ref21","_ref5","SLine","Cap","_ref22","_ref6","SCap","radius","Icon","_ref23","_ref7","SIcon","tag","Label","_ref24","SLabel","lines","String","split","linesCount","SLabelLine","angleDegs","toFixed","transformOrigin","transform","join","sstyles","sLabelStyles","textAnchor","dominantBaseline","className","lineText","lineIndex","Title","_ref25","_ref8","STitle","setTitle"],"sources":["../../src/RadialTree.tsx"],"sourcesContent":["import React from 'react';\nimport { transition } from 'd3-transition';\nimport { Component, sstyled, ReturnEl } from '@semcore/core';\nimport uniqueIDEnhancement from '@semcore/utils/lib/uniqueID';\nimport { shade } from '@semcore/utils/lib/color';\nimport assignProps from '@semcore/utils/lib/assignProps';\nimport getOriginChildren from '@semcore/utils/lib/getOriginChildren';\nimport canUseDOM from '@semcore/utils/lib/canUseDOM';\nimport createElement from './createElement';\nimport { measureText } from './utils';\nimport { DataHintsHandler } from './a11y/hints';\n\nimport style from './style/radial-tree.shadow.css';\nimport type { MapProps } from './types';\n\nconst baseAngle = -Math.PI / 2; // The top vertical line\n\ntype RadianData = {\n /**\n * Text label on the end of radian.\n */\n label: string;\n /**\n * Radian key. Radian, which `key` is equal to `activeKey` is displayed as active.\n */\n key: string;\n /**\n * Size of the cap (filled circle on the end of the radian).\n * @default 16\n */\n capSize?: number;\n /**\n * Icon, that displayed in the cap of the active radian (usage example `icon: UserM`).\n */\n icon?: React.FC;\n /**\n * Color of radian's line, cap and label.\n * @default #008FF8\n */\n color?: string;\n /**\n * Color of icon.\n * @default #fff\n */\n iconColor?: string;\n /**\n * Size of icon.\n * @default 16\n */\n iconSize?: number;\n};\n\nexport interface IRadialTreeProps {\n /**\n * List of radians. `{ label: string; key: string; capSize?: number; icon?: React.FC; color?: string; iconColor?: string; iconSize?: number; }`\n */\n data: RadianData[];\n /**\n * Angel (in rads) that rotates chart. 0 means that first radian is exactly on top vertical line.\n * @default 0\n */\n angleOffset?: number;\n /**\n * Duration of appear and update animation.\n * @default 300\n */\n duration?: number;\n /**\n * Gap between the chart center and radians start point.\n * @default 50\n */\n centralMargin?: number;\n /**\n * Gap around text label.\n * @default 2\n */\n labelMargin?: number;\n /**\n * Color of all radian's line, cap and label.\n * @default #008FF8\n */\n color?: string;\n /**\n * Size of the cap (filled circle on the end of the radian).\n * @default 16\n */\n capSize?: number;\n /**\n * Icon, that displayed in the cap of the active radian (usage example `icon: UserM`).\n */\n icon?: React.FC;\n /**\n * Color of icon.\n * @default #fff\n */\n iconColor?: string;\n /**\n * Size of icon.\n * @default 16\n */\n iconSize?: number;\n /**\n * Text size in radians' labels. 1.5x is used as default text size of center text.\n * @default 14\n */\n textSize?: number;\n /**\n * Used to define the active radian in controlled way. Active radian is highligted with inreased cap size.\n */\n activeKey?: string | null;\n /**\n * Default value for `activeKey` property.\n */\n defaultActiveKey?: string | null;\n /** Enables element transparency */\n transparent?: boolean;\n}\n\ntype RootAsProps = IRadialTreeProps & {\n uid: string;\n styles: React.CSSProperties;\n activeKey: string | null;\n Children: React.FC;\n size: [width: number, height: number];\n data: RadianData[];\n duration: number;\n textSize: number;\n capSize: number;\n centralMargin: number;\n labelMargin: number;\n angleOffset: number;\n transparent: boolean;\n $rootProps: RootAsProps;\n dataHintsHandler: DataHintsHandler;\n};\n\nclass RadialTreeBase extends Component<RootAsProps> {\n static displayName = 'RadialTree';\n static style = style;\n static enhance = [uniqueIDEnhancement()];\n\n static defaultProps: Partial<IRadialTreeProps> = {\n angleOffset: 0,\n duration: 300,\n centralMargin: 50,\n labelMargin: 5,\n iconColor: '#fff',\n capSize: 8,\n iconSize: 8,\n textSize: 14,\n defaultActiveKey: null,\n };\n\n Element!: React.FC<{ children?: React.ReactNode; render: string }>;\n\n constructor(props: any) {\n super(props);\n this.handleRadianClick = this.handleRadianClick.bind(this);\n }\n\n uncontrolledProps() {\n return {\n activeKey: null,\n };\n }\n\n runAppearAnimation() {\n const { duration, uid } = this.asProps;\n if (!canUseDOM()) return;\n const preferReduceMotion = window.matchMedia('(prefers-reduced-motion: reduce)')?.matches;\n\n /** using `!(>)` instead of `<=` to get true on NaN and non numbers stuff */\n if (!(duration > 0)) return;\n if (preferReduceMotion) return;\n\n const circlesAnimation = transition()\n .selection()\n .selectAll(`[data-radial-animation=${uid}-cap-circle]`)\n .interrupt();\n const iconsAnimation = transition()\n .selection()\n .selectAll(`[data-radial-animation=${uid}-cap-icon]`)\n .interrupt();\n const linesAnimation = transition()\n .selection()\n .selectAll(`[data-radial-animation=${uid}-line]`)\n .interrupt();\n const labelsAnimation = transition()\n .selection()\n .selectAll(`[data-radial-animation=${uid}-label]`)\n .interrupt();\n const circlesNodes = circlesAnimation.nodes() as SVGCircleElement[];\n const iconsNodes = iconsAnimation.nodes() as SVGRectElement[];\n const linesNodes = linesAnimation.nodes() as SVGLineElement[];\n const labelsNodes = linesAnimation.nodes() as SVGTextElement[];\n\n if (circlesNodes.length > 0) {\n const attrs = circlesNodes.map((node) => {\n const radianIndex = parseInt(node.dataset.radianIndex!, 10);\n const lineNode = linesNodes[radianIndex];\n return {\n from: {\n cx: lineNode.x1?.baseVal?.value,\n cy: lineNode.y1?.baseVal?.value,\n },\n to: {\n cx: node.dataset['cx'],\n cy: node.dataset['cy'],\n },\n };\n });\n\n circlesAnimation\n .attr('opacity', 0)\n .attr('cx', (_, index) => attrs[index].from?.cx)\n .attr('cy', (_, index) => attrs[index].from?.cy)\n .transition()\n .duration(duration)\n .attr('opacity', 1)\n .attr('cx', (_, index) => attrs[index].to?.cx)\n .attr('cy', (_, index) => attrs[index].to?.cy);\n }\n if (iconsNodes.length > 0) {\n const attrs = iconsNodes.map((node) => {\n const width = node.width?.baseVal?.value;\n const height = node.height?.baseVal?.value;\n const radianIndex = parseInt(node.dataset.radianIndex!, 10);\n const lineNode = linesNodes[radianIndex];\n return {\n from: {\n x: lineNode.x1?.baseVal?.value - width / 2,\n y: lineNode.y1?.baseVal?.value - height / 2,\n },\n to: {\n x: node.dataset['x'],\n y: node.dataset['y'],\n },\n };\n });\n\n iconsAnimation\n .attr('opacity', 0)\n .attr('x', (_, index) => attrs[index].from?.x)\n .attr('y', (_, index) => attrs[index].from?.y)\n .transition()\n .duration(duration)\n .attr('opacity', 1)\n .attr('x', (_, index) => attrs[index].to?.x)\n .attr('y', (_, index) => attrs[index].to?.y);\n }\n if (linesNodes.length > 0) {\n const attrs = linesNodes.map((node) => {\n return {\n from: {\n x2: node.x1?.baseVal?.value,\n y2: node.y1?.baseVal?.value,\n },\n to: {\n x2: node.dataset['x2'],\n y2: node.dataset['y2'],\n },\n };\n });\n\n linesAnimation\n .attr('opacity', 0)\n .attr('x2', (_, index) => attrs[index].from?.x2)\n .attr('y2', (_, index) => attrs[index].from?.y2)\n .transition()\n .duration(duration)\n .attr('opacity', 1)\n .attr('x2', (_, index) => attrs[index].to?.x2)\n .attr('y2', (_, index) => attrs[index].to?.y2);\n }\n if (labelsNodes.length > 0) {\n labelsAnimation.attr('opacity', 0);\n labelsAnimation.transition().duration(duration).attr('opacity', 1);\n }\n }\n\n componentDidUpdate(prevProps: RootAsProps) {\n if (prevProps.$rootProps.data !== this.asProps.data) {\n this.runAppearAnimation();\n }\n }\n\n componentDidMount() {\n this.runAppearAnimation();\n }\n\n handleRadianClick(key: string) {\n return (event: React.MouseEvent) => {\n const newKey = key !== this.asProps.activeKey ? key : null;\n this.handlers.activeKey(newKey, event);\n };\n }\n\n computeTextWidth() {\n const { data, textSize } = this.asProps;\n const widths = data.map(({ label }) => measureText(label, textSize));\n\n return Math.max(...widths);\n }\n\n getTitleProps() {\n const { uid, size, textSize } = this.asProps;\n\n const [width, height] = size;\n const center = [width / 2, height / 2];\n const [x, y] = center;\n return {\n x,\n y,\n textSize: textSize * 1.5,\n ['data-radial-animation']: `${uid}-label`,\n } as IRadialTreeTitleProps;\n }\n\n getRadianProps() {\n const { data, ...restRootProps } = this.asProps;\n const textWidth = this.computeTextWidth();\n\n return {\n ...restRootProps,\n radiansCount: data.length,\n data,\n textWidth,\n onRadianClick: this.handleRadianClick,\n } as IRadialTreeRadianProps;\n }\n\n render() {\n const SRadialTree = this.Element;\n const { Children } = this.asProps;\n this.asProps.dataHintsHandler.establishDataType('values-set');\n\n return sstyled(this.asProps.styles)(\n <SRadialTree render='g'>\n <Children />\n </SRadialTree>,\n );\n }\n}\n\nexport interface IRadialTreeRadianProps extends IRadialTreeProps {\n radiansCount?: number;\n textWidth?: number;\n onRadianClick?: (key: string) => (event: React.MouseEvent) => void;\n}\n\ntype RadianAsProps = RootAsProps & {\n radiansCount: number;\n textWidth: number;\n onRadianClick: (key: string) => (event: React.MouseEvent) => void;\n};\n\nclass RadialTreeRadian extends Component<RadianAsProps> {\n static displayName = 'RadialTreeRadian';\n static style = style;\n\n static defaultProps: Partial<IRadialTreeRadianProps> = {\n centralMargin: 50,\n labelMargin: 2,\n iconColor: '#fff',\n capSize: 16,\n iconSize: 16,\n textSize: 14,\n };\n Element!: React.FC<{ render: string }>;\n\n constructor(props: any) {\n super(props);\n this.renderRadian = this.renderRadian.bind(this);\n }\n\n getInteractiveAreaProps({ $rootProps }: { $rootProps: IRadialTreeProps }, index: number) {\n const data = $rootProps.data?.[index];\n const { xStart, yStart, xLabelCenter, yLabelCenter, capSize } = this.computeRadianPosition(\n data,\n index,\n );\n\n return {\n x1: xStart,\n y1: yStart,\n x2: xLabelCenter,\n y2: yLabelCenter,\n strokeWidth: capSize * 3,\n } as IRadialTreeRadianInteractiveAreaProps;\n }\n\n getLineProps({ $rootProps }: { $rootProps: IRadialTreeProps }, index: number) {\n const data = $rootProps.data?.[index];\n const { xStart, yStart, xEnd, yEnd } = this.computeRadianPosition(data, index);\n const { uid, transparent } = this.asProps;\n const color = data.color ?? this.asProps.color;\n\n return {\n x1: xStart,\n y1: yStart,\n x2: xEnd,\n y2: yEnd,\n stroke: color,\n transparent,\n ['data-x1']: xStart,\n ['data-y1']: yStart,\n ['data-x2']: xEnd,\n ['data-y2']: yEnd,\n ['data-radial-animation']: `${uid}-line`,\n ['data-radian-index']: index,\n } as IRadialTreeRadianLineProps;\n }\n\n getCapProps({ $rootProps }: { $rootProps: IRadialTreeProps }, index: number) {\n const data = $rootProps.data?.[index];\n const { xEnd, yEnd, capSize } = this.computeRadianPosition(data, index);\n const { uid, transparent } = this.asProps;\n const color = data.color ?? this.asProps.color;\n\n return {\n x: xEnd,\n y: yEnd,\n ['data-cx']: xEnd,\n ['data-cy']: yEnd,\n radius: capSize,\n color,\n transparent,\n ['data-radial-animation']: `${uid}-cap-circle`,\n ['data-radian-index']: index,\n } as IRadialTreeRadianCapProps;\n }\n\n getIconProps({ $rootProps }: { $rootProps: IRadialTreeProps }, index: number) {\n const data = $rootProps.data?.[index];\n const { xEnd, yEnd, isActive } = this.computeRadianPosition(data, index);\n const { uid } = this.asProps;\n const iconColor = data.iconColor ?? this.asProps.iconColor;\n const iconSize = data.iconSize ?? this.asProps.iconSize;\n const icon = data.icon ?? this.asProps.icon;\n const x = xEnd - iconSize! / 2;\n const y = yEnd - iconSize! / 2;\n return {\n x,\n y,\n ['data-x']: x,\n ['data-y']: y,\n iconSize,\n color: iconColor ?? '#fff',\n ['data-radial-animation']: `${uid}-cap-icon`,\n ['data-radian-index']: index,\n icon,\n tag: icon,\n isActive,\n } as IRadialTreeRadianIconProps;\n }\n\n getLabelProps({ $rootProps }: { $rootProps: IRadialTreeProps }, index: number) {\n const data = $rootProps.data?.[index];\n const { xLabelCenter, yLabelCenter, labelAngle, isHorizontal } = this.computeRadianPosition(\n data,\n index,\n );\n const { uid, textSize, transparent } = this.asProps;\n const { label } = data;\n const color = data.color ?? this.asProps.color;\n\n return {\n x: xLabelCenter,\n y: yLabelCenter,\n angle: labelAngle,\n ['data-radial-animation']: `${uid}-label`,\n ['data-radian-index']: index,\n label,\n color,\n isHorizontal,\n textSize,\n transparent,\n } as IRadialTreeRadianLabelProps;\n }\n\n getRadianKey(data: RadianData, index: number) {\n return data.key ?? `radian-${index}`;\n }\n\n computeRadianPosition(data: RadianData, index: number) {\n const { centralMargin, labelMargin, angleOffset, activeKey, size, radiansCount, textWidth } =\n this.asProps;\n const [width, height] = size;\n const key = this.getRadianKey(data, index);\n const isActive = activeKey === key;\n const baseCapSize = data.capSize ?? this.asProps.capSize;\n const capSize = baseCapSize * (isActive ? 1 : 0.5);\n\n const minDemSize = Math.min(width, height) / 2;\n const length = Math.max(\n minDemSize - textWidth - baseCapSize - centralMargin - labelMargin * 2,\n 10,\n );\n\n const angle = baseAngle + angleOffset + (index / radiansCount) * (Math.PI * 2);\n const isHorizontal =\n (angle - baseAngle > (1 / 6) * Math.PI && angle - baseAngle < (5 / 6) * Math.PI) ||\n (angle - baseAngle > (7 / 6) * Math.PI && angle - baseAngle < (11 / 6) * Math.PI);\n const topAngle = -Math.PI / 2;\n const labelAngle = ((angle - topAngle) % Math.PI) + topAngle;\n\n const center = [width / 2, height / 2];\n const [xCenter, yCenter] = center;\n const start = [\n xCenter + Math.cos(angle) * centralMargin,\n yCenter + Math.sin(angle) * centralMargin,\n ];\n const end = [\n xCenter + Math.cos(angle) * (centralMargin + length),\n yCenter + Math.sin(angle) * (centralMargin + length),\n ];\n const [xStart, yStart] = start;\n const [xEnd, yEnd] = end;\n\n const labelCenter = [\n xCenter +\n Math.cos(angle) * (centralMargin + length + baseCapSize + textWidth / 2 + labelMargin),\n yCenter +\n Math.sin(angle) * (centralMargin + length + baseCapSize + textWidth / 2 + labelMargin),\n ];\n const [xLabelCenter, yLabelCenter] = labelCenter;\n\n return {\n xStart,\n yStart,\n xEnd,\n yEnd,\n xLabelCenter,\n yLabelCenter,\n labelAngle,\n isHorizontal,\n capSize,\n isActive,\n };\n }\n\n renderRadian(data: RadianData, index: number) {\n const { styles, Children, onRadianClick } = this.asProps;\n const key = this.getRadianKey(data, index);\n const SRadian = 'g';\n\n let children = getOriginChildren(Children);\n\n if (typeof children === 'function') {\n const _child = this.asProps.children;\n const mergedProps = assignProps(children(this.asProps), this.asProps);\n children = mergedProps.children;\n mergedProps.children = _child;\n }\n\n this.asProps.dataHintsHandler.describeValueEntity(`${index}.${data.label}`, data.label);\n\n // hidden from publicly typed export\n const InteractiveArea = (RadialTree.Radian as any).InteractiveArea;\n\n return sstyled(styles)(\n <SRadian aria-hidden key={key} onClick={onRadianClick(key)}>\n <InteractiveArea />\n {children}\n </SRadian>,\n );\n }\n\n render() {\n const { data } = this.asProps;\n const SRadianList = 'g';\n\n return sstyled(this.asProps.styles)(\n <SRadianList>{data.map((data, index) => this.renderRadian(data, index))}</SRadianList>,\n );\n }\n}\n\nexport interface IRadialTreeRadianInteractiveAreaProps {\n x1?: number;\n y1?: number;\n x2?: number;\n y2?: number;\n strokeWidth?: number;\n}\n\ntype RadialTreeRadianInteractiveAreaAsProps = IRadialTreeRadianInteractiveAreaProps & {\n Element: React.FC<{ render: string } & React.SVGProps<any>>;\n styles: React.CSSProperties;\n};\nconst InteractiveArea: React.FC<RadialTreeRadianInteractiveAreaAsProps> = ({\n Element: SInteractiveArea,\n styles,\n}) => {\n return sstyled(styles)(\n <SInteractiveArea stroke='transparent' render='line' />,\n ) as React.ReactElement;\n};\n\nexport interface IRadialTreeRadianLineProps {\n x1?: number;\n y1?: number;\n x2?: number;\n y2?: number;\n stroke?: string;\n transparent?: boolean;\n ['data-radial-animation']?: `${string}-line`;\n ['data-radian-index']?: number;\n}\n\ntype RadialTreeRadianLineAsProps = IRadialTreeRadianLineProps & {\n Element: React.FC<{ render: string; transparent: boolean } & React.SVGProps<any>>;\n styles: React.CSSProperties;\n};\nconst Line: React.FC<RadialTreeRadianLineAsProps> = ({\n Element: SLine,\n styles,\n stroke,\n transparent,\n}) => {\n return sstyled(styles)(\n <SLine render='line' stroke={stroke} transparent={transparent} />,\n ) as React.ReactElement;\n};\n\nexport interface IRadialTreeRadianCapProps {\n x?: number;\n y?: number;\n radius?: number;\n color?: string;\n transparent?: boolean;\n ['data-radial-animation']?: `${string}-cap-circle`;\n ['data-radian-index']?: number;\n}\n\ntype RadialTreeRadianCapAsProps = IRadialTreeRadianCapProps & {\n Element: React.FC<{ render: string; transparent: boolean } & React.SVGProps<any>>;\n styles: React.CSSProperties;\n};\nconst Cap: React.FC<RadialTreeRadianCapAsProps> = ({\n Element: SCap,\n styles,\n x,\n y,\n radius,\n color,\n transparent,\n}) => {\n return sstyled(styles)(\n <SCap render='circle' cx={x} cy={y} r={radius} fill={color} transparent={transparent} />,\n ) as React.ReactElement;\n};\n\nexport interface IRadialTreeRadianIconProps {\n x?: number;\n y?: number;\n iconSize?: number;\n color?: string;\n ['data-radial-animation']?: `${string}-cap-icon`;\n ['data-radian-index']?: number;\n tag?: React.FC;\n isActive?: boolean;\n transparent?: boolean;\n}\n\ntype RadialTreeRadianIconAsProps = IRadialTreeRadianIconProps & {\n Element: React.FC<{ render: string | React.FC; transparent: boolean } & React.SVGProps<any>>;\n x: number;\n y: number;\n iconSize: number;\n styles: React.CSSProperties;\n};\nconst Icon: React.FC<RadialTreeRadianIconAsProps> = ({\n Element: SIcon,\n styles,\n isActive,\n tag,\n x,\n y,\n iconSize,\n transparent,\n}) => {\n if (!(isActive && tag)) return null;\n const width = iconSize;\n const height = iconSize;\n return sstyled(styles)(\n <SIcon x={x} y={y} width={width} height={height} render={tag} transparent={transparent} />,\n ) as React.ReactElement;\n};\n\nexport interface IRadialTreeRadianLabelProps {\n x?: number;\n y?: number;\n color?: string;\n textSize?: number;\n ['data-radial-animation']?: `${string}-label`;\n ['data-radian-index']?: number;\n label?: string;\n isHorizontal?: boolean;\n angle?: number;\n transparent?: boolean;\n}\n\ntype RadialTreeRadianLabelAsProps = IRadialTreeRadianLabelProps & {\n Element: React.FC<{ render: string } & React.SVGProps<any>>;\n Children: React.FC;\n styles: React.CSSProperties;\n x: number;\n y: number;\n angle: number;\n textSize: number;\n};\nconst Label: React.FC<RadialTreeRadianLabelAsProps> = ({\n Element: SLabel,\n Children,\n styles,\n label,\n color,\n isHorizontal,\n x,\n y,\n textSize,\n angle,\n transparent,\n}) => {\n const lines = String(label).split('\\n');\n const linesCount = lines.length;\n const SLabelLine = 'tspan';\n\n const angleDegs = ((angle / Math.PI) * 180).toFixed(2);\n const transformOrigin = [x.toFixed(2), y.toFixed(2)];\n const transform = `rotate(${[angleDegs, ...transformOrigin].join(', ')})`;\n\n const sstyles = sstyled(styles);\n const sLabelStyles = sstyles.cn('SLabel', {\n color,\n 'color-hovered': shade(color, -0.12),\n 'text-cursor': isHorizontal ? 'text' : 'vertical-text',\n transparent,\n });\n\n return (\n <SLabel\n aria-hidden\n render='text'\n textAnchor='middle'\n dominantBaseline='central'\n className={sLabelStyles.className}\n style={sLabelStyles.style}\n x={x.toFixed(2)}\n y={y.toFixed(2)}\n transform={transform}\n >\n {lines.map((lineText, lineIndex) => (\n <SLabelLine\n x={x}\n y={y + (lineIndex - (linesCount - 1) / 2) * textSize}\n key={`#${lineIndex}-${lineText}`}\n >\n {lineText}\n </SLabelLine>\n ))}\n <Children />\n </SLabel>\n ) as React.ReactElement;\n};\n\nconst Radian = createElement(RadialTreeRadian, {\n InteractiveArea,\n Line,\n Cap,\n Icon,\n Label,\n});\n\nexport interface IRadialTreeTitleProps {\n x?: number;\n y?: number;\n textSize?: number;\n ['data-radial-animation']?: `${string}-label`;\n color?: string;\n}\n\ntype RadialTreeTitleAsProps = IRadialTreeTitleProps & {\n Element: React.FC<{ render: string } & React.SVGProps<any>>;\n Children: React.FC;\n children: React.ReactNode;\n styles: React.CSSProperties;\n dataHintsHandler: DataHintsHandler;\n};\nconst Title: React.FC<RadialTreeTitleAsProps> = ({\n Element: STitle,\n Children,\n children,\n styles,\n textSize,\n color,\n x,\n y,\n dataHintsHandler,\n}) => {\n if (typeof children === 'string') {\n dataHintsHandler.setTitle('vertical', children);\n }\n return sstyled(styles)(\n <STitle\n aria-hidden\n render='text'\n textAnchor='middle'\n dominantBaseline='central'\n fontSize={textSize}\n fill={color}\n x={x}\n y={y}\n >\n <Children />\n </STitle>,\n ) as React.ReactElement;\n};\n\nconst RadialTree = createElement(RadialTreeBase, { Title, Radian }) as (<T>(\n props: MapProps<IRadialTreeProps & T>,\n) => ReturnEl) & {\n Title: <T>(props: MapProps<IRadialTreeTitleProps & T>) => ReturnEl;\n Radian: (<T>(props: MapProps<IRadialTreeRadianProps & T>) => ReturnEl) & {\n Line: <T>(props: MapProps<IRadialTreeRadianLineProps & T>) => ReturnEl;\n Cap: <T>(props: MapProps<IRadialTreeRadianCapProps & T>) => ReturnEl;\n Icon: <T>(props: MapProps<IRadialTreeRadianIconProps & T>) => ReturnEl;\n Label: <T>(props: MapProps<IRadialTreeRadianLabelProps & T>) => ReturnEl;\n };\n};\n\nexport default RadialTree;\n"],"mappings":"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"}
|
package/lib/es6/ReferenceLine.js
CHANGED
|
@@ -11,15 +11,15 @@ import { Component, sstyled } from '@semcore/core';
|
|
|
11
11
|
import createElement from './createElement';
|
|
12
12
|
import { scaleOfBandwidth } from './utils';
|
|
13
13
|
/*__reshadow-styles__:"./style/reference-line.shadow.css"*/
|
|
14
|
-
var style = ( /*__reshadow_css_start__*/_sstyled.insert( /*__inner_css_start__*/".
|
|
15
|
-
"__SReferenceLine": "
|
|
16
|
-
"__STitle": "
|
|
17
|
-
"--transform-origin": "--transform-
|
|
18
|
-
"_position_top": "
|
|
19
|
-
"_position_bottom": "
|
|
20
|
-
"_position_right": "
|
|
21
|
-
"_position_left": "
|
|
22
|
-
"__SBackground": "
|
|
14
|
+
var style = ( /*__reshadow_css_start__*/_sstyled.insert( /*__inner_css_start__*/".___SReferenceLine_kh2m0_gg_{fill:none;stroke:var(--intergalactic-chart-grid-x-axis, #c4c7cf)}.___STitle_kh2m0_gg_{font-size:var(--intergalactic-fs-100, 12px);fill:var(--intergalactic-chart-grid-text-label, #6c6e79);transform-origin:var(--transform-origin_kh2m0)}.___STitle_kh2m0_gg_._position_top_kh2m0_gg_{text-anchor:middle}.___STitle_kh2m0_gg_._position_bottom_kh2m0_gg_{text-anchor:middle;alignment-baseline:hanging}.___STitle_kh2m0_gg_._position_left_kh2m0_gg_,.___STitle_kh2m0_gg_._position_right_kh2m0_gg_{transform:rotate(-90deg);text-anchor:middle;alignment-baseline:middle}.___SBackground_kh2m0_gg_{fill:var(--intergalactic-chart-grid-period-bg, rgba(196, 199, 207, 0.2))}" /*__inner_css_end__*/, "kh2m0_gg_") /*__reshadow_css_end__*/, {
|
|
15
|
+
"__SReferenceLine": "___SReferenceLine_kh2m0_gg_",
|
|
16
|
+
"__STitle": "___STitle_kh2m0_gg_",
|
|
17
|
+
"--transform-origin": "--transform-origin_kh2m0",
|
|
18
|
+
"_position_top": "_position_top_kh2m0_gg_",
|
|
19
|
+
"_position_bottom": "_position_bottom_kh2m0_gg_",
|
|
20
|
+
"_position_right": "_position_right_kh2m0_gg_",
|
|
21
|
+
"_position_left": "_position_left_kh2m0_gg_",
|
|
22
|
+
"__SBackground": "___SBackground_kh2m0_gg_"
|
|
23
23
|
});
|
|
24
24
|
var side2direction = {
|
|
25
25
|
left: 'vertical',
|
|
@@ -173,7 +173,7 @@ var ReferenceLineRoot = /*#__PURE__*/function (_Component) {
|
|
|
173
173
|
styles = _this$asProps3.styles;
|
|
174
174
|
var positionProps = lineDirection2props[side2direction[position]];
|
|
175
175
|
return _ref = sstyled(styles), /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(SReferenceLine, _ref.cn("SReferenceLine", _objectSpread({
|
|
176
|
-
"render":
|
|
176
|
+
"render": 'line',
|
|
177
177
|
"__excludeProps": ['data', 'scale', 'format', 'value', 'color'],
|
|
178
178
|
"stroke": color
|
|
179
179
|
}, positionProps(scale, value)))), title && /*#__PURE__*/React.createElement(ReferenceLine.Title, null, title));
|
|
@@ -201,8 +201,8 @@ function Title(props) {
|
|
|
201
201
|
'transform-origin': "".concat(x.toFixed(2), "px ").concat(y.toFixed(2), "px")
|
|
202
202
|
});
|
|
203
203
|
return _ref2 = sstyled(styles), /*#__PURE__*/React.createElement(STitle, _ref2.cn("STitle", {
|
|
204
|
-
"render":
|
|
205
|
-
"childrenPosition":
|
|
204
|
+
"render": 'text',
|
|
205
|
+
"childrenPosition": 'inside',
|
|
206
206
|
"className": sTitleStyles.className,
|
|
207
207
|
"style": sTitleStyles.style,
|
|
208
208
|
"position": position,
|
|
@@ -219,8 +219,8 @@ function Background(props) {
|
|
|
219
219
|
value = props.value;
|
|
220
220
|
var positionProps = rectDirection2props[side2direction[position]];
|
|
221
221
|
return _ref3 = sstyled(styles), /*#__PURE__*/React.createElement(SBackground, _ref3.cn("SBackground", _objectSpread({
|
|
222
|
-
"render":
|
|
223
|
-
"childrenPosition":
|
|
222
|
+
"render": 'rect',
|
|
223
|
+
"childrenPosition": 'inside'
|
|
224
224
|
}, positionProps(scale, value))));
|
|
225
225
|
}
|
|
226
226
|
var ReferenceLine = createElement(ReferenceLineRoot, {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ReferenceLine.js","names":["React","Component","sstyled","createElement","scaleOfBandwidth","style","_sstyled","insert","side2direction","left","right","top","bottom","lineDirection2props","vertical","_ref4","value","_ref5","_slicedToArray","xScale","yScale","yRange","range","x","x1","x2","y1","y2","horizontal","_ref6","_ref7","xRange","y","rectDirection2props","_ref8","_ref9","width","height","_ref10","_ref11","titleOffset","titleSideToProps","_ref12","_ref13","_ref14","_ref15","_ref16","_ref17","_ref18","_ref19","ReferenceLineRoot","_Component","_inherits","_super","_createSuper","_classCallCheck","apply","arguments","_createClass","key","getTitleProps","_this$asProps","asProps","position","getBackgroundProps","_this$asProps2","render","_ref","SReferenceLine","Element","_this$asProps3","title","scale","color","styles","positionProps","Fragment","cn","_objectSpread","ReferenceLine","Title","_defineProperty","props","_ref2","STitle","_titleSideToProps$pos","sstyles","sTitleStyles","concat","toFixed","className","Background","_ref3","SBackground"],"sources":["../../src/ReferenceLine.jsx"],"sourcesContent":["import React from 'react';\nimport { Component, sstyled } from '@semcore/core';\nimport createElement from './createElement';\nimport { scaleOfBandwidth } from './utils';\n\nimport style from './style/reference-line.shadow.css';\n\nconst side2direction = {\n left: 'vertical',\n right: 'vertical',\n top: 'horizontal',\n bottom: 'horizontal',\n};\n\nconst lineDirection2props = {\n vertical: ([xScale, yScale], value) => {\n const yRange = yScale.range();\n const x = scaleOfBandwidth(xScale, value);\n return {\n x1: x,\n x2: x,\n y1: yRange[0],\n y2: yRange[1],\n };\n },\n horizontal: ([xScale, yScale], value) => {\n const xRange = xScale.range();\n const y = scaleOfBandwidth(yScale, value);\n return {\n x1: xRange[0],\n x2: xRange[1],\n y1: y,\n y2: y,\n };\n },\n};\n\nconst rectDirection2props = {\n vertical: ([xScale, yScale], value) => {\n const yRange = yScale.range();\n const x = scaleOfBandwidth(xScale, value);\n return {\n x: x,\n y: yRange[1],\n width: 100,\n height: yRange[0] - yRange[1],\n };\n },\n horizontal: ([xScale, yScale], value) => {\n const xRange = xScale.range();\n const y = scaleOfBandwidth(yScale, value);\n return {\n x: xRange[0],\n y: y,\n width: xRange[1] - xRange[0],\n height: 100,\n };\n },\n};\n\nconst titleOffset = 10;\nconst titleSideToProps = {\n left: ([xScale, yScale], value) => {\n const yRange = yScale.range();\n const x = scaleOfBandwidth(xScale, value);\n return {\n x: x - titleOffset,\n y: (yRange[0] + yRange[1]) / 2,\n };\n },\n right: ([xScale, yScale], value) => {\n const yRange = yScale.range();\n const x = scaleOfBandwidth(xScale, value);\n return {\n x: x + titleOffset,\n y: (yRange[0] + yRange[1]) / 2,\n };\n },\n top: ([xScale, yScale], value) => {\n const xRange = xScale.range();\n const y = scaleOfBandwidth(yScale, value);\n return {\n x: (xRange[1] + xRange[0]) / 2,\n y: y - titleOffset,\n };\n },\n bottom: ([xScale, yScale], value) => {\n const xRange = xScale.range();\n const y = scaleOfBandwidth(yScale, value);\n return {\n x: (xRange[1] + xRange[0]) / 2,\n y: y + titleOffset,\n };\n },\n};\n\nclass ReferenceLineRoot extends Component {\n static displayName = 'ReferenceLine';\n static style = style;\n static defaultProps = {\n position: 'left',\n };\n\n getTitleProps() {\n const { position, value } = this.asProps;\n return { position, value };\n }\n\n getBackgroundProps() {\n const { position, value } = this.asProps;\n return { position, value };\n }\n\n render() {\n const SReferenceLine = this.Element;\n const { title, scale, position, value, color, styles } = this.asProps;\n const positionProps = lineDirection2props[side2direction[position]];\n\n return sstyled(styles)(\n <>\n <SReferenceLine\n render=\"line\"\n __excludeProps={['data', 'scale', 'format', 'value', 'color']}\n stroke={color}\n {...positionProps(scale, value)}\n />\n {title && <ReferenceLine.Title>{title}</ReferenceLine.Title>}\n </>,\n );\n }\n}\n\nfunction Title(props) {\n const { Element: STitle, styles, scale, position, value } = props;\n const { x, y } = titleSideToProps[position](scale, value);\n\n const sstyles = sstyled(styles);\n const sTitleStyles = sstyles.cn('STitle', {\n 'transform-origin': `${x.toFixed(2)}px ${y.toFixed(2)}px`,\n });\n\n return sstyled(styles)(\n <STitle\n render=\"text\"\n childrenPosition=\"inside\"\n className={sTitleStyles.className}\n style={sTitleStyles.style}\n position={position}\n x={x}\n y={y}\n />,\n );\n}\n\nfunction Background(props) {\n const { Element: SBackground, styles, scale, position, value } = props;\n const positionProps = rectDirection2props[side2direction[position]];\n\n return sstyled(styles)(\n <SBackground render=\"rect\" childrenPosition=\"inside\" {...positionProps(scale, value)} />,\n );\n}\n\nconst ReferenceLine = createElement(ReferenceLineRoot, {\n Title,\n Background,\n});\n\nexport default ReferenceLine;\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ReferenceLine.js","names":["React","Component","sstyled","createElement","scaleOfBandwidth","style","_sstyled","insert","side2direction","left","right","top","bottom","lineDirection2props","vertical","_ref4","value","_ref5","_slicedToArray","xScale","yScale","yRange","range","x","x1","x2","y1","y2","horizontal","_ref6","_ref7","xRange","y","rectDirection2props","_ref8","_ref9","width","height","_ref10","_ref11","titleOffset","titleSideToProps","_ref12","_ref13","_ref14","_ref15","_ref16","_ref17","_ref18","_ref19","ReferenceLineRoot","_Component","_inherits","_super","_createSuper","_classCallCheck","apply","arguments","_createClass","key","getTitleProps","_this$asProps","asProps","position","getBackgroundProps","_this$asProps2","render","_ref","SReferenceLine","Element","_this$asProps3","title","scale","color","styles","positionProps","Fragment","cn","_objectSpread","ReferenceLine","Title","_defineProperty","props","_ref2","STitle","_titleSideToProps$pos","sstyles","sTitleStyles","concat","toFixed","className","Background","_ref3","SBackground"],"sources":["../../src/ReferenceLine.jsx"],"sourcesContent":["import React from 'react';\nimport { Component, sstyled } from '@semcore/core';\nimport createElement from './createElement';\nimport { scaleOfBandwidth } from './utils';\n\nimport style from './style/reference-line.shadow.css';\n\nconst side2direction = {\n left: 'vertical',\n right: 'vertical',\n top: 'horizontal',\n bottom: 'horizontal',\n};\n\nconst lineDirection2props = {\n vertical: ([xScale, yScale], value) => {\n const yRange = yScale.range();\n const x = scaleOfBandwidth(xScale, value);\n return {\n x1: x,\n x2: x,\n y1: yRange[0],\n y2: yRange[1],\n };\n },\n horizontal: ([xScale, yScale], value) => {\n const xRange = xScale.range();\n const y = scaleOfBandwidth(yScale, value);\n return {\n x1: xRange[0],\n x2: xRange[1],\n y1: y,\n y2: y,\n };\n },\n};\n\nconst rectDirection2props = {\n vertical: ([xScale, yScale], value) => {\n const yRange = yScale.range();\n const x = scaleOfBandwidth(xScale, value);\n return {\n x: x,\n y: yRange[1],\n width: 100,\n height: yRange[0] - yRange[1],\n };\n },\n horizontal: ([xScale, yScale], value) => {\n const xRange = xScale.range();\n const y = scaleOfBandwidth(yScale, value);\n return {\n x: xRange[0],\n y: y,\n width: xRange[1] - xRange[0],\n height: 100,\n };\n },\n};\n\nconst titleOffset = 10;\nconst titleSideToProps = {\n left: ([xScale, yScale], value) => {\n const yRange = yScale.range();\n const x = scaleOfBandwidth(xScale, value);\n return {\n x: x - titleOffset,\n y: (yRange[0] + yRange[1]) / 2,\n };\n },\n right: ([xScale, yScale], value) => {\n const yRange = yScale.range();\n const x = scaleOfBandwidth(xScale, value);\n return {\n x: x + titleOffset,\n y: (yRange[0] + yRange[1]) / 2,\n };\n },\n top: ([xScale, yScale], value) => {\n const xRange = xScale.range();\n const y = scaleOfBandwidth(yScale, value);\n return {\n x: (xRange[1] + xRange[0]) / 2,\n y: y - titleOffset,\n };\n },\n bottom: ([xScale, yScale], value) => {\n const xRange = xScale.range();\n const y = scaleOfBandwidth(yScale, value);\n return {\n x: (xRange[1] + xRange[0]) / 2,\n y: y + titleOffset,\n };\n },\n};\n\nclass ReferenceLineRoot extends Component {\n static displayName = 'ReferenceLine';\n static style = style;\n static defaultProps = {\n position: 'left',\n };\n\n getTitleProps() {\n const { position, value } = this.asProps;\n return { position, value };\n }\n\n getBackgroundProps() {\n const { position, value } = this.asProps;\n return { position, value };\n }\n\n render() {\n const SReferenceLine = this.Element;\n const { title, scale, position, value, color, styles } = this.asProps;\n const positionProps = lineDirection2props[side2direction[position]];\n\n return sstyled(styles)(\n <>\n <SReferenceLine\n render='line'\n __excludeProps={['data', 'scale', 'format', 'value', 'color']}\n stroke={color}\n {...positionProps(scale, value)}\n />\n {title && <ReferenceLine.Title>{title}</ReferenceLine.Title>}\n </>,\n );\n }\n}\n\nfunction Title(props) {\n const { Element: STitle, styles, scale, position, value } = props;\n const { x, y } = titleSideToProps[position](scale, value);\n\n const sstyles = sstyled(styles);\n const sTitleStyles = sstyles.cn('STitle', {\n 'transform-origin': `${x.toFixed(2)}px ${y.toFixed(2)}px`,\n });\n\n return sstyled(styles)(\n <STitle\n render='text'\n childrenPosition='inside'\n className={sTitleStyles.className}\n style={sTitleStyles.style}\n position={position}\n x={x}\n y={y}\n />,\n );\n}\n\nfunction Background(props) {\n const { Element: SBackground, styles, scale, position, value } = props;\n const positionProps = rectDirection2props[side2direction[position]];\n\n return sstyled(styles)(\n <SBackground render='rect' childrenPosition='inside' {...positionProps(scale, value)} />,\n );\n}\n\nconst ReferenceLine = createElement(ReferenceLineRoot, {\n Title,\n Background,\n});\n\nexport default ReferenceLine;\n"],"mappings":"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"}
|
package/lib/es6/ScatterPlot.js
CHANGED
|
@@ -16,13 +16,13 @@ import createElement from './createElement';
|
|
|
16
16
|
import { CONSTANT } from './utils';
|
|
17
17
|
import ClipPath from './ClipPath';
|
|
18
18
|
/*__reshadow-styles__:"./style/scatterplot.shadow.css"*/
|
|
19
|
-
var style = ( /*__reshadow_css_start__*/_sstyled.insert( /*__inner_css_start__*/".
|
|
20
|
-
"__SScatterPlot": "
|
|
21
|
-
"--duration": "--
|
|
22
|
-
"_color": "
|
|
23
|
-
"--color": "--
|
|
24
|
-
"_transparent": "
|
|
25
|
-
"__SValue": "
|
|
19
|
+
var style = ( /*__reshadow_css_start__*/_sstyled.insert( /*__inner_css_start__*/".___SScatterPlot_9k84l_gg_{fill:var(--intergalactic-chart-palette-order-1, #2bb3ff);transition-property:cx,cy;transition-duration:var(--duration_9k84l);transition-timing-function:ease-in-out;opacity:.5}@media (hover:hover){.___SScatterPlot_9k84l_gg_:hover{opacity:.8}}.___SScatterPlot_9k84l_gg_.__color_9k84l_gg_{fill:var(--color_9k84l)}.___SScatterPlot_9k84l_gg_.__transparent_9k84l_gg_{opacity:.3}.___SValue_9k84l_gg_{text-anchor:middle;font-size:var(--intergalactic-fs-50, 10px);stroke:var(--intergalactic-chart-palette-order-9, #008ff8)}.___SValue_9k84l_gg_.__color_9k84l_gg_{stroke:var(--color_9k84l)}.___SValue_9k84l_gg_.__transparent_9k84l_gg_{opacity:.3}" /*__inner_css_end__*/, "9k84l_gg_") /*__reshadow_css_end__*/, {
|
|
20
|
+
"__SScatterPlot": "___SScatterPlot_9k84l_gg_",
|
|
21
|
+
"--duration": "--duration_9k84l",
|
|
22
|
+
"_color": "__color_9k84l_gg_",
|
|
23
|
+
"--color": "--color_9k84l",
|
|
24
|
+
"_transparent": "__transparent_9k84l_gg_",
|
|
25
|
+
"__SValue": "___SValue_9k84l_gg_"
|
|
26
26
|
});
|
|
27
27
|
var ScatterPlotRoot = /*#__PURE__*/function (_Component) {
|
|
28
28
|
_inherits(ScatterPlotRoot, _Component);
|
|
@@ -123,7 +123,7 @@ var ScatterPlotRoot = /*#__PURE__*/function (_Component) {
|
|
|
123
123
|
"aria-hidden": true,
|
|
124
124
|
"id": "".concat(uid).concat(i),
|
|
125
125
|
"index": i,
|
|
126
|
-
"render":
|
|
126
|
+
"render": 'circle',
|
|
127
127
|
"clipPath": "url(#".concat(uid, ")"),
|
|
128
128
|
"cx": xScale(d[x]) + offset[0],
|
|
129
129
|
"cy": yScale(d[y]) + offset[1],
|
|
@@ -135,7 +135,7 @@ var ScatterPlotRoot = /*#__PURE__*/function (_Component) {
|
|
|
135
135
|
"aria-hidden": true,
|
|
136
136
|
"x": xScale(d[x]) + offset[0],
|
|
137
137
|
"y": yScale(d[y]) + offset[1],
|
|
138
|
-
"dy":
|
|
138
|
+
"dy": '.3em',
|
|
139
139
|
"clipPath": "url(#".concat(uid, ")"),
|
|
140
140
|
"color": valueColor,
|
|
141
141
|
"transparent": transparent
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ScatterPlot.js","names":["React","transition","Component","sstyled","canUseDOM","uniqueIDEnhancement","createElement","CONSTANT","ClipPath","style","_sstyled","insert","ScatterPlotRoot","_Component","_inherits","_super","_createSuper","_this","_classCallCheck","_len","arguments","length","args","Array","_key","call","apply","concat","_defineProperty","_assertThisInitialized","document","visible","props","_ref2","x","clientX","y","clientY","eventEmitter","asProps","virtualElement","getBoundingClientRect","generateGetBoundingClientRect","VIRTUAL_ELEMENT","emit","_createClass","key","value","undefined","width","height","top","right","bottom","left","animationCircle","_this$asProps","duration","uid","r","radius","selectRect","selection","selectAll","attr","selectRectNode","node","componentDidUpdate","componentDidMount","renderCircle","d","i","_ref","_this$asProps2","color","scale","offset","styles","valueColor","transparent","_scale","_slicedToArray","xScale","yScale","SScatterPlot","Element","SValue","cn","bindHandlerTooltip","_objectSpread","xIndex","render","_this$asProps3","data","_scale2","xSize","Math","abs","range","ySize","xMargin","min","yMargin","dataHintsHandler","specifyDataRowFields","establishDataType","Fragment","map","bind","id","ScatterPlot"],"sources":["../../src/ScatterPlot.jsx"],"sourcesContent":["import React from 'react';\nimport { transition } from 'd3-transition';\nimport { Component, sstyled } from '@semcore/core';\nimport canUseDOM from '@semcore/utils/lib/canUseDOM';\nimport uniqueIDEnhancement from '@semcore/utils/lib/uniqueID';\nimport createElement from './createElement';\nimport { CONSTANT } from './utils';\nimport ClipPath from './ClipPath';\n\nimport style from './style/scatterplot.shadow.css';\n\nclass ScatterPlotRoot extends Component {\n static displayName = 'ScatterPlot';\n static style = style;\n static enhance = [uniqueIDEnhancement()];\n\n static defaultProps = {\n offset: [0, 0],\n duration: 500,\n };\n\n virtualElement = canUseDOM() ? document.createElement('div') : {};\n\n generateGetBoundingClientRect(x = 0, y = 0) {\n return () => ({ width: 0, height: 0, top: y, right: x, bottom: y, left: x });\n }\n\n bindHandlerTooltip =\n (visible, props) =>\n ({ clientX: x, clientY: y }) => {\n const { eventEmitter } = this.asProps;\n this.virtualElement.getBoundingClientRect = this.generateGetBoundingClientRect(x, y);\n this.virtualElement[CONSTANT.VIRTUAL_ELEMENT] = true;\n eventEmitter.emit('onTooltipVisible', visible, props, this.virtualElement);\n };\n\n animationCircle() {\n const { duration, uid, r, value } = this.asProps;\n const radius = r ? r : value ? 12 : 5.5;\n const selectRect = transition().selection().selectAll(`[id^=${uid}]`).attr('r', 0);\n const selectRectNode = selectRect.node();\n\n if (duration > 0 && selectRectNode) {\n selectRect.transition().duration(duration).attr('r', radius);\n }\n }\n\n componentDidUpdate() {\n this.animationCircle();\n }\n\n componentDidMount() {\n this.animationCircle();\n }\n\n renderCircle(d, i) {\n const { color, scale, x, y, r, offset, styles, uid, duration, value, valueColor, transparent } =\n this.asProps;\n const [xScale, yScale] = scale;\n const SScatterPlot = this.Element;\n const SValue = 'text';\n\n return sstyled(styles)(\n <g\n aria-hidden\n key={`circle(#${i})`}\n onMouseMove={this.bindHandlerTooltip(true, { ...this.props, xIndex: i })}\n onMouseLeave={this.bindHandlerTooltip(false, { ...this.props, xIndex: i })}\n >\n <SScatterPlot\n aria-hidden\n id={`${uid}${i}`}\n index={i}\n render=\"circle\"\n clipPath={`url(#${uid})`}\n cx={xScale(d[x]) + offset[0]}\n cy={yScale(d[y]) + offset[1]}\n color={color}\n r={r}\n use:duration={`${duration}ms`}\n transparent={transparent}\n />\n {d[value] && (\n <SValue\n aria-hidden\n x={xScale(d[x]) + offset[0]}\n y={yScale(d[y]) + offset[1]}\n dy=\".3em\"\n clipPath={`url(#${uid})`}\n color={valueColor}\n transparent={transparent}\n >\n {d[value]}\n </SValue>\n )}\n </g>,\n );\n }\n\n render() {\n const { data, uid, scale, x, y, value } = this.asProps;\n const [xScale, yScale] = scale;\n const xSize = Math.abs(xScale.range()[0] - xScale.range()[1]);\n const ySize = Math.abs(yScale.range()[0] - yScale.range()[1]);\n const xMargin = Math.min(xScale.range()[0], xScale.range()[1]);\n const yMargin = Math.min(yScale.range()[0], yScale.range()[1]);\n\n this.asProps.dataHintsHandler.specifyDataRowFields(x, y, value);\n this.asProps.dataHintsHandler.establishDataType('points-cloud');\n\n return (\n <>\n {data.map(this.renderCircle.bind(this))}\n <ClipPath\n aria-hidden\n id={uid}\n x={xMargin}\n y={yMargin}\n width={`${xSize}px`}\n height={`${ySize}px`}\n />\n </>\n );\n }\n}\n\nconst ScatterPlot = createElement(ScatterPlotRoot);\n\nexport default ScatterPlot;\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ScatterPlot.js","names":["React","transition","Component","sstyled","canUseDOM","uniqueIDEnhancement","createElement","CONSTANT","ClipPath","style","_sstyled","insert","ScatterPlotRoot","_Component","_inherits","_super","_createSuper","_this","_classCallCheck","_len","arguments","length","args","Array","_key","call","apply","concat","_defineProperty","_assertThisInitialized","document","visible","props","_ref2","x","clientX","y","clientY","eventEmitter","asProps","virtualElement","getBoundingClientRect","generateGetBoundingClientRect","VIRTUAL_ELEMENT","emit","_createClass","key","value","undefined","width","height","top","right","bottom","left","animationCircle","_this$asProps","duration","uid","r","radius","selectRect","selection","selectAll","attr","selectRectNode","node","componentDidUpdate","componentDidMount","renderCircle","d","i","_ref","_this$asProps2","color","scale","offset","styles","valueColor","transparent","_scale","_slicedToArray","xScale","yScale","SScatterPlot","Element","SValue","cn","bindHandlerTooltip","_objectSpread","xIndex","render","_this$asProps3","data","_scale2","xSize","Math","abs","range","ySize","xMargin","min","yMargin","dataHintsHandler","specifyDataRowFields","establishDataType","Fragment","map","bind","id","ScatterPlot"],"sources":["../../src/ScatterPlot.jsx"],"sourcesContent":["import React from 'react';\nimport { transition } from 'd3-transition';\nimport { Component, sstyled } from '@semcore/core';\nimport canUseDOM from '@semcore/utils/lib/canUseDOM';\nimport uniqueIDEnhancement from '@semcore/utils/lib/uniqueID';\nimport createElement from './createElement';\nimport { CONSTANT } from './utils';\nimport ClipPath from './ClipPath';\n\nimport style from './style/scatterplot.shadow.css';\n\nclass ScatterPlotRoot extends Component {\n static displayName = 'ScatterPlot';\n static style = style;\n static enhance = [uniqueIDEnhancement()];\n\n static defaultProps = {\n offset: [0, 0],\n duration: 500,\n };\n\n virtualElement = canUseDOM() ? document.createElement('div') : {};\n\n generateGetBoundingClientRect(x = 0, y = 0) {\n return () => ({ width: 0, height: 0, top: y, right: x, bottom: y, left: x });\n }\n\n bindHandlerTooltip = (visible, props) => ({ clientX: x, clientY: y }) => {\n const { eventEmitter } = this.asProps;\n this.virtualElement.getBoundingClientRect = this.generateGetBoundingClientRect(x, y);\n this.virtualElement[CONSTANT.VIRTUAL_ELEMENT] = true;\n eventEmitter.emit('onTooltipVisible', visible, props, this.virtualElement);\n };\n\n animationCircle() {\n const { duration, uid, r, value } = this.asProps;\n const radius = r ? r : value ? 12 : 5.5;\n const selectRect = transition().selection().selectAll(`[id^=${uid}]`).attr('r', 0);\n const selectRectNode = selectRect.node();\n\n if (duration > 0 && selectRectNode) {\n selectRect.transition().duration(duration).attr('r', radius);\n }\n }\n\n componentDidUpdate() {\n this.animationCircle();\n }\n\n componentDidMount() {\n this.animationCircle();\n }\n\n renderCircle(d, i) {\n const { color, scale, x, y, r, offset, styles, uid, duration, value, valueColor, transparent } =\n this.asProps;\n const [xScale, yScale] = scale;\n const SScatterPlot = this.Element;\n const SValue = 'text';\n\n return sstyled(styles)(\n <g\n aria-hidden\n key={`circle(#${i})`}\n onMouseMove={this.bindHandlerTooltip(true, { ...this.props, xIndex: i })}\n onMouseLeave={this.bindHandlerTooltip(false, { ...this.props, xIndex: i })}\n >\n <SScatterPlot\n aria-hidden\n id={`${uid}${i}`}\n index={i}\n render='circle'\n clipPath={`url(#${uid})`}\n cx={xScale(d[x]) + offset[0]}\n cy={yScale(d[y]) + offset[1]}\n color={color}\n r={r}\n use:duration={`${duration}ms`}\n transparent={transparent}\n />\n {d[value] && (\n <SValue\n aria-hidden\n x={xScale(d[x]) + offset[0]}\n y={yScale(d[y]) + offset[1]}\n dy='.3em'\n clipPath={`url(#${uid})`}\n color={valueColor}\n transparent={transparent}\n >\n {d[value]}\n </SValue>\n )}\n </g>,\n );\n }\n\n render() {\n const { data, uid, scale, x, y, value } = this.asProps;\n const [xScale, yScale] = scale;\n const xSize = Math.abs(xScale.range()[0] - xScale.range()[1]);\n const ySize = Math.abs(yScale.range()[0] - yScale.range()[1]);\n const xMargin = Math.min(xScale.range()[0], xScale.range()[1]);\n const yMargin = Math.min(yScale.range()[0], yScale.range()[1]);\n\n this.asProps.dataHintsHandler.specifyDataRowFields(x, y, value);\n this.asProps.dataHintsHandler.establishDataType('points-cloud');\n\n return (\n <>\n {data.map(this.renderCircle.bind(this))}\n <ClipPath\n aria-hidden\n id={uid}\n x={xMargin}\n y={yMargin}\n width={`${xSize}px`}\n height={`${ySize}px`}\n />\n </>\n );\n }\n}\n\nconst ScatterPlot = createElement(ScatterPlotRoot);\n\nexport default ScatterPlot;\n"],"mappings":"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"}
|
package/lib/es6/StackBar.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"StackBar.js","names":["React","stack","d3Stack","Component","getOriginChildren","createElement","Bar","MIN_HEIGHT","HorizontalBar","MIN_WIDTH","DEFAULT_INSTANCE","Symbol","XY0","StackBarRoot","_Component","_inherits","_super","_createSuper","_this","_classCallCheck","_len","arguments","length","args","Array","_key","call","apply","concat","_defineProperty","_assertThisInitialized","_createClass","key","value","getSeries","_this$asProps","asProps","Children","data","keys","toArray","reduce","acc","child","isValidElement","type","StackBar","props","hide","push","y","x","getBarProps","_ref","_this2","_this$offsetBars$seri","_ref$hMin","hMin","_this$asProps2","r","scale","_scale","_slicedToArray","yScale","seriesIndex","series","findIndex","s","rBar","map","i","slice","some","bar","offsetBars","_objectSpread2","_objectSpread","calcOffset","_d$XY","_d$XY2","offset","offsetBar","_offsetBar$i","d","absHeight","Math","abs","min","domain","Number","y0","groupKey","getHorizontalBarProps","_ref2","_this3","_this$offsetBars$seri2","_ref2$wMin","wMin","_this$asProps3","_scale2","xScale","_objectSpread3","_d$XY3","_d$XY4","_offsetBar$i2","absWidth","max","x0","render","Element","dataHintsHandler","establishDataType"],"sources":["../../src/StackBar.jsx"],"sourcesContent":["import React from 'react';\nimport { stack as d3Stack } from 'd3-shape';\nimport { Component } from '@semcore/core';\nimport getOriginChildren from '@semcore/utils/lib/getOriginChildren';\nimport createElement from './createElement';\nimport Bar, { MIN_HEIGHT } from './Bar';\nimport HorizontalBar, { MIN_WIDTH } from './HorizontalBar';\n\nconst DEFAULT_INSTANCE = Symbol('DEFAULT_INSTANCE');\nconst XY0 = Symbol('XY0');\n\nclass StackBarRoot extends Component {\n static displayName = 'StackBar';\n\n static defaultProps = () => {\n const stack = d3Stack();\n stack[DEFAULT_INSTANCE] = true;\n return { stack, r: 2 };\n };\n\n offsetBars = [];\n\n getSeries() {\n const { Children, data, stack } = this.asProps;\n\n if (stack[DEFAULT_INSTANCE]) {\n const keys = React.Children.toArray(getOriginChildren(Children)).reduce((acc, child) => {\n if (React.isValidElement(child) && child.type === StackBar.Bar && !child.props.hide) {\n acc.push(child.props.y);\n }\n if (\n React.isValidElement(child) &&\n child.type === StackBar.HorizontalBar &&\n !child.props.hide\n ) {\n acc.push(child.props.x);\n }\n return acc;\n }, []);\n stack.keys(keys);\n }\n\n return stack(data);\n }\n\n getBarProps({ y, hMin = MIN_HEIGHT }) {\n const { x, r, scale } = this.asProps;\n const [, yScale] = scale;\n\n const seriesIndex = this.series.findIndex((s) => s.key === y);\n // or [] if hide bar\n const series = this.series[seriesIndex] || [];\n\n const rBar = series.map((s, i) =>\n this.series.slice(seriesIndex + 1).some((bar) => bar[i][0] !== bar[i][1]) ? 0 : r,\n );\n\n this.offsetBars[seriesIndex] = this.offsetBars[seriesIndex] ?? [];\n const data = series.map((s) => ({\n ...s.data,\n [y]: s[1],\n [XY0]: s[0],\n }));\n\n const calcOffset = (i) => {\n const offset = this.offsetBars.reduce((offset, offsetBar) => offset - (offsetBar[i] ?? 0), 0);\n const d = data[i];\n const absHeight = Math.abs(\n yScale(d[y]) - Math.min(yScale(yScale.domain()[0]), yScale(d[XY0] ?? 0)),\n );\n this.offsetBars[seriesIndex][i] =\n Number(d[y] - (d[XY0] ?? 0)) === 0 ? 0 : absHeight >= hMin ? 0 : d[y] > 0 ? hMin : -hMin;\n return [0, offset];\n };\n\n return {\n data,\n hMin,\n y0: XY0,\n x,\n r: rBar,\n groupKey: x,\n offset: calcOffset,\n };\n }\n\n getHorizontalBarProps({ x, wMin = MIN_WIDTH }) {\n const { y, r, scale } = this.asProps;\n const [xScale] = scale;\n\n const seriesIndex = this.series.findIndex((s) => s.key === x);\n const series = this.series[seriesIndex];\n\n const rBar = series.map((s, i) =>\n this.series.slice(seriesIndex + 1).some((bar) => bar[i][0] !== bar[i][1]) ? 0 : r,\n );\n\n this.offsetBars[seriesIndex] = this.offsetBars[seriesIndex] ?? [];\n const data = series.map((s) => ({\n ...s.data,\n [x]: s[1],\n [XY0]: s[0],\n }));\n\n const calcOffset = (i) => {\n const offset = this.offsetBars.reduce((offset, offsetBar) => offset - (offsetBar[i] ?? 0), 0);\n const d = data[i];\n const absWidth = Math.abs(\n xScale(d[x]) - Math.max(xScale(xScale.domain()[0]), xScale(d[XY0] ?? 0)),\n );\n this.offsetBars[seriesIndex][i] =\n Number(d[x] - (d[XY0] ?? 0)) === 0 ? 0 : absWidth >= wMin ? 0 : d[x] > 0 ? -wMin : wMin;\n return [offset, 0];\n };\n\n return {\n data,\n wMin,\n x0: XY0,\n y,\n r: rBar,\n groupKey: y,\n offset: calcOffset,\n };\n }\n\n render() {\n const Element = this.Element;\n this.series = this.getSeries();\n\n this.asProps.dataHintsHandler.establishDataType('grouped-values');\n\n this.offsetBars = [];\n\n return <Element aria-hidden render=\"g\" series={this.series} />;\n }\n}\n\nconst StackBar = createElement(StackBarRoot, {\n Bar,\n HorizontalBar,\n});\n\nexport default StackBar;\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"StackBar.js","names":["React","stack","d3Stack","Component","getOriginChildren","createElement","Bar","MIN_HEIGHT","HorizontalBar","MIN_WIDTH","DEFAULT_INSTANCE","Symbol","XY0","StackBarRoot","_Component","_inherits","_super","_createSuper","_this","_classCallCheck","_len","arguments","length","args","Array","_key","call","apply","concat","_defineProperty","_assertThisInitialized","_createClass","key","value","getSeries","_this$asProps","asProps","Children","data","keys","toArray","reduce","acc","child","isValidElement","type","StackBar","props","hide","push","y","x","getBarProps","_ref","_this2","_this$offsetBars$seri","_ref$hMin","hMin","_this$asProps2","r","scale","_scale","_slicedToArray","yScale","seriesIndex","series","findIndex","s","rBar","map","i","slice","some","bar","offsetBars","_objectSpread2","_objectSpread","calcOffset","_d$XY","_d$XY2","offset","offsetBar","_offsetBar$i","d","absHeight","Math","abs","min","domain","Number","y0","groupKey","getHorizontalBarProps","_ref2","_this3","_this$offsetBars$seri2","_ref2$wMin","wMin","_this$asProps3","_scale2","xScale","_objectSpread3","_d$XY3","_d$XY4","_offsetBar$i2","absWidth","max","x0","render","Element","dataHintsHandler","establishDataType"],"sources":["../../src/StackBar.jsx"],"sourcesContent":["import React from 'react';\nimport { stack as d3Stack } from 'd3-shape';\nimport { Component } from '@semcore/core';\nimport getOriginChildren from '@semcore/utils/lib/getOriginChildren';\nimport createElement from './createElement';\nimport Bar, { MIN_HEIGHT } from './Bar';\nimport HorizontalBar, { MIN_WIDTH } from './HorizontalBar';\n\nconst DEFAULT_INSTANCE = Symbol('DEFAULT_INSTANCE');\nconst XY0 = Symbol('XY0');\n\nclass StackBarRoot extends Component {\n static displayName = 'StackBar';\n\n static defaultProps = () => {\n const stack = d3Stack();\n stack[DEFAULT_INSTANCE] = true;\n return { stack, r: 2 };\n };\n\n offsetBars = [];\n\n getSeries() {\n const { Children, data, stack } = this.asProps;\n\n if (stack[DEFAULT_INSTANCE]) {\n const keys = React.Children.toArray(getOriginChildren(Children)).reduce((acc, child) => {\n if (React.isValidElement(child) && child.type === StackBar.Bar && !child.props.hide) {\n acc.push(child.props.y);\n }\n if (\n React.isValidElement(child) &&\n child.type === StackBar.HorizontalBar &&\n !child.props.hide\n ) {\n acc.push(child.props.x);\n }\n return acc;\n }, []);\n stack.keys(keys);\n }\n\n return stack(data);\n }\n\n getBarProps({ y, hMin = MIN_HEIGHT }) {\n const { x, r, scale } = this.asProps;\n const [, yScale] = scale;\n\n const seriesIndex = this.series.findIndex((s) => s.key === y);\n // or [] if hide bar\n const series = this.series[seriesIndex] || [];\n\n const rBar = series.map((s, i) =>\n this.series.slice(seriesIndex + 1).some((bar) => bar[i][0] !== bar[i][1]) ? 0 : r,\n );\n\n this.offsetBars[seriesIndex] = this.offsetBars[seriesIndex] ?? [];\n const data = series.map((s) => ({\n ...s.data,\n [y]: s[1],\n [XY0]: s[0],\n }));\n\n const calcOffset = (i) => {\n const offset = this.offsetBars.reduce((offset, offsetBar) => offset - (offsetBar[i] ?? 0), 0);\n const d = data[i];\n const absHeight = Math.abs(\n yScale(d[y]) - Math.min(yScale(yScale.domain()[0]), yScale(d[XY0] ?? 0)),\n );\n this.offsetBars[seriesIndex][i] =\n Number(d[y] - (d[XY0] ?? 0)) === 0 ? 0 : absHeight >= hMin ? 0 : d[y] > 0 ? hMin : -hMin;\n return [0, offset];\n };\n\n return {\n data,\n hMin,\n y0: XY0,\n x,\n r: rBar,\n groupKey: x,\n offset: calcOffset,\n };\n }\n\n getHorizontalBarProps({ x, wMin = MIN_WIDTH }) {\n const { y, r, scale } = this.asProps;\n const [xScale] = scale;\n\n const seriesIndex = this.series.findIndex((s) => s.key === x);\n const series = this.series[seriesIndex];\n\n const rBar = series.map((s, i) =>\n this.series.slice(seriesIndex + 1).some((bar) => bar[i][0] !== bar[i][1]) ? 0 : r,\n );\n\n this.offsetBars[seriesIndex] = this.offsetBars[seriesIndex] ?? [];\n const data = series.map((s) => ({\n ...s.data,\n [x]: s[1],\n [XY0]: s[0],\n }));\n\n const calcOffset = (i) => {\n const offset = this.offsetBars.reduce((offset, offsetBar) => offset - (offsetBar[i] ?? 0), 0);\n const d = data[i];\n const absWidth = Math.abs(\n xScale(d[x]) - Math.max(xScale(xScale.domain()[0]), xScale(d[XY0] ?? 0)),\n );\n this.offsetBars[seriesIndex][i] =\n Number(d[x] - (d[XY0] ?? 0)) === 0 ? 0 : absWidth >= wMin ? 0 : d[x] > 0 ? -wMin : wMin;\n return [offset, 0];\n };\n\n return {\n data,\n wMin,\n x0: XY0,\n y,\n r: rBar,\n groupKey: y,\n offset: calcOffset,\n };\n }\n\n render() {\n const Element = this.Element;\n this.series = this.getSeries();\n\n this.asProps.dataHintsHandler.establishDataType('grouped-values');\n\n this.offsetBars = [];\n\n return <Element aria-hidden render='g' series={this.series} />;\n }\n}\n\nconst StackBar = createElement(StackBarRoot, {\n Bar,\n HorizontalBar,\n});\n\nexport default StackBar;\n"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"StackedArea.js","names":["React","stack","d3Stack","Component","getOriginChildren","createElement","Area","DEFAULT_INSTANCE","Symbol","Y0","StackedAreaRoot","_Component","_inherits","_super","_createSuper","_classCallCheck","apply","arguments","_createClass","key","value","getSeries","_this$asProps","asProps","Children","data","keys","toArray","reduce","acc","child","isValidElement","type","StackedArea","props","hide","push","y","reverse","getAreaProps","_ref","x","series","find","s","map","_objectSpread2","_objectSpread","_defineProperty","y0","render","Element"],"sources":["../../src/StackedArea.jsx"],"sourcesContent":["import React from 'react';\nimport { stack as d3Stack } from 'd3-shape';\nimport { Component } from '@semcore/core';\nimport getOriginChildren from '@semcore/utils/lib/getOriginChildren';\nimport createElement from './createElement';\nimport Area from './Area';\n\nconst DEFAULT_INSTANCE = Symbol('DEFAULT_INSTANCE');\nconst Y0 = Symbol('Y0');\n\nclass StackedAreaRoot extends Component {\n static displayName = 'StackedArea';\n\n static defaultProps = () => {\n const stack = d3Stack();\n stack[DEFAULT_INSTANCE] = true;\n return { stack };\n };\n\n getSeries() {\n const { Children, data, stack } = this.asProps;\n\n if (stack[DEFAULT_INSTANCE]) {\n const keys = React.Children.toArray(getOriginChildren(Children)).reduce((acc, child) => {\n if (React.isValidElement(child) && child.type === StackedArea.Area && !child.props.hide) {\n acc.push(child.props.y);\n }\n return acc;\n }, []);\n stack.keys(keys.reverse());\n }\n\n return stack(data);\n }\n\n getAreaProps({ y }) {\n const { x } = this.asProps;\n // or [] if hide area\n const series = this.series.find((s) => s.key === y) || [];\n return {\n data: series.map((s) => ({\n ...s.data,\n // if null is passed in the data, then we pass it, because d3 null leads to 0\n [y]: s.data[y] === null ? null : s[1],\n [Y0]: s[0],\n })),\n y0: Y0,\n x,\n };\n }\n\n render() {\n const Element = this.Element;\n this.series = this.getSeries();\n return <Element aria-hidden render
|
|
1
|
+
{"version":3,"file":"StackedArea.js","names":["React","stack","d3Stack","Component","getOriginChildren","createElement","Area","DEFAULT_INSTANCE","Symbol","Y0","StackedAreaRoot","_Component","_inherits","_super","_createSuper","_classCallCheck","apply","arguments","_createClass","key","value","getSeries","_this$asProps","asProps","Children","data","keys","toArray","reduce","acc","child","isValidElement","type","StackedArea","props","hide","push","y","reverse","getAreaProps","_ref","x","series","find","s","map","_objectSpread2","_objectSpread","_defineProperty","y0","render","Element"],"sources":["../../src/StackedArea.jsx"],"sourcesContent":["import React from 'react';\nimport { stack as d3Stack } from 'd3-shape';\nimport { Component } from '@semcore/core';\nimport getOriginChildren from '@semcore/utils/lib/getOriginChildren';\nimport createElement from './createElement';\nimport Area from './Area';\n\nconst DEFAULT_INSTANCE = Symbol('DEFAULT_INSTANCE');\nconst Y0 = Symbol('Y0');\n\nclass StackedAreaRoot extends Component {\n static displayName = 'StackedArea';\n\n static defaultProps = () => {\n const stack = d3Stack();\n stack[DEFAULT_INSTANCE] = true;\n return { stack };\n };\n\n getSeries() {\n const { Children, data, stack } = this.asProps;\n\n if (stack[DEFAULT_INSTANCE]) {\n const keys = React.Children.toArray(getOriginChildren(Children)).reduce((acc, child) => {\n if (React.isValidElement(child) && child.type === StackedArea.Area && !child.props.hide) {\n acc.push(child.props.y);\n }\n return acc;\n }, []);\n stack.keys(keys.reverse());\n }\n\n return stack(data);\n }\n\n getAreaProps({ y }) {\n const { x } = this.asProps;\n // or [] if hide area\n const series = this.series.find((s) => s.key === y) || [];\n return {\n data: series.map((s) => ({\n ...s.data,\n // if null is passed in the data, then we pass it, because d3 null leads to 0\n [y]: s.data[y] === null ? null : s[1],\n [Y0]: s[0],\n })),\n y0: Y0,\n x,\n };\n }\n\n render() {\n const Element = this.Element;\n this.series = this.getSeries();\n return <Element aria-hidden render='g' series={this.series} />;\n }\n}\n\nconst StackedArea = createElement(StackedAreaRoot, { Area });\n\nexport default StackedArea;\n"],"mappings":"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"}
|