package Ġxyz . eat ste ak . k us aint . parser Ċ Ċ import Ġio . ktor . http .* Ċ import Ġorg . w 3 c . dom . Item Array Like Ċ import Ġorg . w 3 c . dom . asList Ċ import Ġxyz . eat ste ak . k us aint . event queue . model . S ap Client Ċ import Ġxyz . eat ste ak . k us aint . state . State Ċ import Ġxyz . eat ste ak . k us aint . util . JS DOM Ċ Ċ actual Ġobject ĠClient Form Parser : ĠParser < String , ĠS ap Client > Ġ{ ĊĊĠĠĠ Ġactual Ġoverride Ġsuspend Ġfun Ġparse ( state : ĠState < String >): ĠS ap Client Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġkeys Ġ= Ġmutable Map Of < String , ĠString >() ĊĠĠĠĠĠĠĠ Ġstate . mutations . forEach Ġ{ Ġaction Res Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif ( action Res . response . contentType (). toString (). startsWith (" text / html ")) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdoc Ġ= ĠJS DOM ( action Res . result ). window . document ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġclient Elem Ġ= Ġdoc . querySelector ("# sap \\. client \\. S sr Client \\. form ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif ( client Elem Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġkeys [" action "] Ġ= Ġclient Elem . getAttribute (" action ") !! Ġas ĠString ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ( client Elem . children Ġas ĠItem Array Like < dynamic >). asList (). forEach Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġkeys [( it . id Ġas ĠString )] Ġ= Ġ( it . getAttribute (" value ") !! Ġas ĠString ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġval Ġsap Client Ġ= ĠS ap Client ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġaction Ġ= Ġkeys [" action "] !! , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcharset Ġ= Ġkeys [" sap - charset "] !! , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwd Secure Id Ġ= Ġkeys [" sap - wd - secure - id "] !! , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠappName Ġ= Ġkeys [" f es r AppName "] !! , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġuse Beacon Ġ= Ġ( keys [" f es r Use Beacon "] Ġ== Ġ" true ") ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġreturn Ġsap Client ĊĠĠĠ Ġ} Ċ }