forked from MapComplete/MapComplete
Refactoring: move all code files into a src directory
This commit is contained in:
parent
de99f56ca8
commit
e75d2789d2
389 changed files with 0 additions and 12 deletions
38
src/UI/Base/ChartJs.ts
Normal file
38
src/UI/Base/ChartJs.ts
Normal file
|
|
@ -0,0 +1,38 @@
|
|||
import BaseUIElement from "../BaseUIElement"
|
||||
import { Chart, ChartConfiguration, ChartType, DefaultDataPoint, registerables } from "chart.js"
|
||||
Chart?.register(...(registerables ?? []))
|
||||
|
||||
export default class ChartJs<
|
||||
TType extends ChartType = ChartType,
|
||||
TData = DefaultDataPoint<TType>,
|
||||
TLabel = unknown
|
||||
> extends BaseUIElement {
|
||||
private readonly _config: ChartConfiguration<TType, TData, TLabel>
|
||||
|
||||
constructor(config: ChartConfiguration<TType, TData, TLabel>) {
|
||||
super()
|
||||
this._config = config
|
||||
}
|
||||
|
||||
protected InnerConstructElement(): HTMLElement {
|
||||
const canvas = document.createElement("canvas")
|
||||
// A bit exceptional: we apply the styles before giving them to 'chartJS'
|
||||
if (this.style !== undefined) {
|
||||
canvas.style.cssText = this.style
|
||||
}
|
||||
if (this.clss?.size > 0) {
|
||||
try {
|
||||
canvas.classList.add(...Array.from(this.clss))
|
||||
} catch (e) {
|
||||
console.error(
|
||||
"Invalid class name detected in:",
|
||||
Array.from(this.clss).join(" "),
|
||||
"\nErr msg is ",
|
||||
e
|
||||
)
|
||||
}
|
||||
}
|
||||
new Chart(canvas, this._config)
|
||||
return canvas
|
||||
}
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue