@nativescript-community/svelte-native-nativescript-ui
Version:
Svelte Native support for Nativescript UI
74 lines (71 loc) • 3.9 kB
JavaScript
import { registerElement, NativeElementNode, NativeElementPropType, registerNativeConfigElement, NativeViewElementNode } from 'svelte-native/dom';
import { RadPieChart, RadCartesianChart, Palette, PieSeries, DonutSeries, LineSeries, SplineSeries, SplineAreaSeries, AreaSeries, BarSeries, RangeBarSeries, BubbleSeries, ScatterBubbleSeries, ScatterSeries, CandlestickSeries, OhlcSeries, CategoricalAxis, DateTimeCategoricalAxis, DateTimeContinuousAxis, LinearAxis, LogarithmicAxis, RadCartesianChartGrid, RadLegendView, PaletteEntry, Trackball, ChartGridLineAnnotation, ChartPlotBandAnnotation } from 'nativescript-ui-chart';
class BaseChartElement extends NativeViewElementNode {
constructor(tagName, viewClass) {
super(tagName, viewClass, null, { "series": NativeElementPropType.ObservableArray,
"annotations": NativeElementPropType.ObservableArray,
"palettes": NativeElementPropType.ObservableArray });
}
}
class PieChartElement extends BaseChartElement {
constructor() {
super('radPieChart', RadPieChart);
}
}
class CartesianChartElement extends BaseChartElement {
constructor() {
super('radCartesianChart', RadCartesianChart);
}
}
class PaletteElement extends NativeElementNode {
constructor() {
super('pallete', Palette, "palettes", { "entries": NativeElementPropType.ObservableArray });
}
}
class ChartSeriesElement extends NativeElementNode {
constructor(tagName, elClass) {
super(tagName, elClass, "series", { "seriesName": NativeElementPropType.Value });
}
}
class Charts {
static register() {
const registerConfigElement = (tag, native, parentProp = null) => registerNativeConfigElement(tag, () => native, parentProp);
const registerSeries = (tag, native) => registerElement(tag, () => new ChartSeriesElement(tag, native));
//chart types
registerElement('radPieChart', () => new PieChartElement());
registerElement('radCartesianChart', () => new CartesianChartElement());
//series types
registerSeries('pieSeries', PieSeries);
registerSeries('donutSeries', DonutSeries);
registerSeries('lineSeries', LineSeries);
registerSeries('splineSeries', SplineSeries);
registerSeries('splineAreaSeries', SplineAreaSeries);
registerSeries('areaSeries', AreaSeries);
registerSeries('barSeries', BarSeries);
registerSeries('rangeBarSeries', RangeBarSeries);
registerSeries('bubbleSeries', BubbleSeries);
registerSeries('scatterBubbleSeries', ScatterBubbleSeries);
registerSeries('scatterSeries', ScatterSeries);
registerSeries('candlestickSeries', CandlestickSeries);
registerSeries('OhlcSeries', OhlcSeries);
//axes types
registerConfigElement('categoricalAxis', CategoricalAxis);
registerConfigElement('dateTimeCategoricalAxis', DateTimeCategoricalAxis);
registerConfigElement('dateTimeContinuousAxis', DateTimeContinuousAxis);
registerConfigElement('linearAxis', LinearAxis);
registerConfigElement('logarithmicAxis', LogarithmicAxis);
//grid
registerConfigElement('radCartesianChartGrid', RadCartesianChartGrid, "grid");
//legend
registerConfigElement('radLegendView', RadLegendView, "legend");
//palette
registerConfigElement('paletteEntry', PaletteEntry, "entries");
registerElement('palette', () => new PaletteElement());
//Trackball
registerConfigElement('trackball', Trackball, "trackball");
//Annotations
registerConfigElement('chartGridLineAnnotation', ChartGridLineAnnotation, "annotations");
registerConfigElement('chartPlotBandAnnotation', ChartPlotBandAnnotation, "annotations");
}
}
export { Charts as default };