import Ġkui . Component Ċ import Ġkui . render On Set Ċ Ċ class ĠCalc Component Ġ: ĠComponent () Ġ{ ĊĠĠĠ Ġprivate Ġval Ġresult Component Ġ= ĠCalc Result Component ( this ) ĊĊĠĠĠ Ġprivate Ġvar Ġnum 1 Ġby Ġrender On Set ( 0 . 0 , Ġresult Component ) ĊĠĠĠ Ġprivate Ġvar Ġnum 2 Ġby Ġrender On Set ( 0 . 0 , Ġresult Component ) ĊĠĠĠ Ġprivate Ġvar Ġop Ġby Ġrender On Set ( Op . ADD , Ġresult Component ) ĊĊĠĠĠ Ġfun Ġresult (): ĠDouble Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġwhen Ġ( op ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠOp . ADD Ġ-> Ġnum 1 Ġ+ Ġnum 2 ĊĠĠĠĠĠĠĠĠĠĠĠ ĠOp . SUB Ġ-> Ġnum 1 Ġ- Ġnum 2 ĊĠĠĠĠĠĠĠĠĠĠĠ ĠOp . MUL Ġ-> Ġnum 1 Ġ* Ġnum 2 ĊĠĠĠĠĠĠĠĠĠĠĠ ĠOp . DIV Ġ-> Ġnum 1 Ġ/ Ġnum 2 ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġrender () Ġ{ ĊĠĠĠĠĠĠĠ Ġmarkup (). div Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġinput Number ( model Ġ= Ġ:: num 1 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdiv Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlabel Ġ{ Ġ+ "+ "; Ġradio ( name Ġ= Ġ" calc ", Ġvalue Ġ= ĠOp . ADD , Ġmodel Ġ= Ġ:: op ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlabel Ġ{ Ġ+ "- "; Ġradio ( name Ġ= Ġ" calc ", Ġvalue Ġ= ĠOp . SUB , Ġmodel Ġ= Ġ:: op ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlabel Ġ{ Ġ+" * "; Ġradio ( name Ġ= Ġ" calc ", Ġvalue Ġ= ĠOp . MUL , Ġmodel Ġ= Ġ:: op ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlabel Ġ{ Ġ+ "/ "; Ġradio ( name Ġ= Ġ" calc ", Ġvalue Ġ= ĠOp . DIV , Ġmodel Ġ= Ġ:: op ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġinput Number ( model Ġ= Ġ:: num 2 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcomponent ( result Component ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ Ċ class ĠCalc Result Component ( private Ġval Ġparent : ĠCalc Component ) Ġ: ĠComponent () Ġ{ ĊĠĠĠ Ġoverride Ġfun Ġrender () Ġ{ ĊĠĠĠĠĠĠĠ Ġmarkup (). p Ġ{ Ġ+" Result : Ġ${ parent . result () }" Ġ} ĊĠĠĠ Ġ} Ċ } Ċ Ċ enum Ġclass ĠOp Ġ{ ĠADD , ĠSUB , ĠMUL , ĠDIV Ġ} Ċ