{"version":3,"file":"js/scripts_react_mls-match-summary_utils_js.js?_t=14ccff9ce54a8d644bef","mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAKA;AACA;AAAA;AAEA;AAEA;AAEA;AACA;AAOA;AACA;AAAA;AAEA;AAAA;AAEA;AACA;AACA;AACA;AACA;AAAA;AACA;AAEA;AAAA;AACA;AACA;AAGA;AACA;AAMA;AACA;AAAA;AACA;AACA;AAEA;AAOA;AACA;AAAA;AACA;AACA;AAEA;AAaA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAGA;AACA;AAcA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAGA;AACA;AAiBA;AACA;AACA;AAcA;AACA;AACA;AAUA;AACA;AACA;AAUA;AACA;AACA;AAcA;AACA;AACA;AAaA;AACA;AACA;AASA;AACA;AACA;AAMA;AACA;AACA;AAEA;AACA;AACA;AAEA;AACA;AACA;AAEA;AACA;AACA;AAEA;AACA;AACA;AAEA;AASA;;;;;;;;;;;;;;;;;;;;;;;;;;AC5PA;AACA;AACA;AAEA;AACA;AAEA;AACA;AACA;AACA;AAAA;AAEA;AACA;AAEA;AAAA;AACA;AAEA;AAEA;AAAA;AACA;AACA;AAEA;AAEA;AACA;AACA;AAAA;AAGA;AAAA;AACA;AACA;AAGA;AACA;AAEA;AAEA;AAEA;AACA;AAAA;AAGA;AAAA;AACA;AAGA;AACA;AAEA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AAEA;AACA;AAAA;AAGA;AAAA;AACA;AAEA;AACA;AAAA;AAEA;AACA;AAAA;AAEA;AACA;AAAA;AAEA;AACA;AAAA;AAEA;AACA;AAAA;AAEA;AAAA;AACA;AACA;AAGA;AAEA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAGA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AAEA;AACA;AACA;AAAA;AAGA;AACA;AAEA;AACA;AAEA;AACA;AAAA;AAGA;AAAA;AACA;AAGA;AACA;AAEA;AACA;AACA;AAAA;AAGA;AACA;AAEA;AACA;AAEA;AACA;AAAA;AAGA;AAAA;AACA;AAGA;AACA;AAEA;AACA;AACA;AAAA;AAGA;AACA;AAEA;AACA;AAEA;AACA;AAAA;AAGA;AAAA;AACA;AAGA;AACA;AAEA;AACA;AACA;AAAA;AAGA;AACA;;;;;;;;;;;;;;;;;;ACrOA;AACA;AACA;AAEA;AACA;AAEA;AACA;AAEA;AAwBA;AAGA;AAEA;;;;;;;;;;;;;;;;ACvCA;;;;;;;;;;;;;;;;;;;;;;;;ACAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAGA;AASA;AAIA;AAQA;AAEA;AACA;AAEA;AACA;AACA;AACA;AACA;AAEA;AAiCA;AAAA;AAAA;AACA;AACA;AAAA;AAEA;AAQA;AAmDA;AAGA;AAEA;;;;;;;;;;;;;;;;AChKA;;;;;;;;;;;;;;;;;;;ACAA;AACA;AACA;AACA;AAEA;AACA;AAEA;AAKA;AAGA;AAEA;;;;;;;;;;;;;;;;;;;;;AClBA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AAEA;AACA;AAEA;AACA;AACA;AAEA;AASA;AAYA;AAYA;AACA;AACA;AAAA;AACA;AACA;AAAA;AAAA;AAAA;AAAA;AAKA;AAGA;AACA;AACA;AACA;AACA;AACA;AAAA;AAGA;AACA;AACA;AACA;AACA;AACA;AAAA;AAGA;AAmDA;AAAA;AAAA;AACA;AACA;AAAA;AAGA;AAOA;AAGA;AAEA;;;;;;;;;;;;;;;;ACrJA;;;;;;;;;;;;;;;;;ACAA;AACA;AAEA;AACA;AACA;AAEA;AASA;AAAA;AAGA;AAEA;;;;;;;;;;;;;;;;ACrBA;;;;;;;;;;;;;;;;;;;ACAA;AACA;AACA;AACA;AAEA;AACA;AAEA;AAKA;AAGA;AAEA;;;;;;;;;;;;;;;;;;;;AClBA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AASA;AACA;AACA;AACA;AACA;AACA;AAAA;AAGA;AAmCA;AAAA;AAAA;AACA;AACA;AAAA;AAGA;AAOA;AAGA;AAEA;;;;;;;;;;;;;;;;ACpFA;;;;;;;;;;;;;;;;ACAA;;;;;;;;;;;;;;;;;;;;ACAA;AACA;AACA;AACA;AACA;AAEA;AACA;AAEA;AAOA;AAGA;AAEA;;;;;;;;;;;;;;;;;;;ACrBA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AAEA;AASA;AACA;AACA;AACA;AACA;AACA;AAAA;AAGA;AAyCA;AAGA;AAEA;;;;;;;;;;;;;;;;AChFA;;;;;;;;;;;;;;;;ACAA;;;;;;;;;;;;;;;;;;;ACAA;AACA;AACA;AACA;AAEA;AACA;AAEA;AAKA;AAGA;AAEA;;;;;;;;;;;;;;;;;;;;AClBA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AASA;AAgCA;AAAA;AAAA;AACA;AACA;AAAA;AAGA;AAOA;AAGA;AAEA;;;;;;;;;;;;;;;;ACxEA;;;;;;;;;;;;;;;;ACAA;;;;;;;;;;;;;;;;;ACAA;AACA;AAEA;AACA;AACA;AACA;AAEA;AAiBA;AAGA;AAEA;;;;;;;;;;;;;;;;;;;AC9BA;AACA;AACA;AACA;AAEA;AACA;AAEA;AAKA;AAGA;AAEA;;;;;;;;;;;;;;;;;;;AClBA;AACA;AACA;AACA;AAEA;AACA;AAEA;AACA;AACA;AACA;AAEA;AASA;AASA;AAkDA;AAGA;AAEA;;;;;;;;;;;;;;;;ACtFA;;;;;;;;;;;;;;;;;;;;ACAA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AAEA;AASA;AASA;AACA;AACA;AACA;AACA;AACA;AAAA;AAGA;AACA;AACA;AACA;AACA;AACA;AAAA;AAGA;AAqDA;AAGA;AAEA;;;;;;;;;;;;;;;;AC7GA;;;;;;;;;;;;;;;;ACAA;;;;;;;;;;;;;;;;;ACAA;AACA;AAEA;AACA;AACA;AAEA;AAEA;AACA;AACA;AAAA;AACA;AAGA;AAWA;AAGA;AAEA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC/BA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AAEA;AACA;AACA;AACA;AAAA;AAEA;AACA;AAEA;AAAA;AACA;AAEA;AAEA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AAEA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AAEA;AAAA;AAEA;AAEA;AACA;AAAA;AACA;AACA;AACA;AACA;AAGA;AAAA;AACA;AACA;AAGA;AAAA;AACA;AACA;AAGA;AAAA;AACA;AACA;AACA;AAGA;AAAA;AAEA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AAGA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AAGA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AAIA;AAAA;AACA;AACA;AACA;AACA;AACA;AAGA;AAAA;AACA;AACA;AACA;AACA;AACA;AAEA;AAEA;AAAA;AACA;AACA;AACA;AACA;AACA;AAEA;AAEA;AAAA;AACA;AACA;AACA;AACA;AACA;AAIA;AAAA;AACA;AACA;AACA;AACA;AACA;AAGA;AAAA;AACA;AACA;AACA;AACA;AACA;AAGA;AAAA;AACA;AACA;AACA;AACA;AACA;AAGA;AACA;AACA;AACA;AACA;AAEA;AAAA;AACA;AAIA;AACA;AACA;AAAA;AAGA;AACA;AAAA;AAGA;AACA;AAAA;AAGA;AAAA;AACA;AACA;AACA;AACA;AAGA;AAAA;AACA;AACA;AACA;AACA;AAEA;AAAA;AACA;AACA;AACA;AACA;AAEA;AAAA;AACA;AACA;AACA;AACA;AAEA;AAAA;AACA;AACA;AACA;AACA;AAEA;AAAA;AACA;AACA;AACA;AACA;AAEA;AAAA;AACA;AACA;AACA;AACA;AAEA;AAAA;AACA;AACA;AACA;AACA;AAEA;AAAA;AACA;AACA;AACA;AACA;AAEA;AAAA;AACA;AACA;AACA;AACA;AAGA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AAEA;AACA;AACA;AACA;AAAA;AAGA;AACA;AAEA;AACA;AACA;AAAA;AAGA;AACA;AAEA;AAEA;AACA;AACA;AAEA;AACA;AAAA;AAGA;AAEA;AACA;AAEA;AAAA;AAGA;AACA;AACA;AAAA;AAGA;AACA;AAAA;AAGA;AAAA;AACA;AAGA;AACA;AACA;AAAA;AAGA;AAAA;AACA;AAGA;AAAA;AACA;AACA;AACA;AACA;AACA;AAGA;AACA;AAEA;AACA;AACA;AAAA;AAEA;AACA;AAEA;AACA;AACA;AAAA;AAGA;AACA;AAEA;AACA;AACA;AAAA;AAGA;AAAA;AACA;AAGA;AACA;AAAA;AAGA;AAAA;AACA;AAGA;AAAA;AAEA;AAEA;AACA;AACA;AAAA;AAEA;AAEA;AAAA;AAGA;AACA;AAEA;AAAA;AACA;AAEA;AACA;AAAA;AAGA;AAAA;AACA;AAEA;AACA;AAAA;AAGA;AACA;;;;;;;;;;;;;;;;;;;;AC/dA;AACA;AACA;AACA;AACA;AAEA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAGA;AACA;AAEA;AAAA;AAGA;AACA;AACA;AAAA;AAEA;AAEA;AAAA;AACA;AACA;AAEA;AACA;AAAA;AACA;AACA;AACA;AAGA;AACA;AACA;AAAA;AAGA;AACA;AAEA;AACA;AAAA;AACA;AAGA;AACA;AAAA;AACA;AAGA;AACA;AACA;AAAA;AAGA;AACA;AACA;AAAA;AAGA;AACA;AAAA;AAIA;AAMA;AACA;AACA;AAAA;AACA;AACA;AAGA;AACA;AACA;AAAA;AAGA;AAOA;AAAA;AACA;AAGA;AAEA;AACA;AAAA;AAGA;AAAA;AACA;AACA;AAGA;AACA;AACA;AAEA;AACA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAEA;AAGA;AAEA;;;;;;;;;;;;;;;;AC7JA;;;;;;;;;;;;;;;;;ACAA;AACA;AAEA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAGA;AACA;AACA;AACA;AACA;AAAA;AACA;AAGA;AACA;AAAA;AACA;AAGA;AACA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAKA;AAIA;AAEA;;;;;;;;;;;;;;;;ACjDA;;;;;;;;;;;;;;;;ACAA;AAEA;AAEA;AACA;AAEA;AACA;AAAA;AAGA;AACA;;;;;;;;;;;;;;;;ACZA;AAEA;AAMA;AACA;AACA;AAAA;AAEA;AAAA;AACA;AAGA;AACA;AACA;AAAA;AAEA;AACA;AACA;AAAA;AACA;AAEA;;;;;;;;;;;;;;;;;;ACxBA;AACA;AAEA;AACA;AACA;AAEA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AASA;AACA;AAEA;AACA;AAAA;AAGA;AACA;AAAA;AAGA;AACA;AAAA;AAGA;AACA;AASA;AACA;AACA;AAAA;AAEA;AACA;AASA;AACA;AACA;AAEA;AACA;AAKA;AACA;AAAA;AACA;AAEA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AAAA;AACA;AASA;AACA;AAKA;AAKA;AACA;AACA;AACA;AAAA;AAEA;AAEA;AACA;AAEA;AACA;AACA;AAAA;AACA;AAGA;AACA;;;;;;;;;;;;;;;;AC/IA;AAEA;AACA;AACA;AAEA;AACA;AAAA;AAAA;AACA;AACA;AACA;AAAA;AAKA;AAGA;AAGA;AAEA;;;;;;;;;;;;;;;;ACvBA;AAEA;AACA;AACA;AAEA;AACA;AAAA;AAAA;AACA;AACA;AACA;AAAA;AAKA;AAGA;AAGA;AAEA;;;;;;;;;;;;;;;;ACvBA;AAEA;AACA;AACA;AAEA;AACA;AAAA;AAAA;AACA;AACA;AACA;AAAA;AAGA;AAAA;AAAA;AACA;AACA;AAAA;AAGA;AAGA;AAGA;AAEA;;;;;;;;;;;;;;;;AC1BA;AAEA;AACA;AACA;AAEA;AACA;AAAA;AAAA;AACA;AACA;AACA;AAAA;AAMA;AAGA;AAGA;AAEA;;;;;;;;;;;;;;;;ACxBA;AAEA;AACA;AACA;AACA;AAAA;AAAA;AACA;AACA;AACA;AAAA;AAKA;AAAA;AAAA;AACA;AACA;AAAA;AAGA;AAAA;AAAA;AACA;AACA;AAAA;AAEA;AAAA;AAAA;AACA;AACA;AACA;AAAA;AAIA;AAGA;AAEA;;;;;;;;;;;;;;;;AClCA;;;;;;;;;;;;;;;;ACAA;AAEA;AACA;AACA;AAEA;AACA;AAAA;AAAA;AACA;AACA;AACA;AAAA;AAMA;AAGA;AAGA;AAEA;;;;;;;;;;;;;;;;ACxBA;;;;;;;;;;;;;;;;ACAA;AAEA;AACA;AACA;AAEA;AACA;AAAA;AAAA;AACA;AACA;AACA;AAAA;AAMA;AAGA;AAGA;AAEA;;;;;;;;;;;;;;;;ACxBA;AAEA;AACA;AACA;AAEA;AACA;AAAA;AAAA;AACA;AACA;AACA;AAAA;AAMA;AAGA;AAGA;AAEA;;;;;;;;;;;;;;;;ACxBA;AAEA;AACA;AACA;AAEA;AACA;AAAA;AAAA;AACA;AACA;AACA;AAAA;AAQA;AAGA;AAEA;;;;;;;;;;;;;;;;ACvBA;;;;;;;;;;;;;;;;ACAA;AAEA;AACA;AACA;AAEA;AACA;AAAA;AAAA;AACA;AACA;AACA;AAAA;AAKA;AAGA;AAGA;AAEA;;;;;;;;;;;;;;;;ACvBA;AAEA;AACA;AACA;AAEA;AACA;AAAA;AAAA;AACA;AACA;AACA;AAAA;AASA;AAGA;AAGA;AAEA;;;;;;;;;;;;;;;;AC3BA;;;;;;;;;;;;;;;;ACAA;AAEA;AACA;AACA;AAEA;AACA;AAAA;AAAA;AACA;AACA;AACA;AAAA;AAEA;AAAA;AAAA;AACA;AACA;AACA;AAAA;AAIA;AAEA;AAAA;AAAA;AACA;AACA;AAAA;AAMA;AAAA;AAAA;AACA;AACA;AAAA;AAGA;AAEA;AAGA;AAEA;;;;;;;;;;;;;;;;ACzCA;;;;;;;;;;;;;;;;ACAA;AAEA;AACA;AACA;AAEA;AACA;AAAA;AAAA;AACA;AACA;AACA;AAAA;AAMA;AAGA;AAGA;AAEA;;;;;;;;;;;;;;;;ACxBA;AAEA;AACA;AACA;AAEA;AACA;AAAA;AAAA;AACA;AACA;AACA;AAAA;AAKA;AAGA;AAGA;AAEA;;;;;;;;;;;;;;;;ACvBA","sources":["webpack://@mlssoccer/netcore/./scripts/libraries/_modules/tracking/helpers.js","webpack://@mlssoccer/netcore/./scripts/react/mls-lineups/utils.js","webpack://@mlssoccer/netcore/./scripts/react/mls-match-summary/components/Detailed/Detailed.js","webpack://@mlssoccer/netcore/./scripts/react/mls-match-summary/components/Detailed/index.js","webpack://@mlssoccer/netcore/./scripts/react/mls-match-summary/components/Featured/Featured.js","webpack://@mlssoccer/netcore/./scripts/react/mls-match-summary/components/Featured/index.js","webpack://@mlssoccer/netcore/./scripts/react/mls-match-summary/components/Goal/Goal.js","webpack://@mlssoccer/netcore/./scripts/react/mls-match-summary/components/Goal/components/SummaryGoal/SummaryGoal.js","webpack://@mlssoccer/netcore/./scripts/react/mls-match-summary/components/Goal/index.js","webpack://@mlssoccer/netcore/./scripts/react/mls-match-summary/components/MatchScoreBox/MatchScoreBox.js","webpack://@mlssoccer/netcore/./scripts/react/mls-match-summary/components/MatchScoreBox/index.js","webpack://@mlssoccer/netcore/./scripts/react/mls-match-summary/components/MiscGoal/MiscGoal.js","webpack://@mlssoccer/netcore/./scripts/react/mls-match-summary/components/MiscGoal/components/SummaryMiscGoal/SummaryMiscGoal.js","webpack://@mlssoccer/netcore/./scripts/react/mls-match-summary/components/MiscGoal/components/SummaryMiscGoal/index.js","webpack://@mlssoccer/netcore/./scripts/react/mls-match-summary/components/MiscGoal/index.js","webpack://@mlssoccer/netcore/./scripts/react/mls-match-summary/components/PenaltyCard/PenaltyCard.js","webpack://@mlssoccer/netcore/./scripts/react/mls-match-summary/components/PenaltyCard/components/SummaryPenaltyCard/SummaryPenaltyCard.js","webpack://@mlssoccer/netcore/./scripts/react/mls-match-summary/components/PenaltyCard/components/SummaryPenaltyCard/index.js","webpack://@mlssoccer/netcore/./scripts/react/mls-match-summary/components/PenaltyCard/index.js","webpack://@mlssoccer/netcore/./scripts/react/mls-match-summary/components/PenaltyGoal/PenaltyGoal.js","webpack://@mlssoccer/netcore/./scripts/react/mls-match-summary/components/PenaltyGoal/components/SummaryPenaltyGoal/SummaryPenaltyGoal.js","webpack://@mlssoccer/netcore/./scripts/react/mls-match-summary/components/PenaltyGoal/components/SummaryPenaltyGoal/index.js","webpack://@mlssoccer/netcore/./scripts/react/mls-match-summary/components/PenaltyGoal/index.js","webpack://@mlssoccer/netcore/./scripts/react/mls-match-summary/components/Standard/Standard.js","webpack://@mlssoccer/netcore/./scripts/react/mls-match-summary/components/Substitution/Substitution.js","webpack://@mlssoccer/netcore/./scripts/react/mls-match-summary/components/Substitution/components/FeedSubstitution/FeedSubstitution.js","webpack://@mlssoccer/netcore/./scripts/react/mls-match-summary/components/Substitution/components/FeedSubstitution/index.js","webpack://@mlssoccer/netcore/./scripts/react/mls-match-summary/components/Substitution/components/SummarySubstitution/SummarySubstitution.js","webpack://@mlssoccer/netcore/./scripts/react/mls-match-summary/components/Substitution/components/SummarySubstitution/index.js","webpack://@mlssoccer/netcore/./scripts/react/mls-match-summary/components/Substitution/index.js","webpack://@mlssoccer/netcore/./scripts/react/mls-match-summary/components/Timer/Timer.js","webpack://@mlssoccer/netcore/./scripts/react/mls-match-summary/utils.js","webpack://@mlssoccer/netcore/./scripts/react/shared/components/ButtonBase/ButtonBase.js","webpack://@mlssoccer/netcore/./scripts/react/shared/components/ButtonBase/index.js","webpack://@mlssoccer/netcore/./scripts/react/shared/components/ToggleButton/ToggleButton.js","webpack://@mlssoccer/netcore/./scripts/react/shared/components/ToggleButton/index.js","webpack://@mlssoccer/netcore/./scripts/react/shared/hooks/useEventCallback.js","webpack://@mlssoccer/netcore/./scripts/react/shared/hooks/useForkRef.js","webpack://@mlssoccer/netcore/./scripts/react/shared/hooks/useIsFocusVisible.js","webpack://@mlssoccer/netcore/./scripts/react/shared/svg/CrossbarIcon/CrossbarIcon.js","webpack://@mlssoccer/netcore/./scripts/react/shared/svg/FilledPlayIcon/FilledPlayIcon.js","webpack://@mlssoccer/netcore/./scripts/react/shared/svg/InjuryIcon/InjuryIcon.js","webpack://@mlssoccer/netcore/./scripts/react/shared/svg/MissIcon/MissIcon.js","webpack://@mlssoccer/netcore/./scripts/react/shared/svg/OfficialIcon/OfficialIcon.js","webpack://@mlssoccer/netcore/./scripts/react/shared/svg/OfficialIcon/index.js","webpack://@mlssoccer/netcore/./scripts/react/shared/svg/PenaltyCardIcon/PenaltyCardIcon.js","webpack://@mlssoccer/netcore/./scripts/react/shared/svg/PenaltyCardIcon/index.js","webpack://@mlssoccer/netcore/./scripts/react/shared/svg/PenaltyIcon/PenaltyIcon.js","webpack://@mlssoccer/netcore/./scripts/react/shared/svg/PenaltyMissIcon/PenaltyMissIcon.js","webpack://@mlssoccer/netcore/./scripts/react/shared/svg/PlayCircleIcon/PlayCircleIcon.js","webpack://@mlssoccer/netcore/./scripts/react/shared/svg/PlayCircleIcon/index.js","webpack://@mlssoccer/netcore/./scripts/react/shared/svg/SaveIcon/SaveIcon.js","webpack://@mlssoccer/netcore/./scripts/react/shared/svg/SecondYellowCardIcon/SecondYellowCardIcon.js","webpack://@mlssoccer/netcore/./scripts/react/shared/svg/SecondYellowCardIcon/index.js","webpack://@mlssoccer/netcore/./scripts/react/shared/svg/SubstitutionIcon/SubstitutionIcon.js","webpack://@mlssoccer/netcore/./scripts/react/shared/svg/SubstitutionIcon/index.js","webpack://@mlssoccer/netcore/./scripts/react/shared/svg/TimerIcon/TimerIcon.js","webpack://@mlssoccer/netcore/./scripts/react/shared/svg/TrendingArrowIcon/TrendingArrowIcon.js","webpack://@mlssoccer/netcore/./scripts/react/shared/svg/TrendingArrowIcon/index.js"],"sourcesContent":["/**\n * @private\n * Push somethig in dataLayer\n * @param obj object to push\n */\nconst dataLayerPush = (obj) => {\n  if (!obj) return;\n\n  window.dataLayer = window.dataLayer ?? [];\n\n  obj = cleanupNull(obj);\n\n  window.dataLayer.push(obj);\n};\n\n/**\n * @private\n * cleanup inner props\n * @param {object} obj\n */\nconst cleanupNull = (obj) => {\n  if (obj === null) return undefined;\n\n  if (typeof obj === 'string') return obj;\n\n  for (const key in obj) {\n    if (obj.hasOwnProperty(key)) {\n      if (Array.isArray(obj[key])) {\n        for (let index = 0; index < obj[key].length; index++) {\n          obj[key][index] = cleanupNull(obj[key][index]);\n        }\n      } else {\n        obj[key] = cleanupNull(obj[key]);\n      }\n    }\n  }\n\n  return obj;\n};\n\n/**\n * Push new Core dataLayer info\n * @param data the meta data\n */\nexport const addCoreDataLayer = (data) => {\n  dataLayerPush({\n    'event': 'dataLayer-initialized',\n    ...data,\n  });\n};\n\n/**\n * Track generic event\n * @param {string} eventName event name\n * @param {any} data event data\n */\nexport const trackEvent = (eventName, data = {}) => {\n  dataLayerPush({\n    'event': eventName,\n    ...data\n  });\n};\n\n/**\n * track block impression\n * @param {string} bucketName\n * @param {string} blockType\n * @param {{\n * id: string,\n * name: string,\n * creative: string,\n * position: string,\n * }[]} promotions\n */\nexport const trackBlockImpression = (bucketName, blockType, promotions) => {\n  const impressionData = {\n    bucketName,\n    blockType,\n    'ecommerce': promotions?.length ? {\n      'promoView': {\n        promotions,\n      },\n    } : undefined,\n  };\n\n  trackEvent('block-impression', impressionData);\n};\n\n/**\n * track block click\n * @param {string} bucketName\n * @param {string} blockType\n * @param {object} data\n * @param {{\n  * id: string,\n  * name: string,\n  * creative: string,\n  * position: string,\n  * }} promotion\n  */\nexport const trackBlockClick = (bucketName, blockType, layoutName, blockLayout, blockStyle, data, promotion) => {\n  const clickData = {\n    bucketName,\n    blockType,\n    layoutName,\n    blockLayout,\n    blockStyle,\n    ...data,\n    'ecommerce': promotion ? {\n      'promoClick': {\n        promotions: [promotion],\n      },\n    } : undefined,\n  };\n\n  trackEvent('block-click', clickData);\n};\n\n/**\n * Track MatchHub click event\n * @param {{\n * clickType: string,\n * clickItem: string,\n * match: string,\n * matchState: string,\n * clubName: string,\n * playerName: string,\n * competition: string,\n * cardType: string,\n * optaEventType: string,\n * toggle: string\n * }} clickData\n */\nexport const trackMatchHubClick = (clickData) => {\n  trackEvent('match-hub-click', clickData);\n};\n\n/**\n * Track Match interaction event\n * @param {{\n  * clickType: string,\n  * clickItem: string,\n  * clickPosition: string,\n  * matchState: string,\n  * match: string,\n  * competition: string,\n  * travelType: string\n  * }} clickData\n  */\nexport const trackMatchInteraction = (clickData) => {\n  trackEvent('match-interaction', clickData);\n};\n\n/**\n * Track Week Selector event\n * @param {{\n  * selectorLocation: 'top' | 'bottom',\n  * direction: 'forward' | 'back',\n  * selection: string\n  * }} clickData\n  */\nexport const trackWeekSelector = (clickData) => {\n  trackEvent('week-selector-click', clickData);\n};\n\n/**\n * Track Filter interaction event\n * @param {{\n  * statsCategory: string,\n  * filterType: string,\n  * clickItem: string\n  * }} clickData\n  */\nexport const trackFilterClick = (clickData) => {\n  trackEvent('filter-click', clickData);\n};\n\n/**\n * Track FeaturedMatch click event\n * @param {{\n* clickType: string,\n* clickItem: string,\n* match: string,\n* matchState: string,\n* playerName: string,\n* competition: string,\n* toggle: string\n* }} clickData\n*/\nexport const trackFeaturedMatchClick = (clickData) => {\n trackEvent('featured-match-click', clickData);\n};\n\n/**\n * Track HorizontalScoreboardMatch click event\n * @param {{\n* clickType: string,\n* clickItem: string,\n* match: string,\n* matchState: string,\n* competition: string,\n* clickPosition: string,\n* }} clickData\n*/\nexport const trackHorizontalScoreboardMatch = (clickData) => {\n trackEvent('horizontal-scoreboard-match-click', clickData);\n};\n\n/**\n * Track user successful login event\n * @param {{\n* userId: string,\n* method: string,\n* }} eventData\n*/\nexport const trackUserLogin = (eventData) => {\n  trackEvent('successful-login-freemium', eventData);\n};\n\n\n/**\n * Track user login freemium login wall event\n*/\nexport const trackUserFreemiumLoginWall = (eventData) => {\n  trackEvent('freemium-login-wall', eventData);\n};\n\nexport const trackUserFreemiumLoginWallViewed = (eventData) => {\n  trackEvent('freemium-login-wall_viewed', eventData);\n};\n\nexport const trackUserFreemiumLoginWallCtaClicked = (eventData) => {\n  trackEvent('freemium-cta-click', eventData);\n};\n\nexport const trackUserFreemiumSuccessfulSignup = (eventData) => {\n  trackEvent('successful-signup', eventData);\n};\n\nexport const trackUserFreemiumSuccessfulLogin = (eventData) => {\n  trackEvent('successful-login-freemium', eventData);\n};\n\nexport const trackUserLogged = (userId) => {\n  // const dataLayerInitialized = window.dataLayer.find((e) => e.event == 'dataLayer-initialized');\n\n  // if (dataLayerInitialized) {\n  //   dataLayerPush({\n  //     ...dataLayerInitialized,\n  //     'userId': userId,\n  //   });\n  // }\n};\n","import React, { createContext, useContext } from \"react\";\nimport { matchEventTypes } from \"../mls-match-summary/utils\";\nimport { periodTypes } from \"../mls-match-list/utils\";\n\nexport const LineupsContext = createContext();\nLineupsContext.displayName = 'LineupsContext';\n\nexport function useLineupsData() {\n  const context = useContext(LineupsContext);\n  if (context === undefined) {\n    throw new Error('useLineupsData must be used within a <LineupsContextProvider />');\n  }\n  return context;\n}\n\nexport const lineupStatusTypes = {\n  start: \"Start\",\n  sub: \"Sub\"\n};\n\nexport const competitionTypes = {\n  nationalTeam: \"NationalTeam\",\n  default: \"Default\",\n  club: \"Club\"\n};\n\nexport const separateAndMergePlayers = ({ d3PlayersData, mlsPlayersMatch, homeClub, awayClub, commentaries }) => {\n  if (!mlsPlayersMatch || mlsPlayersMatch.length === 0) {\n    return null;\n  }\n\n  const merged = {\n    homePlayers: [],\n    awayPlayers: [],\n  };\n\n  for (let i = 0; i < mlsPlayersMatch.length; i++) {\n    const current = mlsPlayersMatch[i];\n\n    const sanitizedPlayer = sanitizePlayer({ playerData: current, d3PlayersData, commentaries, homeClub, awayClub });\n\n    const { isHomePlayer } = sanitizedPlayer || {};\n\n    if (isHomePlayer) {\n      merged.homePlayers = [...merged.homePlayers, sanitizedPlayer];\n    }\n    else {\n      merged.awayPlayers = [...merged.awayPlayers, sanitizedPlayer];\n    }\n  }\n\n  return merged;\n};\n\nfunction sanitizePlayer({ playerData, d3PlayersData, commentaries, homeClub, awayClub }) {\n  const { player, club } = playerData || {};\n  const { homePlayers, awayPlayers } = d3PlayersData || {};\n  const isHomePlayer = club?.opta_id === homeClub?.optaId;\n\n  const foundPlayer = d3PlayersData?.find((d3Player) => d3Player.optaId.toString() === player.opta_id.toString()) || null;\n  const { thumbnail } = foundPlayer || {};\n  let ownGoals = [];\n  let goals = [];\n  let yellowCards = [];\n  let secondYellowCards = [];\n  let redCards = [];\n\n  if (commentaries && commentaries.length > 0) {\n    for (let i = 0; i < commentaries.length; i++) {\n      const currentCommentary = commentaries[i];\n      const { type, first_player, period } = currentCommentary || {};\n      const { opta_id } = first_player || {};\n\n      if (opta_id !== player.opta_id) {\n        continue;\n      }\n\n      switch (type) {\n        case matchEventTypes.penaltyGoal:\n        case matchEventTypes.goal:\n          if (period === periodTypes.ShootOut) {\n            goals = [...goals];\n          }\n          goals = [...goals, currentCommentary];\n          continue;\n        case matchEventTypes.yellowCard:\n          yellowCards = [...yellowCards, currentCommentary];\n          continue;\n        case matchEventTypes.secondYellowCard:\n          secondYellowCards = [...secondYellowCards, currentCommentary];\n          continue;\n        case matchEventTypes.ownGoal:\n          ownGoals = [...ownGoals, currentCommentary];\n          continue;\n        case matchEventTypes.redCard:\n          redCards = [...redCards, currentCommentary];\n      }\n    }\n  }\n\n  const currentClub = isHomePlayer ? homeClub : awayClub;\n\n  if (!foundPlayer) {\n    return {\n      ...playerData,\n      initialStatus: playerData.status,\n      initialFormationPlace: playerData.formation_place,\n      goals,\n      isHomePlayer,\n      yellowCards,\n      secondYellowCards,\n      redCards,\n      ownGoals,\n      club: {\n        ...club,\n        abbreviation: currentClub?.abbreviation || club.abbreviation || null,\n        backgroundColor: currentClub?.backgroundColor || null,\n        shortName: currentClub?.shortName || null,\n      },\n      subbedIn: false,\n      subbedOut: false,\n      image: null\n    };\n  }\n\n  return {\n    ...playerData,\n    initialStatus: playerData.status,\n    initialFormationPlace: playerData.formation_place,\n    goals,\n    isHomePlayer,\n    yellowCards,\n    secondYellowCards,\n    redCards,\n    ownGoals,\n    subbedIn: false,\n    subbedOut: false,\n    player: {\n      ...player,\n      first_name: foundPlayer?.firstName ? foundPlayer.firstName : player.first_name,\n      known_name: foundPlayer?.knownName ? foundPlayer.knownName : player.known_name,\n      last_name: foundPlayer?.lastName ? foundPlayer?.lastName : player.last_name,\n      slug: foundPlayer?.playerSlug ? foundPlayer?.playerSlug : \"\",\n      position: foundPlayer?.position || \"\"\n    },\n    image: thumbnail || null,\n    headshotNationalTeam: foundPlayer?.headshotNationalTeam || null,\n    headshotClub: foundPlayer?.headshotClub || null,\n    club: {\n      ...club,\n      abbreviation: currentClub?.abbreviation || club.abbreviation || null,\n      backgroundColor: currentClub?.backgroundColor || null,\n      shortName: currentClub?.shortName || null,\n    }\n  };\n}\n\nexport function getStartersAndBench(players) {\n  if (!players || players.length === 0) {\n    return { starters: [], bench: [] };\n  }\n\n  const starters = [];\n  const bench = [];\n\n  for (let i = 0; i < players.length; i++) {\n    const current = players[i];\n\n    if (current.formation_place === 0) {\n      bench.push(current);\n    }\n    else {\n      starters.push(current);\n    }\n  }\n\n  return { starters, bench };\n}\n\nexport function composeInitialStartersAndBench(players) {\n  if (!players || players.length === 0) {\n    return { starters: [], bench: [] };\n  }\n\n  const starters = [];\n  const bench = [];\n\n  for (let i = 0; i < players.length; i++) {\n    const current = players[i];\n\n    if (current.initialStatus === lineupStatusTypes.sub) {\n      bench.push(current);\n    }\n    else {\n      starters.push(current);\n    }\n  }\n\n  return { starters, bench };\n}\n\nexport function composeManagers(managers, homeClub) {\n  if (!managers || managers.length === 0 || !homeClub) {\n    return { awayManagers: [], homeManagers: [] };\n  }\n\n  const homeManagers = [];\n  const awayManagers = [];\n\n  for (let i = 0; i < managers.length; i++) {\n    const current = managers[i];\n\n    if (homeClub.optaId === current.club.opta_id) {\n      homeManagers.push(current);\n    }\n    else {\n      awayManagers.push(current);\n    }\n  }\n\n  return { homeManagers, awayManagers };\n}\n\nexport function composeFormation(formation) {\n  if (!formation || typeof formation !== \"string\") {\n    return null;\n  }\n\n  return formation.split(\"\").join(\"-\");\n}\n","import React from 'react';\nimport { formatMatchMinutes, useCommentaryData } from \"../../utils\";\nimport Picture from \"../../../shared/components/Picture\";\n\nfunction Detailed() {\n  const { icon, commentaryType, title, commentary, clubLogoSrc, shortName } = useCommentaryData();\n\n  const { minute_display, comment } = commentary || {};\n  const [minutes, extraMinutes] = formatMatchMinutes(minute_display);\n\n  return (\n    <div className={`mls-o-match-feed__commentary mls-o-match-feed__commentary--${commentaryType}`}>\n      <div className={`mls-o-match-feed__commentary-icon`}>\n        {icon}\n      </div>\n      <div className={`mls-o-match-feed__container`}>\n        <div className={`mls-o-match-feed__minute`}>\n          {\n            minutes ? <div className={`mls-o-match-summary__regular-time`}>{minutes}</div> : null\n          }\n          {\n            extraMinutes\n              ? <div className={`mls-o-match-summary__extra-time`}>{`+${extraMinutes}`}</div>\n              : null\n          }\n        </div>\n        <div className={`mls-o-match-feed__club-logo`}>\n          <Picture src={clubLogoSrc != null ? clubLogoSrc : \"/assets/images/Fallbacklogo-grey.png\"} title={shortName} />\n        </div>\n        <div className={`mls-o-match-feed__title`}>{title}</div>\n        <div className={`mls-o-match-feed__comment`}>{comment}</div>\n      </div>\n    </div>\n  );\n}\n\n// eslint-disable-next-line no-func-assign\nDetailed = React.memo(Detailed);\n\nexport default Detailed;\n","export { default } from './Detailed';\n","import React from 'react';\nimport { formatMatchMinutes, useCommentaryData } from \"../../utils\";\nimport Picture from \"../../../shared/components/Picture\";\nimport { formatImageUrl, svgSizes } from \"../../../shared/utils\";\nimport ToggleButton from \"../../../shared/components/ToggleButton\";\nimport { formatMillisecondToHumanMinute } from \"../../../../libraries/_helpers\";\nimport FilledPlayIcon from \"../../../shared/svg/FilledPlayIcon/FilledPlayIcon\";\nimport { useReactAppState } from \"../../../shared/containers/utils\";\nimport { competitionTypes } from '../../../mls-lineups/utils';\n\nfunction Featured() {\n  const { urlList, isLeague, clubOptaId } = useReactAppState();\n  const { baseUrl } = urlList || {};\n  const { competition, icon, commentaryType, title, commentary, clubLogoSrc, shortName, backgroundColor, opposingClubBackgroundColor, opposingClubAbbreviation, matchEventType, clubAbbreviation, toggleDialog, clubSlug, opposingClubSlug } = useCommentaryData();\n  const { playerHeadshotThumbnailField: competitionThumbnailField } = competition || {};\n  const { minute_display, comment, first_player, first_player_match, video, image, first_club, headshotNationalTeam, headshotClub } = commentary || {};\n  const { thumbnail, fields } = video || {};\n  const { duration } = fields || {};\n  const { templateUrl: videoTemplateUrl } = thumbnail || {};\n  const { highQuality: videoImageSrc } = videoTemplateUrl ? formatImageUrl(videoTemplateUrl, { format: \"t_editorial_landscape_8_desktop_mobile\", extension: \"f_auto\" }) : { highQuality: null };\n  const composedDuration = duration != null ? formatMillisecondToHumanMinute(duration) : null;\n  const { known_name: firstPlayerKnownName, last_name: firstPlayerLastName, first_name: firstPlayerFirstName, slug: firstPlayerSlug } = first_player || {};\n  const { jersey, position } = first_player_match || {};\n  const { templateUrl } = image || {};\n  const headshotTemplateUrl =\n    competitionThumbnailField === competitionTypes.nationalTeam && headshotNationalTeam ? headshotNationalTeam :\n      (competitionThumbnailField === competitionTypes.club && headshotClub ? headshotClub : templateUrl); \n  const firstPlayerName = firstPlayerKnownName\n    ? firstPlayerKnownName\n    : firstPlayerLastName && firstPlayerFirstName\n      ? `${firstPlayerFirstName.charAt(0)}. ${firstPlayerLastName}`\n      : firstPlayerLastName\n        ? firstPlayerLastName\n        : firstPlayerFirstName\n          ? firstPlayerFirstName : \"\";\n  \n  const { highQuality: playerImageSrc } = headshotTemplateUrl ?\n    formatImageUrl(headshotTemplateUrl, { format: \"w_70,h_70,c_fill\", extension: \"f_png\" }) :\n    { highQuality: \"/assets/images/Fallback-Headshot.png\" };\n\n  const bodyModifierClass = videoImageSrc == null && first_player == null\n    ? \"mls-o-match-feed__body--comment-only\"\n    : videoImageSrc == null\n      ? \"mls-o-match-feed__body--no-video\"\n      : first_player == null\n        ? \"mls-o-match-feed__body--no-player\"\n        : \"\";\n\n  const [minutes, extraMinutes] = formatMatchMinutes(minute_display);\n\n  const jerseyBackgroundColor = matchEventType === \"own goal\" ? opposingClubBackgroundColor : backgroundColor;\n  const displayAbbreviation = matchEventType === \"own goal\" ? opposingClubAbbreviation : clubAbbreviation;\n\n  const displayAbbreviationClubSlug = matchEventType === \"own goal\" ? opposingClubSlug : clubSlug;\n  const { opta_id: firstClubOptaId } = first_club || {};\n  const isCurrentClub_first = firstClubOptaId == clubOptaId;\n  const hasPlayerLink = (isLeague || isCurrentClub_first) && baseUrl && firstPlayerSlug && firstPlayerSlug !== \"\";\n  const hasClubLink = isLeague && baseUrl && displayAbbreviationClubSlug && displayAbbreviationClubSlug !== \"\";\n\n  return (\n    <div className={`mls-o-match-feed__commentary mls-o-match-feed__commentary--${commentaryType}`}>\n      <div className={`mls-o-match-feed__commentary-icon`}>\n        {icon}\n      </div>\n      <div className={`mls-o-match-feed__container`}>\n        <div className={\"mls-o-match-feed__header\"} style={{ backgroundColor }}>\n          <div className={`mls-o-match-feed__minute`}>\n            {\n              minutes ? <div className={`mls-o-match-summary__regular-time`}>{minutes}</div> : null\n            }\n            {\n              extraMinutes\n                ? <div className={`mls-o-match-summary__extra-time`}>{`+${extraMinutes}`}</div>\n                : null\n            }\n          </div>\n          <div className={`mls-o-match-feed__club-logo`}>\n            {\n              hasClubLink ?\n                (<a alt={shortName} href={`${baseUrl}/clubs/${clubSlug}`}>\n                  <Picture src={clubLogoSrc != null ? clubLogoSrc : \"/assets/images/Fallbacklogo-grey.png\"} title={shortName} />\n                </a>)\n                : <Picture src={clubLogoSrc != null ? clubLogoSrc : \"/assets/images/Fallbacklogo-grey.png\"} title={shortName} />\n            }\n          </div>\n          <div className={`mls-o-match-feed__title`}>{title}</div>\n        </div>\n        <div className={`mls-o-match-feed__body ${bodyModifierClass}`}>\n          {\n            videoImageSrc != null\n              ? (\n                <div className={`mls-o-match-feed__image`}>\n                  <ToggleButton\n                    className={\"mls-o-match-feed__video\"}\n                    onClick={() => toggleDialog(video)}\n                  >\n                    <Picture src={videoImageSrc} title={title} />\n                    {\n                      composedDuration != null\n                        ? (\n                          <div className=\"mls-o-match-feed__duration\">{composedDuration}\n                            <FilledPlayIcon size={svgSizes.xSmall} />\n                          </div>\n                        )\n                        : null\n                    }\n                  </ToggleButton>\n                </div>\n              ) : null\n          }\n          <div className={`mls-o-match-feed__comment`}>{comment}</div>\n          {\n            first_player != null\n              ? (\n                <div className=\"mls-o-player-block\">\n                  <div className=\"mls-o-player-block__player-image\">\n                    {\n                      hasPlayerLink ?\n                        (<a alt={firstPlayerName} href={`${baseUrl}/players/${firstPlayerSlug}`}>\n                          <Picture fallbackSrc={\"/assets/images/Fallback-Headshot.png\"} loadingSrc={\"/assets/images/Fallback-Headshot.png\"} src={playerImageSrc} />\n                        </a>)\n                        : <Picture fallbackSrc={\"/assets/images/Fallback-Headshot.png\"} loadingSrc={\"/assets/images/Fallback-Headshot.png\"} src={playerImageSrc} />\n                    }\n                    <div className=\"mls-o-player-block__jersey\" style={{ backgroundColor: jerseyBackgroundColor }}>\n                      {jersey}\n                    </div>\n                  </div>\n                  <div className={\"mls-o-player-block__player-info\"}>\n                    <div className=\"mls-o-player-block__player-name\">\n                      {\n                        hasPlayerLink ?\n                          (<a alt={firstPlayerName} href={`${baseUrl}/players/${firstPlayerSlug}`}>{firstPlayerName}</a>)\n                          : firstPlayerName\n                      }\n                    </div>\n                    <div className=\"mls-o-player-block__player-details\">\n                      <span className=\"mls-o-player-block__position\">\n                        {position}\n                      </span>\n                      <span className=\"mls-o-player-block__club-abbreviation\">\n                        {\n                          hasClubLink ?\n                            (<a alt={displayAbbreviation} href={`${baseUrl}/clubs/${displayAbbreviationClubSlug}`}>{displayAbbreviation}</a>)\n                            : displayAbbreviation\n                        }\n                      </span>\n                    </div>\n                  </div>\n                </div>\n              ) : null\n          }\n        </div>\n      </div>\n    </div>\n  );\n}\n\n// eslint-disable-next-line no-func-assign\nFeatured = React.memo(Featured);\n\nexport default Featured;\n","export { default } from './Featured';\n","import React from 'react';\nimport { componentTypes, useCommentaryData } from \"../../utils\";\nimport SummaryGoal from \"./components/SummaryGoal/SummaryGoal\";\nimport Featured from \"../Featured/Featured\";\n\nfunction Goal() {\n  const { componentType = componentTypes.summary } = useCommentaryData();\n\n  return (\n    componentType === componentTypes.summary\n      ? <SummaryGoal />\n      : <Featured />\n  );\n}\n\n// eslint-disable-next-line no-func-assign\nGoal = React.memo(Goal);\n\nexport default Goal;\n","import React from 'react';\nimport Picture from \"../../../../../shared/components/Picture\";\nimport PlayCircleIcon from \"../../../../../shared/svg/PlayCircleIcon\";\nimport { formatMatchMinutes, useCommentaryData, getPlayerSlugByOptaId } from \"../../../../utils\";\nimport { useReactAppState } from \"../../../../../shared/containers/utils\";\nimport { trackMatchHubClick } from '../../../../../../libraries/_modules/tracking/helpers';\n\nfunction SummaryGoal() {\n  const { mediaQueries, urlList, isLeague, clubOptaId, t } = useReactAppState();\n  const { isMediumLargeMin } = mediaQueries || {};\n  const { commentary, clubLogoSrc, isHome, icon, componentType, commentaryType, toggleDialog, forgePlayers } = useCommentaryData();\n  const { baseUrl } = urlList || {};\n\n  const { first_player, second_player, third_player, minute_display, video, first_club, second_club } = commentary;\n  const [minutes, extraMinutes] = formatMatchMinutes(minute_display);\n\n  const { known_name: firstPlayerKnownName, last_name: firstPlayerLastName, first_name: firstPlayerFirstName } = first_player || {};\n  const { known_name: secondPlayerKnownName, last_name: secondPlayerLastName, first_name: secondPlayerFirstName } = second_player || {};\n  const { known_name: thirdPlayerKnownName, last_name: thirdPlayerLastName, first_name: thirdPlayerFirstName } = third_player || {};\n\n  const firstPlayerName = firstPlayerKnownName\n    ? firstPlayerKnownName\n    : firstPlayerLastName && firstPlayerFirstName\n      ? `${firstPlayerFirstName.charAt(0)}. ${firstPlayerLastName}`\n      : firstPlayerLastName\n        ? firstPlayerLastName\n        : firstPlayerFirstName\n          ? firstPlayerFirstName : \"\";\n\n  const secondPlayerName = second_player != null\n    ? secondPlayerKnownName\n      ? secondPlayerKnownName\n      : secondPlayerLastName && secondPlayerFirstName\n        ? `${secondPlayerFirstName.charAt(0)}. ${secondPlayerLastName}`\n        : secondPlayerLastName\n          ? secondPlayerLastName\n          : secondPlayerFirstName\n            ? secondPlayerFirstName\n            : null\n    : null;\n\n  const thirdPlayerName = third_player != null\n    ? thirdPlayerKnownName\n      ? thirdPlayerKnownName\n      : thirdPlayerLastName && thirdPlayerFirstName\n        ? `${thirdPlayerFirstName.charAt(0)}. ${thirdPlayerLastName}`\n        : thirdPlayerLastName\n          ? thirdPlayerLastName\n          : thirdPlayerFirstName\n            ? thirdPlayerFirstName\n            : null\n    : null;\n\n  const handleClick = () => {\n    toggleDialog(video);\n    trackMatchHubClick({\n      clickType: \"match summary\",\n      clickItem: \"video play\",\n      // add match data\n      // match: slug,\n      // matchState: status.abbreviation,\n      // competition: competition.shortName,\n    });\n  };\n\n  const { opta_id: firstClubOptaId } = first_club || {};\n  const isCurrentClub_first = firstClubOptaId == clubOptaId;\n  let firstPlayerSlug;\n  if (isLeague || isCurrentClub_first) {\n    const { opta_id: firstPlayerOptaId } = first_player || {};\n    firstPlayerSlug = getPlayerSlugByOptaId({ forgeMatchPlayers: forgePlayers, playerOptaId: firstPlayerOptaId });\n  }\n\n  const { opta_id: secondClubOptaId } = second_club || {};\n  const isCurrentClub_second = secondClubOptaId == clubOptaId;\n  let secondPlayerSlug;\n  if (isLeague || isCurrentClub_second) {\n    const { opta_id: secondPlayerOptaId } = second_player || {};\n    secondPlayerSlug = getPlayerSlugByOptaId({ forgeMatchPlayers: forgePlayers, playerOptaId: secondPlayerOptaId });\n  }\n\n  return (\n    <div className={`mls-o-match-summary__commentary mls-o-match-${componentType}__commentary--${commentaryType}`}>\n      {\n        isMediumLargeMin\n          ? <div className={`mls-o-match-summary__${commentaryType} mls-o-match-summary__${commentaryType}--${isHome ? \"away\" : \"home\"}`} />\n          : null\n      }\n      <div className={`mls-o-match-summary__commentary-icon`}>\n        {icon}\n      </div>\n      <div className={`mls-o-match-summary__goal mls-o-match-summary__goal--${isHome ? \"home\" : \"away\"}`}>\n        <div className={`mls-o-match-summary__minute`}>\n          {\n            minutes ? <div className={`mls-o-match-summary__regular-time`}>{minutes}</div> : null\n          }\n          {\n            extraMinutes\n              ? <div className={`mls-o-match-summary__extra-time`}>{`+${extraMinutes}`}</div>\n              : null\n          }\n        </div>\n        <div className={`mls-o-match-summary__club-logo`}>\n          <Picture src={clubLogoSrc} title={\"club logo\"} />\n        </div>\n        <div className={`mls-o-match-summary__players`}>\n          <div className={`mls-o-match-summary__goal-scorer`}>\n            {baseUrl && firstPlayerSlug ?\n              (<a alt={firstPlayerName} href={`${baseUrl}/players/${firstPlayerSlug}`}>{firstPlayerName}</a>)\n              : firstPlayerName}\n          </div>\n          {\n            secondPlayerName && baseUrl && secondPlayerSlug\n              ? (\n                <div className={`mls-o-match-summary__goal-assister`}>\n                  {`${thirdPlayerName ? `${t(\"summary_assists\")}` : `${t(\"summary_assist\")}`}: `}\n                  <a alt={secondPlayerName} href={`${baseUrl}/players/${secondPlayerSlug}`}>{secondPlayerName}</a>\n                  {`${thirdPlayerName ? `, ${thirdPlayerName}` : \"\"}`}\n                </div>\n              )\n              : secondPlayerName\n                ? (\n                  <div className={`mls-o-match-summary__goal-assister`}>\n                    {`${thirdPlayerName ? `${t(\"summary_assists\")}` : `${t(\"summary_assist\")}`}: ${secondPlayerName}${thirdPlayerName ? `, ${thirdPlayerName}` : \"\"}`}\n                  </div>\n                )\n                : null\n          }\n        </div>\n        {\n          video != null\n            ? (\n              <div\n                onClick={handleClick}\n                className={`mls-o-match-summary__watch`}>\n                <span className={`mls-o-match-summary__watch-link`}>\n                  <PlayCircleIcon />\n                </span>\n              </div>\n            ) : null\n        }\n      </div>\n    </div>\n  );\n}\n\n// eslint-disable-next-line no-func-assign\nSummaryGoal = React.memo(SummaryGoal);\n\nexport default SummaryGoal;\n","export { default } from './Goal';\n","import React from 'react';\nimport { componentTypes, useCommentaryData } from \"../../utils\";\n\nfunction MatchScoreBox() {\n  const { commentary, componentType = componentTypes.summary } = useCommentaryData();\n  const { awayScore, homeScore, scoreChange } = commentary || {};\n\n  return (\n    <div className={`mls-o-match-${componentType}__score-box`}>\n      <div className={`mls-o-match-${componentType}__score`}>\n        <span className={`mls-o-match-${componentType}__home-score ${scoreChange === \"home\" ? `mls-o-match-${componentType}__home-score--updated` : \"\"}`}>{homeScore}</span>\n        {\":\"}\n        <span className={`mls-o-match-${componentType}__away-score ${scoreChange === \"away\" ? `mls-o-match-${componentType}__away-score--updated` : \"\"}`}>{awayScore}</span>\n      </div>\n    </div>\n  );\n};\n\n// eslint-disable-next-line no-const-assign,no-func-assign\nMatchScoreBox = React.memo(MatchScoreBox);\n\nexport default MatchScoreBox;\n","export { default } from './MatchScoreBox';\n","import React from 'react';\nimport { componentTypes, useCommentaryData } from \"../../utils\";\nimport SummaryMiscGoal from \"./components/SummaryMiscGoal\";\nimport Featured from \"../Featured/Featured\";\n\nfunction MiscGoal() {\n  const { componentType = componentTypes.summary } = useCommentaryData();\n\n  return (\n    componentType === componentTypes.summary\n      ? <SummaryMiscGoal />\n      : <Featured />\n  );\n}\n\n// eslint-disable-next-line no-func-assign\nMiscGoal = React.memo(MiscGoal);\n\nexport default MiscGoal;\n","import React from 'react';\nimport Picture from \"../../../../../shared/components/Picture\";\nimport PlayCircleIcon from \"../../../../../shared/svg/PlayCircleIcon\";\nimport { formatMatchMinutes, useCommentaryData, getPlayerSlugByOptaId } from \"../../../../utils\";\nimport { useReactAppState } from \"../../../../../shared/containers/utils\";\n\nfunction SummaryMiscGoal() {\n  const { mediaQueries, urlList, isLeague, clubOptaId } = useReactAppState();\n  const { isMediumLargeMin } = mediaQueries || {};\n  const { commentary, clubLogoSrc, isHome, icon, commentaryType, toggleDialog, forgePlayers } = useCommentaryData();\n  const { first_player, minute_display, video, first_club } = commentary;\n  const [minutes, extraMinutes] = formatMatchMinutes(minute_display);\n  const { known_name: firstPlayerKnownName, last_name: firstPlayerLastName, first_name: firstPlayerFirstName } = first_player || {};\n  const { baseUrl } = urlList || {};\n\n  const firstPlayerName = firstPlayerKnownName\n    ? firstPlayerKnownName\n    : firstPlayerLastName && firstPlayerFirstName\n      ? `${firstPlayerFirstName.charAt(0)}. ${firstPlayerLastName}`\n      : firstPlayerLastName\n        ? firstPlayerLastName\n        : firstPlayerFirstName\n          ? firstPlayerFirstName : \"\";\n\n  const { opta_id: firstClubOptaId } = first_club || {};\n  const isCurrentClub_first = firstClubOptaId == clubOptaId;\n  let firstPlayerSlug;\n  if (isLeague || isCurrentClub_first) {\n    const { opta_id: firstPlayerOptaId } = first_player || {};\n    firstPlayerSlug = getPlayerSlugByOptaId({ forgeMatchPlayers: forgePlayers, playerOptaId: firstPlayerOptaId });\n  }\n\n  return (\n    <div className={`mls-o-match-summary__commentary mls-o-match-summary__commentary--${commentaryType}`}>\n      {\n        isMediumLargeMin\n          ? <div className={`mls-o-match-summary__${commentaryType} mls-o-match-summary__${commentaryType}--${isHome ? \"away\" : \"home\"}`} />\n          : null\n      }\n      <div className={`mls-o-match-summary__commentary-icon`}>\n        {icon}\n      </div>\n      <div className={`mls-o-match-summary__misc-goal mls-o-match-summary__misc-goal--${isHome ? \"home\" : \"away\"}`}>\n        <div className={`mls-o-match-summary__minute`}>\n          {\n            minutes ? <div className={`mls-o-match-summary__regular-time`}>{minutes}</div> : null\n          }\n          {\n            extraMinutes\n              ? <div className={`mls-o-match-summary__extra-time`}>{`+${extraMinutes}`}</div>\n              : null\n          }\n        </div>\n        <div className={`mls-o-match-summary__club-logo`}>\n          <Picture src={clubLogoSrc} title={\"club logo\"} />\n        </div>\n        <div className={`mls-o-match-summary__players`}>\n          <div className={`mls-o-match-summary__goal-scorer`}>\n            {baseUrl && firstPlayerSlug ?\n              (<a alt={firstPlayerName} href={`${baseUrl}/players/${firstPlayerSlug}`}>{firstPlayerName}</a>)\n              : firstPlayerName}\n            {` (OG)`}\n          </div>\n        </div>\n        {\n          video != null\n            ? (\n              <div\n                onClick={() => toggleDialog(video)}\n                className={`mls-o-match-summary__watch`}>\n                <span className={`mls-o-match-summary__watch-link`}>\n                  <PlayCircleIcon />\n                </span>\n              </div>\n            ) : null\n        }\n      </div>\n    </div>\n  );\n}\n\n// eslint-disable-next-line no-func-assign\nSummaryMiscGoal = React.memo(SummaryMiscGoal);\n\nexport default SummaryMiscGoal;\n","export { default } from './SummaryMiscGoal';\n","export { default } from './MiscGoal';\n","import React from 'react';\nimport { commentaryTypes, componentTypes, useCommentaryData } from \"../../utils\";\nimport SummaryPenaltyCard from './components/SummaryPenaltyCard';\nimport Detailed from '../Detailed';\nimport Featured from \"../Featured\";\n\nfunction PenaltyCard() {\n  const { componentType = componentTypes.summary, commentaryType } = useCommentaryData();\n\n  return (\n    componentType === componentTypes.summary\n      ? <SummaryPenaltyCard />\n      : commentaryType === commentaryTypes.yellowCard\n        ? <Detailed />\n        : <Featured />\n  );\n}\n\n// eslint-disable-next-line no-func-assign\nPenaltyCard = React.memo(PenaltyCard);\n\nexport default PenaltyCard;\n","import React from 'react';\nimport Picture from \"../../../../../shared/components/Picture\";\nimport { formatMatchMinutes, useCommentaryData, getPlayerSlugByOptaId } from \"../../../../utils\";\nimport { useReactAppState } from \"../../../../../shared/containers/utils\";\n\nfunction SummaryPenaltyCard() {\n  const { mediaQueries, urlList, isLeague, clubOptaId } = useReactAppState();\n  const { isMediumLargeMin } = mediaQueries || {};\n  const { commentary, clubLogoSrc, bookings, isHome, commentaryType, icon, forgePlayers } = useCommentaryData();\n  const { first_player, minute_display, opta_id, first_club } = commentary;\n  const [minutes, extraMinutes] = formatMatchMinutes(minute_display);\n  const foundPenalty = bookings && bookings.length > 0 ? bookings.find(booking => booking.opta_id === opta_id) : null;\n  const { reason } = foundPenalty || {};\n  const { baseUrl } = urlList || {};\n\n  const { known_name: firstPlayerKnownName, last_name: firstPlayerLastName, first_name: firstPlayerFirstName } = first_player || {};\n\n  const firstPlayerName = firstPlayerKnownName\n    ? firstPlayerKnownName\n    : firstPlayerLastName && firstPlayerFirstName\n      ? `${firstPlayerFirstName.charAt(0)}. ${firstPlayerLastName}`\n      : firstPlayerLastName\n        ? firstPlayerLastName\n        : firstPlayerFirstName\n          ? firstPlayerFirstName : \"\";\n\n  const { opta_id: firstClubOptaId } = first_club || {};\n  const isCurrentClub_first = firstClubOptaId == clubOptaId;\n  let firstPlayerSlug;\n  if (isLeague || isCurrentClub_first) {\n    const { opta_id: firstPlayerOptaId } = first_player || {};\n    firstPlayerSlug = getPlayerSlugByOptaId({ forgeMatchPlayers: forgePlayers, playerOptaId: firstPlayerOptaId });\n  }\n\n  return (\n    <div className={`mls-o-match-summary__commentary mls-o-match-summary__commentary--${commentaryType}`}>\n      {\n        isMediumLargeMin\n          ? <div className={`mls-o-match-summary__${commentaryType} mls-o-match-summary__${commentaryType}--${isHome ? \"away\" : \"home\"}`} />\n          : null\n      }\n      <div className={`mls-o-match-summary__commentary-icon`}>\n        {icon}\n      </div>\n      <div className={`mls-o-match-summary__${commentaryType} mls-o-match-summary__${commentaryType}--${isHome ? \"home\" : \"away\"}`}>\n        <div className={`mls-o-match-summary__minute`}>\n          {\n            minutes ? <div className={`mls-o-match-summary__regular-time`}>{minutes}</div> : null\n          }\n          {\n            extraMinutes\n              ? <div className={`mls-o-match-summary__extra-time`}>{`+${extraMinutes}`}</div>\n              : null\n          }\n        </div>\n        <div className={`mls-o-match-summary__club-logo`}>\n          <Picture src={clubLogoSrc} title={\"club logo\"} />\n        </div>\n        <div className={`mls-o-match-summary__players`}>\n          <div className={`mls-o-match-summary__penalty-receiver`}>\n            {baseUrl && firstPlayerSlug ?\n              (<a alt={firstPlayerName} href={`${baseUrl}/players/${firstPlayerSlug}`}>{firstPlayerName}</a>)\n              : firstPlayerName}\n          </div>\n          {\n            reason ? (\n              <div className={`mls-o-match-summary__reason`}>\n                {reason}\n              </div>\n            ) : null\n          }\n        </div>\n      </div>\n    </div>\n  );\n}\n\n// eslint-disable-next-line no-func-assign\nSummaryPenaltyCard = React.memo(SummaryPenaltyCard);\n\nexport default SummaryPenaltyCard;\n","export { default } from './SummaryPenaltyCard';\n","export { default } from './PenaltyCard';\n","import React from 'react';\nimport { componentTypes, useCommentaryData } from \"../../utils\";\nimport SummaryPenaltyGoal from \"./components/SummaryPenaltyGoal\";\nimport Featured from \"../Featured/Featured\";\n\nfunction PenaltyGoal() {\n  const { componentType = componentTypes.summary } = useCommentaryData();\n\n  return (\n    componentType === componentTypes.summary\n      ? <SummaryPenaltyGoal />\n      : <Featured />\n  );\n}\n\n// eslint-disable-next-line no-func-assign\nPenaltyGoal = React.memo(PenaltyGoal);\n\nexport default PenaltyGoal;\n","import React from 'react';\nimport Picture from \"../../../../../shared/components/Picture\";\nimport PlayCircleIcon from \"../../../../../shared/svg/PlayCircleIcon\";\nimport { formatMatchMinutes, useCommentaryData } from \"../../../../utils\";\nimport { useReactAppState } from \"../../../../../shared/containers/utils\";\n\nfunction SummaryPenaltyGoal() {\n  const { mediaQueries } = useReactAppState();\n  const { isMediumLargeMin } = mediaQueries || {};\n  const { commentary, clubLogoSrc, isHome, icon, commentaryType, toggleDialog } = useCommentaryData();\n  const { first_player, minute_display, video } = commentary;\n  const [minutes, extraMinutes] = formatMatchMinutes(minute_display);\n  const { known_name: firstPlayerKnownName, last_name: firstPlayerLastName, first_name: firstPlayerFirstName } = first_player || {};\n\n  const firstPlayerName = firstPlayerKnownName\n    ? firstPlayerKnownName\n    : firstPlayerLastName && firstPlayerFirstName\n      ? `${firstPlayerFirstName.charAt(0)}. ${firstPlayerLastName}`\n      : firstPlayerLastName\n        ? firstPlayerLastName\n        : firstPlayerFirstName\n          ? firstPlayerFirstName : \"\";\n\n  return (\n    <div className={`mls-o-match-summary__commentary mls-o-match-summary__commentary--${commentaryType}`}>\n      {\n        isMediumLargeMin\n          ? <div className={`mls-o-match-summary__${commentaryType} mls-o-match-summary__${commentaryType}--${isHome ? \"away\" : \"home\"}`} />\n          : null\n      }\n      <div className={`mls-o-match-summary__commentary-icon`}>\n        {icon}\n      </div>\n      <div className={`mls-o-match-summary__penalty-goal mls-o-match-summary__penalty-goal--${isHome ? \"home\" : \"away\"}`}>\n        <div className={`mls-o-match-summary__minute`}>\n          {\n            minutes ? <div className={`mls-o-match-summary__regular-time`}>{minutes}</div> : null\n          }\n          {\n            extraMinutes\n              ? <div className={`mls-o-match-summary__extra-time`}>{`+${extraMinutes}`}</div>\n              : null\n          }\n        </div>\n        <div className={`mls-o-match-summary__club-logo`}>\n          <Picture src={clubLogoSrc} title={\"club logo\"} />\n        </div>\n        <div className={`mls-o-match-summary__players`}>\n          <div className={`mls-o-match-summary__goal-scorer`}>\n            {`${firstPlayerName} (PK)`}\n          </div>\n        </div>\n        {\n          video != null\n            ? (\n              <div\n                onClick={() => toggleDialog(video)}\n                className={`mls-o-match-summary__watch`}>\n                <span className={`mls-o-match-summary__watch-link`}>\n                  <PlayCircleIcon />\n                </span>\n              </div>\n            ) : null\n        }\n      </div>\n    </div>\n  );\n}\n\n// eslint-disable-next-line no-func-assign\nSummaryPenaltyGoal = React.memo(SummaryPenaltyGoal);\n\nexport default SummaryPenaltyGoal;\n","export { default } from './SummaryPenaltyGoal';\n","export { default } from './PenaltyGoal';\n","import React from 'react';\nimport { formatMatchMinutes, useCommentaryData } from \"../../utils\";\n\nfunction Standard() {\n  const { commentaryType, commentary } = useCommentaryData();\n  const { minute_display, comment } = commentary || {};\n  const [minutes, extraMinutes] = formatMatchMinutes(minute_display);\n\n  return (\n    <div className={`mls-o-match-feed__commentary mls-o-match-feed__commentary--${commentaryType}`}>\n      <div className={`mls-o-match-feed__container ${minutes != null ? \"\" : \"mls-o-match-feed__container--empty-minute\"}`}>\n        <div className={`mls-o-match-feed__minute`}>\n          {\n            minutes != null ? <div className={`mls-o-match-summary__regular-time`}>{minutes}</div> : null\n          }\n          {\n            extraMinutes != null\n              ? <div className={`mls-o-match-summary__extra-time`}>{`+${extraMinutes}`}</div>\n              : null\n          }\n        </div>\n        <div className={`mls-o-match-feed__comment`}>{comment}</div>\n      </div>\n    </div>\n  );\n}\n\n// eslint-disable-next-line no-func-assign\nStandard = React.memo(Standard);\n\nexport default Standard;\n","import React from 'react';\nimport { componentTypes, useCommentaryData } from \"../../utils\";\nimport SummarySubstitution from './components/SummarySubstitution';\nimport FeedSubstitution from './components/FeedSubstitution';\n\nfunction Substitution() {\n  const { componentType = componentTypes.summary } = useCommentaryData();\n\n  return (\n    componentType === componentTypes.summary\n      ? <SummarySubstitution />\n      : <FeedSubstitution />\n  );\n}\n\n// eslint-disable-next-line no-func-assign\nSubstitution = React.memo(Substitution);\n\nexport default Substitution;\n","import React from 'react';\nimport Picture from \"../../../../../shared/components/Picture\";\nimport { commentaryTypes, formatMatchMinutes, useCommentaryData } from \"../../../../utils\";\nimport TrendingArrowIcon from \"../../../../../shared/svg/TrendingArrowIcon\";\n\nfunction FeedSubstitution() {\n  const { commentary, clubLogoSrc, commentaryType, icon, shortName } = useCommentaryData();\n\n  const { first_player, second_player, minute, second, minute_display, comment } = commentary;\n  const [minutes, extraMinutes] = formatMatchMinutes(minute_display);\n  const { known_name: firstPlayerKnownName, last_name: firstPlayerLastName, first_name: firstPlayerFirstName } = first_player || {};\n  const { known_name: secondPlayerKnownName, last_name: secondPlayerLastName, first_name: secondPlayerFirstName } = second_player || {};\n\n  const firstPlayerName = firstPlayerKnownName\n    ? firstPlayerKnownName\n    : firstPlayerLastName && firstPlayerFirstName\n      ? `${firstPlayerFirstName.charAt(0)}. ${firstPlayerLastName}`\n      : firstPlayerLastName\n        ? firstPlayerLastName\n        : firstPlayerFirstName\n          ? firstPlayerFirstName : \"\";\n\n  const secondPlayerName = secondPlayerKnownName\n    ? secondPlayerKnownName\n    : secondPlayerLastName && secondPlayerFirstName\n      ? `${secondPlayerFirstName.charAt(0)}. ${secondPlayerLastName}`\n      : secondPlayerLastName\n        ? secondPlayerLastName\n        : secondPlayerFirstName\n          ? secondPlayerFirstName : \"\";\n\n  return (\n    <div className={`mls-o-match-feed__commentary mls-o-match-feed__commentary--${commentaryType}`}>\n      <div className={`mls-o-match-feed__commentary-icon`}>\n        {icon}\n      </div>\n      <div className={`mls-o-match-feed__container`}>\n        <div className={`mls-o-match-feed__minute`}>\n          {\n            minute === 45 && second === 0\n              ? \"HT\"\n              : (\n                <>\n                  {\n                    minutes ? <div className={`mls-o-match-feed__regular-time`}>{minutes}</div> : null\n                  }\n                  {\n                    extraMinutes\n                      ? <div className={`mls-o-match-feed__extra-time`}>{`+${extraMinutes}`}</div>\n                      : null\n                  }\n                </>\n              )\n          }\n        </div>\n        <div className={`mls-o-match-feed__club-logo`}>\n          <Picture src={clubLogoSrc != null ? clubLogoSrc : \"/assets/images/Fallbacklogo-grey.png\"} title={shortName} />\n        </div>\n        <div className={`mls-o-match-feed__players`}>\n          {\n            commentaryType === commentaryTypes.substitution\n              ? (\n                <div className={`mls-o-match-feed__sub-in`}>\n                  <TrendingArrowIcon direction={\"up\"} fill={\"#5ece8d\"} size={\"x-small\"} />\n                  <div className={`mls-o-match-feed__player`}>{firstPlayerName}</div>\n                </div>\n              ) : null\n          }\n          <div className={`mls-o-match-feed__sub-out`}>\n            <TrendingArrowIcon direction={\"down\"} fill={\"#d84142\"} size={\"x-small\"} />\n            <div className={`mls-o-match-feed__player`}>{commentaryType === commentaryTypes.substitution ? secondPlayerName : firstPlayerName}</div>\n          </div>\n          {\n            commentaryType === commentaryTypes.playerRetired\n              ? <div className={\"mls-o-match-feed\"}>{comment}</div>\n              : null\n          }\n        </div>\n      </div>\n    </div>\n  );\n}\n\n// eslint-disable-next-line no-func-assign\nFeedSubstitution = React.memo(FeedSubstitution);\n\nexport default FeedSubstitution;\n","export { default } from './FeedSubstitution';\n","import React from 'react';\nimport Picture from \"../../../../../shared/components/Picture\";\nimport { formatMatchMinutes, useCommentaryData, getPlayerSlugByOptaId } from \"../../../../utils\";\nimport TrendingArrowIcon from \"../../../../../shared/svg/TrendingArrowIcon\";\nimport { useReactAppState } from \"../../../../../shared/containers/utils\";\n\nfunction SummarySubstitution() {\n  const { mediaQueries, urlList, isLeague, clubOptaId } = useReactAppState();\n  const { isMediumLargeMin } = mediaQueries || {};\n  const { commentary, clubLogoSrc, isHome, icon, forgePlayers } = useCommentaryData();\n  const { baseUrl } = urlList || {};\n\n  const { first_player, second_player, minute, second, minute_display, commentaryType, first_club, second_club } = commentary;\n  const [minutes, extraMinutes] = formatMatchMinutes(minute_display);\n  const { known_name: firstPlayerKnownName, last_name: firstPlayerLastName, first_name: firstPlayerFirstName } = first_player || {};\n  const { known_name: secondPlayerKnownName, last_name: secondPlayerLastName, first_name: secondPlayerFirstName } = second_player || {};\n\n  const firstPlayerName = firstPlayerKnownName\n    ? firstPlayerKnownName\n    : firstPlayerLastName && firstPlayerFirstName\n      ? `${firstPlayerFirstName.charAt(0)}. ${firstPlayerLastName}`\n      : firstPlayerLastName\n        ? firstPlayerLastName\n        : firstPlayerFirstName\n          ? firstPlayerFirstName : \"\";\n\n  const secondPlayerName = secondPlayerKnownName\n    ? secondPlayerKnownName\n    : secondPlayerLastName && secondPlayerFirstName\n      ? `${secondPlayerFirstName.charAt(0)}. ${secondPlayerLastName}`\n      : secondPlayerLastName\n        ? secondPlayerLastName\n        : secondPlayerFirstName\n          ? secondPlayerFirstName : \"\";\n\n  const { opta_id: firstClubOptaId } = first_club || {};\n  const isCurrentClub_first = firstClubOptaId == clubOptaId;\n  let firstPlayerSlug;\n  if (isLeague || isCurrentClub_first) {\n    const { opta_id: firstPlayerOptaId } = first_player || {};\n    firstPlayerSlug = getPlayerSlugByOptaId({ forgeMatchPlayers: forgePlayers, playerOptaId: firstPlayerOptaId });\n  }\n\n  const { opta_id: secondClubOptaId } = second_club || {};\n  const isCurrentClub_second = secondClubOptaId == clubOptaId;\n  let secondPlayerSlug;\n  if (isLeague || isCurrentClub_second) {\n    const { opta_id: secondPlayerOptaId } = second_player || {};\n    secondPlayerSlug = getPlayerSlugByOptaId({ forgeMatchPlayers: forgePlayers, playerOptaId: secondPlayerOptaId });\n  }\n\n  return (\n    <div className={`mls-o-match-summary__commentary mls-o-match-summary__commentary--${commentaryType}`}>\n      {\n        isMediumLargeMin\n          ? <div className={`mls-o-match-summary__${commentaryType} mls-o-match-summary__${commentaryType}--${isHome ? \"away\" : \"home\"}`} />\n          : null\n      }\n      <div className={`mls-o-match-summary__commentary-icon`}>\n        {icon}\n      </div>\n      <div className={`mls-o-match-summary__substitution mls-o-match-summary__substitution--${isHome ? \"home\" : \"away\"}`}>\n        <div className={`mls-o-match-summary__minute`}>\n          {\n            minute === 45 && second === 0\n              ? \"HT\"\n              : (\n                <>\n                  {\n                    minutes ? <div className={`mls-o-match-summary__regular-time`}>{minutes}</div> : null\n                  }\n                  {\n                    extraMinutes\n                      ? <div className={`mls-o-match-summary__extra-time`}>{`+${extraMinutes}`}</div>\n                      : null\n                  }\n                </>\n              )\n          }\n        </div>\n        <div className={`mls-o-match-summary__club-logo`}>\n          <Picture src={clubLogoSrc} title={\"club logo\"} />\n        </div>\n        <div className={`mls-o-match-summary__players`}>\n          <div className={`mls-o-match-summary__sub-in`}>\n            <TrendingArrowIcon direction={\"up\"} fill={\"#5ece8d\"} size={\"x-small\"} />\n            <div className={`mls-o-match-summary__player`}>\n              {baseUrl && firstPlayerSlug ?\n                (<a alt={firstPlayerName} href={`${baseUrl}/players/${firstPlayerSlug}`}>{firstPlayerName}</a>)\n                : firstPlayerName}\n            </div>\n          </div>\n          <div className={`mls-o-match-summary__sub-out`}>\n            <TrendingArrowIcon direction={\"down\"} fill={\"#d84142\"} size={\"x-small\"} />\n            <div className={`mls-o-match-summary__player`}>\n              {baseUrl && secondPlayerSlug ?\n                (<a alt={secondPlayerName} href={`${baseUrl}/players/${secondPlayerSlug}`}>{secondPlayerName}</a>)\n                : secondPlayerName}\n            </div>\n          </div>\n        </div>\n      </div>\n    </div>\n  );\n}\n\n// eslint-disable-next-line no-func-assign\nSummarySubstitution = React.memo(SummarySubstitution);\n\nexport default SummarySubstitution;\n","export { default } from './SummarySubstitution';\n","export { default } from './Substitution';\n","import React, { useEffect, useRef } from 'react';\nimport { useCommentaryData } from \"../../utils\";\n\nfunction Timer() {\n  const { icon, commentaryType, commentary, title, setLastCommentary } = useCommentaryData();\n  const { comment, isLastTimingCommentary } = commentary || {};\n\n  const iconRef = useRef();\n\n  useEffect(() => {\n    if (iconRef?.current != null && isLastTimingCommentary) {\n      setLastCommentary(iconRef.current);\n    }\n  }, [iconRef]);\n\n  return (\n    <div className={`mls-o-match-feed__commentary mls-o-match-feed__commentary--${commentaryType}`}>\n      <div ref={iconRef} className={`mls-o-match-feed__commentary-icon`}>\n        {icon}\n      </div>\n      <div className={`mls-o-match-feed__container`}>\n        <div className={`mls-o-match-feed__title`}>{title}</div>\n        <div className={`mls-o-match-feed__comment`}>{comment}</div>\n      </div>\n    </div>\n  );\n}\n\n// eslint-disable-next-line no-func-assign\nTimer = React.memo(Timer);\n\nexport default Timer;\n","import React, { createContext, useContext } from \"react\";\nimport Goal from \"./components/Goal\";\nimport Substitution from \"./components/Substitution\";\nimport MatchScoreBox from \"./components/MatchScoreBox\";\nimport MiscGoal from \"./components/MiscGoal\";\nimport PenaltyGoal from \"./components/PenaltyGoal\";\nimport PenaltyCard from \"./components/PenaltyCard\";\n\nimport { svgSizes } from \"../shared/utils\";\nimport { periodTypes } from \"../mls-match-list/utils\";\nimport PenaltyCardIcon from \"../shared/svg/PenaltyCardIcon\";\nimport SubstitutionIcon from \"../shared/svg/SubstitutionIcon\";\nimport SecondYellowCardIcon from \"../shared/svg/SecondYellowCardIcon\";\nimport TimerIcon from \"../shared/svg/TimerIcon/TimerIcon\";\nimport Timer from \"./components/Timer/Timer\";\nimport Standard from \"./components/Standard/Standard\";\nimport Detailed from \"./components/Detailed/Detailed\";\nimport InjuryIcon from \"../shared/svg/InjuryIcon/InjuryIcon\";\nimport SaveIcon from \"../shared/svg/SaveIcon/SaveIcon\";\nimport MissIcon from \"../shared/svg/MissIcon/MissIcon\";\nimport Featured from \"./components/Featured/Featured\";\nimport PenaltyMissIcon from \"../shared/svg/PenaltyMissIcon/PenaltyMissIcon\";\nimport PenaltyIcon from \"../shared/svg/PenaltyIcon/PenaltyIcon\";\nimport OfficialIcon from \"../shared/svg/OfficialIcon\";\nimport CrossbarIcon from \"../shared/svg/CrossbarIcon/CrossbarIcon\";\n\nexport const CommentaryContext = createContext();\nCommentaryContext.displayName = 'Commentary';\n\nexport function useCommentaryData() {\n  const context = useContext(CommentaryContext);\n  if (context === undefined) {\n    throw new Error('useCommentaryData must be used within a <Commentary />');\n  }\n  return context;\n}\n\nexport const componentTypes = {\n  feed: \"feed\",\n  summary: \"summary\"\n};\n\nexport const commentaryTypes = {\n  redCard: 'red-card',\n  yellowCard: 'yellow-card',\n  goal: 'goal',\n  substitution: 'substitution',\n  playerRetired: 'player-retired',\n  ownGoal: 'own-goal',\n  shootOut: 'shoot-out',\n  penaltyGoal: 'penalty-goal',\n  secondYellowCard: \"secondyellow-card\",\n  standard: \"standard\",\n  detailed: \"detailed\",\n  featured: \"featured\",\n  timing: \"timing\"\n};\n\nexport const matchEventTypes = {\n  redCard: 'red card',\n  yellowCard: 'yellow card',\n  secondYellowCard: \"secondyellow card\",\n  goal: 'goal',\n  substitution: 'substitution',\n  ownGoal: 'own goal',\n  shootOut: 'shoot-out',\n  penaltyGoal: 'penalty goal',\n  endOfMatch: 'end 14',\n  endOfPks: 'end 5',\n  endOfXtraTimeSecondHalf: \"end 4\",\n  endOfXtraTimeFirstHalf: \"end 3\",\n  endOfPeriod2: \"end 2\",\n  endOfPeriod1: \"end 1\",\n  startOfPeriod: \"start\",\n  lineup: \"lineup\",\n  startDelay: \"start delay\",\n  endDelay: \"end delay\",\n  postponed: \"postponed\",\n  freeKickLost: \"free kick lost\",\n  freeKickWon: \"free kick won\",\n  attemptBlocked: \"attempt blocked\",\n  attemptSaved: \"attempt saved\",\n  miss: \"miss\",\n  post: \"post\",\n  corner: \"corner\",\n  offside: \"offside\",\n  penaltyWon: \"penalty won\",\n  penaltyLost: \"penalty lost\",\n  penaltyMiss: \"penalty miss\",\n  penaltySaved: \"penalty saved\",\n  playerRetired: \"player retired\",\n  contentiousRefereeDecisions: \"contentious referee decisions\",\n  varCancelledGoal: \"VAR cancelled goal\"\n};\n\nexport const outcomeTypes = {\n  scored: \"Scored\"\n};\n\nexport function getCommentaryType({ type, period, componentType = componentTypes.summary, t }) {\n  const standard = {\n    commentaryType: commentaryTypes.standard,\n    component: <Standard />,\n    icon: null,\n    title: null\n  };\n\n  const detailed = {\n    commentaryType: commentaryTypes.detailed,\n    component: <Detailed />,\n  };\n\n  const featured = {\n    commentaryType: commentaryTypes.featured,\n    component: <Featured />\n  };\n\n  const timing = {\n    commentaryType: commentaryTypes.timing,\n    component: <Timer />,\n    icon: <TimerIcon size={svgSizes.medium} />\n  };\n\n  switch (type) {\n    case matchEventTypes.redCard: {\n      return {\n        title: t(\"red_card\"),\n        commentaryType: commentaryTypes.redCard,\n        component: <PenaltyCard />,\n        icon: <PenaltyCardIcon fill=\"#d0021b\" size={componentType === componentTypes.summary ? svgSizes.xSmall : svgSizes.medium} />\n      };\n    }\n    case matchEventTypes.yellowCard: {\n      return {\n        title: t(\"yellow_card\"),\n        commentaryType: commentaryTypes.yellowCard,\n        component: <PenaltyCard />,\n        icon: <PenaltyCardIcon fill=\"#F6CC08\" size={componentType === componentTypes.summary ? svgSizes.xSmall : svgSizes.medium} />\n      };\n    }\n    case matchEventTypes.goal: {\n      return {\n        title: t(\"goal\"),\n        commentaryType: commentaryTypes.goal,\n        component: <Goal />,\n        icon: <MatchScoreBox />\n      };\n    }\n    case matchEventTypes.substitution: {\n      return {\n        title: t(\"substitution\"),\n        commentaryType: commentaryTypes.substitution,\n        component: <Substitution />,\n        icon: <SubstitutionIcon size={svgSizes.xSmall} />\n      };\n    }\n\n    case matchEventTypes.playerRetired: {\n      return {\n        commentaryType: commentaryTypes.playerRetired,\n        title: t(\"injury\"),\n        icon: <InjuryIcon />,\n        component: <Substitution />,\n      };\n    }\n\n    case matchEventTypes.ownGoal: {\n      return {\n        title: t(\"own_goal\"),\n        commentaryType: commentaryTypes.ownGoal,\n        component: <MiscGoal />,\n        icon: <MatchScoreBox />\n      };\n    }\n    case matchEventTypes.penaltyGoal: {\n      return {\n        title: t(\"penalty_goal\"),\n        commentaryType: commentaryTypes.penaltyGoal,\n        component: <PenaltyGoal />,\n        icon: <MatchScoreBox />\n      };\n    }\n    case matchEventTypes.secondYellowCard: {\n      return {\n        title: t(\"second_yellow\"),\n        commentaryType: commentaryTypes.secondYellowCard,\n        component: <PenaltyCard />,\n        icon: <SecondYellowCardIcon size={svgSizes.xSmall} />\n      };\n    }\n\n    //featured Events\n    case matchEventTypes.penaltyMiss: {\n      return {\n        ...featured,\n        icon: <PenaltyMissIcon size={componentType === componentTypes.summary ? svgSizes.xSmall : svgSizes.medium} />,\n        title: t(\"penalty_missed\")\n      };\n    }\n\n    case matchEventTypes.penaltySaved: {\n      return {\n        ...featured,\n        icon: <PenaltyMissIcon size={componentType === componentTypes.summary ? svgSizes.xSmall : svgSizes.medium} />,\n        title: t(\"penalty_saved\")\n      };\n    }\n\n    case matchEventTypes.penaltyLost:\n    case matchEventTypes.penaltyWon: {\n      return {\n        ...featured,\n        icon: <PenaltyIcon size={componentType === componentTypes.summary ? svgSizes.xSmall : svgSizes.medium} />,\n        title: t(\"penalty\")\n      };\n    }\n\n    case matchEventTypes.contentiousRefereeDecisions:\n    case matchEventTypes.varCancelledGoal: {\n      return {\n        ...featured,\n        icon: <OfficialIcon size={componentType === componentTypes.summary ? svgSizes.xSmall : svgSizes.medium} />,\n        title: t(\"var_decision\")\n      };\n    }\n\n    //detailed Events\n    case matchEventTypes.attemptSaved: {\n      return {\n        icon: <SaveIcon />,\n        ...detailed,\n        title: t(\"attempt_saved\")\n      };\n    }\n\n    case matchEventTypes.miss: {\n      return {\n        icon: <MissIcon />,\n        ...detailed,\n        title: t(\"attempt_missed\")\n      };\n    }\n\n    case matchEventTypes.post: {\n      return {\n        ...detailed,\n        icon: <CrossbarIcon />,\n        title: `${t(\"post\")}!`\n      };\n    }\n\n    //Standard Events\n    case matchEventTypes.attemptBlocked:\n    case matchEventTypes.offside:\n    case matchEventTypes.freeKickLost:\n    case matchEventTypes.freeKickWon:\n    case matchEventTypes.corner:\n    case matchEventTypes.lineup: {\n      return standard;\n    }\n\n    // Timing Events\n    case matchEventTypes.startOfPeriod: {\n      let title;\n      if (period === periodTypes.FirstHalf || period === periodTypes.SecondHalf) {\n        title = t(\"kick_off\");\n      }\n\n      if (period === periodTypes.ExtraFirstHalf || period === periodTypes.ExtraSecondHalf) {\n        title = t(\"extra_time_kickoff\");\n      }\n\n      if (period === periodTypes.ShootOut) {\n        title = t(\"penalty_shootout\");\n      }\n\n      return {\n        ...timing,\n        title,\n      };\n    }\n\n    case matchEventTypes.endOfPeriod1: {\n      return {\n        ...timing,\n        title: t(\"half_time\"),\n      };\n    }\n    case matchEventTypes.endOfPeriod2: {\n      return {\n        ...timing,\n        title: t(\"end_of_second_half\"),\n      };\n    }\n    case matchEventTypes.endOfXtraTimeFirstHalf: {\n      return {\n        ...timing,\n        title: t(\"first_half_extra_time_end\"),\n      };\n    }\n    case matchEventTypes.endOfXtraTimeSecondHalf: {\n      return {\n        ...timing,\n        title: t(\"second_half_extra_time_end\"),\n      };\n    }\n    case matchEventTypes.startDelay: {\n      return {\n        ...timing,\n        title: t(\"match_delay\"),\n      };\n    }\n    case matchEventTypes.endDelay: {\n      return {\n        ...timing,\n        title: t(\"end_of_match_delay\"),\n      };\n    }\n    case matchEventTypes.postponed: {\n      return {\n        ...timing,\n        title: t(\"match_postponed\"),\n      };\n    }\n    case matchEventTypes.endOfMatch: {\n      return {\n        ...timing,\n        title: t(\"full_time\"),\n      };\n    }\n    case matchEventTypes.endOfPks: {\n      return {\n        ...timing,\n        title: t(\"end_of_shootout\"),\n      };\n    }\n\n    default: {\n      return {\n        component: null,\n        icon: null,\n        title: null,\n        commentaryType: null,\n      };\n    }\n  }\n}\n\nexport function assignClubToCommentary({ home, away, optaId, type }) {\n  const { optaId: homeOptaId } = home || {};\n  if (type === \"own goal\") {\n    return optaId === homeOptaId ? { club: away, opposingClub: home, isHome: true } : { club: home, opposingClub: away, isHome: false };\n  }\n\n  return optaId === homeOptaId ? { club: home, opposingClub: away, isHome: true } : { club: away, opposingClub: home, isHome: false };\n}\n\nexport function formatSummary({ summary, home, away, videoList }) {\n  if (!summary || summary.length === 0) {\n    return null;\n  }\n\n  let homeScore = 0;\n  let awayScore = 0;\n\n  const formattedSummary = [];\n\n  for (let i = 0; i < summary.length; i++) {\n    const current = summary[i];\n    const club = current?.first_club || current?.club;\n\n    if (!club) {\n      continue;\n    }\n\n    const matchedVideo = videoList != null && videoList.length > 0\n      ? videoList.find(video => {\n        const { fields } = video || {};\n        const { optaEventId } = fields || {};\n\n        return optaEventId === current?.opta_id;\n      }) : null;\n\n    if (current.type === matchEventTypes.goal || current.type === matchEventTypes.penaltyGoal) {\n      if (current.period === periodTypes.ShootOut) {\n        continue;\n      }\n\n      if (club.opta_id === home.optaId) {\n        homeScore = homeScore + 1;\n      }\n      else {\n        awayScore = awayScore + 1;\n      }\n    }\n\n    if (current.type === \"own goal\") {\n      if (club.opta_id === home.optaId) {\n        awayScore = awayScore + 1;\n      }\n      else {\n        homeScore = homeScore + 1;\n      }\n    }\n\n    formattedSummary.push({\n      ...current,\n      homeScore,\n      awayScore,\n      video: matchedVideo != null ? matchedVideo : null\n    });\n  }\n\n  return formattedSummary;\n}\n\nexport function formatMatchMinutes(minuteDisplay) {\n  if (minuteDisplay == null) {\n    return [null, null];\n  }\n  return minuteDisplay.split(\"+\");\n}\n\nexport function formatPenaltyKicks({ penaltyKicks, home, away }) {\n  if (!penaltyKicks || penaltyKicks.length === 0 || !home || !away) {\n    return null;\n  }\n\n  return penaltyKicks.reduce((total, current) => {\n    const isHome = current?.club?.opta_id === home.optaId;\n\n    if (isHome) {\n      if (total.home && total.home.length > 0) {\n        total.home = [...total.home, current];\n      }\n      else {\n        total.home = [current];\n      }\n    }\n    else {\n      if (total.away && total.away.length > 0) {\n        total.away = [...total.away, current];\n      }\n      else {\n        total.away = [current];\n      }\n    }\n\n    return total;\n  }, {});\n}\n\nexport const getPlayerSlugByOptaId = ({ forgeMatchPlayers, playerOptaId }) => {\n  if (!forgeMatchPlayers || !playerOptaId) {\n    return null;\n  }\n  if ((!forgeMatchPlayers.awayPlayers || forgeMatchPlayers.awayPlayers.length === 0) &&\n    (!forgeMatchPlayers.homePlayers || forgeMatchPlayers.homePlayers.length === 0)) {\n    return null;\n  }\n\n  const awayPlayers = forgeMatchPlayers.awayPlayers;\n  const homePlayers = forgeMatchPlayers.homePlayers;\n\n  const playerSlug_away = awayPlayers?.find(matchPlayerAway =>\n    matchPlayerAway && matchPlayerAway.optaId && matchPlayerAway.optaId != \"\" && parseInt(matchPlayerAway.optaId) === playerOptaId\n  );\n  if (playerSlug_away) {\n    return playerSlug_away.playerSlug;\n  }\n\n  const playerSlug_home = homePlayers?.find(matchPlayerHome =>\n    matchPlayerHome && matchPlayerHome.optaId && matchPlayerHome.optaId != \"\" && parseInt(matchPlayerHome.optaId) === playerOptaId\n  );\n  if (playerSlug_home) {\n    return playerSlug_home.playerSlug;\n  }\n\n  return \"\";\n};\n","import React, { forwardRef, useImperativeHandle } from 'react';\nimport ReactDOM from 'react-dom';\nimport useIsFocusVisible from \"../../hooks/useIsFocusVisible\";\nimport useEventCallback from \"../../hooks/useEventCallback\";\nimport useForkRef from \"../../hooks/useForkRef\";\n\nconst ButtonBase = forwardRef(function ButtonBase(props, ref) {\n  const {\n    action,\n    buttonRef: buttonRefProp,\n    children,\n    className,\n    component = 'button',\n    disabled = false,\n    onBlur,\n    onClick,\n    onFocus,\n    onFocusVisible,\n    onKeyDown,\n    onKeyUp,\n    onMouseDown,\n    onMouseLeave,\n    onMouseUp,\n    onTouchEnd,\n    onTouchMove,\n    onTouchStart,\n    onDragLeave,\n    tabIndex = 0,\n    type = 'button',\n    ...other\n  } = props;\n\n  const buttonRef = React.useRef(null);\n  function getButtonNode() {\n    // eslint-disable-next-line react/no-find-dom-node\n    return ReactDOM.findDOMNode(buttonRef.current);\n  }\n\n  const [focusVisible, setFocusVisible] = React.useState(false);\n  if (disabled && focusVisible) {\n    setFocusVisible(false);\n  }\n  const { isFocusVisible, ref: focusVisibleRef } = useIsFocusVisible();\n\n  useImperativeHandle(\n    action,\n    () => ({\n      focusVisible: () => {\n        setFocusVisible(true);\n        buttonRef.current?.focus();\n      },\n    }),\n    [],\n  );\n\n  const handleFocus = useEventCallback((event) => {\n    if (!buttonRef.current) {\n      buttonRef.current = event.currentTarget;\n    }\n\n    if (isFocusVisible(event)) {\n      setFocusVisible(true);\n\n      if (onFocusVisible) {\n        onFocusVisible(event);\n      }\n    }\n\n    if (onFocus) {\n      onFocus(event);\n    }\n  });\n\n  const isNonNativeButton = () => {\n    const button = getButtonNode();\n    return component && component !== 'button' && !(button.tagName === 'A' && button.href);\n  };\n\n  const handleKeyDown = useEventCallback((event) => {\n    if (event.target === event.currentTarget && isNonNativeButton() && event.key === ' ') {\n      event.preventDefault();\n    }\n\n    if (onKeyDown) {\n      onKeyDown(event);\n    }\n\n    // Keyboard accessibility for non interactive elements\n    if (\n      event.target === event.currentTarget &&\n      isNonNativeButton() &&\n      event.key === 'Enter' &&\n      !disabled\n    ) {\n      event.preventDefault();\n      if (onClick) {\n        onClick(event);\n      }\n    }\n  });\n\n  const handleKeyUp = useEventCallback((event) => {\n    if (onKeyUp) {\n      onKeyUp(event);\n    }\n\n    if (\n      onClick &&\n      event.target === event.currentTarget &&\n      isNonNativeButton() &&\n      event.key === ' ' &&\n      !event.defaultPrevented\n    ) {\n      onClick(event);\n    }\n  });\n\n  let ComponentProp = component;\n\n  if (other?.href) {\n    ComponentProp = 'a';\n  }\n\n  const buttonProps = {\n    type,\n    disabled\n  };\n\n  const handleUserRef = useForkRef(buttonRefProp, ref);\n  const handleOwnRef = useForkRef(focusVisibleRef, buttonRef);\n  const handleRef = useForkRef(handleUserRef, handleOwnRef);\n\n  return (\n    <ComponentProp\n      className={className}\n      onBlur={onBlur}\n      onClick={onClick}\n      onFocus={handleFocus}\n      onKeyDown={handleKeyDown}\n      onKeyUp={handleKeyUp}\n      onMouseDown={onMouseDown}\n      onMouseLeave={onMouseLeave}\n      onMouseUp={onMouseUp}\n      onDragLeave={onDragLeave}\n      onTouchEnd={onTouchEnd}\n      onTouchMove={onTouchMove}\n      onTouchStart={onTouchStart}\n      ref={handleRef}\n      tabIndex={disabled ? -1 : tabIndex}\n      {...buttonProps}\n      {...other}\n    >\n      {children}\n    </ComponentProp>\n  );\n});\n\nexport default ButtonBase;\n","export { default } from './ButtonBase';\n","import React, { forwardRef } from 'react';\nimport ButtonBase from \"../ButtonBase\";\n\nconst ToggleButton = forwardRef(function ToggleButton(props, ref) {\n  const {\n    children,\n    label,\n    className,\n    disabled = false,\n    onChange,\n    onClick,\n    selected,\n    value,\n    ...other\n  } = props;\n\n  const handleClick = (event) => {\n    if (onClick) {\n      onClick(event, value);\n      if (event.isDefaultPrevented()) {\n        return;\n      }\n    }\n\n    if (onChange) {\n      onChange(event, value);\n    }\n  };\n\n  return (\n    <ButtonBase\n      className={className}\n      disabled={disabled}\n      ref={ref}\n      onClick={handleClick}\n      onChange={onChange}\n      value={value}\n      aria-pressed={selected}\n      {...other}\n    >\n      {\n        label\n          ? <span className={label}>{children}</span>\n          : children\n      }\n    </ButtonBase>\n  );\n});\n\nexport default ToggleButton;\n","export { default } from './ToggleButton';\n","import React, { useRef, useCallback } from 'react';\n\nconst useEnhancedEffect = typeof window !== 'undefined' ? React.useLayoutEffect : React.useEffect;\n\nexport default function useEventCallback(fn) {\n  const ref = useRef(fn);\n\n  useEnhancedEffect(() => {\n    ref.current = fn;\n  });\n\n  return useCallback((...args) => (0, ref.current)(...args), []);\n}\n","import * as React from 'react';\n\nexport default function useForkRef(refA, refB) {\n  /**\n   * This will create a new function if the ref props change and are defined.\n   * This means react will call the old forkRef with `null` and the new forkRef\n   * with the ref. Cleanup naturally emerges from this behavior\n   */\n  function setRef(ref, value) {\n    if (typeof ref === 'function') {\n      ref(value);\n    } else if (ref) {\n      ref.current = value;\n    }\n  }\n\n  return React.useMemo(() => {\n    if (refA == null && refB == null) {\n      return null;\n    }\n    return (refValue) => {\n      setRef(refA, refValue);\n      setRef(refB, refValue);\n    };\n  }, [refA, refB]);\n}\n","// based on https://github.com/WICG/focus-visible/blob/v4.1.5/src/focus-visible.js\nimport * as React from 'react';\nimport * as ReactDOM from 'react-dom';\n\nlet hadKeyboardEvent = true;\nlet hadFocusVisibleRecently = false;\nlet hadFocusVisibleRecentlyTimeout = null;\n\nconst inputTypesWhitelist = {\n  text: true,\n  search: true,\n  url: true,\n  tel: true,\n  email: true,\n  password: true,\n  number: true,\n  date: true,\n  month: true,\n  week: true,\n  time: true,\n  datetime: true,\n  'datetime-local': true,\n};\n\n/**\n * Computes whether the given element should automatically trigger the\n * `focus-visible` class being added, i.e. whether it should always match\n * `:focus-visible` when focused.\n * @param {Element} node\n * @return {boolean}\n */\nfunction focusTriggersKeyboardModality(node) {\n  const { type, tagName } = node;\n\n  if (tagName === 'INPUT' && inputTypesWhitelist[type] && !node.readOnly) {\n    return true;\n  }\n\n  if (tagName === 'TEXTAREA' && !node.readOnly) {\n    return true;\n  }\n\n  if (node.isContentEditable) {\n    return true;\n  }\n\n  return false;\n}\n\n/**\n * Keep track of our keyboard modality state with `hadKeyboardEvent`.\n * If the most recent user interaction was via the keyboard;\n * and the key press did not include a meta, alt/option, or control key;\n * then the modality is keyboard. Otherwise, the modality is not keyboard.\n * @param {KeyboardEvent} event\n */\nfunction handleKeyDown(event) {\n  if (event.metaKey || event.altKey || event.ctrlKey) {\n    return;\n  }\n  hadKeyboardEvent = true;\n}\n\n/**\n * If at any point a user clicks with a pointing device, ensure that we change\n * the modality away from keyboard.\n * This avoids the situation where a user presses a key on an already focused\n * element, and then clicks on a different element, focusing it with a\n * pointing device, while we still think we're in keyboard modality.\n */\nfunction handlePointerDown() {\n  hadKeyboardEvent = false;\n}\n\nfunction handleVisibilityChange() {\n  if (this.visibilityState === 'hidden') {\n    // If the tab becomes active again, the browser will handle calling focus\n    // on the element (Safari actually calls it twice).\n    // If this tab change caused a blur on an element with focus-visible,\n    // re-apply the class when the user switches back to the tab.\n    if (hadFocusVisibleRecently) {\n      hadKeyboardEvent = true;\n    }\n  }\n}\n\nfunction prepare(doc) {\n  doc.addEventListener('keydown', handleKeyDown, true);\n  doc.addEventListener('mousedown', handlePointerDown, true);\n  doc.addEventListener('pointerdown', handlePointerDown, true);\n  doc.addEventListener('touchstart', handlePointerDown, true);\n  doc.addEventListener('visibilitychange', handleVisibilityChange, true);\n}\n\nexport function teardown(doc) {\n  doc.removeEventListener('keydown', handleKeyDown, true);\n  doc.removeEventListener('mousedown', handlePointerDown, true);\n  doc.removeEventListener('pointerdown', handlePointerDown, true);\n  doc.removeEventListener('touchstart', handlePointerDown, true);\n  doc.removeEventListener('visibilitychange', handleVisibilityChange, true);\n}\n\nfunction isFocusVisible(event) {\n  const { target } = event;\n  try {\n    return target.matches(':focus-visible');\n  } catch (error) {\n    // browsers not implementing :focus-visible will throw a SyntaxError\n    // we use our own heuristic for those browsers\n    // rethrow might be better if it's not the expected error but do we really\n    // want to crash if focus-visible malfunctioned?\n  }\n\n  // no need for validFocusTarget check. the user does that by attaching it to\n  // focusable events only\n  return hadKeyboardEvent || focusTriggersKeyboardModality(target);\n}\n\n/**\n * Should be called if a blur event is fired on a focus-visible element\n */\nfunction handleBlurVisible() {\n  // To detect a tab/window switch, we look for a blur event followed\n  // rapidly by a visibility change.\n  // If we don't see a visibility change within 100ms, it's probably a\n  // regular focus change.\n  hadFocusVisibleRecently = true;\n  window.clearTimeout(hadFocusVisibleRecentlyTimeout);\n  hadFocusVisibleRecentlyTimeout = window.setTimeout(() => {\n    hadFocusVisibleRecently = false;\n  }, 100);\n}\n\nexport default function useIsFocusVisible() {\n  const ref = React.useCallback((instance) => {\n    // eslint-disable-next-line react/no-find-dom-node\n    const node = ReactDOM.findDOMNode(instance);\n    if (node != null) {\n      prepare(node.ownerDocument);\n    }\n  }, []);\n\n  return { isFocusVisible, onBlurVisible: handleBlurVisible, ref };\n}\n","import React, { useState } from 'react';\n\nfunction CrossbarIcon(props) {\n  const { handleClick, extraClasses, size = \"small\", wrapperElement = \"div\" } = props || {};\n  const [WrapperComponent] = useState(wrapperElement);\n\n  return (\n    <WrapperComponent\n      role=\"img\"\n      onClick={handleClick}\n      className={`mls-o-svg transform ${extraClasses ? extraClasses : \"\"}`}>\n      <span className={`oc-o-icon--crossbar icon-svg fa-icon-svg fa-icon-svg--${size}`}>\n        <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 30 30\">\n          <path d=\"M22.66 15.42v5.96h.02l.98-.98v-5.98l-1 1zM22.4 10a1.48 1.48 0 101.48 1.48A1.48 1.48 0 0022.4 10m0 4a2.48 2.48 0 112.48-2.48A2.48 2.48 0 0122.4 14M6.22 10.02L5 11.23v10.15h.04l.96-.96v-9.4h12.23l1-1H6.22z\" />\n        </svg>\n      </span>\n    </WrapperComponent>\n  );\n}\n\n// eslint-disable-next-line no-const-assign,no-func-assign\nCrossbarIcon = React.memo(CrossbarIcon);\n\nexport default CrossbarIcon;\n","import React, { useState } from 'react';\n\nfunction FilledPlayIcon(props) {\n  const { handleClick, extraClasses, size = \"small\", wrapperElement = \"div\" } = props || {};\n  const [WrapperComponent] = useState(wrapperElement);\n\n  return (\n    <WrapperComponent\n      role=\"img\"\n      onClick={handleClick}\n      className={`mls-o-svg transform ${extraClasses ? extraClasses : \"\"}`}>\n      <span className={`oc-o-icon--no-circle-play icon-svg fa-icon-svg fa-icon-svg--${size}`}>\n        <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 30 30\">\n          <path xmlns=\"http://www.w3.org/2000/svg\" d=\"M8 5l14 10L8 25z\" />\n        </svg>\n      </span>\n    </WrapperComponent>\n  );\n}\n\n// eslint-disable-next-line no-const-assign,no-func-assign\nFilledPlayIcon = React.memo(FilledPlayIcon);\n\nexport default FilledPlayIcon;\n","import React, { useState } from 'react';\n\nfunction InjuryIcon(props) {\n  const { handleClick, extraClasses, size = \"small\", wrapperElement = \"div\" } = props || {};\n  const [WrapperComponent] = useState(wrapperElement);\n\n  return (\n    <WrapperComponent\n      role=\"img\"\n      onClick={handleClick}\n      className={`mls-o-svg transform ${extraClasses ? extraClasses : \"\"}`}>\n      <span className={`oc-o-icon--injury icon-svg fa-icon-svg fa-icon-svg--${size}`}>\n        <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 30 30\" >\n          <path\n            fill=\"#d0021b\"\n            d=\"M13.25 7v6.25H7v3.5h6.25V23h3.5v-6.25H23v-3.5h-6.25V7h-3.5z\"\n          />\n        </svg>\n      </span>\n    </WrapperComponent>\n  );\n}\n\n// eslint-disable-next-line no-const-assign,no-func-assign\nInjuryIcon = React.memo(InjuryIcon);\n\nexport default InjuryIcon;\n","import React, { useState } from 'react';\n\nfunction MissIcon(props) {\n  const { handleClick, extraClasses, size = \"small\", wrapperElement = \"div\" } = props || {};\n  const [WrapperComponent] = useState(wrapperElement);\n\n  return (\n    <WrapperComponent\n      role=\"img\"\n      onClick={handleClick}\n      className={`mls-o-svg transform ${extraClasses ? extraClasses : \"\"}`}>\n      <span className={`oc-o-icon--miss icon-svg fa-icon-svg fa-icon-svg--${size}`}>\n        <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 30 30\" >\n          <path d=\"M18.77 11.56l.7.7-7.58 7.58-.7-.7z\" />\n          <path d=\"M7.22 9L6 10.21v10.16h.04l.96-.96V10h16.66v10.37h.02l.98-.98V9H7.22z\" />\n        </svg>\n      </span>\n    </WrapperComponent>\n  );\n}\n\n// eslint-disable-next-line no-const-assign,no-func-assign\nMissIcon = React.memo(MissIcon);\n\nexport default MissIcon;\n","import React from 'react';\n\nconst OfficialIcon = (props) => {\n  const { handleClick, extraClasses, size = \"small\" } = props || {};\n  return (\n    <button\n      role=\"img\"\n      onClick={handleClick}\n      className={`mls-o-svg transform ${extraClasses ? extraClasses : \"\"}`}>\n      <span className={`oc-o-icon--official icon-svg fa-icon-svg fa-icon-svg--${size}`}>\n        <svg viewBox=\"0 0 22 20\" xmlns=\"http://www.w3.org/2000/svg\">\n          <g fill=\"none\" fillRule=\"evenodd\">\n            <path d=\"M-4-5h30v30H-4z\" />\n            <path\n              d=\"M20.7 8.5h-8V10h-2.5V8.5H8.3h0a5 5 0 105 4l7.4-1.2V8.5z\"\n              stroke=\"#000\"\n            />\n            <path d=\"M3.5 12a1.4 1.4 0 11-2.7 0 1.4 1.4 0 012.7 0z\" stroke=\"#000\" />\n            <path\n              fill=\"#FFF\"\n              d=\"M12.8 11.7l-1-1 1.6-1.5 1 .9zm8.5-1.1v1.2l-.8 1-.7-.7z\"\n            />\n            <path\n              stroke=\"#000\"\n              strokeWidth={1.1}\n              d=\"M11.4 5.8V0m-2 5.8l-1.8-4m5.9 4l1.8-4\"\n            />\n          </g>\n        </svg>\n      </span>\n    </button>\n  );\n};\n\nexport default OfficialIcon;\n","export { default } from './OfficialIcon';\n","import React, { useState } from 'react';\n\nfunction PenaltyCardIcon(props) {\n  const { handleClick, extraClasses, size = \"small\", wrapperElement = \"div\", fill } = props || {};\n  const [WrapperComponent] = useState(wrapperElement);\n\n  return (\n    <WrapperComponent\n      role=\"img\"\n      onClick={handleClick}\n      className={`mls-o-svg transform ${extraClasses ? extraClasses : \"\"}`}>\n      <span className={`oc-o-icon--penalty-card icon-svg fa-icon-svg fa-icon-svg--${size}`}>\n        <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 30 30\">\n          <path fill={fill} d=\"M9.4 5L7 7.4v17.3h12.8l2.3-2.31V5H9.4z\" />\n          <path d=\"M19.16 9.53l.71.71-9.93 9.93-.71-.71z\" fill=\"#fff\" />\n        </svg>\n      </span>\n    </WrapperComponent>\n  );\n}\n\n// eslint-disable-next-line no-const-assign,no-func-assign\nPenaltyCardIcon = React.memo(PenaltyCardIcon);\n\nexport default PenaltyCardIcon;\n","export { default } from './PenaltyCardIcon';\n","import React, { useState } from 'react';\n\nfunction PenaltyIcon(props) {\n  const { handleClick, extraClasses, size = \"small\", wrapperElement = \"div\" } = props || {};\n  const [WrapperComponent] = useState(wrapperElement);\n\n  return (\n    <WrapperComponent\n      role=\"img\"\n      onClick={handleClick}\n      className={`mls-o-svg transform ${extraClasses ? extraClasses : \"\"}`}>\n      <span className={`oc-o-icon--penalty icon-svg fa-icon-svg fa-icon-svg--${size}`}>\n        <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 30 30\">\n          <path d=\"M14.56 12.17l-.79.26a3.1 3.1 0 00-1.94 3.88 3 3 0 001.54 1.8 3.08 3.08 0 004.16-1.35 3.08 3.08 0 00.18-2.36 3.24 3.24 0 00-.27-.6l-.26-.45 4.87-2.53-.32-1-4.53 1.49.31.93-2.65.86zm.21 7.28a4.08 4.08 0 01-1.86-.45 4 4 0 01-2-2.38 4.1 4.1 0 012.57-5.14l1.75-.57.3.94.75-.25-.3-.93 6.42-2.1.9 2.75-4.73 2.44a2.19 2.19 0 01.12.33A4.09 4.09 0 0116 19.25a4.31 4.31 0 01-1.23.2zM14.37 8H5.25L4 9.25v11.78l1-1V9h8.37l1-1zM25.36 19.99V12.3l-1 1V21l1-1.01z\" />\n          <path d=\"M10.09 15.24a.49.49 0 11-.49.49.49.49 0 01.49-.49m0-1a1.49 1.49 0 101.49 1.49 1.49 1.49 0 00-1.49-1.49z\" />\n        </svg>\n      </span>\n    </WrapperComponent>\n  );\n}\n\n// eslint-disable-next-line no-const-assign,no-func-assign\nPenaltyIcon = React.memo(PenaltyIcon);\n\nexport default PenaltyIcon;\n","import React, { useState } from 'react';\n\nfunction PenaltyMissIcon(props) {\n  const { handleClick, extraClasses, size = \"small\", wrapperElement = \"div\" } = props || {};\n  const [WrapperComponent] = useState(wrapperElement);\n\n  return (\n    <WrapperComponent\n      role=\"img\"\n      onClick={handleClick}\n      className={`mls-o-svg transform ${extraClasses ? extraClasses : \"\"}`}>\n      <span className={`oc-o-icon--penalty-miss icon-svg fa-icon-svg fa-icon-svg--${size}`}>\n        <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 30 30\">\n          <path d=\"M14.76 10.27v5.9H9.61l-1.12 1h7.27v-6.9h-1z\" />\n          <path d=\"M21 9.68l1.3-1.3-.7-.71-1.4 1.4a9.09 9.09 0 00-4.58-1.52V5H17l1-1h-4.26l-1 1h1.91v2.55A9.09 9.09 0 0010 9.11L8.56 7.67l-.71.71 1.36 1.35A9.15 9.15 0 1021 9.68zm-5.85 15.14a8.15 8.15 0 118.15-8.15 8.16 8.16 0 01-8.15 8.15z\" />\n        </svg>\n      </span>\n    </WrapperComponent>\n  );\n}\n\n// eslint-disable-next-line no-const-assign,no-func-assign\nPenaltyMissIcon = React.memo(PenaltyMissIcon);\n\nexport default PenaltyMissIcon;\n","import React, { useState } from \"react\";\n\nconst PlayCircleIcon = (props) => {\n  const { handleClick, extraClasses, size = \"small\", wrapperElement = \"div\", color = \"#000\" } = props || {};\n  const [WrapperComponent] = useState(wrapperElement);\n\n  return (\n    <WrapperComponent\n      role=\"img\"\n      onClick={handleClick}\n      className={`mls-o-svg transform ${extraClasses ? extraClasses : \"\"}`}>\n      <span className={`oc-o-icon--play-circle icon-svg fa-icon-svg fa-icon-svg--${size}`}>\n        <svg viewBox=\"0 0 15 15\">\n          <g fill=\"none\" fillRule=\"evenodd\">\n            <circle cx={7.5} cy={7.5} r={7} stroke={color} />\n            <path fill={color} d=\"M6.272 4.646l3.86 2.769-3.86 2.768z\" />\n          </g>\n        </svg>\n      </span>\n    </WrapperComponent>\n  );\n};\n\nexport default PlayCircleIcon;\n","export { default } from './PlayCircleIcon';\n","import React, { useState } from 'react';\n\nfunction SaveIcon(props) {\n  const { handleClick, extraClasses, size = \"small\", wrapperElement = \"div\" } = props || {};\n  const [WrapperComponent] = useState(wrapperElement);\n\n  return (\n    <WrapperComponent\n      role=\"img\"\n      onClick={handleClick}\n      className={`mls-o-svg transform ${extraClasses ? extraClasses : \"\"}`}>\n      <span className={`oc-o-icon--save icon-svg fa-icon-svg fa-icon-svg--${size}`}>\n        <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 30 30\">\n          <path d=\"M19.89 7.47a1.77 1.77 0 00-.73.16v-.28a1.74 1.74 0 00-1.73-1.73 1.71 1.71 0 00-.95.28 1.73 1.73 0 00-3 0 1.71 1.71 0 00-.95-.28 1.74 1.74 0 00-1.73 1.73v7.46L8.3 14A1.65 1.65 0 007 14a1.7 1.7 0 00-.88 1c-.29.83.07 1.61 1.09 2.33l.92.65c.52.37 1 .73 1.55 1.11l1.86 1.36.53 4h7.86l1.15-1.15.55-7.3V9.2a1.73 1.73 0 00-1.74-1.73zm-8 12.06l-1.68-1.24-1.52-1.12-.92-.64C7 16 7 15.59 7 15.34a.68.68 0 01.37-.41.73.73 0 01.56 0l2.66.93 1.13-1.12V7.35a.74.74 0 011.47 0v4.83l1-1V6.73a.73.73 0 011.46 0v5.45l1-1V7.35a.74.74 0 011.47 0v6zM20 23.47h-7.12l-.41-3.09L19 13.87a.51.51 0 00.15-.35V9.2a.74.74 0 011.47 0V16z\" />\n        </svg>\n      </span>\n    </WrapperComponent>\n  );\n}\n\n// eslint-disable-next-line no-const-assign,no-func-assign\nSaveIcon = React.memo(SaveIcon);\n\nexport default SaveIcon;\n","import React, { useState } from 'react';\n\nfunction SecondYellowCardIcon(props) {\n  const { handleClick, extraClasses, size = \"small\", wrapperElement = \"div\" } = props || {};\n  const [WrapperComponent] = useState(wrapperElement);\n\n  return (\n    <WrapperComponent\n      role=\"img\"\n      onClick={handleClick}\n      className={`mls-o-svg transform ${extraClasses ? extraClasses : \"\"}`}>\n      <span className={`oc-o-icon--second-yellow-card icon-svg fa-icon-svg fa-icon-svg--${size}`}>\n        <svg viewBox=\"0 0 17 21\" xmlns=\"http://www.w3.org/2000/svg\">\n          <g fill=\"none\" fillRule=\"evenodd\">\n            <path fill=\"#F6CC08\" d=\"M2.2.5l-2 2v14.4h12.5V.5z\" />\n            <path fill=\"#D0021B\" d=\"M5.7 4L3.6 6v14.3h10.8l1.7-1.8V4z\" />\n            <path stroke=\"#FFF\" d=\"M14 8l-8.3 8.3\" />\n          </g>\n        </svg>\n      </span>\n    </WrapperComponent>\n  );\n}\n\n// eslint-disable-next-line no-const-assign,no-func-assign\nSecondYellowCardIcon = React.memo(SecondYellowCardIcon);\n\nexport default SecondYellowCardIcon;\n","export { default } from './SecondYellowCardIcon';\n","import React, { useState } from \"react\";\n\nconst SubstitutionIcon = (props) => {\n  const { handleClick, extraClasses, size = \"small\", wrapperElement = \"div\" } = props || {};\n  const [WrapperComponent] = useState(wrapperElement);\n\n  return (\n    <WrapperComponent\n      role=\"img\"\n      onClick={handleClick}\n      className={`mls-o-svg transform ${extraClasses ? extraClasses : \"\"}`}>\n      <span className={`oc-o-icon--substitution icon-svg fa-icon-svg fa-icon-svg--${size}`}>\n        <svg\n          viewBox=\"0 0 10 10\"\n          xmlns=\"http://www.w3.org/2000/svg\"\n          xmlnsXlink=\"http://www.w3.org/1999/xlink\"\n        >\n          <defs>\n            <path id=\"prefix__a\" d=\"M0 .014h8.608v3.719H0z\" />\n          </defs>\n          <g fill=\"none\" fillRule=\"evenodd\">\n            <path\n              d=\"M9.102 1.99l-.286 1.03A4.142 4.142 0 005.123.733a4.16 4.16 0 00-4.122 3.775l.67-.669c.45-1.49 1.843-2.572 3.452-2.572 1.402 0 2.662.822 3.253 2.07l-1.113-.31-.144.513 1.954.548.543-1.954-.514-.144z\"\n              fill=\"#03954E\"\n            />\n            <g transform=\"translate(.733 5.428)\">\n              <mask id=\"prefix__b\" fill=\"#fff\">\n                <use xlinkHref=\"#prefix__a\" />\n              </mask>\n              <path\n                d=\"M7.922.697A3.627 3.627 0 014.492 3.2a3.605 3.605 0 01-3.251-2.07l1.112.31.144-.513L.542.38 0 2.333l.513.143.287-1.03a4.14 4.14 0 003.693 2.287A4.159 4.159 0 008.608.014l-.686.683z\"\n                fill=\"#D0021B\"\n              />\n            </g>\n          </g>\n        </svg>\n      </span>\n    </WrapperComponent>\n  );\n};\n\nexport default SubstitutionIcon;\n","export { default } from './SubstitutionIcon';\n","import React, { useState } from 'react';\n\nfunction TimerIcon(props) {\n  const { handleClick, extraClasses, size = \"small\", wrapperElement = \"div\" } = props || {};\n  const [WrapperComponent] = useState(wrapperElement);\n\n  return (\n    <WrapperComponent\n      role=\"img\"\n      onClick={handleClick}\n      className={`mls-o-svg transform ${extraClasses ? extraClasses : \"\"}`}>\n      <span className={`oc-o-icon--timer icon-svg fa-icon-svg fa-icon-svg--${size}`}>\n        <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 30 30\">\n          <path d=\"M14.76 10.27v5.9H9.61l-1.12 1h7.27v-6.9h-1z\" />\n          <path d=\"M21 9.68l1.3-1.3-.7-.71-1.4 1.4a9.09 9.09 0 00-4.58-1.52V5H17l1-1h-4.26l-1 1h1.91v2.55A9.09 9.09 0 0010 9.11L8.56 7.67l-.71.71 1.36 1.35A9.15 9.15 0 1021 9.68zm-5.85 15.14a8.15 8.15 0 118.15-8.15 8.16 8.16 0 01-8.15 8.15z\" />\n        </svg>\n      </span>\n    </WrapperComponent>\n  );\n}\n\n// eslint-disable-next-line no-const-assign,no-func-assign\nTimerIcon = React.memo(TimerIcon);\n\nexport default TimerIcon;\n","import React, { useState } from 'react';\n\nfunction TrendingArrowIcon(props) {\n  const { handleClick, extraClasses, size = \"small\", direction = \"up\", wrapperElement = \"div\", fill } = props || {};\n  const [WrapperComponent] = useState(wrapperElement);\n\n  return (\n    <WrapperComponent\n      role=\"img\"\n      onClick={handleClick}\n      className={`mls-o-svg transform ${extraClasses ? extraClasses : \"\"}`}>\n      <span className={`oc-o-icon--trending-arrow-${direction} icon-svg fa-icon-svg fa-icon-svg--${size}`}>\n        <svg viewBox=\"0 0 10 5\" fill={fill} xmlns=\"http://www.w3.org/2000/svg\" fillRule={`${direction === \"up\" ? \"nonzero\" : \"evenodd\"}`}>\n          <path d={`${direction === \"up\" ? \"M0 5l5-5 5 5z\" : \"M0 0l5 5 5-5z\"}`} />\n        </svg>\n      </span>\n    </WrapperComponent>\n  );\n}\n\n// eslint-disable-next-line no-const-assign,no-func-assign\nTrendingArrowIcon = React.memo(TrendingArrowIcon);\n\nexport default TrendingArrowIcon;\n","export { default } from './TrendingArrowIcon';\n"],"names":[],"sourceRoot":""}