@amcharts/amcharts5
Version:
amCharts 5
55 lines • 1.94 kB
JavaScript
import { Container } from "../../core/render/Container";
/**
* Base class for hierarchy nodes.
*/
export class HierarchyNode extends Container {
_afterNew() {
super._afterNew();
this.states.create("disabled", {});
this.states.create("hover", {});
this.states.create("hoverDisabled", {});
this.on("disabled", () => {
const dataItem = this.dataItem;
if (!dataItem.get("children")) {
this.set("disabled", true);
return;
}
const disabled = this.get("disabled");
const series = this.series;
if (dataItem && series) {
if (dataItem.get("disabled") != disabled) {
if (disabled) {
series.disableDataItem(dataItem);
}
else {
series.enableDataItem(dataItem, series.get("downDepth", 1), 0);
}
}
}
});
}
_changed() {
super._changed();
if (this.isDirty("toggleKey")) {
const toggleKey = this.get("toggleKey");
if (toggleKey == "disabled") {
this._clickDisposer = this.events.on("click", () => {
if (!this._isDragging) {
let series = this.series;
if (series) {
series.selectDataItem(this.dataItem);
}
}
});
}
else {
if (this._clickDisposer) {
this._clickDisposer.dispose();
}
}
}
}
}
HierarchyNode.className = "HierarchyNode";
HierarchyNode.classNames = Container.classNames.concat([HierarchyNode.className]);
//# sourceMappingURL=HierarchyNode.js.map