package Ġcom . jes en . compose _ b ili . ui . widget . user Ċ Ċ import Ġandroidx . compose . foundation . layout .* Ċ import Ġandroidx . compose . foundation . shape . Rounded Corner Shape Ċ import Ġandroidx . compose . foundation . text . Keyboard Actions Ċ import Ġandroidx . compose . foundation . text . Keyboard Options Ċ import Ġandroidx . compose . material .* Ċ import Ġandroidx . compose . material . icons . Icons Ċ import Ġandroidx . compose . material . icons . outlined . Visibility Ċ import Ġandroidx . compose . material . icons . outlined . Visibility Off Ċ import Ġandroidx . compose . runtime . Composable Ċ import Ġandroidx . compose . ui . Modifier Ċ import Ġandroidx . compose . ui . focus . Focus Direction Ċ import Ġandroidx . compose . ui . focus . Focus Manager Ċ import Ġandroidx . compose . ui . focus . on Focus Changed Ċ import Ġandroidx . compose . ui . graphics . Color Ċ import Ġandroidx . compose . ui . graphics . vector . Image Vector Ċ import Ġandroidx . compose . ui . text . input . I me Action Ċ import Ġandroidx . compose . ui . text . input . Password Visual Transformation Ċ import Ġandroidx . compose . ui . text . input . Visual Transformation Ċ import Ġandroidx . compose . ui . unit . dp Ċ import Ġandroidx . compose . ui . unit . sp Ċ import Ġcom . jes en . compose _ b ili . ui . theme . primary Color Ċ import Ġcom . jes en . compose _ b ili . ui . theme . primary Deep Color Ċ import Ġcom . jes en . compose _ b ili . view model . Input ViewModel Ċ import Ġkotlinx . coroutines . Coroutine Scope Ċ Ċ /** Ċ Ġ* Ġ é¡¶ éĥ¨ Top Bar Ċ Ġ* Ġ*/ Ċ @ Composable Ċ fun ĠTop Bar View ( ĊĠĠĠ Ġicon Event : Ġ@ Composable Ġ(() Ġ-> ĠUnit )? Ġ= Ġnull , ĊĠĠĠ Ġtitle Text : ĠString , ĊĠĠĠ Ġaction Event : Ġ@ Composable ĠRow Scope . () Ġ-> ĠUnit Ġ= Ġ{}, Ċ ) Ġ{ ĊĠĠĠ ĠTop AppBar ( ĊĠĠĠĠĠĠĠ Ġtitle Ġ= Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠText ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtext Ġ= Ġtitle Text , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcolor Ġ= ĠColor . Black ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ}, ĊĠĠĠĠĠĠĠ Ġnavigation Icon Ġ= Ġicon Event , ĊĠĠĠĠĠĠĠ Ġactions Ġ= Ġaction Event , ĊĠĠĠĠĠĠĠ Ġ// Ġbelow Ġline Ġis Ġuse Ġto Ġgive Ġbackground Ġcolor ĊĠĠĠĠĠĠĠ ĠbackgroundColor Ġ= ĠColor . White , ĊĠĠĠĠĠĠĠ Ġcontent Color Ġ= ĠColor . Black , ĊĠĠĠĠĠĠĠ Ġelevation Ġ= Ġ 1 2 . dp ĊĠĠĠ Ġ) Ċ } Ċ Ċ /** Ċ Ġ* Ġ çĻ»å½ķ æ³¨åĨĮ è¾ĵåħ¥ æ¡Ĩ Ċ Ġ* Ġ*/ Ċ @ Composable Ċ fun ĠInput TextField ( ĊĠĠĠ Ġlabel : ĠString , ĊĠĠĠ Ġkeyboard Options : ĠKeyboard Options Ġ= ĠKeyboard Options . Default , ĊĠĠĠ Ġvalue : ĠString , ĊĠĠĠ Ġhint : ĠString , ĊĠĠĠ Ġon ValueChanged : Ġ( String ) Ġ-> ĠUnit , ĊĠĠĠ Ġtype : ĠString ? Ġ= Ġnull , ĊĠĠĠ ĠviewModel : ĠInput ViewModel , ĊĠĠĠ Ġleading Icon : ĠImage Vector , ĊĠĠĠ Ġfocus Manager : ĠFocus Manager , Ċ ) Ġ{ ĊĊĠĠĠ Ġ// Ġ å¯Ĩçłģ è¾ĵåħ¥ ç±»åŀĭ è®¾ç½® ĊĠĠĠ Ġval Ġvisual Transformation Ġ= ĊĠĠĠĠĠĠĠ Ġif Ġ(! viewModel . show Pwd Ġ&& Ġ( type Ġ== Ġ" password " Ġ|| Ġtype Ġ== Ġ" re Password ")) ĠPassword Visual Transformation () Ġelse ĠVisual Transformation . None ĊĠĠĠ ĠTextField ( ĊĠĠĠĠĠĠĠ Ġvalue Ġ= Ġvalue , ĊĠĠĠĠĠĠĠ Ġon Value Change Ġ= Ġon ValueChanged , ĊĠĠĠĠĠĠĠ Ġtext Style Ġ= ĠLocal TextStyle . current , ĊĠĠĠĠĠĠĠ Ġlabel Ġ= Ġ{ ĠText ( text Ġ= Ġlabel ) Ġ}, ĊĠĠĠĠĠĠĠ Ġvisual Transformation Ġ= Ġvisual Transformation , ĊĠĠĠĠĠĠĠ Ġkeyboard Options Ġ= ĠKeyboard Options . Default . copy ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ ime Action Ġ= ĠI me Action . Next ĊĠĠĠĠĠĠĠ Ġ), ĊĠĠĠĠĠĠĠ Ġshape Ġ= ĠMaterial Theme . shapes . medium , ĊĠĠĠĠĠĠĠ Ġmodifier Ġ= ĠModifier ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. fill Max Width () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. on Focus Changed Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠviewModel . on Focus Hide ( it . is Focused Ġ&& Ġ( type Ġ== Ġ" password " Ġ|| Ġtype Ġ== Ġ" re Password ")) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}, ĊĠĠĠĠĠĠĠ Ġcolors Ġ= ĠTextField Defaults . textField Colors ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠbackgroundColor Ġ= ĠColor . White , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġleading Icon Color Ġ= Ġprimary Color , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfocused Indicator Color Ġ= Ġprimary Color , ĊĠĠĠĠĠĠĠ Ġ), ĊĠĠĠĠĠĠĠ Ġplaceholder Ġ= Ġ{ ĠText ( hint ) Ġ}, ĊĠĠĠĠĠĠĠ Ġleading Icon Ġ= Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠIcon ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġimage Vector Ġ= Ġleading Icon , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcontent Description Ġ= Ġnull ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ}, ĊĠĠĠĠĠĠĠ Ġkeyboard Actions Ġ= ĠKeyboard Actions ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġon Next Ġ= Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfocus Manager . move Focus ( Focus Direction . Down ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ), ĊĠĠĠĠĠĠĠ Ġtrailing Icon Ġ= Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( type Ġ== Ġ" password ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( viewModel . show Pwd ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠIcon Button ( onClick Ġ= Ġ{ ĠviewModel . on Show Pwd Change ( false ) Ġ}) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠIcon ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠIcons . Outlined . Visibility , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcontent Description Ġ= Ġnull , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠModifier . size ( 3 0 . dp ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠIcon Button ( onClick Ġ= Ġ{ ĠviewModel . on Show Pwd Change ( true ) Ġ}) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠIcon ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠIcons . Outlined . Visibility Off , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcontent Description Ġ= Ġnull , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠModifier . size ( 3 0 . dp ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ) Ċ } Ċ Ċ /** Ċ Ġ* Ġ çĻ»å½ķ æ³¨åĨĮ æĮīéĴ® Ċ Ġ* Ġ*/ Ċ @ Composable Ċ fun ĠInput To g Button ( ĊĠĠĠ Ġtext : ĠString , ĊĠĠĠ Ġscope : ĠCor outine Scope , ĊĠĠĠ ĠviewModel : ĠInput ViewModel , ĊĠĠĠ Ġscaffold State : ĠScaffold State , ĊĠĠĠ ĠonClick : Ġ() Ġ-> ĠUnit , ĊĠĠĠ Ġis Login Type : ĠBoolean Ġ= Ġfalse , Ċ ) Ġ{ ĊĠĠĠ Ġval Ġis Enabled Ġ= Ġif Ġ( is Login Type ) Ġ{ ĊĠĠĠĠĠĠĠ ĠviewModel . name . isNotBlank () Ġ&& ĠviewModel . pwd . isNotBlank () ĊĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠ ĠviewModel . name . isNotBlank () Ġ&& ĠviewModel . pwd . isNotBlank () Ġ&& ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠviewModel . re Password . isNotBlank () Ġ&& ĠviewModel . m oc Id . isNotBlank () Ġ&& ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠviewModel . orderId . isNotBlank () ĊĠĠĠ Ġ} ĊĠĠĠ ĠButton ( ĊĠĠĠĠĠĠĠ Ġmodifier Ġ= ĠModifier ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. fill Max Width () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. padding ( start Ġ= Ġ 1 0 . dp , Ġtop Ġ= Ġ 2 0 . dp , Ġend Ġ= Ġ 1 0 . dp , Ġbottom Ġ= Ġ 0 . dp ), ĊĠĠĠĠĠĠĠ ĠonClick Ġ= ĠonClick , ĊĠĠĠĠĠĠĠ Ġenabled Ġ= Ġis Enabled , ĊĠĠĠĠĠĠĠ Ġshape Ġ= ĠRo unded Corner Shape ( 5 0 ), ĊĠĠĠĠĠĠĠ Ġcolors Ġ= ĠButton Defaults . button Colors ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdisabled BackgroundColor Ġ= Ġprimary Color , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠbackgroundColor Ġ= Ġprimary Deep Color ĊĠĠĠĠĠĠĠ Ġ), ĊĠĠĠĠĠĠĠ Ġcontent Padding Ġ= ĠPadding Values ( 1 2 . dp , Ġ 1 6 . dp ) ĊĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠ ĠText ( text , Ġcolor Ġ= ĠColor . White , ĠfontSize Ġ= Ġ 1 8 . sp ) ĊĠĠĠ Ġ} Ċ } Ċ