I actually did the detection and highlight in a pipe typescript file
The pipe replaces the matched parts with<span style="background-color:yellow">${searchInput}</span>
…Which I feel clueless of how to store the matches as data, after all they are just strings, but with comparison

… and so onscrollIntoView scrolls my outer container instead of inner container, that kinda makes it distorted so I had to use only block: 'end' as my scroll option, I am still looking for alternatives for that.

Of course, there is a need for tracking total amount occurrences and additional logic for index to loop if final occurrence is encountered