@golstats/gsc-lineups-reports 1.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +2 -0
- package/dist/atajada.svg +57 -0
- package/dist/backarrow.svg +3 -0
- package/dist/cancha-3d.png +0 -0
- package/dist/contorno-escudo.svg +3 -0
- package/dist/css/fonts.css +91 -0
- package/dist/escudo1.png +0 -0
- package/dist/escudo2.png +0 -0
- package/dist/favicon.ico +0 -0
- package/dist/field-green-posesion.png +0 -0
- package/dist/fin-del-partido.svg +44 -0
- package/dist/fonts/BebasNeue-Bold.otf +0 -0
- package/dist/fonts/BebasNeue-Bold.ttf +0 -0
- package/dist/fonts/BebasNeue-Bold.woff2 +0 -0
- package/dist/fonts/BebasNeue-Book.otf +0 -0
- package/dist/fonts/BebasNeue-Book.ttf +0 -0
- package/dist/fonts/BebasNeue-Book.woff2 +0 -0
- package/dist/fonts/BebasNeue-Light.otf +0 -0
- package/dist/fonts/BebasNeue-Light.ttf +0 -0
- package/dist/fonts/BebasNeue-Light.woff2 +0 -0
- package/dist/fonts/BebasNeue-Regular.otf +0 -0
- package/dist/fonts/BebasNeue-Regular.ttf +0 -0
- package/dist/fonts/BebasNeue-Regular.woff2 +0 -0
- package/dist/fonts/BebasNeue-Thin.otf +0 -0
- package/dist/fonts/BebasNeue-Thin.ttf +0 -0
- package/dist/fonts/BebasNeue-Thin.woff2 +0 -0
- package/dist/fonts/Montserrat-Black.otf +0 -0
- package/dist/fonts/Montserrat-BlackItalic.otf +0 -0
- package/dist/fonts/Montserrat-Bold.otf +0 -0
- package/dist/fonts/Montserrat-BoldItalic.otf +0 -0
- package/dist/fonts/Montserrat-ExtraBold.otf +0 -0
- package/dist/fonts/Montserrat-ExtraBoldItalic.otf +0 -0
- package/dist/fonts/Montserrat-ExtraLight.otf +0 -0
- package/dist/fonts/Montserrat-ExtraLightItalic.otf +0 -0
- package/dist/fonts/Montserrat-Italic.otf +0 -0
- package/dist/fonts/Montserrat-Light.otf +0 -0
- package/dist/fonts/Montserrat-LightItalic.otf +0 -0
- package/dist/fonts/Montserrat-Medium.otf +0 -0
- package/dist/fonts/Montserrat-MediumItalic.otf +0 -0
- package/dist/fonts/Montserrat-Regular.otf +0 -0
- package/dist/fonts/Montserrat-SemiBold.otf +0 -0
- package/dist/fonts/Montserrat-SemiBoldItalic.otf +0 -0
- package/dist/fonts/Montserrat-Thin.otf +0 -0
- package/dist/fonts/Montserrat-ThinItalic.otf +0 -0
- package/dist/fonts/Oswald-Bold.ttf +0 -0
- package/dist/fonts/Oswald-ExtraLight.ttf +0 -0
- package/dist/fonts/Oswald-Light.ttf +0 -0
- package/dist/fonts/Oswald-Medium.ttf +0 -0
- package/dist/fonts/Oswald-Regular.ttf +0 -0
- package/dist/fonts/Oswald-SemiBold.ttf +0 -0
- package/dist/fonts/Poppins-Black.otf +0 -0
- package/dist/fonts/Poppins-BlackItalic.otf +0 -0
- package/dist/fonts/Poppins-Bold.otf +0 -0
- package/dist/fonts/Poppins-BoldItalic.otf +0 -0
- package/dist/fonts/Poppins-ExtraBold.otf +0 -0
- package/dist/fonts/Poppins-ExtraBoldItalic.otf +0 -0
- package/dist/fonts/Poppins-ExtraLight.otf +0 -0
- package/dist/fonts/Poppins-ExtraLightItalic.otf +0 -0
- package/dist/fonts/Poppins-Italic.otf +0 -0
- package/dist/fonts/Poppins-Light.otf +0 -0
- package/dist/fonts/Poppins-LightItalic.otf +0 -0
- package/dist/fonts/Poppins-Medium.otf +0 -0
- package/dist/fonts/Poppins-MediumItalic.otf +0 -0
- package/dist/fonts/Poppins-Regular.otf +0 -0
- package/dist/fonts/Poppins-SemiBold.otf +0 -0
- package/dist/fonts/Poppins-SemiBoldItalic.otf +0 -0
- package/dist/fonts/Poppins-Thin.otf +0 -0
- package/dist/fonts/Poppins-ThinItalic.otf +0 -0
- package/dist/fuera-de-lugar.svg +58 -0
- package/dist/gol.svg +49 -0
- package/dist/group-427321178.svg +8 -0
- package/dist/group-427321179.svg +5 -0
- package/dist/group-427321501.svg +5 -0
- package/dist/gsc-lineups-reports.css +1 -0
- package/dist/gsc-lineups-reports.es.js +11272 -0
- package/dist/gsc-lineups-reports.umd.js +10 -0
- package/dist/icn-arrow-expand.svg +3 -0
- package/dist/icn-cambio.svg +27 -0
- package/dist/icn-expand-arrow.svg +3 -0
- package/dist/icn-expand-arrow1.svg +3 -0
- package/dist/icn-falta.svg +43 -0
- package/dist/icn-filter.svg +12 -0
- package/dist/icn-filter1.svg +12 -0
- package/dist/icn-filter2.svg +12 -0
- package/dist/icn-golstats.png +0 -0
- package/dist/icn-play.svg +10 -0
- package/dist/icn-tarjeta-amarilla.svg +4 -0
- package/dist/icn-tarjeta-roja.svg +4 -0
- package/dist/icn-tiro-a-porteria.svg +36 -0
- package/dist/icn-tiros-de-esquina.svg +55 -0
- package/dist/images/cancha-horizontal-raw.jpg +0 -0
- package/dist/images/cancha-horizontal.jpg +0 -0
- package/dist/images/canchaRPH.svg +30 -0
- package/dist/images/events/atajada.svg +57 -0
- package/dist/images/events/cambio.svg +27 -0
- package/dist/images/events/falta.svg +43 -0
- package/dist/images/events/favicon.ico +0 -0
- package/dist/images/events/fin-del-partido.svg +44 -0
- package/dist/images/events/fuera-de-lugar.svg +58 -0
- package/dist/images/events/generic.svg +1 -0
- package/dist/images/events/gol.svg +49 -0
- package/dist/images/events/icn-cambio.svg +6 -0
- package/dist/images/events/icn-falta.svg +4 -0
- package/dist/images/events/icn-play.svg +3 -0
- package/dist/images/events/icn-tarjeta-amarilla.svg +3 -0
- package/dist/images/events/icn-tarjeta-roja.svg +3 -0
- package/dist/images/events/icn-tiro-a-porteria.svg +36 -0
- package/dist/images/events/icn-tiros-de-esquina.svg +18 -0
- package/dist/images/events/inicia-el-partido.svg +46 -0
- package/dist/images/events/jugada-peligrosa.svg +91 -0
- package/dist/images/events/penal-fallado.svg +195 -0
- package/dist/images/events/penal-marcado.svg +190 -0
- package/dist/images/events/tiempo-agregado.svg +75 -0
- package/dist/images/events/tiro-a-porteria.svg +81 -0
- package/dist/images/events/tiro-de-esquina.svg +55 -0
- package/dist/images/events/var.png +0 -0
- package/dist/images/events/var.svg +31 -0
- package/dist/inicia-el-partido.svg +46 -0
- package/dist/jugada-peligrosa.svg +91 -0
- package/dist/line-white.png +0 -0
- package/dist/line.png +0 -0
- package/dist/next-arrow.svg +3 -0
- package/dist/nextarrow.svg +3 -0
- package/dist/penal-fallado.svg +195 -0
- package/dist/penal-marcado.svg +190 -0
- package/dist/play-icn.svg +3 -0
- package/dist/shape.svg +3 -0
- package/dist/styles.css +1191 -0
- package/dist/tiempo-agregado.svg +75 -0
- package/dist/tiro-a-porteria.svg +81 -0
- package/dist/var.png +0 -0
- package/dist/var.svg +31 -0
- package/package.json +71 -0
- package/src/App.vue +9 -0
- package/src/components/Lineup2D/CheckBox.vue +42 -0
- package/src/components/Lineup2D/FilterEmpty.vue +49 -0
- package/src/components/Lineup2D/Icons.vue +30 -0
- package/src/components/Lineup2D/LineupField.vue +120 -0
- package/src/components/Lineup2D/LineupFilter.vue +286 -0
- package/src/components/Lineup2D/LineupMainHeader.vue +223 -0
- package/src/components/Lineup2D/LineupRecentItem.vue +111 -0
- package/src/components/Lineup2D/MatchDetails.vue +67 -0
- package/src/components/Lineup2D/playerimg.png +0 -0
- package/src/components/Lineup2D/tijuana.png +0 -0
- package/src/components/gsc-filter.vue +287 -0
- package/src/components/gsc-header-historico-lineup.vue +985 -0
- package/src/components/gsc-header-postmatch-lineup.vue +968 -0
- package/src/components/gsc-header-probables-lineup.vue +1044 -0
- package/src/components/gsc-header-recientes-lineup.vue +1873 -0
- package/src/components/gsc-lineup-dosd.vue +3752 -0
- package/src/components/gsc-lineup-main.vue +65 -0
- package/src/components/gsc-lineups-reports.vue +27 -0
- package/src/components/gsc-lineups.vue +6562 -0
- package/src/components/gsc-player-card.vue +166 -0
- package/src/index.js +4 -0
- package/src/main.js +4 -0
- package/src/types.d.ts +45 -0
- package/src/utils/socketConnection.js +29 -0
|
@@ -0,0 +1,286 @@
|
|
|
1
|
+
<template>
|
|
2
|
+
<div class="filter-modal" :style="{ zIndex }">
|
|
3
|
+
<div class="filter-modal__input" @click="openSelect">
|
|
4
|
+
<svg width="18" height="18" viewBox="0 0 18 18" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
5
|
+
<g id="vuesax/outline/sort">
|
|
6
|
+
<g id="sort">
|
|
7
|
+
<path id="Vector" opacity="0.7" d="M15.75 5.8125H2.25C1.9425 5.8125 1.6875 5.5575 1.6875 5.25C1.6875 4.9425 1.9425 4.6875 2.25 4.6875H15.75C16.0575 4.6875 16.3125 4.9425 16.3125 5.25C16.3125 5.5575 16.0575 5.8125 15.75 5.8125Z" fill="white"/>
|
|
8
|
+
<path id="Vector_2" opacity="0.7" d="M13.5 9.5625H4.5C4.1925 9.5625 3.9375 9.3075 3.9375 9C3.9375 8.6925 4.1925 8.4375 4.5 8.4375H13.5C13.8075 8.4375 14.0625 8.6925 14.0625 9C14.0625 9.3075 13.8075 9.5625 13.5 9.5625Z" fill="white"/>
|
|
9
|
+
<path id="Vector_3" opacity="0.7" d="M10.5 13.3125H7.5C7.1925 13.3125 6.9375 13.0575 6.9375 12.75C6.9375 12.4425 7.1925 12.1875 7.5 12.1875H10.5C10.8075 12.1875 11.0625 12.4425 11.0625 12.75C11.0625 13.0575 10.8075 13.3125 10.5 13.3125Z" fill="white"/>
|
|
10
|
+
</g>
|
|
11
|
+
</g>
|
|
12
|
+
</svg>
|
|
13
|
+
<input class="filter-modal__filter-text" type="text" :value="name" readonly>
|
|
14
|
+
<svg width="8" height="4" viewBox="0 0 8 4" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
15
|
+
<path fill-rule="evenodd" clip-rule="evenodd" d="M4 2.62045L6.86193 0.167368C7.12228 -0.0557892 7.54439 -0.0557892 7.80474 0.167368C8.06509 0.390524 8.06509 0.752333 7.80474 0.97549L4.4714 3.83263C4.21105 4.05579 3.78895 4.05579 3.5286 3.83263L0.195262 0.97549C-0.0650874 0.752333 -0.0650874 0.390524 0.195262 0.167368C0.455612 -0.0557892 0.877722 -0.0557892 1.13807 0.167368L4 2.62045Z" fill="#92929D"/>
|
|
16
|
+
</svg>
|
|
17
|
+
</div>
|
|
18
|
+
<div class="filter-modal__content" tabindex="0" ref="filterElement" @focusout="isOpen = false; goBack()" :class="isOpen ? 'open' : 'close'">
|
|
19
|
+
<div class="filter-modal__padding">
|
|
20
|
+
<div class="filter-modal__content-header">
|
|
21
|
+
<h3>Jugando como:</h3>
|
|
22
|
+
<CheckBox v-model="selectedAllTeams" label="Todos" @update:model-value="(value)=> ( value && (selectedFilterTeam = ['local', 'visit']))" />
|
|
23
|
+
</div>
|
|
24
|
+
<ul class="filter-modal__content-options">
|
|
25
|
+
<li v-for="item in teamOtp" @click="onSelect(item.id, 'team')" :class="{ active: selectedFilterTeam.includes(item.id)}" >{{ item.name }}</li>
|
|
26
|
+
</ul>
|
|
27
|
+
<div class="filter-modal__content-header">
|
|
28
|
+
<h3>Resultados:</h3>
|
|
29
|
+
<CheckBox v-model="selectedAllResults" label="Todos" @update:model-value="(value)=> ( value && (selectedFilterResults = ['win','lose','draw']))" />
|
|
30
|
+
</div>
|
|
31
|
+
<ul class="filter-modal__content-options">
|
|
32
|
+
<li v-for="item in resultOtp" @click="onSelect(item.id, 'player')" :class="{ active: selectedFilterResults.includes(item.id)}" >{{ item.name }}</li>
|
|
33
|
+
</ul>
|
|
34
|
+
</div>
|
|
35
|
+
<hr style="border-color: #FFFFFF33;">
|
|
36
|
+
<div class="filter-modal__buttons">
|
|
37
|
+
<div class="button filter-modal__text-btn" @click="removeFilter">Quitar filtros</div>
|
|
38
|
+
<div class="button filter-modal__outline-btn" @click="emitChanges">Listo</div>
|
|
39
|
+
</div>
|
|
40
|
+
</div>
|
|
41
|
+
</div>
|
|
42
|
+
</template>
|
|
43
|
+
<script setup>
|
|
44
|
+
import { ref, watch } from 'vue';
|
|
45
|
+
import CheckBox from '@/components/Lineup2D/CheckBox.vue'
|
|
46
|
+
const props = defineProps({
|
|
47
|
+
name: {
|
|
48
|
+
type: String,
|
|
49
|
+
default: '',
|
|
50
|
+
},
|
|
51
|
+
reset: {
|
|
52
|
+
type: Boolean,
|
|
53
|
+
default: false,
|
|
54
|
+
},
|
|
55
|
+
zIndex: {
|
|
56
|
+
type: Number,
|
|
57
|
+
default: 1
|
|
58
|
+
},
|
|
59
|
+
componentWidth: {
|
|
60
|
+
type: Number,
|
|
61
|
+
default: 768,
|
|
62
|
+
validator(value) {
|
|
63
|
+
return value > 0
|
|
64
|
+
}
|
|
65
|
+
},
|
|
66
|
+
})
|
|
67
|
+
const teamOtp = [{ id: "local", name: 'Local' }, { id: "visit", name: 'Visitante'}]
|
|
68
|
+
const resultOtp = [{ id: "win", name: 'Ganado' }, { id: "draw", name: 'Empatados' }, { id: "lose", name: 'Perdidos' }]
|
|
69
|
+
|
|
70
|
+
const isOpen = ref(false)
|
|
71
|
+
|
|
72
|
+
const filterElement = ref(null)
|
|
73
|
+
const emit = defineEmits(['update:model-value', 'change'])
|
|
74
|
+
const backUpFilterTeam = ref(["local", "visit"])
|
|
75
|
+
const backUpFilterResults = ref(["win","draw", "lose" ])
|
|
76
|
+
const backUpAllTeams = ref(true)
|
|
77
|
+
const backUpAllResults = ref(true)
|
|
78
|
+
const selectedAllTeams = ref(true)
|
|
79
|
+
const selectedAllResults = ref(true)
|
|
80
|
+
const selectedFilterTeam = ref(["local", "visit"])
|
|
81
|
+
const selectedFilterResults = ref(["win","draw", "lose" ])
|
|
82
|
+
|
|
83
|
+
const openSelect = () => {
|
|
84
|
+
isOpen.value = !isOpen.value
|
|
85
|
+
filterElement.value.focus()
|
|
86
|
+
backUpFilterTeam.value = JSON.parse(JSON.stringify(selectedFilterTeam.value))
|
|
87
|
+
backUpFilterResults.value = JSON.parse(JSON.stringify(selectedFilterResults.value))
|
|
88
|
+
backUpAllTeams.value = selectedAllTeams.value
|
|
89
|
+
backUpAllResults.value = selectedAllResults.value
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
watch(() => props.itemSelect, (newValue) => {
|
|
93
|
+
if (newValue) {
|
|
94
|
+
selectedFilterTeam.value = newValue.selectedFilterTeam
|
|
95
|
+
selectedFilterResults.value = newValue.selectedFilterResults
|
|
96
|
+
}
|
|
97
|
+
})
|
|
98
|
+
|
|
99
|
+
watch(() => props.reset, (newValue) => {
|
|
100
|
+
if (newValue) {
|
|
101
|
+
removeFilter();
|
|
102
|
+
}
|
|
103
|
+
})
|
|
104
|
+
|
|
105
|
+
const onSelect = (filter, type) => {
|
|
106
|
+
let filterArr
|
|
107
|
+
if(type === "team") {
|
|
108
|
+
filterArr = selectedFilterTeam.value
|
|
109
|
+
} else {
|
|
110
|
+
filterArr = selectedFilterResults.value
|
|
111
|
+
}
|
|
112
|
+
const foundInd = filterArr.findIndex(item => item === filter)
|
|
113
|
+
if(foundInd == -1) {
|
|
114
|
+
filterArr.push(filter)
|
|
115
|
+
} else {
|
|
116
|
+
if(type == 'team' && selectedFilterTeam.value.length > 1){
|
|
117
|
+
filterArr.splice(foundInd,1)
|
|
118
|
+
}else{
|
|
119
|
+
if(type == 'team'){
|
|
120
|
+
filterArr.push(filter);
|
|
121
|
+
}
|
|
122
|
+
if(selectedFilterResults.value.length > 1){
|
|
123
|
+
filterArr.splice(foundInd,1)
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
selectedAllTeams.value = selectedFilterTeam.value.length == 2 ? true : false
|
|
128
|
+
selectedAllResults.value = selectedFilterResults.value.length == 3 ? true : false
|
|
129
|
+
}
|
|
130
|
+
|
|
131
|
+
const removeFilter = ()=> {
|
|
132
|
+
selectedFilterTeam.value = ["local", "visit"]
|
|
133
|
+
selectedFilterResults.value = ["win","draw", "lose" ]
|
|
134
|
+
selectedAllTeams.value = true
|
|
135
|
+
selectedAllResults.value = true
|
|
136
|
+
emit('change', { selectedFilterTeam: selectedFilterTeam.value, selectedFilterResults: selectedFilterResults.value })
|
|
137
|
+
}
|
|
138
|
+
const emitChanges = () => {
|
|
139
|
+
emit('change', { selectedFilterTeam: selectedFilterTeam.value, selectedFilterResults: selectedFilterResults.value })
|
|
140
|
+
isOpen.value = !isOpen.value
|
|
141
|
+
}
|
|
142
|
+
const goBack = () => {
|
|
143
|
+
emit('change', { selectedFilterTeam: selectedFilterTeam.value, selectedFilterResults: selectedFilterResults.value })
|
|
144
|
+
}
|
|
145
|
+
</script>
|
|
146
|
+
<style lang="scss" scoped>
|
|
147
|
+
|
|
148
|
+
|
|
149
|
+
.filter-modal {
|
|
150
|
+
max-width: 103px;
|
|
151
|
+
width: 100%;
|
|
152
|
+
border-radius: 8px;
|
|
153
|
+
border: 1px solid rgba(255, 255, 255, 0.20);
|
|
154
|
+
background: #25333E;
|
|
155
|
+
position: relative;
|
|
156
|
+
height: 28px;
|
|
157
|
+
cursor: pointer;
|
|
158
|
+
@media only screen and (max-width : 500px) {
|
|
159
|
+
width: 55px;
|
|
160
|
+
}
|
|
161
|
+
&__filter-text {
|
|
162
|
+
@media only screen and (max-width : 500px) {
|
|
163
|
+
display: none;
|
|
164
|
+
}
|
|
165
|
+
}
|
|
166
|
+
&__input {
|
|
167
|
+
display: flex;
|
|
168
|
+
align-items: center;
|
|
169
|
+
padding: 0 8px 0 12px;
|
|
170
|
+
font-size: 14px;
|
|
171
|
+
height: 23px;
|
|
172
|
+
@media only screen and (max-width : 500px) {
|
|
173
|
+
justify-content: space-between;
|
|
174
|
+
}
|
|
175
|
+
}
|
|
176
|
+
input {
|
|
177
|
+
padding: 8px;
|
|
178
|
+
cursor: pointer;
|
|
179
|
+
width: 100%;
|
|
180
|
+
border: none;
|
|
181
|
+
background: transparent;
|
|
182
|
+
outline: none;
|
|
183
|
+
color: #FFF;
|
|
184
|
+
font-family: Poppins-Regular, sans-serif;
|
|
185
|
+
font-size: 14px;
|
|
186
|
+
font-weight: 400;
|
|
187
|
+
line-height: 24px;
|
|
188
|
+
}
|
|
189
|
+
&__content {
|
|
190
|
+
position: absolute;
|
|
191
|
+
top: calc(100% + 15px);
|
|
192
|
+
left: 0;
|
|
193
|
+
font-size: 12px;
|
|
194
|
+
min-width: 100%;
|
|
195
|
+
padding: 0;
|
|
196
|
+
border-radius: 12px;
|
|
197
|
+
background: #2E3B46;
|
|
198
|
+
width: 305px;
|
|
199
|
+
font-family: Poppins, sans-serif;
|
|
200
|
+
color: #FFF;
|
|
201
|
+
overflow: hidden;
|
|
202
|
+
// overflow-y: auto;
|
|
203
|
+
&.close {
|
|
204
|
+
max-height: 0;
|
|
205
|
+
}
|
|
206
|
+
&.open {
|
|
207
|
+
max-height: 600px;
|
|
208
|
+
// max-height: 400px;
|
|
209
|
+
}
|
|
210
|
+
}
|
|
211
|
+
&__padding {
|
|
212
|
+
padding: 20px 16.5px;
|
|
213
|
+
}
|
|
214
|
+
&__content-header {
|
|
215
|
+
display: flex;
|
|
216
|
+
width: 100%;
|
|
217
|
+
justify-content: space-between;
|
|
218
|
+
align-items: center;
|
|
219
|
+
margin-bottom: 17px;
|
|
220
|
+
h3 {
|
|
221
|
+
margin: 0;
|
|
222
|
+
color: #FFF;
|
|
223
|
+
font-family: Poppins, sans-serif;
|
|
224
|
+
font-size: 14px;
|
|
225
|
+
font-style: normal;
|
|
226
|
+
font-weight: 500;
|
|
227
|
+
line-height: 150%; /* 21px */
|
|
228
|
+
}
|
|
229
|
+
}
|
|
230
|
+
&__content-options {
|
|
231
|
+
list-style: none;
|
|
232
|
+
margin: 0;
|
|
233
|
+
padding: 0;
|
|
234
|
+
display: flex;
|
|
235
|
+
margin-bottom: 27px;
|
|
236
|
+
li:first-child {
|
|
237
|
+
border-radius: 4px 0 0 4px;
|
|
238
|
+
}
|
|
239
|
+
li:last-child {
|
|
240
|
+
border-radius: 0 4px 4px 0;
|
|
241
|
+
}
|
|
242
|
+
li.active {
|
|
243
|
+
border-color: #CBEE6B;
|
|
244
|
+
}
|
|
245
|
+
li {
|
|
246
|
+
border: 0.8px solid #8EA2AB;
|
|
247
|
+
height: 38px;
|
|
248
|
+
line-height: 38px;
|
|
249
|
+
text-align: center;
|
|
250
|
+
flex: 1 1 0%;
|
|
251
|
+
}
|
|
252
|
+
}
|
|
253
|
+
&__buttons {
|
|
254
|
+
height: 60px;
|
|
255
|
+
border-radius: 0 0 12px 12px;
|
|
256
|
+
display: flex;
|
|
257
|
+
justify-content: center;
|
|
258
|
+
align-items: center;
|
|
259
|
+
}
|
|
260
|
+
.button {
|
|
261
|
+
outline: none;
|
|
262
|
+
background: transparent;
|
|
263
|
+
color: #FFF;
|
|
264
|
+
text-align: center;
|
|
265
|
+
font-family: Poppins, sans-serif;
|
|
266
|
+
font-size: 12px;
|
|
267
|
+
font-style: normal;
|
|
268
|
+
font-weight: 500;
|
|
269
|
+
line-height: 120%; /* 14.4px */
|
|
270
|
+
letter-spacing: -0.36px;
|
|
271
|
+
cursor: pointer;
|
|
272
|
+
}
|
|
273
|
+
&__text-btn {
|
|
274
|
+
border: none;
|
|
275
|
+
color: rgba(255, 255, 255, 0.75);
|
|
276
|
+
margin-right: 16px;
|
|
277
|
+
text-decoration-line: underline;
|
|
278
|
+
}
|
|
279
|
+
&__outline-btn {
|
|
280
|
+
color: #FFF;
|
|
281
|
+
border-radius: 64px;
|
|
282
|
+
border: 0.8px solid #CBEE6B;
|
|
283
|
+
padding: 6px 24px;
|
|
284
|
+
}
|
|
285
|
+
}
|
|
286
|
+
</style>
|
|
@@ -0,0 +1,223 @@
|
|
|
1
|
+
<template>
|
|
2
|
+
<div class="main-header" :class="mainHeaderClass(type)" >
|
|
3
|
+
<div class="team" :class="{ disabled: !isLocalSelected && type === 'Recientes' }">
|
|
4
|
+
<div class="team__img-container" :style="teamSelected != localTeam.acronym && type==='Recientes' ? 'opacity: 0.5' : 'opacity: 1'">
|
|
5
|
+
<img :src="localTeam.img" v-if="localTeam.acronym != '-'">
|
|
6
|
+
</div>
|
|
7
|
+
<div class="team__acronym" :style="teamSelected != localTeam.acronym && type==='Recientes' ? 'opacity: 0.5' : 'opacity: 1'" v-if="localTeam.acronym != '-'">{{ localTeam.acronym }}</div>
|
|
8
|
+
<div v-if="type === 'Probables'" class="team_rival">
|
|
9
|
+
<div class="team__vs">vs</div>
|
|
10
|
+
<img v-if="probablyTeamHome.img!= '-'" :src="probablyTeamHome.img" class="img-post--left">
|
|
11
|
+
<div v-if="probablyTeamHome.acronym != '-'" class="team__acronym--gray team__acronym--gray--left">{{ probablyTeamHome.acronym }}</div>
|
|
12
|
+
</div>
|
|
13
|
+
</div>
|
|
14
|
+
<div v-if="['Historicos', 'Postmatch'].includes(type)" class="main-header__score">
|
|
15
|
+
{{ score }}
|
|
16
|
+
</div>
|
|
17
|
+
<div v-else-if="type === 'Recientes'" class="main-header__switch">
|
|
18
|
+
<GSCSwitchRadio width="43px" height="20px" heightCircle="17px" widthCircle="17px" circle-color-switch="#cbee6b" :text-option-left="localTeam.acronym" @change="changeSwitchRadio" :text-option-right="visitTeam.acronym" font-color="white" :value-default="teamSelect" :hidden-labels="true" />
|
|
19
|
+
</div>
|
|
20
|
+
<div class="team">
|
|
21
|
+
<div v-if="type === 'Probables'" class="team_rival">
|
|
22
|
+
<div class="team__acronym--gray team__acronym--gray--right" v-if="probablyTeamAway.acronym != '-'">{{ probablyTeamAway.acronym }}</div>
|
|
23
|
+
<img v-if="probablyTeamAway.img != '-'" :src="probablyTeamAway.img" class="img-post">
|
|
24
|
+
<div class="team__vs">vs</div>
|
|
25
|
+
</div>
|
|
26
|
+
<div class="team__acronym" :style="teamSelected != visitTeam.acronym && type==='Recientes' ? 'opacity: 0.5' : 'opacity: 1'">{{ visitTeam.acronym }}</div>
|
|
27
|
+
<div class="team__img-container left" :style="teamSelected != visitTeam.acronym && type==='Recientes' ? 'opacity: 0.5' : 'opacity: 1'">
|
|
28
|
+
<img v-if="visitTeam.img != '-'" :src="visitTeam.img">
|
|
29
|
+
</div>
|
|
30
|
+
</div>
|
|
31
|
+
</div>
|
|
32
|
+
|
|
33
|
+
</template>
|
|
34
|
+
<script setup>
|
|
35
|
+
import { GSCSwitchRadio } from '@golstats/gsc-switch-radio'
|
|
36
|
+
import { ref } from 'vue'
|
|
37
|
+
import '@@/@golstats/gsc-switch-radio/dist/style.css'
|
|
38
|
+
|
|
39
|
+
const props = defineProps({
|
|
40
|
+
type: {
|
|
41
|
+
type: String,
|
|
42
|
+
default: 'Historicos'
|
|
43
|
+
},
|
|
44
|
+
score: {
|
|
45
|
+
type: String,
|
|
46
|
+
default: '2 - 3'
|
|
47
|
+
},
|
|
48
|
+
//{ acronym: '', img: ''}
|
|
49
|
+
localTeam: {
|
|
50
|
+
type: Object,
|
|
51
|
+
default: () => ({})
|
|
52
|
+
},
|
|
53
|
+
visitTeam: {
|
|
54
|
+
type: Object,
|
|
55
|
+
default: () => ({})
|
|
56
|
+
},
|
|
57
|
+
probablyTeamHome: {
|
|
58
|
+
type: Object,
|
|
59
|
+
default: () => ({})
|
|
60
|
+
},
|
|
61
|
+
probablyTeamAway: {
|
|
62
|
+
type: Object,
|
|
63
|
+
default: () => ({})
|
|
64
|
+
}
|
|
65
|
+
})
|
|
66
|
+
const emit = defineEmits(['change'])
|
|
67
|
+
const changeSwitchRadio = (val) => {
|
|
68
|
+
if(typeof val === 'string') teamSelected.value = val
|
|
69
|
+
emit('change', val)
|
|
70
|
+
}
|
|
71
|
+
const isLocalSelected= ref(true)
|
|
72
|
+
let teamSelected = ref(props.localTeam.acronym)
|
|
73
|
+
</script>
|
|
74
|
+
<script >
|
|
75
|
+
export default {
|
|
76
|
+
methods: {
|
|
77
|
+
mainHeaderClass: function(type) {
|
|
78
|
+
let clase = ''
|
|
79
|
+
if (type === 'Recientes') clase = 'main-header-recientes'
|
|
80
|
+
if (type === 'Probables') clase = 'main-header-probables'
|
|
81
|
+
return clase
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
</script>
|
|
86
|
+
<style lang="scss" scoped>
|
|
87
|
+
.team_rival {
|
|
88
|
+
display: flex;
|
|
89
|
+
justify-content: space-between;
|
|
90
|
+
align-items: center;
|
|
91
|
+
gap: 0px;
|
|
92
|
+
visibility: visible;
|
|
93
|
+
width: auto;
|
|
94
|
+
@media screen and (max-width: 500px) {
|
|
95
|
+
visibility: hidden;
|
|
96
|
+
width: 0;
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
.main-header-recientes {
|
|
100
|
+
padding-bottom: 16px;
|
|
101
|
+
border-bottom: 1px solid #3D3D49;
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
.main-header-probables {
|
|
105
|
+
@media screen and (max-width: 724px) {
|
|
106
|
+
justify-content: center;
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
.main-header {
|
|
110
|
+
display: flex;
|
|
111
|
+
align-items: center;
|
|
112
|
+
justify-content: space-between;
|
|
113
|
+
margin-bottom: 16px;
|
|
114
|
+
.team {
|
|
115
|
+
display: flex;
|
|
116
|
+
align-items: center;
|
|
117
|
+
&__img-container {
|
|
118
|
+
height: 42px;
|
|
119
|
+
width: 42px;
|
|
120
|
+
border-radius: 50%;
|
|
121
|
+
border: 0.873px solid #0033C5;
|
|
122
|
+
box-shadow: 0px 1px 8px 0px rgb(0 0 0 / 25%);
|
|
123
|
+
display: flex;
|
|
124
|
+
align-items: center;
|
|
125
|
+
justify-content: center;
|
|
126
|
+
margin: 0 10px 0 0;
|
|
127
|
+
position: relative;
|
|
128
|
+
&.left {
|
|
129
|
+
margin: 0 0 0 10px;
|
|
130
|
+
border: 0.873px solid #CBEE6B;
|
|
131
|
+
}
|
|
132
|
+
img {
|
|
133
|
+
width: 28px;
|
|
134
|
+
height: 28px;
|
|
135
|
+
z-index: 1;
|
|
136
|
+
}
|
|
137
|
+
&::after {
|
|
138
|
+
content: " ";
|
|
139
|
+
height: 80%;
|
|
140
|
+
width: 80%;
|
|
141
|
+
position: absolute;
|
|
142
|
+
border-radius: 109.091px;
|
|
143
|
+
background: #172531;
|
|
144
|
+
}
|
|
145
|
+
}
|
|
146
|
+
&__acronym {
|
|
147
|
+
color: #F4F4F4;
|
|
148
|
+
font-family: Poppins,sans-serif;
|
|
149
|
+
font-size: 14px;
|
|
150
|
+
font-weight: 500;
|
|
151
|
+
line-height: 220.495%;
|
|
152
|
+
letter-spacing: 0.309px;
|
|
153
|
+
&--gray {
|
|
154
|
+
color: rgba(255, 255, 255, 0.70);
|
|
155
|
+
margin-left: 2px;
|
|
156
|
+
@media screen and (max-width: 724px) {
|
|
157
|
+
font-size: 10px;
|
|
158
|
+
&--left {
|
|
159
|
+
margin-right: 13px;
|
|
160
|
+
}
|
|
161
|
+
&--right {
|
|
162
|
+
margin-left: 13px;
|
|
163
|
+
}
|
|
164
|
+
}
|
|
165
|
+
}
|
|
166
|
+
@media screen and (max-width: 724px) {
|
|
167
|
+
/* font-size: 10px; */
|
|
168
|
+
}
|
|
169
|
+
|
|
170
|
+
}
|
|
171
|
+
&__vs {
|
|
172
|
+
color: rgba(255, 255, 255, 0.70);
|
|
173
|
+
font-family: Poppins,sans-serif;
|
|
174
|
+
font-size: 14px;
|
|
175
|
+
font-weight: 500;
|
|
176
|
+
line-height: 20.065px; /* 143.322% */
|
|
177
|
+
letter-spacing: -0.14px;
|
|
178
|
+
margin: 0 5px 0 10px;
|
|
179
|
+
@media screen and (max-width: 724px) {
|
|
180
|
+
font-size: 10px;
|
|
181
|
+
}
|
|
182
|
+
}
|
|
183
|
+
&.disabled {
|
|
184
|
+
opacity: 0.7;
|
|
185
|
+
}
|
|
186
|
+
.img-post {
|
|
187
|
+
width: 30px;
|
|
188
|
+
margin-left: 5px;
|
|
189
|
+
}
|
|
190
|
+
.img-post--left {
|
|
191
|
+
width: 30px;
|
|
192
|
+
margin-right: 5px;
|
|
193
|
+
}
|
|
194
|
+
}
|
|
195
|
+
|
|
196
|
+
&__score {
|
|
197
|
+
display: flex;
|
|
198
|
+
width: 71px;
|
|
199
|
+
height: 31px;
|
|
200
|
+
justify-content: center;
|
|
201
|
+
align-items: center;
|
|
202
|
+
border-radius: 17px;
|
|
203
|
+
background-color: rgba(255, 255, 255, .1);
|
|
204
|
+
color: #FFF;
|
|
205
|
+
text-align: center;
|
|
206
|
+
font-family: Inter, sans-serif;
|
|
207
|
+
font-size: 15px;
|
|
208
|
+
font-weight: 600;
|
|
209
|
+
padding: 6.524074554443359px 17.397533416748047px;
|
|
210
|
+
gap: 5px;
|
|
211
|
+
text-wrap: nowrap;
|
|
212
|
+
}
|
|
213
|
+
|
|
214
|
+
&__switch {
|
|
215
|
+
display: flex;
|
|
216
|
+
width: 71px;
|
|
217
|
+
height: 31px;
|
|
218
|
+
justify-content: center;
|
|
219
|
+
align-items: center;
|
|
220
|
+
}
|
|
221
|
+
}
|
|
222
|
+
|
|
223
|
+
</style>
|
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
<template>
|
|
2
|
+
<div class="recent-item">
|
|
3
|
+
<div class="recent-item__team-info">
|
|
4
|
+
<div class="recent-item__team">
|
|
5
|
+
<div class="recent-item__acronym">
|
|
6
|
+
{{ game.home_team_abbreviation }}
|
|
7
|
+
</div>
|
|
8
|
+
<img :src="'https://golstatsimages.blob.core.windows.net/teams-80/'+game.home_team+'.png'" class="left">
|
|
9
|
+
</div>
|
|
10
|
+
<div class="recent-item__score">
|
|
11
|
+
{{ game.score[0]}} - {{ game.score[4] }}
|
|
12
|
+
</div>
|
|
13
|
+
<div class="recent-item__team">
|
|
14
|
+
<img :src="'https://golstatsimages.blob.core.windows.net/teams-80/'+game.away_team+'.png'">
|
|
15
|
+
<div class="recent-item__acronym">
|
|
16
|
+
{{ game.away_team_abbreviation }}
|
|
17
|
+
</div>
|
|
18
|
+
</div>
|
|
19
|
+
</div>
|
|
20
|
+
<div class="recent-item__status">
|
|
21
|
+
<template v-if="game.home_team_abbreviation == teamSelect">
|
|
22
|
+
<template v-if="game.home_match_result == 1">Ganado</template>
|
|
23
|
+
<template v-if="game.home_match_result == 2">Perdido</template>
|
|
24
|
+
<template v-if="game.home_match_result == 3">Empatado</template>
|
|
25
|
+
</template>
|
|
26
|
+
<template v-if="game.away_team_abbreviation == teamSelect">
|
|
27
|
+
<template v-if="game.visiting_match_result == 1">Ganado</template>
|
|
28
|
+
<template v-if="game.visiting_match_result == 2">Perdido</template>
|
|
29
|
+
<template v-if="game.visiting_match_result == 3">Empatado</template>
|
|
30
|
+
</template>
|
|
31
|
+
</div>
|
|
32
|
+
</div>
|
|
33
|
+
</template>
|
|
34
|
+
<script setup>
|
|
35
|
+
defineProps({
|
|
36
|
+
score: {
|
|
37
|
+
type: String,
|
|
38
|
+
default: '2 - 3'
|
|
39
|
+
},
|
|
40
|
+
status: {
|
|
41
|
+
type: String,
|
|
42
|
+
default: 'Ganado'
|
|
43
|
+
},
|
|
44
|
+
game: {
|
|
45
|
+
type: Object,
|
|
46
|
+
default: () => ({})
|
|
47
|
+
},
|
|
48
|
+
teamSelect: {
|
|
49
|
+
type: String,
|
|
50
|
+
default: '1'
|
|
51
|
+
}
|
|
52
|
+
})
|
|
53
|
+
</script>
|
|
54
|
+
<style lang="scss" scoped>
|
|
55
|
+
.recent-item {
|
|
56
|
+
width: 200px;
|
|
57
|
+
max-width: 264px;
|
|
58
|
+
margin: auto;
|
|
59
|
+
&__team-info {
|
|
60
|
+
margin-bottom: 10px;
|
|
61
|
+
display: flex;
|
|
62
|
+
justify-content: space-between;
|
|
63
|
+
}
|
|
64
|
+
&__team {
|
|
65
|
+
display: flex;
|
|
66
|
+
align-items: center;
|
|
67
|
+
}
|
|
68
|
+
&__acronym {
|
|
69
|
+
color: rgba(255, 255, 255, 0.70);
|
|
70
|
+
font-family: Poppins, sans-serif;
|
|
71
|
+
font-size: 14px;
|
|
72
|
+
font-weight: 500;
|
|
73
|
+
line-height: 20.065px; /* 143.322% */
|
|
74
|
+
letter-spacing: -0.14px;
|
|
75
|
+
}
|
|
76
|
+
&__score {
|
|
77
|
+
border-radius: 17.398px;
|
|
78
|
+
border: 0.5px solid #CBEE6B;
|
|
79
|
+
background: rgba(255, 255, 255, 0.10);
|
|
80
|
+
width: 70px;
|
|
81
|
+
height: 32px;
|
|
82
|
+
display: flex;
|
|
83
|
+
justify-content: center;
|
|
84
|
+
align-items: center;
|
|
85
|
+
color: #FFF;
|
|
86
|
+
text-align: center;
|
|
87
|
+
font-family: Inter, sans-serif;
|
|
88
|
+
font-size: 15.223px;
|
|
89
|
+
font-style: normal;
|
|
90
|
+
font-weight: 600;
|
|
91
|
+
line-height: normal;
|
|
92
|
+
}
|
|
93
|
+
img {
|
|
94
|
+
height: 29px;
|
|
95
|
+
width: 29px;
|
|
96
|
+
margin: 0 5px 0 0;
|
|
97
|
+
}
|
|
98
|
+
.left {
|
|
99
|
+
margin: 0 0 0 5px;
|
|
100
|
+
}
|
|
101
|
+
&__status {
|
|
102
|
+
margin: auto;
|
|
103
|
+
color: rgba(255, 255, 255, 0.70);
|
|
104
|
+
text-align: center;
|
|
105
|
+
font-family: Poppins, sans-serif;
|
|
106
|
+
font-size: 12px;
|
|
107
|
+
font-style: normal;
|
|
108
|
+
font-weight: 500;
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
</style>
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
<template>
|
|
2
|
+
<div class="match-details">
|
|
3
|
+
<ul class="match-details__list">
|
|
4
|
+
<li v-for="detail in localDetails">
|
|
5
|
+
<Icons class="icon" :icon="detail.icon" />
|
|
6
|
+
<span>{{ detail.description }}</span>
|
|
7
|
+
</li>
|
|
8
|
+
</ul>
|
|
9
|
+
<ul class="match-details__list right">
|
|
10
|
+
<li v-for="detail in foreignDetails">
|
|
11
|
+
<span>{{ detail.description }}</span>
|
|
12
|
+
<Icons class="icon" :icon="detail.icon" />
|
|
13
|
+
</li>
|
|
14
|
+
</ul>
|
|
15
|
+
</div>
|
|
16
|
+
</template>
|
|
17
|
+
<script setup>
|
|
18
|
+
import Icons from '@/components/Lineup2D/Icons.vue'
|
|
19
|
+
defineProps({
|
|
20
|
+
localDetails: {
|
|
21
|
+
type: Array,
|
|
22
|
+
default: () => []
|
|
23
|
+
},
|
|
24
|
+
foreignDetails: {
|
|
25
|
+
type: Array,
|
|
26
|
+
default: () => []
|
|
27
|
+
}
|
|
28
|
+
})
|
|
29
|
+
</script>
|
|
30
|
+
<style lang="scss" scoped>
|
|
31
|
+
.match-details {
|
|
32
|
+
max-width: 195px;
|
|
33
|
+
widows: 100%;
|
|
34
|
+
margin: auto;
|
|
35
|
+
display: flex;
|
|
36
|
+
justify-content: space-between;
|
|
37
|
+
&__list {
|
|
38
|
+
list-style: none;
|
|
39
|
+
padding: 0;
|
|
40
|
+
margin: 0;
|
|
41
|
+
li {
|
|
42
|
+
color: rgba(255, 255, 255, 0.70);
|
|
43
|
+
font-family: Poppins, sans-serif;
|
|
44
|
+
font-size: 9px;
|
|
45
|
+
display: flex;
|
|
46
|
+
align-items: center;
|
|
47
|
+
font-weight: 500;
|
|
48
|
+
text-align: right;
|
|
49
|
+
line-height: 19.5px; /* 216.667% */
|
|
50
|
+
letter-spacing: -0.09px;
|
|
51
|
+
text-transform: capitalize;
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
.icon {
|
|
55
|
+
margin-right: 9px;
|
|
56
|
+
width: 9px;
|
|
57
|
+
}
|
|
58
|
+
&__list.right li {
|
|
59
|
+
text-align: left;
|
|
60
|
+
justify-content: flex-end;
|
|
61
|
+
}
|
|
62
|
+
&__list.right .icon {
|
|
63
|
+
margin-right: unset;
|
|
64
|
+
margin-left: 9px;
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
</style>
|
|
Binary file
|
|
Binary file
|