@golstats/gsc-reports 1.0.72 → 1.0.74

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 (29) hide show
  1. package/README.md +2 -2
  2. package/dist/{FilterConditions-55d68355-DMqzcKBO-BDPZ_sNw-Ckfw9Gtc.js → FilterConditions-55d68355-DMqzcKBO-BUsV1uff-BqhmhIO7.js} +11 -11
  3. package/dist/{FilterField-59a73e38-CNaE03Ge-CLG54zqa-C4gBnorS.js → FilterField-59a73e38-CNaE03Ge-5Ufd6Qjm-CLmzz8wD.js} +4 -4
  4. package/dist/{FilterSubcategories-a9b32cc9-_h5FCZ4r-DONMEjqg-DuVYNg8C.js → FilterSubcategories-a9b32cc9-_h5FCZ4r-DcLxx26Q-CEyuCb0o.js} +1 -1
  5. package/dist/css/fonts.css +83 -83
  6. package/dist/gsc-reports.css +1 -1
  7. package/dist/gsc-reports.es.js +1 -1
  8. package/dist/gsc-reports.umd.js +340 -318
  9. package/dist/{index-SP9XZkDu.js → index-BlybwR5p.js} +117226 -103273
  10. package/package.json +3 -3
  11. package/src/App.vue +28 -0
  12. package/src/components/TemplatesSection.vue +113 -0
  13. package/src/components/elementsTemplates/FortalezasView.vue +1193 -0
  14. package/src/components/elementsTemplates/ModalConfigurarContenido.vue +1229 -0
  15. package/src/components/elementsTemplates/ModalDeleteTemplate.vue +249 -249
  16. package/src/components/elementsTemplates/ModalGenerarReporte.vue +39 -1
  17. package/src/components/elementsTemplates/ModalSoloEscritorio.vue +83 -83
  18. package/src/components/elementsTemplates/ModalduplicateTemplate.vue +300 -300
  19. package/src/components/elementsTemplates/TirosEsquinaView.vue +1071 -0
  20. package/src/components/elementsTemplates/TooltipReportOptions.vue +97 -97
  21. package/src/components/elementsTemplates/TooltipTemplateOptions.vue +168 -168
  22. package/src/components/filters.vue +935 -935
  23. package/src/components/thumbnails-reports/AnalisisPostMatchType1.vue +741 -741
  24. package/src/components/thumbnails-reports/AnalisisPostMatchType2.vue +743 -743
  25. package/src/components/thumbnails-reports/AnalisisPrematchType3.vue +173 -173
  26. package/src/components/thumbnails-reports/AnalisisPrematchType4.vue +173 -173
  27. package/src/index.js +4 -4
  28. package/src/types.d.ts +45 -45
  29. package/src/utils/dateUtils.js +52 -52
@@ -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>
@@ -319,7 +319,7 @@ const props = defineProps({
319
319
  },
320
320
  })
321
321
 
322
- const emit = defineEmits(['close', 'generar', 'switch-to-reports'])
322
+ const emit = defineEmits(['close', 'generar', 'switch-to-reports', 'open-configurar-contenido'])
323
323
 
324
324
  const ligas = ref([]) // Aquí se guardan los torneos
325
325
  const torneos = ref([]) // Aquí se guardan las seasons del torneo seleccionado
@@ -668,8 +668,46 @@ function filtrarPartidosPorJornada(jornada) {
668
668
  partidos.value = partidosFiltrados
669
669
  }
670
670
 
671
+ // Función para verificar si existe un componente con id=15 (Fortalezas) en las pages del template
672
+ function tieneComponenteFortalezas() {
673
+ if (!props.template || !props.template.pages) {
674
+ return false
675
+ }
676
+ console.log('ENTRO A QUI A REVISAR SI HAY FORTALKEZAS')
677
+ console.log(props.template)
678
+
679
+ // Iterar sobre todas las pages del template
680
+ for (const page of props.template.pages) {
681
+ // Verificar si la page tiene components
682
+ if (page.components && Array.isArray(page.components)) {
683
+ // Buscar si existe algún componente con id = 15
684
+ const tieneFortalezas = page.components.some((component) => component.name === 'Fortalezas')
685
+ if (tieneFortalezas) {
686
+ return true
687
+ }
688
+ }
689
+ }
690
+
691
+ return false
692
+ }
693
+
671
694
  async function generarReporte() {
672
695
  try {
696
+ // Verificar si el template tiene componente Fortalezas (id = 15)
697
+ if (tieneComponenteFortalezas()) {
698
+ // Emitir evento para abrir ModalConfigurarContenido
699
+ emit('open-configurar-contenido', {
700
+ liga: selectedLiga.value,
701
+ torneo: selectedTorneo.value,
702
+ jornada: selectedJornada.value,
703
+ partido: selectedPartido.value,
704
+ template: props.template,
705
+ })
706
+ // Cerrar este modal
707
+ emit('close')
708
+ return
709
+ }
710
+
673
711
  // Mostrar loading
674
712
  loading.value = true
675
713