@amcharts/amcharts5
Version:
amCharts 5
111 lines • 3.78 kB
JavaScript
import { Container } from "../../core/render/Container";
import { Button } from "../../core/render/Button";
import { Graphics } from "../../core/render/Graphics";
/**
* Creates a button set for [[StockChart]] panels (move up/down, close, etc.)
*
* @see {@link https://www.amcharts.com/docs/v5/charts/stock/panels/#Panel_controls} for more info
*/
export class PanelControls extends Container {
constructor() {
super(...arguments);
/**
* A [[Button]] which moves panel up.
*
* @default Button.new()
*/
Object.defineProperty(this, "upButton", {
enumerable: true,
configurable: true,
writable: true,
value: this.children.push(Button.new(this._root, {
themeTags: ["up", "control", "panel"],
icon: Graphics.new(this._root, {
themeTags: ["icon", "button"]
})
}))
});
/**
* A [[Button]] which moves panel down.
*
* @default Button.new()
*/
Object.defineProperty(this, "downButton", {
enumerable: true,
configurable: true,
writable: true,
value: this.children.push(Button.new(this._root, {
themeTags: ["down", "control", "panel"],
icon: Graphics.new(this._root, {
themeTags: ["icon", "button"]
})
}))
});
/**
* A [[Button]] which expands/collapses the panel.
*
* @default Button.new()
*/
Object.defineProperty(this, "expandButton", {
enumerable: true,
configurable: true,
writable: true,
value: this.children.push(Button.new(this._root, {
themeTags: ["expand", "control", "panel"],
icon: Graphics.new(this._root, {
themeTags: ["icon", "button"]
})
}))
});
/**
* A [[Button]] which closes the panel.
*
* @default Button.new()
*/
Object.defineProperty(this, "closeButton", {
enumerable: true,
configurable: true,
writable: true,
value: this.children.push(Button.new(this._root, {
themeTags: ["close", "control", "panel"],
icon: Graphics.new(this._root, {
themeTags: ["icon", "button"]
})
}))
});
}
_afterNew() {
super._afterNew();
const upButton = this.upButton;
const downButton = this.downButton;
downButton.events.on("click", () => {
const stockPanel = this.get("stockPanel");
stockPanel.moveDown();
});
upButton.events.on("click", () => {
const stockPanel = this.get("stockPanel");
stockPanel.moveUp();
});
this.closeButton.events.on("click", () => {
const stockPanel = this.get("stockPanel");
stockPanel.close();
});
this.expandButton.events.on("click", () => {
const stockPanel = this.get("stockPanel");
stockPanel.expand();
});
}
}
Object.defineProperty(PanelControls, "className", {
enumerable: true,
configurable: true,
writable: true,
value: "PanelControls"
});
Object.defineProperty(PanelControls, "classNames", {
enumerable: true,
configurable: true,
writable: true,
value: Container.classNames.concat([PanelControls.className])
});
//# sourceMappingURL=PanelControls.js.map