@vixoniccom/footbal-score 1.0.1 → 1.0.2-beta.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/CHANGELOG.md CHANGED
@@ -2,6 +2,10 @@
2
2
 
3
3
  All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines.
4
4
 
5
+ ### [1.0.2-beta.1](https://gitlab.com/mandomedio/vixonic/football-score/compare/v1.0.2-beta.0...v1.0.2-beta.1) (2022-12-05)
6
+
7
+ ### [1.0.2-beta.0](https://gitlab.com/mandomedio/vixonic/football-score/compare/v1.0.1...v1.0.2-beta.0) (2022-11-29)
8
+
5
9
  ### [1.0.1](https://gitlab.com/mandomedio/vixonic/football-score/compare/v1.0.1-beta.20...v1.0.1) (2022-11-24)
6
10
 
7
11
  ### [1.0.1-beta.20](https://gitlab.com/mandomedio/vixonic/football-score/compare/v1.0.1-beta.19...v1.0.1-beta.20) (2022-11-24)
package/build.zip CHANGED
Binary file
@@ -11,42 +11,112 @@
11
11
  "label": "Datos"
12
12
  },
13
13
  {
14
- "id": "updateTime",
15
- "type": "select-input",
16
- "required": true,
17
- "label": "Actualización",
18
- "defaultValue": 300000,
19
- "items": [
20
- {
21
- "label": "5 minutos",
22
- "value": 300000
23
- },
24
- {
25
- "label": "10 minutos",
26
- "value": 600000
27
- },
28
- {
29
- "label": "30 minutos",
30
- "value": 1800000
31
- },
32
- {
33
- "label": "1 hora",
34
- "value": 3600000
35
- },
36
- {
37
- "label": "6 horas",
38
- "value": 21600000
39
- },
40
- {
41
- "label": "12 horas",
42
- "value": 43200000
43
- },
44
- {
45
- "label": "Diario",
46
- "value": 86400000
47
- }
48
- ]
49
- },
14
+ "id": "timeStart",
15
+ "type": "select-input",
16
+ "required": true,
17
+ "label": "Hora Inicio",
18
+ "defaultValue": "6am",
19
+ "items": [
20
+ {
21
+ "label": "6 am",
22
+ "value": "6am"
23
+ },
24
+ {
25
+ "label": "7 am",
26
+ "value": "7am"
27
+ },
28
+ {
29
+ "label": "8 am",
30
+ "value": "8am"
31
+ },
32
+ {
33
+ "label": "9 am",
34
+ "value": "9am"
35
+ },
36
+ {
37
+ "label": "10 am",
38
+ "value": "10am"
39
+ },
40
+ {
41
+ "label": "11 am",
42
+ "value": "11am"
43
+ }
44
+ ]
45
+ },
46
+ {
47
+ "id": "timeEnd",
48
+ "type": "select-input",
49
+ "required": true,
50
+ "label": "Hora Fin",
51
+ "defaultValue": "7pm",
52
+ "items": [
53
+ {
54
+ "label": "5 pm",
55
+ "value": "5pm"
56
+ },
57
+ {
58
+ "label": "6 pm",
59
+ "value": "6pm"
60
+ },
61
+ {
62
+ "label": "7 pm",
63
+ "value": "7pm"
64
+ },
65
+ {
66
+ "label": "8 pm",
67
+ "value": "8pm"
68
+ },
69
+ {
70
+ "label": "9 pm",
71
+ "value": "9pm"
72
+ },
73
+ {
74
+ "label": "10 pm",
75
+ "value": "10pm"
76
+ },
77
+ {
78
+ "label": "11 pm",
79
+ "value": "11pm"
80
+ }
81
+ ]
82
+ },
83
+ {
84
+ "id": "updateTime",
85
+ "type": "select-input",
86
+ "required": true,
87
+ "label": "Actualización",
88
+ "defaultValue": 300000,
89
+ "items": [
90
+ {
91
+ "label": "5 minutos",
92
+ "value": 300000
93
+ },
94
+ {
95
+ "label": "10 minutos",
96
+ "value": 600000
97
+ },
98
+ {
99
+ "label": "30 minutos",
100
+ "value": 1800000
101
+ },
102
+ {
103
+ "label": "1 hora",
104
+ "value": 3600000
105
+ },
106
+ {
107
+ "label": "6 horas",
108
+ "value": 21600000
109
+ },
110
+ {
111
+ "label": "12 horas",
112
+ "value": 43200000
113
+ },
114
+ {
115
+ "label": "Diario",
116
+ "value": 86400000
117
+ }
118
+ ]
119
+ },
50
120
  {
51
121
  "type": "switch",
52
122
  "id": "titleEnabled",
@@ -134,7 +204,7 @@
134
204
  "required": false,
135
205
  "label": "Ancho columna fecha partido",
136
206
  "description": "Agregar en px, ejemplo 100px. (Por defecto son 200px)",
137
- "defaultValue":"200px"
207
+ "defaultValue": "200px"
138
208
  },
139
209
  {
140
210
  "type": "text-format",
@@ -147,7 +217,7 @@
147
217
  "required": false,
148
218
  "label": "Ancho columna Status Partido",
149
219
  "description": "Agregar en px, ejemplo 100px. (Por defecto son 200px)",
150
- "defaultValue":"200px"
220
+ "defaultValue": "200px"
151
221
  },
152
222
  {
153
223
  "type": "text-format",
@@ -160,7 +230,7 @@
160
230
  "required": false,
161
231
  "label": "Ancho columna Goles",
162
232
  "description": "Agregar en px, ejemplo 100px. (Por defecto son 100px)",
163
- "defaultValue":"200px"
233
+ "defaultValue": "200px"
164
234
  },
165
235
  {
166
236
  "type": "switch",
@@ -181,7 +251,7 @@
181
251
  "label": "Ancho columna Nombre Equipo",
182
252
  "show": "{{descriptionEnabled}} === true",
183
253
  "description": "Agregar en px, ejemplo 100px. (Por defecto son 200px)",
184
- "defaultValue":"200px"
254
+ "defaultValue": "200px"
185
255
  },
186
256
  {
187
257
  "type": "label",
@@ -200,7 +270,7 @@
200
270
  "required": false,
201
271
  "label": "Ancho columna Bandera",
202
272
  "description": "Agregar en px, ejemplo 100px. (Por defecto son 300px)",
203
- "defaultValue":"300px"
273
+ "defaultValue": "300px"
204
274
  }
205
275
  ]
206
276
  }
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@vixoniccom/footbal-score",
3
3
  "alias": "Resultados Deportivos",
4
- "version": "1.0.1",
4
+ "version": "1.0.2-beta.1",
5
5
  "description": "Muestra resultados en vivo de fútbol.",
6
6
  "main": "main.js",
7
7
  "author": "",
package/src/App.tsx CHANGED
@@ -4,13 +4,18 @@ import { FormattedText } from './components/FormattedText';
4
4
  import { Table } from './components/table-fixture/Table';
5
5
  import { ConfigureContext } from './contex/configureContext/ConfigureContext';
6
6
  import { getFixture } from './helpers/getFixture';
7
+ import localforage from 'localforage';
8
+ import moment from 'moment';
9
+
7
10
  type Props = {
8
11
  data: VixonicData,
9
12
  start: boolean
10
13
  }
11
14
 
