UNPKG

@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
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