@progress/kendo-react-charts
Version:
React Chart renders a wide range of high-quality data visualizations. KendoReact Charts package
52 lines (51 loc) • 1.72 kB
JavaScript
/**
* @license
*-------------------------------------------------------------------------------------------
* Copyright © 2025 Progress Software Corporation. All rights reserved.
* Licensed under commercial license. See LICENSE.md in the package root for more information
*-------------------------------------------------------------------------------------------
*/
import * as o from "react";
import { InstanceObserver as u } from "@progress/kendo-charts";
import { ChartContext as m } from "./ChartContext.mjs";
const c = class c extends o.Component {
constructor(t) {
super(t), this.state = {
donutCenterStyles: null
}, this.chartObserver = new u(this, {
render: "onRender"
});
}
componentDidMount() {
var t;
(t = this.context) == null || t.observersStore.dispatch({
type: "add",
payload: this.chartObserver
});
}
render() {
const { render: t } = this.props, { donutCenterStyles: e } = this.state;
let r = null;
return t && e && (r = /* @__PURE__ */ o.createElement("div", { className: "k-chart-donut-center", style: e }, /* @__PURE__ */ o.createElement(t, null))), r;
}
onRender(t) {
var d;
const e = (d = this.context) == null ? void 0 : d.optionsStore.getState().series, r = Array.isArray(e) ? e[0] : null, i = t.sender._plotArea.charts;
if (!r || r.type !== "donut" || i[0].points.length === 0)
return;
const s = i[0].points[0].sector, n = s.innerRadius, l = s.center.y - n, p = s.center.x - n, a = n * 2;
this.setState({
donutCenterStyles: {
height: a,
left: p,
top: l,
width: a
}
});
}
};
c.contextType = m;
let h = c;
export {
h as DonutCenter
};