package Ġcom . cop per leaf . k row . format ters . ascii Ċ Ċ import Ġcom . cop per leaf . k row . model . K row Ċ import Ġcom . cop per leaf . k row . utils . create Line Of Ċ import Ġcom . cop per leaf . k row . utils . pad Vertical Ċ import Ġcom . cop per leaf . k row . utils . wrap Ċ Ċ // Ġval ĠK row . Row . col Spec : ĠList < Int > Ġget () Ġ= Ġcells . map Ġ{ Ġit . intrinsic Width With Padding Ġ} Ċ // Ġval ĠList < K row . Row >. row Spec : ĠMap < String , ĠInt > Ġget () Ġ= Ġthis . map Ġ{ Ġit . cells . max Of Ġ{ Ġit . intrinsic Height Ġ} Ġ} Ċ // Ġval ĠK row . Row . height : ĠInt Ġget () Ġ= Ġcells . max Of Ġ{ Ġit . intrinsic Height Ġ} Ċ Ċ val ĠK row . Cell . intrinsic Width With Padding : ĠInt ĊĠĠĠ Ġget () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġcontent Width Ġ= Ġif Ġ( width Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwidth ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdata . lines (). max Of Ġ{ Ġit . length Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġreturn Ġcontent Width Ġ+ Ġ( 2 Ġ* Ġpadding ) ĊĠĠĠ Ġ} Ċ val ĠK row . Cell . intrinsic Height : ĠInt Ġget () Ġ= Ġdata . lines (). size Ċ Ċ fun ĠK row . Cell . print Content With Padding ( maxWidth : ĠInt , Ġheight : ĠInt ): ĠString Ġ{ ĊĠĠĠ Ġreturn Ġdata . wrap ( maxWidth Ġ- Ġ( padding Ġ* Ġ 2 ), Ġalignment Ġ= Ġhorizontal Alignment ) ĊĠĠĠĠĠĠĠ Ġ. pad Vertical ( height , Ġalignment Ġ= Ġvertical Alignment , Ġpad Char Ġ= Ġ" Ġ") ĊĠĠĠĠĠĠĠ Ġ. lines () ĊĠĠĠĠĠĠĠ Ġ. join ToString ( separator Ġ= Ġ"\ n ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcreate Line Of (" Ġ", Ġpadding ) Ġ+ Ġit Ġ+ Ġcreate Line Of (" Ġ", Ġpadding ) ĊĠĠĠĠĠĠĠ Ġ} Ċ } Ċ Ċ fun ĠK row . Cell . measure Content Height ( maxWidth : ĠInt ): ĠInt Ġ{ ĊĠĠĠ Ġreturn Ġdata . wrap ( maxWidth Ġ- Ġ( padding Ġ* Ġ 2 ), Ġalignment Ġ= Ġhorizontal Alignment ) ĊĠĠĠĠĠĠĠ Ġ. lines () ĊĠĠĠĠĠĠĠ Ġ. size Ċ } Ċ