{type:"func", params:[], body:{type:"block", exprs:[{type:"def", name:"numPt", val:{type:"call", target:{type:"var", name:"read"}, args:[{type:"and", lhs:{type:"var", name:"power"}, rhs:{type:"var", name:"siteMeter"}}]}}, {type:"def", name:"num2Pt", val:{type:"call", target:{type:"var", name:"read"}, args:[{type:"and", lhs:{type:"var", name:"discharge"}, rhs:{type:"and", lhs:{type:"var", name:"temp"}, rhs:{type:"var", name:"sensor"}}}]}}, {type:"def", name:"boolPt", val:{type:"call", target:{type:"var", name:"read"}, args:[{type:"and", lhs:{type:"var", name:"fan"}, rhs:{type:"and", lhs:{type:"var", name:"cmd"}, rhs:{type:"eq", lhs:{type:"var", name:"kind"}, rhs:{type:"literal", val:"Bool"}}}}]}}, {type:"def", name:"xyData", val:{type:"call", target:{type:"var", name:"ioReadZinc"}, args:[{type:"literal", val:`io/chart-data.zinc`}]}}, {type:"def", name:"categories", val:{type:"dotCall", target:{type:"var", name:"toGrid"}, args:[{type:"list", vals:[{type:"dict", names:["dis", "v0", "v1", "v2"], vals:[{type:"literal", val:"Alpha"}, {type:"literal", val:3%}, {type:"literal", val:4%}, {type:"literal", val:9%}]}, {type:"dict", names:["dis", "v0", "v1", "v2"], vals:[{type:"literal", val:"Beta"}, {type:"literal", val:2%}, {type:"literal", val:10%}, {type:"literal", val:1%}]}, {type:"dict", names:["dis", "v0", "v1", "v2"], vals:[{type:"literal", val:"Gamma"}, {type:"literal", val:7%}, {type:"literal", val:8%}, {type:"literal", val:3%}]}, {type:"dict", names:["dis", "v0", "v1", "v2"], vals:[{type:"literal", val:"Delta"}, {type:"literal", val:4%}, {type:"literal", val:3%}, {type:"literal", val:4%}]}]}]}}, {type:"def", name:"dtLineChart", val:{type:"func", params:[], body:{type:"block", exprs:[{type:"def", name:"pt", val:{type:"dotCall", target:{type:"var", name:"merge"}, args:[{type:"var", name:"numPt"}, {type:"dict", names:["chartType"], vals:[{type:"literal", val:"line"}]}]}}, {type:"call", target:{type:"var", name:"hisRead"}, args:[{type:"var", name:"pt"}, {type:"var", name:"yesterday"}]}]}}}, {type:"def", name:"dtAreaChart", val:{type:"func", params:[], body:{type:"block", exprs:[{type:"def", name:"pt", val:{type:"dotCall", target:{type:"var", name:"merge"}, args:[{type:"var", name:"numPt"}, {type:"dict", names:["chartType", "color"], vals:[{type:"literal", val:"area"}, {type:"literal", val:"#d73d40"}]}]}}, {type:"call", target:{type:"var", name:"hisRead"}, args:[{type:"var", name:"pt"}, {type:"var", name:"yesterday"}]}]}}}, {type:"def", name:"dtBarChart", val:{type:"func", params:[], body:{type:"block", exprs:[{type:"def", name:"pt", val:{type:"dotCall", target:{type:"var", name:"merge"}, args:[{type:"var", name:"numPt"}, {type:"dict", names:["chartType", "color"], vals:[{type:"literal", val:"bar"}, {type:"literal", val:"#9474d4"}]}]}}, {type:"dotCall", target:{type:"var", name:"hisRollup"}, args:[{type:"call", target:{type:"var", name:"hisRead"}, args:[{type:"var", name:"pt"}, {type:"var", name:"lastMonth"}]}, {type:"var", name:"max"}, {type:"literal", val:1day}]}]}}}, {type:"def", name:"dtRuntimeChart", val:{type:"func", params:[], body:{type:"block", exprs:[{type:"def", name:"pt", val:{type:"dotCall", target:{type:"var", name:"merge"}, args:[{type:"var", name:"boolPt"}, {type:"dict", names:["chartType", "color"], vals:[{type:"literal", val:"runtime"}, {type:"literal", val:"#30c525"}]}]}}, {type:"call", target:{type:"var", name:"hisRead"}, args:[{type:"var", name:"pt"}, {type:"var", name:"yesterday"}]}]}}}, {type:"def", name:"dt2YChart", val:{type:"func", params:[], body:{type:"block", exprs:[{type:"def", name:"pt1", val:{type:"dotCall", target:{type:"var", name:"merge"}, args:[{type:"var", name:"numPt"}, {type:"dict", names:["chartGroup", "chartType", "color"], vals:[{type:"literal", val:"2y"}, {type:"literal", val:"area"}, {type:"literal", val:"#f87808"}]}]}}, {type:"def", name:"pt2", val:{type:"dotCall", target:{type:"var", name:"merge"}, args:[{type:"var", name:"num2Pt"}, {type:"dict", names:["chartGroup", "chartType", "color"], vals:[{type:"literal", val:"2y"}, {type:"literal", val:"line"}, {type:"literal", val:"#3d80df"}]}]}}, {type:"call", target:{type:"var", name:"hisRead"}, args:[{type:"list", vals:[{type:"var", name:"pt1"}, {type:"var", name:"pt2"}]}, {type:"var", name:"yesterday"}]}]}}}, {type:"def", name:"timeLineChart", val:{type:"func", params:[], body:{type:"block", exprs:[{type:"def", name:"pt", val:{type:"dotCall", target:{type:"var", name:"merge"}, args:[{type:"var", name:"numPt"}, {type:"dict", names:["chartType", "color"], vals:[{type:"literal", val:"line"}, {type:"literal", val:"#c123b0"}]}]}}, {type:"dotCall", target:{type:"var", name:"hisDailyProfile"}, args:[{type:"dotCall", target:{type:"var", name:"hisRollup"}, args:[{type:"call", target:{type:"var", name:"hisRead"}, args:[{type:"var", name:"pt"}, {type:"var", name:"lastWeek"}]}, {type:"var", name:"max"}, {type:"literal", val:1h}]}, {type:"var", name:"avg"}]}]}}}, {type:"def", name:"xyLineChart", val:{type:"func", params:[], body:{type:"block", exprs:[{type:"dotCall", target:{type:"var", name:"chart"}, args:[{type:"dotCall", target:{type:"var", name:"addColMeta"}, args:[{type:"var", name:"xyData"}, {type:"literal", val:"y"}, {type:"dict", names:["chartType"], vals:[{type:"literal", val:"line"}]}]}]}]}}}, {type:"def", name:"xyAreaChart", val:{type:"func", params:[], body:{type:"block", exprs:[{type:"dotCall", target:{type:"var", name:"chart"}, args:[{type:"dotCall", target:{type:"var", name:"addColMeta"}, args:[{type:"var", name:"xyData"}, {type:"literal", val:"y"}, {type:"dict", names:["chartType", "color"], vals:[{type:"literal", val:"area"}, {type:"literal", val:"#d73d40"}]}]}]}]}}}, {type:"def", name:"xyScatterChart", val:{type:"func", params:[], body:{type:"block", exprs:[{type:"dotCall", target:{type:"var", name:"chart"}, args:[{type:"dotCall", target:{type:"var", name:"addColMeta"}, args:[{type:"var", name:"xyData"}, {type:"literal", val:"y"}, {type:"dict", names:["chartType"], vals:[{type:"literal", val:"scatter"}]}]}]}]}}}, {type:"def", name:"catBarChart", val:{type:"func", params:[], body:{type:"block", exprs:[{type:"dotCall", target:{type:"var", name:"chart"}, args:[{type:"dotCall", target:{type:"var", name:"addColMeta"}, args:[{type:"dotCall", target:{type:"var", name:"addColMeta"}, args:[{type:"dotCall", target:{type:"var", name:"addColMeta"}, args:[{type:"var", name:"categories"}, {type:"literal", val:"v0"}, {type:"dict", names:["dis", "chartType", "chartGroup"], vals:[{type:"literal", val:"Value 0"}, {type:"literal", val:"bar"}, {type:"literal", val:"catBar"}]}]}, {type:"literal", val:"v1"}, {type:"dict", names:["dis", "chartType", "chartGroup"], vals:[{type:"literal", val:"Value 1"}, {type:"literal", val:"bar"}, {type:"literal", val:"catBar"}]}]}, {type:"literal", val:"v2"}, {type:"dict", names:["dis", "chartType", "chartGroup"], vals:[{type:"literal", val:"Value 2"}, {type:"literal", val:"bar"}, {type:"literal", val:"catBar"}]}]}]}]}}}, {type:"def", name:"catStackedBarChart", val:{type:"func", params:[], body:{type:"block", exprs:[{type:"dotCall", target:{type:"var", name:"chart"}, args:[{type:"dotCall", target:{type:"var", name:"addColMeta"}, args:[{type:"dotCall", target:{type:"var", name:"addColMeta"}, args:[{type:"dotCall", target:{type:"var", name:"addColMeta"}, args:[{type:"var", name:"categories"}, {type:"literal", val:"v0"}, {type:"dict", names:["dis", "chartType", "chartGroup"], vals:[{type:"literal", val:"Value 0"}, {type:"literal", val:"stackedBar"}, {type:"literal", val:"catStackBar"}]}]}, {type:"literal", val:"v1"}, {type:"dict", names:["dis", "chartType", "chartGroup"], vals:[{type:"literal", val:"Value 1"}, {type:"literal", val:"stackedBar"}, {type:"literal", val:"catStackBar"}]}]}, {type:"literal", val:"v2"}, {type:"dict", names:["dis", "chartType", "chartGroup"], vals:[{type:"literal", val:"Value 2"}, {type:"literal", val:"stackedBar"}, {type:"literal", val:"catStackBar"}]}]}]}]}}}, {type:"list", vals:[{type:"call", target:{type:"var", name:"heading"}, args:[{type:"literal", val:"DateTime Line Chart"}]}, {type:"call", target:{type:"var", name:"dtLineChart"}, args:[]}, {type:"call", target:{type:"var", name:"heading"}, args:[{type:"literal", val:"DateTime Area Chart"}]}, {type:"call", target:{type:"var", name:"dtAreaChart"}, args:[]}, {type:"call", target:{type:"var", name:"heading"}, args:[{type:"literal", val:"DateTime Bar Chart"}]}, {type:"call", target:{type:"var", name:"dtBarChart"}, args:[]}, {type:"call", target:{type:"var", name:"heading"}, args:[{type:"literal", val:"DateTime Runtime Chart"}]}, {type:"call", target:{type:"var", name:"dtRuntimeChart"}, args:[]}, {type:"call", target:{type:"var", name:"heading"}, args:[{type:"literal", val:"DateTime Two Y-Axes Chart"}]}, {type:"call", target:{type:"var", name:"dt2YChart"}, args:[]}, {type:"call", target:{type:"var", name:"heading"}, args:[{type:"literal", val:"Time Line Chart"}]}, {type:"call", target:{type:"var", name:"timeLineChart"}, args:[]}, {type:"call", target:{type:"var", name:"heading"}, args:[{type:"literal", val:"X-Y Line Chart"}]}, {type:"call", target:{type:"var", name:"xyLineChart"}, args:[]}, {type:"call", target:{type:"var", name:"heading"}, args:[{type:"literal", val:"X-Y Area Chart"}]}, {type:"call", target:{type:"var", name:"xyAreaChart"}, args:[]}, {type:"call", target:{type:"var", name:"heading"}, args:[{type:"literal", val:"X-Y Scatter Chart"}]}, {type:"call", target:{type:"var", name:"xyScatterChart"}, args:[]}, {type:"call", target:{type:"var", name:"heading"}, args:[{type:"literal", val:"Category Bar Chart"}]}, {type:"call", target:{type:"var", name:"catBarChart"}, args:[]}, {type:"call", target:{type:"var", name:"heading"}, args:[{type:"literal", val:"Category Stacked Bar Chart"}]}, {type:"call", target:{type:"var", name:"catStackedBarChart"}, args:[]}]}]}}