You’ve translated correctly, and it’s standard Spanish, not a Latin American thing.
“Haya” is the present subjunctive of “haber” used to form the present perfect subjunctive. It serves the same purpose as the present subjunctive, but is used to talk about actions completed in the past (i.e. “perfect”). In your examples, we use the subjunctive since the speaker is talking about his emotional reactions to the facts, rather than the facts themselves. It’s also possible to use the imperfect subjunctive (lloviera / lloviese) to talk about the past, but this would conceive of the actions as unfinished.