@golstats/gsc-reports 1.0.0

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 (135) hide show
  1. package/README.md +2 -0
  2. package/dist/FilterConditions-55d68355-C5NIJbY6-xW04mYhu-DRN4eEO4.js +191 -0
  3. package/dist/FilterField-59a73e38-DO8nYLqs-Da7H_Fvj-ZuLwDGOM.js +21 -0
  4. package/dist/FilterSubcategories-a9b32cc9-DlkHni1L-BXid_sIn-BvoU3OqZ.js +42 -0
  5. package/dist/css/fonts.css +83 -0
  6. package/dist/fonts/BebasNeue-Bold.otf +0 -0
  7. package/dist/fonts/BebasNeue-Bold.ttf +0 -0
  8. package/dist/fonts/BebasNeue-Bold.woff2 +0 -0
  9. package/dist/fonts/BebasNeue-Book.otf +0 -0
  10. package/dist/fonts/BebasNeue-Book.ttf +0 -0
  11. package/dist/fonts/BebasNeue-Book.woff2 +0 -0
  12. package/dist/fonts/BebasNeue-Light.otf +0 -0
  13. package/dist/fonts/BebasNeue-Light.ttf +0 -0
  14. package/dist/fonts/BebasNeue-Light.woff2 +0 -0
  15. package/dist/fonts/BebasNeue-Regular.otf +0 -0
  16. package/dist/fonts/BebasNeue-Regular.ttf +0 -0
  17. package/dist/fonts/BebasNeue-Regular.woff2 +0 -0
  18. package/dist/fonts/BebasNeue-Thin.otf +0 -0
  19. package/dist/fonts/BebasNeue-Thin.ttf +0 -0
  20. package/dist/fonts/BebasNeue-Thin.woff2 +0 -0
  21. package/dist/fonts/Montserrat-Black.otf +0 -0
  22. package/dist/fonts/Montserrat-BlackItalic.otf +0 -0
  23. package/dist/fonts/Montserrat-Bold.otf +0 -0
  24. package/dist/fonts/Montserrat-BoldItalic.otf +0 -0
  25. package/dist/fonts/Montserrat-ExtraBold.otf +0 -0
  26. package/dist/fonts/Montserrat-ExtraBoldItalic.otf +0 -0
  27. package/dist/fonts/Montserrat-ExtraLight.otf +0 -0
  28. package/dist/fonts/Montserrat-ExtraLightItalic.otf +0 -0
  29. package/dist/fonts/Montserrat-Italic.otf +0 -0
  30. package/dist/fonts/Montserrat-Light.otf +0 -0
  31. package/dist/fonts/Montserrat-LightItalic.otf +0 -0
  32. package/dist/fonts/Montserrat-Medium.otf +0 -0
  33. package/dist/fonts/Montserrat-MediumItalic.otf +0 -0
  34. package/dist/fonts/Montserrat-Regular.otf +0 -0
  35. package/dist/fonts/Montserrat-SemiBold.otf +0 -0
  36. package/dist/fonts/Montserrat-SemiBoldItalic.otf +0 -0
  37. package/dist/fonts/Montserrat-Thin.otf +0 -0
  38. package/dist/fonts/Montserrat-ThinItalic.otf +0 -0
  39. package/dist/fonts/Oswald-Bold.ttf +0 -0
  40. package/dist/fonts/Oswald-ExtraLight.ttf +0 -0
  41. package/dist/fonts/Oswald-Light.ttf +0 -0
  42. package/dist/fonts/Oswald-Medium.ttf +0 -0
  43. package/dist/fonts/Oswald-Regular.ttf +0 -0
  44. package/dist/fonts/Oswald-SemiBold.ttf +0 -0
  45. package/dist/fonts/Poppins-Black.otf +0 -0
  46. package/dist/fonts/Poppins-BlackItalic.otf +0 -0
  47. package/dist/fonts/Poppins-Bold.otf +0 -0
  48. package/dist/fonts/Poppins-BoldItalic.otf +0 -0
  49. package/dist/fonts/Poppins-ExtraBold.otf +0 -0
  50. package/dist/fonts/Poppins-ExtraBoldItalic.otf +0 -0
  51. package/dist/fonts/Poppins-ExtraLight.otf +0 -0
  52. package/dist/fonts/Poppins-ExtraLightItalic.otf +0 -0
  53. package/dist/fonts/Poppins-Italic.otf +0 -0
  54. package/dist/fonts/Poppins-Light.otf +0 -0
  55. package/dist/fonts/Poppins-LightItalic.otf +0 -0
  56. package/dist/fonts/Poppins-Medium.otf +0 -0
  57. package/dist/fonts/Poppins-MediumItalic.otf +0 -0
  58. package/dist/fonts/Poppins-Regular.otf +0 -0
  59. package/dist/fonts/Poppins-SemiBold.otf +0 -0
  60. package/dist/fonts/Poppins-SemiBoldItalic.otf +0 -0
  61. package/dist/fonts/Poppins-Thin.otf +0 -0
  62. package/dist/fonts/Poppins-ThinItalic.otf +0 -0
  63. package/dist/gsc-reports.css +1 -0
  64. package/dist/gsc-reports.es.js +4 -0
  65. package/dist/gsc-reports.umd.js +4079 -0
  66. package/dist/icons/icn-close.svg +5 -0
  67. package/dist/icons/icn-delete-delete.svg +3 -0
  68. package/dist/icons/icn-delete.svg +3 -0
  69. package/dist/icons/icn-download.svg +4 -0
  70. package/dist/icons/icn-duplicate-white.svg +11 -0
  71. package/dist/icons/icn-duplicate.svg +11 -0
  72. package/dist/icons/icn-edit.svg +11 -0
  73. package/dist/icons/icn-editar-withe.svg +3 -0
  74. package/dist/icons/icn-rename-white.svg +3 -0
  75. package/dist/icons/icn-rename.svg +3 -0
  76. package/dist/icons/icn-report-white.svg +11 -0
  77. package/dist/icons/icn-report.svg +11 -0
  78. package/dist/images/background-postmatch-template-01.jpg +0 -0
  79. package/dist/images/background-postmatch-template-02.jpg +0 -0
  80. package/dist/images/canchaRPH.svg +30 -0
  81. package/dist/index-B1R4W2EC.js +128151 -0
  82. package/dist/reports/background-postmatch-template-01@2x.jpg +0 -0
  83. package/dist/reports/background-postmatch-template-02@2x.jpg +0 -0
  84. package/dist/reports/thumbnail-portada-01@2x.png +0 -0
  85. package/dist/reports/thumbnail-portada-02@2x.png +0 -0
  86. package/dist/reports/thumbnail-portada-03@2x.png +0 -0
  87. package/dist/reports/thumbnail-portada-04@2x.png +0 -0
  88. package/dist/reports/thumbnail-portada-prmatch-01@2x.png +0 -0
  89. package/dist/reports/thumbnail-portada-prmatch-02@2x.png +0 -0
  90. package/dist/reports/thumbnail-portada-prmatch-03@2x.png +0 -0
  91. package/dist/reports/thumbnail-portada-prmatch-04@2x.png +0 -0
  92. package/dist/thumb1.png +0 -0
  93. package/dist/thumbnail-portada-01.jpg +0 -0
  94. package/dist/thumbnail-portada-02.jpg +0 -0
  95. package/dist/thumbnail-portada-03.jpg +0 -0
  96. package/dist/thumbnail-portada-04.jpg +0 -0
  97. package/dist/thumbnail-portada-prmatch-01.jpg +0 -0
  98. package/dist/thumbnail-portada-prmatch-02.jpg +0 -0
  99. package/dist/thumbnail-portada-prmatch-03.jpg +0 -0
  100. package/dist/thumbnail-portada-prmatch-04.jpg +0 -0
  101. package/package.json +70 -0
  102. package/src/App.vue +28 -0
  103. package/src/components/ReportsSection.vue +764 -0
  104. package/src/components/TemplatesSection.vue +911 -0
  105. package/src/components/elementsTemplates/ModalCreateTemplate.vue +407 -0
  106. package/src/components/elementsTemplates/ModalDeleteReport.vue +231 -0
  107. package/src/components/elementsTemplates/ModalDeleteTemplate.vue +234 -0
  108. package/src/components/elementsTemplates/ModalGenerarReporte.vue +1151 -0
  109. package/src/components/elementsTemplates/ModalRenameReporte.vue +315 -0
  110. package/src/components/elementsTemplates/ModalRenameTemplate.vue +320 -0
  111. package/src/components/elementsTemplates/ModalSoloEscritorio.vue +83 -0
  112. package/src/components/elementsTemplates/ModalduplicateTemplate.vue +283 -0
  113. package/src/components/elementsTemplates/ReportItem.vue +458 -0
  114. package/src/components/elementsTemplates/TemplateItem.vue +360 -0
  115. package/src/components/elementsTemplates/TooltipReportOptions.vue +85 -0
  116. package/src/components/elementsTemplates/TooltipTemplateOptions.vue +141 -0
  117. package/src/components/filters.vue +935 -0
  118. package/src/components/gsc-reports.vue +452 -0
  119. package/src/components/template-report-maker/CoverPage.vue +636 -0
  120. package/src/components/template-report-maker/CoverSelector.vue +165 -0
  121. package/src/components/template-report-maker/ReportAndTemplateMaker.vue +675 -0
  122. package/src/components/template-report-maker/ReportView.vue +66 -0
  123. package/src/components/template-report-maker/TemplateReportPage.vue +398 -0
  124. package/src/components/thumbnails-reports/AnalisisPostMatchType1.vue +741 -0
  125. package/src/components/thumbnails-reports/AnalisisPostMatchType2.vue +743 -0
  126. package/src/components/thumbnails-reports/AnalisisPostMatchType3.vue +463 -0
  127. package/src/components/thumbnails-reports/AnalisisPostMatchType4.vue +462 -0
  128. package/src/components/thumbnails-reports/AnalisisPrematchType1.vue +164 -0
  129. package/src/components/thumbnails-reports/AnalisisPrematchType2.vue +163 -0
  130. package/src/components/thumbnails-reports/AnalisisPrematchType3.vue +173 -0
  131. package/src/components/thumbnails-reports/AnalisisPrematchType4.vue +173 -0
  132. package/src/index.js +4 -0
  133. package/src/main.js +4 -0
  134. package/src/types.d.ts +45 -0
  135. package/src/utils/dateUtils.js +52 -0