12
15
  export const App = ({ data, start }: Props) => {
13
- const [dataFixture, setDataFixture] = useState([]);
16
+
17
+
18
+ const [dataFixture, setDataFixture] = useState([]);
14
19
 
15
20
  const { configureState, addConfiguration } = useContext(ConfigureContext)
16
21
 
@@ -21,32 +26,54 @@ export const App = ({ data, start }: Props) => {
21
26
  msj0 = '',
22
27
  updateTime
23
28
  } = parameters
24
- console.log("🚀 ~ file: App.tsx ~ line 24 ~ App ~ updateTime", updateTime)
25
29
 
26
30
  let backgroundImageState = backgroundImage && backgroundImage.filename
27
31
  ? `url("${downloadsPath}/${backgroundImage.filename}")`
28
32
  : ''
29
33
 
30
34
  const getData = async () => {
31
- const data = await getFixture();
32
- setDataFixture(data);
35
+ let dataLocal: any = await getLocalData()
36
+ let momentLocalStorage: any = dataLocal ? moment().diff(dataLocal.date, 'millisecond') : undefined
37
+ let timeNowFormat = moment().format('h:mma')
38
+ let timeNow = moment(timeNowFormat, 'h:mma');
39
+ let horaInicio = moment(data.parameters.timeStart, 'h:mma');
40
+ let horaFin = moment(data.parameters.timeEnd, 'h:mma');
41
+ if (momentLocalStorage == undefined || (timeNow.isBetween(horaInicio, horaFin) && momentLocalStorage > updateTime!)) {
42
+ const data = await getFixture();
43
+ setDataLocal(data)
44
+ setDataFixture(data);
45
+ } else {
46
+ setDataFixture(dataLocal.data)
47
+ }
33
48
  }
34
49
 
35
-
36
50
  useEffect(() => {
37
- console.log('entro aquí')
38
- if (start) getData()
51
+ if (start) {
52
+ getData()
53
+ }
39
54
  addConfiguration(data)
40
55
  }, [data])
41
56
 
42
57
  //Request data every 5 minutes
43
58
  useEffect(() => {
44
- const interval = setInterval(() => {
59
+ let interval = setInterval(() => {
45
60
  getData()
46
- }, updateTime || 300000)
61
+ }, updateTime! || 300000);
47
62
  return () => clearInterval(interval)
48
- }, [updateTime])
63
+ }, [updateTime, data])
64
+
65
+ const setDataLocal = (data: any) => {
66
+ localforage.config({ name: 'request_api_football' })
67
+ localforage.setItem('football-score', {
68
+ date: Date.now(),
69
+ data: data
70
+ }, (err) => { if (err) console.log('err', err) })
71
+ }
49
72
 
73
+ const getLocalData = async () => {
74
+ let dataLocal = await localforage.getItem('football-score')
75
+ return dataLocal
76
+ }
50
77
 
51
78
 
52
79
  return (
@@ -63,7 +90,7 @@ export const App = ({ data, start }: Props) => {
63
90
  padding: padding
64
91
  }}
65
92
  >
