@adaptabletools/adaptable
Version:
Powerful AG Grid extension which provides advanced, cutting-edge functionality to meet all DataGrid requirements
84 lines (83 loc) • 3.39 kB
JavaScript
import { ApiBase } from '../Implementation/ApiBase';
import { isChartNameTaken } from '../../Utilities/Helpers/ChartHelper';
export class ChartingInternalApi extends ApiBase {
getContainerElement(chartContainer) {
const element = typeof chartContainer?.element === 'string'
? document.querySelector(chartContainer.element)
: chartContainer?.element;
if (!element && typeof chartContainer?.element === 'string') {
this.getAdatableLogger().consoleLogByMessageType(`Chart container element not found: ${chartContainer.element}`, 'Error');
return null;
}
return element;
}
getContainerElemetnByName(containerName) {
const chartContainers = this.getChartingOptions().chartContainers ?? [];
const chartContainer = chartContainers.find((container) => container.name === containerName);
return this.getContainerElement(chartContainer);
}
getUniqueChartName() {
let index = 1;
let candidate = `Chart ${index}`;
while (isChartNameTaken(this.getAdaptableApi(), candidate)) {
index += 1;
candidate = `Chart ${index}`;
}
return candidate;
}
isExternalChartOpened(chartDefinition) {
const externalChartingOptions = this.getChartingOptions().externalChartingOptions;
if (!externalChartingOptions?.isChartOpened) {
return false;
}
if (!chartDefinition) {
return false;
}
return externalChartingOptions.isChartOpened({
chartDefinition: chartDefinition,
...this.getAdaptableInternalApi().buildBaseContext(),
});
}
onHideExternalChart(chartDefinition) {
const externalChartingOptions = this.getChartingOptions().externalChartingOptions;
if (!externalChartingOptions?.onHideChart) {
return;
}
externalChartingOptions.onHideChart({
chartDefinition: chartDefinition,
...this.getAdaptableInternalApi().buildBaseContext(),
});
}
onShowExternalChart(chartDefinition, container) {
const externalChartingOptions = this.getChartingOptions().externalChartingOptions;
if (!externalChartingOptions?.onShowChart) {
return;
}
externalChartingOptions.onShowChart({
chartDefinition: chartDefinition,
container: container,
...this.getAdaptableInternalApi().buildBaseContext(),
});
}
onPreviewExternalChart(chartDefinition, container) {
const externalChartingOptions = this.getChartingOptions().externalChartingOptions;
if (!externalChartingOptions?.onPreviewChart) {
return;
}
return externalChartingOptions.onPreviewChart({
chartDefinition: chartDefinition,
container: container,
...this.getAdaptableInternalApi().buildBaseContext(),
});
}
onDeleteExternalChart(chartDefinition) {
const externalChartingOptions = this.getChartingOptions().externalChartingOptions;
if (!externalChartingOptions?.onDeleteChart) {
return;
}
externalChartingOptions.onDeleteChart({
chartDefinition: chartDefinition,
...this.getAdaptableInternalApi().buildBaseContext(),
});
}
}