package Ġkotlinx . kotlin ui Ċ Ċ import Ġkotlinx . serialization . json .* Ċ import Ġkotlinx . serialization . modules .* Ċ import Ġjava . lang . Exception Ċ Ċ class ĠJson Preview < Content Ġ: ĠView >( content : ĠView Builder . () Ġ-> ĠContent ) Ġ: ĠView Ġ{ ĊĠĠĠ Ġ// ĠThe Ġjson Ġpreview 's Ġcontent . ĊĠĠĠ Ġval Ġcontent : ĠContent Ġ= Ġcontent ( View Builder ) ĊĊĠĠĠ Ġ// ĠThe Ġjson Ġpreview 's Ġcontent . ĊĠĠĠ Ġlateinit Ġvar Ġcontent 2 : ĠAny View ĊĊĠĠĠ Ġ// ĠThe Ġjson Ġpreview 's Ġdata . ĊĠĠĠ Ġlateinit Ġvar Ġdata : ĠString ĊĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġview Ġ= Ġthis . content ĊĠĠĠĠĠĠĠ Ġval Ġcontext Ġ= ĠJson Context [ view ] ĊĠĠĠĠĠĠĠ Ġwith ( context ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġdata ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġjson Ġ= ĠJson Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġserializers Module Ġ= ĠSerial izers Module Ġ{ Ġcontext ual ( Json UI Serializer . UserInfo Json Context ( context )) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpretty Print Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdata Ġ= Ġjson . encode ToString ( Json UI . serializer (), ĠJson UI < Text >( view )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprintln ( data ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdata Ġ= Ġe . localized Message !! ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcontent 2 Ġ= ĠAny View ( Text (" ERROR ")) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn @ with ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġcontent 2 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġjson Ġ= ĠJson Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġserializers Module Ġ= ĠSerial izers Module Ġ{ Ġcontext ual ( Json UI Serializer . UserInfo Json ( data )) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġjson UI Ġ= Ġjson . decode FromString ( Json UI . serializer (), Ġdata ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcontent 2 Ġ= Ġjson UI . any View Ġ?: ĠAny View ( Text (" ERROR : not Any View ")) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdata Ġ= Ġe . localized Message !! ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcontent 2 Ġ= ĠAny View ( Text (" ERROR : Ġ${ e . localized Message } ")) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn @ with ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ ĠJson Context . remove ( view ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġval Ġbody : ĠView ĊĠĠĠĠĠĠĠ Ġget () Ġ= ĠGeometry Reader Ġ{ Ġgeometry Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ ĠV Stack Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠH Stack Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcontent ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. frame ( geometry . size . width Ġ/ Ġ 2 f , Ġgeometry . size . height Ġ* Ġ 0 . 7 f ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. overlay ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠRo unded Rectangle ( 1 6 f ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. stroke ( Color . black , Ġ 4 f ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcontent 2 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. frame ( geometry . size . width Ġ/ Ġ 2 f , Ġgeometry . size . height Ġ* Ġ 0 . 7 f ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. overlay ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠRo unded Rectangle ( 1 6 f ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. stroke ( Color . black , Ġ 4 f ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠSp acer () Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠZ Stack Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠScroll View Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠH Stack Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠText ( data ) Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠSp acer () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. padding () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠV Stack Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠH Stack ( Vertical Alignment . top ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠSp acer () Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠButton ({ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprint (" copied Ġto Ġclipboard ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}, Ġlabel Ġ= Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠImage ("") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. font ( Font . system ( Font . TextStyle . title )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. padding () Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠSp acer () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. frame ( geometry . size . width , Ġgeometry . size . height Ġ* Ġ 0 . 3 f Ġ- Ġ 1 0 f ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. overlay ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠRo unded Rectangle ( 1 6 f ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. stroke ( Color . black , Ġ 4 f ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. padding () Ċ } ĊĊ