/* Ċ Ġ* ĠCopyright Ġ 2 0 1 9 ĠI ce Rock ĠMAG ĠInc . ĠUse Ġof Ġthis Ġsource Ġcode Ġis Ġgoverned Ġby Ġthe ĠApache Ġ 2 . 0 Ġlicense . Ċ Ġ*/ Ċ Ċ package Ġcom . icer ock dev . library . sample Ċ Ċ import Ġdev . icer ock . mo ko . fields . FormField Ċ import Ġdev . icer ock . mo ko . fields . live Block Ċ import Ġdev . icer ock . mo ko . fields . validate Ċ import Ġdev . icer ock . mo ko . mv vm . view model . ViewModel Ċ import Ġdev . icer ock . mo ko . resources . desc . StringDesc Ċ import Ġdev . icer ock . mo ko . resources . desc . desc Ċ import Ġdev . icer ock . mo ko . widgets . core . widget . Button Widget Ċ import Ġdev . icer ock . mo ko . widgets . core . widget . Input Widget Ċ import Ġdev . icer ock . mo ko . widgets . core . widget . Scroll Widget Ċ import Ġdev . icer ock . mo ko . widgets . core . widget . button Ċ import Ġdev . icer ock . mo ko . widgets . core . Theme Ċ import Ġdev . icer ock . mo ko . widgets . core . Value Ċ import Ġdev . icer ock . mo ko . widgets . core . Widget Ċ import Ġdev . icer ock . mo ko . widgets . core . widget . input Ċ import Ġdev . icer ock . mo ko . widgets . core . widget . linear Ċ import Ġdev . icer ock . mo ko . widgets . core . widget . scroll Ċ import Ġdev . icer ock . mo ko . widgets . core . style . input . InputType Ċ import Ġdev . icer ock . mo ko . widgets . core . style . input . date Ċ import Ġdev . icer ock . mo ko . widgets . core . style . input . phone Ċ import Ġdev . icer ock . mo ko . widgets . core . style . view . Size Spec Ċ import Ġdev . icer ock . mo ko . widgets . core . style . view . Widget Size Ċ Ċ class ĠM commerce Profile Screen ( ĊĠĠĠ Ġprivate Ġval Ġtheme : ĠTheme , ĊĠĠĠ Ġprivate Ġval ĠviewModel : ĠM commerce Profile ViewModel Contract Ċ ) Ġ{ ĊĠĠĠ Ġfun Ġcreate Widget (): ĠWidget < Widget Size . Const < Size Spec . As Parent , ĠSize Spec . As Parent >> Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġwith ( theme ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġscroll ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġid Ġ= ĠId . Root Scroll , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsize Ġ= ĠWidget Size . As Parent , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġchild Ġ= Ġlinear ( size Ġ= ĠWidget Size . Width As Parent Height Wrap Content ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ+ input ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsize Ġ= ĠWidget Size . Width As Parent Height Wrap Content , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġid Ġ= ĠId . Name Input , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlabel Ġ= Ġconst (" ÐĴ Ð° ÑĪÐµ ĠÐ¸Ð¼ Ñı "), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfield Ġ= ĠviewModel . name Field ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ+ input ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsize Ġ= ĠWidget Size . Width As Parent Height Wrap Content , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġid Ġ= ĠId . Birth day Input , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlabel Ġ= Ġconst (" ÐĶ Ð°ÑĤÐ° ĠÑĢ Ð¾Ð¶ Ð´ ÐµÐ½Ð¸Ñı "), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfield Ġ= ĠviewModel . birthday Field , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġinput Type Ġ= ĠInput Type . date () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ+ input ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsize Ġ= ĠWidget Size . Width As Parent Height Wrap Content , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġid Ġ= ĠId . Phone Input , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlabel Ġ= Ġconst (" Ð¢ ÐµÐ» Ðµ ÑĦ Ð¾Ð½ "), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfield Ġ= ĠviewModel . phone Field , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġinput Type Ġ= ĠInput Type . phone () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ+ button ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsize Ġ= ĠWidget Size . Width As Parent Height Wrap Content , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġid Ġ= ĠId . Submit Button , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcontent Ġ= ĠButton Widget . Content . Text ( Value . data (" ÐŁ Ð¾Ð´ ÑĤ Ð²ÐµÑĢ Ð´ Ð¸ÑĤÑĮ ". desc ())), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠonTap Ġ= ĠviewModel :: on Save Pressed ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġobject ĠId Ġ{ ĊĠĠĠĠĠĠĠ Ġobject ĠRoot Scroll Ġ: ĠScroll Widget . Id ĊĠĠĠĠĠĠĠ Ġobject ĠName Input Ġ: ĠInput Widget . Id ĊĠĠĠĠĠĠĠ Ġobject ĠB irth day Input Ġ: ĠInput Widget . Id ĊĠĠĠĠĠĠĠ Ġobject ĠPhone Input Ġ: ĠInput Widget . Id ĊĠĠĠĠĠĠĠ Ġobject ĠSubmit Button Ġ: ĠButton Widget . Id ĊĠĠĠ Ġ} Ċ } Ċ Ċ interface ĠM commerce Profile ViewModel Contract Ġ{ ĊĠĠĠ Ġval Ġbirthday Field : ĠForm Field < String , ĠString Desc > ĊĠĠĠ Ġval Ġphone Field : ĠForm Field < String , ĠString Desc > ĊĠĠĠ Ġval Ġname Field : ĠForm Field < String , ĠString Desc > ĊĊĠĠĠ Ġfun Ġon Save Pressed () Ċ } Ċ Ċ class ĠM commerce Profile ViewModel Ġ: ĠViewModel (), ĠM commerce Profile ViewModel Contract Ġ{ ĊĠĠĠ Ġoverride Ġval Ġname Field : ĠForm Field < String , ĠString Desc > Ġ= ĠForm Field (" A lek sey ", Ġlive Block Ġ{ Ġnull Ġ}) ĊĠĠĠ Ġoverride Ġval Ġphone Field : ĠForm Field < String , ĠString Desc > Ġ= ĊĠĠĠĠĠĠĠ ĠForm Field ("+ 7 9 9 9 9 9 9 9 9 9 9 ", Ġlive Block Ġ{ Ġnull Ġ}) ĊĠĠĠ Ġoverride Ġval Ġbirthday Field : ĠForm Field < String , ĠString Desc > Ġ= ĊĠĠĠĠĠĠĠ ĠForm Field (" 3 1 . 0 5 . 1 9 9 3 ", Ġlive Block Ġ{ Ġnull Ġ}) ĊĊĠĠĠ Ġprivate Ġval Ġfields Ġ= ĠlistOf ( ĊĠĠĠĠĠĠĠ Ġname Field , ĊĠĠĠĠĠĠĠ Ġphone Field , ĊĠĠĠĠĠĠĠ Ġbirthday Field ĊĠĠĠ Ġ) ĊĊĠĠĠ Ġoverride Ġfun Ġon Save Pressed () Ġ{ ĊĠĠĠĠĠĠĠ Ġfields . validate () ĊĠĠĠ Ġ} Ċ } Ċ