@operato/scene-scichart 9.0.0-beta.7 → 9.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"file":"scichart-builder.js","sourceRoot":"","sources":["../../src/charts/scichart-builder.ts"],"names":[],"mappings":"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","sourcesContent":["import { TinyColor } from '@ctrl/tinycolor'\nimport {\n SciChartSurface,\n SciChartJSLightTheme,\n SciChartJSDarkv2Theme,\n XyDataSeries,\n FastLineRenderableSeries,\n SplineLineRenderableSeries,\n FastColumnRenderableSeries,\n StackedColumnRenderableSeries,\n StackedMountainRenderableSeries,\n StackedColumnCollection,\n StackedMountainCollection,\n NumericAxis,\n DateTimeNumericAxis,\n EAutoRange,\n EAxisAlignment,\n EExecuteOn,\n ECoordinateMode,\n EHorizontalAnchorPoint,\n EVerticalAnchorPoint,\n NumberRange,\n MouseWheelZoomModifier,\n RubberBandXyZoomModifier,\n ZoomPanModifier,\n ZoomExtentsModifier,\n RolloverModifier,\n NumericLabelProvider,\n SmartDateLabelProvider,\n EllipsePointMarker,\n SquarePointMarker,\n TrianglePointMarker,\n CrossPointMarker,\n XPointMarker,\n WaveAnimation,\n LegendModifier,\n ELegendPlacement,\n EXyDirection,\n XAxisDragModifier,\n YAxisDragModifier,\n TextAnnotation,\n LineAnnotation,\n BoxAnnotation,\n HorizontalLineAnnotation,\n VerticalLineAnnotation,\n OverviewRangeSelectionModifier,\n ENumericFormat,\n XySeriesInfo\n} from 'scichart'\nimport { AxisSynchroniser } from './axis-synchronizer.js'\n\nSciChartSurface.configure({\n dataUrl: `/node_modules/scichart/_wasm/scichart2d.data`,\n wasmUrl: `/node_modules/scichart/_wasm/scichart2d.wasm`\n})\n\nvar licenseInitialized: boolean = false\n\n// 커뮤니티 라이선스 적용 함수\nfunction useCommunityLicense() {\n SciChartSurface.UseCommunityLicense()\n}\n\n// SciChart 라이선스 설정 함수\nasync function fetchSciChartLicense() {\n try {\n const response = await fetch('/frontend-config/scichart')\n if (response.ok) {\n const { licenseKey = '' } = (await response.json()) || {}\n\n if (licenseKey) {\n SciChartSurface.setRuntimeLicenseKey(licenseKey)\n console.log('SciChart license key setting complete')\n } else {\n console.warn('License key not found. Using community version.')\n useCommunityLicense()\n }\n } else {\n console.warn('License server response not found. Using community version.')\n useCommunityLicense()\n }\n } catch (error) {\n console.error('Error fetching license. Using community version:', error)\n useCommunityLicense()\n }\n}\n\n// SciChart 초기화 함수\nasync function initializeSciChartLicense() {\n if (!licenseInitialized) {\n if (window.location.hostname === 'localhost') {\n console.warn('Localhost detected. Using SciChart community license.')\n useCommunityLicense() // localhost인 경우 커뮤니티 라이선스 적용\n } else {\n await fetchSciChartLicense() // 서버에서 라이선스 키 가져오기\n }\n\n licenseInitialized = true\n }\n}\n\nexport const DEFAULT_COLOR = '#FF6600'\nconst DEFAULT_STROKE = '#000000'\nconst POINT_MARKER_SIZE = 10\nconst STROKE_THICKNESS = 2\nconst ANIMATION_DURATION = 1000\n\nfunction getLocalTimeOffset() {\n const now = new Date()\n return now.getTimezoneOffset() * -60\n}\n\nfunction getBaseColorFromTheme(theme?: 'light' | 'dark' | 'auto') {\n return new TinyColor(theme == 'dark' ? '#fff' : '#000')\n}\n\nfunction getThemeFromBrowser() {\n return window.matchMedia && window.matchMedia('(prefers-color-scheme: dark)').matches ? 'dark' : 'light'\n}\n\nexport function convertColor(color: string | string[] | undefined, defaultColor?: string) {\n const tinyColor = new TinyColor(color as string)\n return tinyColor.toHex8String() || defaultColor\n}\n\nexport function calculatePrecision(format: string | number = '') {\n const formatString = format.toString()\n\n if (formatString.indexOf('.') !== -1) {\n return formatString.split('.')[1].length\n }\n\n return 0\n}\n\nfunction createPointMarker(wasmContext: any, dataset: any, color: string = DEFAULT_COLOR) {\n const { pointStyle, pointRadius = POINT_MARKER_SIZE } = dataset || {}\n\n if (!pointStyle) {\n return\n }\n\n const pointMarkerOptions = {\n width: pointRadius,\n height: pointRadius,\n strokeThickness: STROKE_THICKNESS,\n fill: color,\n stroke: DEFAULT_STROKE\n }\n\n switch (pointStyle) {\n case 'triangle':\n return new TrianglePointMarker(wasmContext, pointMarkerOptions)\n case 'rect':\n return new SquarePointMarker(wasmContext, pointMarkerOptions)\n case 'cross':\n return new CrossPointMarker(wasmContext, pointMarkerOptions)\n case 'crossRot':\n return new XPointMarker(wasmContext, pointMarkerOptions)\n default:\n return new EllipsePointMarker(wasmContext, pointMarkerOptions)\n }\n}\n\nfunction createAxis(\n wasmContext: any,\n axis: any,\n index: number,\n isXAxis: boolean,\n fontColor: string,\n fontFamily?: string,\n fontSize?: number,\n precision?: number,\n options?: any\n) {\n const { axisTitle, ticks } = axis\n const {\n autoMax,\n autoMin,\n min,\n max,\n stepSize,\n beginAtZero,\n color = fontColor,\n textStrokeColor = fontColor,\n display = false\n } = ticks || {}\n\n const axisOptions = {\n axisTitle,\n autoRange: autoMin || autoMax ? EAutoRange.Always : EAutoRange.Once,\n axisAlignment: isXAxis ? EAxisAlignment.Bottom : index === 0 ? EAxisAlignment.Left : EAxisAlignment.Right,\n visibleRange: min !== undefined && max !== undefined ? new NumberRange(min, max) : undefined,\n majorDelta: stepSize,\n growBy: beginAtZero ? new NumberRange(0.1, 0.1) : undefined,\n labelStyle: {\n fontFamily,\n fontSize,\n color\n },\n axisTitleStyle: {\n fontFamily,\n fontSize,\n color: textStrokeColor\n },\n ...options,\n drawLabels: display\n }\n\n const labelProvider = isXAxis\n ? new SmartDateLabelProvider({\n showWiderDateOnFirstLabel: true,\n showYearOnWiderDate: false,\n dateOffset: getLocalTimeOffset()\n })\n : new NumericLabelProvider()\n\n if (isXAxis) {\n labelProvider!.cursorNumericFormat = ENumericFormat.Date_HHMMSS\n } else {\n labelProvider!.numericFormat = ENumericFormat.Decimal\n labelProvider!.precision = precision || calculatePrecision(stepSize || 0.1)\n labelProvider!.cursorNumericFormat = ENumericFormat.NoFormat\n }\n\n return isXAxis\n ? new DateTimeNumericAxis(wasmContext, {\n ...axisOptions,\n labelProvider\n })\n : new NumericAxis(wasmContext, {\n ...axisOptions,\n id: index !== 0 ? `yAxis${index}` : undefined,\n labelProvider\n })\n}\n\nfunction createSeries(\n wasmContext: any,\n dataset: any,\n index: number,\n stacked: boolean,\n animation: boolean,\n yAxisId: string | undefined\n) {\n const dataSeries = new XyDataSeries(wasmContext, {\n dataSeriesName: dataset.label,\n containsNaN: false\n })\n\n const stackGroupId = dataset.stack || `__stack${index}__`\n const color = convertColor(dataset.backgroundColor, DEFAULT_COLOR)\n const strokeColor = convertColor(dataset.color, DEFAULT_COLOR)\n const borderWidth = dataset.borderWidth || STROKE_THICKNESS\n const pointMarker = createPointMarker(wasmContext, dataset, strokeColor)\n\n let series\n if (dataset.type === 'bar') {\n series = stacked\n ? new StackedColumnRenderableSeries(wasmContext, {\n dataSeries,\n strokeThickness: borderWidth,\n fill: color,\n stackedGroupId: stackGroupId\n })\n : new FastColumnRenderableSeries(wasmContext, {\n dataSeries,\n strokeThickness: borderWidth,\n fill: color,\n animation: animation ? new WaveAnimation({ duration: ANIMATION_DURATION, fadeEffect: true }) : undefined,\n yAxisId\n })\n } else {\n series = stacked\n ? new StackedMountainRenderableSeries(wasmContext, {\n dataSeries,\n strokeThickness: borderWidth,\n stroke: strokeColor,\n fill: color\n })\n : dataset.lineTension && dataset.lineTension > 0\n ? new SplineLineRenderableSeries(wasmContext, {\n dataSeries,\n strokeThickness: borderWidth,\n stroke: strokeColor,\n pointMarker,\n animation: animation ? new WaveAnimation({ duration: ANIMATION_DURATION, fadeEffect: true }) : undefined,\n yAxisId\n })\n : new FastLineRenderableSeries(wasmContext, {\n dataSeries,\n strokeThickness: borderWidth,\n stroke: strokeColor,\n pointMarker,\n animation: animation ? new WaveAnimation({ duration: ANIMATION_DURATION, fadeEffect: true }) : undefined,\n yAxisId\n })\n }\n\n return { series, dataSeries }\n}\n\nexport async function buildSciChart(\n config: OperatoChart.ChartConfig | undefined | null,\n container: any,\n { fontSize = 14, fontFamily = 'Roboto', fontColor }: { fontSize?: number; fontFamily?: string; fontColor?: string },\n { grouped, precision }: { grouped?: string; precision?: number }\n): Promise<{ chart: any; dataSeries: any[] } | undefined> {\n if (!config) return\n\n await initializeSciChartLicense()\n\n const { type: chartType, options, data: fromData } = config\n const { datasets = [] } = fromData || {}\n var {\n theme,\n tooltip = true,\n animation = true,\n legend = {\n display: true,\n position: 'top'\n },\n scales: fromScales,\n xGridLine = false,\n yGridLine = false,\n y2ndGridLine = false,\n stacked = false,\n multiAxis = false,\n annotations = []\n } = options || {}\n\n var baseColor = getBaseColorFromTheme(theme)\n\n if (theme === 'auto') {\n theme = getThemeFromBrowser()\n }\n\n fontColor = fontColor || baseColor.clone().toString()\n\n const { xAxes = [], yAxes = [] } = fromScales || {}\n\n const chart = await SciChartSurface.create(container, {\n theme: theme == 'dark' ? new SciChartJSDarkv2Theme() : new SciChartJSLightTheme()\n })\n const { sciChartSurface, wasmContext } = chart\n\n xAxes.forEach((axis, index) => {\n const xAxis = createAxis(wasmContext, axis, index, true, fontColor, fontFamily, fontSize, undefined, {\n drawMajorTickLines: true,\n drawMinorTickLines: true,\n drawMajorGridLines: xGridLine,\n drawMinorGridLines: xGridLine\n })\n sciChartSurface.xAxes.add(xAxis)\n })\n ;(multiAxis ? yAxes : [yAxes[0]]).forEach((axis, index) => {\n const yAxis = createAxis(wasmContext, axis, index, false, fontColor, fontFamily, fontSize, precision, {\n drawMajorTickLines: true,\n drawMinorTickLines: true,\n drawMajorGridLines: index == 0 ? yGridLine : y2ndGridLine,\n drawMinorGridLines: index == 0 ? yGridLine : y2ndGridLine\n })\n sciChartSurface.yAxes.add(yAxis)\n })\n\n const dataSeriesArray = datasets.map((dataset, index) => {\n const yAxisId = dataset.yAxisID == 'right' && multiAxis ? 'yAxis1' : undefined\n const { series, dataSeries } = createSeries(wasmContext, dataset, index, !!stacked, !!animation, yAxisId)\n\n sciChartSurface.renderableSeries.add(series)\n\n if (tooltip) {\n const rolloverModifier = new RolloverModifier({\n showTooltip: true,\n showAxisLabel: true /* show x-axis label for cursor */,\n modifierGroup: grouped,\n tooltipDataTemplate: (seriesInfo: XySeriesInfo): string[] => {\n const valuesWithLabels: string[] = []\n const xySeriesInfo = seriesInfo as XySeriesInfo\n valuesWithLabels.push(xySeriesInfo.formattedYValue)\n return valuesWithLabels\n }\n })\n\n sciChartSurface.chartModifiers.add(rolloverModifier)\n }\n\n return dataSeries\n })\n\n if (stacked) {\n const stackedColumnCollection = new StackedColumnCollection(wasmContext)\n const stackedMountainCollection = new StackedMountainCollection(wasmContext)\n\n sciChartSurface.renderableSeries.asArray().forEach((series: any) => {\n if (series instanceof StackedColumnRenderableSeries) {\n stackedColumnCollection.add(series)\n } else if (series instanceof StackedMountainRenderableSeries) {\n stackedMountainCollection.add(series)\n }\n })\n\n if (stackedColumnCollection.size() > 0) {\n sciChartSurface.renderableSeries.add(stackedColumnCollection)\n }\n\n if (stackedMountainCollection.size() > 0) {\n sciChartSurface.renderableSeries.add(stackedMountainCollection)\n }\n }\n\n if (annotations) {\n annotations.forEach(annotation => {\n let sciAnnotation\n let horizontalAnchorPoint: EHorizontalAnchorPoint =\n annotation.horizontalAnchorPoint == 'Right'\n ? EHorizontalAnchorPoint.Right\n : annotation.horizontalAnchorPoint == 'Left'\n ? EHorizontalAnchorPoint.Left\n : EHorizontalAnchorPoint.Center\n let verticalAnchorPoint: EVerticalAnchorPoint =\n annotation.verticalAnchorPoint == 'Top'\n ? EVerticalAnchorPoint.Top\n : annotation.verticalAnchorPoint == 'Bottom'\n ? EVerticalAnchorPoint.Bottom\n : EVerticalAnchorPoint.Center\n\n switch (annotation.type) {\n case 'text':\n sciAnnotation = new TextAnnotation({\n x1: annotation.x1,\n y1: annotation.y1,\n text: annotation.text,\n horizontalAnchorPoint,\n verticalAnchorPoint,\n fontSize: annotation.fontSize,\n fontFamily: annotation.fontFamily,\n textColor: convertColor(annotation.stroke, fontColor),\n xCoordinateMode: (annotation.xCoordinateMode || ECoordinateMode.DataValue) as ECoordinateMode,\n yCoordinateMode: (annotation.yCoordinateMode || ECoordinateMode.DataValue) as ECoordinateMode\n })\n break\n case 'line':\n sciAnnotation = new LineAnnotation({\n x1: annotation.x1,\n y1: annotation.y1,\n x2: annotation.x2,\n y2: annotation.y2,\n stroke: convertColor(annotation.stroke, '#FF0000'),\n strokeThickness: annotation.strokeThickness,\n xCoordinateMode: (annotation.xCoordinateMode || ECoordinateMode.DataValue) as ECoordinateMode,\n yCoordinateMode: (annotation.yCoordinateMode || ECoordinateMode.DataValue) as ECoordinateMode\n })\n break\n case 'box':\n sciAnnotation = new BoxAnnotation({\n x1: annotation.x1,\n y1: annotation.y1,\n x2: annotation.x2,\n y2: annotation.y2,\n fill: convertColor(annotation.fill, '#FF0000'),\n stroke: convertColor(annotation.stroke, '#FF0000'),\n strokeThickness: annotation.strokeThickness,\n xCoordinateMode: (annotation.xCoordinateMode || ECoordinateMode.DataValue) as ECoordinateMode,\n yCoordinateMode: (annotation.yCoordinateMode || ECoordinateMode.DataValue) as ECoordinateMode\n })\n break\n case 'horizontalLine':\n sciAnnotation = new HorizontalLineAnnotation({\n y1: annotation.y1,\n stroke: convertColor(annotation.stroke, '#FF0000'),\n strokeThickness: annotation.strokeThickness,\n xCoordinateMode: (annotation.xCoordinateMode || ECoordinateMode.DataValue) as ECoordinateMode,\n yCoordinateMode: (annotation.yCoordinateMode || ECoordinateMode.DataValue) as ECoordinateMode\n })\n break\n case 'verticalLine':\n sciAnnotation = new VerticalLineAnnotation({\n x1: annotation.x1,\n stroke: convertColor(annotation.stroke, '#FF0000'),\n strokeThickness: annotation.strokeThickness,\n xCoordinateMode: (annotation.xCoordinateMode || ECoordinateMode.DataValue) as ECoordinateMode,\n yCoordinateMode: (annotation.yCoordinateMode || ECoordinateMode.DataValue) as ECoordinateMode\n })\n break\n default:\n break\n }\n if (sciAnnotation) {\n sciChartSurface.annotations.add(sciAnnotation)\n }\n })\n }\n\n sciChartSurface.chartModifiers.add(\n new RubberBandXyZoomModifier({ executeOn: EExecuteOn.MouseRightButton, modifierGroup: grouped }),\n // new ZoomPanModifier({ xyDirection: EXyDirection.XDirection }),\n new ZoomPanModifier({ xyDirection: EXyDirection.XDirection }),\n new MouseWheelZoomModifier({ xyDirection: EXyDirection.XDirection }),\n new ZoomExtentsModifier(),\n new XAxisDragModifier(),\n new YAxisDragModifier()\n )\n\n if (legend?.display) {\n const legendModifier = new LegendModifier({\n showCheckboxes: true,\n showSeriesMarkers: true,\n showLegend: true,\n placement:\n legend.position == 'top'\n ? ELegendPlacement.TopLeft\n : legend.position == 'left'\n ? ELegendPlacement.BottomLeft\n : legend.position == 'bottom'\n ? ELegendPlacement.BottomRight\n : ELegendPlacement.TopRight\n })\n\n sciChartSurface.chartModifiers.add(legendModifier)\n }\n\n return { chart, dataSeries: dataSeriesArray }\n}\n\nexport async function buildSciChartOverview(\n config: OperatoChart.ChartConfig | undefined | null,\n container: any,\n { fontSize = 14, fontFamily = 'Roboto', fontColor }: { fontSize?: number; fontFamily?: string; fontColor?: string },\n axisSynchroniser: AxisSynchroniser\n): Promise<{ chart: any; dataSeries: any[] } | undefined> {\n if (!config) return\n\n const { type: chartType, options, data: fromData } = config\n const { datasets = [] } = fromData || {}\n var { theme, scales: fromScales } = options || {}\n\n var baseColor = getBaseColorFromTheme(theme)\n\n if (theme === 'auto') {\n theme = getThemeFromBrowser()\n }\n\n fontColor = fontColor || baseColor.clone().toString()\n\n const { xAxes = [], yAxes = [] } = fromScales || {}\n\n const chart = await SciChartSurface.create(container, {\n theme: theme == 'dark' ? new SciChartJSDarkv2Theme() : new SciChartJSLightTheme()\n })\n const { sciChartSurface, wasmContext } = chart\n\n xAxes.forEach((axis, index) => {\n const xAxis = createAxis(wasmContext, axis, index, true, fontColor, fontFamily, fontSize, undefined, {\n drawMajorTickLines: false,\n drawMinorTickLines: false,\n drawMajorGridLines: false,\n drawMinorGridLines: false\n })\n sciChartSurface.xAxes.add(xAxis)\n })\n\n getDefaultYAxis(wasmContext, sciChartSurface)\n\n // const dataSeriesArray = datasets.map((dataset, index) => {\n // const yAxisId = `yAxis${index}`\n // const dataSeries = new XyDataSeries(wasmContext, {\n // dataSeriesName: dataset.label,\n // containsNaN: false\n // })\n\n // const yAxis = new NumericAxis(wasmContext, {\n // id: yAxisId,\n // autoRange: EAutoRange.Always,\n // drawLabels: false,\n // drawMajorTickLines: false,\n // drawMinorTickLines: false,\n // drawMajorGridLines: false,\n // drawMinorGridLines: false\n // })\n\n // sciChartSurface.yAxes.add(yAxis)\n\n // const series = new FastLineRenderableSeries(wasmContext, {\n // dataSeries,\n // strokeThickness: 1,\n // stroke: convertColor(dataset.color, DEFAULT_COLOR),\n // yAxisId: yAxisId\n // })\n\n // sciChartSurface.renderableSeries.add(series)\n\n // return dataSeries\n // })\n\n const rangeSelectionModifier = new OverviewRangeSelectionModifier()\n rangeSelectionModifier.onSelectedAreaChanged = (selectedRange?: NumberRange) => {\n if (!selectedRange!.equals(axisSynchroniser.visibleRange)) {\n axisSynchroniser.publishChange({ visibleRange: selectedRange! })\n }\n }\n\n rangeSelectionModifier.selectedArea = axisSynchroniser.visibleRange\n sciChartSurface.chartModifiers.add(rangeSelectionModifier)\n\n axisSynchroniser.visibleRangeChanged.subscribe(({ visibleRange }: any) => {\n const xAxis = sciChartSurface.xAxes.get(0)\n const updatedSelectedRange = visibleRange.clip(xAxis.visibleRange)\n const shouldUpdateSelectedRange = !updatedSelectedRange.equals(rangeSelectionModifier.selectedArea)\n if (shouldUpdateSelectedRange) {\n rangeSelectionModifier.selectedArea = updatedSelectedRange\n }\n })\n\n return { chart, dataSeries: [] }\n}\n\nfunction getDefaultYAxis(wasmContext: any, sciChartSurface: any): void {\n const yAxis = new NumericAxis(wasmContext, {\n id: 'DefaultAxisId',\n autoRange: EAutoRange.Always,\n drawLabels: false,\n drawMajorTickLines: false,\n drawMinorTickLines: false,\n drawMajorGridLines: false,\n drawMinorGridLines: false\n })\n\n sciChartSurface.yAxes.add(yAxis)\n}\n"]}
1
+ {"version":3,"file":"scichart-builder.js","sourceRoot":"","sources":["../../src/charts/scichart-builder.ts"],"names":[],"mappings":"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","sourcesContent":["import { TinyColor } from '@ctrl/tinycolor'\nimport {\n SciChartSurface,\n SciChartJSLightTheme,\n SciChartJSDarkv2Theme,\n XyDataSeries,\n FastLineRenderableSeries,\n SplineLineRenderableSeries,\n FastColumnRenderableSeries,\n StackedColumnRenderableSeries,\n StackedMountainRenderableSeries,\n StackedColumnCollection,\n StackedMountainCollection,\n NumericAxis,\n DateTimeNumericAxis,\n EAutoRange,\n EAxisAlignment,\n EExecuteOn,\n ECoordinateMode,\n EHorizontalAnchorPoint,\n EVerticalAnchorPoint,\n NumberRange,\n MouseWheelZoomModifier,\n RubberBandXyZoomModifier,\n ZoomPanModifier,\n ZoomExtentsModifier,\n RolloverModifier,\n NumericLabelProvider,\n SmartDateLabelProvider,\n EllipsePointMarker,\n SquarePointMarker,\n TrianglePointMarker,\n CrossPointMarker,\n XPointMarker,\n WaveAnimation,\n LegendModifier,\n ELegendPlacement,\n EXyDirection,\n XAxisDragModifier,\n YAxisDragModifier,\n TextAnnotation,\n LineAnnotation,\n BoxAnnotation,\n HorizontalLineAnnotation,\n VerticalLineAnnotation,\n OverviewRangeSelectionModifier,\n ENumericFormat,\n XySeriesInfo\n} from 'scichart'\nimport type { OperatoChart } from '@operato/chart'\n\nimport { AxisSynchroniser } from './axis-synchronizer.js'\n\nSciChartSurface.configure({\n dataUrl: `/node_modules/scichart/_wasm/scichart2d.data`,\n wasmUrl: `/node_modules/scichart/_wasm/scichart2d.wasm`\n})\n\nvar licenseInitialized: boolean = false\n\n// 커뮤니티 라이선스 적용 함수\nfunction useCommunityLicense() {\n SciChartSurface.UseCommunityLicense()\n}\n\n// SciChart 라이선스 설정 함수\nasync function fetchSciChartLicense() {\n try {\n const response = await fetch('/frontend-config/scichart')\n if (response.ok) {\n const { licenseKey = '' } = (await response.json()) || {}\n\n if (licenseKey) {\n SciChartSurface.setRuntimeLicenseKey(licenseKey)\n console.log('SciChart license key setting complete')\n } else {\n console.warn('License key not found. Using community version.')\n useCommunityLicense()\n }\n } else {\n console.warn('License server response not found. Using community version.')\n useCommunityLicense()\n }\n } catch (error) {\n console.error('Error fetching license. Using community version:', error)\n useCommunityLicense()\n }\n}\n\n// SciChart 초기화 함수\nasync function initializeSciChartLicense() {\n if (!licenseInitialized) {\n if (window.location.hostname === 'localhost') {\n console.warn('Localhost detected. Using SciChart community license.')\n useCommunityLicense() // localhost인 경우 커뮤니티 라이선스 적용\n } else {\n await fetchSciChartLicense() // 서버에서 라이선스 키 가져오기\n }\n\n licenseInitialized = true\n }\n}\n\nexport const DEFAULT_COLOR = '#FF6600'\nconst DEFAULT_STROKE = '#000000'\nconst POINT_MARKER_SIZE = 10\nconst STROKE_THICKNESS = 2\nconst ANIMATION_DURATION = 1000\n\nfunction getLocalTimeOffset() {\n const now = new Date()\n return now.getTimezoneOffset() * -60\n}\n\nfunction getBaseColorFromTheme(theme?: 'light' | 'dark' | 'auto') {\n return new TinyColor(theme == 'dark' ? '#fff' : '#000')\n}\n\nfunction getThemeFromBrowser() {\n return window.matchMedia && window.matchMedia('(prefers-color-scheme: dark)').matches ? 'dark' : 'light'\n}\n\nexport function convertColor(color: string | string[] | undefined, defaultColor?: string) {\n const tinyColor = new TinyColor(color as string)\n return tinyColor.toHex8String() || defaultColor\n}\n\nexport function calculatePrecision(format: string | number = '') {\n const formatString = format.toString()\n\n if (formatString.indexOf('.') !== -1) {\n return formatString.split('.')[1].length\n }\n\n return 0\n}\n\nfunction createPointMarker(wasmContext: any, dataset: any, color: string = DEFAULT_COLOR) {\n const { pointStyle, pointRadius = POINT_MARKER_SIZE } = dataset || {}\n\n if (!pointStyle) {\n return\n }\n\n const pointMarkerOptions = {\n width: pointRadius,\n height: pointRadius,\n strokeThickness: STROKE_THICKNESS,\n fill: color,\n stroke: DEFAULT_STROKE\n }\n\n switch (pointStyle) {\n case 'triangle':\n return new TrianglePointMarker(wasmContext, pointMarkerOptions)\n case 'rect':\n return new SquarePointMarker(wasmContext, pointMarkerOptions)\n case 'cross':\n return new CrossPointMarker(wasmContext, pointMarkerOptions)\n case 'crossRot':\n return new XPointMarker(wasmContext, pointMarkerOptions)\n default:\n return new EllipsePointMarker(wasmContext, pointMarkerOptions)\n }\n}\n\nfunction createAxis(\n wasmContext: any,\n axis: any,\n index: number,\n isXAxis: boolean,\n fontColor: string,\n fontFamily?: string,\n fontSize?: number,\n precision?: number,\n options?: any\n) {\n const { axisTitle, ticks } = axis\n const {\n autoMax,\n autoMin,\n min,\n max,\n stepSize,\n beginAtZero,\n color = fontColor,\n textStrokeColor = fontColor,\n display = false\n } = ticks || {}\n\n const axisOptions = {\n axisTitle,\n autoRange: autoMin || autoMax ? EAutoRange.Always : EAutoRange.Once,\n axisAlignment: isXAxis ? EAxisAlignment.Bottom : index === 0 ? EAxisAlignment.Left : EAxisAlignment.Right,\n visibleRange: min !== undefined && max !== undefined ? new NumberRange(min, max) : undefined,\n majorDelta: stepSize,\n growBy: beginAtZero ? new NumberRange(0.1, 0.1) : undefined,\n labelStyle: {\n fontFamily,\n fontSize,\n color\n },\n axisTitleStyle: {\n fontFamily,\n fontSize,\n color: textStrokeColor\n },\n ...options,\n drawLabels: display\n }\n\n const labelProvider = isXAxis\n ? new SmartDateLabelProvider({\n showWiderDateOnFirstLabel: true,\n showYearOnWiderDate: false,\n dateOffset: getLocalTimeOffset()\n })\n : new NumericLabelProvider()\n\n if (isXAxis) {\n labelProvider!.cursorNumericFormat = ENumericFormat.Date_HHMMSS\n } else {\n labelProvider!.numericFormat = ENumericFormat.Decimal\n labelProvider!.precision = precision || calculatePrecision(stepSize || 0.1)\n labelProvider!.cursorNumericFormat = ENumericFormat.NoFormat\n }\n\n return isXAxis\n ? new DateTimeNumericAxis(wasmContext, {\n ...axisOptions,\n labelProvider\n })\n : new NumericAxis(wasmContext, {\n ...axisOptions,\n id: index !== 0 ? `yAxis${index}` : undefined,\n labelProvider\n })\n}\n\nfunction createSeries(\n wasmContext: any,\n dataset: any,\n index: number,\n stacked: boolean,\n animation: boolean,\n yAxisId: string | undefined\n) {\n const dataSeries = new XyDataSeries(wasmContext, {\n dataSeriesName: dataset.label,\n containsNaN: false\n })\n\n const stackGroupId = dataset.stack || `__stack${index}__`\n const color = convertColor(dataset.backgroundColor, DEFAULT_COLOR)\n const strokeColor = convertColor(dataset.color, DEFAULT_COLOR)\n const borderWidth = dataset.borderWidth || STROKE_THICKNESS\n const pointMarker = createPointMarker(wasmContext, dataset, strokeColor)\n\n let series\n if (dataset.type === 'bar') {\n series = stacked\n ? new StackedColumnRenderableSeries(wasmContext, {\n dataSeries,\n strokeThickness: borderWidth,\n fill: color,\n stackedGroupId: stackGroupId\n })\n : new FastColumnRenderableSeries(wasmContext, {\n dataSeries,\n strokeThickness: borderWidth,\n fill: color,\n animation: animation ? new WaveAnimation({ duration: ANIMATION_DURATION, fadeEffect: true }) : undefined,\n yAxisId\n })\n } else {\n series = stacked\n ? new StackedMountainRenderableSeries(wasmContext, {\n dataSeries,\n strokeThickness: borderWidth,\n stroke: strokeColor,\n fill: color\n })\n : dataset.lineTension && dataset.lineTension > 0\n ? new SplineLineRenderableSeries(wasmContext, {\n dataSeries,\n strokeThickness: borderWidth,\n stroke: strokeColor,\n pointMarker,\n animation: animation ? new WaveAnimation({ duration: ANIMATION_DURATION, fadeEffect: true }) : undefined,\n yAxisId\n })\n : new FastLineRenderableSeries(wasmContext, {\n dataSeries,\n strokeThickness: borderWidth,\n stroke: strokeColor,\n pointMarker,\n animation: animation ? new WaveAnimation({ duration: ANIMATION_DURATION, fadeEffect: true }) : undefined,\n yAxisId\n })\n }\n\n return { series, dataSeries }\n}\n\nexport async function buildSciChart(\n config: OperatoChart.ChartConfig | undefined | null,\n container: any,\n { fontSize = 14, fontFamily = 'Roboto', fontColor }: { fontSize?: number; fontFamily?: string; fontColor?: string },\n { grouped, precision }: { grouped?: string; precision?: number }\n): Promise<{ chart: any; dataSeries: any[] } | undefined> {\n if (!config) return\n\n await initializeSciChartLicense()\n\n const { type: chartType, options, data: fromData } = config\n const { datasets = [] } = fromData || {}\n var {\n theme,\n tooltip = true,\n animation = true,\n legend = {\n display: true,\n position: 'top'\n },\n scales: fromScales,\n xGridLine = false,\n yGridLine = false,\n y2ndGridLine = false,\n stacked = false,\n multiAxis = false\n } = options || {}\n\n var baseColor = getBaseColorFromTheme(theme)\n\n if (theme === 'auto') {\n theme = getThemeFromBrowser()\n }\n\n fontColor = fontColor || baseColor.clone().toString()\n\n const { xAxes = [], yAxes = [] } = fromScales || {}\n\n const chart = await SciChartSurface.create(container, {\n theme: theme == 'dark' ? new SciChartJSDarkv2Theme() : new SciChartJSLightTheme()\n })\n const { sciChartSurface, wasmContext } = chart\n\n xAxes.forEach((axis, index) => {\n const xAxis = createAxis(wasmContext, axis, index, true, fontColor, fontFamily, fontSize, undefined, {\n drawMajorTickLines: true,\n drawMinorTickLines: true,\n drawMajorGridLines: xGridLine,\n drawMinorGridLines: xGridLine\n })\n sciChartSurface.xAxes.add(xAxis)\n })\n ;(multiAxis ? yAxes : [yAxes[0]]).forEach((axis, index) => {\n const yAxis = createAxis(wasmContext, axis, index, false, fontColor, fontFamily, fontSize, precision, {\n drawMajorTickLines: true,\n drawMinorTickLines: true,\n drawMajorGridLines: index == 0 ? yGridLine : y2ndGridLine,\n drawMinorGridLines: index == 0 ? yGridLine : y2ndGridLine\n })\n sciChartSurface.yAxes.add(yAxis)\n })\n\n const dataSeriesArray = datasets.map((dataset, index) => {\n const yAxisId = dataset.yAxisID == 'right' && multiAxis ? 'yAxis1' : undefined\n const { series, dataSeries } = createSeries(wasmContext, dataset, index, !!stacked, !!animation, yAxisId)\n\n sciChartSurface.renderableSeries.add(series)\n\n if (tooltip) {\n const rolloverModifier = new RolloverModifier({\n showTooltip: true,\n showAxisLabel: true /* show x-axis label for cursor */,\n modifierGroup: grouped,\n tooltipDataTemplate: (seriesInfo: XySeriesInfo): string[] => {\n const valuesWithLabels: string[] = []\n const xySeriesInfo = seriesInfo as XySeriesInfo\n let formattedValue: number | string = xySeriesInfo.yValue\n // 시리즈 이름으로 인덱스 찾기\n const datasetIdx = datasets.findIndex(ds => ds.label === xySeriesInfo.seriesName)\n const thisDataset = datasets[datasetIdx >= 0 ? datasetIdx : index]\n const valueFormat = thisDataset?.valueFormat || '0.##'\n if (typeof formattedValue === 'number') {\n // prefix, numberFormat, suffix 분리\n const match = valueFormat.match(/^(.*?)([#,0.]+)(.*?)$/)\n const prefix = match ? match[1] : ''\n const numberFormat = match ? match[2] : valueFormat\n const suffix = match ? match[3] : ''\n\n const decimalPart = numberFormat.split('.')[1]?.replace(/[^#0]/g, '')\n let minFrac = decimalPart ? decimalPart.length : 0\n let maxFrac = numberFormat.split('.')[1]?.length || 2\n const formattedNumber = new Intl.NumberFormat(undefined, {\n minimumFractionDigits: minFrac,\n maximumFractionDigits: maxFrac,\n useGrouping: numberFormat.includes(',')\n }).format(formattedValue)\n\n formattedValue = `${prefix}${formattedNumber}${suffix}`\n }\n valuesWithLabels.push(formattedValue as string)\n return valuesWithLabels\n }\n })\n\n sciChartSurface.chartModifiers.add(rolloverModifier)\n }\n\n return dataSeries\n })\n\n if (stacked) {\n const stackedColumnCollection = new StackedColumnCollection(wasmContext)\n const stackedMountainCollection = new StackedMountainCollection(wasmContext)\n\n sciChartSurface.renderableSeries.asArray().forEach((series: any) => {\n if (series instanceof StackedColumnRenderableSeries) {\n stackedColumnCollection.add(series)\n } else if (series instanceof StackedMountainRenderableSeries) {\n stackedMountainCollection.add(series)\n }\n })\n\n if (stackedColumnCollection.size() > 0) {\n sciChartSurface.renderableSeries.add(stackedColumnCollection)\n }\n\n if (stackedMountainCollection.size() > 0) {\n sciChartSurface.renderableSeries.add(stackedMountainCollection)\n }\n }\n\n sciChartSurface.chartModifiers.add(\n new RubberBandXyZoomModifier({ executeOn: EExecuteOn.MouseRightButton, modifierGroup: grouped }),\n // new ZoomPanModifier({ xyDirection: EXyDirection.XDirection }),\n new ZoomPanModifier({ xyDirection: EXyDirection.XDirection }),\n new MouseWheelZoomModifier({ xyDirection: EXyDirection.XDirection }),\n new ZoomExtentsModifier(),\n new XAxisDragModifier(),\n new YAxisDragModifier()\n )\n\n if (legend?.display) {\n const legendModifier = new LegendModifier({\n showCheckboxes: true,\n showSeriesMarkers: true,\n showLegend: true,\n placement:\n legend.position == 'top'\n ? ELegendPlacement.TopLeft\n : legend.position == 'left'\n ? ELegendPlacement.BottomLeft\n : legend.position == 'bottom'\n ? ELegendPlacement.BottomRight\n : ELegendPlacement.TopRight\n })\n\n sciChartSurface.chartModifiers.add(legendModifier)\n }\n\n return { chart, dataSeries: dataSeriesArray }\n}\n\nexport async function buildSciChartOverview(\n config: OperatoChart.ChartConfig | undefined | null,\n container: any,\n { fontSize = 14, fontFamily = 'Roboto', fontColor }: { fontSize?: number; fontFamily?: string; fontColor?: string },\n axisSynchroniser: AxisSynchroniser\n): Promise<{ chart: any; dataSeries: any[] } | undefined> {\n if (!config) return\n\n const { type: chartType, options, data: fromData } = config\n const { datasets = [] } = fromData || {}\n var { theme, scales: fromScales } = options || {}\n\n var baseColor = getBaseColorFromTheme(theme)\n\n if (theme === 'auto') {\n theme = getThemeFromBrowser()\n }\n\n fontColor = fontColor || baseColor.clone().toString()\n\n const { xAxes = [], yAxes = [] } = fromScales || {}\n\n const chart = await SciChartSurface.create(container, {\n theme: theme == 'dark' ? new SciChartJSDarkv2Theme() : new SciChartJSLightTheme()\n })\n const { sciChartSurface, wasmContext } = chart\n\n xAxes.forEach((axis, index) => {\n const xAxis = createAxis(wasmContext, axis, index, true, fontColor, fontFamily, fontSize, undefined, {\n drawMajorTickLines: false,\n drawMinorTickLines: false,\n drawMajorGridLines: false,\n drawMinorGridLines: false\n })\n sciChartSurface.xAxes.add(xAxis)\n })\n\n getDefaultYAxis(wasmContext, sciChartSurface)\n\n // const dataSeriesArray = datasets.map((dataset, index) => {\n // const yAxisId = `yAxis${index}`\n // const dataSeries = new XyDataSeries(wasmContext, {\n // dataSeriesName: dataset.label,\n // containsNaN: false\n // })\n\n // const yAxis = new NumericAxis(wasmContext, {\n // id: yAxisId,\n // autoRange: EAutoRange.Always,\n // drawLabels: false,\n // drawMajorTickLines: false,\n // drawMinorTickLines: false,\n // drawMajorGridLines: false,\n // drawMinorGridLines: false\n // })\n\n // sciChartSurface.yAxes.add(yAxis)\n\n // const series = new FastLineRenderableSeries(wasmContext, {\n // dataSeries,\n // strokeThickness: 1,\n // stroke: convertColor(dataset.color, DEFAULT_COLOR),\n // yAxisId: yAxisId\n // })\n\n // sciChartSurface.renderableSeries.add(series)\n\n // return dataSeries\n // })\n\n const rangeSelectionModifier = new OverviewRangeSelectionModifier()\n rangeSelectionModifier.onSelectedAreaChanged = (selectedRange?: NumberRange) => {\n if (!selectedRange!.equals(axisSynchroniser.visibleRange)) {\n axisSynchroniser.publishChange({ visibleRange: selectedRange! })\n }\n }\n\n rangeSelectionModifier.selectedArea = axisSynchroniser.visibleRange\n sciChartSurface.chartModifiers.add(rangeSelectionModifier)\n\n axisSynchroniser.visibleRangeChanged.subscribe(({ visibleRange }: any) => {\n const xAxis = sciChartSurface.xAxes.get(0)\n const updatedSelectedRange = visibleRange.clip(xAxis.visibleRange)\n const shouldUpdateSelectedRange = !updatedSelectedRange.equals(rangeSelectionModifier.selectedArea)\n if (shouldUpdateSelectedRange) {\n rangeSelectionModifier.selectedArea = updatedSelectedRange\n }\n })\n\n return { chart, dataSeries: [] }\n}\n\nfunction getDefaultYAxis(wasmContext: any, sciChartSurface: any): void {\n const yAxis = new NumericAxis(wasmContext, {\n id: 'DefaultAxisId',\n autoRange: EAutoRange.Always,\n drawLabels: false,\n drawMajorTickLines: false,\n drawMinorTickLines: false,\n drawMajorGridLines: false,\n drawMinorGridLines: false\n })\n\n sciChartSurface.yAxes.add(yAxis)\n}\n\n// Helper 함수 - verticalAnchorPoint에 따라 적절한 y1 값을 반환\nfunction getYPositionByAnchor(anchor: any): number {\n if (anchor === EVerticalAnchorPoint.Top) {\n return 0.05 // 상단에서 5% 위치\n } else if (anchor === EVerticalAnchorPoint.Center) {\n return 0.5 // 중앙\n } else if (anchor === EVerticalAnchorPoint.Bottom) {\n return 0.95 // 차트 맨 아래\n }\n // 기본값 (Bottom이거나 값이 없는 경우)\n return 0.95 // 바닥에서 5% 위치\n}\n\n// Helper 함수 - verticalAnchorPoint에 따라 적절한 좌표 모드 반환\nfunction getYCoordModeByAnchor(anchor: any): ECoordinateMode {\n // verticalAnchorPoint 값과 상관없이 상대 좌표 사용\n return ECoordinateMode.Relative\n}\n\nexport function updateAnnotations(\n sciChartSurface: SciChartSurface,\n annotations: OperatoChart.Annotation[] = [],\n fromData?: OperatoChart.ChartData,\n rawData: any[] = [],\n fontFamily?: string,\n fontColor?: string\n) {\n sciChartSurface.annotations.clear()\n\n if (annotations) {\n annotations.forEach(annotation => {\n let sciAnnotation\n let horizontalAnchorPoint: EHorizontalAnchorPoint =\n annotation.horizontalAnchorPoint == 'Right'\n ? EHorizontalAnchorPoint.Right\n : annotation.horizontalAnchorPoint == 'Left'\n ? EHorizontalAnchorPoint.Left\n : EHorizontalAnchorPoint.Center\n let verticalAnchorPoint: EVerticalAnchorPoint =\n annotation.verticalAnchorPoint == 'Top'\n ? EVerticalAnchorPoint.Top\n : annotation.verticalAnchorPoint == 'Bottom'\n ? EVerticalAnchorPoint.Bottom\n : EVerticalAnchorPoint.Center\n\n // dataKey가 있는 경우 데이터와 연동\n if (annotation.dataKey && rawData && rawData.length > 0) {\n const attrX = fromData?.labelDataKey || '' // X축 데이터 키 가져오기\n\n if (annotation.type === 'verticalLine') {\n // 수직 라인: falsy => truthy 변화 지점에만 표시\n let prevValue = undefined\n\n for (let i = 0; i < rawData.length; i++) {\n // 원본 데이터에서 직접 값 가져오기\n const currentValue = rawData[i][annotation.dataKey]\n const isChanged = prevValue !== currentValue\n const isTruthy = !!currentValue || annotation.text\n\n if (isTruthy && isChanged) {\n // falsy에서 truthy로 변화한 지점\n // X 값은 인덱스나 타임스탬프 사용\n const xValue = attrX ? new Date(rawData[i][attrX]).getTime() / 1000 : i\n\n // 수직선 추가\n const sciVerticalLine = new VerticalLineAnnotation({\n x1: xValue,\n stroke: convertColor(annotation.stroke, '#FF0000'),\n strokeThickness: annotation.strokeThickness,\n xCoordinateMode: (annotation.xCoordinateMode || ECoordinateMode.DataValue) as ECoordinateMode,\n yCoordinateMode: (annotation.yCoordinateMode || ECoordinateMode.DataValue) as ECoordinateMode\n })\n sciChartSurface.annotations.add(sciVerticalLine)\n\n // 텍스트 레이블 추가\n // if (annotation.text !== undefined || currentValue !== undefined) {\n // 표시할 텍스트 결정\n const labelText = currentValue ? String(currentValue) : annotation.text\n\n // 텍스트 주석 추가 (수직선 상단에)\n const sciTextAnnotation = new TextAnnotation({\n // 동일한 X 위치 사용\n x1: xValue,\n // verticalAnchorPoint에 따라 Y 위치 결정\n y1: getYPositionByAnchor(annotation.verticalAnchorPoint),\n text: labelText,\n // 가운데 정렬\n horizontalAnchorPoint: (annotation.horizontalAnchorPoint ||\n EHorizontalAnchorPoint.Center) as EHorizontalAnchorPoint,\n // 텍스트의 하단이 y1에 위치\n verticalAnchorPoint: (annotation.verticalAnchorPoint ||\n EVerticalAnchorPoint.Bottom) as EVerticalAnchorPoint,\n fontFamily: annotation.fontFamily || fontFamily,\n fontSize: annotation.fontSize || 14,\n textColor: convertColor(annotation.stroke, '#FF0000'),\n background: 'rgba(255, 255, 255, 0.7)', // 텍스트 배경 추가\n padding: { left: 5, top: 5, right: 5, bottom: 5 }, // 패딩 추가\n xCoordinateMode: ECoordinateMode.DataValue,\n // verticalAnchorPoint에 따라 좌표 모드 결정\n yCoordinateMode: getYCoordModeByAnchor(annotation.verticalAnchorPoint)\n })\n\n sciChartSurface.annotations.add(sciTextAnnotation)\n // }\n }\n\n prevValue = currentValue\n }\n\n // 기본 annotation 처리 건너뛰기\n return\n } else if (annotation.type === 'text') {\n // 텍스트: 해당 값을 그대로 출력\n for (let i = 0; i < rawData.length; i++) {\n // 원본 데이터에서 직접 값 가져오기\n const value = rawData[i][annotation.dataKey]\n\n // null이나 undefined가 아닌 값만 표시\n if (value !== undefined && value !== null) {\n // X 값은 인덱스나 타임스탬프 사용\n const xValue = attrX ? new Date(rawData[i][attrX]).getTime() / 1000 : i\n\n const sciTextAnnotation = new TextAnnotation({\n x1: xValue,\n y1: value,\n text: String(value),\n horizontalAnchorPoint,\n verticalAnchorPoint,\n fontSize: annotation.fontSize,\n fontFamily: annotation.fontFamily,\n textColor: convertColor(annotation.stroke, fontColor),\n xCoordinateMode: (annotation.xCoordinateMode || ECoordinateMode.DataValue) as ECoordinateMode,\n yCoordinateMode: (annotation.yCoordinateMode || ECoordinateMode.DataValue) as ECoordinateMode\n })\n sciChartSurface.annotations.add(sciTextAnnotation)\n }\n }\n\n // 기본 annotation 처리 건너뛰기\n return\n } else {\n // 다른 타입의 annotation은 원래 로직으로 처리\n // 원본 데이터에서 값 추출\n const dataValues = rawData.map(item => item[annotation.dataKey!]).filter(v => v !== undefined)\n\n if (dataValues.length > 0) {\n // annotation 타입에 따라 데이터 값을 적용\n if (annotation.type === 'horizontalLine') {\n annotation.y1 = dataValues[0]\n } else if (annotation.type === 'line' || annotation.type === 'box') {\n // 데이터 값이 최소 한 개 이상인 경우에만 적용\n if (annotation.yCoordinateMode === 'DataValue') {\n annotation.y1 = dataValues[0]\n }\n if (annotation.xCoordinateMode === 'DataValue' && !annotation.x1) {\n annotation.x1 = 0\n }\n\n // 두 번째 지점이 필요한 경우 (line, box)\n if (dataValues.length > 1) {\n if (annotation.yCoordinateMode === 'DataValue') {\n annotation.y2 = dataValues[dataValues.length - 1]\n }\n if (annotation.xCoordinateMode === 'DataValue' && !annotation.x2) {\n annotation.x2 = dataValues.length - 1\n }\n }\n }\n }\n }\n } else {\n // 기본 annotation 생성 (dataKey가 없거나 rawData가 없는 경우)\n switch (annotation.type) {\n case 'text':\n sciAnnotation = new TextAnnotation({\n x1: annotation.x1,\n y1: annotation.y1,\n text: annotation.text,\n horizontalAnchorPoint,\n verticalAnchorPoint,\n fontSize: annotation.fontSize,\n fontFamily: annotation.fontFamily,\n textColor: convertColor(annotation.stroke, fontColor),\n xCoordinateMode: (annotation.xCoordinateMode || ECoordinateMode.DataValue) as ECoordinateMode,\n yCoordinateMode: (annotation.yCoordinateMode || ECoordinateMode.DataValue) as ECoordinateMode\n })\n break\n case 'line':\n sciAnnotation = new LineAnnotation({\n x1: annotation.x1,\n y1: annotation.y1,\n x2: annotation.x2,\n y2: annotation.y2,\n stroke: convertColor(annotation.stroke, '#FF0000'),\n strokeThickness: annotation.strokeThickness,\n xCoordinateMode: (annotation.xCoordinateMode || ECoordinateMode.DataValue) as ECoordinateMode,\n yCoordinateMode: (annotation.yCoordinateMode || ECoordinateMode.DataValue) as ECoordinateMode\n })\n break\n case 'box':\n sciAnnotation = new BoxAnnotation({\n x1: annotation.x1,\n y1: annotation.y1,\n x2: annotation.x2,\n y2: annotation.y2,\n fill: convertColor(annotation.fill, '#FF0000'),\n stroke: convertColor(annotation.stroke, '#FF0000'),\n strokeThickness: annotation.strokeThickness,\n xCoordinateMode: (annotation.xCoordinateMode || ECoordinateMode.DataValue) as ECoordinateMode,\n yCoordinateMode: (annotation.yCoordinateMode || ECoordinateMode.DataValue) as ECoordinateMode\n })\n break\n case 'horizontalLine':\n sciAnnotation = new HorizontalLineAnnotation({\n y1: annotation.y1,\n stroke: convertColor(annotation.stroke, '#FF0000'),\n strokeThickness: annotation.strokeThickness,\n xCoordinateMode: (annotation.xCoordinateMode || ECoordinateMode.DataValue) as ECoordinateMode,\n yCoordinateMode: (annotation.yCoordinateMode || ECoordinateMode.DataValue) as ECoordinateMode\n })\n break\n case 'verticalLine':\n sciAnnotation = new VerticalLineAnnotation({\n x1: annotation.x1,\n stroke: convertColor(annotation.stroke, '#FF0000'),\n strokeThickness: annotation.strokeThickness,\n xCoordinateMode: (annotation.xCoordinateMode || ECoordinateMode.DataValue) as ECoordinateMode,\n yCoordinateMode: (annotation.yCoordinateMode || ECoordinateMode.DataValue) as ECoordinateMode\n })\n\n // 텍스트가 있는 경우에만 텍스트 주석 추가\n if (annotation.text) {\n // 수직선을 먼저 추가\n if (sciAnnotation) {\n sciChartSurface.annotations.add(sciAnnotation)\n }\n\n // 텍스트 주석 생성\n const textAnnotation = new TextAnnotation({\n x1: annotation.x1,\n y1: getYPositionByAnchor(annotation.verticalAnchorPoint),\n text: annotation.text,\n horizontalAnchorPoint: (annotation.horizontalAnchorPoint ||\n EHorizontalAnchorPoint.Center) as EHorizontalAnchorPoint,\n verticalAnchorPoint: (annotation.verticalAnchorPoint ||\n EVerticalAnchorPoint.Bottom) as EVerticalAnchorPoint,\n fontFamily: annotation.fontFamily || fontFamily,\n fontSize: annotation.fontSize || 14,\n textColor: convertColor(annotation.stroke, '#FF0000'),\n background: 'rgba(255, 255, 255, 0.7)', // 텍스트 배경 추가\n padding: { left: 5, top: 5, right: 5, bottom: 5 }, // 패딩 추가\n xCoordinateMode: (annotation.xCoordinateMode || ECoordinateMode.DataValue) as ECoordinateMode,\n yCoordinateMode: getYCoordModeByAnchor(annotation.verticalAnchorPoint)\n })\n\n // 텍스트 주석 추가\n sciChartSurface.annotations.add(textAnnotation)\n sciAnnotation = null // 이미 추가했으므로 아래에서 다시 추가하지 않도록 null로 설정\n }\n break\n default:\n console.error('Unknown annotation type:', annotation.type)\n break\n }\n }\n\n // switch (annotation.type) {\n // case 'text':\n // sciAnnotation = new TextAnnotation({\n // x1: annotation.x1,\n // y1: annotation.y1,\n // text: annotation.text,\n // horizontalAnchorPoint,\n // verticalAnchorPoint,\n // fontSize: annotation.fontSize,\n // fontFamily: annotation.fontFamily,\n // textColor: convertColor(annotation.stroke, fontColor),\n // xCoordinateMode: (annotation.xCoordinateMode || ECoordinateMode.DataValue) as ECoordinateMode,\n // yCoordinateMode: (annotation.yCoordinateMode || ECoordinateMode.DataValue) as ECoordinateMode\n // })\n // break\n // case 'line':\n // sciAnnotation = new LineAnnotation({\n // x1: annotation.x1,\n // y1: annotation.y1,\n // x2: annotation.x2,\n // y2: annotation.y2,\n // stroke: convertColor(annotation.stroke, '#FF0000'),\n // strokeThickness: annotation.strokeThickness,\n // xCoordinateMode: (annotation.xCoordinateMode || ECoordinateMode.DataValue) as ECoordinateMode,\n // yCoordinateMode: (annotation.yCoordinateMode || ECoordinateMode.DataValue) as ECoordinateMode\n // })\n // break\n // case 'box':\n // sciAnnotation = new BoxAnnotation({\n // x1: annotation.x1,\n // y1: annotation.y1,\n // x2: annotation.x2,\n // y2: annotation.y2,\n // fill: convertColor(annotation.fill, '#FF0000'),\n // stroke: convertColor(annotation.stroke, '#FF0000'),\n // strokeThickness: annotation.strokeThickness,\n // xCoordinateMode: (annotation.xCoordinateMode || ECoordinateMode.DataValue) as ECoordinateMode,\n // yCoordinateMode: (annotation.yCoordinateMode || ECoordinateMode.DataValue) as ECoordinateMode\n // })\n // break\n // case 'horizontalLine':\n // sciAnnotation = new HorizontalLineAnnotation({\n // y1: annotation.y1,\n // stroke: convertColor(annotation.stroke, '#FF0000'),\n // strokeThickness: annotation.strokeThickness,\n // xCoordinateMode: (annotation.xCoordinateMode || ECoordinateMode.DataValue) as ECoordinateMode,\n // yCoordinateMode: (annotation.yCoordinateMode || ECoordinateMode.DataValue) as ECoordinateMode\n // })\n // break\n // case 'verticalLine':\n // sciAnnotation = new VerticalLineAnnotation({\n // x1: annotation.x1,\n // stroke: convertColor(annotation.stroke, '#FF0000'),\n // strokeThickness: annotation.strokeThickness,\n // xCoordinateMode: (annotation.xCoordinateMode || ECoordinateMode.DataValue) as ECoordinateMode,\n // yCoordinateMode: (annotation.yCoordinateMode || ECoordinateMode.DataValue) as ECoordinateMode\n // })\n // break\n // default:\n // break\n // }\n\n if (sciAnnotation) {\n sciChartSurface.annotations.add(sciAnnotation)\n }\n })\n }\n}\n\n/**\n * 데이터 append 시, 값이 변경된 경우(이전 값과 다를 때)만 annotation을 추가하고,\n * annotation의 텍스트는 변경된 값이 되도록 한다.\n */\nexport function addAnnotationsOnDataChange(\n sciChartSurface: SciChartSurface,\n annotations: OperatoChart.Annotation[] = [],\n fromData?: OperatoChart.ChartData,\n prevData: any[] = [],\n appendum: any[] = [],\n fontFamily?: string,\n fontColor?: string\n) {\n if (!annotations || !appendum || !appendum.length) return\n\n const attrX = fromData?.labelDataKey || ''\n\n annotations\n .filter(annotation => annotation.dataKey && (annotation.type == 'text' || annotation.type == 'verticalLine'))\n .forEach(annotation => {\n if (!annotation.dataKey) return\n\n let prevValue = prevData.length > 0 ? prevData[prevData.length - 1][annotation.dataKey] : undefined\n\n appendum.forEach((item, idx) => {\n const currentValue = item[annotation.dataKey!]\n const isChanged = prevValue !== currentValue\n const isTruthy = !!currentValue || annotation.text\n\n if (isChanged && isTruthy) {\n const xValue = attrX ? new Date(item[attrX]).getTime() / 1000 : prevData.length + idx\n\n // 수직선 annotation 추가\n if (annotation.type === 'verticalLine') {\n const sciVerticalLine = new VerticalLineAnnotation({\n x1: xValue,\n stroke: convertColor(annotation.stroke, '#FF0000'),\n strokeThickness: annotation.strokeThickness,\n xCoordinateMode: (annotation.xCoordinateMode || ECoordinateMode.DataValue) as ECoordinateMode,\n yCoordinateMode: (annotation.yCoordinateMode || ECoordinateMode.DataValue) as ECoordinateMode\n })\n sciChartSurface.annotations.add(sciVerticalLine)\n\n // 텍스트 annotation 추가 (변경된 값이 텍스트)\n const labelText = currentValue ? String(currentValue) : annotation.text\n const sciTextAnnotation = new TextAnnotation({\n x1: xValue,\n y1: getYPositionByAnchor(annotation.verticalAnchorPoint),\n text: labelText,\n horizontalAnchorPoint: (annotation.horizontalAnchorPoint ||\n EHorizontalAnchorPoint.Center) as EHorizontalAnchorPoint,\n verticalAnchorPoint: (annotation.verticalAnchorPoint ||\n EVerticalAnchorPoint.Bottom) as EVerticalAnchorPoint,\n fontFamily: annotation.fontFamily || fontFamily,\n fontSize: annotation.fontSize || 14,\n textColor: convertColor(annotation.stroke, '#FF0000'),\n background: 'rgba(255, 255, 255, 0.7)',\n padding: { left: 5, top: 5, right: 5, bottom: 5 },\n xCoordinateMode: ECoordinateMode.DataValue,\n yCoordinateMode: getYCoordModeByAnchor(annotation.verticalAnchorPoint)\n })\n sciChartSurface.annotations.add(sciTextAnnotation)\n }\n\n // 텍스트 annotation 타입도 지원\n if (annotation.type === 'text') {\n const sciTextAnnotation = new TextAnnotation({\n x1: xValue,\n y1: currentValue,\n text: String(currentValue),\n horizontalAnchorPoint: (annotation.horizontalAnchorPoint ||\n EHorizontalAnchorPoint.Center) as EHorizontalAnchorPoint,\n verticalAnchorPoint: (annotation.verticalAnchorPoint ||\n EVerticalAnchorPoint.Bottom) as EVerticalAnchorPoint,\n fontFamily: annotation.fontFamily || fontFamily,\n fontSize: annotation.fontSize || 14,\n textColor: convertColor(annotation.stroke, fontColor),\n xCoordinateMode: (annotation.xCoordinateMode || ECoordinateMode.DataValue) as ECoordinateMode,\n yCoordinateMode: (annotation.yCoordinateMode || ECoordinateMode.DataValue) as ECoordinateMode\n })\n sciChartSurface.annotations.add(sciTextAnnotation)\n }\n }\n\n prevValue = currentValue\n })\n })\n}\n\nexport function removeAnnotationsByData(\n sciChartSurface: SciChartSurface,\n removedData: any[] = [],\n fromData?: OperatoChart.ChartData,\n annotations: OperatoChart.Annotation[] = []\n) {\n if (!removedData || !removedData.length || !annotations.length) return\n\n const attrX = fromData?.labelDataKey || ''\n const removedXValues = removedData\n .map(item => {\n const xValue = attrX ? new Date(item[attrX]).getTime() / 1000 : undefined\n return isNaN(Number(xValue)) ? undefined : xValue\n })\n .filter(x => x !== undefined)\n\n if (!removedXValues.length) return\n\n // annotation config 조건에 맞는 것만 삭제\n annotations\n .filter(annotation => annotation.dataKey && (annotation.type === 'text' || annotation.type === 'verticalLine'))\n .forEach(() => {\n sciChartSurface.annotations\n .asArray()\n .filter((a: any) => removedXValues.includes(a.x1))\n .forEach((a: any) => sciChartSurface.annotations.remove(a))\n })\n}\n"]}
@@ -6,6 +6,12 @@ export default class ScichartMultipleTimeseries extends HTMLOverlayContainer {
6
6
  dispose(): void;
7
7
  setElementProperties(scichart: OxSciChartMultiple): void;
8
8
  get tagName(): string;
9
+ get appendum(): {
10
+ [attr: string]: any;
11
+ }[];
12
+ set appendum(appendum: {
13
+ [attr: string]: any;
14
+ }[]);
9
15
  get visibleSeries(): string[];
10
16
  set visibleSeries(visibleSeries: string[]);
11
17
  onchangeData(after: Properties, before: Properties): Promise<void>;
@@ -1,6 +1,7 @@
1
1
  /*
2
2
  * Copyright © HatioLab Inc. All rights reserved.
3
3
  */
4
+ import { __decorate } from "tslib";
4
5
  const NATURE = {
5
6
  mutable: false,
6
7
  resizable: true,
@@ -21,8 +22,8 @@ const NATURE = {
21
22
  help: 'scene/component/scichart-multiple-timeseries'
22
23
  };
23
24
  import './charts/ox-scichart-multiple.js';
24
- import { Component, HTMLOverlayContainer } from '@hatiolab/things-scene';
25
- export default class ScichartMultipleTimeseries extends HTMLOverlayContainer {
25
+ import { HTMLOverlayContainer, sceneComponent } from '@hatiolab/things-scene';
26
+ let ScichartMultipleTimeseries = class ScichartMultipleTimeseries extends HTMLOverlayContainer {
26
27
  static get nature() {
27
28
  return NATURE;
28
29
  }
@@ -34,13 +35,23 @@ export default class ScichartMultipleTimeseries extends HTMLOverlayContainer {
34
35
  setElementProperties(scichart) {
35
36
  const { data, chart, showOverview, visibleSeries } = this.state;
36
37
  scichart.config = chart;
37
- scichart.data = data;
38
+ scichart.data = JSON.parse(JSON.stringify(this.data || []));
38
39
  scichart.showOverview = showOverview;
39
40
  scichart.visibleSeries = visibleSeries || [];
40
41
  }
41
42
  get tagName() {
42
43
  return 'ox-scichart-multiple';
43
44
  }
45
+ get appendum() {
46
+ return super.appendum;
47
+ }
48
+ set appendum(appendum) {
49
+ const scichart = this.element;
50
+ if (scichart) {
51
+ const clonedAppendum = JSON.parse(JSON.stringify(Array.isArray(appendum) ? appendum : [appendum]));
52
+ scichart.appendData(clonedAppendum);
53
+ }
54
+ }
44
55
  get visibleSeries() {
45
56
  const { visibleSeries } = this.state;
46
57
  return visibleSeries || [];
@@ -51,8 +62,11 @@ export default class ScichartMultipleTimeseries extends HTMLOverlayContainer {
51
62
  }
52
63
  async onchangeData(after, before) {
53
64
  ;
54
- this.element.data = this.data;
65
+ this.element.data = JSON.parse(JSON.stringify(this.data || []));
55
66
  }
56
- }
57
- Component.register('scichart-multiple-timeseries', ScichartMultipleTimeseries);
67
+ };
68
+ ScichartMultipleTimeseries = __decorate([
69
+ sceneComponent('scichart-multiple-timeseries')
70
+ ], ScichartMultipleTimeseries);
71
+ export default ScichartMultipleTimeseries;
58
72
  //# sourceMappingURL=scichart-multiple-timeseries.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"scichart-multiple-timeseries.js","sourceRoot":"","sources":["../src/scichart-multiple-timeseries.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,MAAM,MAAM,GAAoB;IAC9B,OAAO,EAAE,KAAK;IACd,SAAS,EAAE,IAAI;IACf,SAAS,EAAE,IAAI;IACf,UAAU,EAAE;QACV;YACE,IAAI,EAAE,SAAS;YACf,KAAK,EAAE,eAAe;YACtB,IAAI,EAAE,cAAc;SACrB;QACD;YACE,IAAI,EAAE,UAAU;YAChB,KAAK,EAAE,EAAE;YACT,IAAI,EAAE,OAAO;SACd;KACF;IACD,gBAAgB,EAAE,eAAe;IACjC,IAAI,EAAE,8CAA8C;CACrD,CAAA;AAED,OAAO,kCAAkC,CAAA;AAEzC,OAAO,EAAE,SAAS,EAAE,oBAAoB,EAAsC,MAAM,wBAAwB,CAAA;AAI5G,MAAM,CAAC,OAAO,OAAO,0BAA2B,SAAQ,oBAAoB;IAC1E,MAAM,KAAK,MAAM;QACf,OAAO,MAAM,CAAA;IACf,CAAC;IAED,OAAO;;QACL,KAAK,CAAC,OAAO,EAAE,CACd;QAAA,MAAC,IAAI,CAAC,OAA8B,0CAAE,OAAO,EAAE,CAAA;IAClD,CAAC;IAED,oBAAoB,CAAC,QAA4B;QAC/C,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,YAAY,EAAE,aAAa,EAAE,GAAG,IAAI,CAAC,KAAK,CAAA;QAE/D,QAAQ,CAAC,MAAM,GAAG,KAAK,CAAA;QACvB,QAAQ,CAAC,IAAI,GAAG,IAAI,CAAA;QACpB,QAAQ,CAAC,YAAY,GAAG,YAAY,CAAA;QACpC,QAAQ,CAAC,aAAa,GAAG,aAAa,IAAI,EAAE,CAAA;IAC9C,CAAC;IAED,IAAI,OAAO;QACT,OAAO,sBAAsB,CAAA;IAC/B,CAAC;IAED,IAAI,aAAa;QACf,MAAM,EAAE,aAAa,EAAE,GAAG,IAAI,CAAC,KAAK,CAAA;QACpC,OAAO,aAAa,IAAI,EAAE,CAAA;IAC5B,CAAC;IAED,IAAI,aAAa,CAAC,aAAuB;QACvC,IAAI,CAAC,QAAQ,CAAC,eAAe,EAAE,aAAa,CAAC,CAC5C;QAAC,IAAI,CAAC,OAA8B,CAAC,aAAa,GAAG,aAAa,CAAA;IACrE,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,KAAiB,EAAE,MAAkB;QACtD,CAAC;QAAC,IAAI,CAAC,OAA8B,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAA;IACxD,CAAC;CACF;AAED,SAAS,CAAC,QAAQ,CAAC,8BAA8B,EAAE,0BAA0B,CAAC,CAAA","sourcesContent":["/*\n * Copyright © HatioLab Inc. All rights reserved.\n */\n\nconst NATURE: ComponentNature = {\n mutable: false,\n resizable: true,\n rotatable: true,\n properties: [\n {\n type: 'boolean',\n label: 'show-overview',\n name: 'showOverview'\n },\n {\n type: 'scichart',\n label: '',\n name: 'chart'\n }\n ],\n 'value-property': 'visibleSeries',\n help: 'scene/component/scichart-multiple-timeseries'\n}\n\nimport './charts/ox-scichart-multiple.js'\n\nimport { Component, HTMLOverlayContainer, Properties, ComponentNature, error } from '@hatiolab/things-scene'\n\nimport { OxSciChartMultiple } from './charts/ox-scichart-multiple.js'\n\nexport default class ScichartMultipleTimeseries extends HTMLOverlayContainer {\n static get nature() {\n return NATURE\n }\n\n dispose() {\n super.dispose()\n ;(this.element as OxSciChartMultiple)?.dispose()\n }\n\n setElementProperties(scichart: OxSciChartMultiple) {\n const { data, chart, showOverview, visibleSeries } = this.state\n\n scichart.config = chart\n scichart.data = data\n scichart.showOverview = showOverview\n scichart.visibleSeries = visibleSeries || []\n }\n\n get tagName() {\n return 'ox-scichart-multiple'\n }\n\n get visibleSeries() {\n const { visibleSeries } = this.state\n return visibleSeries || []\n }\n\n set visibleSeries(visibleSeries: string[]) {\n this.setState('visibleSeries', visibleSeries)\n ;(this.element as OxSciChartMultiple).visibleSeries = visibleSeries\n }\n\n async onchangeData(after: Properties, before: Properties): Promise<void> {\n ;(this.element as OxSciChartMultiple).data = this.data\n }\n}\n\nComponent.register('scichart-multiple-timeseries', ScichartMultipleTimeseries)\n"]}
1
+ {"version":3,"file":"scichart-multiple-timeseries.js","sourceRoot":"","sources":["../src/scichart-multiple-timeseries.ts"],"names":[],"mappings":"AAAA;;GAEG;;AAEH,MAAM,MAAM,GAAoB;IAC9B,OAAO,EAAE,KAAK;IACd,SAAS,EAAE,IAAI;IACf,SAAS,EAAE,IAAI;IACf,UAAU,EAAE;QACV;YACE,IAAI,EAAE,SAAS;YACf,KAAK,EAAE,eAAe;YACtB,IAAI,EAAE,cAAc;SACrB;QACD;YACE,IAAI,EAAE,UAAU;YAChB,KAAK,EAAE,EAAE;YACT,IAAI,EAAE,OAAO;SACd;KACF;IACD,gBAAgB,EAAE,eAAe;IACjC,IAAI,EAAE,8CAA8C;CACrD,CAAA;AAED,OAAO,kCAAkC,CAAA;AAEzC,OAAO,EAEL,oBAAoB,EAIpB,cAAc,EACf,MAAM,wBAAwB,CAAA;AAKhB,IAAM,0BAA0B,GAAhC,MAAM,0BAA2B,SAAQ,oBAAoB;IAC1E,MAAM,KAAK,MAAM;QACf,OAAO,MAAM,CAAA;IACf,CAAC;IAED,OAAO;;QACL,KAAK,CAAC,OAAO,EAAE,CACd;QAAA,MAAC,IAAI,CAAC,OAA8B,0CAAE,OAAO,EAAE,CAAA;IAClD,CAAC;IAED,oBAAoB,CAAC,QAA4B;QAC/C,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,YAAY,EAAE,aAAa,EAAE,GAAG,IAAI,CAAC,KAAK,CAAA;QAE/D,QAAQ,CAAC,MAAM,GAAG,KAAK,CAAA;QACvB,QAAQ,CAAC,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,CAAA;QAC3D,QAAQ,CAAC,YAAY,GAAG,YAAY,CAAA;QACpC,QAAQ,CAAC,aAAa,GAAG,aAAa,IAAI,EAAE,CAAA;IAC9C,CAAC;IAED,IAAI,OAAO;QACT,OAAO,sBAAsB,CAAA;IAC/B,CAAC;IAED,IAAI,QAAQ;QACV,OAAO,KAAK,CAAC,QAAQ,CAAA;IACvB,CAAC;IAED,IAAI,QAAQ,CAAC,QAAmC;QAC9C,MAAM,QAAQ,GAAG,IAAI,CAAC,OAA6B,CAAA;QACnD,IAAI,QAAQ,EAAE,CAAC;YACb,MAAM,cAAc,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAA;YAClG,QAAQ,CAAC,UAAU,CAAC,cAAc,CAAC,CAAA;QACrC,CAAC;IACH,CAAC;IAED,IAAI,aAAa;QACf,MAAM,EAAE,aAAa,EAAE,GAAG,IAAI,CAAC,KAAK,CAAA;QACpC,OAAO,aAAa,IAAI,EAAE,CAAA;IAC5B,CAAC;IAED,IAAI,aAAa,CAAC,aAAuB;QACvC,IAAI,CAAC,QAAQ,CAAC,eAAe,EAAE,aAAa,CAAC,CAC5C;QAAC,IAAI,CAAC,OAA8B,CAAC,aAAa,GAAG,aAAa,CAAA;IACrE,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,KAAiB,EAAE,MAAkB;QACtD,CAAC;QAAC,IAAI,CAAC,OAA8B,CAAC,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,CAAA;IAC1F,CAAC;CACF,CAAA;AAhDoB,0BAA0B;IAD9C,cAAc,CAAC,8BAA8B,CAAC;GAC1B,0BAA0B,CAgD9C;eAhDoB,0BAA0B","sourcesContent":["/*\n * Copyright © HatioLab Inc. All rights reserved.\n */\n\nconst NATURE: ComponentNature = {\n mutable: false,\n resizable: true,\n rotatable: true,\n properties: [\n {\n type: 'boolean',\n label: 'show-overview',\n name: 'showOverview'\n },\n {\n type: 'scichart',\n label: '',\n name: 'chart'\n }\n ],\n 'value-property': 'visibleSeries',\n help: 'scene/component/scichart-multiple-timeseries'\n}\n\nimport './charts/ox-scichart-multiple.js'\n\nimport {\n Component,\n HTMLOverlayContainer,\n Properties,\n ComponentNature,\n error,\n sceneComponent\n} from '@hatiolab/things-scene'\n\nimport { OxSciChartMultiple } from './charts/ox-scichart-multiple.js'\n\n@sceneComponent('scichart-multiple-timeseries')\nexport default class ScichartMultipleTimeseries extends HTMLOverlayContainer {\n static get nature() {\n return NATURE\n }\n\n dispose() {\n super.dispose()\n ;(this.element as OxSciChartMultiple)?.dispose()\n }\n\n setElementProperties(scichart: OxSciChartMultiple) {\n const { data, chart, showOverview, visibleSeries } = this.state\n\n scichart.config = chart\n scichart.data = JSON.parse(JSON.stringify(this.data || []))\n scichart.showOverview = showOverview\n scichart.visibleSeries = visibleSeries || []\n }\n\n get tagName() {\n return 'ox-scichart-multiple'\n }\n\n get appendum() {\n return super.appendum\n }\n\n set appendum(appendum: { [attr: string]: any }[]) {\n const scichart = this.element as OxSciChartMultiple\n if (scichart) {\n const clonedAppendum = JSON.parse(JSON.stringify(Array.isArray(appendum) ? appendum : [appendum]))\n scichart.appendData(clonedAppendum)\n }\n }\n\n get visibleSeries() {\n const { visibleSeries } = this.state\n return visibleSeries || []\n }\n\n set visibleSeries(visibleSeries: string[]) {\n this.setState('visibleSeries', visibleSeries)\n ;(this.element as OxSciChartMultiple).visibleSeries = visibleSeries\n }\n\n async onchangeData(after: Properties, before: Properties): Promise<void> {\n ;(this.element as OxSciChartMultiple).data = JSON.parse(JSON.stringify(this.data || []))\n }\n}\n"]}
@@ -6,5 +6,11 @@ export default class ScichartTimeSeries extends HTMLOverlayContainer {
6
6
  setElementProperties(scichart: OxSciChart): void;
7
7
  dispose(): void;
8
8
  get tagName(): string;
9
+ get appendum(): {
10
+ [attr: string]: any;
11
+ }[];
12
+ set appendum(appendum: {
13
+ [attr: string]: any;
14
+ }[]);
9
15
  onchangeData(after: Properties, before: Properties): Promise<void>;
10
16
  }
@@ -1,6 +1,7 @@
1
1
  /*
2
2
  * Copyright © HatioLab Inc. All rights reserved.
3
3
  */
4
+ import { __decorate } from "tslib";
4
5
  const NATURE = {
5
6
  mutable: false,
6
7
  resizable: true,
@@ -15,15 +16,15 @@ const NATURE = {
15
16
  help: 'scene/component/scichart-timeseries'
16
17
  };
17
18
  import './charts/ox-scichart.js';
18
- import { Component, HTMLOverlayContainer } from '@hatiolab/things-scene';
19
- export default class ScichartTimeSeries extends HTMLOverlayContainer {
19
+ import { HTMLOverlayContainer, sceneComponent } from '@hatiolab/things-scene';
20
+ let ScichartTimeSeries = class ScichartTimeSeries extends HTMLOverlayContainer {
20
21
  static get nature() {
21
22
  return NATURE;
22
23
  }
23
24
  setElementProperties(scichart) {
24
25
  const { data, chart } = this.state;
25
26
  scichart.config = chart;
26
- scichart.data = data;
27
+ scichart.data = JSON.parse(JSON.stringify(data || []));
27
28
  }
28
29
  dispose() {
29
30
  var _a;
@@ -33,10 +34,23 @@ export default class ScichartTimeSeries extends HTMLOverlayContainer {
33
34
  get tagName() {
34
35
  return 'ox-scichart';
35
36
  }
37
+ get appendum() {
38
+ return super.appendum;
39
+ }
40
+ set appendum(appendum) {
41
+ const scichart = this.element;
42
+ if (scichart) {
43
+ const clonedAppendum = JSON.parse(JSON.stringify(Array.isArray(appendum) ? appendum : [appendum]));
44
+ scichart.appendData(clonedAppendum);
45
+ }
46
+ }
36
47
  async onchangeData(after, before) {
37
48
  ;
38
- this.element.data = this.data;
49
+ this.element.data = JSON.parse(JSON.stringify(this.data || []));
39
50
  }
40
- }
41
- Component.register('scichart-timeseries', ScichartTimeSeries);
51
+ };
52
+ ScichartTimeSeries = __decorate([
53
+ sceneComponent('scichart-timeseries')
54
+ ], ScichartTimeSeries);
55
+ export default ScichartTimeSeries;
42
56
  //# sourceMappingURL=scichart-timeseries.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"scichart-timeseries.js","sourceRoot":"","sources":["../src/scichart-timeseries.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,MAAM,MAAM,GAAoB;IAC9B,OAAO,EAAE,KAAK;IACd,SAAS,EAAE,IAAI;IACf,SAAS,EAAE,IAAI;IACf,UAAU,EAAE;QACV;YACE,IAAI,EAAE,UAAU;YAChB,KAAK,EAAE,EAAE;YACT,IAAI,EAAE,OAAO;SACd;KACF;IACD,IAAI,EAAE,qCAAqC;CAC5C,CAAA;AAED,OAAO,yBAAyB,CAAA;AAEhC,OAAO,EAAE,SAAS,EAAE,oBAAoB,EAAsC,MAAM,wBAAwB,CAAA;AAI5G,MAAM,CAAC,OAAO,OAAO,kBAAmB,SAAQ,oBAAoB;IAClE,MAAM,KAAK,MAAM;QACf,OAAO,MAAM,CAAA;IACf,CAAC;IAED,oBAAoB,CAAC,QAAoB;QACvC,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,IAAI,CAAC,KAAK,CAAA;QAElC,QAAQ,CAAC,MAAM,GAAG,KAAK,CAAA;QACvB,QAAQ,CAAC,IAAI,GAAG,IAAI,CAAA;IACtB,CAAC;IAED,OAAO;;QACL,KAAK,CAAC,OAAO,EAAE,CACd;QAAA,MAAC,IAAI,CAAC,OAAsB,0CAAE,OAAO,EAAE,CAAA;IAC1C,CAAC;IAED,IAAI,OAAO;QACT,OAAO,aAAa,CAAA;IACtB,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,KAAiB,EAAE,MAAkB;QACtD,CAAC;QAAC,IAAI,CAAC,OAAsB,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAA;IAChD,CAAC;CACF;AAED,SAAS,CAAC,QAAQ,CAAC,qBAAqB,EAAE,kBAAkB,CAAC,CAAA","sourcesContent":["/*\n * Copyright © HatioLab Inc. All rights reserved.\n */\n\nconst NATURE: ComponentNature = {\n mutable: false,\n resizable: true,\n rotatable: true,\n properties: [\n {\n type: 'scichart',\n label: '',\n name: 'chart'\n }\n ],\n help: 'scene/component/scichart-timeseries'\n}\n\nimport './charts/ox-scichart.js'\n\nimport { Component, HTMLOverlayContainer, Properties, ComponentNature, error } from '@hatiolab/things-scene'\n\nimport { OxSciChart } from './charts/ox-scichart.js'\n\nexport default class ScichartTimeSeries extends HTMLOverlayContainer {\n static get nature() {\n return NATURE\n }\n\n setElementProperties(scichart: OxSciChart) {\n const { data, chart } = this.state\n\n scichart.config = chart\n scichart.data = data\n }\n\n dispose() {\n super.dispose()\n ;(this.element as OxSciChart)?.dispose()\n }\n\n get tagName() {\n return 'ox-scichart'\n }\n\n async onchangeData(after: Properties, before: Properties): Promise<void> {\n ;(this.element as OxSciChart).data = this.data\n }\n}\n\nComponent.register('scichart-timeseries', ScichartTimeSeries)\n"]}
1
+ {"version":3,"file":"scichart-timeseries.js","sourceRoot":"","sources":["../src/scichart-timeseries.ts"],"names":[],"mappings":"AAAA;;GAEG;;AAEH,MAAM,MAAM,GAAoB;IAC9B,OAAO,EAAE,KAAK;IACd,SAAS,EAAE,IAAI;IACf,SAAS,EAAE,IAAI;IACf,UAAU,EAAE;QACV;YACE,IAAI,EAAE,UAAU;YAChB,KAAK,EAAE,EAAE;YACT,IAAI,EAAE,OAAO;SACd;KACF;IACD,IAAI,EAAE,qCAAqC;CAC5C,CAAA;AAED,OAAO,yBAAyB,CAAA;AAEhC,OAAO,EAEL,oBAAoB,EAIpB,cAAc,EACf,MAAM,wBAAwB,CAAA;AAKhB,IAAM,kBAAkB,GAAxB,MAAM,kBAAmB,SAAQ,oBAAoB;IAClE,MAAM,KAAK,MAAM;QACf,OAAO,MAAM,CAAA;IACf,CAAC;IAED,oBAAoB,CAAC,QAAoB;QACvC,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,IAAI,CAAC,KAAK,CAAA;QAElC,QAAQ,CAAC,MAAM,GAAG,KAAK,CAAA;QACvB,QAAQ,CAAC,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,CAAA;IACxD,CAAC;IAED,OAAO;;QACL,KAAK,CAAC,OAAO,EAAE,CACd;QAAA,MAAC,IAAI,CAAC,OAAsB,0CAAE,OAAO,EAAE,CAAA;IAC1C,CAAC;IAED,IAAI,OAAO;QACT,OAAO,aAAa,CAAA;IACtB,CAAC;IAED,IAAI,QAAQ;QACV,OAAO,KAAK,CAAC,QAAQ,CAAA;IACvB,CAAC;IAED,IAAI,QAAQ,CAAC,QAAmC;QAC9C,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAqB,CAAA;QAC3C,IAAI,QAAQ,EAAE,CAAC;YACb,MAAM,cAAc,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAA;YAClG,QAAQ,CAAC,UAAU,CAAC,cAAc,CAAC,CAAA;QACrC,CAAC;IACH,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,KAAiB,EAAE,MAAkB;QACtD,CAAC;QAAC,IAAI,CAAC,OAAsB,CAAC,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,CAAA;IAClF,CAAC;CACF,CAAA;AApCoB,kBAAkB;IADtC,cAAc,CAAC,qBAAqB,CAAC;GACjB,kBAAkB,CAoCtC;eApCoB,kBAAkB","sourcesContent":["/*\n * Copyright © HatioLab Inc. All rights reserved.\n */\n\nconst NATURE: ComponentNature = {\n mutable: false,\n resizable: true,\n rotatable: true,\n properties: [\n {\n type: 'scichart',\n label: '',\n name: 'chart'\n }\n ],\n help: 'scene/component/scichart-timeseries'\n}\n\nimport './charts/ox-scichart.js'\n\nimport {\n Component,\n HTMLOverlayContainer,\n Properties,\n ComponentNature,\n error,\n sceneComponent\n} from '@hatiolab/things-scene'\n\nimport { OxSciChart } from './charts/ox-scichart.js'\n\n@sceneComponent('scichart-timeseries')\nexport default class ScichartTimeSeries extends HTMLOverlayContainer {\n static get nature() {\n return NATURE\n }\n\n setElementProperties(scichart: OxSciChart) {\n const { data, chart } = this.state\n\n scichart.config = chart\n scichart.data = JSON.parse(JSON.stringify(data || []))\n }\n\n dispose() {\n super.dispose()\n ;(this.element as OxSciChart)?.dispose()\n }\n\n get tagName() {\n return 'ox-scichart'\n }\n\n get appendum() {\n return super.appendum\n }\n\n set appendum(appendum: { [attr: string]: any }[]) {\n const scichart = this.element as OxSciChart\n if (scichart) {\n const clonedAppendum = JSON.parse(JSON.stringify(Array.isArray(appendum) ? appendum : [appendum]))\n scichart.appendData(clonedAppendum)\n }\n }\n\n async onchangeData(after: Properties, before: Properties): Promise<void> {\n ;(this.element as OxSciChart).data = JSON.parse(JSON.stringify(this.data || []))\n }\n}\n"]}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@operato/scene-scichart",
3
3
  "description": "scichart wrapping component",
4
- "version": "9.0.0-beta.7",
4
+ "version": "9.0.0",
5
5
  "type": "module",
6
6
  "license": "MIT",
7
7
  "things-scene": true,
@@ -28,8 +28,8 @@
28
28
  "migration": "things-factory-migration"
29
29
  },
30
30
  "dependencies": {
31
- "@hatiolab/things-scene": "^9.0.0-beta",
32
- "@operato/chart": "^9.0.0-beta",
31
+ "@hatiolab/things-scene": "^9.0.0",
32
+ "@operato/chart": "^9.0.0",
33
33
  "scichart": "^3.4.617"
34
34
  },
35
35
  "devDependencies": {
@@ -60,5 +60,5 @@
60
60
  "prettier --write"
61
61
  ]
62
62
  },
63
- "gitHead": "97e5af48dff339375c9fb2668741276409321b0b"
63
+ "gitHead": "0c295810b93773e6373f96d69fe62e930d71c0cd"
64
64
  }