The San Francisco Giants agreed to terms with outfielder Mitch Haniger, with sources telling ESPN it's a three-year, $43.5 million deal.