@magicgol/polyjuice 0.12.0 → 0.13.0
Sign up to get free protection for your applications and to get access to all the features.
- package/package.json +1 -1
- package/src/components/card/vertical-card/VCard.vue +1 -1
- package/src/components/club/plate/ClubPlate.vue +2 -1
- package/src/components/footballer/role-badge/RoleBadge.stories.js +56 -0
- package/src/components/footballer/role-badge/RoleBadge.vue +84 -0
- package/src/components/form/button/toggle-button/ToggleButton.vue +2 -2
- package/src/components/image/profile-image/ProfileImage.stories.js +6 -1
- package/src/components/image/profile-image/ProfileImage.vue +26 -6
package/package.json
CHANGED
@@ -2,6 +2,7 @@
|
|
2
2
|
<div
|
3
3
|
class="d-inline-flex flex-column text-center"
|
4
4
|
:class="classes"
|
5
|
+
@click="$emit('click')"
|
5
6
|
>
|
6
7
|
<svgicon
|
7
8
|
name="star-c"
|
@@ -48,7 +49,7 @@ export default {
|
|
48
49
|
|
49
50
|
svg {
|
50
51
|
fill: map-get($palette, 'expertClub');
|
51
|
-
height: 1.
|
52
|
+
height: 1.5rem;
|
52
53
|
}
|
53
54
|
}
|
54
55
|
</style>
|
@@ -0,0 +1,56 @@
|
|
1
|
+
import MgRoleBadge from './RoleBadge.vue';
|
2
|
+
|
3
|
+
// More on default export: https://storybook.js.org/docs/vue/writing-stories/introduction#default-export
|
4
|
+
export default {
|
5
|
+
title: 'Footballer/Role Badge',
|
6
|
+
component: MgRoleBadge,
|
7
|
+
// More on argTypes: https://storybook.js.org/docs/vue/api/argtypes
|
8
|
+
argTypes: {
|
9
|
+
role: {
|
10
|
+
control: { type: 'select' },
|
11
|
+
options: ['P', 'D', 'C', 'A'],
|
12
|
+
defaultValue: 'A'
|
13
|
+
},
|
14
|
+
size: {
|
15
|
+
control: { type: 'select' },
|
16
|
+
options: ['large', 'normal'],
|
17
|
+
defaultValue: 'normal'
|
18
|
+
},
|
19
|
+
},
|
20
|
+
};
|
21
|
+
|
22
|
+
// More on component templates: https://storybook.js.org/docs/vue/writing-stories/introduction#using-args
|
23
|
+
const Template = (args, { argTypes }) => ({
|
24
|
+
props: Object.keys(argTypes),
|
25
|
+
components: { MgRoleBadge },
|
26
|
+
template: `<mg-role-badge v-bind="$props"></mg-role-badge>`,
|
27
|
+
});
|
28
|
+
|
29
|
+
export const Default = Template.bind({});
|
30
|
+
// More on args: https://storybook.js.org/docs/vue/writing-stories/args
|
31
|
+
Default.args = {
|
32
|
+
};
|
33
|
+
|
34
|
+
export const Goalkeeper = Template.bind({});
|
35
|
+
// More on args: https://storybook.js.org/docs/vue/writing-stories/args
|
36
|
+
Goalkeeper.args = {
|
37
|
+
role: 'P',
|
38
|
+
};
|
39
|
+
|
40
|
+
export const Defender = Template.bind({});
|
41
|
+
// More on args: https://storybook.js.org/docs/vue/writing-stories/args
|
42
|
+
Defender.args = {
|
43
|
+
role: 'D',
|
44
|
+
};
|
45
|
+
|
46
|
+
export const Midfielder = Template.bind({});
|
47
|
+
// More on args: https://storybook.js.org/docs/vue/writing-stories/args
|
48
|
+
Midfielder.args = {
|
49
|
+
role: 'C',
|
50
|
+
};
|
51
|
+
|
52
|
+
export const Forward = Template.bind({});
|
53
|
+
// More on args: https://storybook.js.org/docs/vue/writing-stories/args
|
54
|
+
Forward.args = {
|
55
|
+
role: 'A',
|
56
|
+
};
|
@@ -0,0 +1,84 @@
|
|
1
|
+
<template>
|
2
|
+
<div
|
3
|
+
class="d-inline-flex text-center text-white rounded-circle justify-content-center align-items-center"
|
4
|
+
:class="classes"
|
5
|
+
>
|
6
|
+
{{ role }}
|
7
|
+
</div>
|
8
|
+
</template>
|
9
|
+
|
10
|
+
<script>
|
11
|
+
export default {
|
12
|
+
name: 'mg-role-badge',
|
13
|
+
|
14
|
+
props: {
|
15
|
+
role: {
|
16
|
+
type: String,
|
17
|
+
default: 'A',
|
18
|
+
validator: function (value) {
|
19
|
+
return ['P', 'D', 'C', 'A'].indexOf(value) !== -1;
|
20
|
+
},
|
21
|
+
},
|
22
|
+
size: {
|
23
|
+
type: String,
|
24
|
+
default: 'normal',
|
25
|
+
validator: function (value) {
|
26
|
+
return ['normal', 'large'].indexOf(value) !== -1;
|
27
|
+
},
|
28
|
+
}
|
29
|
+
},
|
30
|
+
|
31
|
+
computed: {
|
32
|
+
classes() {
|
33
|
+
return {
|
34
|
+
'mg-role-badge': true,
|
35
|
+
'mg-role-badge--goalkeeper': this.role === 'P',
|
36
|
+
'mg-role-badge--defender': this.role === 'D',
|
37
|
+
'mg-role-badge--midfielder': this.role === 'C',
|
38
|
+
'mg-role-badge--forward': this.role === 'A',
|
39
|
+
'mg-role-badge--normal': this.size === 'normal',
|
40
|
+
'mg-role-badge--large': this.size === 'large',
|
41
|
+
};
|
42
|
+
}
|
43
|
+
},
|
44
|
+
};
|
45
|
+
</script>
|
46
|
+
|
47
|
+
<style lang="scss">
|
48
|
+
@import '../../../assets/palette';
|
49
|
+
|
50
|
+
.mg-role-badge {
|
51
|
+
font-family: 'Ubuntu', sans-serif;
|
52
|
+
font-weight: 600;
|
53
|
+
|
54
|
+
&--normal {
|
55
|
+
font-size: 0.75rem;
|
56
|
+
height: 1.125rem;
|
57
|
+
width: 1.125rem;
|
58
|
+
min-width: 1.125rem;
|
59
|
+
}
|
60
|
+
|
61
|
+
&--large {
|
62
|
+
font-size: 0.875rem;
|
63
|
+
height: 1.5rem;
|
64
|
+
width: 1.5rem;
|
65
|
+
min-width: 1.5rem;
|
66
|
+
}
|
67
|
+
|
68
|
+
&--goalkeeper {
|
69
|
+
background-color: map-get($palette, 'goalkeeper');
|
70
|
+
}
|
71
|
+
|
72
|
+
&--defender {
|
73
|
+
background-color: map-get($palette, 'defender');
|
74
|
+
}
|
75
|
+
|
76
|
+
&--midfielder {
|
77
|
+
background-color: map-get($palette, 'midfielder');
|
78
|
+
}
|
79
|
+
|
80
|
+
&--forward {
|
81
|
+
background-color: map-get($palette, 'forward');
|
82
|
+
}
|
83
|
+
}
|
84
|
+
</style>
|
@@ -40,11 +40,11 @@ export default {
|
|
40
40
|
classes() {
|
41
41
|
return {
|
42
42
|
'mg-toggle-button': true,
|
43
|
-
'mg-toggle-button--on': this.value === true
|
43
|
+
'mg-toggle-button--on': this.value === true,
|
44
44
|
};
|
45
45
|
},
|
46
46
|
contentVisibility() {
|
47
|
-
return
|
47
|
+
return 'content' in this.$slots && this.value === true;
|
48
48
|
}
|
49
49
|
},
|
50
50
|
};
|
@@ -8,9 +8,14 @@ export default {
|
|
8
8
|
argTypes: {
|
9
9
|
size: {
|
10
10
|
control: { type: 'select' },
|
11
|
-
options: ['large', 'normal'],
|
11
|
+
options: ['large', 'normal', 'small', 'x-small'],
|
12
12
|
defaultValue: 'normal'
|
13
13
|
},
|
14
|
+
liveBadge: {
|
15
|
+
control: { type: 'select' },
|
16
|
+
options: [true, false],
|
17
|
+
defaultValue: false
|
18
|
+
},
|
14
19
|
online: {
|
15
20
|
control: { type: 'select' },
|
16
21
|
options: [true, false],
|
@@ -20,13 +20,14 @@
|
|
20
20
|
v-bind:style="{ backgroundImage: 'url(' + imageUrl + ')' }"
|
21
21
|
></div>
|
22
22
|
<!-- end of PROFILE IMAGE LAYER -->
|
23
|
-
<!--
|
23
|
+
<!-- LIVE BADGE -->
|
24
24
|
<div
|
25
|
+
v-if="liveBadge"
|
25
26
|
class="mg-live-badge position-absolute w-100"
|
26
27
|
>
|
27
28
|
<div class="w-100"></div>
|
28
29
|
</div>
|
29
|
-
<!-- end of
|
30
|
+
<!-- end of LIVE BADGE -->
|
30
31
|
</div>
|
31
32
|
</template>
|
32
33
|
|
@@ -45,9 +46,13 @@ export default {
|
|
45
46
|
type: String,
|
46
47
|
default: 'normal',
|
47
48
|
validator: function (value) {
|
48
|
-
return ['large', 'normal'].indexOf(value) !== -1;
|
49
|
+
return ['large', 'normal', 'small', 'x-small'].indexOf(value) !== -1;
|
49
50
|
},
|
50
51
|
},
|
52
|
+
liveBadge: {
|
53
|
+
type: Boolean,
|
54
|
+
default: true
|
55
|
+
},
|
51
56
|
online: {
|
52
57
|
type: Boolean,
|
53
58
|
default: false
|
@@ -58,15 +63,14 @@ export default {
|
|
58
63
|
classes() {
|
59
64
|
return {
|
60
65
|
'mg-profile-image': true,
|
66
|
+
'mg-profile-image--x-small': this.size === 'x-small',
|
67
|
+
'mg-profile-image--small': this.size === 'small',
|
61
68
|
'mg-profile-image--normal': this.size === 'normal',
|
62
69
|
'mg-profile-image--large': this.size === 'large',
|
63
70
|
'mg-profile-image--online': this.online === true,
|
64
71
|
'mg-profile-image--offline': this.online === false,
|
65
72
|
};
|
66
73
|
},
|
67
|
-
acronym() {
|
68
|
-
return '';
|
69
|
-
}
|
70
74
|
},
|
71
75
|
};
|
72
76
|
</script>
|
@@ -79,14 +83,30 @@ export default {
|
|
79
83
|
font-family: 'Ubuntu', sans-serif;
|
80
84
|
font-weight: 600;
|
81
85
|
|
86
|
+
&--x-small {
|
87
|
+
height: 2rem;
|
88
|
+
min-width: 2rem;
|
89
|
+
font-size: 0.6875rem;
|
90
|
+
width: 2rem;
|
91
|
+
}
|
92
|
+
|
93
|
+
&--small {
|
94
|
+
height: 2.5rem;
|
95
|
+
min-width: 2.5rem;
|
96
|
+
font-size: 0.8125rem;
|
97
|
+
width: 2.5rem;
|
98
|
+
}
|
99
|
+
|
82
100
|
&--normal {
|
83
101
|
height: 3rem;
|
102
|
+
min-width: 3rem;
|
84
103
|
font-size: 1.125rem;
|
85
104
|
width: 3rem;
|
86
105
|
}
|
87
106
|
|
88
107
|
&--large {
|
89
108
|
height: 5rem;
|
109
|
+
min-width: 5rem;
|
90
110
|
font-size: 2rem;
|
91
111
|
width: 5rem;
|
92
112
|
}
|