/* Ċ Ġ* ĠCopyright ĠÂ© Ġ 2 0 2 0 , ĠSimp lex ion , ĠH ung ary Ġand Ġcontributors Ċ Ġ* Ċ Ġ* ĠThis Ġprogram Ġis Ġfree Ġsoftware : Ġyou Ġcan Ġredistribute Ġit Ġand / or Ġmodify Ċ Ġ* Ġit Ġunder Ġthe Ġterms Ġof Ġthe ĠGNU ĠAffero ĠGeneral ĠPublic ĠLicense Ġas Ċ Ġ* Ġpublished Ġby Ġthe ĠFree ĠSoftware ĠFoundation , Ġeither Ġversion Ġ 3 Ġof Ġthe Ċ Ġ* ĠLicense , Ġor Ġ( at Ġyour Ġoption ) Ġany Ġlater Ġversion . Ċ Ġ* Ċ Ġ* ĠThis Ġprogram Ġis Ġdistributed Ġin Ġthe Ġhope Ġthat Ġit Ġwill Ġbe Ġuseful , Ċ Ġ* Ġbut ĠWITHOUT ĠANY ĠWARRANTY ; Ġwithout Ġeven Ġthe Ġimplied Ġwarranty Ġof Ċ Ġ* ĠMERCHANTABILITY Ġor ĠFITNESS ĠFOR ĠA ĠPARTICULAR ĠPURPOSE . Ġ ĠSee Ġthe Ċ Ġ* ĠGNU ĠAffero ĠGeneral ĠPublic ĠLicense Ġfor Ġmore Ġdetails . Ċ Ġ* Ċ Ġ* ĠYou Ġshould Ġhave Ġreceived Ġa Ġcopy Ġof Ġthe ĠGNU ĠAffero ĠGeneral ĠPublic ĠLicense Ċ Ġ* Ġalong Ġwith Ġthis Ġprogram . Ġ ĠIf Ġnot , Ġsee Ġ< https :// www . gnu . org / licenses />. Ċ Ġ*/ Ċ package Ġz ak ad ab ar . core . browser . form Ċ Ċ import Ġkotlinx . browser . document Ċ import Ġkotlinx . datetime . Instant Ċ import Ġkotlinx . datetime . LocalDate Ċ import Ġkotlinx . datetime . LocalDateTime Ċ import Ġorg . w 3 c . dom . HTMLElement Ċ import Ġz ak ad ab ar . core . browser . Zk Element Ċ import Ġz ak ad ab ar . core . browser . Zk Element Mode Ċ import Ġz ak ad ab ar . core . browser . Zk Element State Ċ import Ġz ak ad ab ar . core . browser . application . application Ċ import Ġz ak ad ab ar . core . browser . crud . Zk Crud Editor Ċ import Ġz ak ad ab ar . core . browser . field .* Ċ import Ġz ak ad ab ar . core . browser . field . select . Radio Group Renderer Ċ import Ġz ak ad ab ar . core . browser . title bar . Zk App Title Ċ import Ġz ak ad ab ar . core . browser . title bar . Zk App Title Provider Ċ import Ġz ak ad ab ar . core . browser . title bar . Zk Local Title Provider Ċ import Ġz ak ad ab ar . core . browser . toast . Zk Toast Ċ import Ġz ak ad ab ar . core . browser . toast . toast D anger Ċ import Ġz ak ad ab ar . core . browser . toast . toast Success Ċ import Ġz ak ad ab ar . core . browser . toast . toast Warning Ċ import Ġz ak ad ab ar . core . browser . util . io Ċ import Ġz ak ad ab ar . core . browser . util . log Ċ import Ġz ak ad ab ar . core . browser . util . plus Assign Ċ import Ġz ak ad ab ar . core . data .* Ċ import Ġz ak ad ab ar . core . exception . Data Conflict Ċ import Ġz ak ad ab ar . core . resource . css . Zk Css Style Rule Ċ import Ġz ak ad ab ar . core . resource . localized Strings Ċ import Ġz ak ad ab ar . core . schema . Bo Schema Ċ import Ġz ak ad ab ar . core . schema . Validity Report Ċ import Ġz ak ad ab ar . core . util . Public Api Ċ import Ġz ak ad ab ar . core . util . UUID Ċ import Ġkotlin . reflect . K Mutable Property 0 Ċ import Ġkotlin . reflect . K Property Ċ Ċ /** Ċ Ġ* ĠBase Ġclass Ġfor ĠBO Ġforms . Ċ Ġ* Ċ Ġ* Ġ@ property Ġ Ġset App Title ĠĠ ĠWhen Ġtrue Ġ( default ) Ġthe Ġapp Ġtitle Ġbar Ġis Ġset Ġfor Ġthe Ġtable . ĠFunction Ġ[ set App Title Bar ] Ġadds Ġthe Ġtitle Ġbar . Ċ Ġ* Ġ@ property Ġ Ġadd Local Title ĠWhen Ġtrue , Ġadd Ġa Ġlocal Ġtitle Ġbar . ĠDefault Ġis Ġfalse . Ċ Ġ* Ġ@ property Ġ Ġtitle Text ĠĠĠĠ ĠTitle Ġtext Ġto Ġshow Ġin Ġthe Ġtitle Ġbar . ĠUsed Ġwhen Ġ[ title Element ] Ġis Ġnot Ġset . Ċ Ġ* Ġ@ property Ġ Ġtitle Element Ġ ĠThe Ġelement Ġof Ġthe Ġtitle . Ċ Ġ* Ġ@ property Ġ Ġauto Label Ġ ĠWhen Ġtrue Ġlabels Ġare Ġautomatically Ġadded . ĠWhen Ġfalse Ġthey Ġare Ġnot . Ċ Ġ*/ Ċ open Ġclass ĠZ k Form < T Ġ: ĠBase Bo >( ĊĠĠĠ Ġelement : ĠHTMLElement Ġ= Ġdocument . createElement (" div ") Ġas ĠHTMLElement , Ċ ) Ġ: ĠZ k Element ( element ), ĠZ k Crud Editor < T >, ĠZ k App Title Provider , ĠZ k Local Title Provider , ĠZ k Field Context Ġ{ ĊĊĠĠĠ Ġprotected Ġvar Ġ_ bo : ĠT ? Ġ= Ġnull ĊĊĠĠĠ Ġoverride Ġvar Ġbo : ĠT ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġ_ bo Ġ?: Ġthrow ĠIllegalStateException (" bo Ġis Ġnot Ġinitialized Ġyet ") ĊĠĠĠĠĠĠĠ Ġset ( value ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ_ bo Ġ= Ġvalue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġschema Ġ= Ġvalue . schema () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġvar Ġschema Ġ= ĠBo Schema . Companion . NO _ VALIDATION ĊĊĠĠĠ Ġoverride Ġlateinit Ġvar Ġmode : ĠZ k Element Mode ĊĊĠĠĠ Ġoverride Ġvar Ġset App Title Ġ= Ġtrue ĊĠĠĠ Ġoverride Ġvar Ġadd Local Title Ġ= Ġfalse ĊĠĠĠ Ġoverride Ġvar Ġtitle Text : ĠString ? Ġ= Ġnull ĊĠĠĠ Ġoverride Ġvar Ġtitle Element : ĠZ k App Title ? Ġ= Ġnull ĊĊĠĠĠ Ġvar Ġauto Label Ġ= Ġtrue ĊĊĠĠĠ Ġ@ Public Api ĊĠĠĠ Ġvar Ġfield Grid Column Template : ĠString Ġ= Ġ" minmax ( 1 5 0 px , Ġmax - content ) Ġmin max ( 1 5 0 px , 1 fr )" ĊĊĠĠĠ Ġ@ Public Api ĊĠĠĠ Ġvar Ġfield Grid Row Template : ĠString Ġ= Ġ" max - content " ĊĊĠĠĠ Ġoverride Ġvar Ġopen Update : Ġ(( bo : ĠT ) Ġ-> ĠUnit )? Ġ= Ġnull ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠA Ġfunction Ġto Ġbe Ġcalled Ġwhen Ġexecution Ġof Ġthe Ġform Ġoperation Ġhas Ġa ĠBO Ġresult . ĊĠĠĠĠ Ġ* ĠThis Ġmeans Ġthat Ġthe Ġserver Ġsent Ġa Ġresponse Ġwhich Ġis Ġsuccessful Ġat ĠHTTP Ġlevel . ĊĠĠĠĠ Ġ* ĠHowever , Ġthe Ġresponse Ġmay Ġindicate Ġan Ġerror . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ** Not Ġexecuted Ġwhen Ġthe Ġresult Ġis Ġnot Ġa ĠBusiness ĠObject .** ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġvar Ġon Execute Result : Ġ(( result Bo : ĠBase Bo ) Ġ-> ĠUnit )? Ġ= Ġnull ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠCalled Ġwhen Ġthe Ġuser Ġclicks Ġon Ġthe Ġback Ġbutton . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġoverride Ġvar Ġon Back Ġ= Ġ{ Ġapplication . back () Ġ} ĊĊĠĠĠ Ġval Ġfields Ġ= Ġmutable ListOf < Zk Field Base < *, Ġ* >>() ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠFalse Ġuntil Ġthe Ġfirst Ġtime Ġthe Ġuser Ġclicks Ġon Ġthe Ġsubmit Ġbutton . ĊĠĠĠĠ Ġ* ĠBefore Ġfirst Ġsubmit Ġthe Ġlist Ġof Ġinvalid Ġfields Ġare Ġnot Ġshown . ĊĠĠĠĠ Ġ* ĠAfter Ġthe Ġfirst Ġsubmit Ġtry Ġthe Ġlist Ġof Ġinvalid Ġfields Ġare Ġshown ĊĠĠĠĠ Ġ* Ġ( if Ġthere Ġare Ġany ) Ġand Ġis Ġupdated Ġautomatically . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġvar Ġsubmit Tou ched Ġ= Ġfalse ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠThe Ġtoast Ġthat Ġshows Ġthe Ġmessage Ġthat Ġthere Ġare Ġinvalid Ġvalues . ĊĠĠĠĠ Ġ* ĠAutomatically Ġgoes Ġhidden Ġif Ġvalidation Ġis Ġsuccessful . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġvar Ġinvalid Toast : ĠZ k Toast ? Ġ= Ġnull ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠThe Ġsubmit Ġbutton Ġelement Ġof Ġthe Ġform . ĠSet Ġby Ġ[ Zk Form Buttons ] Ġwhich Ġis ĊĠĠĠĠ Ġ* Ġadded Ġby Ġ[ build ] Ġor Ġ[ buttons ]. ĠThis Ġis Ġhere Ġso Ġwe Ġcan Ġenable Ġ/ Ġdisable ĊĠĠĠĠ Ġ* Ġthe Ġbutton Ġdepending Ġon Ġthe Ġvalidity Ġof Ġthe Ġform . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġvar Ġsubmit Button : ĠZ k Element ? Ġ= Ġnull ĊĊĠĠĠ Ġ/** ĠAn Ġelement Ġthat Ġis Ġshow Ġwhen Ġwhen Ġthe Ġform Ġis Ġsubmitting . Ġ*/ ĊĠĠĠ Ġvar Ġprogress Indicator : ĠZ k Element ? Ġ= Ġnull ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠContainer Ġto Ġdisplay Ġlist Ġof Ġthe Ġinvalid Ġfields . ĠF illed Ġautomatically Ġwhen ĊĠĠĠĠ Ġ* Ġpresent . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġvar Ġinvalid Fields : ĠZ k Invalid Field List ? Ġ= Ġnull ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠWhen Ġtrue Ġthe Ġform Ġwill Ġgo Ġback Ġone Ġpage Ġafter Ġcreate Ġis Ġsuccessful . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġvar Ġgo Back After Create : ĠBoolean Ġ= Ġtrue ĊĊĠĠĠ Ġ// Ġ------------------------------------------------------------------------- ĊĠĠĠ Ġ// Ġ ĠZ k Field Backend ĊĠĠĠ Ġ// Ġ------------------------------------------------------------------------- ĊĊĠĠĠ Ġoverride Ġval ĠreadOnly ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġmode Ġ== ĠZ k Element Mode . Read ĊĊĠĠĠ Ġoverride Ġval Ġuse Shadow ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġmode Ġin ĠlistOf ( Zk Element Mode . Create , ĠZ k Element Mode . Action , ĠZ k Element Mode . Query ) ĊĊĠĠĠ Ġoverride Ġval Ġadd Label Ġ= Ġtrue ĊĊĠĠĠ Ġoverride Ġval Ġstyles Ġ= Ġzk Form Styles ĊĊĠĠĠ Ġ// Ġ------------------------------------------------------------------------- ĊĠĠĠ Ġ// Ġ ĠLifecycle Ġfunctions ĊĠĠĠ Ġ// Ġ------------------------------------------------------------------------- ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠCalled Ġby Ġ[ onCreate ] Ġto Ġconfigure Ġthe Ġtable Ġbefore Ġbuilding Ġit . ĊĠĠĠĠ Ġ* ĠThis Ġis Ġthe Ġplace Ġto Ġadd Ġcolumns , Ġswitch Ġon Ġand Ġoff Ġfeatures . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġopen Ġfun Ġon Configure () Ġ{ ĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate () Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onCreate () ĊĠĠĠĠĠĠĠ Ġon Configure () ĊĠĠĠĠĠĠĠ Ġ+ Ġzk Form Styles . outer Container ĊĊĠĠĠĠĠĠĠ Ġif Ġ( add Local Title ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ+ Ġbuild Local Title Bar ()?. let Ġ{ Ġit ĠmarginBottom Ġ 1 0 Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Resume () Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Resume () ĊĠĠĠĠĠĠĠ Ġset App Title Bar () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ// Ġ------------------------------------------------------------------------- ĊĠĠĠ Ġ// Ġ ĠValidation Ġand Ġsubmit ĊĠĠĠ Ġ// Ġ------------------------------------------------------------------------ ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠParameter - less Ġversion Ġof Ġsubmit Ġfor Ġ[ Zk Field Context ]. ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġoverride Ġfun Ġvalidate () Ġ{ ĊĠĠĠĠĠĠĠ Ġvalidate ( submit Ġ= Ġfalse ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠValid ates Ġthe ĠBO Ġwith Ġthe Ġschema . ĠValidation Ġoccurs Ġat Ġevery ĊĠĠĠĠ Ġ* Ġchange . ĠWhen Ġthe Ġuser Ġdid Ġnot Ġtouch Ġa Ġfield Ġyet Ġa Ġvalidation ĊĠĠĠĠ Ġ* Ġfail Ġmay Ġnot Ġbe Ġdisplayed Ġfor Ġthat Ġfield . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ return Ġtrue Ġif Ġthe ĠBO Ġis Ġvalid , Ġfalse Ġotherwise ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġopen Ġfun Ġvalidate ( submit : ĠBoolean Ġ= Ġfalse ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( submit ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġsubmit Ġmarks Ġall Ġfields Ġtouched Ġto Ġshow Ġall Ġinvalid Ġfields Ġfor Ġthe Ġuser ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfields . forEach Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . touched Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsubmit Tou ched Ġ= Ġtrue ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġval Ġreport Ġ= Ġschema . validate ( mode Ġ== ĠZ k Element Mode . Create ) ĊĊĠĠĠĠĠĠĠ Ġif Ġ( submit Ġ&& Ġreport . fails . isNotEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġprintln ("${ this :: class . simple Name } Ġvalidation Ġfail :") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġprintln ( report . dump ()) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġfields . forEach Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . on Validated ( report ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġval Ġinvalid Ġ= Ġinvalid Tou ched Fields ( report ) ĊĊĠĠĠĠĠĠĠ Ġif Ġ(! Ġsubmit Tou ched Ġ|| Ġinvalid . isEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġinvalid Fields ?. hide () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġinvalid Toast ?. dispose () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġif Ġ( submit Tou ched Ġ&& Ġinvalid . isNotEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġinvalid Fields ?. show ( invalid ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġif Ġ( submit Ġ&& Ġ( invalid . isNotEmpty () Ġ|| Ġreport . fails . isNotEmpty ())) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġon Invalid Submit () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġfalse ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġreturn Ġtrue ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġopen Ġfun Ġinvalid Tou ched Fields ( report : ĠValid ity Report ): ĠList < Zk Field Base < *, Ġ* >> Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġinvalid Ġ= Ġmutable ListOf < Zk Field Base < *, Ġ* >>() ĊĊĠĠĠĠĠĠĠ Ġreport . fails . keys . forEach Ġ{ Ġprop Name Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġfield Ġ= Ġfields . first OrNull Ġ{ Ġit . prop Name Ġ== Ġprop Name Ġ} Ġ?: Ġreturn @ forEach ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( field . touched ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġinvalid Ġ+= Ġfield ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ// Ġit Ġis Ġpossible Ġthat Ġa Ġfield Ġis Ġnot Ġtouched Ġbut Ġinvalid Ġby Ġdefault ĊĠĠĠĠĠĠĠ Ġ// Ġfor Ġexample Ġa Ġmandatory Ġname Ġwhich Ġcannot Ġbe Ġblank Ġbut Ġstarts Ġwith Ġblank ĊĊĠĠĠĠĠĠĠ Ġfields . forEach Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( it . touched Ġ&& Ġ! Ġit . valid ) Ġinvalid Ġ+= Ġit ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ// Ġusing Ġdistinct Ġbecause Ġreport Ġand Ġfield . invalid Ġcan Ġadd Ġthe Ġsame Ġfield Ġtwice ĊĊĠĠĠĠĠĠĠ Ġreturn Ġinvalid . distinct () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠCallback Ġto Ġfinalize Ġthe ĠBO Ġbefore Ġsubmit Ġstarts . ĠCalled Ġbefore Ġvalidation . ĊĠĠĠĠ Ġ* ĠDefault Ġimplementation Ġdoes Ġnothing . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* ĠThis Ġis Ġa Ġsuspend Ġfunction Ġthat Ġallows Ġthe Ġform Ġperform Ġvalidations Ġthat Ġrequire ĊĠĠĠĠ Ġ* Ġbackend Ġcalls . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġopen Ġsuspend Ġfun ĠonSubmit Start () Ġ{ ĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġsubmit () Ġ{ ĊĊĠĠĠĠĠĠĠ Ġsubmit Button ?. hide () ĊĠĠĠĠĠĠĠ Ġprogress Indicator ?. show () ĊĊĠĠĠĠĠĠĠ Ġio Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠonSubmit Start () ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(! Ġvalidate ( true )) Ġreturn @ io ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwhen Ġ( mode ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠZ k Element Mode . Create Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcreated Ġ= Ġ( bo Ġas ĠEntity Bo < *> ). create () Ġas ĠEntity Bo < *> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfields . forEach Ġ{ Ġit . onCreate Success ( created ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Suppress (" UN CHECK ED _ CAST ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠonCreate Success ( created Ġas ĠT ) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( go Back After Create ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġon Back () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreset Tou ched () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠZ k Element Mode . Read Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġnothing Ġto Ġdo Ġhere ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠZ k Element Mode . Update Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ( bo Ġas ĠEntity Bo < *> ). update () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreset Tou ched () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠZ k Element Mode . Delete Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ( bo Ġas ĠEntity Bo < *> ). delete () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreset Tou ched () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠZ k Element Mode . Action Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġresult Ġ= Ġ( bo Ġas ĠAction Bo < *> ). execute () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( result Ġis ĠBase Bo ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġon Execute Result ?. let Ġ{ Ġit ( result ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreset Tou ched () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠZ k Element Mode . Query Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ( bo Ġas ĠQuery Bo < *> ). execute () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠTODO Ġdo Ġsomething Ġhere Ġwith Ġthe Ġresult ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠZ k Element Mode . Other Ġ-> Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠonSubmit Success () ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( ex : ĠData Conflict ) Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtoast D anger Ġ{ Ġlocalized Strings [ ex . message ] Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( ex : ĠException ) Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlog ( ex ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠonSubmit Error ( ex ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġfinally Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsubmit Button ?. show () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprogress Indicator ?. hide () ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprotected Ġfun Ġreset Tou ched () Ġ{ ĊĠĠĠĠĠĠĠ Ġsubmit Tou ched Ġ= Ġfalse ĊĠĠĠĠĠĠĠ Ġfields . forEach Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . touched Ġ= Ġfalse ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠCalled Ġwhen Ġthe Ġuser Ġtries Ġto Ġsubmit Ġan Ġinvalid Ġform . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* ĠDefault Ġimplementation Ġshows Ġa Ġtoast Ġwith Ġa Ġmessage . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġopen Ġfun Ġon Invalid Submit () Ġ{ ĊĠĠĠĠĠĠĠ Ġinvalid Toast Ġ= Ġtoast Warning ( hide After Ġ= Ġ 3 0 0 0 ) Ġ{ Ġlocalized Strings . invalid Fields Toast Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠCalled Ġafter Ġa Ġcreate Ġsubmit Ġsucceeded . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġ Ġcreated Ġ ĠThe ĠBO Ġthat Ġthe Ġserver Ġsent Ġback . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġopen Ġfun ĠonCreate Success ( created : ĠT ) Ġ{ ĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠCalled Ġwhen Ġsubmitting Ġthe Ġform Ġreturns Ġwith Ġa Ġsuccess . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* ĠDefault Ġimplementation Ġshows Ġa Ġtoast . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġopen Ġfun ĠonSubmit Success () Ġ{ ĊĠĠĠĠĠĠĠ Ġwhen Ġ( mode ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠZ k Element Mode . Create Ġ-> Ġtoast Success Ġ{ Ġlocalized Strings . create Success Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ ĠZ k Element Mode . Read Ġ-> ĠUnit ĊĠĠĠĠĠĠĠĠĠĠĠ ĠZ k Element Mode . Update Ġ-> Ġtoast Success Ġ{ Ġlocalized Strings . update Success Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ ĠZ k Element Mode . Delete Ġ-> Ġtoast Success Ġ{ Ġlocalized Strings . delete Success Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ ĠZ k Element Mode . Action Ġ-> Ġtoast Success Ġ{ Ġlocalized Strings . action Success Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ ĠZ k Element Mode . Query Ġ-> ĠUnit ĊĠĠĠĠĠĠĠĠĠĠĠ ĠZ k Element Mode . Other Ġ-> Ġtoast Success Ġ{ Ġlocalized Strings . action Success Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠCalled Ġwhen Ġsubmitting Ġthe Ġform Ġreturns Ġwith Ġan Ġerror . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* ĠDefault Ġimplementation Ġshows Ġa Ġtoast . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġopen Ġfun ĠonSubmit Error ( ex : ĠException ) Ġ{ ĊĠĠĠĠĠĠĠ Ġwhen Ġ( mode ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠZ k Element Mode . Create Ġ-> Ġtoast D anger Ġ{ Ġlocalized Strings . create Fail Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ ĠZ k Element Mode . Read Ġ-> ĠUnit ĊĠĠĠĠĠĠĠĠĠĠĠ ĠZ k Element Mode . Update Ġ-> Ġtoast D anger Ġ{ Ġlocalized Strings . update Fail Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ ĠZ k Element Mode . Delete Ġ-> Ġtoast D anger Ġ{ Ġlocalized Strings . delete Fail Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ ĠZ k Element Mode . Action Ġ-> Ġtoast D anger Ġ{ Ġlocalized Strings . action Fail Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ ĠZ k Element Mode . Query Ġ-> Ġtoast D anger Ġ{ Ġlocalized Strings . query Fail Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ ĠZ k Element Mode . Other Ġ-> Ġtoast D anger Ġ{ Ġlocalized Strings . action Fail Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ// Ġ------------------------------------------------------------------------- ĊĠĠĠ Ġ// Ġ ĠField Ġbuild ers ĊĠĠĠ Ġ// Ġ------------------------------------------------------------------------ ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠCreate Ġand Ġadd Ġa Ġform Ġfield . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġopen Ġfun Ġ< T Ġ: ĠZ k Field Base < *, Ġ* >, ĠPT Ġ: ĠK Property <* >> Ġadd ( property : ĠPT , Ġfunction : Ġ( PT ) Ġ-> ĠT ): ĠT Ġ= ĊĠĠĠĠĠĠĠ Ġfunction ( property ). also Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ+ Ġit ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfields Ġ+= Ġit ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġopen Ġfun Ġ< T Ġ: ĠZ k Field Base < *, Ġ* >> Ġadd ( field : ĠT ): ĠT Ġ= ĊĠĠĠĠĠĠĠ Ġfield . also Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ+ Ġit ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfields Ġ+= Ġit ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġopen Ġfun Ġbuild ( title : ĠString , Ġcreate Title : ĠString Ġ= Ġtitle , Ġcss : ĠZ k Css Style Rule ? Ġ= Ġnull , Ġadd Buttons : ĠBoolean Ġ= Ġtrue , Ġbuilder : Ġ() Ġ-> ĠUnit ) Ġ{ ĊĠĠĠĠĠĠĠ Ġthis . title Text Ġ= Ġif Ġ( mode Ġ== ĠZ k Element Mode . Create ) Ġcreate Title Ġelse Ġtitle ĊĊĠĠĠĠĠĠĠ Ġ// Ġthis Ġlets Ġbuild Ġbe Ġcalled Ġfrom Ġan ĠIO Ġblock Ġafter Ġon Resume Ġran ĊĠĠĠĠĠĠĠ Ġif Ġ( life Cycle State Ġ== ĠZ k Element State . Res umed Ġ&& Ġset App Title ) Ġset App Title Bar () ĊĊĠĠĠĠĠĠĠ Ġ+ Ġdiv ( zk Form Styles . content Container ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ+ Ġcolumn ( zk Form Styles . form ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcss ?. let Ġ{ Ġbuild Point . classList Ġ+= Ġit Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbuilder () ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( add Buttons ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ+ Ġbuttons () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ+ Ġinvalid Field List () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġbuttons () Ġ= ĠZ k Form Buttons ( this @ Zk Form ) ĊĊĠĠĠ Ġopen Ġfun Ġinvalid Field List () Ġ= ĠZ k Invalid Field List (). also Ġ{ Ġinvalid Fields Ġ= Ġit Ġ}. hide () ĊĊĠĠĠ Ġfun Ġsection ( title : ĠString ? Ġ= Ġnull , Ġsummary : ĠString ? Ġ= Ġnull , Ġfield Grid : ĠBoolean Ġ= Ġtrue , Ġcss : ĠZ k Css Style Rule ? Ġ= Ġnull , Ġbuilder : ĠZ k Element . () Ġ-> ĠUnit ): ĠZ k Form Section Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġif Ġ( field Grid ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠZ k Form Section ( title , Ġsummary , Ġcss ) Ġ{ Ġ+ Ġfield Grid Ġ{ Ġbuilder () Ġ} Ġ} ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠZ k Form Section ( title , Ġsummary , Ġcss ) Ġ{ Ġ+ Ġwithout Field Grid Ġ{ Ġbuilder () Ġ} Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġwithout Field Grid ( build : ĠZ k Element . () Ġ-> ĠUnit ) Ġ= ĊĠĠĠĠĠĠĠ Ġdiv ( build Ġ= Ġbuild ) ĊĊĠĠĠ Ġfun Ġfield Grid ( build : ĠZ k Element . () Ġ-> ĠUnit ) Ġ= ĊĠĠĠĠĠĠĠ Ġgrid ( style Ġ= Ġ" grid - template - columns : Ġ$ field Grid Column Template ; Ġgap : Ġ 0 ; Ġgrid - auto - rows : Ġ$ field Grid Row Template ", Ġbuild Ġ= Ġbuild ) ĊĊĠĠĠ Ġ@ Deprecated (" EOL : Ġ 2 0 2 1 . 8 . 1 Ġ Ġ- Ġ Ġuse Ġsimple Ġsection Ġinstead ", ĠReplace With (" section ( title , Ġsummary , Ġbuilder ) ")) ĊĠĠĠ Ġfun Ġfield Grid Section ( title : ĠString , Ġsummary : ĠString Ġ= Ġ"", Ġcss : ĠZ k Css Style Rule ? Ġ= Ġnull , Ġbuilder : ĠZ k Element . () Ġ-> ĠUnit ) Ġ= ĊĠĠĠĠĠĠĠ Ġsection ( title , Ġsummary , Ġtrue , Ġcss , Ġbuilder ) ĊĊĠĠĠ Ġfun Ġ< T Ġ: ĠEntity Bo < T >> ĠList < T >. by ( field : Ġ( it : ĠT ) Ġ-> ĠString ) Ġ= Ġmap Ġ{ Ġit . id Ġto Ġfield ( it ) Ġ}. sorted By Ġ{ Ġit . second Ġ} ĊĊĠĠĠ Ġ@ Deprecated (" use Ġ'. as Select ' Ġinstead ") ĊĠĠĠ Ġfun Ġselect ( k Property 0 : ĠK Mutable Property 0 < String >, Ġlabel : ĠString ? Ġ= Ġnull , Ġsort Options : ĠBoolean Ġ= Ġtrue , Ġoptions : ĠList < String >): ĠZ k String Select Field Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġadd ( k Property 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠZ k String Select Field ( this @ Zk Form , Ġk Property 0 ). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfetch Ġ= Ġsuspend Ġ{ Ġoptions . map Ġ{ ĠPair ( it , Ġit ) Ġ} Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Deprecated (" use Ġ'. as Select ' Ġinstead ") ĊĠĠĠ Ġfun Ġselect ( k Property 0 : ĠK Mutable Property 0 < String ? >, Ġoptions : ĠList < String >): ĠZ k Opt String Select Field Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġadd ( k Property 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠZ k Opt String Select Field ( this @ Zk Form , Ġk Property 0 ). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfetch Ġ= Ġsuspend Ġ{ Ġoptions . map Ġ{ ĠPair ( it , Ġit ) Ġ} Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Deprecated (" Use Ġ'+' Ġinstead .") ĊĠĠĠ Ġinline Ġfun Ġ< re ified ĠE Ġ: ĠEnum < E >> Ġselect ( k Property 0 : ĠK Mutable Property 0 < E >): ĠZ k Enum Select Field < E > Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġ(+ Ġk Property 0 ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Js Name (" Form Opt Enum Select ") ĊĠĠĠ Ġ@ Deprecated (" Use Ġ'+' Ġinstead .") ĊĠĠĠ Ġinline Ġfun Ġ< re ified ĠE Ġ: ĠEnum < E >> Ġselect ( k Property 0 : ĠK Mutable Property 0 < E ?> ): ĠZ k Opt Enum Select Field < E > Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġ(+ Ġk Property 0 ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Deprecated (" Use Ġ'. as TextArea ()' Ġinstead ") ĊĠĠĠ Ġfun Ġtextarea ( k Property 0 : ĠK Mutable Property 0 < String >, Ġbuilder : ĠZ k TextArea Field . () Ġ-> ĠUnit Ġ= Ġ{ Ġ}): ĠZ k TextArea Field Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġfield Ġ= ĠZ k TextArea Field ( this @ Zk Form , Ġk Property 0 ) ĊĠĠĠĠĠĠĠ Ġfields Ġ+= Ġfield ĊĠĠĠĠĠĠĠ Ġfield . builder () ĊĠĠĠĠĠĠĠ Ġreturn Ġfield ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Deprecated (" Use Ġ'. as TextArea ()' Ġinstead ") ĊĠĠĠ Ġfun Ġtextarea ( k Property 0 : ĠK Mutable Property 0 < String ? >, Ġbuilder : ĠZ k Element . () Ġ-> ĠUnit Ġ= Ġ{ Ġ}): ĠZ k Opt TextArea Field Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġfield Ġ= ĠZ k Opt TextArea Field ( this @ Zk Form , Ġk Property 0 ) ĊĠĠĠĠĠĠĠ Ġfields Ġ+= Ġfield ĊĠĠĠĠĠĠĠ Ġfield . builder () ĊĠĠĠĠĠĠĠ Ġreturn Ġfield ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġopt ( k Property 0 : ĠK Mutable Property 0 < Boolean ? >, Ġtrue Text : ĠString , Ġfalse Text : ĠString , Ġbuilder : ĠZ k Opt BooleanField . () Ġ-> ĠUnit Ġ= Ġ{ Ġ}): ĠZ k Opt BooleanField Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġoptions Ġ= ĠlistOf ( true Ġto Ġtrue Text , Ġfalse Ġto Ġfalse Text ) ĊĠĠĠĠĠĠĠ Ġval Ġfield Ġ= ĠZ k Opt BooleanField ( this @ Zk Form , Ġk Property 0 ). also Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . fetch Ġ= Ġ{ Ġoptions Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġfields Ġ+= Ġfield ĊĠĠĠĠĠĠĠ Ġfield . builder () ĊĠĠĠĠĠĠĠ Ġreturn Ġfield ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġconst String ( label : ĠString , Ġvalue : Ġ() Ġ-> ĠString ): ĠZ k Const StringField Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġfield Ġ= ĠZ k Const StringField ( this @ Zk Form , Ġlabel , Ġvalue ()) ĊĠĠĠĠĠĠĠ Ġfields Ġ+= Ġfield ĊĠĠĠĠĠĠĠ Ġreturn Ġfield ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠField Ġfor Ġa Ġnew Ġsecret Ġ( password ). ĠIn structs Ġbrowsers Ġnot Ġto Ġfill Ġthe Ġcontent Ġwith Ġold Ġpassword . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġ@ Deprecated (" EOL : Ġ 2 0 2 1 . 8 . 1 Ġ Ġ- Ġ Ġuse Ġ+ bo :: field Ġnew Secret Ġtrue ") ĊĠĠĠ Ġfun Ġnew Secret ( prop : ĠK Mutable Property 0 < Secret >): ĠZ k Secret Field Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġfield Ġ= ĠZ k Secret Field ( this @ Zk Form , Ġprop , Ġnew Secret Ġ= Ġtrue ) ĊĠĠĠĠĠĠĠ Ġ+ Ġfield ĊĠĠĠĠĠĠĠ Ġfields Ġ+= Ġfield ĊĠĠĠĠĠĠĠ Ġreturn Ġfield ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠField Ġfor Ġa Ġnew Ġsecret Ġ( password ). ĠIn structs Ġbrowsers Ġnot Ġto Ġfill Ġthe Ġcontent Ġwith Ġold Ġpassword . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġ@ Deprecated (" EOL : Ġ 2 0 2 1 . 8 . 1 Ġ Ġ- Ġ Ġuse Ġ+ bo :: field Ġnew Secret Ġtrue ") ĊĠĠĠ Ġfun Ġnew Secret ( prop : ĠK Mutable Property 0 < Secret ?> ): ĠZ k Opt Secret Field Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġfield Ġ= ĠZ k Opt Secret Field ( this @ Zk Form , Ġprop , Ġnew Secret Ġ= Ġtrue ) ĊĠĠĠĠĠĠĠ Ġ+ Ġfield ĊĠĠĠĠĠĠĠ Ġfields Ġ+= Ġfield ĊĠĠĠĠĠĠĠ Ġreturn Ġfield ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġif Not Create ( build : ĠZ k Element . () Ġ-> ĠUnit ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( mode Ġ== ĠZ k Element Mode . Create ) Ġreturn ĊĠĠĠĠĠĠĠ Ġbuild () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ// Ġ------------------------------------------------------------------------- ĊĠĠĠ Ġ// Ġ ĠProperty Ġfield Ġbuilder Ġsh orth ands ĊĠĠĠ Ġ// Ġ------------------------------------------------------------------------ ĊĊĠĠĠ Ġoperator Ġfun ĠK Mutable Property 0 < EntityId < T >> . unary Plus (): ĠZ k EntityId Field < T > Ġ= ĊĠĠĠĠĠĠĠ Ġadd ( this ) Ġ{ Ġprop Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ ĠZ k EntityId Field ( this @ Zk Form , Ġprop ). also Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( mode Ġ== ĠZ k Element Mode . Create Ġ&& Ġprop . name Ġ== Ġ" id ") Ġit . hide () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġoperator Ġfun Ġ< ST Ġ: ĠEntity Bo < ST >> ĠK Mutable Property 0 < EntityId < ST >> . unary Plus (): ĠZ k Entity Select Field < ST > Ġ= ĊĠĠĠĠĠĠĠ Ġadd ( this ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠZ k Entity Select Field ( this @ Zk Form , Ġit ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġoperator Ġfun Ġ< ST Ġ: ĠEntity Bo < ST >> ĠK Mutable Property 0 < EntityId < ST > ?> . unary Plus (): ĠZ k Opt Entity Select Field < ST > Ġ= ĊĠĠĠĠĠĠĠ Ġadd ( this ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠZ k Opt Entity Select Field ( this @ Zk Form , Ġit ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġoperator Ġfun ĠK Mutable Property 0 < String >. unary Plus (): ĠZ k StringField Ġ= ĊĠĠĠĠĠĠĠ Ġadd ( this ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠZ k StringField ( this @ Zk Form , Ġit ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġoperator Ġfun ĠK Mutable Property 0 < String ?> . unary Plus (): ĠZ k Opt StringField Ġ= ĊĠĠĠĠĠĠĠ Ġadd ( this ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠZ k Opt StringField ( this @ Zk Form , Ġit ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġoperator Ġfun ĠK Mutable Property 0 < Int >. unary Plus (): ĠZ k Int Field Ġ= ĊĠĠĠĠĠĠĠ Ġadd ( this ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠZ k Int Field ( this @ Zk Form , Ġit ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġoperator Ġfun ĠK Mutable Property 0 < Int ?> . unary Plus (): ĠZ k Opt Int Field Ġ= ĊĠĠĠĠĠĠĠ Ġadd ( this ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠZ k Opt Int Field ( this @ Zk Form , Ġit ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġoperator Ġfun ĠK Mutable Property 0 < Long >. unary Plus (): ĠZ k Long Field Ġ= ĊĠĠĠĠĠĠĠ Ġadd ( this ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠZ k Long Field ( this @ Zk Form , Ġit ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġoperator Ġfun ĠK Mutable Property 0 < Long ?> . unary Plus (): ĠZ k Opt Long Field Ġ= ĊĠĠĠĠĠĠĠ Ġadd ( this ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠZ k Opt Long Field ( this @ Zk Form , Ġit ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġoperator Ġfun ĠK Mutable Property 0 < Double >. unary Plus (): ĠZ k Double Field Ġ= ĊĠĠĠĠĠĠĠ Ġadd ( this ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠZ k Double Field ( this @ Zk Form , Ġit ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġoperator Ġfun ĠK Mutable Property 0 < Double ?> . unary Plus (): ĠZ k Opt Double Field Ġ= ĊĠĠĠĠĠĠĠ Ġadd ( this ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠZ k Opt Double Field ( this @ Zk Form , Ġit ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġoperator Ġfun ĠK Mutable Property 0 < Boolean >. unary Plus (): ĠZ k BooleanField Ġ= ĊĠĠĠĠĠĠĠ Ġadd ( this ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠZ k BooleanField ( this @ Zk Form , Ġit ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġoperator Ġfun ĠK Mutable Property 0 < Instant >. unary Plus (): ĠZ k Instant Field Ġ= ĊĠĠĠĠĠĠĠ Ġadd ( this ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠZ k Instant Field ( this @ Zk Form , Ġit ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġoperator Ġfun ĠK Mutable Property 0 < Instant ?> . unary Plus (): ĠZ k Opt Instant Field Ġ= ĊĠĠĠĠĠĠĠ Ġadd ( this ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠZ k Opt Instant Field ( this @ Zk Form , Ġit ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġoperator Ġfun ĠK Mutable Property 0 < LocalDate >. unary Plus (): ĠZ k LocalDate Field Ġ= ĊĠĠĠĠĠĠĠ Ġadd ( this ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠZ k LocalDate Field ( this @ Zk Form , Ġit ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġoperator Ġfun ĠK Mutable Property 0 < LocalDate ?> . unary Plus (): ĠZ k Opt LocalDate Field Ġ= ĊĠĠĠĠĠĠĠ Ġadd ( this ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠZ k Opt LocalDate Field ( this @ Zk Form , Ġit ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġoperator Ġfun ĠK Mutable Property 0 < LocalDateTime >. unary Plus (): ĠZ k LocalDateTime Field Ġ= ĊĠĠĠĠĠĠĠ Ġadd ( this ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠZ k LocalDateTime Field ( this @ Zk Form , Ġit ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġoperator Ġfun ĠK Mutable Property 0 < LocalDateTime ?> . unary Plus (): ĠZ k Opt LocalDateTime Field Ġ= ĊĠĠĠĠĠĠĠ Ġadd ( this ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠZ k Opt LocalDateTime Field ( this @ Zk Form , Ġit ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġoperator Ġfun ĠK Mutable Property 0 < Secret >. unary Plus (): ĠZ k Secret Field Ġ= ĊĠĠĠĠĠĠĠ Ġadd ( this ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠZ k Secret Field ( this @ Zk Form , Ġthis ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġoperator Ġfun ĠK Mutable Property 0 < Secret ?> . unary Plus (): ĠZ k Opt Secret Field Ġ= ĊĠĠĠĠĠĠĠ Ġadd ( this ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠZ k Opt Secret Field ( this @ Zk Form , Ġit ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġoperator Ġfun ĠK Mutable Property 0 < UUID >. unary Plus (): ĠZ k Uuid Field Ġ= ĊĠĠĠĠĠĠĠ Ġadd ( this ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠZ k Uuid Field ( this @ Zk Form , Ġit ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġoperator Ġfun ĠK Mutable Property 0 < UUID ?> . unary Plus (): ĠZ k Opt Uuid Field Ġ= ĊĠĠĠĠĠĠĠ Ġadd ( this ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠZ k Opt Uuid Field ( this @ Zk Form , Ġit ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġinline Ġoperator Ġfun Ġ< re ified ĠE Ġ: ĠEnum < E >> ĠK Mutable Property 0 < E >. unary Plus (): ĠZ k Enum Select Field < E > Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġoptions Ġ= Ġenum Values < E >(). map Ġ{ Ġit Ġto Ġlocalized Strings . get Normalized ( it . name ) Ġ} Ġ// Ġthis Ġis Ġa Ġnon - translated Ġto Ġtranslated Ġmapping ĊĠĠĠĠĠĠĠ Ġreturn Ġadd ( this ) Ġ{ Ġprop Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ ĠZ k Enum Select Field ( this @ Zk Form , Ġprop ) Ġ{ Ġenum ValueOf ( it ) Ġ}. apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfetch Ġ= Ġ{ Ġoptions Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Js Name (" Form Opt Enum Unary Plus ") ĊĠĠĠ Ġinline Ġoperator Ġfun Ġ< re ified ĠE Ġ: ĠEnum < E >> ĠK Mutable Property 0 < E ?> . unary Plus (): ĠZ k Opt Enum Select Field < E > Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġoptions Ġ= Ġenum Values < E >(). map Ġ{ Ġit Ġto Ġlocalized Strings . get Normalized ( it . name ) Ġ} Ġ// Ġthis Ġis Ġa Ġnon - translated Ġto Ġtranslated Ġmapping ĊĠĠĠĠĠĠĠ Ġreturn Ġadd ( this ) Ġ{ Ġprop Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ ĠZ k Opt Enum Select Field ( this @ Zk Form , Ġprop ) Ġ{ Ġenum ValueOf ( it ) Ġ}. apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfetch Ġ= Ġ{ Ġoptions Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ// Ġ------------------------------------------------------------------------- ĊĠĠĠ Ġ// Ġ ĠTrans formed Ġadds ĊĠĠĠ Ġ// Ġ------------------------------------------------------------------------ ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠThis Ġclass Ġis Ġused Ġto Ġwrap Ġtransformed Ġadds Ġso Ġform Ġspecific Ġ` unary Plus ` ĊĠĠĠĠ Ġ* Ġis Ġcalled Ġinstead Ġof Ġthe Ġone Ġfrom Ġ[ Zk Element ]. ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġinner Ġclass ĠForm Field Wrapper < FT Ġ: ĠZ k Field Base < *, Ġ* >>( ĊĠĠĠĠĠĠĠ Ġval Ġfield : ĠFT ĊĠĠĠ Ġ) ĊĊĠĠĠ Ġinline Ġoperator Ġfun Ġ< re ified ĠFT Ġ: ĠZ k Field Base < *, Ġ* >> ĠForm Field Wrapper < FT >. unary Plus (): ĠFT Ġ= ĊĠĠĠĠĠĠĠ Ġadd ( this . field ) ĊĊĠĠĠ Ġfun ĠK Mutable Property 0 < String >. as Select (): ĠForm Field Wrapper < Zk String Select Field > Ġ= ĊĠĠĠĠĠĠĠ ĠForm Field Wrapper ( Zk String Select Field ( this @ Zk Form , Ġthis )) ĊĊĠĠĠ Ġfun ĠK Mutable Property 0 < String ?> . as Select (): ĠForm Field Wrapper < Zk Opt String Select Field > Ġ= ĊĠĠĠĠĠĠĠ ĠForm Field Wrapper ( Zk Opt String Select Field ( this @ Zk Form , Ġthis )) ĊĊĠĠĠ Ġfun ĠK Mutable Property 0 < String >. as Radio Group (): ĠForm Field Wrapper < Zk String Select Field > Ġ= ĊĠĠĠĠĠĠĠ ĠForm Field Wrapper ( Zk String Select Field ( this @ Zk Form , Ġthis , ĠRadio Group Renderer ())) ĊĊĠĠĠ Ġfun ĠK Mutable Property 0 < String ?> . as Radio Group (): ĠForm Field Wrapper < Zk Opt String Select Field > Ġ= ĊĠĠĠĠĠĠĠ ĠForm Field Wrapper ( Zk Opt String Select Field ( this @ Zk Form , Ġthis , ĠRadio Group Renderer ())) ĊĊĠĠĠ Ġfun ĠK Mutable Property 0 < String >. as TextArea ( builder : ĠZ k TextArea Field . () Ġ-> ĠUnit Ġ= Ġ{ Ġ}): ĠForm Field Wrapper < Zk TextArea Field > Ġ= ĊĠĠĠĠĠĠĠ ĠForm Field Wrapper ( Zk TextArea Field ( this @ Zk Form , Ġthis ). also ( builder )) ĊĊĠĠĠ Ġfun ĠK Mutable Property 0 < String ?> . as TextArea ( builder : ĠZ k Opt TextArea Field . () Ġ-> ĠUnit Ġ= Ġ{ Ġ}): ĠForm Field Wrapper < Zk Opt TextArea Field > Ġ= ĊĠĠĠĠĠĠĠ ĠForm Field Wrapper ( Zk Opt TextArea Field ( this @ Zk Form , Ġthis ). also ( builder )) ĊĊĠĠĠ Ġinline Ġfun Ġ< re ified ĠE Ġ: ĠEnum < E >> ĠK Mutable Property 0 < E >. as Radio Group (): ĠForm Field Wrapper < Zk Enum Select Field < E >> Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġoptions Ġ= Ġenum Values < E >(). map Ġ{ Ġit Ġto Ġlocalized Strings . get Normalized ( it . name ) Ġ} Ġ// Ġthis Ġis Ġa Ġnon - translated Ġto Ġtranslated Ġmapping ĊĠĠĠĠĠĠĠ Ġreturn ĠForm Field Wrapper ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠZ k Enum Select Field ( this @ Zk Form , Ġthis , ĠRadio Group Renderer ()) Ġ{ Ġenum ValueOf ( it ) Ġ}. apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfetch Ġ= Ġ{ Ġoptions Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Js Name (" Form Opt Enum As Choice ") ĊĠĠĠ Ġinline Ġfun Ġ< re ified ĠE Ġ: ĠEnum < E >> ĠK Mutable Property 0 < E ?> . as Radio Group (): ĠForm Field Wrapper < Zk Opt Enum Select Field < E >> Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġoptions Ġ= Ġenum Values < E >(). map Ġ{ Ġit Ġto Ġlocalized Strings . get Normalized ( it . name ) Ġ} Ġ// Ġthis Ġis Ġa Ġnon - translated Ġto Ġtranslated Ġmapping ĊĠĠĠĠĠĠĠ Ġreturn ĠForm Field Wrapper ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠZ k Opt Enum Select Field ( this @ Zk Form , Ġthis , ĠRadio Group Renderer ()) Ġ{ Ġenum ValueOf ( it ) Ġ}. apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfetch Ġ= Ġ{ Ġoptions Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ// Ġ------------------------------------------------------------------------- ĊĠĠĠ Ġ// Ġ ĠProperty Ġfield Ġconvenience Ġmethods ĊĠĠĠ Ġ// Ġ------------------------------------------------------------------------ ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠFind Ġa Ġfield Ġfor Ġthis Ġproperty . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun ĠK Mutable Property 0 <* >. find (): ĠZ k Field Base < *, Ġ*> Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġfields . first Ġ{ Ġit . prop Name Ġ== Ġthis . name Ġ} ĊĠĠĠ Ġ} ĊĊ Ċ // Ġ------------------------------------------------------------------------- Ċ // Ġ ĠOption Ġset ters Ċ // Ġ------------------------------------------------------------------------ Ċ Ċ // ĠThese Ġset ters Ġare Ġhere Ġbecause ĠI Ġwant Ġthe Ġeditor Ġto Ġshow Ġthe Ġsetter Ġin Ġdifferent Ġcolor . Ċ // ĠI Ġknow Ġthis Ġis Ġa Ġminor Ġdetail , Ġbut ĠI Ġfeel Ġit Ġmakes Ġthe Ġform Ġcode Ġmuch Ġmore Ġreadable . ĊĊĠĠĠ Ġin fix Ġfun ĠZ k Element . label ( value : ĠString ): ĠZ k Element Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( this Ġis ĠZ k Field Base < *, * >) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis . label Text Ġ= Ġvalue ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġthis ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġin fix Ġfun ĠZ k Element . readOnly ( value : ĠBoolean ): ĠZ k Element Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( this Ġis ĠZ k Field Base < *, * >) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis . readOnly Ġ= Ġvalue ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġthis ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Suppress (" UN CHECK ED _ CAST ") ĊĠĠĠ Ġin fix Ġfun Ġ< DT , ĠFT Ġ: ĠZ k Field Base < DT , ĠFT >> ĠZ k Field Base < DT , ĠFT >. label ( value : ĠString ): ĠFT Ġ{ ĊĠĠĠĠĠĠĠ Ġthis . label Text Ġ= Ġvalue ĊĠĠĠĠĠĠĠ Ġreturn Ġthis Ġas ĠFT ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Suppress (" UN CHECK ED _ CAST ") ĊĠĠĠ Ġin fix Ġfun Ġ< DT , ĠFT Ġ: ĠZ k Field Base < DT , ĠFT >> ĠZ k Field Base < DT , ĠFT >. readOnly ( value : ĠBoolean ): ĠFT Ġ{ ĊĠĠĠĠĠĠĠ Ġthis . readOnly Ġ= Ġvalue ĊĠĠĠĠĠĠĠ Ġreturn Ġthis Ġas ĠFT ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Suppress (" UN CHECK ED _ CAST ") ĊĠĠĠ Ġin fix Ġfun Ġ< DT , ĠFT Ġ: ĠZ k Field Base < DT , ĠFT >> ĠZ k Field Base < DT , ĠFT >. save As ( block : Ġ( it : ĠFT ) Ġ-> ĠUnit ): ĠFT Ġ{ ĊĠĠĠĠĠĠĠ Ġthis Ġas ĠFT ĊĠĠĠĠĠĠĠ Ġblock ( this ) ĊĠĠĠĠĠĠĠ Ġreturn Ġthis ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Suppress (" UN CHECK ED _ CAST ") ĊĠĠĠ Ġin fix Ġfun Ġ< DT , ĠFT Ġ: ĠZ k Field Base < DT , ĠFT >> ĠZ k Field Base < DT , ĠFT >. save As ( prop : ĠK Mutable Property 0 < FT >): ĠFT Ġ{ ĊĠĠĠĠĠĠĠ Ġthis Ġas ĠFT ĊĠĠĠĠĠĠĠ Ġprop . set ( this ) ĊĠĠĠĠĠĠĠ Ġreturn Ġthis ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Suppress (" UN CHECK ED _ CAST ") ĊĠĠĠ Ġin fix Ġfun Ġ< VT , ĠFT Ġ: ĠZ k Select Base < VT , ĠFT >> ĠZ k Select Base < VT , ĠFT >. sort ( value : ĠBoolean ): ĠFT Ġ{ ĊĠĠĠĠĠĠĠ Ġsort Ġ= Ġvalue ĊĠĠĠĠĠĠĠ Ġreturn Ġthis Ġas ĠFT ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Suppress (" UN CHECK ED _ CAST ") ĊĠĠĠ Ġin fix Ġfun Ġ< VT , ĠFT Ġ: ĠZ k Select Base < VT , ĠFT >> ĠZ k Select Base < VT , ĠFT >. query ( block : Ġsuspend Ġ() Ġ-> ĠList < Pair < VT , ĠString >> ): ĠFT Ġ{ ĊĠĠĠĠĠĠĠ Ġfetch Ġ= Ġblock ĊĠĠĠĠĠĠĠ Ġreturn Ġthis Ġas ĠFT ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Suppress (" UN CHECK ED _ CAST ") ĊĠĠĠ Ġin fix Ġfun Ġ< VT , ĠFT Ġ: ĠZ k Select Base < VT , ĠFT >> ĠZ k Select Base < VT , ĠFT >. on Select ( on Select : Ġ( Pair < VT , ĠString > ?) Ġ-> ĠUnit ): ĠFT Ġ{ ĊĠĠĠĠĠĠĠ Ġthis . on Select Callback Ġ= ĠonSelect ĊĠĠĠĠĠĠĠ Ġreturn Ġthis Ġas ĠFT ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Suppress (" UN CHECK ED _ CAST ") ĊĠĠĠ Ġ@ Public Api ĊĠĠĠ Ġin fix Ġfun Ġ< DT , ĠFT Ġ: ĠZ k Field Base < DT , ĠFT >> ĠZ k Field Base < DT , ĠFT >. onChange ( block : Ġ( DT ) Ġ-> ĠUnit ): ĠFT Ġ{ ĊĠĠĠĠĠĠĠ ĠonChange Callback Ġ= Ġ{ Ġ_, Ġvalue , Ġ_ Ġ-> Ġblock ( value ) Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġthis Ġas ĠFT ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Suppress (" UN CHECK ED _ CAST ") ĊĠĠĠ Ġ@ Public Api ĊĠĠĠ Ġin fix Ġfun Ġ< DT , ĠFT Ġ: ĠZ k Field Base < DT , ĠFT >> ĠZ k Field Base < DT , ĠFT >. onChange 3 ( block : Ġ( Change Origin , ĠDT , ĠFT ) Ġ-> ĠUnit ): ĠFT Ġ{ ĊĠĠĠĠĠĠĠ ĠonChange Callback Ġ= Ġblock ĊĠĠĠĠĠĠĠ Ġreturn Ġthis Ġas ĠFT ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Suppress (" UN CHECK ED _ CAST ") ĊĠĠĠ Ġ@ Public Api ĊĠĠĠ Ġin fix Ġfun Ġ< DT , ĠFT Ġ: ĠZ k String Base < DT , ĠFT >> ĠZ k String Base < DT , ĠFT >. submit On Enter ( submit : ĠBoolean ): ĠFT Ġ{ ĊĠĠĠĠĠĠĠ Ġsubmit On Enter Ġ= Ġsubmit ĊĠĠĠĠĠĠĠ Ġreturn Ġthis Ġas ĠFT ĊĠĠĠ Ġ} Ċ }