package Ġru . y oom oney . tech . grafana . dsl . panels Ċ Ċ import Ġorg . json . JSONObject Ċ import Ġru . y oom oney . tech . grafana . dsl . Dashboard Element Ċ import Ġru . y oom oney . tech . grafana . dsl . datasource . Datasource Ċ import Ġru . y oom oney . tech . grafana . dsl . datasource . Graph ite Ċ import Ġru . y oom oney . tech . grafana . dsl . datasource . Graph ite Datasource Ċ import Ġru . y oom oney . tech . grafana . dsl . generators . Panel Layout Generator Ċ import Ġru . y oom oney . tech . grafana . dsl . metrics . Metrics Ċ import Ġru . y oom oney . tech . grafana . dsl . metrics . Metrics Builder Ċ import Ġru . y oom oney . tech . grafana . dsl . metrics . Reference Metrics Holder Ċ import Ġru . y oom oney . tech . grafana . dsl . panels . graph . display . series overrides . Series Override Ċ import Ġru . y oom oney . tech . grafana . dsl . panels . repeat . Repeat Ċ import Ġru . y oom oney . tech . grafana . dsl . panels . repeat . Repeat Builder Ċ import Ġru . y oom oney . tech . grafana . dsl . time . Duration Ċ import Ġru . y oom oney . tech . grafana . dsl . variables . Variable Ċ Ċ @ Dashboard Element Ċ class ĠTable Panel Builder ( ĊĠĠĠ Ġprivate Ġval Ġtitle : ĠString , ĊĠĠĠ Ġprivate Ġval Ġpanel Layout Generator : ĠPanel Layout Generator Ċ ) Ġ: ĠPanel Builder Ġ{ ĊĊĠĠĠ Ġprivate Ġval Ġproperties Set ters Ġ= Ġmutable ListOf <( JSONObject ) Ġ-> ĠUnit >() ĊĊĠĠĠ Ġoverride Ġvar Ġbounds Ġ= ĠPanel Builder . DEFAULT _ BOUN DS ĊĊĠĠĠ Ġvar Ġdatasource : ĠDat as ource Ġ= ĠGraph ite ĊĊĠĠĠ Ġvar Ġstack Ġ= Ġfalse ĊĊĠĠĠ Ġval Ġmetrics Ġ= ĠReference Metrics Holder () ĊĊĠĠĠ Ġvar Ġdescription : ĠString ? Ġ= Ġnull ĊĊĠĠĠ Ġvar Ġtime From : ĠDuration ? Ġ= Ġnull ĊĊĠĠĠ Ġvar Ġcolumns : ĠList < TableColumn > Ġ= Ġempty List () ĊĊĠĠĠ Ġvar Ġstyles : ĠList < Column Style > Ġ= Ġempty List () ĊĊĠĠĠ Ġvar Ġtransform : ĠTable Transform Ġ= ĠTable Transform . TIMES ER IES _ AGG REG ATIONS ĊĊĠĠĠ Ġprivate Ġvar Ġrepeat : ĠRepeat ? Ġ= Ġnull ĊĊĠĠĠ Ġprivate Ġval Ġseries Overrides : ĠMutable List < Series Override > Ġ= Ġmutable ListOf () ĊĊĠĠĠ Ġoverride Ġfun Ġproperties ( properties Setter : Ġ( JSONObject ) Ġ-> ĠUnit ) Ġ{ ĊĠĠĠĠĠĠĠ Ġproperties Set ters Ġ+= Ġproperties Setter ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġmetrics ( build : ĠMetrics Builder < out ĠGraph ite Datasource >. () Ġ-> ĠUnit ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġbuilder Ġ= ĠMetrics Builder < Graph ite >() ĊĠĠĠĠĠĠĠ Ġbuilder . build () ĊĠĠĠĠĠĠĠ Ġmetrics Ġ+= Ġbuilder . metrics ĊĠĠĠĠĠĠĠ Ġseries Overrides Ġ+= Ġbuilder . series Overrides ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġ< T Ġ: ĠDat as ource > Ġmetrics ( datasource : ĠT , Ġbuild : ĠMetrics Builder < T >. () Ġ-> ĠUnit ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġbuilder Ġ= ĠMetrics Builder < T >() ĊĠĠĠĠĠĠĠ Ġbuilder . build () ĊĠĠĠĠĠĠĠ Ġmetrics Ġ+= Ġbuilder . metrics ĊĠĠĠĠĠĠĠ Ġseries Overrides Ġ+= Ġbuilder . series Overrides ĊĠĠĠĠĠĠĠ Ġthis . datasource Ġ= Ġdatasource ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġrepeat ( variable : ĠVariable , Ġbuild : ĠRepeat Builder . () Ġ-> ĠUnit ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġbuilder Ġ= ĠRepeat Builder ( variable ) ĊĠĠĠĠĠĠĠ Ġbuilder . build () ĊĠĠĠĠĠĠĠ Ġrepeat Ġ= Ġbuilder . create Repeat () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġcolumns ( build : ĠTable Columns Builder . () Ġ-> ĠUnit ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġbuilder Ġ= ĠTable Columns Builder () ĊĠĠĠĠĠĠĠ Ġbuilder . build () ĊĠĠĠĠĠĠĠ Ġcolumns Ġ= Ġbuilder . columns ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġstyles ( build : ĠColumn Style Builder . () Ġ-> ĠUnit ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġbuilder Ġ= ĠColumn Style Builder () ĊĠĠĠĠĠĠĠ Ġbuilder . build () ĊĠĠĠĠĠĠĠ Ġstyles Ġ= Ġbuilder . styles ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġinternal Ġfun Ġcreate Panel () Ġ= ĠAdditional Properties Panel ( ĊĠĠĠĠĠĠĠ ĠTable Panel ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠMetric Panel ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠBase Panel ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġid Ġ= Ġpanel Layout Generator . next Id (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtitle Ġ= Ġtitle , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġposition Ġ= Ġpanel Layout Generator . next Position ( bounds . first , Ġbounds . second ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdescription Ġ= Ġdescription ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdatasource Ġ= Ġdatasource , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmetrics Ġ= ĠMetrics ( metrics . metrics ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtime From Ġ= Ġtime From , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcolumns Ġ= Ġcolumns , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġstyles Ġ= Ġstyles , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrepeat Ġ= Ġrepeat , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtransform Ġ= Ġtransform ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ) Ġ{ Ġjson Ġ-> Ġproperties Set ters . forEach Ġ{ Ġit ( json ) Ġ} Ġ} Ċ } Ċ Ċ fun ĠPanel Container Builder . table Panel ( title : ĠString , Ġbuild : ĠTable Panel Builder . () Ġ-> ĠUnit ) Ġ{ ĊĠĠĠ Ġval Ġbuilder Ġ= ĠTable Panel Builder ( title , Ġpanel Layout Generator ) ĊĠĠĠ Ġbuilder . build () ĊĠĠĠ Ġpanels Ġ+= Ġbuilder . create Panel () Ċ } Ċ