@@ -0,0 +1,452 @@
1
+ <template>
2
+ <GSCTemplateReportMaker ref="reportTemplateMaker" :token="token" />
3
+ <div ref="containerRef" class="reports-container">
4
+ <ModalSoloEscritorio v-if="showMobileWarning" />
5
+ <h1 class="title">Mis reportes</h1>
6
+ <div class="top-bar">
7
+ <div class="tabs-container">
8
+ <div class="tabs">
9
+ <div
10
+ class="tab tab-templates"
11
+ :class="{ active: activeTab === 'templates' }"
12
+ @click="activeTab = 'templates'"
13
+ >
14
+ Templates
15
+ </div>
16
+ <div
17
+ class="tab tab-reports"
18
+ :class="{ active: activeTab === 'reports' }"
19
+ @click="activeTab = 'reports'"
20
+ >
21
+ Tus reportes
22
+ </div>
23
+ </div>
24
+ </div>
25
+ <div class="actions" v-if="activeTab === 'templates'">
26
+ <div class="search-container">
27
+ <img
28
+ src="http://golstatsimages.blob.core.windows.net/playlist-icons/icn-search@3x.png"
29
+ alt="Buscar"
30
+ class="search-icon"
31
+ />
32
+ <input v-model="searchQuery" class="search" type="text" placeholder="Buscar template" />
33
+ <button v-if="searchQuery" @click="clearSearch" class="clear-search-btn" type="button">
34
+ <svg
35
+ width="12"
36
+ height="12"
37
+ viewBox="0 0 12 12"
38
+ fill="none"
39
+ xmlns="http://www.w3.org/2000/svg"
40
+ >
41
+ <path
42
+ d="M9 3L3 9M3 3L9 9"
43
+ stroke="#8B98A9"
44
+ stroke-width="1.5"
45
+ stroke-linecap="round"
46
+ stroke-linejoin="round"
47
+ />
48
+ </svg>
49
+ </button>
50
+ </div>
51
+ <button class="create-template-btn" @click="showModalCreateTemplate = true">
52
+ <img
53
+ src="http://golstatsimages.blob.core.windows.net/playlist-icons/icn-agregar@3x.png"
54
+ alt="Agregar"
55
+ class="create-icon"
56
+ />
57
+ Crear template
58
+ </button>
59
+ </div>
60
+ <div class="actions" v-if="activeTab === 'reports'">
61
+ <div class="search-container">
62
+ <img
63
+ src="http://golstatsimages.blob.core.windows.net/playlist-icons/icn-search@3x.png"
64
+ alt="Buscar"
65
+ class="search-icon"
66
+ />
67
+ <input
68
+ v-model="searchQueryReports"
69
+ class="search search-reports"
70
+ type="text"
71
+ placeholder="Buscar reporte"
72
+ />
73
+ <button
74
+ v-if="searchQueryReports"
75
+ @click="clearSearchReports"
76
+ class="clear-search-btn"
77
+ type="button"
78
+ >
79
+ <svg
80
+ width="12"
81
+ height="12"
82
+ viewBox="0 0 12 12"
83
+ fill="none"
84
+ xmlns="http://www.w3.org/2000/svg"
85
+ >
86
+ <path
87
+ d="M9 3L3 9M3 3L9 9"
88
+ stroke="#8B98A9"
89
+ stroke-width="1.5"
90
+ stroke-linecap="round"
91
+ stroke-linejoin="round"
92
+ />
93
+ </svg>
94
+ </button>
95
+ </div>
96
+ </div>
97
+ </div>
98
+ <TemplatesSection
99
+ v-if="activeTab === 'templates'"
100
+ :userId="userId"
101
+ :token="token"
102
+ :team="team"
103
+ :searchQuery="searchQuery"
104
+ @switch-to-reports="activeTab = 'reports'"
105
+ @open-modal-new-template="onOpenModalNewTemplate"
106
+ @edit-template="onEditTemplate"
107
+ />
108
+ <ReportsSection
109
+ v-else
110
+ :userId="userId"
111
+ :token="token"
112
+ :team="team"
113
+ :searchQuery="searchQueryReports"
114
+ @open-report="onOpenReport"
115
+ />
116
+ <ModalCreateTemplate
117
+ v-if="showModalCreateTemplate"
118
+ :token="token"
119
+ @close="showModalCreateTemplate = false"
120
+ >
121
+ <!-- Aquí irá el contenido del modal -->
122
+ </ModalCreateTemplate>
123
+ </div>
124
+ </template>
125
+
126
+ <script setup>
127
+ // import ReportTemplateMaker from '@/components/template-report-maker/ReportAndTemplateMaker.vue'
128
+ import '@@/@golstats/gsc-template-report-maker/dist/gsc-template-report-maker.css'
129
+ import { GSCTemplateReportMaker } from '@@/@golstats/gsc-template-report-maker'
130
+ import { ref, onMounted, onBeforeUnmount, watch } from 'vue'
131
+ import TemplatesSection from './TemplatesSection.vue'
132
+ import ReportsSection from './ReportsSection.vue'
133
+ import ModalCreateTemplate from './elementsTemplates/ModalCreateTemplate.vue'
134
+ import ModalSoloEscritorio from './elementsTemplates/ModalSoloEscritorio.vue'
135
+
136
+ // Definir las props
137
+ const props = defineProps({
138
+ userId: {
139
+ type: Number,
140
+ required: true,
141
+ },
142
+ team: {
143
+ type: Number,
144
+ required: true,
145
+ },
146
+ token: {
147
+ type: String,
148
+ required: true,
149
+ },
150
+ })
151
+
152
+ // Usar las props
153
+ const { userId, team, token } = props
154
+
155
+ const activeTab = ref('templates')
156
+ const showMobileWarning = ref(false)
157
+ const containerRef = ref(null)
158
+ const showModalCreateTemplate = ref(false)
159
+ const searchQuery = ref('')
160
+ const searchQueryReports = ref('')
161
+ const reportTemplateMaker = ref(null)
162
+
163
+ function checkContainerWidth() {
164
+ if (containerRef.value) {
165
+ const width = containerRef.value.offsetWidth
166
+ showMobileWarning.value = width < 1028
167
+ }
168
+ }
169
+
170
+ watch(showMobileWarning, (val) => {
171
+ if (val) {
172
+ document.body.style.overflow = 'hidden'
173
+ } else {
174
+ document.body.style.overflow = ''
175
+ }
176
+ })
177
+
178
+ onBeforeUnmount(() => {
179
+ document.body.style.overflow = ''
180
+ })
181
+
182
+ onMounted(() => {
183
+ checkContainerWidth()
184
+ window.addEventListener('resize', checkContainerWidth)
185
+ })
186
+
187
+ onBeforeUnmount(() => {
188
+ window.removeEventListener('resize', checkContainerWidth)
189
+ })
190
+
191
+ function onOpenModalNewTemplate(template) {
192
+ console.log('onOpenModalNewTemplate, gsc-reports:', template)
193
+ onEditTemplate(template)
194
+ }
195
+
196
+ function onEditTemplate(template) {
197
+ console.log('onEditTemplate, template:', template)
198
+ //if (reportTemplateMaker.value) {
199
+ reportTemplateMaker.value.show({
200
+ template: template,
201
+ isTemplateMode: true,
202
+ })
203
+ //}
204
+ }
205
+
206
+ const clearSearch = () => {
207
+ searchQuery.value = ''
208
+ }
209
+
210
+ const clearSearchReports = () => {
211
+ searchQueryReports.value = ''
212
+ }
213
+
214
+ function onOpenReport(report) {
215
+ console.log('gsc-report onOpenReport, report:', report)
216
+ if (reportTemplateMaker.value) {
217
+ reportTemplateMaker.value.show({
218
+ template: report,
219
+ isTemplateMode: false,
220
+ })
221
+ }
222
+ }
223
+ </script>
224
+ <style>
225
+ .grid-stack-item-content {
226
+ //background: #3498db;
227
+ //color: white;
228
+ //text-align: center;
229
+ //padding: 20px;
230
+ //box-sizing: border-box;
231
+ overflow-y: hidden !important;
232
+ overflow-x: hidden !important;
233
+ box-shadow: 0 3px 14px 0 rgba(0, 0, 0, 0.25);
234
+ border-radius: 5px;
235
+ }
236
+ </style>
237
+
238
+ <style scoped>
239
+ .reports-container {
240
+ min-height: 100vh;
241
+ color: #fff;
242
+ margin-top: 54px;
243
+ font-family: 'Montserrat', sans-serif;
244
+ }
245
+ .title {
246
+ font-size: 22px;
247
+ font-weight: 500;
248
+ font-stretch: normal;
249
+ font-style: normal;
250
+ line-height: normal;
251
+ letter-spacing: normal;
252
+ text-align: left;
253
+ color: #fff;
254
+ font-family: 'Poppins-Medium';
255
+ margin-bottom: 16px;
256
+ }
257
+ .top-bar {
258
+ display: flex;
259
+ align-items: center;
260
+ justify-content: space-between;
261
+ gap: 30px;
262
+ margin-bottom: 30px;
263
+ }
264
+ .tabs-container {
265
+ display: flex;
266
+ align-items: center;
267
+ }
268
+ .tabs {
269
+ display: flex;
270
+ gap: 0;
271
+ border-bottom: none;
272
+ width: 419px;
273
+ }
274
+ .tab {
275
+ text-align: center;
276
+ padding: 10px 0;
277
+ font-size: 16px;
278
+ font-family: 'Poppins-Medium';
279
+ font-size: 16px;
280
+ font-weight: 500;
281
+ font-stretch: normal;
282
+ font-style: normal;
283
+ line-height: 1.25;
284
+ letter-spacing: normal;
285
+ text-align: center;
286
+ color: #fff;
287
+ opacity: 0.6;
288
+ cursor: pointer;
289
+ position: relative;
290
+ transition: color 0.2s;
291
+ border-bottom: 1px solid rgba(255, 255, 255, 0.3);
292
+ }
293
+ .tab-templates {
294
+ width: 168px;
295
+ flex: 0 0 168px;
296
+ }
297
+ .tab-reports {
298
+ flex: 1 1 0;
299
+ }
300
+ .tab.active {
301
+ opacity: 1;
302
+ border-bottom: 1px solid #cbee6b;
303
+ }
304
+ .tab.active::after {
305
+ content: '';
306
+ display: none;
307
+ }
308
+ .actions {
309
+ display: flex;
310
+ align-items: center;
311
+ gap: 12px;
312
+ }
313
+ .search-container {
314
+ position: relative;
315
+ display: flex;
316
+ align-items: center;
317
+ }
318
+ .search-icon {
319
+ position: absolute;
320
+ left: 12px;
321
+ width: 16px;
322
+ height: 16px;
323
+ z-index: 1;
324
+ pointer-events: none;
325
+ }
326
+ .search {
327
+ width: 187px;
328
+ height: 40px;
329
+ flex-grow: 0;
330
+ display: flex;
331
+ flex-direction: row;
332
+ justify-content: space-between;
333
+ align-items: center;
334
+ padding: 4px 8px 4px 40px;
335
+ border-radius: 4px;
336
+ border: solid 1px #3d4a54;
337
+ background-color: #0d1d29;
338
+ color: #fafafb;
339
+ font-family: 'Poppins-Regular';
340
+ font-size: 14px;
341
+ font-weight: normal;
342
+ font-stretch: normal;
343
+ font-style: normal;
344
+ line-height: normal;
345
+ letter-spacing: 0.1px;
346
+ text-align: left;
347
+ outline: none;
348
+ box-sizing: border-box;
349
+ transition: width 0.3s ease;
350
+ }
351
+
352
+ .search:focus {
353
+ width: 400px;
354
+ }
355
+
356
+ .search-reports {
357
+ width: 370px;
358
+ }
359
+
360
+ .search-reports:focus {
361
+ width: 520px;
362
+ }
363
+
364
+ .search::placeholder {
365
+ opacity: 0.41;
366
+ }
367
+
368
+ .clear-search-btn {
369
+ position: absolute;
370
+ right: 12px;
371
+ top: 50%;
372
+ transform: translateY(-50%);
373
+ background: none;
374
+ border: none;
375
+ cursor: pointer;
376
+ display: flex;
377
+ align-items: center;
378
+ justify-content: center;
379
+ padding: 4px;
380
+ border-radius: 4px;
381
+ transition: background-color 0.2s;
382
+ z-index: 2;
383
+ }
384
+
385
+ .clear-search-btn:hover {
386
+ background-color: rgba(255, 255, 255, 0.1);
387
+ }
388
+ .create-template-btn {
389
+ width: 171px;
390
+ height: 40px;
391
+ border-radius: 4px;
392
+ border: solid 1px #3d4a54;
393
+ background-color: #0d1d29;
394
+ color: #fafafb;
395
+ font-family: 'Poppins-Regular';
396
+ font-size: 14px;
397
+ font-weight: normal;
398
+ font-stretch: normal;
399
+ font-style: normal;
400
+ line-height: normal;
401
+ letter-spacing: 0.1px;
402
+ text-align: left;
403
+ display: flex;
404
+ align-items: center;
405
+ justify-content: center;
406
+ gap: 8px;
407
+ cursor: pointer;
408
+ transition: background 0.2s;
409
+ box-sizing: border-box;
410
+ }
411
+ .create-template-btn:hover {
412
+ background: #2c3744;
413
+ }
414
+ .create-icon {
415
+ width: 20px;
416
+ height: 14px;
417
+ }
418
+ .mobile-warning {
419
+ display: flex;
420
+ justify-content: center;
421
+ align-items: center;
422
+ min-height: 400px;
423
+ }
424
+ .mobile-warning-box {
425
+ border: 2px solid #cbee6b;
426
+ background: #0d1d29;
427
+ color: #fafafb;
428
+ padding: 32px 24px;
429
+ border-radius: 8px;
430
+ font-family: 'Poppins-Medium';
431
+ font-size: 18px;
432
+ text-align: center;
433
+ max-width: 350px;
434
+ }
435
+ @media (max-width: 1028px) {
436
+ .top-bar {
437
+ flex-direction: column;
438
+ align-items: stretch;
439
+ gap: 16px;
440
+ }
441
+ .tabs-container,
442
+ .actions {
443
+ width: 100%;
444
+ justify-content: flex-start;
445
+ }
446
+ .actions {
447
+ margin-top: 0;
448
+ margin-bottom: 0;
449
+ display: none;
450
+ }
451
+ }
452
+ </style>