Skip to content

Commit c9bc36e

Browse files
authored
Merge pull request #162 from apertureless/feature/dynamic_styles
Feature/dynamic styles
2 parents e0c771f + 7e52380 commit c9bc36e

File tree

11 files changed

+179
-14
lines changed

11 files changed

+179
-14
lines changed

docs/README.md

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -71,7 +71,8 @@ There are some basic props defined in the BaseCharts. Because you `extend()` the
7171
| width | chart width |
7272
| height | chart height |
7373
| chart-id | id of the canvas |
74-
74+
| css-classes | String with css classes for the surrounding div |
75+
| styles | Object with css styles for the surrounding div container |
7576

7677
## Examples
7778

@@ -176,7 +177,8 @@ export default Line.extend({
176177
mixins: [reactiveProp],
177178
props: ['options'],
178179
mounted () {
179-
// this.chartData is created in the mixin
180+
// this.chartData is created in the mixin.
181+
// If you want to pass options please create a local options object
180182
this.renderChart(this.chartData, this.options)
181183
}
182184
})

src/BaseCharts/Bar.js

Lines changed: 18 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,10 @@ import { mergeOptions } from '../helpers/options'
55
export default Vue.extend({
66
render: function (createElement) {
77
return createElement(
8-
'div',
8+
'div', {
9+
style: this.styles,
10+
class: this.cssClasses
11+
},
912
[
1013
createElement(
1114
'canvas', {
@@ -20,7 +23,6 @@ export default Vue.extend({
2023
]
2124
)
2225
},
23-
2426
props: {
2527
chartId: {
2628
default: 'bar-chart',
@@ -33,9 +35,22 @@ export default Vue.extend({
3335
height: {
3436
default: 400,
3537
type: Number
38+
},
39+
cssClasses: {
40+
type: String,
41+
default: ''
42+
},
43+
styles: {
44+
type: Object,
45+
default () {
46+
return {
47+
width: '100%',
48+
height: '200%',
49+
position: 'relative'
50+
}
51+
}
3652
}
3753
},
38-
3954
data () {
4055
return {
4156
defaultOptions: {

src/BaseCharts/Bubble.js

Lines changed: 18 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,10 @@ import { mergeOptions } from '../helpers/options'
55
export default Vue.extend({
66
render: function (createElement) {
77
return createElement(
8-
'div',
8+
'div', {
9+
style: this.styles,
10+
class: this.cssClasses
11+
},
912
[
1013
createElement(
1114
'canvas', {
@@ -33,6 +36,20 @@ export default Vue.extend({
3336
height: {
3437
default: 400,
3538
type: Number
39+
},
40+
cssClasses: {
41+
type: String,
42+
default: ''
43+
},
44+
styles: {
45+
type: Object,
46+
default () {
47+
return {
48+
width: '100%',
49+
height: '200%',
50+
position: 'relative'
51+
}
52+
}
3653
}
3754
},
3855

src/BaseCharts/Doughnut.js

Lines changed: 18 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,10 @@ import { mergeOptions } from '../helpers/options'
55
export default Vue.extend({
66
render: function (createElement) {
77
return createElement(
8-
'div',
8+
'div', {
9+
style: this.styles,
10+
class: this.cssClasses
11+
},
912
[
1013
createElement(
1114
'canvas', {
@@ -33,6 +36,20 @@ export default Vue.extend({
3336
height: {
3437
default: 400,
3538
type: Number
39+
},
40+
cssClasses: {
41+
type: String,
42+
default: ''
43+
},
44+
styles: {
45+
type: Object,
46+
default () {
47+
return {
48+
width: '100%',
49+
height: '200%',
50+
position: 'relative'
51+
}
52+
}
3653
}
3754
},
3855

src/BaseCharts/HorizontalBar.js

Lines changed: 18 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,10 @@ import { mergeOptions } from '../helpers/options'
55
export default Vue.extend({
66
render: function (createElement) {
77
return createElement(
8-
'div',
8+
'div', {
9+
style: this.styles,
10+
class: this.cssClasses
11+
},
912
[
1013
createElement(
1114
'canvas', {
@@ -33,6 +36,20 @@ export default Vue.extend({
3336
height: {
3437
default: 400,
3538
type: Number
39+
},
40+
cssClasses: {
41+
type: String,
42+
default: ''
43+
},
44+
styles: {
45+
type: Object,
46+
default () {
47+
return {
48+
width: '100%',
49+
height: '200%',
50+
position: 'relative'
51+
}
52+
}
3653
}
3754
},
3855

src/BaseCharts/Line.js

Lines changed: 18 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,10 @@ import { mergeOptions } from '../helpers/options'
55
export default Vue.extend({
66
render: function (createElement) {
77
return createElement(
8-
'div',
8+
'div', {
9+
style: this.styles,
10+
class: this.cssClasses
11+
},
912
[
1013
createElement(
1114
'canvas', {
@@ -33,6 +36,20 @@ export default Vue.extend({
3336
height: {
3437
default: 400,
3538
type: Number
39+
},
40+
cssClasses: {
41+
type: String,
42+
default: ''
43+
},
44+
styles: {
45+
type: Object,
46+
default () {
47+
return {
48+
width: '100%',
49+
height: '200%',
50+
position: 'relative'
51+
}
52+
}
3653
}
3754
},
3855

src/BaseCharts/Pie.js

Lines changed: 18 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,10 @@ import { mergeOptions } from '../helpers/options'
55
export default Vue.extend({
66
render: function (createElement) {
77
return createElement(
8-
'div',
8+
'div', {
9+
style: this.styles,
10+
class: this.cssClasses
11+
},
912
[
1013
createElement(
1114
'canvas', {
@@ -33,6 +36,20 @@ export default Vue.extend({
3336
height: {
3437
default: 400,
3538
type: Number
39+
},
40+
cssClasses: {
41+
type: String,
42+
default: ''
43+
},
44+
styles: {
45+
type: Object,
46+
default () {
47+
return {
48+
width: '100%',
49+
height: '200%',
50+
position: 'relative'
51+
}
52+
}
3653
}
3754
},
3855

src/BaseCharts/PolarArea.js

Lines changed: 18 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,10 @@ import { mergeOptions } from '../helpers/options'
55
export default Vue.extend({
66
render: function (createElement) {
77
return createElement(
8-
'div',
8+
'div', {
9+
style: this.styles,
10+
class: this.cssClasses
11+
},
912
[
1013
createElement(
1114
'canvas', {
@@ -33,6 +36,20 @@ export default Vue.extend({
3336
height: {
3437
default: 400,
3538
type: Number
39+
},
40+
cssClasses: {
41+
type: String,
42+
default: ''
43+
},
44+
styles: {
45+
type: Object,
46+
default () {
47+
return {
48+
width: '100%',
49+
height: '200%',
50+
position: 'relative'
51+
}
52+
}
3653
}
3754
},
3855

src/BaseCharts/Radar.js

Lines changed: 18 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,10 @@ import { mergeOptions } from '../helpers/options'
55
export default Vue.extend({
66
render: function (createElement) {
77
return createElement(
8-
'div',
8+
'div', {
9+
style: this.styles,
10+
class: this.cssClasses
11+
},
912
[
1013
createElement(
1114
'canvas', {
@@ -33,6 +36,20 @@ export default Vue.extend({
3336
height: {
3437
default: 400,
3538
type: Number
39+
},
40+
cssClasses: {
41+
type: String,
42+
default: ''
43+
},
44+
styles: {
45+
type: Object,
46+
default () {
47+
return {
48+
width: '100%',
49+
height: '200%',
50+
position: 'relative'
51+
}
52+
}
3653
}
3754
},
3855

src/BaseCharts/Scatter.js

Lines changed: 18 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,10 @@ import { mergeOptions } from '../helpers/options'
55
export default Vue.extend({
66
render: function (createElement) {
77
return createElement(
8-
'div',
8+
'div', {
9+
style: this.styles,
10+
class: this.cssClasses
11+
},
912
[
1013
createElement(
1114
'canvas', {
@@ -33,6 +36,20 @@ export default Vue.extend({
3336
height: {
3437
default: 400,
3538
type: Number
39+
},
40+
cssClasses: {
41+
type: String,
42+
default: ''
43+
},
44+
styles: {
45+
type: Object,
46+
default () {
47+
return {
48+
width: '100%',
49+
height: '200%',
50+
position: 'relative'
51+
}
52+
}
3653
}
3754
},
3855

0 commit comments

Comments
 (0)