@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.
Files changed (158) hide show
  1. package/README.md +2 -0
  2. package/dist/atajada.svg +57 -0
  3. package/dist/backarrow.svg +3 -0
  4. package/dist/cancha-3d.png +0 -0
  5. package/dist/contorno-escudo.svg +3 -0
  6. package/dist/css/fonts.css +91 -0
  7. package/dist/escudo1.png +0 -0
  8. package/dist/escudo2.png +0 -0
  9. package/dist/favicon.ico +0 -0
  10. package/dist/field-green-posesion.png +0 -0
  11. package/dist/fin-del-partido.svg +44 -0
  12. package/dist/fonts/BebasNeue-Bold.otf +0 -0
  13. package/dist/fonts/BebasNeue-Bold.ttf +0 -0
  14. package/dist/fonts/BebasNeue-Bold.woff2 +0 -0
  15. package/dist/fonts/BebasNeue-Book.otf +0 -0
  16. package/dist/fonts/BebasNeue-Book.ttf +0 -0
  17. package/dist/fonts/BebasNeue-Book.woff2 +0 -0
  18. package/dist/fonts/BebasNeue-Light.otf +0 -0
  19. package/dist/fonts/BebasNeue-Light.ttf +0 -0
  20. package/dist/fonts/BebasNeue-Light.woff2 +0 -0
  21. package/dist/fonts/BebasNeue-Regular.otf +0 -0
  22. package/dist/fonts/BebasNeue-Regular.ttf +0 -0
  23. package/dist/fonts/BebasNeue-Regular.woff2 +0 -0
  24. package/dist/fonts/BebasNeue-Thin.otf +0 -0
  25. package/dist/fonts/BebasNeue-Thin.ttf +0 -0
  26. package/dist/fonts/BebasNeue-Thin.woff2 +0 -0
  27. package/dist/fonts/Montserrat-Black.otf +0 -0
  28. package/dist/fonts/Montserrat-BlackItalic.otf +0 -0
  29. package/dist/fonts/Montserrat-Bold.otf +0 -0
  30. package/dist/fonts/Montserrat-BoldItalic.otf +0 -0
  31. package/dist/fonts/Montserrat-ExtraBold.otf +0 -0
  32. package/dist/fonts/Montserrat-ExtraBoldItalic.otf +0 -0
  33. package/dist/fonts/Montserrat-ExtraLight.otf +0 -0
  34. package/dist/fonts/Montserrat-ExtraLightItalic.otf +0 -0
  35. package/dist/fonts/Montserrat-Italic.otf +0 -0
  36. package/dist/fonts/Montserrat-Light.otf +0 -0
  37. package/dist/fonts/Montserrat-LightItalic.otf +0 -0
  38. package/dist/fonts/Montserrat-Medium.otf +0 -0
  39. package/dist/fonts/Montserrat-MediumItalic.otf +0 -0
  40. package/dist/fonts/Montserrat-Regular.otf +0 -0
  41. package/dist/fonts/Montserrat-SemiBold.otf +0 -0
  42. package/dist/fonts/Montserrat-SemiBoldItalic.otf +0 -0
  43. package/dist/fonts/Montserrat-Thin.otf +0 -0
  44. package/dist/fonts/Montserrat-ThinItalic.otf +0 -0
  45. package/dist/fonts/Oswald-Bold.ttf +0 -0
  46. package/dist/fonts/Oswald-ExtraLight.ttf +0 -0
  47. package/dist/fonts/Oswald-Light.ttf +0 -0
  48. package/dist/fonts/Oswald-Medium.ttf +0 -0
  49. package/dist/fonts/Oswald-Regular.ttf +0 -0
  50. package/dist/fonts/Oswald-SemiBold.ttf +0 -0
  51. package/dist/fonts/Poppins-Black.otf +0 -0
  52. package/dist/fonts/Poppins-BlackItalic.otf +0 -0
  53. package/dist/fonts/Poppins-Bold.otf +0 -0
  54. package/dist/fonts/Poppins-BoldItalic.otf +0 -0
  55. package/dist/fonts/Poppins-ExtraBold.otf +0 -0
  56. package/dist/fonts/Poppins-ExtraBoldItalic.otf +0 -0
  57. package/dist/fonts/Poppins-ExtraLight.otf +0 -0
  58. package/dist/fonts/Poppins-ExtraLightItalic.otf +0 -0
  59. package/dist/fonts/Poppins-Italic.otf +0 -0
  60. package/dist/fonts/Poppins-Light.otf +0 -0
  61. package/dist/fonts/Poppins-LightItalic.otf +0 -0
  62. package/dist/fonts/Poppins-Medium.otf +0 -0
  63. package/dist/fonts/Poppins-MediumItalic.otf +0 -0
  64. package/dist/fonts/Poppins-Regular.otf +0 -0
  65. package/dist/fonts/Poppins-SemiBold.otf +0 -0
  66. package/dist/fonts/Poppins-SemiBoldItalic.otf +0 -0
  67. package/dist/fonts/Poppins-Thin.otf +0 -0
  68. package/dist/fonts/Poppins-ThinItalic.otf +0 -0
  69. package/dist/fuera-de-lugar.svg +58 -0
  70. package/dist/gol.svg +49 -0
  71. package/dist/group-427321178.svg +8 -0
  72. package/dist/group-427321179.svg +5 -0
  73. package/dist/group-427321501.svg +5 -0
  74. package/dist/gsc-lineups-reports.css +1 -0
  75. package/dist/gsc-lineups-reports.es.js +11272 -0
  76. package/dist/gsc-lineups-reports.umd.js +10 -0
  77. package/dist/icn-arrow-expand.svg +3 -0
  78. package/dist/icn-cambio.svg +27 -0
  79. package/dist/icn-expand-arrow.svg +3 -0
  80. package/dist/icn-expand-arrow1.svg +3 -0
  81. package/dist/icn-falta.svg +43 -0
  82. package/dist/icn-filter.svg +12 -0
  83. package/dist/icn-filter1.svg +12 -0
  84. package/dist/icn-filter2.svg +12 -0
  85. package/dist/icn-golstats.png +0 -0
  86. package/dist/icn-play.svg +10 -0
  87. package/dist/icn-tarjeta-amarilla.svg +4 -0
  88. package/dist/icn-tarjeta-roja.svg +4 -0
  89. package/dist/icn-tiro-a-porteria.svg +36 -0
  90. package/dist/icn-tiros-de-esquina.svg +55 -0
  91. package/dist/images/cancha-horizontal-raw.jpg +0 -0
  92. package/dist/images/cancha-horizontal.jpg +0 -0
  93. package/dist/images/canchaRPH.svg +30 -0
  94. package/dist/images/events/atajada.svg +57 -0
  95. package/dist/images/events/cambio.svg +27 -0
  96. package/dist/images/events/falta.svg +43 -0
  97. package/dist/images/events/favicon.ico +0 -0
  98. package/dist/images/events/fin-del-partido.svg +44 -0
  99. package/dist/images/events/fuera-de-lugar.svg +58 -0
  100. package/dist/images/events/generic.svg +1 -0
  101. package/dist/images/events/gol.svg +49 -0
  102. package/dist/images/events/icn-cambio.svg +6 -0
  103. package/dist/images/events/icn-falta.svg +4 -0
  104. package/dist/images/events/icn-play.svg +3 -0
  105. package/dist/images/events/icn-tarjeta-amarilla.svg +3 -0
  106. package/dist/images/events/icn-tarjeta-roja.svg +3 -0
  107. package/dist/images/events/icn-tiro-a-porteria.svg +36 -0
  108. package/dist/images/events/icn-tiros-de-esquina.svg +18 -0
  109. package/dist/images/events/inicia-el-partido.svg +46 -0
  110. package/dist/images/events/jugada-peligrosa.svg +91 -0
  111. package/dist/images/events/penal-fallado.svg +195 -0
  112. package/dist/images/events/penal-marcado.svg +190 -0
  113. package/dist/images/events/tiempo-agregado.svg +75 -0
  114. package/dist/images/events/tiro-a-porteria.svg +81 -0
  115. package/dist/images/events/tiro-de-esquina.svg +55 -0
  116. package/dist/images/events/var.png +0 -0
  117. package/dist/images/events/var.svg +31 -0
  118. package/dist/inicia-el-partido.svg +46 -0
  119. package/dist/jugada-peligrosa.svg +91 -0
  120. package/dist/line-white.png +0 -0
  121. package/dist/line.png +0 -0
  122. package/dist/next-arrow.svg +3 -0
  123. package/dist/nextarrow.svg +3 -0
  124. package/dist/penal-fallado.svg +195 -0
  125. package/dist/penal-marcado.svg +190 -0
  126. package/dist/play-icn.svg +3 -0
  127. package/dist/shape.svg +3 -0
  128. package/dist/styles.css +1191 -0
  129. package/dist/tiempo-agregado.svg +75 -0
  130. package/dist/tiro-a-porteria.svg +81 -0
  131. package/dist/var.png +0 -0
  132. package/dist/var.svg +31 -0
  133. package/package.json +71 -0
  134. package/src/App.vue +9 -0
  135. package/src/components/Lineup2D/CheckBox.vue +42 -0
  136. package/src/components/Lineup2D/FilterEmpty.vue +49 -0
  137. package/src/components/Lineup2D/Icons.vue +30 -0
  138. package/src/components/Lineup2D/LineupField.vue +120 -0
  139. package/src/components/Lineup2D/LineupFilter.vue +286 -0
  140. package/src/components/Lineup2D/LineupMainHeader.vue +223 -0
  141. package/src/components/Lineup2D/LineupRecentItem.vue +111 -0
  142. package/src/components/Lineup2D/MatchDetails.vue +67 -0
  143. package/src/components/Lineup2D/playerimg.png +0 -0
  144. package/src/components/Lineup2D/tijuana.png +0 -0
  145. package/src/components/gsc-filter.vue +287 -0
  146. package/src/components/gsc-header-historico-lineup.vue +985 -0
  147. package/src/components/gsc-header-postmatch-lineup.vue +968 -0
  148. package/src/components/gsc-header-probables-lineup.vue +1044 -0
  149. package/src/components/gsc-header-recientes-lineup.vue +1873 -0
  150. package/src/components/gsc-lineup-dosd.vue +3752 -0
  151. package/src/components/gsc-lineup-main.vue +65 -0
  152. package/src/components/gsc-lineups-reports.vue +27 -0
  153. package/src/components/gsc-lineups.vue +6562 -0
  154. package/src/components/gsc-player-card.vue +166 -0
  155. package/src/index.js +4 -0
  156. package/src/main.js +4 -0
  157. package/src/types.d.ts +45 -0
  158. 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>