package Ġreact . bootstrap . lib . component Ċ Ċ import Ġkotlinx . html . Tag Ċ import Ġkotlinx . html . attributes Map Of Ċ import Ġreact . R Builder Ċ import Ġreact . R Component Ċ import Ġreact . R Props Ċ import Ġreact . R State Ċ import Ġreact . bootstrap . lib . react . r props . With Global Attributes Ċ import Ġreact . dom . R DOM Builder Ċ import Ġkotlin . reflect . K Class Ċ Ċ /** Ċ Ġ* Ġ@ param ĠTT ĠTag ĠType : ĠThe ĠHTML Ġtag Ġtype Ġused Ġto Ġrender Ġthis Ġcomponent Ċ Ġ* Ġ@ param ĠA CP ĠAbstract ĠComponent ĠProps : ĠThe Ġ[ R Props ] Ġof Ġthe Ġ[ Abstract Component ] Ġimplementation Ċ Ġ* Ġ@ param ĠA CS ĠAbstract ĠComp on nt ĠState : ĠThe Ġ[ R State ] Ġof Ġ Ġthe Ġ[ Abstract Component ] Ġimplementation Ċ Ġ*/ Ċ abstract Ġclass ĠAbstract Component < TT Ġ: ĠTag , ĠA CP Ġ: ĠWith Global Attributes , ĠA CS Ġ: ĠR State > Ġ: ĠR Component < AC P , ĠA CS > Ġ{ ĊĠĠĠ Ġconstructor () Ġ: Ġsuper () ĊĠĠĠ Ġconstructor ( props : ĠA CP ) Ġ: Ġsuper ( props ) ĊĊĠĠĠ Ġabstract Ġval Ġrenderer Tag : ĠK Class < out ĠTT > ĊĊĠĠĠ Ġprotected Ġabstract Ġfun ĠR DOM Builder < TT >. build () ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠThis Ġtransfers Ġthe Ġchildren Ġof Ġthe Ġ[ Abstract Component ] Ġinto Ġthe Ġactual ĠReact Element ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprotected Ġopen Ġfun ĠR DOM Builder < TT >. transfer Children () Ġ{ ĊĠĠĠĠĠĠĠ Ġchildren () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfinal Ġoverride Ġfun ĠR Builder . render () Ġ{ ĊĠĠĠĠĠĠĠ Ġ@ Suppress (" UNUSED _ VARIABLE ", Ġ" UNUSED _ AN ONY MO US _ PARAMETER ") ĊĠĠĠĠĠĠĠ Ġval Ġr ROM Builder Ġ= ĠR DOM Builder Ġ{ Ġtag Consumer Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠThis Ġint anti ates Ġthe Ġtag Ġby Ġusing Ġsome Ġreflection Ġjs Ġmagic . ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġ:: class . js Ġpoints Ġto Ġthe Ġjavascript Ġconstructor ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġconstructor Ġ= Ġrenderer Tag . js ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġattributes Ġ= Ġattributes Map Of (" class ", Ġnull ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġjs (" new Ġconstructor ( attributes , Ġtag Consumer )") Ġas ĠTT ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġchild ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġr ROM Builder ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbuild () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtransfer Children () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. create () ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} Ċ } Ċ