Merge pull request #162 from apertureless/feature/dynamic_styles

Feature/dynamic styles
This commit is contained in:
Jakub
2017-08-01 19:19:50 +02:00
committed by GitHub
11 changed files with 179 additions and 14 deletions

View File

@@ -71,7 +71,8 @@ There are some basic props defined in the BaseCharts. Because you `extend()` the
| width | chart width | | width | chart width |
| height | chart height | | height | chart height |
| chart-id | id of the canvas | | chart-id | id of the canvas |
| css-classes | String with css classes for the surrounding div |
| styles | Object with css styles for the surrounding div container |
## Examples ## Examples
@@ -176,7 +177,8 @@ export default Line.extend({
mixins: [reactiveProp], mixins: [reactiveProp],
props: ['options'], props: ['options'],
mounted () { mounted () {
// this.chartData is created in the mixin // this.chartData is created in the mixin.
// If you want to pass options please create a local options object
this.renderChart(this.chartData, this.options) this.renderChart(this.chartData, this.options)
} }
}) })

View File

@@ -5,7 +5,10 @@ import { mergeOptions } from '../helpers/options'
export default Vue.extend({ export default Vue.extend({
render: function (createElement) { render: function (createElement) {
return createElement( return createElement(
'div', 'div', {
style: this.styles,
class: this.cssClasses
},
[ [
createElement( createElement(
'canvas', { 'canvas', {
@@ -20,7 +23,6 @@ export default Vue.extend({
] ]
) )
}, },
props: { props: {
chartId: { chartId: {
default: 'bar-chart', default: 'bar-chart',
@@ -33,9 +35,22 @@ export default Vue.extend({
height: { height: {
default: 400, default: 400,
type: Number type: Number
},
cssClasses: {
type: String,
default: ''
},
styles: {
type: Object,
default () {
return {
width: '100%',
height: '200%',
position: 'relative'
}
}
} }
}, },
data () { data () {
return { return {
defaultOptions: { defaultOptions: {

View File

@@ -5,7 +5,10 @@ import { mergeOptions } from '../helpers/options'
export default Vue.extend({ export default Vue.extend({
render: function (createElement) { render: function (createElement) {
return createElement( return createElement(
'div', 'div', {
style: this.styles,
class: this.cssClasses
},
[ [
createElement( createElement(
'canvas', { 'canvas', {
@@ -33,6 +36,20 @@ export default Vue.extend({
height: { height: {
default: 400, default: 400,
type: Number type: Number
},
cssClasses: {
type: String,
default: ''
},
styles: {
type: Object,
default () {
return {
width: '100%',
height: '200%',
position: 'relative'
}
}
} }
}, },

View File

@@ -5,7 +5,10 @@ import { mergeOptions } from '../helpers/options'
export default Vue.extend({ export default Vue.extend({
render: function (createElement) { render: function (createElement) {
return createElement( return createElement(
'div', 'div', {
style: this.styles,
class: this.cssClasses
},
[ [
createElement( createElement(
'canvas', { 'canvas', {
@@ -33,6 +36,20 @@ export default Vue.extend({
height: { height: {
default: 400, default: 400,
type: Number type: Number
},
cssClasses: {
type: String,
default: ''
},
styles: {
type: Object,
default () {
return {
width: '100%',
height: '200%',
position: 'relative'
}
}
} }
}, },

View File

@@ -5,7 +5,10 @@ import { mergeOptions } from '../helpers/options'
export default Vue.extend({ export default Vue.extend({
render: function (createElement) { render: function (createElement) {
return createElement( return createElement(
'div', 'div', {
style: this.styles,
class: this.cssClasses
},
[ [
createElement( createElement(
'canvas', { 'canvas', {
@@ -33,6 +36,20 @@ export default Vue.extend({
height: { height: {
default: 400, default: 400,
type: Number type: Number
},
cssClasses: {
type: String,
default: ''
},
styles: {
type: Object,
default () {
return {
width: '100%',
height: '200%',
position: 'relative'
}
}
} }
}, },

View File

@@ -5,7 +5,10 @@ import { mergeOptions } from '../helpers/options'
export default Vue.extend({ export default Vue.extend({
render: function (createElement) { render: function (createElement) {
return createElement( return createElement(
'div', 'div', {
style: this.styles,
class: this.cssClasses
},
[ [
createElement( createElement(
'canvas', { 'canvas', {
@@ -33,6 +36,20 @@ export default Vue.extend({
height: { height: {
default: 400, default: 400,
type: Number type: Number
},
cssClasses: {
type: String,
default: ''
},
styles: {
type: Object,
default () {
return {
width: '100%',
height: '200%',
position: 'relative'
}
}
} }
}, },

View File

@@ -5,7 +5,10 @@ import { mergeOptions } from '../helpers/options'
export default Vue.extend({ export default Vue.extend({
render: function (createElement) { render: function (createElement) {
return createElement( return createElement(
'div', 'div', {
style: this.styles,
class: this.cssClasses
},
[ [
createElement( createElement(
'canvas', { 'canvas', {
@@ -33,6 +36,20 @@ export default Vue.extend({
height: { height: {
default: 400, default: 400,
type: Number type: Number
},
cssClasses: {
type: String,
default: ''
},
styles: {
type: Object,
default () {
return {
width: '100%',
height: '200%',
position: 'relative'
}
}
} }
}, },

View File

@@ -5,7 +5,10 @@ import { mergeOptions } from '../helpers/options'
export default Vue.extend({ export default Vue.extend({
render: function (createElement) { render: function (createElement) {
return createElement( return createElement(
'div', 'div', {
style: this.styles,
class: this.cssClasses
},
[ [
createElement( createElement(
'canvas', { 'canvas', {
@@ -33,6 +36,20 @@ export default Vue.extend({
height: { height: {
default: 400, default: 400,
type: Number type: Number
},
cssClasses: {
type: String,
default: ''
},
styles: {
type: Object,
default () {
return {
width: '100%',
height: '200%',
position: 'relative'
}
}
} }
}, },

View File

@@ -5,7 +5,10 @@ import { mergeOptions } from '../helpers/options'
export default Vue.extend({ export default Vue.extend({
render: function (createElement) { render: function (createElement) {
return createElement( return createElement(
'div', 'div', {
style: this.styles,
class: this.cssClasses
},
[ [
createElement( createElement(
'canvas', { 'canvas', {
@@ -33,6 +36,20 @@ export default Vue.extend({
height: { height: {
default: 400, default: 400,
type: Number type: Number
},
cssClasses: {
type: String,
default: ''
},
styles: {
type: Object,
default () {
return {
width: '100%',
height: '200%',
position: 'relative'
}
}
} }
}, },

View File

@@ -5,7 +5,10 @@ import { mergeOptions } from '../helpers/options'
export default Vue.extend({ export default Vue.extend({
render: function (createElement) { render: function (createElement) {
return createElement( return createElement(
'div', 'div', {
style: this.styles,
class: this.cssClasses
},
[ [
createElement( createElement(
'canvas', { 'canvas', {
@@ -33,6 +36,20 @@ export default Vue.extend({
height: { height: {
default: 400, default: 400,
type: Number type: Number
},
cssClasses: {
type: String,
default: ''
},
styles: {
type: Object,
default () {
return {
width: '100%',
height: '200%',
position: 'relative'
}
}
} }
}, },

View File

@@ -79,7 +79,8 @@
}, },
data () { data () {
return { return {
dataPoints: null dataPoints: null,
height: 20
} }
}, },
mounted () { mounted () {
@@ -88,6 +89,9 @@
}, 2000) }, 2000)
}, },
methods: { methods: {
increaseHeight () {
this.height += 10
},
getRandomInt () { getRandomInt () {
return Math.floor(Math.random() * (50 - 5 + 1)) + 5 return Math.floor(Math.random() * (50 - 5 + 1)) + 5
}, },
@@ -103,6 +107,14 @@
] ]
} }
} }
},
computed: {
myStyles () {
return {
height: `${this.height}px`,
position: 'relative'
}
}
} }
} }
</script> </script>