mirror of
https://github.com/KevinMidboe/vue-chartjs.git
synced 2025-10-29 18:00:20 +00:00
Merge pull request #56 from imbashamba/horizontal_bar_component
separate HorizontalBar component added
This commit is contained in:
164
dist/vue-chartjs.js
vendored
164
dist/vue-chartjs.js
vendored
@@ -59,37 +59,41 @@ return /******/ (function(modules) { // webpackBootstrap
|
|||||||
Object.defineProperty(exports, "__esModule", {
|
Object.defineProperty(exports, "__esModule", {
|
||||||
value: true
|
value: true
|
||||||
});
|
});
|
||||||
exports.mixins = exports.Bubble = exports.Radar = exports.PolarArea = exports.Pie = exports.Line = exports.Doughnut = exports.Bar = exports.VueCharts = undefined;
|
exports.mixins = exports.Bubble = exports.Radar = exports.PolarArea = exports.Pie = exports.Line = exports.Doughnut = exports.HorizontalBar = exports.Bar = exports.VueCharts = undefined;
|
||||||
|
|
||||||
var _Bar = __webpack_require__(1);
|
var _Bar = __webpack_require__(1);
|
||||||
|
|
||||||
var _Bar2 = _interopRequireDefault(_Bar);
|
var _Bar2 = _interopRequireDefault(_Bar);
|
||||||
|
|
||||||
var _Doughnut = __webpack_require__(382);
|
var _HorizontalBar = __webpack_require__(382);
|
||||||
|
|
||||||
|
var _HorizontalBar2 = _interopRequireDefault(_HorizontalBar);
|
||||||
|
|
||||||
|
var _Doughnut = __webpack_require__(383);
|
||||||
|
|
||||||
var _Doughnut2 = _interopRequireDefault(_Doughnut);
|
var _Doughnut2 = _interopRequireDefault(_Doughnut);
|
||||||
|
|
||||||
var _Line = __webpack_require__(383);
|
var _Line = __webpack_require__(384);
|
||||||
|
|
||||||
var _Line2 = _interopRequireDefault(_Line);
|
var _Line2 = _interopRequireDefault(_Line);
|
||||||
|
|
||||||
var _Pie = __webpack_require__(384);
|
var _Pie = __webpack_require__(385);
|
||||||
|
|
||||||
var _Pie2 = _interopRequireDefault(_Pie);
|
var _Pie2 = _interopRequireDefault(_Pie);
|
||||||
|
|
||||||
var _PolarArea = __webpack_require__(385);
|
var _PolarArea = __webpack_require__(386);
|
||||||
|
|
||||||
var _PolarArea2 = _interopRequireDefault(_PolarArea);
|
var _PolarArea2 = _interopRequireDefault(_PolarArea);
|
||||||
|
|
||||||
var _Radar = __webpack_require__(386);
|
var _Radar = __webpack_require__(387);
|
||||||
|
|
||||||
var _Radar2 = _interopRequireDefault(_Radar);
|
var _Radar2 = _interopRequireDefault(_Radar);
|
||||||
|
|
||||||
var _Bubble = __webpack_require__(387);
|
var _Bubble = __webpack_require__(388);
|
||||||
|
|
||||||
var _Bubble2 = _interopRequireDefault(_Bubble);
|
var _Bubble2 = _interopRequireDefault(_Bubble);
|
||||||
|
|
||||||
var _index = __webpack_require__(388);
|
var _index = __webpack_require__(389);
|
||||||
|
|
||||||
var _index2 = _interopRequireDefault(_index);
|
var _index2 = _interopRequireDefault(_index);
|
||||||
|
|
||||||
@@ -97,6 +101,7 @@ return /******/ (function(modules) { // webpackBootstrap
|
|||||||
|
|
||||||
var VueCharts = {
|
var VueCharts = {
|
||||||
Bar: _Bar2.default,
|
Bar: _Bar2.default,
|
||||||
|
HorizontalBar: _HorizontalBar2.default,
|
||||||
Doughnut: _Doughnut2.default,
|
Doughnut: _Doughnut2.default,
|
||||||
Line: _Line2.default,
|
Line: _Line2.default,
|
||||||
Pie: _Pie2.default,
|
Pie: _Pie2.default,
|
||||||
@@ -109,6 +114,7 @@ return /******/ (function(modules) { // webpackBootstrap
|
|||||||
exports.default = VueCharts;
|
exports.default = VueCharts;
|
||||||
exports.VueCharts = VueCharts;
|
exports.VueCharts = VueCharts;
|
||||||
exports.Bar = _Bar2.default;
|
exports.Bar = _Bar2.default;
|
||||||
|
exports.HorizontalBar = _HorizontalBar2.default;
|
||||||
exports.Doughnut = _Doughnut2.default;
|
exports.Doughnut = _Doughnut2.default;
|
||||||
exports.Line = _Line2.default;
|
exports.Line = _Line2.default;
|
||||||
exports.Pie = _Pie2.default;
|
exports.Pie = _Pie2.default;
|
||||||
@@ -195,7 +201,7 @@ return /******/ (function(modules) { // webpackBootstrap
|
|||||||
renderChart: function renderChart(data, options, type) {
|
renderChart: function renderChart(data, options, type) {
|
||||||
var chartOptions = (0, _options.mergeOptions)(this.defaultOptions, options);
|
var chartOptions = (0, _options.mergeOptions)(this.defaultOptions, options);
|
||||||
this._chart = new _chart2.default(this.$refs.canvas.getContext('2d'), {
|
this._chart = new _chart2.default(this.$refs.canvas.getContext('2d'), {
|
||||||
type: type || 'bar',
|
type: 'bar',
|
||||||
data: data,
|
data: data,
|
||||||
options: chartOptions
|
options: chartOptions
|
||||||
});
|
});
|
||||||
@@ -8214,6 +8220,7 @@ return /******/ (function(modules) { // webpackBootstrap
|
|||||||
return new Color(obj);
|
return new Color(obj);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
this.valid = false;
|
||||||
this.values = {
|
this.values = {
|
||||||
rgb: [0, 0, 0],
|
rgb: [0, 0, 0],
|
||||||
hsl: [0, 0, 0],
|
hsl: [0, 0, 0],
|
||||||
@@ -8233,8 +8240,6 @@ return /******/ (function(modules) { // webpackBootstrap
|
|||||||
this.setValues('hsl', vals);
|
this.setValues('hsl', vals);
|
||||||
} else if (vals = string.getHwb(obj)) {
|
} else if (vals = string.getHwb(obj)) {
|
||||||
this.setValues('hwb', vals);
|
this.setValues('hwb', vals);
|
||||||
} else {
|
|
||||||
throw new Error('Unable to parse color from string "' + obj + '"');
|
|
||||||
}
|
}
|
||||||
} else if (typeof obj === 'object') {
|
} else if (typeof obj === 'object') {
|
||||||
vals = obj;
|
vals = obj;
|
||||||
@@ -8248,13 +8253,14 @@ return /******/ (function(modules) { // webpackBootstrap
|
|||||||
this.setValues('hwb', vals);
|
this.setValues('hwb', vals);
|
||||||
} else if (vals.c !== undefined || vals.cyan !== undefined) {
|
} else if (vals.c !== undefined || vals.cyan !== undefined) {
|
||||||
this.setValues('cmyk', vals);
|
this.setValues('cmyk', vals);
|
||||||
} else {
|
|
||||||
throw new Error('Unable to parse color from object ' + JSON.stringify(obj));
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
Color.prototype = {
|
Color.prototype = {
|
||||||
|
isValid: function () {
|
||||||
|
return this.valid;
|
||||||
|
},
|
||||||
rgb: function () {
|
rgb: function () {
|
||||||
return this.setSpace('rgb', arguments);
|
return this.setSpace('rgb', arguments);
|
||||||
},
|
},
|
||||||
@@ -8598,6 +8604,8 @@ return /******/ (function(modules) { // webpackBootstrap
|
|||||||
var alpha = 1;
|
var alpha = 1;
|
||||||
var i;
|
var i;
|
||||||
|
|
||||||
|
this.valid = true;
|
||||||
|
|
||||||
if (space === 'alpha') {
|
if (space === 'alpha') {
|
||||||
alpha = vals;
|
alpha = vals;
|
||||||
} else if (vals.length) {
|
} else if (vals.length) {
|
||||||
@@ -42976,6 +42984,96 @@ return /******/ (function(modules) { // webpackBootstrap
|
|||||||
|
|
||||||
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
||||||
|
|
||||||
|
exports.default = _vue2.default.extend({
|
||||||
|
render: function render(createElement) {
|
||||||
|
return createElement('div', [createElement('canvas', {
|
||||||
|
attrs: {
|
||||||
|
id: this.chartId,
|
||||||
|
width: this.width,
|
||||||
|
height: this.height
|
||||||
|
},
|
||||||
|
ref: 'canvas'
|
||||||
|
})]);
|
||||||
|
},
|
||||||
|
|
||||||
|
props: {
|
||||||
|
chartId: {
|
||||||
|
default: 'horizontalbar-chart',
|
||||||
|
type: String
|
||||||
|
},
|
||||||
|
width: {
|
||||||
|
default: 400,
|
||||||
|
type: Number
|
||||||
|
},
|
||||||
|
height: {
|
||||||
|
default: 400,
|
||||||
|
type: Number
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
data: function data() {
|
||||||
|
return {
|
||||||
|
defaultOptions: {
|
||||||
|
scales: {
|
||||||
|
yAxes: [{
|
||||||
|
ticks: {
|
||||||
|
beginAtZero: true
|
||||||
|
},
|
||||||
|
gridLines: {
|
||||||
|
display: false
|
||||||
|
}
|
||||||
|
}],
|
||||||
|
xAxes: [{
|
||||||
|
gridLines: {
|
||||||
|
display: false
|
||||||
|
},
|
||||||
|
categoryPercentage: 0.5,
|
||||||
|
barPercentage: 0.2
|
||||||
|
}]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
};
|
||||||
|
},
|
||||||
|
|
||||||
|
|
||||||
|
methods: {
|
||||||
|
renderChart: function renderChart(data, options, type) {
|
||||||
|
var chartOptions = (0, _options.mergeOptions)(this.defaultOptions, options);
|
||||||
|
this._chart = new _chart2.default(this.$refs.canvas.getContext('2d'), {
|
||||||
|
type: 'horizontalBar',
|
||||||
|
data: data,
|
||||||
|
options: chartOptions
|
||||||
|
});
|
||||||
|
this._chart.generateLegend();
|
||||||
|
}
|
||||||
|
},
|
||||||
|
beforeDestroy: function beforeDestroy() {
|
||||||
|
this._chart.destroy();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
/***/ },
|
||||||
|
/* 383 */
|
||||||
|
/***/ function(module, exports, __webpack_require__) {
|
||||||
|
|
||||||
|
'use strict';
|
||||||
|
|
||||||
|
Object.defineProperty(exports, "__esModule", {
|
||||||
|
value: true
|
||||||
|
});
|
||||||
|
|
||||||
|
var _vue = __webpack_require__(2);
|
||||||
|
|
||||||
|
var _vue2 = _interopRequireDefault(_vue);
|
||||||
|
|
||||||
|
var _chart = __webpack_require__(4);
|
||||||
|
|
||||||
|
var _chart2 = _interopRequireDefault(_chart);
|
||||||
|
|
||||||
|
var _options = __webpack_require__(162);
|
||||||
|
|
||||||
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
||||||
|
|
||||||
exports.default = _vue2.default.extend({
|
exports.default = _vue2.default.extend({
|
||||||
render: function render(createElement) {
|
render: function render(createElement) {
|
||||||
return createElement('div', [createElement('canvas', {
|
return createElement('div', [createElement('canvas', {
|
||||||
@@ -43028,7 +43126,7 @@ return /******/ (function(modules) { // webpackBootstrap
|
|||||||
});
|
});
|
||||||
|
|
||||||
/***/ },
|
/***/ },
|
||||||
/* 383 */
|
/* 384 */
|
||||||
/***/ function(module, exports, __webpack_require__) {
|
/***/ function(module, exports, __webpack_require__) {
|
||||||
|
|
||||||
'use strict';
|
'use strict';
|
||||||
@@ -43117,7 +43215,7 @@ return /******/ (function(modules) { // webpackBootstrap
|
|||||||
});
|
});
|
||||||
|
|
||||||
/***/ },
|
/***/ },
|
||||||
/* 384 */
|
/* 385 */
|
||||||
/***/ function(module, exports, __webpack_require__) {
|
/***/ function(module, exports, __webpack_require__) {
|
||||||
|
|
||||||
'use strict';
|
'use strict';
|
||||||
@@ -43190,7 +43288,7 @@ return /******/ (function(modules) { // webpackBootstrap
|
|||||||
});
|
});
|
||||||
|
|
||||||
/***/ },
|
/***/ },
|
||||||
/* 385 */
|
/* 386 */
|
||||||
/***/ function(module, exports, __webpack_require__) {
|
/***/ function(module, exports, __webpack_require__) {
|
||||||
|
|
||||||
'use strict';
|
'use strict';
|
||||||
@@ -43263,7 +43361,7 @@ return /******/ (function(modules) { // webpackBootstrap
|
|||||||
});
|
});
|
||||||
|
|
||||||
/***/ },
|
/***/ },
|
||||||
/* 386 */
|
/* 387 */
|
||||||
/***/ function(module, exports, __webpack_require__) {
|
/***/ function(module, exports, __webpack_require__) {
|
||||||
|
|
||||||
'use strict';
|
'use strict';
|
||||||
@@ -43336,7 +43434,7 @@ return /******/ (function(modules) { // webpackBootstrap
|
|||||||
});
|
});
|
||||||
|
|
||||||
/***/ },
|
/***/ },
|
||||||
/* 387 */
|
/* 388 */
|
||||||
/***/ function(module, exports, __webpack_require__) {
|
/***/ function(module, exports, __webpack_require__) {
|
||||||
|
|
||||||
'use strict';
|
'use strict';
|
||||||
@@ -43427,7 +43525,7 @@ return /******/ (function(modules) { // webpackBootstrap
|
|||||||
});
|
});
|
||||||
|
|
||||||
/***/ },
|
/***/ },
|
||||||
/* 388 */
|
/* 389 */
|
||||||
/***/ function(module, exports, __webpack_require__) {
|
/***/ function(module, exports, __webpack_require__) {
|
||||||
|
|
||||||
'use strict';
|
'use strict';
|
||||||
@@ -43436,11 +43534,11 @@ return /******/ (function(modules) { // webpackBootstrap
|
|||||||
value: true
|
value: true
|
||||||
});
|
});
|
||||||
|
|
||||||
var _reactiveData = __webpack_require__(389);
|
var _reactiveData = __webpack_require__(390);
|
||||||
|
|
||||||
var _reactiveData2 = _interopRequireDefault(_reactiveData);
|
var _reactiveData2 = _interopRequireDefault(_reactiveData);
|
||||||
|
|
||||||
var _reactiveProp = __webpack_require__(393);
|
var _reactiveProp = __webpack_require__(394);
|
||||||
|
|
||||||
var _reactiveProp2 = _interopRequireDefault(_reactiveProp);
|
var _reactiveProp2 = _interopRequireDefault(_reactiveProp);
|
||||||
|
|
||||||
@@ -43452,12 +43550,12 @@ return /******/ (function(modules) { // webpackBootstrap
|
|||||||
};
|
};
|
||||||
|
|
||||||
/***/ },
|
/***/ },
|
||||||
/* 389 */
|
/* 390 */
|
||||||
/***/ function(module, exports, __webpack_require__) {
|
/***/ function(module, exports, __webpack_require__) {
|
||||||
|
|
||||||
'use strict';
|
'use strict';
|
||||||
|
|
||||||
var _stringify = __webpack_require__(390);
|
var _stringify = __webpack_require__(391);
|
||||||
|
|
||||||
var _stringify2 = _interopRequireDefault(_stringify);
|
var _stringify2 = _interopRequireDefault(_stringify);
|
||||||
|
|
||||||
@@ -43504,36 +43602,36 @@ return /******/ (function(modules) { // webpackBootstrap
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
/***/ },
|
|
||||||
/* 390 */
|
|
||||||
/***/ function(module, exports, __webpack_require__) {
|
|
||||||
|
|
||||||
module.exports = { "default": __webpack_require__(391), __esModule: true };
|
|
||||||
|
|
||||||
/***/ },
|
/***/ },
|
||||||
/* 391 */
|
/* 391 */
|
||||||
/***/ function(module, exports, __webpack_require__) {
|
/***/ function(module, exports, __webpack_require__) {
|
||||||
|
|
||||||
var core = __webpack_require__(392)
|
module.exports = { "default": __webpack_require__(392), __esModule: true };
|
||||||
|
|
||||||
|
/***/ },
|
||||||
|
/* 392 */
|
||||||
|
/***/ function(module, exports, __webpack_require__) {
|
||||||
|
|
||||||
|
var core = __webpack_require__(393)
|
||||||
, $JSON = core.JSON || (core.JSON = {stringify: JSON.stringify});
|
, $JSON = core.JSON || (core.JSON = {stringify: JSON.stringify});
|
||||||
module.exports = function stringify(it){ // eslint-disable-line no-unused-vars
|
module.exports = function stringify(it){ // eslint-disable-line no-unused-vars
|
||||||
return $JSON.stringify.apply($JSON, arguments);
|
return $JSON.stringify.apply($JSON, arguments);
|
||||||
};
|
};
|
||||||
|
|
||||||
/***/ },
|
/***/ },
|
||||||
/* 392 */
|
/* 393 */
|
||||||
/***/ function(module, exports) {
|
/***/ function(module, exports) {
|
||||||
|
|
||||||
var core = module.exports = {version: '2.4.0'};
|
var core = module.exports = {version: '2.4.0'};
|
||||||
if(typeof __e == 'number')__e = core; // eslint-disable-line no-undef
|
if(typeof __e == 'number')__e = core; // eslint-disable-line no-undef
|
||||||
|
|
||||||
/***/ },
|
/***/ },
|
||||||
/* 393 */
|
/* 394 */
|
||||||
/***/ function(module, exports, __webpack_require__) {
|
/***/ function(module, exports, __webpack_require__) {
|
||||||
|
|
||||||
'use strict';
|
'use strict';
|
||||||
|
|
||||||
var _stringify = __webpack_require__(390);
|
var _stringify = __webpack_require__(391);
|
||||||
|
|
||||||
var _stringify2 = _interopRequireDefault(_stringify);
|
var _stringify2 = _interopRequireDefault(_stringify);
|
||||||
|
|
||||||
|
|||||||
@@ -65,7 +65,7 @@ export default Vue.extend({
|
|||||||
let chartOptions = mergeOptions(this.defaultOptions, options)
|
let chartOptions = mergeOptions(this.defaultOptions, options)
|
||||||
this._chart = new Chart(
|
this._chart = new Chart(
|
||||||
this.$refs.canvas.getContext('2d'), {
|
this.$refs.canvas.getContext('2d'), {
|
||||||
type: type || 'bar',
|
type: 'bar',
|
||||||
data: data,
|
data: data,
|
||||||
options: chartOptions
|
options: chartOptions
|
||||||
}
|
}
|
||||||
|
|||||||
79
src/BaseCharts/HorizontalBar.js
Normal file
79
src/BaseCharts/HorizontalBar.js
Normal file
@@ -0,0 +1,79 @@
|
|||||||
|
import Vue from 'vue'
|
||||||
|
import Chart from 'chart.js'
|
||||||
|
import { mergeOptions } from '../helpers/options'
|
||||||
|
|
||||||
|
export default Vue.extend({
|
||||||
|
render: function (createElement) {
|
||||||
|
return createElement(
|
||||||
|
'div',
|
||||||
|
[
|
||||||
|
createElement(
|
||||||
|
'canvas', {
|
||||||
|
attrs: {
|
||||||
|
id: this.chartId,
|
||||||
|
width: this.width,
|
||||||
|
height: this.height
|
||||||
|
},
|
||||||
|
ref: 'canvas'
|
||||||
|
}
|
||||||
|
)
|
||||||
|
]
|
||||||
|
)
|
||||||
|
},
|
||||||
|
|
||||||
|
props: {
|
||||||
|
chartId: {
|
||||||
|
default: 'horizontalbar-chart',
|
||||||
|
type: String
|
||||||
|
},
|
||||||
|
width: {
|
||||||
|
default: 400,
|
||||||
|
type: Number
|
||||||
|
},
|
||||||
|
height: {
|
||||||
|
default: 400,
|
||||||
|
type: Number
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
data () {
|
||||||
|
return {
|
||||||
|
defaultOptions: {
|
||||||
|
scales: {
|
||||||
|
yAxes: [{
|
||||||
|
ticks: {
|
||||||
|
beginAtZero: true
|
||||||
|
},
|
||||||
|
gridLines: {
|
||||||
|
display: false
|
||||||
|
}
|
||||||
|
}],
|
||||||
|
xAxes: [ {
|
||||||
|
gridLines: {
|
||||||
|
display: false
|
||||||
|
},
|
||||||
|
categoryPercentage: 0.5,
|
||||||
|
barPercentage: 0.2
|
||||||
|
}]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
methods: {
|
||||||
|
renderChart (data, options, type) {
|
||||||
|
let chartOptions = mergeOptions(this.defaultOptions, options)
|
||||||
|
this._chart = new Chart(
|
||||||
|
this.$refs.canvas.getContext('2d'), {
|
||||||
|
type: 'horizontalBar',
|
||||||
|
data: data,
|
||||||
|
options: chartOptions
|
||||||
|
}
|
||||||
|
)
|
||||||
|
this._chart.generateLegend()
|
||||||
|
}
|
||||||
|
},
|
||||||
|
beforeDestroy () {
|
||||||
|
this._chart.destroy()
|
||||||
|
}
|
||||||
|
})
|
||||||
16
src/examples/HorizontalBarExample.js
Normal file
16
src/examples/HorizontalBarExample.js
Normal file
@@ -0,0 +1,16 @@
|
|||||||
|
import HorizontalBarChart from '../BaseCharts/HorizontalBar'
|
||||||
|
|
||||||
|
export default HorizontalBarChart.extend({
|
||||||
|
mounted () {
|
||||||
|
this.renderChart({
|
||||||
|
labels: ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'],
|
||||||
|
datasets: [
|
||||||
|
{
|
||||||
|
label: 'Data One',
|
||||||
|
backgroundColor: '#f87979',
|
||||||
|
data: [40, 20, 12, 39, 10, 40, 39, 80, 40, 20, 12, 11]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}, {responsive: true, maintainAspectRatio: false})
|
||||||
|
}
|
||||||
|
})
|
||||||
@@ -1,4 +1,5 @@
|
|||||||
import Bar from './BaseCharts/Bar'
|
import Bar from './BaseCharts/Bar'
|
||||||
|
import HorizontalBar from './BaseCharts/HorizontalBar'
|
||||||
import Doughnut from './BaseCharts/Doughnut'
|
import Doughnut from './BaseCharts/Doughnut'
|
||||||
import Line from './BaseCharts/Line'
|
import Line from './BaseCharts/Line'
|
||||||
import Pie from './BaseCharts/Pie'
|
import Pie from './BaseCharts/Pie'
|
||||||
@@ -9,6 +10,7 @@ import mixins from './mixins/index.js'
|
|||||||
|
|
||||||
const VueCharts = {
|
const VueCharts = {
|
||||||
Bar,
|
Bar,
|
||||||
|
HorizontalBar,
|
||||||
Doughnut,
|
Doughnut,
|
||||||
Line,
|
Line,
|
||||||
Pie,
|
Pie,
|
||||||
@@ -23,6 +25,7 @@ export default VueCharts
|
|||||||
export {
|
export {
|
||||||
VueCharts,
|
VueCharts,
|
||||||
Bar,
|
Bar,
|
||||||
|
HorizontalBar,
|
||||||
Doughnut,
|
Doughnut,
|
||||||
Line,
|
Line,
|
||||||
Pie,
|
Pie,
|
||||||
|
|||||||
64
test/unit/specs/HorizontalBar.spec.js
Normal file
64
test/unit/specs/HorizontalBar.spec.js
Normal file
@@ -0,0 +1,64 @@
|
|||||||
|
import Vue from 'vue'
|
||||||
|
import HorizontalBarChart from 'src/examples/HorizontalBarExample'
|
||||||
|
|
||||||
|
describe('HorizontalBarChart', () => {
|
||||||
|
let el
|
||||||
|
|
||||||
|
beforeEach(() => {
|
||||||
|
el = document.createElement('div')
|
||||||
|
})
|
||||||
|
|
||||||
|
it('should render a canvas', () => {
|
||||||
|
const vm = new Vue({
|
||||||
|
render: function (createElement) {
|
||||||
|
return createElement(
|
||||||
|
HorizontalBarChart
|
||||||
|
)
|
||||||
|
},
|
||||||
|
components: { HorizontalBarChart }
|
||||||
|
}).$mount(el)
|
||||||
|
|
||||||
|
expect(vm.$el.querySelector('#horizontalbar-chart')).not.to.be.an('undefined')
|
||||||
|
expect(vm.$el.querySelector('canvas')).not.to.be.an('undefined')
|
||||||
|
expect(vm.$el.querySelector('canvas')).not.to.be.an('null')
|
||||||
|
expect(vm.$el.querySelector('canvas')).to.exist
|
||||||
|
})
|
||||||
|
|
||||||
|
it('should change id based on prop', () => {
|
||||||
|
const vm = new Vue({
|
||||||
|
render: function (createElement) {
|
||||||
|
return createElement(
|
||||||
|
HorizontalBarChart, {
|
||||||
|
props: {
|
||||||
|
chartId: 'horizontalbarchartprop'
|
||||||
|
}
|
||||||
|
}
|
||||||
|
)
|
||||||
|
},
|
||||||
|
components: { HorizontalBarChart }
|
||||||
|
}).$mount(el)
|
||||||
|
|
||||||
|
expect(vm.$el.querySelector('#horizontalbarchartprop')).not.to.be.an('undefined')
|
||||||
|
})
|
||||||
|
|
||||||
|
it('should destroy chart instance', (done) => {
|
||||||
|
const vm = new Vue({
|
||||||
|
render: function (createElement) {
|
||||||
|
return createElement(
|
||||||
|
HorizontalBarChart
|
||||||
|
)
|
||||||
|
},
|
||||||
|
components: { HorizontalBarChart }
|
||||||
|
}).$mount(el)
|
||||||
|
|
||||||
|
expect(vm.$children[0]._chart.chart.ctx).not.to.be.null
|
||||||
|
|
||||||
|
vm.$destroy()
|
||||||
|
|
||||||
|
vm.$nextTick(() => {
|
||||||
|
vm.$forceUpdate()
|
||||||
|
expect(vm.$children[0]._chart.chart.ctx).to.be.null
|
||||||
|
done()
|
||||||
|
})
|
||||||
|
})
|
||||||
|
})
|
||||||
Reference in New Issue
Block a user