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 |
| height | chart height |
| 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
@@ -176,7 +177,8 @@ export default Line.extend({
mixins: [reactiveProp],
props: ['options'],
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)
}
})

View File

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

View File

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

View File

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