package Ġtz . co . as oft Ċ Ċ import Ġkotlinx . coroutines . Coroutine Scope Ċ import Ġkotlinx . coroutines . delay Ċ import Ġkotlinx . coroutines . launch Ċ import Ġorg . w 3 c . dom . HTMLElement Ċ Ċ private Ġinline Ġvar ĠHTMLElement . stored Offset Height : ĠInt ? ĊĠĠĠ Ġget () Ġ= Ġtry Ġ{ ĊĠĠĠĠĠĠĠ Ġ"${ as Dynamic ()[" stored Offset Height "] }". toInt OrNull () ĊĠĠĠ Ġ} Ġcatch Ġ( e : ĠThrowable ) Ġ{ ĊĠĠĠĠĠĠĠ Ġnull ĊĠĠĠ Ġ} ĊĠĠĠ Ġset ( value ) Ġ{ ĊĠĠĠĠĠĠĠ Ġas Dynamic ()[" stored Offset Height "] Ġ= Ġvalue ĊĠĠĠ Ġ} Ċ Ċ fun ĠHTMLElement . on Height Changed While Typing ( scope : ĠCor outine Scope , Ġhandler : Ġsuspend Ġ( Int ) Ġ-> ĠUnit ) Ġ{ ĊĠĠĠ Ġvar Ġdiff Ġ= Ġ 0 ĊĠĠĠ Ġscope . launch Ġ{ ĊĠĠĠĠĠĠĠ Ġdelay ( 1 ) ĊĠĠĠĠĠĠĠ Ġstored Offset Height Ġ= Ġoffset Height ĊĠĠĠĠĠĠĠ Ġdiff Ġ= Ġscroll Height Ġ- Ġoffset Height ĊĠĠĠĠĠĠĠ Ġhandler ( scroll Height ) ĊĠĠĠ Ġ} ĊĠĠĠ Ġon keydown Ġ= Ġ{ ĊĠĠĠĠĠĠĠ Ġscope . launch Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdelay ( 1 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( offsetHeight Ġ!= Ġstored Offset Height ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstored Offset Height Ġ= Ġoffset Height ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġhandler ( offsetHeight Ġ+ Ġdiff ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }