/* Ċ Ġ* ĠCopyright Ġ 2 0 1 9 ĠI ce Rock ĠMAG ĠInc . ĠUse Ġof Ġthis Ġsource Ġcode Ġis Ġgoverned Ġby Ġthe ĠApache Ġ 2 . 0 Ġlicense . Ċ Ġ*/ Ċ Ċ package Ġdev . icer ock . mo ko . widgets Ċ Ċ import Ġdev . icer ock . mo ko . mv vm . State Ċ import Ġdev . icer ock . mo ko . mv vm . li ved ata . LiveData Ċ import Ġdev . icer ock . mo ko . mv vm . li ved ata . data Ċ import Ġdev . icer ock . mo ko . mv vm . li ved ata . error Ċ import Ġdev . icer ock . mo ko . widgets . core . Optional Id Ċ import Ġdev . icer ock . mo ko . widgets . core . Styled Ċ import Ġdev . icer ock . mo ko . widgets . core . V FC Ċ import Ġdev . icer ock . mo ko . widgets . core . View Ċ import Ġdev . icer ock . mo ko . widgets . core . View Factory Context Ċ import Ġdev . icer ock . mo ko . widgets . core . Widget Ċ import Ġdev . icer ock . mo ko . widgets . core . Widget Scope Ċ import Ġdev . icer ock . mo ko . widgets . style . background . Background Ċ import Ġdev . icer ock . mo ko . widgets . style . view . Back gro unded Ċ import Ġdev . icer ock . mo ko . widgets . style . view . Size Spec Ċ import Ġdev . icer ock . mo ko . widgets . style . view . Sized Ċ import Ġdev . icer ock . mo ko . widgets . style . view . Widget Size Ċ Ċ expect Ġvar Ġstate ful Widget View Factory : ĠV FC < State ful Widget < *, Ġ* >> Ċ Ċ class ĠStateful Widget < T , ĠE > Ġprivate Ġconstructor ( ĊĠĠĠ Ġval Ġfactory : ĠV FC < State ful Widget < T , ĠE >>, ĊĠĠĠ Ġoverride Ġval Ġstyle : ĠStyle , ĊĠĠĠ Ġoverride Ġval Ġid : ĠId ?, ĊĠĠĠ Ġval Ġstate LiveData : ĠLive Data < State < T , ĠE >>, ĊĠĠĠ Ġval Ġempty Widget : ĠWidget , ĊĠĠĠ Ġval Ġloading Widget : ĠWidget , ĊĠĠĠ Ġval Ġdata Widget : ĠWidget , ĊĠĠĠ Ġval Ġerror Widget : ĠWidget Ċ ) Ġ: ĠWidget (), ĠStyled < State ful Widget . Style >, ĠOptional Id < State ful Widget . Id > Ġ{ ĊĊĠĠĠ Ġoverride Ġfun Ġbuild View ( view Factory Context : ĠView Factory Context ): ĠView Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġfactory ( view Factory Context , Ġthis ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġconstructor ( ĊĠĠĠĠĠĠĠ Ġfactory : ĠV FC < State ful Widget < T , ĠE >>, ĊĠĠĠĠĠĠĠ Ġid : ĠId ?, ĊĠĠĠĠĠĠĠ Ġstyle : ĠStyle , ĊĠĠĠĠĠĠĠ Ġstate LiveData : ĠLive Data < State < T , ĠE >>, ĊĠĠĠĠĠĠĠ Ġempty Widget : Ġ() Ġ-> ĠWidget , ĊĠĠĠĠĠĠĠ Ġloading Widget : Ġ() Ġ-> ĠWidget , ĊĠĠĠĠĠĠĠ Ġdata Widget : Ġ( LiveData < T ?> ) Ġ-> ĠWidget , ĊĠĠĠĠĠĠĠ Ġerror Widget : Ġ( LiveData < E ?> ) Ġ-> ĠWidget ĊĠĠĠ Ġ) Ġ: Ġthis ( ĊĠĠĠĠĠĠĠ Ġfactory Ġ= Ġfactory , ĊĠĠĠĠĠĠĠ Ġid Ġ= Ġid , ĊĠĠĠĠĠĠĠ Ġstyle Ġ= Ġstyle , ĊĠĠĠĠĠĠĠ Ġstate LiveData Ġ= Ġstate LiveData , ĊĠĠĠĠĠĠĠ Ġempty Widget Ġ= Ġempty Widget (), ĊĠĠĠĠĠĠĠ Ġloading Widget Ġ= Ġloading Widget (), ĊĠĠĠĠĠĠĠ Ġdata Widget Ġ= Ġdata Widget ( state LiveData . data ()), ĊĠĠĠĠĠĠĠ Ġerror Widget Ġ= Ġerror Widget ( state LiveData . error ()) ĊĠĠĠ Ġ) ĊĊĠĠĠ Ġdata Ġclass ĠStyle ( ĊĠĠĠĠĠĠĠ Ġoverride Ġval Ġsize : ĠWidget Size Ġ= ĠWidget Size . Const ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwidth Ġ= ĠSize Spec . AS _ PARENT , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġheight Ġ= ĠSize Spec . AS _ PARENT ĊĠĠĠĠĠĠĠ Ġ), ĊĠĠĠĠĠĠĠ Ġoverride Ġval Ġbackground : ĠBackground ? Ġ= Ġnull ĊĠĠĠ Ġ) Ġ: ĠWidget . Style , ĠSized , ĠBack gro unded ĊĊĠĠĠ Ġinternal Ġobject ĠFactory Key Ġ: ĠWidget Scope . Key < V FC < State ful Widget < *, Ġ* >>> ĊĠĠĠ Ġinternal Ġobject ĠStyle Key Ġ: ĠWidget Scope . Key < Style > ĊĊĠĠĠ Ġinterface ĠId Ġ: ĠWidget Scope . Id Ċ } Ċ Ċ val ĠWidget Scope . state ful Factory : ĠV FC < State ful Widget < *, Ġ* >> ĊĠĠĠĠĠĠĠ Ġby ĠWidget Scope . read Property ( State ful Widget . Factory Key , Ġ:: state ful Widget View Factory ) Ċ Ċ var ĠWidget Scope . Builder . state ful Factory : ĠV FC < State ful Widget < *, Ġ* >> ĊĠĠĠĠĠĠĠ Ġby ĠWidget Scope . read Write Property ( State ful Widget . Factory Key , ĠWidget Scope :: state ful Factory ) Ċ Ċ val ĠWidget Scope . state ful Style : ĠStateful Widget . Style ĊĠĠĠĠĠĠĠ Ġby ĠWidget Scope . read Property ( State ful Widget . Style Key ) Ġ{ ĠStateful Widget . Style () Ġ} Ċ Ċ var ĠWidget Scope . Builder . state ful Style : ĠStateful Widget . Style ĊĠĠĠĠĠĠĠ Ġby ĠWidget Scope . read Write Property ( State ful Widget . Style Key , ĠWidget Scope :: state ful Style ) Ċ Ċ fun Ġ< T , ĠE > ĠWidget Scope . state ful ( ĊĠĠĠ Ġfactory : ĠV FC < State ful Widget < T , ĠE >> Ġ= Ġthis . state ful Factory , ĊĠĠĠ Ġstyle : ĠStateful Widget . Style Ġ= Ġthis . state ful Style , ĊĠĠĠ Ġid : ĠStateful Widget . Id ? Ġ= Ġnull , ĊĠĠĠ Ġstate : ĠLive Data < State < T , ĠE >>, ĊĠĠĠ Ġempty : Ġ() Ġ-> ĠWidget , ĊĠĠĠ Ġloading : Ġ() Ġ-> ĠWidget , ĊĠĠĠ Ġdata : Ġ( LiveData < T ?> ) Ġ-> ĠWidget , ĊĠĠĠ Ġerror : Ġ( LiveData < E ?> ) Ġ-> ĠWidget Ċ ): ĠStateful Widget < T , ĠE > Ġ{ ĊĠĠĠ Ġreturn ĠStateful Widget ( ĊĠĠĠĠĠĠĠ Ġfactory Ġ= Ġfactory , ĊĠĠĠĠĠĠĠ Ġstyle Ġ= Ġstyle , ĊĠĠĠĠĠĠĠ Ġid Ġ= Ġid , ĊĠĠĠĠĠĠĠ Ġstate LiveData Ġ= Ġstate , ĊĠĠĠĠĠĠĠ Ġempty Widget Ġ= Ġempty , ĊĠĠĠĠĠĠĠ Ġloading Widget Ġ= Ġloading , ĊĠĠĠĠĠĠĠ Ġdata Widget Ġ= Ġdata , ĊĠĠĠĠĠĠĠ Ġerror Widget Ġ= Ġerror ĊĠĠĠ Ġ) Ċ } Ċ