scichart-angular
Version:
Angular wrapper for SciChart JS
1 lines • 13.9 kB
Source Map (JSON)
{"version":3,"file":"scichart-angular.mjs","sources":["../../../projects/scichart-angular/src/lib/scichart-angular.service.ts","../../../projects/scichart-angular/src/lib/scichart-fallback.component.ts","../../../projects/scichart-angular/src/lib/utils.ts","../../../projects/scichart-angular/src/lib/constants.ts","../../../projects/scichart-angular/src/lib/scichart-angular.component.ts","../../../projects/scichart-angular/src/public-api.ts","../../../projects/scichart-angular/src/scichart-angular.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ScichartAngularService {\r\n\r\n constructor() { }\r\n}\r\n","import { Component, ElementRef, ViewChild } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport {DefaultSciChartLoader, SciChartSurfaceBase} from \"scichart\";\r\n\r\n@Component({\r\n selector: 'scichart-fallback',\r\n standalone: true,\r\n imports: [CommonModule],\r\n template: `\r\n <div #rootRef [ngStyle]=\"style\"></div>\r\n `,\r\n})\r\nexport class ScichartFallbackComponent {\r\n title = 'scichart-fallback';\r\n\r\n @ViewChild('rootRef') rootRef!: ElementRef<HTMLDivElement>;\r\n\r\n public style: Object = {\r\n position: \"absolute\",\r\n height: \"100%\",\r\n width: \"100%\",\r\n top: 0,\r\n left: 0,\r\n textAlign: \"center\",\r\n background: SciChartSurfaceBase.DEFAULT_THEME.sciChartBackground\r\n };\r\n\r\n ngAfterViewInit(): void {\r\n const loader = new DefaultSciChartLoader();\r\n const loaderDiv = loader.addChartLoader(this.rootRef.nativeElement, SciChartSurfaceBase.DEFAULT_THEME);\r\n }\r\n}\r\n","import { generateGuid, ISciChartSurfaceBase, TSurfaceDefinition, chartBuilder } from \"scichart\";\r\nimport { IInitResult } from \"./types\";\r\n\r\nexport const createChartRoot = () => {\r\n // check if SSR\r\n if (typeof window === \"undefined\") {\r\n return null;\r\n }\r\n\r\n const internalRootElement = document.createElement(\"div\") as HTMLDivElement;\r\n // generate or provide a unique root element id to avoid chart rendering collisions\r\n internalRootElement.id = `chart-root-${generateGuid()}`;\r\n internalRootElement.style.width = \"100%\";\r\n internalRootElement.style.height = \"100%\";\r\n return internalRootElement;\r\n};\r\n\r\nexport function createChartFromConfig<TSurface extends ISciChartSurfaceBase>(config: string | TSurfaceDefinition) {\r\n return async (chartRoot: string | HTMLDivElement) => {\r\n // Potentially should return 2D, 3D, or Pie Chart\r\n const chart = (await chartBuilder.buildChart(chartRoot, config)) as any;\r\n if (\"sciChartSurface\" in chart) {\r\n // 2D Chart\r\n return { sciChartSurface: chart.sciChartSurface as TSurface };\r\n } else if (\"sciChart3DSurface\" in chart) {\r\n // 3D Chart\r\n return { sciChartSurface: chart.sciChart3DSurface as TSurface };\r\n } else {\r\n // Pie Chart\r\n return { sciChartSurface: chart as TSurface };\r\n }\r\n };\r\n}\r\n","export const wrongInitResultMessage = `\"initChart\" function should resolve to an object with \"sciChartSurface\" property ({ sciChartSurface })`;\r\nexport const conflictingConfigsMessage = `Only one of \"initChart\" or \"config\" props is required!`;\r\n","import { Component, ElementRef, EventEmitter, Input, Output, ViewChild} from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport {\r\n ISciChartSurfaceBase,\r\n} from \"scichart\";\r\nimport { IInitResult, TInitFunction } from \"./types\";\r\nimport { ScichartFallbackComponent } from './scichart-fallback.component';\r\nimport { createChartFromConfig, createChartRoot } from \"./utils\";\r\nimport { wrongInitResultMessage } from './constants';\r\n\r\n@Component({\r\n selector: 'scichart-angular',\r\n standalone: true,\r\n imports: [ CommonModule, ScichartFallbackComponent ],\r\n template: `\r\n <div style=\"position: relative; height: 100%; width: 100%;\">\r\n <div #innerContainerRef [ngStyle]=\"innerContainerStylesMerged\"></div>\r\n <ng-content *ngIf=\"isInitialized\"></ng-content>\r\n <div *ngIf=\"!isInitialized\" #fallbackContainer>\r\n <ng-content select=\"[fallback]\"></ng-content>\r\n </div>\r\n <scichart-fallback *ngIf=\"!hasCustomFallback && !isInitialized\"></scichart-fallback>\r\n </div>\r\n `,\r\n styles: ``\r\n})\r\nexport class ScichartAngularComponent<\r\n TSurface extends ISciChartSurfaceBase = ISciChartSurfaceBase,\r\n TInitResult extends IInitResult<TSurface> = IInitResult<TSurface>\r\n> {\r\n title = 'lib-scichart-angular';\r\n\r\n @ViewChild('innerContainerRef') innerContainerRef!: ElementRef<HTMLDivElement>;\r\n @ViewChild('fallbackContainer') fallbackContainer!: ElementRef<HTMLDivElement>;\r\n\r\n @Input() initChart!: TInitFunction<TSurface, TInitResult>;\r\n @Input() config: any = ''; //TODO: type the config\r\n @Input() innerContainerStyles: Object | null = null;\r\n\r\n @Output() onInit: EventEmitter<TInitResult> = new EventEmitter<TInitResult>();\r\n @Output() onDelete: EventEmitter<TInitResult> = new EventEmitter<TInitResult>();\r\n\r\n public innerContainerStylesMerged: Object = {\r\n height: '100%',\r\n width: '100%',\r\n };\r\n public isInitialized: boolean = false;\r\n public hasCustomFallback: boolean = false;\r\n private isCancelled: boolean = false;\r\n private chartRoot = createChartRoot();\r\n\r\n private sciChartSurfaceRef: TSurface | null = null;\r\n private initResultRef: TInitResult | null = null;\r\n\r\n ngOnInit(): void {\r\n if (this.innerContainerStyles) {\r\n this.innerContainerStylesMerged = { ...this.innerContainerStylesMerged, ...this.innerContainerStyles };\r\n }\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n const rootElement = this.innerContainerRef.nativeElement;\r\n rootElement!.appendChild(this.chartRoot as Node);\r\n\r\n const fallbackElement = this.fallbackContainer.nativeElement;\r\n if (fallbackElement.childNodes.length > 0) {\r\n this.hasCustomFallback = true;\r\n }\r\n\r\n const initializationFunction = this.initChart\r\n ? (this.initChart)\r\n : createChartFromConfig<TSurface>(this.config) as TInitFunction<TSurface, TInitResult>;\r\n\r\n const runInit = async (): Promise<TInitResult> =>\r\n new Promise((resolve, reject) =>\r\n initializationFunction(this.chartRoot as HTMLDivElement)\r\n .then((initResult: TInitResult) => {\r\n if (!initResult.sciChartSurface) {\r\n throw new Error(wrongInitResultMessage);\r\n }\r\n this.sciChartSurfaceRef = initResult.sciChartSurface as TSurface;\r\n this.initResultRef = initResult as TInitResult;\r\n\r\n if (!this.isCancelled) {\r\n this.isInitialized = true;\r\n }\r\n\r\n resolve(initResult);\r\n })\r\n .catch(reject)\r\n );\r\n\r\n runInit().then(initResult => {\r\n if (this.onInit && this.isInitialized) {\r\n this.onInit.emit(initResult);\r\n }\r\n });\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.isCancelled = true;\r\n\r\n if (this.onDelete && this.isInitialized) {\r\n this.onDelete.emit(this.initResultRef as TInitResult);\r\n }\r\n\r\n this.sciChartSurfaceRef?.delete();\r\n }\r\n}\r\n","/*\r\n * Public API Surface of scichart-angular\r\n */\r\n\r\nexport * from './lib/scichart-angular.service';\r\nexport * from './lib/scichart-angular.component';\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}