66
- <FontLoader paths={['nameFormat.font','statusFormat.font', 'timeFormat.font','titleFormat.font', 'descriptionFormat.font', 'dateDayFormat.font', 'dateMonthFormat.font', 'goalsFormat.font']} parameters={parameters} downloadsPath={downloadsPath} />
93
+ <FontLoader paths={['nameFormat.font', 'statusFormat.font', 'timeFormat.font', 'titleFormat.font', 'descriptionFormat.font', 'dateDayFormat.font', 'dateMonthFormat.font', 'goalsFormat.font']} parameters={parameters} downloadsPath={downloadsPath} />
67
94
  {
68
95
  parameters.titleEnabled &&
69
96
  <div style={{
@@ -2,20 +2,28 @@ import React, { useContext } from 'react'
2
2
  import { ConfigureContext } from '../../contex/configureContext/ConfigureContext'
3
3
  import { FormattedText } from '../FormattedText'
4
4
 
5
- export const Results = (goals: any) => {
5
+ export const Results = ({ goals, score }: any) => {
6
6
 
7
7
  const { configureState } = useContext(ConfigureContext)
8
8
  const { parameters } = configureState
9
-
9
+
10
10
 
11
11
  return (
12
12
  <div style={{
13
13
  display: 'flex',
14
14
  justifyContent: 'center',
15
15
  }}>
16
- <FormattedText text={goals.goals.home ? goals.goals.home : 0} format={parameters.goalsFormat} />
16
+ {
17
+ score.penalty.home &&
18
+ <FormattedText text={`(${score.penalty.home})`} format={parameters.goalsFormat} />
19
+ }
20
+ <FormattedText text={goals.home ? goals.home : 0} format={parameters.goalsFormat} />
17
21
  <FormattedText text={"-"} format={parameters.goalsFormat} />
18
- <FormattedText text={goals.goals.away ? goals.goals.away : 0} format={parameters.goalsFormat} />
22
+ <FormattedText text={goals.away ? goals.away : 0} format={parameters.goalsFormat} />
23
+ {
24
+ score.penalty.away &&
25
+ <FormattedText text={`(${score.penalty.away}) `} format={parameters.goalsFormat} />
26
+ }
19
27
  </div>
20
28
  )
21
29
  }
@@ -9,7 +9,7 @@ import { Results } from './Results';
9
9
 
10
10
  export const Row = (item: any) => {
11
11
 
12
- const { fixture, teams, goals } = item.item;
12
+ const { fixture, teams, goals, score } = item.item;
13
13
  const { configureState } = useContext(ConfigureContext)
14
14
  const { parameters } = configureState
15
15
  const [homeTeam, setHomeTeam] = useState(false);
@@ -100,8 +100,6 @@ export const Row = (item: any) => {
100
100
 
101
101
  </div>
102
102
 
103
-
104
-
105
103
  {
106
104
  descriptionEnabled &&
107
105
  <div style={{
@@ -127,7 +125,7 @@ export const Row = (item: any) => {
127
125
  }
128
126
  </div>
129
127
 
130
- <Results goals={goals} />
128
+ <Results goals={goals} score={score} />
131
129
 
132
130
  <div
133
131
  style={{
@@ -63,6 +63,8 @@ const INITIAL_STATE: VixonicData = {
63
63
  rowGap: "30px",
64
64
  widthStatus: "200px",
65
65
  widthTime: "200px",
66
+ timeEnd: "7pm",
67
+ timeStart: "6am",
66
68
  }
67
69
  }
68
70
 
@@ -8,7 +8,6 @@ export const parameterReducer = (state: VixonicData, action: ConfigureAction) =>
8
8
  const { downloadsPath, parameters } = action.payload
9
9
  switch (action.type) {
10
10
  case 'addConfigure':
11
- console.log(parameters)
12
11
  return {
13
12
  downloadsPath: downloadsPath,
14
13
  parameters: {
@@ -51,6 +50,9 @@ export const parameterReducer = (state: VixonicData, action: ConfigureAction) =>
51
50
  rowGap: parameters.rowGap,
52
51
  widthTime: parameters.widthTime,
53
52
  widthStatus: parameters.widthStatus,
53
+ timeStart: parameters.timeStart,
54
+ timeEnd: parameters.timeEnd,
55
+
54
56
  }
55
57
  }
56
58
  default:
@@ -17,6 +17,7 @@ export const getFixture = async () => {
17
17
  };
18
18
  try {
19
19
  const response = await axios.request(options)
20
+ console.log("🚀 ~ file: getFixture.ts:20 ~ getFixture ~ response", response.data.response)
20
21
  return response.data.response
21
22
  } catch (error) {
22
23
  console.error(error);
@@ -70,6 +70,8 @@ declare type VixonicParameters = Partial<{
70
70
  rowGap: string,
71
71
  widthTime: string,
72
72
  widthStatus: string
73
+ timeStart: string,
74
+ timeEnd: string,
73
75
  }>
74
76
 
75
77
 
@@ -30,7 +30,7 @@
30
30
  "fontColor": "#585858"
31
31
  },
32
32
  "photosMode": "zip",
33
- "updateTime": 600000,
33
+ "updateTime": 300000,
34
34
  "dateEnabled": true,
35
35
  "excludePast": false,
36
36
  "itemMargins": "5px",
@@ -1,21 +0,0 @@
1
- import axios from "axios";
2
- const API_KEY = 'AIzaSyDQcTlxfd5IyjbeSJooRtNt6OF04DLykqc'
3
- import { getMonth } from "./utils";
4
-
5
- export default function getEmployees(apiDomain: string) {
6
- let idGoogle = apiDomain.split("/")[5]
7
- console.log(idGoogle)
8
- let URL = `https://sheets.googleapis.com/v4/spreadsheets/${idGoogle}/values`
9
- const monthTab = getMonth()
10
-
11
- try {
12
- const response = axios({
13
- url: `${URL}/${monthTab}?key=${API_KEY}`
14
- });
15
- return response;
16
- } catch (error) {
17
- console.error(error);
18
- return error;
19
- }
20
- }
21
-
@@ -1,38 +0,0 @@
1
- import moment from "moment"
2
-
3
-
4
- const getAnniversaryFromMonth = (apiData: any, month: any) => {
5
- let monthArray = []
6
- for (let i = 0; i < apiData.length; i++) {
7
- let monthA = Number(moment(apiData[i].fechaInic, 'YYYY-MM-DD').format('M')) - 1
8
- if (monthA === month) {
9
- let dayA = Number(moment(apiData[i].fechaInic, 'YYYY-MM-DD').format('D'))
10
- apiData[i].day = dayA
11
- apiData[i].month = month
12
- apiData[i].name = `${apiData[i].nombre} ${apiData[i].apellidoPate}`
13
- apiData[i].position = apiData[i].nombreCargo
14
- apiData[i].image = apiData[i].foto
15
- monthArray.push(apiData[i])
16
- }
17
- }
18
- monthArray.sort((a, b) => {
19
- if (a.day < b.day) return -1
20
- else if (a.day === b.day) return 0
21
- else return 1
22
- })
23
-
24
-
25
- return monthArray
26
- }
27
-
28
- export const parseFromApi = (apiData: any) => {
29
- let monthsArray = []
30
- for (let month = 0; month < 12; month++) {
31
- let monthArray = getAnniversaryFromMonth(apiData, month)
32
- if (monthArray.length > 0) monthsArray.push(...monthArray)
33
- }
34
-
35
-
36
- return monthsArray
37
- }
38
-
@@ -1,71 +0,0 @@
1
- import localforage from 'localforage'
2
- import axios from 'axios'
3
-
4
- const urlCF = 'https://us-central1-vixoniccloudcom.cloudfunctions.net/rexTokenCentralizer'
5
- const tokenCF = 'd2dca806-4f70-41a3-ab70-0fe9bf051d2e'
6
- let updateTimer: any
7
-
8
- function setUpdateTime(milliseconds: any, requestData: any) {
9
- clearTimeout(updateTimer)
10
- if (milliseconds === null) return
11
- updateTimer = setTimeout(requestData, milliseconds)
12
- }
13
-
14
- function getToken(apiDomain: any) {
15
- try {
16
- const config = { 'Authorization': tokenCF }
17
- const response = axios({
18
- method: 'post',
19
- url: urlCF,
20
- headers: config,
21
- data: {
22
- orgDomain: apiDomain // This is the body part
23
- }
24
- })
25
-
26
- console.log(response)
27
- return response
28
- } catch (error) {
29
- console.error(error);
30
- return error
31
- }
32
- }
33
-
34
- function setTokenLocal(token: any, apiDomain: any) {
35
- localforage.config({ name: `request_${apiDomain}` })
36
- localforage.setItem('rexmas', {
37
- token: token,
38
- apiDomain: apiDomain,
39
- date: Date.now()
40
- }, (err) => { if (err) console.log(err) })
41
- }
42
-
43
-
44
-
45
-
46
- export default function setToken(apiDomain: any, requestData: any) {
47
- let pt: any = getToken(apiDomain)
48
- pt.then(function (response: any) {
49
- console.log('rr...', response)
50
- let token = response.data.token
51
- if (token === '') {
52
- console.log(response.data.msg)
53
- // renderLog(response.data.msg)
54
- setUpdateTime(null, requestData)
55
- } else {
56
- console.log('Access granted to Rex+ API')
57
- setTokenLocal(token, apiDomain)
58
- setUpdateTime(2000, requestData)
59
- }
60
- return
61
- })
62
- .catch(function (error: any) {
63
- console.log(error);
64
- console.log(`Error getting token ${error.response.data && error.response.data.detalle}`)
65
- // setUpdateTime(null)
66
- return
67
- })
68
- }
69
-
70
-
71
-
@@ -1,52 +0,0 @@
1
- import moment from "moment";
2
-
3
-
4
-
5
- export const getMonth = () => {
6
- const date = moment()
7
- let numberMonth: number = Number(date.format('M'))
8
- let month
9
- switch (numberMonth) {
10
- case 1:
11
- month = 'Enero'
12
- break
13
- case 2:
14
- month = 'Febrero'
15
- break
16
- case 3:
17
- month = 'Marzo'
18
- break
19
- case 4:
20
- month = 'Abril'
21
- break
22
- case 5:
23
- month = 'Mayo'
24
- break
25
- case 6:
26
- month = 'Junio'
27
- break
28
- case 7:
29
- month = 'Julio'
30
- break
31
- case 8:
32
- month = 'Agosto'
33
- break
34
- case 9:
35
- month = 'Septiembre'
36
- break
37
- case 10:
38
- month = 'Octubre'
39
- break
40
- case 11:
41
- month = 'Noviembre'
42
- break
43
- case 12:
44
- month = 'Diciembre'
45
- break
46
- default:
47
- month = 'ENERO'
48
- break
49
- }
50
-
51
- return month
52
- }
@@ -1,47 +0,0 @@
1
- import { useEffect, useRef, useState } from "react"
2
-
3
- type State = {
4
- data: string | null
5
- loading: boolean,
6
- error: boolean | null
7
- }
8
-
9
-
10
- export const useFetch = (url: string): State => {
11
-
12
- const isMounted = useRef(true);
13
- const [state, setState] = useState<State>({ data: null, loading: true, error: null })
14
-
15
- useEffect(() => {
16
- return () => {
17
- isMounted.current = false;
18
- }
19
- }, [])
20
-
21
-
22
- useEffect(() => {
23
-
24
- setState({ data: null, loading: true, error: null });
25
-
26
- fetch(url, {
27
- headers: {
28
- 'Authorization': `Token`
29
- }
30
- })
31
- .then(resp => resp.json())
32
- .then(data => {
33
-
34
- if (isMounted.current) {
35
- setState({
36
- loading: false,
37
- error: null,
38
- data
39
- });
40
- }
41
-
42
- });
43
-
44
- }, [url])
45
-
46
- return state;
47
- }
@@ -1,129 +0,0 @@
1
- // import moment from "moment"
2
- // import _ from 'lodash'
3
-
4
- // /**
5
- // * @class Birthdays
6
- // */
7
- // class Income {
8
-
9
- // public _data: any
10
- // public day: any
11
-
12
- // constructor() {
13
- // /** @type {Birthday[][] | undefined} */
14
- // this._data = undefined
15
- // }
16
-
17
- // /**
18
- // * @type {Birthday[][]}
19
- // */
20
- // get data() {
21
- // return this._data
22
- // }
23
-
24
- // /**
25
- // * @typedef BirthdaysUpdateOptions
26
- // * @property {Birthday[][]} data
27
- // * @property {Birthday[][]} api
28
- // */
29
- // /**
30
- // * @param {BirthdaysUpdateOptions} options
31
- // * @param {*} callback
32
- // */
33
-
34
- // update(options : any) {
35
-
36
- // if (options.data) {
37
- // this._data = options.data
38
- // } else if (options.api) {
39
- // this._data = this.parseFromApi(options.api)
40
- // }
41
- // }
42
-
43
- // getAnniversaryFromMonth(apiData:any, month:any) {
44
- // let monthArray = []
45
- // for (let i = 0; i < apiData.length; i++) {
46
- // let monthA = Number(moment(apiData[i].fechaInic, 'YYYY-MM-DD').format('M')) - 1
47
- // if (monthA === month) {
48
- // let dayA = Number(moment(apiData[i].fechaInic, 'YYYY-MM-DD').format('D'))
49
- // let income = new Ingress({
50
- // day: dayA,
51
- // month: month,
52
- // name: `${apiData[i].nombre} ${apiData[i].apellidoPate}`,
53
- // description: undefined,
54
- // image: apiData[i].foto
55
- // })
56
- // monthArray.push(income)
57
- // }
58
- // }
59
-
60
- // monthArray.sort((a, b) => {
61
- // if (a.day < b.day) return -1
62
- // else if (a.day === b.day) return 0
63
- // else return 1
64
- // })
65
- // return monthArray
66
- // }
67
-
68
- // parseFromApi(apiData:any) {
69
- // let monthsArray = []
70
- // for (let month = 0; month < 12; month++) {
71
- // let monthArray = this.getAnniversaryFromMonth(apiData, month)
72
- // monthsArray.push(monthArray)
73
- // }
74
-
75
- // return monthsArray
76
- // }
77
-
78
- // /**
79
- // * @param {string} mode
80
- // * @param {boolean} excludePast
81
- // */
82
- // getList(mode :any, excludePast:any) {
83
-
84
- // if (!mode) mode = 'monthly'
85
- // let dd = moment()
86
- // let month = Number(dd.format('M'))
87
- // let today = Number(dd.format('D'))
88
-
89
- // /**
90
- // * Filter method
91
- // * @param {Anniversary[]} data
92
- // * @inner
93
- // */
94
- // let filter = (data:any) => {
95
-
96
-
97
- // const filterMonthDay = excludePast ? data.filter((da:any )=> da.month >= (month - 1)).filter((da:any) => da.day >= today) : data
98
-
99
- // return filterMonthDay
100
- // }
101
-
102
-
103
- // return filter(_.flatten(this._data))
104
-
105
-
106
- // }
107
- // }
108
-
109
-
110
- // class Ingress {
111
-
112
- // public day
113
- // public month
114
- // public name
115
- // public description
116
- // public image
117
-
118
- // constructor(options:any) {
119
-
120
- // this.day = options.day
121
- // this.month = options.month
122
- // this.name = options.name
123
- // this.description = options.description
124
- // this.image = options.image
125
- // }
126
-
127
- // }
128
-
129
- // module.exports = exports = Animation
Binary file
package/src/sprite.svg DELETED
@@ -1 +0,0 @@
1
- <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="130" height="491" viewBox="0 0 130 491"><svg width="15" height="20" id="icon-corner-flag" y="0"><path fill-rule="evenodd" fill="#E4E7ED" d="M13 0h2v19.999h-2V0z"></path><path fill-rule="evenodd" fill="#FFDC19" d="M15 0v9.999L0 4.833 15 0z"></path></svg><svg width="9" height="12" id="icon-in" y="20"><path fill-rule="evenodd" fill="#14D6C6" d="M3 11.656L.878 9.535l3.536-3.536L.878 2.464 3 .342l5.657 5.657L3 11.656z"></path></svg><svg width="16" height="16" id="icon-injury" y="32"><path fill-rule="evenodd" fill="#E54444" d="M8-.001a8 8 0 1 1 0 16A8 8 0 0 1 8 0z"></path><path fill-rule="evenodd" fill="#FF5353" d="M7.997.995a7.002 7.002 0 1 1 0 14.004 7.002 7.002 0 0 1 0-14.004z"></path><path fill-rule="evenodd" fill="#FFF" d="M12 9H9v3H7V9H4V7h3V4h2v3h3v2z"></path></svg><svg width="16" height="22" id="icon-keepers-glove" y="48"><path fill-rule="evenodd" fill="#BAC1C8" d="M0 4.831s.284 3.606.568 5.023c.284 1.417.379 4.702.947 6.184.568 1.481.516 2.899.485 3.962-.032 1.062-.201 1.994 1.03 1.994h5.869S10 21.902 10 21v-2s-.253-.131 0-1.001c.252-.869.227-1.945 1.172-3.121C12.509 13.213 15.387 10.783 15 9c-.373-1.715-2.306.678-3 1-.694.322-1.491.53-1.396-.726.094-1.255.41-6.795.378-7.342C10.951 1.385 10.073.389 9 2v3H8S7.795 1.175 7.763.966C7.732.757 7.495 0 6.627 0 5.759 0 6 .516 6 1v5H5s.002-4.003-.077-4.455c-.079-.45-.678-.901-1.325-.579C2.951 1.288 2.984 1.969 3 3c.016 1.03 0 7 0 7S2.193 3.333.947 3.671c0 0-.852.274-.947 1.16z"></path><path fill-rule="evenodd" fill="#9099A2" d="M1 16h10c.552 0 1 .537 1 1.2v3.6c0 .663-.448 1.2-1 1.2H1c-.552 0-1-.537-1-1.2v-3.6c0-.663.448-1.2 1-1.2z"></path><path fill-rule="evenodd" fill="#C2FF1F" d="M2 17.999h5c.552 0 1 .299 1 .668v.666c0 .368-.448.667-1 .667H2c-.552 0-1-.299-1-.667v-.666c0-.369.448-.668 1-.668z"></path></svg><svg width="22" height="18" id="icon-offside-flag" y="70"><path fill-rule="evenodd" fill="#FFE659" d="M4.902 7.437l3.464-2 4 6.929-3.464 2-4-6.929z"></path><path fill-rule="evenodd" fill="#FFDC19" d="M1.438 9.438l3.464-2.001 4 6.929-3.464 2-4-6.928z"></path><path fill-rule="evenodd" fill="#FFDC19" d="M.438 7.705L10.83 1.706l5 8.66-10.392 6-5-8.661z"></path><path fill-rule="evenodd" fill="#FF9307" d="M2.938 12.036l5.196-3.001 2.5 4.331-5.196 3-2.5-4.33zM5.634 4.705l5.196-2.999 2.5 4.33-5.196 2.999-2.5-4.33z"></path><path fill-rule="evenodd" fill="#E4E7ED" d="M10.83 1.705l1.732-1 9 15.589-1.732 1-9-15.589z"></path></svg><svg width="8" height="11" id="icon-out" y="88"><path fill-rule="evenodd" fill="#EE5353" d="M7.996 8.937L5.815 11-.001 5.499l5.816-5.5 2.181 2.062-3.635 3.438 3.635 3.438z"></path></svg><svg width="12" height="16" id="icon-red-card" y="99"><path fill-rule="evenodd" fill="#EE5353" d="M2.4-.002h7.2c1.325 0 2.4.896 2.4 2.001v11.999c0 1.105-1.075 2.001-2.4 2.001H2.4c-1.326 0-2.4-.896-2.4-2.001V1.999C0 .894 1.074-.002 2.4-.002z"></path></svg><svg width="32" height="32" id="icon-shirt" y="115"><path fill-rule="evenodd" fill="#40ACFF" d="M16 31.992c-1.092-.025-4.912-.197-6.757-.369-1.845-.172-1.949-.369-1.949-.369v-.615c.104-2.066.65-4.305.65-4.305 1.039-4.355.675-8.34.13-10.21-.546-1.869-.52-3.96-.52-4.181 0-.222-.13-.739-.13-.739-.26.246-1.538 2.563-1.689 2.829-.152.267-.78-.245-.78-.245-1.169-1.108-3.703-1.989-4.418-2.215-.714-.225-.519-.492-.519-.492l1.949-3.813c2.144-4.182 3.54-4.705 5.327-5.043A11.91 11.91 0 0 0 10.701 1h.814c-.046.34.045.707.485 1 1.125.75 4 2.125 4 3v26.992z"></path><path fill-rule="evenodd" fill="#586B79" d="M31.439 11.591c-.714.225-3.244 1.106-4.411 2.212 0 0-.627.512-.779.246-.151-.267-1.427-2.581-1.686-2.827 0 0-.13.516-.13.737 0 .221.026 2.311-.519 4.179-.545 1.868-.908 5.85.13 10.201 0 0 .545 2.236.649 4.301v.615s-.104.196-1.947.368c-1.842.172-5.656.344-6.746.369V5c0-.875 2.556-2.25 3.556-3 .391-.293.469-.66.429-1h1.257c.841.478 2.127.999 3.451 1.25 1.783.338 3.178.86 5.319 5.039l1.946 3.81s.194.266-.519.492z"></path><path fill-rule="evenodd" fill="#586B79" d="M20.528 2.505c-.859.723-1.274.737-1.719 1.02-.339.216-1.964.85-2.824 1.473-.853-.623-2.468-1.257-2.804-1.473-.442-.283-.854-.297-1.707-1.02-.854-.722-.244-1.699-.244-1.699l.239-.519C11.78.92 12.265 1.625 13 2c1.531.781 3.031 1.5 3 2-.034-.5 1.593-1.219 3.254-2 .918-.432 1.119-1.295 1.123-1.988h.028l.369.794s.613.977-.246 1.699z"></path><path fill-rule="evenodd" fill="#586B79" d="M20.528 2.505c-.859.723-1.274.737-1.719 1.02-.339.216-1.964.85-2.824 1.473-.853-.623-2.468-1.257-2.804-1.473-.442-.283-.854-.297-1.707-1.02-.854-.722-.244-1.699-.244-1.699l.239-.519C11.78.92 12.265 1.625 13 2c1.531.781 3.031 1.5 3 2-.034-.5 1.593-1.219 3.254-2 .918-.432 1.119-1.295 1.123-1.988h.028l.369.794s.613.977-.246 1.699z"></path><path fill-rule="evenodd" fill="#4B5B67" d="M.572 9.997c1.157.046 3.844.448 5.758 2.98-.288.505-.534.949-.595 1.056-.152.267-.78-.245-.78-.245-1.169-1.108-3.703-1.989-4.418-2.215-.714-.225-.519-.492-.519-.492l.554-1.084zM26.265 14.033c-.061-.107-.307-.551-.595-1.056 1.914-2.532 4.601-2.934 5.758-2.98l.554 1.084s.195.267-.519.492c-.715.226-3.249 1.107-4.418 2.215 0 0-.628.512-.78.245z"></path><path fill-rule="evenodd" opacity=".149" d="M8.074 16.124a11.896 11.896 0 0 1-.325-1.508c.836 1.269 2.091 5.164 2.236 17.069a46.13 46.13 0 0 1-.742-.062c-1.845-.172-1.949-.369-1.949-.369v-.615c.104-2.066.65-4.305.65-4.305 1.039-4.355.675-8.34.13-10.21zM24.207 14.651a11.847 11.847 0 0 1-.324 1.505c-.545 1.867-.908 5.845.129 10.192 0 0 .545 2.234.649 4.297v.614s-.104.196-1.946.368c-.22.021-.472.041-.74.062.145-11.883 1.397-15.772 2.232-17.038z"></path><path fill-rule="evenodd" opacity=".149" d="M7 10s3.906 5 8 5c0 0-2.747.846-6.964.974-.502-1.83-.482-3.816-.482-4.031 0-.222-.13-.739-.13-.739-.074.07-.234.316-.424.627V10zM24.93 10v1.831c-.189-.311-.349-.557-.423-.627 0 0-.13.517-.13.739 0 .215.021 2.201-.48 4.031-4.207-.128-6.946-.974-6.946-.974 4.083 0 7.979-5 7.979-5z"></path></svg><svg width="32" height="32" id="icon-shirt-alt" y="147"><path fill-rule="evenodd" fill="#91e44c" d="M16 31.992c-1.092-.025-4.912-.197-6.757-.369-1.845-.172-1.949-.369-1.949-.369v-.615c.104-2.066.65-4.305.65-4.305 1.039-4.355.675-8.34.13-10.21-.546-1.869-.52-3.96-.52-4.181 0-.222-.13-.739-.13-.739-.26.246-1.538 2.563-1.689 2.829-.152.267-.78-.245-.78-.245-1.169-1.108-3.703-1.989-4.418-2.215-.714-.225-.519-.492-.519-.492l1.949-3.813c2.144-4.182 3.54-4.705 5.327-5.043A11.91 11.91 0 0 0 10.701 1h.814c-.046.34.045.707.485 1 1.125.75 4 2.125 4 3v26.992z"></path><path fill-rule="evenodd" fill="#2fbc4b" d="M31.439 11.591c-.714.225-3.244 1.106-4.411 2.212 0 0-.627.512-.779.246-.151-.267-1.427-2.581-1.686-2.827 0 0-.13.516-.13.737 0 .221.026 2.311-.519 4.179-.545 1.868-.908 5.85.13 10.201 0 0 .545 2.236.649 4.301v.615s-.104.196-1.947.368c-1.842.172-5.656.344-6.746.369V5c0-.875 2.556-2.25 3.556-3 .391-.293.469-.66.429-1h1.257c.841.478 2.127.999 3.451 1.25 1.783.338 3.178.86 5.319 5.039l1.946 3.81s.194.266-.519.492z"></path><path fill-rule="evenodd" fill="#2fbc4b" d="M20.528 2.505c-.859.723-1.274.737-1.719 1.02-.339.216-1.964.85-2.824 1.473-.853-.623-2.468-1.257-2.804-1.473-.442-.283-.854-.297-1.707-1.02-.854-.722-.244-1.699-.244-1.699l.239-.519C11.78.92 12.265 1.625 13 2c1.531.781 3.031 1.5 3 2-.034-.5 1.593-1.219 3.254-2 .918-.432 1.119-1.295 1.123-1.988h.028l.369.794s.613.977-.246 1.699z"></path><path fill-rule="evenodd" fill="#2fbc4b" d="M20.528 2.505c-.859.723-1.274.737-1.719 1.02-.339.216-1.964.85-2.824 1.473-.853-.623-2.468-1.257-2.804-1.473-.442-.283-.854-.297-1.707-1.02-.854-.722-.244-1.699-.244-1.699l.239-.519C11.78.92 12.265 1.625 13 2c1.531.781 3.031 1.5 3 2-.034-.5 1.593-1.219 3.254-2 .918-.432 1.119-1.295 1.123-1.988h.028l.369.794s.613.977-.246 1.699z"></path><path fill-rule="evenodd" fill="#1ea23a" d="M.572 9.997c1.157.046 3.844.448 5.758 2.98-.288.505-.534.949-.595 1.056-.152.267-.78-.245-.78-.245-1.169-1.108-3.703-1.989-4.418-2.215-.714-.225-.519-.492-.519-.492l.554-1.084zM26.265 14.033c-.061-.107-.307-.551-.595-1.056 1.914-2.532 4.601-2.934 5.758-2.98l.554 1.084s.195.267-.519.492c-.715.226-3.249 1.107-4.418 2.215 0 0-.628.512-.78.245z"></path><path fill-rule="evenodd" opacity=".149" d="M8.074 16.124a11.896 11.896 0 0 1-.325-1.508c.836 1.269 2.091 5.164 2.236 17.069a46.13 46.13 0 0 1-.742-.062c-1.845-.172-1.949-.369-1.949-.369v-.615c.104-2.066.65-4.305.65-4.305 1.039-4.355.675-8.34.13-10.21zM24.207 14.651a11.847 11.847 0 0 1-.324 1.505c-.545 1.867-.908 5.845.129 10.192 0 0 .545 2.234.649 4.297v.614s-.104.196-1.946.368c-.22.021-.472.041-.74.062.145-11.883 1.397-15.772 2.232-17.038z"></path><path fill-rule="evenodd" opacity=".149" d="M7 10s3.906 5 8 5c0 0-2.747.846-6.964.974-.502-1.83-.482-3.816-.482-4.031 0-.222-.13-.739-.13-.739-.074.07-.234.316-.424.627V10zM24.93 10v1.831c-.189-.311-.349-.557-.423-.627 0 0-.13.517-.13.739 0 .215.021 2.201-.48 4.031-4.207-.128-6.946-.974-6.946-.974 4.083 0 7.979-5 7.979-5z"></path></svg><svg width="16" height="16" id="icon-soccer-ball" y="179"><path fill-rule="evenodd" fill="#40484B" d="M8-.001a8 8 0 1 1 0 16A8 8 0 0 1 8 0z"></path><path fill-rule="evenodd" fill="#F8FAFC" d="M7.982.526a7.455 7.455 0 1 1-.001 14.909A7.455 7.455 0 0 1 7.982.526z"></path><path fill-rule="evenodd" opacity=".6" fill="#40484B" d="M13.687 11.643l-.174-.052 1.054-3.455.174.053-1.054 3.454zM10.28 7.058l2.964-.982.057.173-2.964.982-.057-.173zm-.04-5.165l.102-.151 2.854 1.927-.102.151-2.854-1.927zm.888 10.399l-1.891-2.4.143-.113 1.891 2.4-.143.113zM7.909 2.526h.182v4.109h-.182V2.526zM4.144 13.128L6.453 9.91l.148.106-2.309 3.218-.148-.106zm-1.372-6.77l.056-.173 3.109 1-.056.173-3.109-1zm-.097-2.652L5.602 1.67l.104.149-2.927 2.036-.104-.149zm-1.49 4.426l.175-.048 1.019 3.801-.176.047-1.018-3.8zm9.124 6.267H6.127v-.182h4.182v.182z"></path><path fill-rule="evenodd" fill="#40484B" d="M7.982 5.281l2.533 1.84-.968 2.978H6.416l-.968-2.978 2.534-1.84zM7.991 2.817l2.536-.882-.309-1.427H5.763l-.308 1.427 2.536.882zM12.904 6.306l1.642 2.124 1.255-.746-1.415-4.224-1.451.161-.031 2.685zM2.982 6.296L1.343 8.417.091 7.672l1.412-4.218 1.448.16.031 2.682zM4.807 12.191l1.605 2.147-1.053 1.007-3.686-2.49.542-1.353 2.592.689zM11.121 12.144L9.57 14.329l1.081.977 3.624-2.583-.579-1.335-2.575.756z"></path></svg><svg width="18" height="18" id="icon-soccer-ball-missed-penalty" y="195"><path fill-rule="evenodd" fill="#40484B" d="M8-.001a8 8 0 1 1 0 16A8 8 0 0 1 8 0z"></path><path fill-rule="evenodd" fill="#F8FAFC" d="M7.982.526a7.455 7.455 0 1 1-.001 14.909A7.455 7.455 0 0 1 7.982.526z"></path><path fill-rule="evenodd" opacity=".6" fill="#40484B" d="M13.687 11.644l-.174-.053 1.054-3.455.174.053-1.054 3.455zM10.28 7.058l2.964-.982.057.173-2.964.982-.057-.173zm-.04-5.165l.102-.151 2.854 1.927-.102.151-2.854-1.927zm.888 10.399L9.237 9.891l.143-.112 1.891 2.4-.143.113zM7.909 2.526h.182v4.109h-.182V2.526zM4.144 13.128L6.453 9.91l.148.105-2.309 3.219-.148-.106zm-1.372-6.77l.056-.173 3.109 1-.056.173-3.109-1zm-.097-2.652l2.927-2.037.104.15-2.927 2.036-.104-.149zm-1.49 4.426l.175-.048 1.019 3.8-.176.048-1.018-3.8zm9.124 6.267H6.127v-.182h4.182v.182z"></path><path fill-rule="evenodd" fill="#40484B" d="M7.982 5.28l2.533 1.841-.968 2.978H6.416l-.968-2.978L7.982 5.28zM7.991 2.817l2.536-.882-.309-1.427H5.763l-.308 1.427 2.536.882zM12.904 6.305l1.642 2.125 1.255-.746-1.415-4.224-1.451.161-.031 2.684zM2.982 6.296L1.343 8.417.091 7.672l1.412-4.218 1.448.16.031 2.682zM4.807 12.191l1.605 2.147-1.053 1.007-3.686-2.49.542-1.353 2.592.689zM11.121 12.143L9.57 14.329l1.081.976 3.624-2.582-.579-1.335-2.575.755z"></path><path fill-rule="evenodd" fill="#EE5353" d="M12.5 7a5.5 5.5 0 1 1 0 10.999A5.5 5.5 0 1 1 12.5 7z"></path><text font-family="Myriad Pro" font-size="7" x="10" y="16"><tspan font-family="Montserrat" font-weight="bold" fill="#FEFEFF">P</tspan></text></svg><svg width="16" height="16" id="icon-soccer-ball-own-goal" y="213"><path fill-rule="evenodd" fill="#C12323" d="M8-.001a8 8 0 1 1 0 15.999 8 8 0 0 1-8-8A7.999 7.999 0 0 1 8-.001z"></path><path fill-rule="evenodd" fill="#F8FAFC" d="M7.982.525a7.455 7.455 0 0 1 7.454 7.455 7.455 7.455 0 1 1-14.909 0A7.455 7.455 0 0 1 7.982.525z"></path><path fill-rule="evenodd" opacity=".6" fill="#40484B" d="M13.687 11.643l-.174-.053 1.054-3.454.174.053-1.054 3.454zM10.28 7.058l2.964-.982.057.172-2.964.982-.057-.172zm-.04-5.166l.102-.151 2.854 1.928-.102.15-2.854-1.927zm.888 10.399l-1.891-2.4.143-.113 1.891 2.401-.143.112zM7.909 2.526h.182v4.109h-.182V2.526zM4.144 13.128l2.309-3.219.148.106-2.309 3.218-.148-.105zm-1.372-6.77l.056-.173 3.109 1-.056.173-3.109-1zm-.097-2.652l2.927-2.037.104.15-2.927 2.036-.104-.149zm-1.49 4.425l.175-.047 1.019 3.8-.176.047-1.018-3.8zm9.124 6.268H6.127v-.182h4.182v.182z"></path><path fill-rule="evenodd" fill="#DD4D4D" d="M7.982 5.28l2.533 1.841-.968 2.978H6.416l-.968-2.978L7.982 5.28zM7.991 2.817l2.536-.883-.309-1.426H5.763l-.308 1.426 2.536.883zM12.904 6.305l1.642 2.124 1.255-.746-1.415-4.223-1.451.16-.031 2.685zM2.982 6.295L1.343 8.417.091 7.671l1.412-4.218 1.448.161.031 2.681zM4.807 12.191l1.605 2.146-1.053 1.007-3.686-2.49.542-1.352 2.592.689zM11.121 12.143L9.57 14.328l1.081.977 3.624-2.583-.579-1.335-2.575.756z"></path></svg><svg width="18" height="18" id="icon-soccer-ball-penalty" y="229"><path fill-rule="evenodd" fill="#40484B" d="M8-.001a8 8 0 1 1 0 16A8 8 0 0 1 8 0z"></path><path fill-rule="evenodd" fill="#F8FAFC" d="M7.982.526a7.455 7.455 0 1 1-.001 14.909A7.455 7.455 0 0 1 7.982.526z"></path><path fill-rule="evenodd" opacity=".6" fill="#40484B" d="M13.687 11.643l-.174-.052 1.054-3.455.174.053-1.054 3.454zM10.28 7.058l2.964-.982.057.173-2.964.982-.057-.173zm-.04-5.165l.102-.151 2.854 1.927-.102.151-2.854-1.927zm.888 10.398L9.237 9.892l.143-.113 1.891 2.4-.143.112zM7.909 2.526h.182v4.109h-.182V2.526zM4.144 13.128L6.453 9.91l.148.106-2.309 3.217-.148-.105zm-1.372-6.77l.056-.173 3.109 1-.056.173-3.109-1zm-.097-2.652l2.927-2.037.104.15-2.927 2.036-.104-.149zm-1.49 4.425l.175-.047 1.019 3.8-.176.048-1.018-3.801zm9.124 6.268H6.127v-.182h4.182v.182z"></path><path fill-rule="evenodd" fill="#40484B" d="M7.982 5.28l2.533 1.841-.968 2.978H6.416l-.968-2.978L7.982 5.28zM7.991 2.817l2.536-.882-.309-1.427H5.763l-.308 1.427 2.536.882zM12.904 6.306l1.642 2.124 1.255-.747-1.415-4.223-1.451.161-.031 2.685zM2.982 6.296L1.343 8.417.091 7.672l1.412-4.218 1.448.16.031 2.682zM4.807 12.191l1.605 2.147-1.053 1.007-3.686-2.491.542-1.352 2.592.689zM11.121 12.143L9.57 14.329l1.081.977 3.624-2.583-.579-1.335-2.575.755z"></path><path fill-rule="evenodd" fill="#31404B" d="M12.5 7a5.5 5.5 0 1 1 0 11 5.5 5.5 0 0 1 0-11z"></path><text font-family="Myriad Pro" font-size="7" x="10" y="16"><tspan font-family="Montserrat" font-weight="bold" fill="#FEFEFF">P</tspan></text></svg><svg width="130" height="122" id="icon-soccer-gate" y="247"><path fill-rule="evenodd" fill="#FAFDFF" d="M129.104 70.192l-1.414 1.414-9.193-9.192-8.485 8.485 9.193 9.193-1.415 1.414-9.192-9.192-8.485 8.485 9.192 9.192-1.414 1.414-9.192-9.192-8.486 8.485 9.193 9.193-1.415 1.414-9.192-9.192-8.485 8.485 9.192 9.192-1.414 1.414-9.193-9.192-8.485 8.485 9.193 9.193-1.415 1.414L69 111.912l-9.192 9.192-1.415-1.414 9.193-9.193-8.486-8.485-9.192 9.192-1.414-1.414 9.192-9.192-8.485-8.485-9.192 9.192-1.415-1.414 9.193-9.193-8.486-8.485-9.192 9.192-1.414-1.414 9.192-9.192-8.485-8.485-9.192 9.192-1.415-1.414 9.193-9.193-8.486-8.485-9.192 9.192-1.414-1.414L18.088 61l-9.192-9.193 1.414-1.414 9.192 9.193 8.486-8.486-9.193-9.192 1.415-1.414 9.192 9.192 8.485-8.485-9.192-9.193 1.414-1.414 9.192 9.193 8.486-8.486-9.193-9.192 1.415-1.414 9.192 9.192 8.485-8.485-9.192-9.192 1.414-1.415 9.193 9.193 8.485-8.486-9.193-9.192L59.808.896 69 10.088 78.192.896l1.415 1.414-9.193 9.192 8.485 8.486 9.193-9.193 1.414 1.415-9.192 9.192 8.485 8.485 9.192-9.192 1.415 1.414-9.193 9.192 8.485 8.486 9.193-9.193 1.414 1.414-9.192 9.193 8.485 8.485 9.192-9.192 1.415 1.414-9.193 9.192 8.485 8.486 9.193-9.193 1.414 1.414L119.912 61l9.192 9.192zm-21.92.707l-8.486-8.485-8.485 8.485 8.485 8.486 8.486-8.486zm-36.77 0l8.485 8.486 8.486-8.486-8.485-8.485-8.486 8.485zM77.485 61L69 52.514 60.515 61 69 69.485 77.485 61zM69 72.314l-8.485 8.485L69 89.284l8.485-8.485L69 72.314zm-1.414-1.415L59.1 62.414l-8.485 8.485 8.485 8.486 8.486-8.486zM57.686 61l-8.485-8.485L40.716 61l8.485 8.485L57.686 61zm1.415-1.414l8.485-8.486-8.485-8.485-8.486 8.485 8.486 8.486zm9.899-9.9l8.485-8.485L69 32.716l-8.485 8.485L69 49.686zm1.414 1.414l8.485 8.486 8.486-8.486-8.486-8.485-8.485 8.485zm9.9 9.9l8.485 8.485L97.284 61l-8.485-8.485L80.314 61zm8.485 28.284l8.485-8.485-8.485-8.486-8.485 8.486 8.485 8.485zm-9.9 9.9l8.486-8.486-8.486-8.485-8.485 8.485 8.485 8.486zM69 109.083l8.485-8.485L69 92.112l-8.485 8.486L69 109.083zm-9.9-9.899l8.486-8.486-8.485-8.485-8.486 8.485 8.485 8.486zm-9.899-9.9l8.485-8.485-8.485-8.486-8.485 8.486 8.485 8.485zm-9.9-9.899l8.486-8.486-8.486-8.485-8.485 8.485 8.485 8.486zM20.917 61l8.485 8.485L37.887 61l-8.485-8.485L20.917 61zm18.384-18.385L30.816 51.1l8.485 8.486 8.486-8.486-8.486-8.485zm1.415-1.414l8.485 8.485 8.485-8.485-8.485-8.486-8.485 8.486zM59.1 22.816l-8.485 8.485 8.485 8.486 8.486-8.486-8.486-8.485zm9.9-9.899l-8.485 8.485L69 29.887l8.485-8.485L69 12.917zm9.899 9.899l-8.485 8.485 8.486 8.486 8.485-8.486-8.486-8.485zm9.9 9.899l-8.485 8.486 8.485 8.485 8.485-8.485-8.485-8.486zm9.899 9.9L90.213 51.1l8.485 8.486 8.486-8.486-8.486-8.485zm9.9 9.9L100.113 61l8.485 8.485L117.083 61l-8.485-8.485z"></path><path fill-rule="evenodd" fill="#D3D9E0" d="M83.952 21.526H28.667c-4.524 0-8.191 3.676-8.191 8.211V79H8.19C3.667 79 0 75.324 0 70.789V9.21C0 4.676 3.667 1 8.19 1h69.619C82.333 1 86 4.676 86 9.21v12.316h-2.048z"></path><path fill-rule="evenodd" fill="#F1F5F8" d="M84 23H30a8 8 0 0 0-8 8v48H10a8 8 0 0 1-8-8V11a8 8 0 0 1 8-8h68a8 8 0 0 1 8 8v12h-2z"></path><path fill-rule="evenodd" fill="#DCDFE2" d="M96 35H42a8 8 0 0 0-8 8v48H22a8 8 0 0 1-8-8V23a8 8 0 0 1 8-8h68a8 8 0 0 1 8 8v12h-2z"></path></svg><svg width="20" height="17" id="icon-soccer-shoe" y="369"><path fill-rule="evenodd" fill="#202020" d="M18.59 8.645a1.021 1.021 0 0 1-1.398-.376l-.512-.891a1.031 1.031 0 0 1 .374-1.405 1.021 1.021 0 0 1 1.399.377l.512.89a1.03 1.03 0 0 1-.375 1.405zm-4.946 1.68l-.512-.891a1.03 1.03 0 0 1 .375-1.404 1.022 1.022 0 0 1 1.399.376l.512.891a1.03 1.03 0 0 1-.375 1.405 1.022 1.022 0 0 1-1.399-.377zm-3.547 2.057l-.512-.891a1.03 1.03 0 0 1 .375-1.405 1.023 1.023 0 0 1 1.399.377l.512.89a1.031 1.031 0 0 1-.375 1.405 1.022 1.022 0 0 1-1.399-.376zM6.55 14.439l-.512-.891a1.03 1.03 0 0 1 .375-1.405 1.022 1.022 0 0 1 1.399.377l.512.89a1.032 1.032 0 0 1-.375 1.405 1.022 1.022 0 0 1-1.399-.376zm-3.547 2.056l-.512-.89a1.031 1.031 0 0 1 .374-1.405 1.022 1.022 0 0 1 1.399.376l.512.891a1.03 1.03 0 0 1-.375 1.405 1.022 1.022 0 0 1-1.398-.377z"></path><path fill-rule="evenodd" fill="#6F6F6F" d="M15.577.747s.228-1.023 1.102-.639c.874.384 2.47 3.303 3.036 4.429.565 1.126.745 2.006-4.171 4.669S2.69 16.658 2.69 16.658s-1.833.36-2.439-.836c-.606-1.196-.082-2.343.99-3.387C2.314 11.391 4.86 8.508 6.894 3.53c0 0 .611-2.558 1.961-1.699 1.351.857 2.953 2.226 5.004 1.037 2.05-1.189 1.718-2.121 1.718-2.121z"></path><path fill-rule="evenodd" fill="#FFF" d="M1.686 8.107a.51.51 0 0 1 .627-.363l4.945 1.33a.515.515 0 0 1-.265.994L2.048 8.737a.514.514 0 0 1-.362-.63zM2.216 6.121a.51.51 0 0 1 .627-.364l4.945 1.331a.514.514 0 0 1-.265.993L2.578 6.75a.512.512 0 0 1-.362-.629zM2.746 4.134a.513.513 0 0 1 .627-.364l4.945 1.331a.514.514 0 0 1-.265.993l-4.945-1.33a.514.514 0 0 1-.362-.63zM14.7 4.963l.887-.514a.51.51 0 0 1 .699.188.515.515 0 0 1-.187.703l-.887.514a.51.51 0 0 1-.699-.188.515.515 0 0 1 .187-.703z"></path></svg><svg width="14.906" height="16.38" viewBox="0 0 14.906 16.38" id="icon-soccer-shots" y="386"><defs><style>.cls-1{fill:#40484b;fill-rule:evenodd}</style></defs><path id="Detail_" data-name="Detail" class="cls-1" d="M274.237 2233.69l6.928-4a1 1 0 1 1 1 1.73l-6.928 4a1 1 0 0 1-1-1.73zm3.866 4.69l8.66-5a1 1 0 0 1 1 1.74l-8.66 5a1 1 0 0 1-1.003-1.74zm2.134 5.7l6.928-4a1 1 0 0 1 1 1.73l-6.928 4a1 1 0 1 1-1-1.73z" transform="translate(-273.75 -2229.56)"></path></svg><svg width="17" height="19" id="icon-stopwatch" y="403"><path fill-rule="evenodd" fill="#BAC1C8" d="M8 2.999a8 8 0 1 1 0 16A8 8 0 0 1 8 3z"></path><path fill-rule="evenodd" fill="#F8FAFC" d="M7.997 3.995a7.002 7.002 0 1 1 0 14.004 7.002 7.002 0 0 1 0-14.004z"></path><path fill-rule="evenodd" fill="#9099A2" d="M7 .999h2v2H7v-2z"></path><path fill-rule="evenodd" fill="#BAC1C8" d="M5 0h6v2H5V0z"></path><path fill-rule="evenodd" fill="#A3ABB3" d="M12.967 2.016l3.239 2.347-1.173 1.619-3.239-2.346 1.173-1.62z"></path><path fill-rule="evenodd" fill="#EF3A3A" d="M11.621 7.878a.5.5 0 0 1 0 .707l-3.535 3.536a.5.5 0 0 1-.707-.707l3.535-3.536a.5.5 0 0 1 .707 0z"></path></svg><svg width="18" height="17" id="icon-substitution" y="422"><path fill-rule="evenodd" fill="#14D6C6" d="M12 11.656L9.879 9.535l3.535-3.536-3.535-3.535L12 .342l5.657 5.657L12 11.656z"></path><path fill-rule="evenodd" fill="#EE5353" d="M7.996 14.937L5.815 17l-5.816-5.501 5.816-5.5 2.181 2.062-3.635 3.438 3.635 3.438z"></path></svg><svg width="18" height="19" id="icon-trophy" y="439"><path fill-rule="evenodd" fill="#FFD307" d="M5.027 18.997a1.777 1.777 0 0 1-.01-.18c0-.995.864-1.801 1.929-1.801H11.1c1.065 0 1.928.806 1.928 1.801 0 .061-.003.121-.01.18H5.027z"></path><path fill-rule="evenodd" fill="#FFB505" d="M7.023 12.001h3.995v5.001H7.023v-5.001z"></path><path fill-rule="evenodd" fill="#FFD307" d="M1.289 3s.226 5.859 3.451 5.885L5.013 10C.006 10 .333 1.993.333 1.993H3.05L3.297 3H1.289zM12.991 10l.292-1.115C16.731 8.859 16.973 3 16.973 3h-2.148l.264-1.007h2.906S18.345 10 12.991 10z"></path><path fill-rule="evenodd" fill="#FFD307" d="M13.819 7.87c-1 2.939-2.636 4.964-4.817 5.137-2.181-.173-3.817-2.198-4.817-5.137-1-2.939-1.181-6.867-1.181-6.867H15s-.181 3.928-1.181 6.867z"></path><path fill-rule="evenodd" opacity=".6" d="M3.007.671v1.297L15 1 10.887-.006l-7.88.677z"></path><path fill-rule="evenodd" fill="#FFE56A" d="M2.203.008h13.594c.114 0 .205.1.205.224V.79c0 .123-.091.223-.205.223H2.203c-.114 0-.205-.1-.205-.223V.232c0-.124.091-.224.205-.224z"></path></svg><svg width="16" height="17" id="icon-whistle" y="458"><path fill-rule="evenodd" fill="#A5AEB8" d="M8.711 12.054l-5.327 4.938s-.842-.221-2.119-.605C-.012 16.003.143 15.125.143 15.125L6.559 4.04l2.152 8.014z"></path><path fill-rule="evenodd" fill="#C6CED7" d="M6.024 4.964a5.354 5.354 0 0 1 7.303-1.953 5.327 5.327 0 0 1 1.957 7.286 5.353 5.353 0 0 1-7.303 1.952 5.326 5.326 0 0 1-1.957-7.285z"></path><path fill-rule="evenodd" fill="#96A0AB" d="M7.876 6.03a3.212 3.212 0 0 1 4.382-1.171 3.197 3.197 0 0 1 1.174 4.371 3.213 3.213 0 0 1-4.382 1.172A3.197 3.197 0 0 1 7.876 6.03z"></path><path fill-rule="evenodd" fill="#C6CED7" d="M8.43.807a1.605 1.605 0 0 1 2.191-.586 1.598 1.598 0 0 1 .587 2.186 1.606 1.606 0 0 1-2.191.585A1.597 1.597 0 0 1 8.43.807z"></path></svg><svg width="12" height="16" id="icon-yellow-card" y="475"><path fill-rule="evenodd" fill="#FFE035" d="M2.4-.002h7.2c1.325 0 2.4.896 2.4 2.001v12c0 1.104-1.075 2-2.4 2H2.4c-1.326 0-2.4-.896-2.4-2v-12C0 .894 1.074-.002 2.4-.002z"></path></svg></svg>