Ducks sign left wing Carl Hagelin to four-year contract