scichart-angular
Version:
Angular wrapper for SciChart JS
32 lines • 4.58 kB
JavaScript
import { generateGuid, chartBuilder } from "scichart";
export const createChartRoot = () => {
// check if SSR
if (typeof window === "undefined") {
return null;
}
const internalRootElement = document.createElement("div");
// generate or provide a unique root element id to avoid chart rendering collisions
internalRootElement.id = `chart-root-${generateGuid()}`;
internalRootElement.style.width = "100%";
internalRootElement.style.height = "100%";
return internalRootElement;
};
export function createChartFromConfig(config) {
return async (chartRoot) => {
// Potentially should return 2D, 3D, or Pie Chart
const chart = (await chartBuilder.buildChart(chartRoot, config));
if ("sciChartSurface" in chart) {
// 2D Chart
return { sciChartSurface: chart.sciChartSurface };
}
else if ("sciChart3DSurface" in chart) {
// 3D Chart
return { sciChartSurface: chart.sciChart3DSurface };
}
else {
// Pie Chart
return { sciChartSurface: chart };
}
};
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9zY2ljaGFydC1hbmd1bGFyL3NyYy9saWIvdXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBNEMsWUFBWSxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBR2hHLE1BQU0sQ0FBQyxNQUFNLGVBQWUsR0FBRyxHQUFHLEVBQUU7SUFDaEMsZUFBZTtJQUNmLElBQUksT0FBTyxNQUFNLEtBQUssV0FBVyxFQUFFLENBQUM7UUFDaEMsT0FBTyxJQUFJLENBQUM7SUFDaEIsQ0FBQztJQUVELE1BQU0sbUJBQW1CLEdBQUcsUUFBUSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQW1CLENBQUM7SUFDNUUsbUZBQW1GO0lBQ25GLG1CQUFtQixDQUFDLEVBQUUsR0FBRyxjQUFjLFlBQVksRUFBRSxFQUFFLENBQUM7SUFDeEQsbUJBQW1CLENBQUMsS0FBSyxDQUFDLEtBQUssR0FBRyxNQUFNLENBQUM7SUFDekMsbUJBQW1CLENBQUMsS0FBSyxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUM7SUFDMUMsT0FBTyxtQkFBbUIsQ0FBQztBQUMvQixDQUFDLENBQUM7QUFFRixNQUFNLFVBQVUscUJBQXFCLENBQXdDLE1BQW1DO0lBQzVHLE9BQU8sS0FBSyxFQUFFLFNBQWtDLEVBQUUsRUFBRTtRQUNoRCxpREFBaUQ7UUFDakQsTUFBTSxLQUFLLEdBQUcsQ0FBQyxNQUFNLFlBQVksQ0FBQyxVQUFVLENBQUMsU0FBUyxFQUFFLE1BQU0sQ0FBQyxDQUFRLENBQUM7UUFDeEUsSUFBSSxpQkFBaUIsSUFBSSxLQUFLLEVBQUUsQ0FBQztZQUM3QixXQUFXO1lBQ1gsT0FBTyxFQUFFLGVBQWUsRUFBRSxLQUFLLENBQUMsZUFBMkIsRUFBRSxDQUFDO1FBQ2xFLENBQUM7YUFBTSxJQUFJLG1CQUFtQixJQUFJLEtBQUssRUFBRSxDQUFDO1lBQ3RDLFdBQVc7WUFDWCxPQUFPLEVBQUUsZUFBZSxFQUFFLEtBQUssQ0FBQyxpQkFBNkIsRUFBRSxDQUFDO1FBQ3BFLENBQUM7YUFBTSxDQUFDO1lBQ0osWUFBWTtZQUNaLE9BQU8sRUFBRSxlQUFlLEVBQUUsS0FBaUIsRUFBRSxDQUFDO1FBQ2xELENBQUM7SUFDTCxDQUFDLENBQUM7QUFDTixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgZ2VuZXJhdGVHdWlkLCBJU2NpQ2hhcnRTdXJmYWNlQmFzZSwgVFN1cmZhY2VEZWZpbml0aW9uLCBjaGFydEJ1aWxkZXIgfSBmcm9tIFwic2NpY2hhcnRcIjtcclxuaW1wb3J0IHsgSUluaXRSZXN1bHQgfSBmcm9tIFwiLi90eXBlc1wiO1xyXG5cclxuZXhwb3J0IGNvbnN0IGNyZWF0ZUNoYXJ0Um9vdCA9ICgpID0+IHtcclxuICAgIC8vIGNoZWNrIGlmIFNTUlxyXG4gICAgaWYgKHR5cGVvZiB3aW5kb3cgPT09IFwidW5kZWZpbmVkXCIpIHtcclxuICAgICAgICByZXR1cm4gbnVsbDtcclxuICAgIH1cclxuXHJcbiAgICBjb25zdCBpbnRlcm5hbFJvb3RFbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudChcImRpdlwiKSBhcyBIVE1MRGl2RWxlbWVudDtcclxuICAgIC8vIGdlbmVyYXRlIG9yIHByb3ZpZGUgYSB1bmlxdWUgcm9vdCBlbGVtZW50IGlkIHRvIGF2b2lkIGNoYXJ0IHJlbmRlcmluZyBjb2xsaXNpb25zXHJcbiAgICBpbnRlcm5hbFJvb3RFbGVtZW50LmlkID0gYGNoYXJ0LXJvb3QtJHtnZW5lcmF0ZUd1aWQoKX1gO1xyXG4gICAgaW50ZXJuYWxSb290RWxlbWVudC5zdHlsZS53aWR0aCA9IFwiMTAwJVwiO1xyXG4gICAgaW50ZXJuYWxSb290RWxlbWVudC5zdHlsZS5oZWlnaHQgPSBcIjEwMCVcIjtcclxuICAgIHJldHVybiBpbnRlcm5hbFJvb3RFbGVtZW50O1xyXG59O1xyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZUNoYXJ0RnJvbUNvbmZpZzxUU3VyZmFjZSBleHRlbmRzIElTY2lDaGFydFN1cmZhY2VCYXNlPihjb25maWc6IHN0cmluZyB8IFRTdXJmYWNlRGVmaW5pdGlvbikge1xyXG4gICAgcmV0dXJuIGFzeW5jIChjaGFydFJvb3Q6IHN0cmluZyB8IEhUTUxEaXZFbGVtZW50KSA9PiB7XHJcbiAgICAgICAgLy8gUG90ZW50aWFsbHkgc2hvdWxkIHJldHVybiAyRCwgM0QsIG9yIFBpZSBDaGFydFxyXG4gICAgICAgIGNvbnN0IGNoYXJ0ID0gKGF3YWl0IGNoYXJ0QnVpbGRlci5idWlsZENoYXJ0KGNoYXJ0Um9vdCwgY29uZmlnKSkgYXMgYW55O1xyXG4gICAgICAgIGlmIChcInNjaUNoYXJ0U3VyZmFjZVwiIGluIGNoYXJ0KSB7XHJcbiAgICAgICAgICAgIC8vIDJEIENoYXJ0XHJcbiAgICAgICAgICAgIHJldHVybiB7IHNjaUNoYXJ0U3VyZmFjZTogY2hhcnQuc2NpQ2hhcnRTdXJmYWNlIGFzIFRTdXJmYWNlIH07XHJcbiAgICAgICAgfSBlbHNlIGlmIChcInNjaUNoYXJ0M0RTdXJmYWNlXCIgaW4gY2hhcnQpIHtcclxuICAgICAgICAgICAgLy8gM0QgQ2hhcnRcclxuICAgICAgICAgICAgcmV0dXJuIHsgc2NpQ2hhcnRTdXJmYWNlOiBjaGFydC5zY2lDaGFydDNEU3VyZmFjZSBhcyBUU3VyZmFjZSB9O1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIC8vIFBpZSBDaGFydFxyXG4gICAgICAgICAgICByZXR1cm4geyBzY2lDaGFydFN1cmZhY2U6IGNoYXJ0IGFzIFRTdXJmYWNlIH07XHJcbiAgICAgICAgfVxyXG4gICAgfTtcclxufVxyXG4iXX0=