{type:"func", params:[{name:"chartType", def:{type:"literal", val:"stackedBar"}}], body:{type:"block", exprs:[{type:"def", name:"sites", val:{type:"dotCall", target:{type:"var", name:"sort"}, args:[{type:"call", target:{type:"var", name:"readAll"}, args:[{type:"var", name:"site"}]}, {type:"literal", val:"dis"}]}}, {type:"def", name:"kwhs", val:{type:"dotCall", target:{type:"var", name:"map"}, args:[{type:"var", name:"sites"}, {type:"func", params:[{name:"site"}], body:{type:"call", target:{type:"var", name:"read"}, args:[{type:"and", lhs:{type:"var", name:"siteMeter"}, rhs:{type:"and", lhs:{type:"var", name:"energy"}, rhs:{type:"eq", lhs:{type:"var", name:"siteRef"}, rhs:{type:"trapCall", target:{type:"var", name:"trap"}, args:[{type:"var", name:"site"}, {type:"literal", val:"id"}]}}}}]}}]}}, {type:"def", name:"rows", val:{type:"list", vals:[]}}, {type:"call", target:{type:"var", name:"times"}, args:[{type:"literal", val:12}, {type:"func", params:[{name:"i"}], body:{type:"block", exprs:[{type:"def", name:"year", val:{type:"dotCall", target:{type:"var", name:"year"}, args:[{type:"call", target:{type:"var", name:"now"}, args:[]}]}}, {type:"def", name:"month", val:{type:"add", lhs:{type:"var", name:"i"}, rhs:{type:"literal", val:1}}}, {type:"def", name:"startOfMonth", val:{type:"call", target:{type:"var", name:"date"}, args:[{type:"var", name:"year"}, {type:"var", name:"month"}, {type:"literal", val:1}]}}, {type:"def", name:"endOfMonth", val:{type:"call", target:{type:"var", name:"date"}, args:[{type:"var", name:"year"}, {type:"var", name:"month"}, {type:"call", target:{type:"var", name:"numDaysInMonth"}, args:[{type:"var", name:"startOfMonth"}]}]}}, {type:"def", name:"row", val:{type:"dict", names:["dis"], vals:[{type:"dotCall", target:{type:"var", name:"format"}, args:[{type:"var", name:"startOfMonth"}, {type:"literal", val:"MMM"}]}]}}, {type:"call", target:{type:"var", name:"each"}, args:[{type:"var", name:"sites"}, {type:"func", params:[{name:"site"}, {name:"i"}], body:{type:"block", exprs:[{type:"def", name:"kwh", val:{type:"dotCall", target:{type:"var", name:"foldCol"}, args:[{type:"dotCall", target:{type:"var", name:"hisClip"}, args:[{type:"call", target:{type:"var", name:"hisRead"}, args:[{type:"dotCall", target:{type:"var", name:"get"}, args:[{type:"var", name:"kwhs"}, {type:"var", name:"i"}]}, {type:"range", start:{type:"var", name:"startOfMonth"}, end:{type:"var", name:"endOfMonth"}}]}]}, {type:"literal", val:"v0"}, {type:"var", name:"sum"}]}}, {type:"assign", lhs:{type:"var", name:"row"}, rhs:{type:"dotCall", target:{type:"var", name:"set"}, args:[{type:"var", name:"row"}, {type:"add", lhs:{type:"literal", val:"site"}, rhs:{type:"var", name:"i"}}, {type:"var", name:"kwh"}]}}]}}]}, {type:"assign", lhs:{type:"var", name:"rows"}, rhs:{type:"dotCall", target:{type:"var", name:"add"}, args:[{type:"var", name:"rows"}, {type:"var", name:"row"}]}}]}}]}, {type:"def", name:"grid", val:{type:"dotCall", target:{type:"var", name:"toGrid"}, args:[{type:"var", name:"rows"}]}}, {type:"call", target:{type:"var", name:"each"}, args:[{type:"var", name:"sites"}, {type:"func", params:[{name:"site"}, {name:"i"}], body:{type:"block", exprs:[{type:"assign", lhs:{type:"var", name:"grid"}, rhs:{type:"dotCall", target:{type:"var", name:"addColMeta"}, args:[{type:"var", name:"grid"}, {type:"add", lhs:{type:"literal", val:"site"}, rhs:{type:"var", name:"i"}}, {type:"dict", names:["dis", "chartType", "chartGroup"], vals:[{type:"dotCall", target:{type:"var", name:"dis"}, args:[{type:"var", name:"site"}]}, {type:"var", name:"chartType"}, {type:"literal", val:"g"}]}]}}]}}]}, {type:"dotCall", target:{type:"var", name:"chart"}, args:[{type:"var", name:"grid"}]}]}}