@golstats/gsc-reports 1.0.99 → 1.0.100
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 -2
- package/dist/{FilterConditions-55d68355-DMqzcKBO-TyZjze1I-Df0CdKQm.js → FilterConditions-55d68355-DMqzcKBO-TyZjze1I-C-4sxavs.js} +1 -1
- package/dist/{FilterField-59a73e38-CNaE03Ge-UliZ6gTE-CPkcDgxo.js → FilterField-59a73e38-CNaE03Ge-UliZ6gTE-DILrovEJ.js} +1 -1
- package/dist/{FilterSubcategories-a9b32cc9-_h5FCZ4r-BamOVEDD-C3RNA0PE.js → FilterSubcategories-a9b32cc9-_h5FCZ4r-BamOVEDD-BSBdn0dS.js} +1 -1
- package/dist/css/fonts.css +83 -83
- package/dist/gsc-reports.css +1 -1
- package/dist/gsc-reports.es.js +1 -1
- package/dist/gsc-reports.umd.js +98 -98
- package/dist/{index-CtphUsvB.js → index-MJf_XCYP.js} +7694 -7690
- package/package.json +1 -1
- package/src/App.vue +1 -1
- package/src/components/elementsTemplates/ModalDeleteTemplate.vue +249 -249
- package/src/components/elementsTemplates/ModalGenerarReporte.vue +30 -9
- package/src/components/elementsTemplates/ModalSoloEscritorio.vue +83 -83
- package/src/components/elementsTemplates/ModalduplicateTemplate.vue +300 -300
- package/src/components/elementsTemplates/TooltipReportOptions.vue +97 -97
- package/src/components/elementsTemplates/TooltipTemplateOptions.vue +168 -168
- package/src/components/filters.vue +935 -935
- package/src/components/template-report-maker/CoverSelector.vue +165 -165
- package/src/components/template-report-maker/ReportView.vue +66 -66
- package/src/components/thumbnails-reports/AnalisisPostMatchType1.vue +741 -741
- package/src/components/thumbnails-reports/AnalisisPostMatchType2.vue +743 -743
- package/src/components/thumbnails-reports/AnalisisPrematchType3.vue +173 -173
- package/src/components/thumbnails-reports/AnalisisPrematchType4.vue +173 -173
- package/src/index.js +4 -4
- package/src/types.d.ts +45 -45
- package/src/utils/dateUtils.js +52 -52
package/package.json
CHANGED
package/src/App.vue
CHANGED
|
@@ -27,7 +27,7 @@ function handleModalNext(options) {
|
|
|
27
27
|
<template>
|
|
28
28
|
<div class="container-reports">
|
|
29
29
|
<GSCReports
|
|
30
|
-
:team="
|
|
30
|
+
:team="1"
|
|
31
31
|
:user-id="481"
|
|
32
32
|
token="eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6NDgxLCJuYW1lIjoiR29sU3RhdHMiLCJ1c2VybmFtZSI6ImdvbHNhbWNoaXZhcyIsImVtYWlsIjoiIiwicHJvdmlkZXJfaWQiOjEsImxvZ2luX2dvbHN0YXRzIjoxLCJpYXQiOjE3NjI1NDQwMDUsImV4cCI6MTc5NDA4MDAwNX0.SGWoxQjwtNKmYVSX0j-0yivKHECqu-C_0Fu-Iae1XEY"
|
|
33
33
|
@toHome="handleToHome"
|
|
@@ -1,249 +1,249 @@
|
|
|
1
|
-
<template>
|
|
2
|
-
<div class="modal-overlay">
|
|
3
|
-
<div class="modal-content">
|
|
4
|
-
<button class="close-btn" @click="$emit('close')">
|
|
5
|
-
<img
|
|
6
|
-
src="https://golstatsimages.blob.core.windows.net/reports-images/icn-close.svg"
|
|
7
|
-
alt="Cerrar"
|
|
8
|
-
/>
|
|
9
|
-
</button>
|
|
10
|
-
<div class="modal-header">
|
|
11
|
-
<img
|
|
12
|
-
src="https://golstatsimages.blob.core.windows.net/reports-images/icn-delete-delete.svg"
|
|
13
|
-
class="icon-title"
|
|
14
|
-
alt="icon"
|
|
15
|
-
/>
|
|
16
|
-
<span class="modal-title">Eliminar template</span>
|
|
17
|
-
</div>
|
|
18
|
-
<div class="header-separator"></div>
|
|
19
|
-
<div class="modal-body confirm-text">
|
|
20
|
-
¿Estás seguro que deseas eliminar<br />
|
|
21
|
-
este template? Si lo haces no habrá manera<br />
|
|
22
|
-
de recuperarlo.
|
|
23
|
-
</div>
|
|
24
|
-
<div class="header-separator"></div>
|
|
25
|
-
<div class="modal-footer">
|
|
26
|
-
<button class="cancel-btn" @click="$emit('close')">Cancelar</button>
|
|
27
|
-
<button class="delete-btn" @click="handleDelete" :disabled="isDeleting">
|
|
28
|
-
{{ isDeleting ? 'Eliminando...' : 'Eliminar' }}
|
|
29
|
-
</button>
|
|
30
|
-
</div>
|
|
31
|
-
</div>
|
|
32
|
-
</div>
|
|
33
|
-
</template>
|
|
34
|
-
|
|
35
|
-
<script setup>
|
|
36
|
-
import { ref, onMounted, onUnmounted } from 'vue'
|
|
37
|
-
import axios from 'axios'
|
|
38
|
-
|
|
39
|
-
// Props para recibir el ID del template, user_id y token
|
|
40
|
-
const props = defineProps({
|
|
41
|
-
templateId: {
|
|
42
|
-
type: String,
|
|
43
|
-
required: true,
|
|
44
|
-
},
|
|
45
|
-
userId: {
|
|
46
|
-
type: String,
|
|
47
|
-
required: true,
|
|
48
|
-
},
|
|
49
|
-
token: {
|
|
50
|
-
type: String,
|
|
51
|
-
required: true,
|
|
52
|
-
},
|
|
53
|
-
})
|
|
54
|
-
|
|
55
|
-
// Emits para comunicar con el componente padre
|
|
56
|
-
const emit = defineEmits(['close', 'delete', 'templateDeleted'])
|
|
57
|
-
|
|
58
|
-
// Estado para controlar el loading
|
|
59
|
-
const isDeleting = ref(false)
|
|
60
|
-
|
|
61
|
-
// Deshabilitar scroll al abrir la modal y restaurar al cerrar
|
|
62
|
-
onMounted(() => {
|
|
63
|
-
document.body.style.overflow = 'hidden'
|
|
64
|
-
})
|
|
65
|
-
onUnmounted(() => {
|
|
66
|
-
document.body.style.overflow = ''
|
|
67
|
-
})
|
|
68
|
-
|
|
69
|
-
// Función para eliminar el template
|
|
70
|
-
const handleDelete = async () => {
|
|
71
|
-
try {
|
|
72
|
-
isDeleting.value = true
|
|
73
|
-
const axiosInstance = axios.create({ headers: { Authorization: `${props.token}` } })
|
|
74
|
-
const response = await axiosInstance.delete(
|
|
75
|
-
`https://m9qip57rsh.execute-api.us-east-2.amazonaws.com/prod/users/${props.userId}/templates/${props.templateId}`,
|
|
76
|
-
)
|
|
77
|
-
|
|
78
|
-
if (response.status === 200 || response.status === 204) {
|
|
79
|
-
// Emitir evento de éxito para refrescar la lista
|
|
80
|
-
emit('templateDeleted', props.templateId)
|
|
81
|
-
emit('close')
|
|
82
|
-
}
|
|
83
|
-
} catch (error) {
|
|
84
|
-
console.error('Error al eliminar template:', error)
|
|
85
|
-
// Aquí podrías mostrar un mensaje de error al usuario
|
|
86
|
-
alert('Error al eliminar el template. Por favor, inténtalo de nuevo.')
|
|
87
|
-
} finally {
|
|
88
|
-
isDeleting.value = false
|
|
89
|
-
}
|
|
90
|
-
}
|
|
91
|
-
</script>
|
|
92
|
-
|
|
93
|
-
<style scoped>
|
|
94
|
-
.modal-overlay {
|
|
95
|
-
position: fixed;
|
|
96
|
-
top: 0;
|
|
97
|
-
left: 0;
|
|
98
|
-
width: 100vw;
|
|
99
|
-
height: 100vh;
|
|
100
|
-
background: rgba(0, 0, 0, 0.45);
|
|
101
|
-
display: flex;
|
|
102
|
-
align-items: center;
|
|
103
|
-
justify-content: center;
|
|
104
|
-
z-index: 3200;
|
|
105
|
-
}
|
|
106
|
-
.modal-content {
|
|
107
|
-
width: 375px;
|
|
108
|
-
height: 218px;
|
|
109
|
-
background: #2e3b46;
|
|
110
|
-
border-radius: 10px;
|
|
111
|
-
box-shadow: 0 2px 16px 0 rgba(0, 0, 0, 0.18);
|
|
112
|
-
padding: 0;
|
|
113
|
-
position: relative;
|
|
114
|
-
display: flex;
|
|
115
|
-
flex-direction: column;
|
|
116
|
-
font-family: 'Poppins-Regular', 'Montserrat', sans-serif;
|
|
117
|
-
}
|
|
118
|
-
.close-btn {
|
|
119
|
-
position: absolute;
|
|
120
|
-
top: 16px;
|
|
121
|
-
right: 16px;
|
|
122
|
-
background: none;
|
|
123
|
-
border: none;
|
|
124
|
-
cursor: pointer;
|
|
125
|
-
z-index: 2;
|
|
126
|
-
padding: 0;
|
|
127
|
-
display: flex;
|
|
128
|
-
align-items: center;
|
|
129
|
-
justify-content: center;
|
|
130
|
-
}
|
|
131
|
-
.close-btn:hover {
|
|
132
|
-
opacity: 0.7;
|
|
133
|
-
}
|
|
134
|
-
.close-btn img {
|
|
135
|
-
width: 20px;
|
|
136
|
-
height: 20px;
|
|
137
|
-
}
|
|
138
|
-
.header-separator {
|
|
139
|
-
width: 100%;
|
|
140
|
-
height: 1px;
|
|
141
|
-
border-bottom: dashed 1px #58626b;
|
|
142
|
-
margin: 12px 0 0 0;
|
|
143
|
-
}
|
|
144
|
-
.modal-header {
|
|
145
|
-
display: flex;
|
|
146
|
-
align-items: center;
|
|
147
|
-
gap: 8px;
|
|
148
|
-
padding: 20px 24px 0 24px;
|
|
149
|
-
}
|
|
150
|
-
.icon-title {
|
|
151
|
-
width: 15px;
|
|
152
|
-
height: 15px;
|
|
153
|
-
}
|
|
154
|
-
.modal-title {
|
|
155
|
-
font-family: Poppins-Medium;
|
|
156
|
-
font-size: 14px;
|
|
157
|
-
font-weight: 500;
|
|
158
|
-
font-stretch: normal;
|
|
159
|
-
font-style: normal;
|
|
160
|
-
line-height: 1.5;
|
|
161
|
-
letter-spacing: normal;
|
|
162
|
-
text-align: left;
|
|
163
|
-
color: #fff;
|
|
164
|
-
}
|
|
165
|
-
.modal-body.confirm-text {
|
|
166
|
-
flex: 1;
|
|
167
|
-
display: flex;
|
|
168
|
-
flex-direction: column;
|
|
169
|
-
justify-content: center;
|
|
170
|
-
align-items: center;
|
|
171
|
-
padding: 4px 24px 0 24px;
|
|
172
|
-
opacity: 0.5;
|
|
173
|
-
font-family: Poppins-Regular;
|
|
174
|
-
font-size: 13px;
|
|
175
|
-
font-weight: normal;
|
|
176
|
-
font-stretch: normal;
|
|
177
|
-
font-style: normal;
|
|
178
|
-
line-height: 1.38;
|
|
179
|
-
letter-spacing: normal;
|
|
180
|
-
text-align: center;
|
|
181
|
-
color: #fff;
|
|
182
|
-
}
|
|
183
|
-
.modal-footer {
|
|
184
|
-
display: flex;
|
|
185
|
-
justify-content: center;
|
|
186
|
-
align-items: center;
|
|
187
|
-
gap: 18px;
|
|
188
|
-
margin-top: 13px;
|
|
189
|
-
padding: 0 24px 12px 24px;
|
|
190
|
-
}
|
|
191
|
-
.cancel-btn {
|
|
192
|
-
background: none;
|
|
193
|
-
border: none;
|
|
194
|
-
color: #b0bec5;
|
|
195
|
-
font-size: 14.9px;
|
|
196
|
-
font-family: Poppins-Medium;
|
|
197
|
-
height: 30px;
|
|
198
|
-
border-radius: 64px;
|
|
199
|
-
display: flex;
|
|
200
|
-
align-items: center;
|
|
201
|
-
justify-content: center;
|
|
202
|
-
cursor: pointer;
|
|
203
|
-
padding: 0 18px;
|
|
204
|
-
transition: color 0.2s;
|
|
205
|
-
text-decoration: underline;
|
|
206
|
-
}
|
|
207
|
-
.cancel-btn:hover {
|
|
208
|
-
color: #fff;
|
|
209
|
-
}
|
|
210
|
-
.delete-btn {
|
|
211
|
-
width: 107px;
|
|
212
|
-
height: 30px;
|
|
213
|
-
border-radius: 64px;
|
|
214
|
-
-webkit-backdrop-filter: blur(16px);
|
|
215
|
-
backdrop-filter: blur(16px);
|
|
216
|
-
border: solid 0.8px #ff6b6b;
|
|
217
|
-
background-color: rgba(255, 255, 255, 0.06);
|
|
218
|
-
font-family: Poppins-Medium;
|
|
219
|
-
font-size: 14.9px;
|
|
220
|
-
font-weight: 500;
|
|
221
|
-
font-stretch: normal;
|
|
222
|
-
font-style: normal;
|
|
223
|
-
line-height: 1.2;
|
|
224
|
-
letter-spacing: -0.45px;
|
|
225
|
-
text-align: center;
|
|
226
|
-
color: #ff6b6b;
|
|
227
|
-
cursor: pointer;
|
|
228
|
-
transition:
|
|
229
|
-
background 0.2s,
|
|
230
|
-
color 0.2s;
|
|
231
|
-
display: flex;
|
|
232
|
-
align-items: center;
|
|
233
|
-
justify-content: center;
|
|
234
|
-
}
|
|
235
|
-
.delete-btn:hover {
|
|
236
|
-
background: #ff6b6b;
|
|
237
|
-
color: #fff;
|
|
238
|
-
}
|
|
239
|
-
|
|
240
|
-
.delete-btn:disabled {
|
|
241
|
-
opacity: 0.5;
|
|
242
|
-
cursor: not-allowed;
|
|
243
|
-
}
|
|
244
|
-
|
|
245
|
-
.delete-btn:disabled:hover {
|
|
246
|
-
background-color: rgba(255, 255, 255, 0.06);
|
|
247
|
-
color: #ff6b6b;
|
|
248
|
-
}
|
|
249
|
-
</style>
|
|
1
|
+
<template>
|
|
2
|
+
<div class="modal-overlay">
|
|
3
|
+
<div class="modal-content">
|
|
4
|
+
<button class="close-btn" @click="$emit('close')">
|
|
5
|
+
<img
|
|
6
|
+
src="https://golstatsimages.blob.core.windows.net/reports-images/icn-close.svg"
|
|
7
|
+
alt="Cerrar"
|
|
8
|
+
/>
|
|
9
|
+
</button>
|
|
10
|
+
<div class="modal-header">
|
|
11
|
+
<img
|
|
12
|
+
src="https://golstatsimages.blob.core.windows.net/reports-images/icn-delete-delete.svg"
|
|
13
|
+
class="icon-title"
|
|
14
|
+
alt="icon"
|
|
15
|
+
/>
|
|
16
|
+
<span class="modal-title">Eliminar template</span>
|
|
17
|
+
</div>
|
|
18
|
+
<div class="header-separator"></div>
|
|
19
|
+
<div class="modal-body confirm-text">
|
|
20
|
+
¿Estás seguro que deseas eliminar<br />
|
|
21
|
+
este template? Si lo haces no habrá manera<br />
|
|
22
|
+
de recuperarlo.
|
|
23
|
+
</div>
|
|
24
|
+
<div class="header-separator"></div>
|
|
25
|
+
<div class="modal-footer">
|
|
26
|
+
<button class="cancel-btn" @click="$emit('close')">Cancelar</button>
|
|
27
|
+
<button class="delete-btn" @click="handleDelete" :disabled="isDeleting">
|
|
28
|
+
{{ isDeleting ? 'Eliminando...' : 'Eliminar' }}
|
|
29
|
+
</button>
|
|
30
|
+
</div>
|
|
31
|
+
</div>
|
|
32
|
+
</div>
|
|
33
|
+
</template>
|
|
34
|
+
|
|
35
|
+
<script setup>
|
|
36
|
+
import { ref, onMounted, onUnmounted } from 'vue'
|
|
37
|
+
import axios from 'axios'
|
|
38
|
+
|
|
39
|
+
// Props para recibir el ID del template, user_id y token
|
|
40
|
+
const props = defineProps({
|
|
41
|
+
templateId: {
|
|
42
|
+
type: String,
|
|
43
|
+
required: true,
|
|
44
|
+
},
|
|
45
|
+
userId: {
|
|
46
|
+
type: String,
|
|
47
|
+
required: true,
|
|
48
|
+
},
|
|
49
|
+
token: {
|
|
50
|
+
type: String,
|
|
51
|
+
required: true,
|
|
52
|
+
},
|
|
53
|
+
})
|
|
54
|
+
|
|
55
|
+
// Emits para comunicar con el componente padre
|
|
56
|
+
const emit = defineEmits(['close', 'delete', 'templateDeleted'])
|
|
57
|
+
|
|
58
|
+
// Estado para controlar el loading
|
|
59
|
+
const isDeleting = ref(false)
|
|
60
|
+
|
|
61
|
+
// Deshabilitar scroll al abrir la modal y restaurar al cerrar
|
|
62
|
+
onMounted(() => {
|
|
63
|
+
document.body.style.overflow = 'hidden'
|
|
64
|
+
})
|
|
65
|
+
onUnmounted(() => {
|
|
66
|
+
document.body.style.overflow = ''
|
|
67
|
+
})
|
|
68
|
+
|
|
69
|
+
// Función para eliminar el template
|
|
70
|
+
const handleDelete = async () => {
|
|
71
|
+
try {
|
|
72
|
+
isDeleting.value = true
|
|
73
|
+
const axiosInstance = axios.create({ headers: { Authorization: `${props.token}` } })
|
|
74
|
+
const response = await axiosInstance.delete(
|
|
75
|
+
`https://m9qip57rsh.execute-api.us-east-2.amazonaws.com/prod/users/${props.userId}/templates/${props.templateId}`,
|
|
76
|
+
)
|
|
77
|
+
|
|
78
|
+
if (response.status === 200 || response.status === 204) {
|
|
79
|
+
// Emitir evento de éxito para refrescar la lista
|
|
80
|
+
emit('templateDeleted', props.templateId)
|
|
81
|
+
emit('close')
|
|
82
|
+
}
|
|
83
|
+
} catch (error) {
|
|
84
|
+
console.error('Error al eliminar template:', error)
|
|
85
|
+
// Aquí podrías mostrar un mensaje de error al usuario
|
|
86
|
+
alert('Error al eliminar el template. Por favor, inténtalo de nuevo.')
|
|
87
|
+
} finally {
|
|
88
|
+
isDeleting.value = false
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
</script>
|
|
92
|
+
|
|
93
|
+
<style scoped>
|
|
94
|
+
.modal-overlay {
|
|
95
|
+
position: fixed;
|
|
96
|
+
top: 0;
|
|
97
|
+
left: 0;
|
|
98
|
+
width: 100vw;
|
|
99
|
+
height: 100vh;
|
|
100
|
+
background: rgba(0, 0, 0, 0.45);
|
|
101
|
+
display: flex;
|
|
102
|
+
align-items: center;
|
|
103
|
+
justify-content: center;
|
|
104
|
+
z-index: 3200;
|
|
105
|
+
}
|
|
106
|
+
.modal-content {
|
|
107
|
+
width: 375px;
|
|
108
|
+
height: 218px;
|
|
109
|
+
background: #2e3b46;
|
|
110
|
+
border-radius: 10px;
|
|
111
|
+
box-shadow: 0 2px 16px 0 rgba(0, 0, 0, 0.18);
|
|
112
|
+
padding: 0;
|
|
113
|
+
position: relative;
|
|
114
|
+
display: flex;
|
|
115
|
+
flex-direction: column;
|
|
116
|
+
font-family: 'Poppins-Regular', 'Montserrat', sans-serif;
|
|
117
|
+
}
|
|
118
|
+
.close-btn {
|
|
119
|
+
position: absolute;
|
|
120
|
+
top: 16px;
|
|
121
|
+
right: 16px;
|
|
122
|
+
background: none;
|
|
123
|
+
border: none;
|
|
124
|
+
cursor: pointer;
|
|
125
|
+
z-index: 2;
|
|
126
|
+
padding: 0;
|
|
127
|
+
display: flex;
|
|
128
|
+
align-items: center;
|
|
129
|
+
justify-content: center;
|
|
130
|
+
}
|
|
131
|
+
.close-btn:hover {
|
|
132
|
+
opacity: 0.7;
|
|
133
|
+
}
|
|
134
|
+
.close-btn img {
|
|
135
|
+
width: 20px;
|
|
136
|
+
height: 20px;
|
|
137
|
+
}
|
|
138
|
+
.header-separator {
|
|
139
|
+
width: 100%;
|
|
140
|
+
height: 1px;
|
|
141
|
+
border-bottom: dashed 1px #58626b;
|
|
142
|
+
margin: 12px 0 0 0;
|
|
143
|
+
}
|
|
144
|
+
.modal-header {
|
|
145
|
+
display: flex;
|
|
146
|
+
align-items: center;
|
|
147
|
+
gap: 8px;
|
|
148
|
+
padding: 20px 24px 0 24px;
|
|
149
|
+
}
|
|
150
|
+
.icon-title {
|
|
151
|
+
width: 15px;
|
|
152
|
+
height: 15px;
|
|
153
|
+
}
|
|
154
|
+
.modal-title {
|
|
155
|
+
font-family: Poppins-Medium;
|
|
156
|
+
font-size: 14px;
|
|
157
|
+
font-weight: 500;
|
|
158
|
+
font-stretch: normal;
|
|
159
|
+
font-style: normal;
|
|
160
|
+
line-height: 1.5;
|
|
161
|
+
letter-spacing: normal;
|
|
162
|
+
text-align: left;
|
|
163
|
+
color: #fff;
|
|
164
|
+
}
|
|
165
|
+
.modal-body.confirm-text {
|
|
166
|
+
flex: 1;
|
|
167
|
+
display: flex;
|
|
168
|
+
flex-direction: column;
|
|
169
|
+
justify-content: center;
|
|
170
|
+
align-items: center;
|
|
171
|
+
padding: 4px 24px 0 24px;
|
|
172
|
+
opacity: 0.5;
|
|
173
|
+
font-family: Poppins-Regular;
|
|
174
|
+
font-size: 13px;
|
|
175
|
+
font-weight: normal;
|
|
176
|
+
font-stretch: normal;
|
|
177
|
+
font-style: normal;
|
|
178
|
+
line-height: 1.38;
|
|
179
|
+
letter-spacing: normal;
|
|
180
|
+
text-align: center;
|
|
181
|
+
color: #fff;
|
|
182
|
+
}
|
|
183
|
+
.modal-footer {
|
|
184
|
+
display: flex;
|
|
185
|
+
justify-content: center;
|
|
186
|
+
align-items: center;
|
|
187
|
+
gap: 18px;
|
|
188
|
+
margin-top: 13px;
|
|
189
|
+
padding: 0 24px 12px 24px;
|
|
190
|
+
}
|
|
191
|
+
.cancel-btn {
|
|
192
|
+
background: none;
|
|
193
|
+
border: none;
|
|
194
|
+
color: #b0bec5;
|
|
195
|
+
font-size: 14.9px;
|
|
196
|
+
font-family: Poppins-Medium;
|
|
197
|
+
height: 30px;
|
|
198
|
+
border-radius: 64px;
|
|
199
|
+
display: flex;
|
|
200
|
+
align-items: center;
|
|
201
|
+
justify-content: center;
|
|
202
|
+
cursor: pointer;
|
|
203
|
+
padding: 0 18px;
|
|
204
|
+
transition: color 0.2s;
|
|
205
|
+
text-decoration: underline;
|
|
206
|
+
}
|
|
207
|
+
.cancel-btn:hover {
|
|
208
|
+
color: #fff;
|
|
209
|
+
}
|
|
210
|
+
.delete-btn {
|
|
211
|
+
width: 107px;
|
|
212
|
+
height: 30px;
|
|
213
|
+
border-radius: 64px;
|
|
214
|
+
-webkit-backdrop-filter: blur(16px);
|
|
215
|
+
backdrop-filter: blur(16px);
|
|
216
|
+
border: solid 0.8px #ff6b6b;
|
|
217
|
+
background-color: rgba(255, 255, 255, 0.06);
|
|
218
|
+
font-family: Poppins-Medium;
|
|
219
|
+
font-size: 14.9px;
|
|
220
|
+
font-weight: 500;
|
|
221
|
+
font-stretch: normal;
|
|
222
|
+
font-style: normal;
|
|
223
|
+
line-height: 1.2;
|
|
224
|
+
letter-spacing: -0.45px;
|
|
225
|
+
text-align: center;
|
|
226
|
+
color: #ff6b6b;
|
|
227
|
+
cursor: pointer;
|
|
228
|
+
transition:
|
|
229
|
+
background 0.2s,
|
|
230
|
+
color 0.2s;
|
|
231
|
+
display: flex;
|
|
232
|
+
align-items: center;
|
|
233
|
+
justify-content: center;
|
|
234
|
+
}
|
|
235
|
+
.delete-btn:hover {
|
|
236
|
+
background: #ff6b6b;
|
|
237
|
+
color: #fff;
|
|
238
|
+
}
|
|
239
|
+
|
|
240
|
+
.delete-btn:disabled {
|
|
241
|
+
opacity: 0.5;
|
|
242
|
+
cursor: not-allowed;
|
|
243
|
+
}
|
|
244
|
+
|
|
245
|
+
.delete-btn:disabled:hover {
|
|
246
|
+
background-color: rgba(255, 255, 255, 0.06);
|
|
247
|
+
color: #ff6b6b;
|
|
248
|
+
}
|
|
249
|
+
</style>
|
|
@@ -678,9 +678,7 @@ function hasSpecificPlaysView() {
|
|
|
678
678
|
for (const page of props.template.pages) {
|
|
679
679
|
if (page.components && Array.isArray(page.components)) {
|
|
680
680
|
for (const component of page.components) {
|
|
681
|
-
if (
|
|
682
|
-
component.coreView && component.coreView.id === 18
|
|
683
|
-
) {
|
|
681
|
+
if (component.coreView && component.coreView.id === 18) {
|
|
684
682
|
hasSpecificPlays = true
|
|
685
683
|
break
|
|
686
684
|
}
|
|
@@ -729,7 +727,7 @@ async function generarReporte() {
|
|
|
729
727
|
torneo: selectedTorneo.value,
|
|
730
728
|
jornada: selectedJornada.value,
|
|
731
729
|
partido: selectedPartido.value,
|
|
732
|
-
template: props.template
|
|
730
|
+
template: props.template,
|
|
733
731
|
})
|
|
734
732
|
// Cerrar este modal
|
|
735
733
|
emit('close')
|
|
@@ -858,10 +856,9 @@ watch(selectedLiga, (nuevaLiga, anteriorLiga) => {
|
|
|
858
856
|
!anteriorLiga &&
|
|
859
857
|
!cambioAutomatico.value
|
|
860
858
|
) {
|
|
861
|
-
// Buscar torneo automáticamente
|
|
862
|
-
|
|
863
|
-
|
|
864
|
-
)
|
|
859
|
+
// Buscar torneo automáticamente usando la función auxiliar
|
|
860
|
+
// para encontrar la season principal si es una related season
|
|
861
|
+
const torneoEncontrado = encontrarSeasonPrincipal(partidoParaConfigurar.value.season_id)
|
|
865
862
|
if (torneoEncontrado) {
|
|
866
863
|
cambioAutomatico.value = true
|
|
867
864
|
selectedTorneo.value = torneoEncontrado
|
|
@@ -1007,6 +1004,29 @@ async function cargarUltimosJuegos() {
|
|
|
1007
1004
|
}
|
|
1008
1005
|
}
|
|
1009
1006
|
|
|
1007
|
+
// Función auxiliar para encontrar la season principal si el season_id es una related season
|
|
1008
|
+
function encontrarSeasonPrincipal(seasonId) {
|
|
1009
|
+
if (!seasonId || !torneos.value.length) {
|
|
1010
|
+
return null
|
|
1011
|
+
}
|
|
1012
|
+
|
|
1013
|
+
// Primero buscar directamente por ID
|
|
1014
|
+
const seasonDirecta = torneos.value.find((torneo) => torneo.id === seasonId)
|
|
1015
|
+
if (seasonDirecta) {
|
|
1016
|
+
return seasonDirecta
|
|
1017
|
+
}
|
|
1018
|
+
|
|
1019
|
+
// Si no se encuentra directamente, buscar si alguna season principal tiene este ID en related_seasons
|
|
1020
|
+
const seasonPrincipal = torneos.value.find((torneo) => {
|
|
1021
|
+
if (torneo.related_seasons && Array.isArray(torneo.related_seasons)) {
|
|
1022
|
+
return torneo.related_seasons.some((related) => related.id === seasonId)
|
|
1023
|
+
}
|
|
1024
|
+
return false
|
|
1025
|
+
})
|
|
1026
|
+
|
|
1027
|
+
return seasonPrincipal || null
|
|
1028
|
+
}
|
|
1029
|
+
|
|
1010
1030
|
// Función para configurar automáticamente los selectores basado en el partido
|
|
1011
1031
|
function configurarSelectoresAutomaticamente(partido) {
|
|
1012
1032
|
if (!partido || !partido.game_id) {
|
|
@@ -1039,8 +1059,9 @@ function configurarSelectoresSoloSetear(partido) {
|
|
|
1039
1059
|
selectedLiga.value = ligaEncontrada
|
|
1040
1060
|
|
|
1041
1061
|
// Buscar y seleccionar la temporada (ya están cargados los torneos)
|
|
1062
|
+
// Usar la función auxiliar para encontrar la season principal si es una related season
|
|
1042
1063
|
if (partido.season_id && torneos.value.length > 0) {
|
|
1043
|
-
const torneoEncontrado =
|
|
1064
|
+
const torneoEncontrado = encontrarSeasonPrincipal(partido.season_id)
|
|
1044
1065
|
if (torneoEncontrado) {
|
|
1045
1066
|
selectedTorneo.value = torneoEncontrado
|
|
1046
1067
|
|