@syncfusion/ej2-vue-charts
Version:
Feature-rich chart control with built-in support for over 25 chart types, technical indictors, trendline, zooming, tooltip, selection, crosshair and trackball. for Vue
1,394 lines (1,373 loc) • 119 kB
JavaScript
import { Chart, AccumulationChart, RangeNavigator, Sparkline, Smithchart, StockChart, BulletChart, Chart3D, CircularChart3D } from '@syncfusion/ej2-charts';
export * from '@syncfusion/ej2-charts';
import { vueDefineComponent, isExecute, gh, getProps, ComponentBase } from '@syncfusion/ej2-vue-base';
import { isNullOrUndefined, isUndefined } from '@syncfusion/ej2-base';
let TrendlinesDirective = vueDefineComponent({
inject: { custom: { default: null } },
render(createElement) {
if (!isExecute) {
let h = !isExecute ? gh : createElement;
let slots = null;
if (!isNullOrUndefined(this.$slots.default)) {
slots = !isExecute ? this.$slots.default() : this.$slots.default;
}
return h('div', { class: 'e-directive' }, slots);
}
return;
},
updated() {
if (!isExecute && this.custom) {
this.custom();
}
},
methods: {
getTag() {
return 'e-trendlines';
}
}
});
const TrendlinesPlugin = {
name: 'e-trendlines',
install(Vue) {
Vue.component(TrendlinesPlugin.name, TrendlinesDirective);
}
};
let TrendlineDirective = vueDefineComponent({
render() {
return;
},
methods: {
getTag() {
return 'e-trendline';
}
}
});
const TrendlinePlugin = {
name: 'e-trendline',
install(Vue) {
Vue.component(TrendlinePlugin.name, TrendlineDirective);
}
};
let SegmentsDirective = vueDefineComponent({
inject: { custom: { default: null } },
render(createElement) {
if (!isExecute) {
let h = !isExecute ? gh : createElement;
let slots = null;
if (!isNullOrUndefined(this.$slots.default)) {
slots = !isExecute ? this.$slots.default() : this.$slots.default;
}
return h('div', { class: 'e-directive' }, slots);
}
return;
},
updated() {
if (!isExecute && this.custom) {
this.custom();
}
},
methods: {
getTag() {
return 'e-segments';
}
}
});
const SegmentsPlugin = {
name: 'e-segments',
install(Vue) {
Vue.component(SegmentsPlugin.name, SegmentsDirective);
}
};
let SegmentDirective = vueDefineComponent({
render() {
return;
},
methods: {
getTag() {
return 'e-segment';
}
}
});
const SegmentPlugin = {
name: 'e-segment',
install(Vue) {
Vue.component(SegmentPlugin.name, SegmentDirective);
}
};
let SeriesCollectionDirective = vueDefineComponent({
inject: { custom: { default: null } },
render(createElement) {
if (!isExecute) {
let h = !isExecute ? gh : createElement;
let slots = null;
if (!isNullOrUndefined(this.$slots.default)) {
slots = !isExecute ? this.$slots.default() : this.$slots.default;
}
return h('div', { class: 'e-directive' }, slots);
}
return;
},
updated() {
if (!isExecute && this.custom) {
this.custom();
}
},
methods: {
getTag() {
return 'e-series-collection';
}
}
});
const SeriesCollectionPlugin = {
name: 'e-series-collection',
install(Vue) {
Vue.component(SeriesCollectionPlugin.name, SeriesCollectionDirective);
}
};
let SeriesDirective = vueDefineComponent({
render() {
return;
},
methods: {
getTag() {
return 'e-series';
}
}
});
const SeriesPlugin = {
name: 'e-series',
install(Vue) {
Vue.component(SeriesPlugin.name, SeriesDirective);
}
};
let StripLinesDirective = vueDefineComponent({
inject: { custom: { default: null } },
render(createElement) {
if (!isExecute) {
let h = !isExecute ? gh : createElement;
let slots = null;
if (!isNullOrUndefined(this.$slots.default)) {
slots = !isExecute ? this.$slots.default() : this.$slots.default;
}
return h('div', { class: 'e-directive' }, slots);
}
return;
},
updated() {
if (!isExecute && this.custom) {
this.custom();
}
},
methods: {
getTag() {
return 'e-striplines';
}
}
});
const StripLinesPlugin = {
name: 'e-striplines',
install(Vue) {
Vue.component(StripLinesPlugin.name, StripLinesDirective);
}
};
let StripLineDirective = vueDefineComponent({
render() {
return;
},
methods: {
getTag() {
return 'e-stripline';
}
}
});
const StripLinePlugin = {
name: 'e-stripline',
install(Vue) {
Vue.component(StripLinePlugin.name, StripLineDirective);
}
};
let CategoriesDirective = vueDefineComponent({
inject: { custom: { default: null } },
render(createElement) {
if (!isExecute) {
let h = !isExecute ? gh : createElement;
let slots = null;
if (!isNullOrUndefined(this.$slots.default)) {
slots = !isExecute ? this.$slots.default() : this.$slots.default;
}
return h('div', { class: 'e-directive' }, slots);
}
return;
},
updated() {
if (!isExecute && this.custom) {
this.custom();
}
},
methods: {
getTag() {
return 'e-categories';
}
}
});
const CategoriesPlugin = {
name: 'e-categories',
install(Vue) {
Vue.component(CategoriesPlugin.name, CategoriesDirective);
}
};
let CategoryDirective = vueDefineComponent({
render() {
return;
},
methods: {
getTag() {
return 'e-category';
}
}
});
const CategoryPlugin = {
name: 'e-category',
install(Vue) {
Vue.component(CategoryPlugin.name, CategoryDirective);
}
};
let MultiLevelLabelsDirective = vueDefineComponent({
inject: { custom: { default: null } },
render(createElement) {
if (!isExecute) {
let h = !isExecute ? gh : createElement;
let slots = null;
if (!isNullOrUndefined(this.$slots.default)) {
slots = !isExecute ? this.$slots.default() : this.$slots.default;
}
return h('div', { class: 'e-directive' }, slots);
}
return;
},
updated() {
if (!isExecute && this.custom) {
this.custom();
}
},
methods: {
getTag() {
return 'e-multilevellabels';
}
}
});
const MultiLevelLabelsPlugin = {
name: 'e-multilevellabels',
install(Vue) {
Vue.component(MultiLevelLabelsPlugin.name, MultiLevelLabelsDirective);
}
};
let MultiLevelLabelDirective = vueDefineComponent({
render() {
return;
},
methods: {
getTag() {
return 'e-multilevellabel';
}
}
});
const MultiLevelLabelPlugin = {
name: 'e-multilevellabel',
install(Vue) {
Vue.component(MultiLevelLabelPlugin.name, MultiLevelLabelDirective);
}
};
let AxesDirective = vueDefineComponent({
inject: { custom: { default: null } },
render(createElement) {
if (!isExecute) {
let h = !isExecute ? gh : createElement;
let slots = null;
if (!isNullOrUndefined(this.$slots.default)) {
slots = !isExecute ? this.$slots.default() : this.$slots.default;
}
return h('div', { class: 'e-directive' }, slots);
}
return;
},
updated() {
if (!isExecute && this.custom) {
this.custom();
}
},
methods: {
getTag() {
return 'e-axes';
}
}
});
const AxesPlugin = {
name: 'e-axes',
install(Vue) {
Vue.component(AxesPlugin.name, AxesDirective);
}
};
let AxisDirective = vueDefineComponent({
render() {
return;
},
methods: {
getTag() {
return 'e-axis';
}
}
});
const AxisPlugin = {
name: 'e-axis',
install(Vue) {
Vue.component(AxisPlugin.name, AxisDirective);
}
};
let RowsDirective = vueDefineComponent({
inject: { custom: { default: null } },
render(createElement) {
if (!isExecute) {
let h = !isExecute ? gh : createElement;
let slots = null;
if (!isNullOrUndefined(this.$slots.default)) {
slots = !isExecute ? this.$slots.default() : this.$slots.default;
}
return h('div', { class: 'e-directive' }, slots);
}
return;
},
updated() {
if (!isExecute && this.custom) {
this.custom();
}
},
methods: {
getTag() {
return 'e-rows';
}
}
});
const RowsPlugin = {
name: 'e-rows',
install(Vue) {
Vue.component(RowsPlugin.name, RowsDirective);
}
};
let RowDirective = vueDefineComponent({
render() {
return;
},
methods: {
getTag() {
return 'e-row';
}
}
});
const RowPlugin = {
name: 'e-row',
install(Vue) {
Vue.component(RowPlugin.name, RowDirective);
}
};
let ColumnsDirective = vueDefineComponent({
inject: { custom: { default: null } },
render(createElement) {
if (!isExecute) {
let h = !isExecute ? gh : createElement;
let slots = null;
if (!isNullOrUndefined(this.$slots.default)) {
slots = !isExecute ? this.$slots.default() : this.$slots.default;
}
return h('div', { class: 'e-directive' }, slots);
}
return;
},
updated() {
if (!isExecute && this.custom) {
this.custom();
}
},
methods: {
getTag() {
return 'e-columns';
}
}
});
const ColumnsPlugin = {
name: 'e-columns',
install(Vue) {
Vue.component(ColumnsPlugin.name, ColumnsDirective);
}
};
let ColumnDirective = vueDefineComponent({
render() {
return;
},
methods: {
getTag() {
return 'e-column';
}
}
});
const ColumnPlugin = {
name: 'e-column',
install(Vue) {
Vue.component(ColumnPlugin.name, ColumnDirective);
}
};
let RangeColorSettingsDirective = vueDefineComponent({
inject: { custom: { default: null } },
render(createElement) {
if (!isExecute) {
let h = !isExecute ? gh : createElement;
let slots = null;
if (!isNullOrUndefined(this.$slots.default)) {
slots = !isExecute ? this.$slots.default() : this.$slots.default;
}
return h('div', { class: 'e-directive' }, slots);
}
return;
},
updated() {
if (!isExecute && this.custom) {
this.custom();
}
},
methods: {
getTag() {
return 'e-rangecolorsettings';
}
}
});
const RangeColorSettingsPlugin = {
name: 'e-rangecolorsettings',
install(Vue) {
Vue.component(RangeColorSettingsPlugin.name, RangeColorSettingsDirective);
}
};
let RangeColorSettingDirective = vueDefineComponent({
render() {
return;
},
methods: {
getTag() {
return 'e-rangecolorsetting';
}
}
});
const RangeColorSettingPlugin = {
name: 'e-rangecolorsetting',
install(Vue) {
Vue.component(RangeColorSettingPlugin.name, RangeColorSettingDirective);
}
};
let AnnotationsDirective = vueDefineComponent({
inject: { custom: { default: null } },
render(createElement) {
if (!isExecute) {
let h = !isExecute ? gh : createElement;
let slots = null;
if (!isNullOrUndefined(this.$slots.default)) {
slots = !isExecute ? this.$slots.default() : this.$slots.default;
}
return h('div', { class: 'e-directive' }, slots);
}
return;
},
updated() {
if (!isExecute && this.custom) {
this.custom();
}
},
methods: {
getTag() {
return 'e-annotations';
}
}
});
const AnnotationsPlugin = {
name: 'e-annotations',
install(Vue) {
Vue.component(AnnotationsPlugin.name, AnnotationsDirective);
}
};
/**
* `e-annotation` directive represent a annotation of the VueJS Chart.
* It must be contained in a Chart component(`ejs-chart`).
* ```vue
* <ejs-chart>
* <e-annotations>
* <e-annotation content='ID' />
* <e-annotation content='ID' />
* </e-annotations>
* </ejs-chart>
* ```
*/
let AnnotationDirective = vueDefineComponent({
render() {
return;
},
methods: {
getTag() {
return 'e-annotation';
}
}
});
const AnnotationPlugin = {
name: 'e-annotation',
install(Vue) {
Vue.component(AnnotationPlugin.name, AnnotationDirective);
}
};
let SelectedDataIndexesDirective = vueDefineComponent({
inject: { custom: { default: null } },
render(createElement) {
if (!isExecute) {
let h = !isExecute ? gh : createElement;
let slots = null;
if (!isNullOrUndefined(this.$slots.default)) {
slots = !isExecute ? this.$slots.default() : this.$slots.default;
}
return h('div', { class: 'e-directive' }, slots);
}
return;
},
updated() {
if (!isExecute && this.custom) {
this.custom();
}
},
methods: {
getTag() {
return 'e-selecteddataindexes';
}
}
});
const SelectedDataIndexesPlugin = {
name: 'e-selecteddataindexes',
install(Vue) {
Vue.component(SelectedDataIndexesPlugin.name, SelectedDataIndexesDirective);
}
};
let SelectedDataIndexDirective = vueDefineComponent({
render() {
return;
},
methods: {
getTag() {
return 'e-selecteddataindex';
}
}
});
const SelectedDataIndexPlugin = {
name: 'e-selecteddataindex',
install(Vue) {
Vue.component(SelectedDataIndexPlugin.name, SelectedDataIndexDirective);
}
};
let IndicatorsDirective = vueDefineComponent({
inject: { custom: { default: null } },
render(createElement) {
if (!isExecute) {
let h = !isExecute ? gh : createElement;
let slots = null;
if (!isNullOrUndefined(this.$slots.default)) {
slots = !isExecute ? this.$slots.default() : this.$slots.default;
}
return h('div', { class: 'e-directive' }, slots);
}
return;
},
updated() {
if (!isExecute && this.custom) {
this.custom();
}
},
methods: {
getTag() {
return 'e-indicators';
}
}
});
const IndicatorsPlugin = {
name: 'e-indicators',
install(Vue) {
Vue.component(IndicatorsPlugin.name, IndicatorsDirective);
}
};
let IndicatorDirective = vueDefineComponent({
render() {
return;
},
methods: {
getTag() {
return 'e-indicator';
}
}
});
const IndicatorPlugin = {
name: 'e-indicator',
install(Vue) {
Vue.component(IndicatorPlugin.name, IndicatorDirective);
}
};
const properties = ['isLazyUpdate', 'plugins', 'accessibility', 'allowExport', 'allowMultiSelection', 'annotations', 'axes', 'background', 'backgroundImage', 'border', 'chartArea', 'columns', 'crosshair', 'currencyCode', 'dataSource', 'description', 'enableAnimation', 'enableAutoIntervalOnBothAxis', 'enableCanvas', 'enableExport', 'enableHtmlSanitizer', 'enablePersistence', 'enableRtl', 'enableSideBySidePlacement', 'focusBorderColor', 'focusBorderMargin', 'focusBorderWidth', 'height', 'highlightColor', 'highlightMode', 'highlightPattern', 'indicators', 'isMultiSelect', 'isTransposed', 'legendSettings', 'locale', 'margin', 'palettes', 'primaryXAxis', 'primaryYAxis', 'rangeColorSettings', 'rows', 'selectedDataIndexes', 'selectionMode', 'selectionPattern', 'series', 'stackLabels', 'subTitle', 'subTitleStyle', 'tabIndex', 'theme', 'title', 'titleStyle', 'tooltip', 'useGroupingSeparator', 'width', 'zoomSettings', 'afterExport', 'animationComplete', 'annotationRender', 'axisLabelClick', 'axisLabelRender', 'axisMultiLabelRender', 'axisRangeCalculated', 'beforeExport', 'beforePrint', 'beforeResize', 'chartDoubleClick', 'chartMouseClick', 'chartMouseDown', 'chartMouseLeave', 'chartMouseMove', 'chartMouseUp', 'drag', 'dragComplete', 'dragEnd', 'dragStart', 'legendClick', 'legendRender', 'load', 'loaded', 'multiLevelLabelClick', 'onZooming', 'pointClick', 'pointDoubleClick', 'pointMove', 'pointRender', 'resized', 'scrollChanged', 'scrollEnd', 'scrollStart', 'selectionComplete', 'seriesRender', 'sharedTooltipRender', 'textRender', 'tooltipRender', 'zoomComplete'];
const modelProps = ['dataSource'];
const testProp = getProps({ props: properties });
const props = testProp[0], watch = testProp[1], emitProbs = Object.keys(watch);
emitProbs.push('modelchanged', 'update:modelValue');
for (let props of modelProps) {
emitProbs.push('update:' + props);
}
/**
* Represents Vuejs chart Component
* ```vue
* <ejs-chart></ejs-chart>
* ```
*/
let ChartComponent = vueDefineComponent({
name: 'ChartComponent',
mixins: [ComponentBase],
props: props,
watch: watch,
emits: emitProbs,
model: { event: 'modelchanged' },
provide() { return { custom: this.custom }; },
data() {
return {
ej2Instances: new Chart({}),
propKeys: properties,
models: modelProps,
hasChildDirective: true,
hasInjectedModules: true,
tagMapper: { "e-series-collection": { "e-series": { "e-trendlines": "e-trendline", "e-segments": "e-segment" } }, "e-axes": { "e-axis": { "e-striplines": "e-stripline", "e-multilevellabels": { "e-multilevellabel": { "e-categories": "e-category" } } } }, "e-rows": "e-row", "e-columns": "e-column", "e-rangecolorsettings": "e-rangecolorsetting", "e-annotations": "e-annotation", "e-selecteddataindexes": "e-selecteddataindex", "e-indicators": "e-indicator" },
tagNameMapper: { "e-series-collection": "e-series", "e-striplines": "e-stripLines", "e-multilevellabels": "e-multiLevelLabels", "e-rangecolorsettings": "e-rangeColorSettings", "e-selecteddataindexes": "e-selectedDataIndexes" },
isVue3: !isExecute,
templateCollection: {},
};
},
created() {
this.ej2Instances._trigger = this.ej2Instances.trigger;
this.ej2Instances.trigger = this.trigger;
this.bindProperties();
this.ej2Instances._setProperties = this.ej2Instances.setProperties;
this.ej2Instances.setProperties = this.setProperties;
this.ej2Instances.clearTemplate = this.clearTemplate;
this.updated = this.updated;
},
render(createElement) {
let h = !isExecute ? gh : createElement;
let slots = null;
if (!isNullOrUndefined(this.$slots.default)) {
slots = !isExecute ? this.$slots.default() : this.$slots.default;
}
return h('div', slots);
},
methods: {
clearTemplate(templateNames) {
if (!templateNames) {
templateNames = Object.keys(this.templateCollection || {});
}
if (templateNames.length && this.templateCollection) {
for (let tempName of templateNames) {
let elementCollection = this.templateCollection[tempName];
if (elementCollection && elementCollection.length) {
for (let ele of elementCollection) {
this.destroyPortals(ele);
}
delete this.templateCollection[tempName];
}
}
}
},
setProperties(prop, muteOnChange) {
if (this.isVue3) {
this.models = !this.models ? this.ej2Instances.referModels : this.models;
}
if (this.ej2Instances && this.ej2Instances._setProperties) {
this.ej2Instances._setProperties(prop, muteOnChange);
}
if (prop && this.models && this.models.length) {
Object.keys(prop).map((key) => {
this.models.map((model) => {
if ((key === model) && !(/datasource/i.test(key))) {
if (this.isVue3) {
this.ej2Instances.vueInstance.$emit('update:' + key, prop[key]);
}
else {
this.$emit('update:' + key, prop[key]);
this.$emit('modelchanged', prop[key]);
}
}
});
});
}
},
trigger(eventName, eventProp, successHandler) {
if (!isExecute) {
this.models = !this.models ? this.ej2Instances.referModels : this.models;
}
if ((eventName === 'change' || eventName === 'input') && this.models && (this.models.length !== 0)) {
let key = this.models.toString().match(/checked|value/) || [];
let propKey = key[0];
if (eventProp && key && !isUndefined(eventProp[propKey])) {
if (!isExecute) {
this.ej2Instances.vueInstance.$emit('update:' + propKey, eventProp[propKey]);
this.ej2Instances.vueInstance.$emit('modelchanged', eventProp[propKey]);
this.ej2Instances.vueInstance.$emit('update:modelValue', eventProp[propKey]);
}
else {
if (eventName === 'change' || (this.$props && !this.$props.isLazyUpdate)) {
this.$emit('update:' + propKey, eventProp[propKey]);
this.$emit('modelchanged', eventProp[propKey]);
}
}
}
}
else if ((eventName === 'actionBegin' && eventProp.requestType === 'dateNavigate') && this.models && (this.models.length !== 0)) {
let key = this.models.toString().match(/currentView|selectedDate/) || [];
let propKey = key[0];
if (eventProp && key && !isUndefined(eventProp[propKey])) {
if (!isExecute) {
this.ej2Instances.vueInstance.$emit('update:' + propKey, eventProp[propKey]);
this.ej2Instances.vueInstance.$emit('modelchanged', eventProp[propKey]);
}
else {
this.$emit('update:' + propKey, eventProp[propKey]);
this.$emit('modelchanged', eventProp[propKey]);
}
}
}
if ((this.ej2Instances && this.ej2Instances._trigger)) {
this.ej2Instances._trigger(eventName, eventProp, successHandler);
}
},
custom() {
this.updated();
},
FindXYPointValue(mouseX, mouseY) {
return this.ej2Instances.FindXYPointValue(mouseX, mouseY);
},
addAxes(axisCollection) {
return this.ej2Instances.addAxes(axisCollection);
},
addSeries(seriesCollection) {
return this.ej2Instances.addSeries(seriesCollection);
},
clearSeries() {
return this.ej2Instances.clearSeries();
},
destroy() {
return this.ej2Instances.destroy();
},
export(type, fileName) {
return this.ej2Instances.export(type, fileName);
},
getLocalizedLabel(key) {
return this.ej2Instances.getLocalizedLabel(key);
},
hideCrosshair() {
return this.ej2Instances.hideCrosshair();
},
hideTooltip() {
return this.ej2Instances.hideTooltip();
},
isSecondaryAxis(axis) {
return this.ej2Instances.isSecondaryAxis(axis);
},
print(id) {
return this.ej2Instances.print(id);
},
processData(render) {
return this.ej2Instances.processData(render);
},
refreshLiveData() {
return this.ej2Instances.refreshLiveData();
},
removeSeries(index) {
return this.ej2Instances.removeSeries(index);
},
setAnnotationValue(annotationIndex, content) {
return this.ej2Instances.setAnnotationValue(annotationIndex, content);
},
showCrosshair(x, y) {
return this.ej2Instances.showCrosshair(x, y);
},
showTooltip(x, y, isPoint) {
return this.ej2Instances.showTooltip(x, y, isPoint);
},
}
});
const ChartPlugin = {
name: 'ejs-chart',
install(Vue) {
Vue.component(ChartPlugin.name, ChartComponent);
Vue.component(SeriesPlugin.name, SeriesDirective);
Vue.component(SeriesCollectionPlugin.name, SeriesCollectionDirective);
Vue.component(TrendlinePlugin.name, TrendlineDirective);
Vue.component(TrendlinesPlugin.name, TrendlinesDirective);
Vue.component(SegmentPlugin.name, SegmentDirective);
Vue.component(SegmentsPlugin.name, SegmentsDirective);
Vue.component(AxisPlugin.name, AxisDirective);
Vue.component(AxesPlugin.name, AxesDirective);
Vue.component(StripLinePlugin.name, StripLineDirective);
Vue.component(StripLinesPlugin.name, StripLinesDirective);
Vue.component(MultiLevelLabelPlugin.name, MultiLevelLabelDirective);
Vue.component(MultiLevelLabelsPlugin.name, MultiLevelLabelsDirective);
Vue.component(CategoryPlugin.name, CategoryDirective);
Vue.component(CategoriesPlugin.name, CategoriesDirective);
Vue.component(RowPlugin.name, RowDirective);
Vue.component(RowsPlugin.name, RowsDirective);
Vue.component(ColumnPlugin.name, ColumnDirective);
Vue.component(ColumnsPlugin.name, ColumnsDirective);
Vue.component(RangeColorSettingPlugin.name, RangeColorSettingDirective);
Vue.component(RangeColorSettingsPlugin.name, RangeColorSettingsDirective);
Vue.component(AnnotationPlugin.name, AnnotationDirective);
Vue.component(AnnotationsPlugin.name, AnnotationsDirective);
Vue.component(SelectedDataIndexPlugin.name, SelectedDataIndexDirective);
Vue.component(SelectedDataIndexesPlugin.name, SelectedDataIndexesDirective);
Vue.component(IndicatorPlugin.name, IndicatorDirective);
Vue.component(IndicatorsPlugin.name, IndicatorsDirective);
}
};
let AccumulationSeriesCollectionDirective = vueDefineComponent({
inject: { custom: { default: null } },
render(createElement) {
if (!isExecute) {
let h = !isExecute ? gh : createElement;
let slots = null;
if (!isNullOrUndefined(this.$slots.default)) {
slots = !isExecute ? this.$slots.default() : this.$slots.default;
}
return h('div', { class: 'e-directive' }, slots);
}
return;
},
updated() {
if (!isExecute && this.custom) {
this.custom();
}
},
methods: {
getTag() {
return 'e-accumulation-series-collection';
}
}
});
const AccumulationSeriesCollectionPlugin = {
name: 'e-accumulation-series-collection',
install(Vue) {
Vue.component(AccumulationSeriesCollectionPlugin.name, AccumulationSeriesCollectionDirective);
}
};
let AccumulationSeriesDirective = vueDefineComponent({
render() {
return;
},
methods: {
getTag() {
return 'e-accumulation-series';
}
}
});
const AccumulationSeriesPlugin = {
name: 'e-accumulation-series',
install(Vue) {
Vue.component(AccumulationSeriesPlugin.name, AccumulationSeriesDirective);
}
};
let AccumulationAnnotationsDirective = vueDefineComponent({
inject: { custom: { default: null } },
render(createElement) {
if (!isExecute) {
let h = !isExecute ? gh : createElement;
let slots = null;
if (!isNullOrUndefined(this.$slots.default)) {
slots = !isExecute ? this.$slots.default() : this.$slots.default;
}
return h('div', { class: 'e-directive' }, slots);
}
return;
},
updated() {
if (!isExecute && this.custom) {
this.custom();
}
},
methods: {
getTag() {
return 'e-accumulation-annotations';
}
}
});
const AccumulationAnnotationsPlugin = {
name: 'e-accumulation-annotations',
install(Vue) {
Vue.component(AccumulationAnnotationsPlugin.name, AccumulationAnnotationsDirective);
}
};
let AccumulationAnnotationDirective = vueDefineComponent({
render() {
return;
},
methods: {
getTag() {
return 'e-accumulation-annotation';
}
}
});
const AccumulationAnnotationPlugin = {
name: 'e-accumulation-annotation',
install(Vue) {
Vue.component(AccumulationAnnotationPlugin.name, AccumulationAnnotationDirective);
}
};
const properties$1 = ['isLazyUpdate', 'plugins', 'accessibility', 'allowExport', 'annotations', 'background', 'backgroundImage', 'border', 'center', 'centerLabel', 'currencyCode', 'dataSource', 'enableAnimation', 'enableBorderOnMouseMove', 'enableExport', 'enableHtmlSanitizer', 'enablePersistence', 'enableRtl', 'enableSmartLabels', 'focusBorderColor', 'focusBorderMargin', 'focusBorderWidth', 'height', 'highlightColor', 'highlightMode', 'highlightPattern', 'isMultiSelect', 'legendSettings', 'locale', 'margin', 'selectedDataIndexes', 'selectionMode', 'selectionPattern', 'series', 'subTitle', 'subTitleStyle', 'theme', 'title', 'titleStyle', 'tooltip', 'useGroupingSeparator', 'width', 'afterExport', 'animationComplete', 'annotationRender', 'beforeExport', 'beforePrint', 'beforeResize', 'chartDoubleClick', 'chartMouseClick', 'chartMouseDown', 'chartMouseLeave', 'chartMouseMove', 'chartMouseUp', 'legendClick', 'legendRender', 'load', 'loaded', 'pointClick', 'pointMove', 'pointRender', 'resized', 'selectionComplete', 'seriesRender', 'textRender', 'tooltipRender'];
const modelProps$1 = ['dataSource'];
const testProp$1 = getProps({ props: properties$1 });
const props$1 = testProp$1[0], watch$1 = testProp$1[1], emitProbs$1 = Object.keys(watch$1);
emitProbs$1.push('modelchanged', 'update:modelValue');
for (let props of modelProps$1) {
emitProbs$1.push('update:' + props);
}
/**
* Represents Vuejs AccumulationChart Component
* ```vue
* <ejs-accumulationchart></ejs-accumulationchart>
* ```
*/
let AccumulationChartComponent = vueDefineComponent({
name: 'AccumulationChartComponent',
mixins: [ComponentBase],
props: props$1,
watch: watch$1,
emits: emitProbs$1,
model: { event: 'modelchanged' },
provide() { return { custom: this.custom }; },
data() {
return {
ej2Instances: new AccumulationChart({}),
propKeys: properties$1,
models: modelProps$1,
hasChildDirective: true,
hasInjectedModules: true,
tagMapper: { "e-accumulation-series-collection": "e-accumulation-series", "e-accumulation-annotations": "e-accumulation-annotation" },
tagNameMapper: { "e-accumulation-series-collection": "e-series", "e-accumulation-annotations": "e-annotations" },
isVue3: !isExecute,
templateCollection: {},
};
},
created() {
this.ej2Instances._trigger = this.ej2Instances.trigger;
this.ej2Instances.trigger = this.trigger;
this.bindProperties();
this.ej2Instances._setProperties = this.ej2Instances.setProperties;
this.ej2Instances.setProperties = this.setProperties;
this.ej2Instances.clearTemplate = this.clearTemplate;
this.updated = this.updated;
},
render(createElement) {
let h = !isExecute ? gh : createElement;
let slots = null;
if (!isNullOrUndefined(this.$slots.default)) {
slots = !isExecute ? this.$slots.default() : this.$slots.default;
}
return h('div', slots);
},
methods: {
clearTemplate(templateNames) {
if (!templateNames) {
templateNames = Object.keys(this.templateCollection || {});
}
if (templateNames.length && this.templateCollection) {
for (let tempName of templateNames) {
let elementCollection = this.templateCollection[tempName];
if (elementCollection && elementCollection.length) {
for (let ele of elementCollection) {
this.destroyPortals(ele);
}
delete this.templateCollection[tempName];
}
}
}
},
setProperties(prop, muteOnChange) {
if (this.isVue3) {
this.models = !this.models ? this.ej2Instances.referModels : this.models;
}
if (this.ej2Instances && this.ej2Instances._setProperties) {
this.ej2Instances._setProperties(prop, muteOnChange);
}
if (prop && this.models && this.models.length) {
Object.keys(prop).map((key) => {
this.models.map((model) => {
if ((key === model) && !(/datasource/i.test(key))) {
if (this.isVue3) {
this.ej2Instances.vueInstance.$emit('update:' + key, prop[key]);
}
else {
this.$emit('update:' + key, prop[key]);
this.$emit('modelchanged', prop[key]);
}
}
});
});
}
},
trigger(eventName, eventProp, successHandler) {
if (!isExecute) {
this.models = !this.models ? this.ej2Instances.referModels : this.models;
}
if ((eventName === 'change' || eventName === 'input') && this.models && (this.models.length !== 0)) {
let key = this.models.toString().match(/checked|value/) || [];
let propKey = key[0];
if (eventProp && key && !isUndefined(eventProp[propKey])) {
if (!isExecute) {
this.ej2Instances.vueInstance.$emit('update:' + propKey, eventProp[propKey]);
this.ej2Instances.vueInstance.$emit('modelchanged', eventProp[propKey]);
this.ej2Instances.vueInstance.$emit('update:modelValue', eventProp[propKey]);
}
else {
if (eventName === 'change' || (this.$props && !this.$props.isLazyUpdate)) {
this.$emit('update:' + propKey, eventProp[propKey]);
this.$emit('modelchanged', eventProp[propKey]);
}
}
}
}
else if ((eventName === 'actionBegin' && eventProp.requestType === 'dateNavigate') && this.models && (this.models.length !== 0)) {
let key = this.models.toString().match(/currentView|selectedDate/) || [];
let propKey = key[0];
if (eventProp && key && !isUndefined(eventProp[propKey])) {
if (!isExecute) {
this.ej2Instances.vueInstance.$emit('update:' + propKey, eventProp[propKey]);
this.ej2Instances.vueInstance.$emit('modelchanged', eventProp[propKey]);
}
else {
this.$emit('update:' + propKey, eventProp[propKey]);
this.$emit('modelchanged', eventProp[propKey]);
}
}
}
if ((this.ej2Instances && this.ej2Instances._trigger)) {
this.ej2Instances._trigger(eventName, eventProp, successHandler);
}
},
custom() {
this.updated();
},
calculateBounds() {
return this.ej2Instances.calculateBounds();
},
export(type, fileName) {
return this.ej2Instances.export(type, fileName);
},
print(id) {
return this.ej2Instances.print(id);
},
setAnnotationValue(annotationIndex, content) {
return this.ej2Instances.setAnnotationValue(annotationIndex, content);
},
titleTooltip(event, x, y, isTouch) {
return this.ej2Instances.titleTooltip(event, x, y, isTouch);
},
}
});
const AccumulationChartPlugin = {
name: 'ejs-accumulationchart',
install(Vue) {
Vue.component(AccumulationChartPlugin.name, AccumulationChartComponent);
Vue.component(AccumulationSeriesPlugin.name, AccumulationSeriesDirective);
Vue.component(AccumulationSeriesCollectionPlugin.name, AccumulationSeriesCollectionDirective);
Vue.component(AccumulationAnnotationPlugin.name, AccumulationAnnotationDirective);
Vue.component(AccumulationAnnotationsPlugin.name, AccumulationAnnotationsDirective);
}
};
let RangenavigatorSeriesCollectionDirective = vueDefineComponent({
inject: { custom: { default: null } },
render(createElement) {
if (!isExecute) {
let h = !isExecute ? gh : createElement;
let slots = null;
if (!isNullOrUndefined(this.$slots.default)) {
slots = !isExecute ? this.$slots.default() : this.$slots.default;
}
return h('div', { class: 'e-directive' }, slots);
}
return;
},
updated() {
if (!isExecute && this.custom) {
this.custom();
}
},
methods: {
getTag() {
return 'e-rangenavigator-series-collection';
}
}
});
const RangenavigatorSeriesCollectionPlugin = {
name: 'e-rangenavigator-series-collection',
install(Vue) {
Vue.component(RangenavigatorSeriesCollectionPlugin.name, RangenavigatorSeriesCollectionDirective);
}
};
let RangenavigatorSeriesDirective = vueDefineComponent({
render() {
return;
},
methods: {
getTag() {
return 'e-rangenavigator-series';
}
}
});
const RangenavigatorSeriesPlugin = {
name: 'e-rangenavigator-series',
install(Vue) {
Vue.component(RangenavigatorSeriesPlugin.name, RangenavigatorSeriesDirective);
}
};
const properties$2 = ['isLazyUpdate', 'plugins', 'allowIntervalData', 'allowSnapping', 'animationDuration', 'background', 'dataSource', 'disableRangeSelector', 'enableDeferredUpdate', 'enableGrouping', 'enablePersistence', 'enableRtl', 'groupBy', 'height', 'interval', 'intervalType', 'labelFormat', 'labelIntersectAction', 'labelPlacement', 'labelPosition', 'labelStyle', 'locale', 'logBase', 'majorGridLines', 'majorTickLines', 'margin', 'maximum', 'minimum', 'navigatorBorder', 'navigatorStyleSettings', 'periodSelectorSettings', 'query', 'secondaryLabelAlignment', 'series', 'skeleton', 'skeletonType', 'theme', 'tickPosition', 'tooltip', 'useGroupingSeparator', 'value', 'valueType', 'width', 'xName', 'yName', 'beforePrint', 'beforeResize', 'changed', 'labelRender', 'load', 'loaded', 'resized', 'selectorRender', 'tooltipRender'];
const modelProps$2 = ['dataSource'];
const testProp$2 = getProps({ props: properties$2 });
const props$2 = testProp$2[0], watch$2 = testProp$2[1], emitProbs$2 = Object.keys(watch$2);
emitProbs$2.push('modelchanged', 'update:modelValue');
for (let props of modelProps$2) {
emitProbs$2.push('update:' + props);
}
/**
* Represents Vuejs RangeNavigator Component
* ```vue
* <ejs-rangenavigator></ejs-rangenavigator>
* ```
*/
let RangeNavigatorComponent = vueDefineComponent({
name: 'RangeNavigatorComponent',
mixins: [ComponentBase],
props: props$2,
watch: watch$2,
emits: emitProbs$2,
model: { event: 'modelchanged' },
provide() { return { custom: this.custom }; },
data() {
return {
ej2Instances: new RangeNavigator({}),
propKeys: properties$2,
models: modelProps$2,
hasChildDirective: true,
hasInjectedModules: true,
tagMapper: { "e-rangenavigator-series-collection": "e-rangenavigator-series" },
tagNameMapper: { "e-rangenavigator-series-collection": "e-series" },
isVue3: !isExecute,
templateCollection: {},
};
},
created() {
this.ej2Instances._trigger = this.ej2Instances.trigger;
this.ej2Instances.trigger = this.trigger;
this.bindProperties();
this.ej2Instances._setProperties = this.ej2Instances.setProperties;
this.ej2Instances.setProperties = this.setProperties;
this.ej2Instances.clearTemplate = this.clearTemplate;
this.updated = this.updated;
},
render(createElement) {
let h = !isExecute ? gh : createElement;
let slots = null;
if (!isNullOrUndefined(this.$slots.default)) {
slots = !isExecute ? this.$slots.default() : this.$slots.default;
}
return h('div', slots);
},
methods: {
clearTemplate(templateNames) {
if (!templateNames) {
templateNames = Object.keys(this.templateCollection || {});
}
if (templateNames.length && this.templateCollection) {
for (let tempName of templateNames) {
let elementCollection = this.templateCollection[tempName];
if (elementCollection && elementCollection.length) {
for (let ele of elementCollection) {
this.destroyPortals(ele);
}
delete this.templateCollection[tempName];
}
}
}
},
setProperties(prop, muteOnChange) {
if (this.isVue3) {
this.models = !this.models ? this.ej2Instances.referModels : this.models;
}
if (this.ej2Instances && this.ej2Instances._setProperties) {
this.ej2Instances._setProperties(prop, muteOnChange);
}
if (prop && this.models && this.models.length) {
Object.keys(prop).map((key) => {
this.models.map((model) => {
if ((key === model) && !(/datasource/i.test(key))) {
if (this.isVue3) {
this.ej2Instances.vueInstance.$emit('update:' + key, prop[key]);
}
else {
this.$emit('update:' + key, prop[key]);
this.$emit('modelchanged', prop[key]);
}
}
});
});
}
},
trigger(eventName, eventProp, successHandler) {
if (!isExecute) {
this.models = !this.models ? this.ej2Instances.referModels : this.models;
}
if ((eventName === 'change' || eventName === 'input') && this.models && (this.models.length !== 0)) {
let key = this.models.toString().match(/checked|value/) || [];
let propKey = key[0];
if (eventProp && key && !isUndefined(eventProp[propKey])) {
if (!isExecute) {
this.ej2Instances.vueInstance.$emit('update:' + propKey, eventProp[propKey]);
this.ej2Instances.vueInstance.$emit('modelchanged', eventProp[propKey]);
this.ej2Instances.vueInstance.$emit('update:modelValue', eventProp[propKey]);
}
else {
if (eventName === 'change' || (this.$props && !this.$props.isLazyUpdate)) {
this.$emit('update:' + propKey, eventProp[propKey]);
this.$emit('modelchanged', eventProp[propKey]);
}
}
}
}
else if ((eventName === 'actionBegin' && eventProp.requestType === 'dateNavigate') && this.models && (this.models.length !== 0)) {
let key = this.models.toString().match(/currentView|selectedDate/) || [];
let propKey = key[0];
if (eventProp && key && !isUndefined(eventProp[propKey])) {
if (!isExecute) {
this.ej2Instances.vueInstance.$emit('update:' + propKey, eventProp[propKey]);
this.ej2Instances.vueInstance.$emit('modelchanged', eventProp[propKey]);
}
else {
this.$emit('update:' + propKey, eventProp[propKey]);
this.$emit('modelchanged', eventProp[propKey]);
}
}
}
if ((this.ej2Instances && this.ej2Instances._trigger)) {
this.ej2Instances._trigger(eventName, eventProp, successHandler);
}
},
custom() {
this.updated();
},
createSecondaryElement() {
return this.ej2Instances.createSecondaryElement();
},
destroy() {
return this.ej2Instances.destroy();
},
export(type, fileName, orientation, controls, width, height, isVertical) {
return this.ej2Instances.export(type, fileName, orientation, controls, width, height, isVertical);
},
print(id) {
return this.ej2Instances.print(id);
},
renderChart(resize) {
return this.ej2Instances.renderChart(resize);
},
}
});
const RangeNavigatorPlugin = {
name: 'ejs-rangenavigator',
install(Vue) {
Vue.component(RangeNavigatorPlugin.name, RangeNavigatorComponent);
Vue.component(RangenavigatorSeriesPlugin.name, RangenavigatorSeriesDirective);
Vue.component(RangenavigatorSeriesCollectionPlugin.name, RangenavigatorSeriesCollectionDirective);
}
};
let RangeBandSettingsDirective = vueDefineComponent({
inject: { custom: { default: null } },
render(createElement) {
if (!isExecute) {
let h = !isExecute ? gh : createElement;
let slots = null;
if (!isNullOrUndefined(this.$slots.default)) {
slots = !isExecute ? this.$slots.default() : this.$slots.default;
}
return h('div', { class: 'e-directive' }, slots);
}
return;
},
updated() {
if (!isExecute && this.custom) {
this.custom();
}
},
methods: {
getTag() {
return 'e-rangeBandSettings';
}
}
});
const RangeBandSettingsPlugin = {
name: 'e-rangeBandSettings',
install(Vue) {
Vue.component(RangeBandSettingsPlugin.name, RangeBandSettingsDirective);
}
};
let RangeBandSettingDirective = vueDefineComponent({
render() {
return;
},
methods: {
getTag() {
return 'e-rangeBandSetting';
}
}
});
const RangeBandSettingPlugin = {
name: 'e-rangeBandSetting',
install(Vue) {
Vue.component(RangeBandSettingPlugin.name, RangeBandSettingDirective);
}
};
const properties$3 = ['isLazyUpdate', 'plugins', 'axisSettings', 'border', 'containerArea', 'dataLabelSettings', 'dataSource', 'enablePersistence', 'enableRtl', 'endPointColor', 'fill', 'format', 'height', 'highPointColor', 'lineWidth', 'locale', 'lowPointColor', 'markerSettings', 'negativePointColor', 'opacity', 'padding', 'palette', 'query', 'rangeBandSettings', 'rangePadding', 'startPointColor', 'theme', 'tiePointColor', 'tooltipSettings', 'type', 'useGroupingSeparator', 'valueType', 'width', 'xName', 'yName', 'axisRendering', 'dataLabelRendering', 'load', 'loaded', 'markerRendering', 'pointRegionMouseClick', 'pointRegionMouseMove', 'pointRendering', 'resize', 'seriesRendering', 'sparklineMouseClick', 'sparklineMouseMove', 'tooltipInitialize'];
const modelProps$3 = [];
const testProp$3 = getProps({ props: properties$3 });
const props$3 = testProp$3[0], watch$3 = testProp$3[1], emitProbs$3 = Object.keys(watch$3);
emitProbs$3.push('modelchanged', 'update:modelValue');
for (let props of modelProps$3) {
emitProbs$3.push('update:' + props);
}
/**
* Represents Vuejs Sparkline Component
* ```vue
* <ejs-sparkline></ejs-sparkline>
* ```
*/
let SparklineComponent = vueDefineComponent({
name: 'SparklineComponent',
mixins: [ComponentBase],
props: props$3,
watch: watch$3,
emits: emitProbs$3,
provide() { return { custom: this.custom }; },
data() {
return {
ej2Instances: new Sparkline({}),
propKeys: properties$3,
models: modelProps$3,
hasChildDirective: true,
hasInjectedModules: true,
tagMapper: { "e-rangeBandSettings": "e-rangeBandSetting" },
tagNameMapper: {},
isVue3: !isExecute,
templateCollection: {},
};
},
created() {
this.bin