package Ġtech . k zen . auto . client . objects . document . report . input . select Ċ Ċ import Ġkotlinx . browser . document Ċ import Ġkotlinx . css . em Ċ import Ġkotlinx . css . fontSize Ċ import Ġkotlinx . css . width Ċ import Ġreact . R Builder Ċ import Ġreact . RP ure Component Ċ import Ġtech . k zen . auto . client . objects . document . report . input . model . Report Input Store Ċ import Ġtech . k zen . auto . client . objects . document . report . input . select . model . Input Selected State Ċ import Ġtech . k zen . auto . client . wrap . material . Material Input Label Ċ import Ġtech . k zen . auto . client . wrap . react Style Ċ import Ġtech . k zen . auto . client . wrap . select . React Select Ċ import Ġtech . k zen . auto . client . wrap . select . React Select Option Ċ import Ġtech . k zen . auto . common . objects . document . report . spec . input . Input Selection Spec Ċ import Ġtech . k zen . lib . platform . ClassName Ċ import Ġtech . k zen . lib . platform . ClassNames . top Level Words Ċ import Ġkotlin . js . Json Ċ import Ġkotlin . js . json ĊĊ Ċ class ĠInput Selected Type Controller ( ĊĠĠĠ Ġprops : ĠProps Ċ ): ĊĠĠĠ ĠRP ure Component < Input Selected Type Controller . Props , ĠInput Selected Type Controller . State >( props ) Ċ { ĊĠĠĠ Ġ// ---------------------------------------------------------------- ------------------------------------------------ - ĊĠĠĠ Ġinterface ĠProps : Ġreact . Props Ġ{ ĊĠĠĠĠĠĠĠ Ġvar Ġspec : ĠInput Selection Spec Ċ Ċ // ĠĠĠĠĠĠĠ Ġvar Ġreport State : ĠReport State Ċ // ĠĠĠĠĠĠĠ Ġvar Ġdispatcher : ĠReport Dispatcher ĊĊĠĠĠĠĠĠĠ Ġvar Ġedit Disabled : ĠBoolean ĊĊĠĠĠĠĠĠĠ Ġvar Ġinput Selected State : ĠInput Selected State ĊĠĠĠĠĠĠĠ Ġvar Ġinput Store : ĠReport Input Store ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġinterface ĠState : Ġreact . State Ġ{ Ċ // ĠĠĠĠĠĠĠ Ġvar Ġloaded DataTypes : ĠList < ClassName >? ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġ// ---------------------------------------------------------------- ------------------------------------------------ - ĊĠĠĠ Ġoverride Ġfun ĠState . init ( props : ĠProps ) Ġ{ Ċ // ĠĠĠĠĠĠĠ Ġloaded DataTypes Ġ= Ġprops . input Selected State . data Types ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġ// ---------------------------------------------------------------- ------------------------------------------------ - ĊĠĠĠ Ġprivate Ġfun Ġload If Required () Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( props . input Selected State . data Types Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġprops . input Store . selected . list DataTypes Async () ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġprivate Ġfun Ġon Value Change ( className Value : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval ĠdataType Ġ= Ġprops . spec . dataType ĊĠĠĠĠĠĠĠ Ġif Ġ( dataType . asString () Ġ== ĠclassName Value ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġval ĠclassName Ġ= ĠClass Name ( className Value ) ĊĊĠĠĠĠĠĠĠ Ġprops . input Store . selected . select DataType Async ( className ) ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġ// ---------------------------------------------------------------- ------------------------------------------------ - ĊĠĠĠ Ġprivate Ġfun Ġtype Label ( className : ĠClass Name ): ĠString Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġwords Ġ= ĠclassName . top Level Words () ĊĊĠĠĠĠĠĠĠ Ġval Ġadjusted Words Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( words . size Ġ> Ġ 1 Ġ&& Ġwords . last () Ġ== Ġ" Record ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwords . sub List ( 0 , Ġwords . size Ġ- Ġ 1 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwords ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġreturn Ġadjusted Words . join ToString (" Ġ") ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġ// ---------------------------------------------------------------- ------------------------------------------------ - ĊĠĠĠ Ġoverride Ġfun ĠR Builder . render () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġselect Id Ġ= Ġ" material - react - data - type " ĊĊĠĠĠĠĠĠĠ Ġchild ( Material Input Label :: class ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġattrs Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠhtmlFor Ġ= Ġselect Id ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstyle Ġ= Ġreact Style Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠfontSize Ġ= Ġ 0 . 8 . em ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwidth Ġ= Ġ 1 6 . em ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ+" Data ĠType " ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġval ĠdataType Ġ= Ġprops . spec . dataType ĊĠĠĠĠĠĠĠ Ġval Ġselected Option Ġ= ĠReact Select Option ( dataType . asString (), Ġtype Label ( dataType )) ĊĊĠĠĠĠĠĠĠ Ġval Ġloaded DataTypes Ġ= Ġprops . input Selected State . data Types ĊĊĠĠĠĠĠĠĠ Ġval ĠclassNames Labels Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ Ġloaded DataTypes ?. map Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠReact Select Option ( it . asString (), Ġtype Label ( it )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ?: ĠlistOf ( selected Option ) ĊĊĠĠĠĠĠĠĠ Ġval Ġselect Options Ġ= ĠclassNames Labels ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. to Typed Array () ĊĊĠĠĠĠĠĠĠ Ġchild ( React Select :: class ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġattrs Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġid Ġ= Ġselect Id ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvalue Ġ= Ġselected Option ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoptions Ġ= Ġselect Options ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠonChange Ġ= Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġon Value Change ( it . value ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġon Menu Open Ġ= Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġload If Required () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis Disabled Ġ= Ġprops . edit Disabled ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġhttps :// stackoverflow . com / a / 5 1 8 4 4 5 4 2 / 1 9 4 1 3 5 9 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġstyle Transformer : Ġ( Json , ĠJson ) Ġ-> ĠJson Ġ= Ġ{ Ġbase , Ġ_ Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtransformed Ġ= Ġjson () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtransformed . add ( base ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtransformed [" background "] Ġ= Ġ" transparent " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtransformed [" border Width "] Ġ= Ġ" 2 px " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtransformed ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġreact Styles Ġ= Ġjson () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreact Styles [" control "] Ġ= Ġstyle Transformer ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstyles Ġ= Ġreact Styles ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠNB : Ġthis Ġwas Ġcausing Ġclipping Ġwhen Ġused Ġin ĠConditional Step Display Ġtable , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠĠ Ġsee : Ġhttps :// react - select . com / advanced # portal ing ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmenu Portal Target Ġ= Ġdocument . body !! ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }