{"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":""}