Selection and JavaScript Range objects
diy
typescript