diff --git a/superset-frontend/temporary_superset_ui/superset-ui/packages/superset-ui-demo/storybook/stories/plugins/plugin-chart-echarts/Stories.tsx b/superset-frontend/temporary_superset_ui/superset-ui/packages/superset-ui-demo/storybook/stories/plugins/plugin-chart-echarts/Stories.tsx new file mode 100644 index 000000000000..d5f4cf2b6cbc --- /dev/null +++ b/superset-frontend/temporary_superset_ui/superset-ui/packages/superset-ui-demo/storybook/stories/plugins/plugin-chart-echarts/Stories.tsx @@ -0,0 +1,59 @@ +import React from 'react'; +import { SuperChart, getChartTransformPropsRegistry } from '@superset-ui/chart'; +import { boolean, number, select, withKnobs } from '@storybook/addon-knobs'; +import { EchartsTimeseriesChartPlugin } from '@superset-ui/plugin-chart-echarts'; +import transformProps from '@superset-ui/plugin-chart-echarts/lib/Timeseries/transformProps'; +import { withResizableChartDemo } from '../../../shared/components/ResizableChartDemo'; +import data from './data'; + +new EchartsTimeseriesChartPlugin().configure({ key: 'echarts-timeseries' }).register(); + +getChartTransformPropsRegistry().registerValue('echarts-timeseries', transformProps); + +export default { + title: 'Chart Plugins|plugin-chart-echarts', + decorators: [withKnobs, withResizableChartDemo], +}; + +export const Timeseries = ({ width, height }) => { + const forecastEnabled = boolean('Enable forecast', true); + const queryData = data + .map(row => + forecastEnabled + ? row + : { + __timestamp: row.__timestamp, + Boston: row.Boston, + California: row.California, + WestTexNewMexico: row.WestTexNewMexico, + }, + ) + .filter(row => forecastEnabled || !!row.Boston); + return ( + + ); +}; diff --git a/superset-frontend/temporary_superset_ui/superset-ui/packages/superset-ui-demo/storybook/stories/plugins/plugin-chart-echarts/data.ts b/superset-frontend/temporary_superset_ui/superset-ui/packages/superset-ui-demo/storybook/stories/plugins/plugin-chart-echarts/data.ts new file mode 100644 index 000000000000..b4991e596c3a --- /dev/null +++ b/superset-frontend/temporary_superset_ui/superset-ui/packages/superset-ui-demo/storybook/stories/plugins/plugin-chart-echarts/data.ts @@ -0,0 +1,3318 @@ +/* eslint-disable sort-keys */ +export default [ + { + __timestamp: 1419811200000, + Boston__yhat: 1.5348466045278903, + Boston__yhat_lower: 1.4108696830290821, + Boston__yhat_upper: 1.65406759478647, + Boston: 1.425, + California__yhat: 1.1428578093572317, + California__yhat_lower: 0.9954265301846809, + California__yhat_upper: 1.285336837473888, + California: 1.085, + WestTexNewMexico__yhat: 1.2189159706952082, + WestTexNewMexico__yhat_lower: 1.04104376708674, + WestTexNewMexico__yhat_upper: 1.3729774938431487, + WestTexNewMexico: 1.195, + }, + { + __timestamp: 1420416000000, + Boston__yhat: 1.5183086928032201, + Boston__yhat_lower: 1.4051623626305831, + Boston__yhat_upper: 1.6373864508998999, + Boston: 1.52, + California__yhat: 1.1473836815806109, + California__yhat_lower: 0.9896908958316125, + California__yhat_upper: 1.3074486619072236, + California: 1.01, + WestTexNewMexico__yhat: 1.2101876636102695, + WestTexNewMexico__yhat_lower: 1.0531768381015862, + WestTexNewMexico__yhat_upper: 1.3798811980337082, + WestTexNewMexico: 1.305, + }, + { + __timestamp: 1421020800000, + Boston__yhat: 1.5008792239446107, + Boston__yhat_lower: 1.3900408734935294, + Boston__yhat_upper: 1.6209717523914786, + Boston: 1.615, + California__yhat: 1.1257411477192287, + California__yhat_lower: 0.9647179126679808, + California__yhat_upper: 1.2856214776337003, + California: 1.13, + WestTexNewMexico__yhat: 1.211700721257458, + WestTexNewMexico__yhat_lower: 1.0512509758817796, + WestTexNewMexico__yhat_upper: 1.3838299538827643, + WestTexNewMexico: 1.255, + }, + { + __timestamp: 1421625600000, + Boston__yhat: 1.493895763520492, + Boston__yhat_lower: 1.3819463100452443, + Boston__yhat_upper: 1.614560073797367, + Boston: 1.59, + California__yhat: 1.0914497359848156, + California__yhat_lower: 0.9309999613012108, + California__yhat_upper: 1.2413000315404008, + California: 1.18, + WestTexNewMexico__yhat: 1.208627046579019, + WestTexNewMexico__yhat_lower: 1.0443728779662684, + WestTexNewMexico__yhat_upper: 1.3675637830491076, + WestTexNewMexico: 1.215, + }, + { + __timestamp: 1422230400000, + Boston__yhat: 1.5016078116606606, + Boston__yhat_lower: 1.3867245804741557, + Boston__yhat_upper: 1.614234955854214, + Boston: 1.5, + California__yhat: 1.0697859033873383, + California__yhat_lower: 0.9250294445931526, + California__yhat_upper: 1.227180419756037, + California: 0.98, + WestTexNewMexico__yhat: 1.1903524073209464, + WestTexNewMexico__yhat_lower: 1.0158621722285877, + WestTexNewMexico__yhat_upper: 1.3552685059028697, + WestTexNewMexico: 1.24, + }, + { + __timestamp: 1422835200000, + Boston__yhat: 1.5159923617934186, + Boston__yhat_lower: 1.3970137282601371, + Boston__yhat_upper: 1.6308844178549995, + Boston: 1.475, + California__yhat: 1.0746946690720922, + California__yhat_lower: 0.9113788241318873, + California__yhat_upper: 1.2273689220316724, + California: 1.13, + WestTexNewMexico__yhat: 1.162418169193016, + WestTexNewMexico__yhat_lower: 0.984399666972796, + WestTexNewMexico__yhat_upper: 1.3286127921414361, + WestTexNewMexico: 1.19, + }, + { + __timestamp: 1423440000000, + Boston__yhat: 1.525604106275286, + Boston__yhat_lower: 1.4091552054110317, + Boston__yhat_upper: 1.6398544651033324, + Boston: 1.555, + California__yhat: 1.0983484232374483, + California__yhat_lower: 0.9499667479813172, + California__yhat_upper: 1.2604622036877084, + California: 1.24, + WestTexNewMexico__yhat: 1.1407497573494716, + WestTexNewMexico__yhat_lower: 0.9682090338277108, + WestTexNewMexico__yhat_upper: 1.3110751375528853, + WestTexNewMexico: 1.24, + }, + { + __timestamp: 1424044800000, + Boston__yhat: 1.5285159859188788, + Boston__yhat_lower: 1.4151325345500827, + Boston__yhat_upper: 1.63898403722097, + Boston: 1.485, + California__yhat: 1.1215587530856748, + California__yhat_lower: 0.9680608180357422, + California__yhat_upper: 1.282442960930767, + California: 1.185, + WestTexNewMexico__yhat: 1.1360040254613264, + WestTexNewMexico__yhat_lower: 0.963307750313048, + WestTexNewMexico__yhat_upper: 1.2986544671046583, + WestTexNewMexico: 1.28, + }, + { + __timestamp: 1424649600000, + Boston__yhat: 1.5334822003771225, + Boston__yhat_lower: 1.4176345632105387, + Boston__yhat_upper: 1.6496071238192505, + Boston: 1.48, + California__yhat: 1.1336412205342397, + California__yhat_lower: 0.9743289540694136, + California__yhat_upper: 1.2898768461219847, + California: 0.995, + WestTexNewMexico__yhat: 1.1446754348884136, + WestTexNewMexico__yhat_lower: 0.986235125109336, + WestTexNewMexico__yhat_upper: 1.307986287217312, + WestTexNewMexico: 1.24, + }, + { + __timestamp: 1425254400000, + Boston__yhat: 1.547848654545939, + Boston__yhat_lower: 1.4328177356803633, + Boston__yhat_upper: 1.673661661344583, + Boston: 1.54, + California__yhat: 1.1421270972002817, + California__yhat_lower: 0.9880212170643778, + California__yhat_upper: 1.298074311825913, + California: 1.22, + WestTexNewMexico__yhat: 1.1538926041448758, + WestTexNewMexico__yhat_lower: 1.0019767923899103, + WestTexNewMexico__yhat_upper: 1.3221026377048228, + WestTexNewMexico: 1.16, + }, + { + __timestamp: 1425859200000, + Boston__yhat: 1.5675203083502125, + Boston__yhat_lower: 1.4543946077807537, + Boston__yhat_upper: 1.6864674764386627, + Boston: 1.62, + California__yhat: 1.1632572393543539, + California__yhat_lower: 0.9970086508003331, + California__yhat_upper: 1.3209871054747437, + California: 1.29, + WestTexNewMexico__yhat: 1.1530029605889838, + WestTexNewMexico__yhat_lower: 0.9729319698723828, + WestTexNewMexico__yhat_upper: 1.3054475293729533, + WestTexNewMexico: 1.285, + }, + { + __timestamp: 1426464000000, + Boston__yhat: 1.581607931619551, + Boston__yhat_lower: 1.4723154031359578, + Boston__yhat_upper: 1.7069606387126863, + Boston: 1.56, + California__yhat: 1.2030769562029524, + California__yhat_lower: 1.04933598570031, + California__yhat_upper: 1.3591487662881023, + California: 1.18, + WestTexNewMexico__yhat: 1.1414541767825306, + WestTexNewMexico__yhat_lower: 0.9717441065782068, + WestTexNewMexico__yhat_upper: 1.312661843170456, + WestTexNewMexico: 1.345, + }, + { + __timestamp: 1427068800000, + Boston__yhat: 1.5853316979769883, + Boston__yhat_lower: 1.4708451743058149, + Boston__yhat_upper: 1.7117728705026014, + Boston: 1.585, + California__yhat: 1.2479444775684796, + California__yhat_lower: 1.0837411336417548, + California__yhat_upper: 1.3998890149965297, + California: 1.315, + WestTexNewMexico__yhat: 1.1283059431234486, + WestTexNewMexico__yhat_lower: 0.9778619797162577, + WestTexNewMexico__yhat_upper: 1.2954488963192434, + WestTexNewMexico: 1.255, + }, + { + __timestamp: 1427673600000, + Boston__yhat: 1.5841383828593085, + Boston__yhat_lower: 1.4654575751911438, + Boston__yhat_upper: 1.6946343035808373, + Boston: 1.59, + California__yhat: 1.2739437360014318, + California__yhat_lower: 1.1100282969104833, + California__yhat_upper: 1.428117476226516, + California: 1.32, + WestTexNewMexico__yhat: 1.1249371539002126, + WestTexNewMexico__yhat_lower: 0.9695967792994402, + WestTexNewMexico__yhat_upper: 1.287869970682996, + WestTexNewMexico: 1.28, + }, + { + __timestamp: 1428278400000, + Boston__yhat: 1.5839751550296846, + Boston__yhat_lower: 1.4658964846078435, + Boston__yhat_upper: 1.710402200124056, + Boston: 1.56, + California__yhat: 1.2665706718822929, + California__yhat_lower: 1.1158333765771138, + California__yhat_upper: 1.4320483959058965, + California: 1.28, + WestTexNewMexico__yhat: 1.1355965911503207, + WestTexNewMexico__yhat_lower: 0.964066677858961, + WestTexNewMexico__yhat_upper: 1.3022575299852956, + WestTexNewMexico: 1.21, + }, + { + __timestamp: 1428883200000, + Boston__yhat: 1.5816178634356794, + Boston__yhat_lower: 1.4715929905435854, + Boston__yhat_upper: 1.7003122219671367, + Boston: 1.545, + California__yhat: 1.232881524770783, + California__yhat_lower: 1.0767786935430315, + California__yhat_upper: 1.3959964303961667, + California: 1.285, + WestTexNewMexico__yhat: 1.1523828742682716, + WestTexNewMexico__yhat_lower: 0.9811195853500172, + WestTexNewMexico__yhat_upper: 1.3138046554765905, + WestTexNewMexico: 1.15, + }, + { + __timestamp: 1429488000000, + Boston__yhat: 1.5693505553611033, + Boston__yhat_lower: 1.454366551073654, + Boston__yhat_upper: 1.672997430777775, + Boston: 1.57, + California__yhat: 1.1961960021745208, + California__yhat_lower: 1.0574856955397094, + California__yhat_upper: 1.3527191406913728, + California: 1.325, + WestTexNewMexico__yhat: 1.1605683040698191, + WestTexNewMexico__yhat_lower: 1.0031473604785308, + WestTexNewMexico__yhat_upper: 1.3131490159580719, + WestTexNewMexico: 1.33, + }, + { + __timestamp: 1430092800000, + Boston__yhat: 1.548687090028952, + Boston__yhat_lower: 1.4345338808929986, + Boston__yhat_upper: 1.674291034018414, + Boston: 1.495, + California__yhat: 1.17944168965866, + California__yhat_lower: 1.0208437159576145, + California__yhat_upper: 1.3437648164186333, + California: 1.18, + WestTexNewMexico__yhat: 1.152452251304891, + WestTexNewMexico__yhat_lower: 0.9925163021235553, + WestTexNewMexico__yhat_upper: 1.33370469389031, + WestTexNewMexico: 1.125, + }, + { + __timestamp: 1430697600000, + Boston__yhat: 1.5339945463021136, + Boston__yhat_lower: 1.4131803310322042, + Boston__yhat_upper: 1.6534068731295286, + Boston: 1.58, + California__yhat: 1.1914708975476587, + California__yhat_lower: 1.0346943811155895, + California__yhat_upper: 1.346918284211045, + California: 1.165, + WestTexNewMexico__yhat: 1.136951442350726, + WestTexNewMexico__yhat_lower: 0.9785853981941628, + WestTexNewMexico__yhat_upper: 1.305120499270747, + WestTexNewMexico: 1.07, + }, + { + __timestamp: 1431302400000, + Boston__yhat: 1.538494530655746, + Boston__yhat_lower: 1.417157877783077, + Boston__yhat_upper: 1.6657402419552576, + Boston: 1.585, + California__yhat: 1.2250425993396363, + California__yhat_lower: 1.0694624006721893, + California__yhat_upper: 1.3779793141537178, + California: 1.285, + WestTexNewMexico__yhat: 1.131850140196041, + WestTexNewMexico__yhat_lower: 0.9693152036413223, + WestTexNewMexico__yhat_upper: 1.2969371429211514, + WestTexNewMexico: 1.06, + }, + { + __timestamp: 1431907200000, + Boston__yhat: 1.5586586605892516, + Boston__yhat_lower: 1.4437718674345732, + Boston__yhat_upper: 1.678444300307212, + Boston: 1.54, + California__yhat: 1.2640228484312774, + California__yhat_lower: 1.105695580617842, + California__yhat_upper: 1.4262751320209555, + California: 1.3, + WestTexNewMexico__yhat: 1.14279691969869, + WestTexNewMexico__yhat_lower: 0.9744635833347896, + WestTexNewMexico__yhat_upper: 1.309843116203469, + WestTexNewMexico: 1.065, + }, + { + __timestamp: 1432512000000, + Boston__yhat: 1.5775197465059267, + Boston__yhat_lower: 1.4598708798261923, + Boston__yhat_upper: 1.6911276338952719, + Boston: 1.6, + California__yhat: 1.292475578711032, + California__yhat_lower: 1.1228796890918014, + California__yhat_upper: 1.4471391733217347, + California: 1.24, + WestTexNewMexico__yhat: 1.151946670246945, + WestTexNewMexico__yhat_lower: 0.9787075088274869, + WestTexNewMexico__yhat_upper: 1.3257344034341332, + WestTexNewMexico: 1.065, + }, + { + __timestamp: 1433116800000, + Boston__yhat: 1.5847361491556036, + Boston__yhat_lower: 1.469478725883583, + Boston__yhat_upper: 1.698200477547973, + Boston: 1.625, + California__yhat: 1.301640708602741, + California__yhat_lower: 1.1448194258091566, + California__yhat_upper: 1.4657411831360765, + California: 1.325, + WestTexNewMexico__yhat: 1.1344270549760207, + WestTexNewMexico__yhat_lower: 0.9628949633601395, + WestTexNewMexico__yhat_upper: 1.2999364461809975, + WestTexNewMexico: 1.08, + }, + { + __timestamp: 1433721600000, + Boston__yhat: 1.588841301654564, + Boston__yhat_lower: 1.4701868286368829, + Boston__yhat_upper: 1.708276878629705, + Boston: 1.555, + California__yhat: 1.2945568932951903, + California__yhat_lower: 1.1357913193434988, + California__yhat_upper: 1.441658100122194, + California: 1.325, + WestTexNewMexico__yhat: 1.090609476160724, + WestTexNewMexico__yhat_lower: 0.9171628023326979, + WestTexNewMexico__yhat_upper: 1.2519104172461586, + WestTexNewMexico: 1.125, + }, + { + __timestamp: 1434326400000, + Boston__yhat: 1.60467809761448, + Boston__yhat_lower: 1.4872087156545453, + Boston__yhat_upper: 1.7206390174307566, + Boston: 1.65, + California__yhat: 1.2866911289244536, + California__yhat_lower: 1.1223304657283866, + California__yhat_upper: 1.4489712765550424, + California: 1.38, + WestTexNewMexico__yhat: 1.058286202137859, + WestTexNewMexico__yhat_lower: 0.8983319008178635, + WestTexNewMexico__yhat_upper: 1.2230688588329341, + WestTexNewMexico: 1.2, + }, + { + __timestamp: 1434931200000, + Boston__yhat: 1.6296561292532252, + Boston__yhat_lower: 1.5147117985377605, + Boston__yhat_upper: 1.7484553862428687, + Boston: 1.64, + California__yhat: 1.298704180420278, + California__yhat_lower: 1.143996831592798, + California__yhat_upper: 1.4569530963291766, + California: 1.385, + WestTexNewMexico__yhat: 1.0837741118769433, + WestTexNewMexico__yhat_lower: 0.9165400527844431, + WestTexNewMexico__yhat_upper: 1.2633713277285281, + WestTexNewMexico: 1.145, + }, + { + __timestamp: 1435536000000, + Boston__yhat: 1.6387330700540754, + Boston__yhat_lower: 1.5214382052884348, + Boston__yhat_upper: 1.7593446818133576, + Boston: 1.7, + California__yhat: 1.3419159537936654, + California__yhat_lower: 1.1824389777530346, + California__yhat_upper: 1.5077615808876883, + California: 1.395, + WestTexNewMexico__yhat: 1.1753283438356257, + WestTexNewMexico__yhat_lower: 1.0084515427055218, + WestTexNewMexico__yhat_upper: 1.3411968014102083, + WestTexNewMexico: 1.18, + }, + { + __timestamp: 1436140800000, + Boston__yhat: 1.6078378110129543, + Boston__yhat_lower: 1.4858780410049368, + Boston__yhat_upper: 1.7333942938670541, + Boston: 1.665, + California__yhat: 1.4064610022347392, + California__yhat_lower: 1.2518481325894115, + California__yhat_upper: 1.5631376401498112, + California: 1.465, + WestTexNewMexico__yhat: 1.2876812690769497, + WestTexNewMexico__yhat_lower: 1.118277996711148, + WestTexNewMexico__yhat_upper: 1.453601368173299, + WestTexNewMexico: 1.365, + }, + { + __timestamp: 1436745600000, + Boston__yhat: 1.54126454151401, + Boston__yhat_lower: 1.4242640278872807, + Boston__yhat_upper: 1.658820938407199, + Boston: 1.615, + California__yhat: 1.4648637533773619, + California__yhat_lower: 1.3165708549095063, + California__yhat_upper: 1.6123722518242183, + California: 1.535, + WestTexNewMexico__yhat: 1.359084635413718, + WestTexNewMexico__yhat_lower: 1.1923924916510695, + WestTexNewMexico__yhat_upper: 1.5397046826260015, + WestTexNewMexico: 1.25, + }, + { + __timestamp: 1437350400000, + Boston__yhat: 1.4716975989229104, + Boston__yhat_lower: 1.3478802335545248, + Boston__yhat_upper: 1.5897005348114144, + Boston: 1.65, + California__yhat: 1.492196708250474, + California__yhat_lower: 1.3281011466171584, + California__yhat_upper: 1.6482617063876424, + California: 1.53, + WestTexNewMexico__yhat: 1.3665720856468249, + WestTexNewMexico__yhat_lower: 1.1985870084342607, + WestTexNewMexico__yhat_upper: 1.540444302838635, + WestTexNewMexico: 1.325, + }, + { + __timestamp: 1437955200000, + Boston__yhat: 1.4316465654883939, + Boston__yhat_lower: 1.3151590237205186, + Boston__yhat_upper: 1.5502363732881383, + Boston: 1.645, + California__yhat: 1.486878703643501, + California__yhat_lower: 1.3387136764087475, + California__yhat_upper: 1.6406538496379224, + California: 1.575, + WestTexNewMexico__yhat: 1.3430004296140337, + WestTexNewMexico__yhat_lower: 1.1696134333274417, + WestTexNewMexico__yhat_upper: 1.5143254675484394, + WestTexNewMexico: 1.345, + }, + { + __timestamp: 1438560000000, + Boston__yhat: 1.4271527274427822, + Boston__yhat_lower: 1.3009869979033386, + Boston__yhat_upper: 1.5444571765505344, + Boston: 1.545, + California__yhat: 1.4721251850161223, + California__yhat_lower: 1.3130424764080704, + California__yhat_upper: 1.6322300582937983, + California: 1.565, + WestTexNewMexico__yhat: 1.3385023304664054, + WestTexNewMexico__yhat_lower: 1.169557000507694, + WestTexNewMexico__yhat_upper: 1.501423586440048, + WestTexNewMexico: 1.3, + }, + { + __timestamp: 1439164800000, + Boston__yhat: 1.4407299749907534, + Boston__yhat_lower: 1.323436292855159, + Boston__yhat_upper: 1.5636100946562665, + Boston: 1.62, + California__yhat: 1.4747274927843579, + California__yhat_lower: 1.3090246017944651, + California__yhat_upper: 1.6212028571910875, + California: 1.535, + WestTexNewMexico__yhat: 1.369033029466056, + WestTexNewMexico__yhat_lower: 1.2063418855681307, + WestTexNewMexico__yhat_upper: 1.5410908830393701, + WestTexNewMexico: 1.215, + }, + { + __timestamp: 1439769600000, + Boston__yhat: 1.4558141240561584, + Boston__yhat_lower: 1.3384500860436346, + Boston__yhat_upper: 1.5593449899412495, + Boston: 1.535, + California__yhat: 1.5004588541583503, + California__yhat_lower: 1.3525771130800601, + California__yhat_upper: 1.6557709189818204, + California: 1.515, + WestTexNewMexico__yhat: 1.4078705349829708, + WestTexNewMexico__yhat_lower: 1.2465576754469605, + WestTexNewMexico__yhat_upper: 1.5765990094113416, + WestTexNewMexico: 1.205, + }, + { + __timestamp: 1440374400000, + Boston__yhat: 1.4714837581619955, + Boston__yhat_lower: 1.3542849882799493, + Boston__yhat_upper: 1.587250053083524, + Boston: 1.58, + California__yhat: 1.5302322554730527, + California__yhat_lower: 1.3712263333300627, + California__yhat_upper: 1.6766472256899916, + California: 1.53, + WestTexNewMexico__yhat: 1.425931627994101, + WestTexNewMexico__yhat_lower: 1.2620778981321579, + WestTexNewMexico__yhat_upper: 1.5920830784029816, + WestTexNewMexico: 1.255, + }, + { + __timestamp: 1440979200000, + Boston__yhat: 1.491444403016728, + Boston__yhat_lower: 1.3719274262306433, + Boston__yhat_upper: 1.6081603165448515, + Boston: 1.54, + California__yhat: 1.5411777460499874, + California__yhat_lower: 1.3904365117687372, + California__yhat_upper: 1.694546785101698, + California: 1.54, + WestTexNewMexico__yhat: 1.4320134472163049, + WestTexNewMexico__yhat_lower: 1.273365593253299, + WestTexNewMexico__yhat_upper: 1.5931974288222444, + WestTexNewMexico: 1.29, + }, + { + __timestamp: 1441584000000, + Boston__yhat: 1.5051820756139245, + Boston__yhat_lower: 1.3835553327078385, + Boston__yhat_upper: 1.6240589221993718, + Boston: 1.515, + California__yhat: 1.5313765368007273, + California__yhat_lower: 1.3681294180618269, + California__yhat_upper: 1.6892153479755334, + California: 1.55, + WestTexNewMexico__yhat: 1.4638751687570226, + WestTexNewMexico__yhat_lower: 1.2864210645323784, + WestTexNewMexico__yhat_upper: 1.6187694320540935, + WestTexNewMexico: 1.37, + }, + { + __timestamp: 1442188800000, + Boston__yhat: 1.4894325587299742, + Boston__yhat_lower: 1.3727869467332703, + Boston__yhat_upper: 1.6084226338870418, + Boston: 1.58, + California__yhat: 1.522640140138669, + California__yhat_lower: 1.3734557489282102, + California__yhat_upper: 1.6743091049728624, + California: 1.53, + WestTexNewMexico__yhat: 1.5400751405380166, + WestTexNewMexico__yhat_lower: 1.3774375535282375, + WestTexNewMexico__yhat_upper: 1.723050870346822, + WestTexNewMexico: 1.485, + }, + { + __timestamp: 1442793600000, + Boston__yhat: 1.4322083667601824, + Boston__yhat_lower: 1.3101390870258312, + Boston__yhat_upper: 1.5571183048764867, + Boston: 1.535, + California__yhat: 1.5378925480202739, + California__yhat_lower: 1.3886019658089772, + California__yhat_upper: 1.6978496884233474, + California: 1.445, + WestTexNewMexico__yhat: 1.6287478669084643, + WestTexNewMexico__yhat_lower: 1.478287058860101, + WestTexNewMexico__yhat_upper: 1.795633152002224, + WestTexNewMexico: 1.275, + }, + { + __timestamp: 1443398400000, + Boston__yhat: 1.351816621968265, + Boston__yhat_lower: 1.2376540378452352, + Boston__yhat_upper: 1.4729299390946764, + Boston: 1.175, + California__yhat: 1.5759661525657334, + California__yhat_lower: 1.4231456717732236, + California__yhat_upper: 1.733586091013307, + California: 1.51, + WestTexNewMexico__yhat: 1.6721603417638533, + WestTexNewMexico__yhat_lower: 1.508503941330916, + WestTexNewMexico__yhat_upper: 1.8462459308936394, + WestTexNewMexico: 1.43, + }, + { + __timestamp: 1444003200000, + Boston__yhat: 1.286486461072129, + Boston__yhat_lower: 1.1680220690052265, + Boston__yhat_upper: 1.4035977590666622, + Boston: 1.2, + California__yhat: 1.6097139361369517, + California__yhat_lower: 1.4449082988736466, + California__yhat_upper: 1.7603053272180196, + California: 1.575, + WestTexNewMexico__yhat: 1.639290251177639, + WestTexNewMexico__yhat_lower: 1.473164681029519, + WestTexNewMexico__yhat_upper: 1.8064957246654998, + WestTexNewMexico: 1.47, + }, + { + __timestamp: 1444608000000, + Boston__yhat: 1.2630051620190224, + Boston__yhat_lower: 1.1467376145041555, + Boston__yhat_upper: 1.377446221614078, + Boston: 1.1, + California__yhat: 1.6098713751752662, + California__yhat_lower: 1.4600843147210683, + California__yhat_upper: 1.763955521152191, + California: 1.54, + WestTexNewMexico__yhat: 1.5551952931382806, + WestTexNewMexico__yhat_lower: 1.3962129897996904, + WestTexNewMexico__yhat_upper: 1.726357454658797, + WestTexNewMexico: 1.415, + }, + { + __timestamp: 1445212800000, + Boston__yhat: 1.276278781347193, + Boston__yhat_lower: 1.1580450205542776, + Boston__yhat_upper: 1.3920651070329326, + Boston: 1.145, + California__yhat: 1.571148844853862, + California__yhat_lower: 1.4083378535887405, + California__yhat_upper: 1.733966017882931, + California: 1.38, + WestTexNewMexico__yhat: 1.4722932415830279, + WestTexNewMexico__yhat_lower: 1.3050378331324088, + WestTexNewMexico__yhat_upper: 1.6418924805303612, + WestTexNewMexico: 1.41, + }, + { + __timestamp: 1445817600000, + Boston__yhat: 1.2991073481696098, + Boston__yhat_lower: 1.1878452793959065, + Boston__yhat_upper: 1.424293199867907, + Boston: 1.18, + California__yhat: 1.5150187954091354, + California__yhat_lower: 1.3476318997481405, + California__yhat_upper: 1.677657858675358, + California: 1.275, + WestTexNewMexico__yhat: 1.4199561158957161, + WestTexNewMexico__yhat_lower: 1.263080331712721, + WestTexNewMexico__yhat_upper: 1.5718996342613911, + WestTexNewMexico: 1.36, + }, + { + __timestamp: 1446422400000, + Boston__yhat: 1.308880887797368, + Boston__yhat_lower: 1.1862924735231104, + Boston__yhat_upper: 1.4168025454442827, + Boston: 1.13, + California__yhat: 1.467196455991084, + California__yhat_lower: 1.31469058277437, + California__yhat_upper: 1.6266140472626818, + California: 1.32, + WestTexNewMexico__yhat: 1.385809818488925, + WestTexNewMexico__yhat_lower: 1.2178231659097734, + WestTexNewMexico__yhat_upper: 1.5529990050614997, + WestTexNewMexico: 1.37, + }, + { + __timestamp: 1447027200000, + Boston__yhat: 1.3030202507313675, + Boston__yhat_lower: 1.1871331759675903, + Boston__yhat_upper: 1.4220034213332513, + Boston: 1.1, + California__yhat: 1.432710953584346, + California__yhat_lower: 1.2824951329265597, + California__yhat_upper: 1.586661603708675, + California: 1.21, + WestTexNewMexico__yhat: 1.3404954026443072, + WestTexNewMexico__yhat_lower: 1.1821733202392815, + WestTexNewMexico__yhat_upper: 1.5011656305912942, + WestTexNewMexico: 1.315, + }, + { + __timestamp: 1447632000000, + Boston__yhat: 1.2921088188147662, + Boston__yhat_lower: 1.1728345442847379, + Boston__yhat_upper: 1.4033407585022522, + Boston: 1.17, + California__yhat: 1.3931387239731783, + California__yhat_lower: 1.2432214745880616, + California__yhat_upper: 1.5498822030297323, + California: 1.26, + WestTexNewMexico__yhat: 1.276766317307663, + WestTexNewMexico__yhat_lower: 1.0999844956570386, + WestTexNewMexico__yhat_upper: 1.446687228788756, + WestTexNewMexico: 1.375, + }, + { + __timestamp: 1448236800000, + Boston__yhat: 1.2844900175902454, + Boston__yhat_lower: 1.1751725419028316, + Boston__yhat_upper: 1.4071918419152338, + Boston: 1.235, + California__yhat: 1.3280733170736323, + California__yhat_lower: 1.168686173676362, + California__yhat_upper: 1.4828349526176714, + California: 1.33, + WestTexNewMexico__yhat: 1.2150153206911025, + WestTexNewMexico__yhat_lower: 1.0575514264315589, + WestTexNewMexico__yhat_upper: 1.3738174939464802, + WestTexNewMexico: 1.445, + }, + { + __timestamp: 1448841600000, + Boston__yhat: 1.2805251906155837, + Boston__yhat_lower: 1.1707757707707065, + Boston__yhat_upper: 1.3999312395395147, + Boston: 1.155, + California__yhat: 1.2392981370779044, + California__yhat_lower: 1.0733806154601595, + California__yhat_upper: 1.4014509402239486, + California: 1.13, + WestTexNewMexico__yhat: 1.1770436607980383, + WestTexNewMexico__yhat_lower: 0.993583553273554, + WestTexNewMexico__yhat_upper: 1.333422820891247, + WestTexNewMexico: 0.74, + }, + { + __timestamp: 1449446400000, + Boston__yhat: 1.279267142574869, + Boston__yhat_lower: 1.1585705827510129, + Boston__yhat_upper: 1.3983536869495787, + Boston: 1.28, + California__yhat: 1.1539951545645342, + California__yhat_lower: 0.9889501465743559, + California__yhat_upper: 1.3053289212843744, + California: 1.13, + WestTexNewMexico__yhat: 1.162380614252356, + WestTexNewMexico__yhat_lower: 0.9965272411245537, + WestTexNewMexico__yhat_upper: 1.3253180367221955, + WestTexNewMexico: 1.29, + }, + { + __timestamp: 1450051200000, + Boston__yhat: 1.2787118961962491, + Boston__yhat_lower: 1.1556589108639785, + Boston__yhat_upper: 1.3974059178441982, + Boston: 1.24, + California__yhat: 1.1033410193628717, + California__yhat_lower: 0.9484140481619587, + California__yhat_upper: 1.2555949684536813, + California: 1.145, + WestTexNewMexico__yhat: 1.1520896013601485, + WestTexNewMexico__yhat_lower: 0.9997152961435812, + WestTexNewMexico__yhat_upper: 1.3302105801314474, + WestTexNewMexico: 1.375, + }, + { + __timestamp: 1450656000000, + Boston__yhat: 1.2776031555754677, + Boston__yhat_lower: 1.1612004466043093, + Boston__yhat_upper: 1.4035768713473475, + Boston: 1.305, + California__yhat: 1.096588309779605, + California__yhat_lower: 0.9415733506798203, + California__yhat_upper: 1.2490758356944123, + California: 1.175, + WestTexNewMexico__yhat: 1.1337111672954372, + WestTexNewMexico__yhat_lower: 0.954609055292553, + WestTexNewMexico__yhat_upper: 1.2836888913740563, + WestTexNewMexico: 1.26, + }, + { + __timestamp: 1451260800000, + Boston__yhat: 1.271539175332426, + Boston__yhat_lower: 1.1602294666896775, + Boston__yhat_upper: 1.3927950153599313, + Boston: 1.135, + California__yhat: 1.1135856352410936, + California__yhat_lower: 0.9662652364357288, + California__yhat_upper: 1.2612074611190671, + California: 1.08, + WestTexNewMexico__yhat: 1.1133445292606667, + WestTexNewMexico__yhat_lower: 0.9418476492410971, + WestTexNewMexico__yhat_upper: 1.2831043683897285, + WestTexNewMexico: 1.17, + }, + { + __timestamp: 1451865600000, + Boston__yhat: 1.2575630846272903, + Boston__yhat_lower: 1.1354044143577229, + Boston__yhat_upper: 1.3692268733397173, + Boston: 1.235, + California__yhat: 1.12226100903928, + California__yhat_lower: 0.9741560937727196, + California__yhat_upper: 1.2802079796970842, + California: 1.1, + WestTexNewMexico__yhat: 1.103916478884385, + WestTexNewMexico__yhat_lower: 0.9375018938141186, + WestTexNewMexico__yhat_upper: 1.2684161261288411, + WestTexNewMexico: 1.055, + }, + { + __timestamp: 1452470400000, + Boston__yhat: 1.240871451452071, + Boston__yhat_lower: 1.1207875334441375, + Boston__yhat_upper: 1.3557801021167788, + Boston: 1.075, + California__yhat: 1.1050499500884154, + California__yhat_lower: 0.9519377106454195, + California__yhat_upper: 1.2639244961611285, + California: 1.175, + WestTexNewMexico__yhat: 1.1063752098417272, + WestTexNewMexico__yhat_lower: 0.933034797251441, + WestTexNewMexico__yhat_upper: 1.2775982934739585, + WestTexNewMexico: 1.14, + }, + { + __timestamp: 1453075200000, + Boston__yhat: 1.2351539301132308, + Boston__yhat_lower: 1.115608031670262, + Boston__yhat_upper: 1.3497725810593808, + Boston: 1.255, + California__yhat: 1.0712579159094295, + California__yhat_lower: 0.9231059439029868, + California__yhat_upper: 1.2253443303060034, + California: 1.12, + WestTexNewMexico__yhat: 1.1073566395068044, + WestTexNewMexico__yhat_lower: 0.9417096932160844, + WestTexNewMexico__yhat_upper: 1.2702276029860524, + WestTexNewMexico: 1.295, + }, + { + __timestamp: 1453680000000, + Boston__yhat: 1.2443106245615798, + Boston__yhat_lower: 1.1191714513673907, + Boston__yhat_upper: 1.366170102828017, + Boston: 1.275, + California__yhat: 1.045805771170639, + California__yhat_lower: 0.8901943377875149, + California__yhat_upper: 1.2055800517103012, + California: 1.155, + WestTexNewMexico__yhat: 1.0939766137280855, + WestTexNewMexico__yhat_lower: 0.928443219272312, + WestTexNewMexico__yhat_upper: 1.2529202612702086, + WestTexNewMexico: 1.215, + }, + { + __timestamp: 1454284800000, + Boston__yhat: 1.262231934275936, + Boston__yhat_lower: 1.145846856606446, + Boston__yhat_upper: 1.3863438310201472, + Boston: 1.335, + California__yhat: 1.0460144566739604, + California__yhat_lower: 0.8934791370393727, + California__yhat_upper: 1.1997559677917369, + California: 1.04, + WestTexNewMexico__yhat: 1.0687956997109116, + WestTexNewMexico__yhat_lower: 0.9196708157905598, + WestTexNewMexico__yhat_upper: 1.2343440062370625, + WestTexNewMexico: 1.085, + }, + { + __timestamp: 1454889600000, + Boston__yhat: 1.2770169956947701, + Boston__yhat_lower: 1.159762228572037, + Boston__yhat_upper: 1.3955173344366019, + Boston: 1.285, + California__yhat: 1.0677334625792934, + California__yhat_lower: 0.9042156056309373, + California__yhat_upper: 1.2261522856156684, + California: 1.145, + WestTexNewMexico__yhat: 1.0469739471201525, + WestTexNewMexico__yhat_lower: 0.8794254462683391, + WestTexNewMexico__yhat_upper: 1.2098590403948033, + WestTexNewMexico: 1.045, + }, + { + __timestamp: 1455494400000, + Boston__yhat: 1.2844722621861224, + Boston__yhat_lower: 1.1612648265404686, + Boston__yhat_upper: 1.4073856326551464, + Boston: 1.33, + California__yhat: 1.0923560584092606, + California__yhat_lower: 0.9419672486858788, + California__yhat_upper: 1.2578935375962572, + California: 1.16, + WestTexNewMexico__yhat: 1.0411381678377096, + WestTexNewMexico__yhat_lower: 0.885569135600006, + WestTexNewMexico__yhat_upper: 1.206333182286366, + WestTexNewMexico: 1.09, + }, + { + __timestamp: 1456099200000, + Boston__yhat: 1.2946209118328944, + Boston__yhat_lower: 1.1763146584733386, + Boston__yhat_upper: 1.4046302946525782, + Boston: 1.36, + California__yhat: 1.1068253070435803, + California__yhat_lower: 0.9402023606548588, + California__yhat_upper: 1.2630289344685552, + California: 1.085, + WestTexNewMexico__yhat: 1.0506996394318162, + WestTexNewMexico__yhat_lower: 0.894064332771851, + WestTexNewMexico__yhat_upper: 1.2165355114608365, + WestTexNewMexico: 1.045, + }, + { + __timestamp: 1456704000000, + Boston__yhat: 1.3135717434204854, + Boston__yhat_lower: 1.19598226754922, + Boston__yhat_upper: 1.4281779942403379, + Boston: 1.4, + California__yhat: 1.1152150156807379, + California__yhat_lower: 0.9645078102017577, + California__yhat_upper: 1.2660783651448067, + California: 1.12, + WestTexNewMexico__yhat: 1.0632783642039607, + WestTexNewMexico__yhat_lower: 0.8944563104320433, + WestTexNewMexico__yhat_upper: 1.2189946417833857, + WestTexNewMexico: 1.045, + }, + { + __timestamp: 1457308800000, + Boston__yhat: 1.3393909950943907, + Boston__yhat_lower: 1.2247252996665285, + Boston__yhat_upper: 1.4514282373242835, + Boston: 1.32, + California__yhat: 1.1335714483377028, + California__yhat_lower: 0.9796821685944298, + California__yhat_upper: 1.292927457050505, + California: 1.185, + WestTexNewMexico__yhat: 1.0670347544656897, + WestTexNewMexico__yhat_lower: 0.9065118434460604, + WestTexNewMexico__yhat_upper: 1.2388026324708632, + WestTexNewMexico: 1.01, + }, + { + __timestamp: 1457913600000, + Boston__yhat: 1.3614707072711327, + Boston__yhat_lower: 1.2436506325494527, + Boston__yhat_upper: 1.4915346261974671, + Boston: 1.345, + California__yhat: 1.1709505943114045, + California__yhat_lower: 1.0281150114928468, + California__yhat_upper: 1.3219512681551355, + California: 1.185, + WestTexNewMexico__yhat: 1.059402114816066, + WestTexNewMexico__yhat_lower: 0.8908095073771191, + WestTexNewMexico__yhat_upper: 1.2232547094584372, + WestTexNewMexico: 1.085, + }, + { + __timestamp: 1458518400000, + Boston__yhat: 1.3731962396813198, + Boston__yhat_lower: 1.2580434253984463, + Boston__yhat_upper: 1.492475554460491, + Boston: 1.335, + California__yhat: 1.2170675127806618, + California__yhat_lower: 1.0693412261820932, + California__yhat_upper: 1.3789521035854242, + California: 1.175, + WestTexNewMexico__yhat: 1.0481116081191288, + WestTexNewMexico__yhat_lower: 0.8799236826031198, + WestTexNewMexico__yhat_upper: 1.2085461080495927, + WestTexNewMexico: 1.06, + }, + { + __timestamp: 1459123200000, + Boston__yhat: 1.3813962329619323, + Boston__yhat_lower: 1.26161432990456, + Boston__yhat_upper: 1.4956362001975996, + Boston: 1.42, + California__yhat: 1.2492756158849017, + California__yhat_lower: 1.0902577705631182, + California__yhat_upper: 1.3961114387176121, + California: 1.16, + WestTexNewMexico__yhat: 1.0453669318672152, + WestTexNewMexico__yhat_lower: 0.880018640334351, + WestTexNewMexico__yhat_upper: 1.2114783493039134, + WestTexNewMexico: 1.01, + }, + { + __timestamp: 1459728000000, + Boston__yhat: 1.3901037265229272, + Boston__yhat_lower: 1.2770286998811706, + Boston__yhat_upper: 1.5062632276621368, + Boston: 1.335, + California__yhat: 1.2492550362056745, + California__yhat_lower: 1.104424197641724, + California__yhat_upper: 1.3982138003395288, + California: 1.17, + WestTexNewMexico__yhat: 1.0567507538087313, + WestTexNewMexico__yhat_lower: 0.8882903778713199, + WestTexNewMexico__yhat_upper: 1.2202271780312777, + WestTexNewMexico: 1.04, + }, + { + __timestamp: 1460332800000, + Boston__yhat: 1.3978691117516269, + Boston__yhat_lower: 1.2803306353511645, + Boston__yhat_upper: 1.513787192951786, + Boston: 1.335, + California__yhat: 1.2200894896539514, + California__yhat_lower: 1.0637919122116424, + California__yhat_upper: 1.3817089822591981, + California: 1.16, + WestTexNewMexico__yhat: 1.0764809347132152, + WestTexNewMexico__yhat_lower: 0.903254971967084, + WestTexNewMexico__yhat_upper: 1.2410429345467036, + WestTexNewMexico: 1.045, + }, + { + __timestamp: 1460937600000, + Boston__yhat: 1.3967995570914404, + Boston__yhat_lower: 1.2775524616045004, + Boston__yhat_upper: 1.5128645378452974, + Boston: 1.4, + California__yhat: 1.1832691323436206, + California__yhat_lower: 1.0305934334474776, + California__yhat_upper: 1.3356802771773342, + California: 1.115, + WestTexNewMexico__yhat: 1.090164068838935, + WestTexNewMexico__yhat_lower: 0.9300661576818052, + WestTexNewMexico__yhat_upper: 1.2536103431855903, + WestTexNewMexico: 1.065, + }, + { + __timestamp: 1461542400000, + Boston__yhat: 1.3859697249253664, + Boston__yhat_lower: 1.2636249671382607, + Boston__yhat_upper: 1.5049262303685809, + Boston: 1.42, + California__yhat: 1.1630585559396942, + California__yhat_lower: 1.0068041367734835, + California__yhat_upper: 1.3142932998835315, + California: 0.995, + WestTexNewMexico__yhat: 1.0877981841342876, + WestTexNewMexico__yhat_lower: 0.9234728270737066, + WestTexNewMexico__yhat_upper: 1.2675215898735945, + WestTexNewMexico: 0.91, + }, + { + __timestamp: 1462147200000, + Boston__yhat: 1.3780621889016782, + Boston__yhat_lower: 1.2655370800557288, + Boston__yhat_upper: 1.4872536603725823, + Boston: 1.215, + California__yhat: 1.1713334574546839, + California__yhat_lower: 1.0183235764036245, + California__yhat_upper: 1.334211201339179, + California: 1.02, + WestTexNewMexico__yhat: 1.0753195555471162, + WestTexNewMexico__yhat_lower: 0.9138031185965445, + WestTexNewMexico__yhat_upper: 1.241542731790294, + WestTexNewMexico: 0.92, + }, + { + __timestamp: 1462752000000, + Boston__yhat: 1.390579992253881, + Boston__yhat_lower: 1.2678098774291926, + Boston__yhat_upper: 1.514517582502428, + Boston: 1.32, + California__yhat: 1.2045753309987504, + California__yhat_lower: 1.052786503515949, + California__yhat_upper: 1.3621516718095754, + California: 1.235, + WestTexNewMexico__yhat: 1.0708076218477798, + WestTexNewMexico__yhat_lower: 0.89839426584527, + WestTexNewMexico__yhat_upper: 1.2432070811178022, + WestTexNewMexico: 0.975, + }, + { + __timestamp: 1463356800000, + Boston__yhat: 1.4207891542698583, + Boston__yhat_lower: 1.3010916606934653, + Boston__yhat_upper: 1.5322542386945917, + Boston: 1.31, + California__yhat: 1.2463341560434724, + California__yhat_lower: 1.0872182425671355, + California__yhat_upper: 1.398196065122614, + California: 1.135, + WestTexNewMexico__yhat: 1.0830533836123841, + WestTexNewMexico__yhat_lower: 0.9270325265697668, + WestTexNewMexico__yhat_upper: 1.2433561617025806, + WestTexNewMexico: 1.08, + }, + { + __timestamp: 1463961600000, + Boston__yhat: 1.4528802442431825, + Boston__yhat_lower: 1.339060636220628, + Boston__yhat_upper: 1.5651577314726575, + Boston: 1.335, + California__yhat: 1.2800536949604688, + California__yhat_lower: 1.1213938976676492, + California__yhat_upper: 1.4419002496176487, + California: 1.235, + WestTexNewMexico__yhat: 1.0980521279561197, + WestTexNewMexico__yhat_lower: 0.9322311004284876, + WestTexNewMexico__yhat_upper: 1.262519822257723, + WestTexNewMexico: 1.06, + }, + { + __timestamp: 1464566400000, + Boston__yhat: 1.4738409532820527, + Boston__yhat_lower: 1.3555968485283043, + Boston__yhat_upper: 1.591684397428816, + Boston: 1.375, + California__yhat: 1.2952850761979349, + California__yhat_lower: 1.1438814607731747, + California__yhat_upper: 1.4594084279689081, + California: 1.245, + WestTexNewMexico__yhat: 1.089859801760547, + WestTexNewMexico__yhat_lower: 0.9336639795874753, + WestTexNewMexico__yhat_upper: 1.246993776569905, + WestTexNewMexico: 1.02, + }, + { + __timestamp: 1465171200000, + Boston__yhat: 1.4890320660392282, + Boston__yhat_lower: 1.3753680086084525, + Boston__yhat_upper: 1.6067146520336024, + Boston: 1.33, + California__yhat: 1.2927494439397973, + California__yhat_lower: 1.128002682584889, + California__yhat_upper: 1.4466582402918686, + California: 1.255, + WestTexNewMexico__yhat: 1.0523846500937815, + WestTexNewMexico__yhat_lower: 0.878097580557322, + WestTexNewMexico__yhat_upper: 1.208712345324737, + WestTexNewMexico: 1.09, + }, + { + __timestamp: 1465776000000, + Boston__yhat: 1.5155587976896643, + Boston__yhat_lower: 1.4072015263506499, + Boston__yhat_upper: 1.6355581427270762, + Boston: 1.425, + California__yhat: 1.2870463107367591, + California__yhat_lower: 1.1386143995965625, + California__yhat_upper: 1.4509670787815665, + California: 1.315, + WestTexNewMexico__yhat: 1.0177076740491202, + WestTexNewMexico__yhat_lower: 0.8522281057724683, + WestTexNewMexico__yhat_upper: 1.1828659506179917, + WestTexNewMexico: 1.08, + }, + { + __timestamp: 1466380800000, + Boston__yhat: 1.553609825840023, + Boston__yhat_lower: 1.4363699394765241, + Boston__yhat_upper: 1.6646708738711482, + Boston: 1.465, + California__yhat: 1.2977535594821146, + California__yhat_lower: 1.1433922084496908, + California__yhat_upper: 1.452704521998053, + California: 1.27, + WestTexNewMexico__yhat: 1.034155336536419, + WestTexNewMexico__yhat_lower: 0.8767952483197881, + WestTexNewMexico__yhat_upper: 1.190431952173455, + WestTexNewMexico: 1.09, + }, + { + __timestamp: 1466985600000, + Boston__yhat: 1.5810989180423636, + Boston__yhat_lower: 1.4712906617254233, + Boston__yhat_upper: 1.7031366663740148, + Boston: 1.495, + California__yhat: 1.3389938921935745, + California__yhat_lower: 1.195322302704384, + California__yhat_upper: 1.5034014849132746, + California: 1.34, + WestTexNewMexico__yhat: 1.119390863260118, + WestTexNewMexico__yhat_lower: 0.9566638997448632, + WestTexNewMexico__yhat_upper: 1.291382075169968, + WestTexNewMexico: 1.145, + }, + { + __timestamp: 1467590400000, + Boston__yhat: 1.5713962603563556, + Boston__yhat_lower: 1.4584685851949164, + Boston__yhat_upper: 1.6931151296207205, + Boston: 1.455, + California__yhat: 1.404984500630841, + California__yhat_lower: 1.2470413467005759, + California__yhat_upper: 1.5606944221931451, + California: 1.295, + WestTexNewMexico__yhat: 1.236356118434577, + WestTexNewMexico__yhat_lower: 1.0646330757141054, + WestTexNewMexico__yhat_upper: 1.4018372284129585, + WestTexNewMexico: 1.26, + }, + { + __timestamp: 1468195200000, + Boston__yhat: 1.5226860023566928, + Boston__yhat_lower: 1.4025316733171211, + Boston__yhat_upper: 1.633108802218944, + Boston: 1.665, + California__yhat: 1.4702697475325415, + California__yhat_lower: 1.3053129350593928, + California__yhat_upper: 1.6317344334869877, + California: 1.365, + WestTexNewMexico__yhat: 1.3219192645467641, + WestTexNewMexico__yhat_lower: 1.1496881516514708, + WestTexNewMexico__yhat_upper: 1.4815087912863347, + WestTexNewMexico: 1.42, + }, + { + __timestamp: 1468800000000, + Boston__yhat: 1.4641432908645742, + Boston__yhat_lower: 1.3560733523952684, + Boston__yhat_upper: 1.5782310680743912, + Boston: 1.505, + California__yhat: 1.5084846078350787, + California__yhat_lower: 1.3587250298828615, + California__yhat_upper: 1.6619848148225922, + California: 1.38, + WestTexNewMexico__yhat: 1.3432530381551955, + WestTexNewMexico__yhat_lower: 1.1897339861076903, + WestTexNewMexico__yhat_upper: 1.5124981951028644, + WestTexNewMexico: 1.51, + }, + { + __timestamp: 1469404800000, + Boston__yhat: 1.4307998991771547, + Boston__yhat_lower: 1.301667237997504, + Boston__yhat_upper: 1.5476934496120969, + Boston: 1.375, + California__yhat: 1.5122071787503633, + California__yhat_lower: 1.356841125041551, + California__yhat_upper: 1.6904832424865197, + California: 1.39, + WestTexNewMexico__yhat: 1.3247458635692688, + WestTexNewMexico__yhat_lower: 1.171319851493184, + WestTexNewMexico__yhat_upper: 1.4935185793456895, + WestTexNewMexico: 1.45, + }, + { + __timestamp: 1470009600000, + Boston__yhat: 1.4341759361691848, + Boston__yhat_lower: 1.3207185699269184, + Boston__yhat_upper: 1.5541879075562277, + Boston: 1.395, + California__yhat: 1.5012739779918045, + California__yhat_lower: 1.350483607848206, + California__yhat_upper: 1.6487086197098788, + California: 1.325, + WestTexNewMexico__yhat: 1.3177013212501445, + WestTexNewMexico__yhat_lower: 1.1621873011805777, + WestTexNewMexico__yhat_upper: 1.4784327748468409, + WestTexNewMexico: 1.365, + }, + { + __timestamp: 1470614400000, + Boston__yhat: 1.4594412989347867, + Boston__yhat_lower: 1.3360840052623852, + Boston__yhat_upper: 1.579071411905622, + Boston: 1.26, + California__yhat: 1.5039080884399674, + California__yhat_lower: 1.3550207323817558, + California__yhat_upper: 1.6580067767958333, + California: 1.27, + WestTexNewMexico__yhat: 1.346525292803424, + WestTexNewMexico__yhat_lower: 1.1845477241766214, + WestTexNewMexico__yhat_upper: 1.5253058180362393, + WestTexNewMexico: 1.325, + }, + { + __timestamp: 1471219200000, + Boston__yhat: 1.4881079558997103, + Boston__yhat_lower: 1.3645503667323902, + Boston__yhat_upper: 1.6020332609252061, + Boston: 1.295, + California__yhat: 1.5307353814067561, + California__yhat_lower: 1.3672276366429863, + California__yhat_upper: 1.6931440212842594, + California: 1.29, + WestTexNewMexico__yhat: 1.3900463616834302, + WestTexNewMexico__yhat_lower: 1.2178728357390292, + WestTexNewMexico__yhat_upper: 1.5544448251077518, + WestTexNewMexico: 1.34, + }, + { + __timestamp: 1471824000000, + Boston__yhat: 1.5165851119026208, + Boston__yhat_lower: 1.3993213687897126, + Boston__yhat_upper: 1.6362999718104112, + Boston: 1.365, + California__yhat: 1.5661166722198414, + California__yhat_lower: 1.4072590036196495, + California__yhat_upper: 1.7230281466014852, + California: 1.31, + WestTexNewMexico__yhat: 1.415867766350719, + WestTexNewMexico__yhat_lower: 1.2597339451914085, + WestTexNewMexico__yhat_upper: 1.581519285569223, + WestTexNewMexico: 1.31, + }, + { + __timestamp: 1472428800000, + Boston__yhat: 1.5493319083996173, + Boston__yhat_lower: 1.4286383246773895, + Boston__yhat_upper: 1.6610584673423974, + Boston: 1.57, + California__yhat: 1.585754115558432, + California__yhat_lower: 1.4329128169945788, + California__yhat_upper: 1.7361132619288921, + California: 1.365, + WestTexNewMexico__yhat: 1.425003944497083, + WestTexNewMexico__yhat_lower: 1.263935849492006, + WestTexNewMexico__yhat_upper: 1.599883010034185, + WestTexNewMexico: 1.35, + }, + { + __timestamp: 1473033600000, + Boston__yhat: 1.579097219503869, + Boston__yhat_lower: 1.4625124607540727, + Boston__yhat_upper: 1.69854277527247, + Boston: 1.555, + California__yhat: 1.5829289478592412, + California__yhat_lower: 1.4356249194166182, + California__yhat_upper: 1.7385318431729417, + California: 1.335, + WestTexNewMexico__yhat: 1.4530568901505994, + WestTexNewMexico__yhat_lower: 1.2927701064887283, + WestTexNewMexico__yhat_upper: 1.630286407059165, + WestTexNewMexico: 1.3, + }, + { + __timestamp: 1473638400000, + Boston__yhat: 1.5835307321120848, + Boston__yhat_lower: 1.4570692824610627, + Boston__yhat_upper: 1.6964456413709623, + Boston: 1.655, + California__yhat: 1.5763283813423616, + California__yhat_lower: 1.4096833213932036, + California__yhat_upper: 1.7310434287097953, + California: 1.53, + WestTexNewMexico__yhat: 1.5255881976647532, + WestTexNewMexico__yhat_lower: 1.3561754955258563, + WestTexNewMexico__yhat_upper: 1.684027893319529, + WestTexNewMexico: 1.36, + }, + { + __timestamp: 1474243200000, + Boston__yhat: 1.5466400307744965, + Boston__yhat_lower: 1.4338966810651357, + Boston__yhat_upper: 1.6648156828446639, + Boston: 1.625, + California__yhat: 1.590860884362237, + California__yhat_lower: 1.434309019444344, + California__yhat_upper: 1.7362166774986345, + California: 1.55, + WestTexNewMexico__yhat: 1.6196339680610776, + WestTexNewMexico__yhat_lower: 1.4497107031175656, + WestTexNewMexico__yhat_upper: 1.7806142462800227, + WestTexNewMexico: 1.95, + }, + { + __timestamp: 1474848000000, + Boston__yhat: 1.4811283468885308, + Boston__yhat_lower: 1.3715392717145678, + Boston__yhat_upper: 1.587116073735804, + Boston: 1.61, + California__yhat: 1.6306839793835606, + California__yhat_lower: 1.4641855806125463, + California__yhat_upper: 1.7938003803814595, + California: 1.55, + WestTexNewMexico__yhat: 1.677591239818513, + WestTexNewMexico__yhat_lower: 1.5077716190904478, + WestTexNewMexico__yhat_upper: 1.8492022322889896, + WestTexNewMexico: 1.965, + }, + { + __timestamp: 1475452800000, + Boston__yhat: 1.423734988977364, + Boston__yhat_lower: 1.3106773299859629, + Boston__yhat_upper: 1.537088463633997, + Boston: 1.53, + California__yhat: 1.672080021638384, + California__yhat_lower: 1.5130954164169301, + California__yhat_upper: 1.829975053984329, + California: 1.66, + WestTexNewMexico__yhat: 1.660660080985409, + WestTexNewMexico__yhat_lower: 1.5072494922262853, + WestTexNewMexico__yhat_upper: 1.8299157553498004, + WestTexNewMexico: 1.7, + }, + { + __timestamp: 1476057600000, + Boston__yhat: 1.405528241764916, + Boston__yhat_lower: 1.2843080290225841, + Boston__yhat_upper: 1.5165997437269296, + Boston: 1.515, + California__yhat: 1.683903744657914, + California__yhat_lower: 1.527790433264822, + California__yhat_upper: 1.8494276842384527, + California: 1.71, + WestTexNewMexico__yhat: 1.584598918099223, + WestTexNewMexico__yhat_lower: 1.4331280394220376, + WestTexNewMexico__yhat_upper: 1.7554432844710093, + WestTexNewMexico: 1.9, + }, + { + __timestamp: 1476662400000, + Boston__yhat: 1.4272680640340751, + Boston__yhat_lower: 1.312120538966425, + Boston__yhat_upper: 1.5460174589362479, + Boston: 1.45, + California__yhat: 1.6555051697315277, + California__yhat_lower: 1.4902473868501909, + California__yhat_upper: 1.8115544862731081, + California: 1.985, + WestTexNewMexico__yhat: 1.5007544229607501, + WestTexNewMexico__yhat_lower: 1.3259325266237634, + WestTexNewMexico__yhat_upper: 1.6625794037605102, + WestTexNewMexico: 1.635, + }, + { + __timestamp: 1477267200000, + Boston__yhat: 1.4638545217981513, + Boston__yhat_lower: 1.3470853117000912, + Boston__yhat_upper: 1.5848099636614141, + Boston: 1.58, + California__yhat: 1.604700938940257, + California__yhat_lower: 1.4455803728171153, + California__yhat_upper: 1.7626934413166773, + California: 2.085, + WestTexNewMexico__yhat: 1.445462516001628, + WestTexNewMexico__yhat_lower: 1.2733202392309644, + WestTexNewMexico__yhat_upper: 1.6136849839376912, + WestTexNewMexico: 1.84, + }, + { + __timestamp: 1477872000000, + Boston__yhat: 1.4900776161328921, + Boston__yhat_lower: 1.363288614749134, + Boston__yhat_upper: 1.6074611690548872, + Boston: 1.67, + California__yhat: 1.558597584307237, + California__yhat_lower: 1.4092137762693824, + California__yhat_upper: 1.7168151371065437, + California: 2.025, + WestTexNewMexico__yhat: 1.412395217151307, + WestTexNewMexico__yhat_lower: 1.2522003655479184, + WestTexNewMexico__yhat_upper: 1.5720725257028094, + WestTexNewMexico: 1.5, + }, + { + __timestamp: 1478476800000, + Boston__yhat: 1.499719058422172, + Boston__yhat_lower: 1.3860677720273529, + Boston__yhat_upper: 1.6257991109615109, + Boston: 1.575, + California__yhat: 1.5269577836642934, + California__yhat_lower: 1.3684070398469637, + California__yhat_upper: 1.6834866934281587, + California: 1.805, + WestTexNewMexico__yhat: 1.372541136830551, + WestTexNewMexico__yhat_lower: 1.2048951837458486, + WestTexNewMexico__yhat_upper: 1.5399850010433882, + WestTexNewMexico: 1.275, + }, + { + __timestamp: 1479081600000, + Boston__yhat: 1.5021946534076882, + Boston__yhat_lower: 1.3897701851514586, + Boston__yhat_upper: 1.6278988627377922, + Boston: 1.595, + California__yhat: 1.4944841530199826, + California__yhat_lower: 1.3367754674478323, + California__yhat_upper: 1.6476086861010533, + California: 1.71, + WestTexNewMexico__yhat: 1.3131629324634078, + WestTexNewMexico__yhat_lower: 1.1482685904140733, + WestTexNewMexico__yhat_upper: 1.4831223148967962, + WestTexNewMexico: 1.37, + }, + { + __timestamp: 1479686400000, + Boston__yhat: 1.5070855180263265, + Boston__yhat_lower: 1.3758031420462578, + Boston__yhat_upper: 1.6224302637010204, + Boston: 1.695, + California__yhat: 1.4390549550559264, + California__yhat_lower: 1.2870897870341376, + California__yhat_upper: 1.581365165178595, + California: 1.625, + WestTexNewMexico__yhat: 1.2510530948882772, + WestTexNewMexico__yhat_lower: 1.096852315699185, + WestTexNewMexico__yhat_upper: 1.4228159851095246, + WestTexNewMexico: 1.26, + }, + { + __timestamp: 1480291200000, + Boston__yhat: 1.515981385992619, + Boston__yhat_lower: 1.402752063281944, + Boston__yhat_upper: 1.6388822584558373, + Boston: 1.63, + California__yhat: 1.3574557027193999, + California__yhat_lower: 1.205330218116345, + California__yhat_upper: 1.511849266149104, + California: 1.435, + WestTexNewMexico__yhat: 1.2101138191889365, + WestTexNewMexico__yhat_lower: 1.047738882979899, + WestTexNewMexico__yhat_upper: 1.367409106353797, + WestTexNewMexico: 1.335, + }, + { + __timestamp: 1480896000000, + Boston__yhat: 1.5265033621432893, + Boston__yhat_lower: 1.4094285111714948, + Boston__yhat_upper: 1.6393549781279129, + Boston: 1.55, + California__yhat: 1.2732924320010715, + California__yhat_lower: 1.1169415330014323, + California__yhat_upper: 1.4177684146143212, + California: 1.27, + WestTexNewMexico__yhat: 1.194106692692431, + WestTexNewMexico__yhat_lower: 1.0239408159790335, + WestTexNewMexico__yhat_upper: 1.3715283466293289, + WestTexNewMexico: 1.165, + }, + { + __timestamp: 1481500800000, + Boston__yhat: 1.537749982540017, + Boston__yhat_lower: 1.4234510229315234, + Boston__yhat_upper: 1.6488062654403828, + Boston: 1.545, + California__yhat: 1.2191966639579936, + California__yhat_lower: 1.0561519515828182, + California__yhat_upper: 1.377229313367787, + California: 1.28, + WestTexNewMexico__yhat: 1.1860438398748636, + WestTexNewMexico__yhat_lower: 1.0194752346333227, + WestTexNewMexico__yhat_upper: 1.3555997235052395, + WestTexNewMexico: 1.05, + }, + { + __timestamp: 1482105600000, + Boston__yhat: 1.54717287799282, + Boston__yhat_lower: 1.4325894419217593, + Boston__yhat_upper: 1.6607558950326091, + Boston: 1.63, + California__yhat: 1.209651359198234, + California__yhat_lower: 1.047376483523164, + California__yhat_upper: 1.3617192197077554, + California: 1.235, + WestTexNewMexico__yhat: 1.1708733574176018, + WestTexNewMexico__yhat_lower: 1.0094451550980346, + WestTexNewMexico__yhat_upper: 1.3284412755009747, + WestTexNewMexico: 1.02, + }, + { + __timestamp: 1482710400000, + Boston__yhat: 1.5525446358914896, + Boston__yhat_lower: 1.4321559525418919, + Boston__yhat_upper: 1.6629300100050604, + Boston: 1.675, + California__yhat: 1.2290873108457203, + California__yhat_lower: 1.0834735690044874, + California__yhat_upper: 1.3911463424635342, + California: 1.175, + WestTexNewMexico__yhat: 1.1515358452259419, + WestTexNewMexico__yhat_lower: 0.9713798394863586, + WestTexNewMexico__yhat_upper: 1.328783456292196, + WestTexNewMexico: 1.015, + }, + { + __timestamp: 1483315200000, + Boston__yhat: 1.550064954571874, + Boston__yhat_lower: 1.4280653228961655, + Boston__yhat_upper: 1.6639596214565613, + Boston: 1.52, + California__yhat: 1.2455583448467942, + California__yhat_lower: 1.082642369663905, + California__yhat_upper: 1.4067992651381476, + California: 1.25, + WestTexNewMexico__yhat: 1.141280771099041, + WestTexNewMexico__yhat_lower: 0.9795394160699816, + WestTexNewMexico__yhat_upper: 1.3070397301496142, + WestTexNewMexico: 0.97, + }, + { + __timestamp: 1483920000000, + Boston__yhat: 1.543270380547365, + Boston__yhat_lower: 1.4259694605152158, + Boston__yhat_upper: 1.6640446618097087, + Boston: 1.59, + California__yhat: 1.2373507175673657, + California__yhat_lower: 1.080885612625107, + California__yhat_upper: 1.3882751108018838, + California: 1.295, + WestTexNewMexico__yhat: 1.1440394384901078, + WestTexNewMexico__yhat_lower: 0.9719642365657081, + WestTexNewMexico__yhat_upper: 1.305268597361833, + WestTexNewMexico: 0.96, + }, + { + __timestamp: 1484524800000, + Boston__yhat: 1.543062570935502, + Boston__yhat_lower: 1.4250583449512002, + Boston__yhat_upper: 1.6627359664660957, + Boston: 1.595, + California__yhat: 1.209153215553262, + California__yhat_lower: 1.056458798823747, + California__yhat_upper: 1.359740673582503, + California: 1.145, + WestTexNewMexico__yhat: 1.148023830457049, + WestTexNewMexico__yhat_lower: 0.985310000972858, + WestTexNewMexico__yhat_upper: 1.3164989406131617, + WestTexNewMexico: 0.94, + }, + { + __timestamp: 1485129600000, + Boston__yhat: 1.5563131537668164, + Boston__yhat_lower: 1.4359781802685476, + Boston__yhat_upper: 1.6695544001612004, + Boston: 1.61, + California__yhat: 1.1847373501547807, + California__yhat_lower: 1.026980478300004, + California__yhat_upper: 1.3383246188592155, + California: 1.1, + WestTexNewMexico__yhat: 1.1396463764407923, + WestTexNewMexico__yhat_lower: 0.9764521573834166, + WestTexNewMexico__yhat_upper: 1.3059493310264991, + WestTexNewMexico: 1.02, + }, + { + __timestamp: 1485734400000, + Boston__yhat: 1.580213862921242, + Boston__yhat_lower: 1.471785065399228, + Boston__yhat_upper: 1.709859060053903, + Boston: 1.41, + California__yhat: 1.1843242136120449, + California__yhat_lower: 1.022209593451801, + California__yhat_upper: 1.3398729576536006, + California: 1.015, + WestTexNewMexico__yhat: 1.1177655399044324, + WestTexNewMexico__yhat_lower: 0.960870212492223, + WestTexNewMexico__yhat_upper: 1.2800085941377326, + WestTexNewMexico: 0.915, + }, + { + __timestamp: 1486339200000, + Boston__yhat: 1.6028900169710594, + Boston__yhat_lower: 1.493195933295021, + Boston__yhat_upper: 1.7250787356916857, + Boston: 1.535, + California__yhat: 1.2076887864022636, + California__yhat_lower: 1.0480067008433784, + California__yhat_upper: 1.36157622282349, + California: 1.165, + WestTexNewMexico__yhat: 1.0962426365666094, + WestTexNewMexico__yhat_lower: 0.932735142613276, + WestTexNewMexico__yhat_upper: 1.2658710755999614, + WestTexNewMexico: 1.025, + }, + { + __timestamp: 1486944000000, + Boston__yhat: 1.6180243254601834, + Boston__yhat_lower: 1.5019253494945275, + Boston__yhat_upper: 1.7317070139876698, + Boston: 1.685, + California__yhat: 1.2374898518140625, + California__yhat_lower: 1.0871874502535506, + California__yhat_upper: 1.38855460185599, + California: 1.225, + WestTexNewMexico__yhat: 1.0892946232201077, + WestTexNewMexico__yhat_lower: 0.912249776571317, + WestTexNewMexico__yhat_upper: 1.2635151884011402, + WestTexNewMexico: 1.02, + }, + { + __timestamp: 1487548800000, + Boston__yhat: 1.6314681516138463, + Boston__yhat_lower: 1.5121633115952695, + Boston__yhat_upper: 1.744533492684596, + Boston: 1.625, + California__yhat: 1.2579896861798496, + California__yhat_lower: 1.1023005450129273, + California__yhat_upper: 1.410805180571987, + California: 1.145, + WestTexNewMexico__yhat: 1.0985988437581984, + WestTexNewMexico__yhat_lower: 0.9272276807854124, + WestTexNewMexico__yhat_upper: 1.268223154420295, + WestTexNewMexico: 0.975, + }, + { + __timestamp: 1488153600000, + Boston__yhat: 1.6527362281945481, + Boston__yhat_lower: 1.5370156988376074, + Boston__yhat_upper: 1.7696617003294441, + Boston: 1.51, + California__yhat: 1.2703333061019455, + California__yhat_lower: 1.111723585156037, + California__yhat_upper: 1.4298462878930536, + California: 1.3, + WestTexNewMexico__yhat: 1.1134048111318713, + WestTexNewMexico__yhat_lower: 0.9390626068594005, + WestTexNewMexico__yhat_upper: 1.269659885739347, + WestTexNewMexico: 1.035, + }, + { + __timestamp: 1488758400000, + Boston__yhat: 1.6796262551910217, + Boston__yhat_lower: 1.5600073429179953, + Boston__yhat_upper: 1.792138510302397, + Boston: 1.82, + California__yhat: 1.2897245790200202, + California__yhat_lower: 1.1379108799552407, + California__yhat_upper: 1.4458817032729592, + California: 1.42, + WestTexNewMexico__yhat: 1.1212520704642086, + WestTexNewMexico__yhat_lower: 0.9646525278187917, + WestTexNewMexico__yhat_upper: 1.297630020352523, + WestTexNewMexico: 1.005, + }, + { + __timestamp: 1489363200000, + Boston__yhat: 1.7047676058220433, + Boston__yhat_lower: 1.588004698954538, + Boston__yhat_upper: 1.8237876916992442, + Boston: 1.8, + California__yhat: 1.3278000750010266, + California__yhat_lower: 1.1720801128566298, + California__yhat_upper: 1.479537972046816, + California: 1.44, + WestTexNewMexico__yhat: 1.1173287551594895, + WestTexNewMexico__yhat_lower: 0.9541083635720938, + WestTexNewMexico__yhat_upper: 1.2758173793309833, + WestTexNewMexico: 0.975, + }, + { + __timestamp: 1489968000000, + Boston__yhat: 1.7199499907308777, + Boston__yhat_lower: 1.610430126823349, + Boston__yhat_upper: 1.848391211549295, + Boston: 1.765, + California__yhat: 1.3778452208195984, + California__yhat_lower: 1.2271930709177776, + California__yhat_upper: 1.526801020146615, + California: 1.515, + WestTexNewMexico__yhat: 1.1078235921572972, + WestTexNewMexico__yhat_lower: 0.9322343272693547, + WestTexNewMexico__yhat_upper: 1.2623819171505275, + WestTexNewMexico: 0.975, + }, + { + __timestamp: 1490572800000, + Boston__yhat: 1.727509288653125, + Boston__yhat_lower: 1.608955989233979, + Boston__yhat_upper: 1.8398701134735855, + Boston: 1.78, + California__yhat: 1.417523866504537, + California__yhat_lower: 1.2563042947263576, + California__yhat_upper: 1.5679469295439363, + California: 1.43, + WestTexNewMexico__yhat: 1.104382522017206, + WestTexNewMexico__yhat_lower: 0.9348588827263966, + WestTexNewMexico__yhat_upper: 1.288927958936451, + WestTexNewMexico: 0.95, + }, + { + __timestamp: 1491177600000, + Boston__yhat: 1.734748827915991, + Boston__yhat_lower: 1.617485284327697, + Boston__yhat_upper: 1.8492714064430869, + Boston: 1.765, + California__yhat: 1.4268238820259231, + California__yhat_lower: 1.2605967943877965, + California__yhat_upper: 1.5894250214309384, + California: 1.38, + WestTexNewMexico__yhat: 1.114763946566295, + WestTexNewMexico__yhat_lower: 0.9559054814545247, + WestTexNewMexico__yhat_upper: 1.2794678977894611, + WestTexNewMexico: 1.045, + }, + { + __timestamp: 1491782400000, + Boston__yhat: 1.740284889793295, + Boston__yhat_lower: 1.6251285202563455, + Boston__yhat_upper: 1.8603081330891629, + Boston: 1.805, + California__yhat: 1.4047444660311283, + California__yhat_lower: 1.252187601408478, + California__yhat_upper: 1.5602879586786764, + California: 1.505, + WestTexNewMexico__yhat: 1.1354077134423013, + WestTexNewMexico__yhat_lower: 0.9669174773999973, + WestTexNewMexico__yhat_upper: 1.3060872164149298, + WestTexNewMexico: 1.025, + }, + { + __timestamp: 1492387200000, + Boston__yhat: 1.7383035748849756, + Boston__yhat_lower: 1.6195011753192454, + Boston__yhat_upper: 1.8499952590613429, + Boston: 1.755, + California__yhat: 1.3704374467860099, + California__yhat_lower: 1.2135979946151467, + California__yhat_upper: 1.5264088446734072, + California: 1.43, + WestTexNewMexico__yhat: 1.1527001514520159, + WestTexNewMexico__yhat_lower: 0.989091347188803, + WestTexNewMexico__yhat_upper: 1.3117056024984444, + WestTexNewMexico: 1.19, + }, + { + __timestamp: 1492992000000, + Boston__yhat: 1.7256885365731087, + Boston__yhat_lower: 1.601394933506115, + Boston__yhat_upper: 1.8416830344674322, + Boston: 1.815, + California__yhat: 1.3489909145619732, + California__yhat_lower: 1.1912572159413557, + California__yhat_upper: 1.5139736730705589, + California: 1.43, + WestTexNewMexico__yhat: 1.1547506519769346, + WestTexNewMexico__yhat_lower: 0.9937160393619098, + WestTexNewMexico__yhat_upper: 1.3128854780729509, + WestTexNewMexico: 1.285, + }, + { + __timestamp: 1493596800000, + Boston__yhat: 1.7130353934560185, + Boston__yhat_lower: 1.596442859432103, + Boston__yhat_upper: 1.8308755987420824, + Boston: 1.735, + California__yhat: 1.355173473126275, + California__yhat_lower: 1.2003893000461905, + California__yhat_upper: 1.496417471603667, + California: 1.335, + WestTexNewMexico__yhat: 1.1443811288700725, + WestTexNewMexico__yhat_lower: 0.9698330014155393, + WestTexNewMexico__yhat_upper: 1.3058601268221433, + WestTexNewMexico: 1.28, + }, + { + __timestamp: 1494201600000, + Boston__yhat: 1.7162180910739395, + Boston__yhat_lower: 1.5979253814194743, + Boston__yhat_upper: 1.8316564949879741, + Boston: 1.805, + California__yhat: 1.386991187887074, + California__yhat_lower: 1.2304414370019476, + California__yhat_upper: 1.5433100030609836, + California: 1.465, + WestTexNewMexico__yhat: 1.1382886920665993, + WestTexNewMexico__yhat_lower: 0.9703025376318066, + WestTexNewMexico__yhat_upper: 1.3068718678114037, + WestTexNewMexico: 1.305, + }, + { + __timestamp: 1494806400000, + Boston__yhat: 1.7368683613674492, + Boston__yhat_lower: 1.6214553727141692, + Boston__yhat_upper: 1.852401124361395, + Boston: 1.805, + California__yhat: 1.4303795113868312, + California__yhat_lower: 1.2748442887820097, + California__yhat_upper: 1.5873278121590861, + California: 1.565, + WestTexNewMexico__yhat: 1.1488422721542977, + WestTexNewMexico__yhat_lower: 0.9867027869665088, + WestTexNewMexico__yhat_upper: 1.3275487440106781, + WestTexNewMexico: 1.31, + }, + { + __timestamp: 1495411200000, + Boston__yhat: 1.7626826807520022, + Boston__yhat_lower: 1.6456053495618348, + Boston__yhat_upper: 1.8811360090158376, + Boston: 1.885, + California__yhat: 1.4684172268279105, + California__yhat_lower: 1.3138830044029726, + California__yhat_upper: 1.63065854402894, + California: 1.54, + WestTexNewMexico__yhat: 1.16625345390289, + WestTexNewMexico__yhat_lower: 0.9985190124373086, + WestTexNewMexico__yhat_upper: 1.3138394903646435, + WestTexNewMexico: 1.28, + }, + { + __timestamp: 1496016000000, + Boston__yhat: 1.7785402290075782, + Boston__yhat_lower: 1.6615410733670033, + Boston__yhat_upper: 1.8864985273398323, + Boston: 1.885, + California__yhat: 1.489129750002956, + California__yhat_lower: 1.3443131604382104, + California__yhat_upper: 1.6419229046975075, + California: 1.42, + WestTexNewMexico__yhat: 1.1646218812567077, + WestTexNewMexico__yhat_lower: 0.9914621431594239, + WestTexNewMexico__yhat_upper: 1.3237637005616976, + WestTexNewMexico: 1.21, + }, + { + __timestamp: 1496620800000, + Boston__yhat: 1.7863439428343726, + Boston__yhat_lower: 1.6711930247723719, + Boston__yhat_upper: 1.9001673638546457, + Boston: 1.895, + California__yhat: 1.4909845926050966, + California__yhat_lower: 1.332806158530423, + California__yhat_upper: 1.6412020513359216, + California: 1.505, + WestTexNewMexico__yhat: 1.132060708096326, + WestTexNewMexico__yhat_lower: 0.9572994286970965, + WestTexNewMexico__yhat_upper: 1.2868826416978039, + WestTexNewMexico: 1.245, + }, + { + __timestamp: 1497225600000, + Boston__yhat: 1.8014575842684502, + Boston__yhat_lower: 1.6864035896068974, + Boston__yhat_upper: 1.9197232067167753, + Boston: 1.89, + California__yhat: 1.4853605712593696, + California__yhat_lower: 1.3373117186789285, + California__yhat_upper: 1.641800720034394, + California: 1.49, + WestTexNewMexico__yhat: 1.0941978529237113, + WestTexNewMexico__yhat_lower: 0.9205119886710038, + WestTexNewMexico__yhat_upper: 1.2590480686928345, + WestTexNewMexico: 0.87, + }, + { + __timestamp: 1497830400000, + Boston__yhat: 1.8296276869237924, + Boston__yhat_lower: 1.7208486392007467, + Boston__yhat_upper: 1.945899396479988, + Boston: 1.905, + California__yhat: 1.4924712873078025, + California__yhat_lower: 1.3393635134719806, + California__yhat_upper: 1.6544132409285186, + California: 1.405, + WestTexNewMexico__yhat: 1.0997295717174325, + WestTexNewMexico__yhat_lower: 0.939148005703825, + WestTexNewMexico__yhat_upper: 1.2633924450577891, + WestTexNewMexico: 0.85, + }, + { + __timestamp: 1498435200000, + Boston__yhat: 1.8519239358166282, + Boston__yhat_lower: 1.7280619166005051, + Boston__yhat_upper: 1.9671164546049593, + Boston: 1.9, + California__yhat: 1.5287615089133744, + California__yhat_lower: 1.375043969790753, + California__yhat_upper: 1.689154456278733, + California: 1.505, + WestTexNewMexico__yhat: 1.1748674500595282, + WestTexNewMexico__yhat_lower: 1.0104943955090295, + WestTexNewMexico__yhat_upper: 1.333997420395565, + WestTexNewMexico: 1.225, + }, + { + __timestamp: 1499040000000, + Boston__yhat: 1.8406703252155177, + Boston__yhat_lower: 1.7370404368727717, + Boston__yhat_upper: 1.958611777470813, + Boston: 1.93, + California__yhat: 1.5925389601991373, + California__yhat_lower: 1.433119864992163, + California__yhat_upper: 1.74688745180964, + California: 1.45, + WestTexNewMexico__yhat: 1.2917496124135144, + WestTexNewMexico__yhat_lower: 1.1187336492585116, + WestTexNewMexico__yhat_upper: 1.4592024595410427, + WestTexNewMexico: 1.245, + }, + { + __timestamp: 1499644800000, + Boston__yhat: 1.7881631960738633, + Boston__yhat_lower: 1.6667380687101898, + Boston__yhat_upper: 1.9071858100406684, + Boston: 1.585, + California__yhat: 1.6609781243647581, + California__yhat_lower: 1.4990967138637314, + California__yhat_upper: 1.8153555398137116, + California: 1.815, + WestTexNewMexico__yhat: 1.3878443216331735, + WestTexNewMexico__yhat_lower: 1.2030669817831299, + WestTexNewMexico__yhat_upper: 1.5506067509588624, + WestTexNewMexico: 1.275, + }, + { + __timestamp: 1500249600000, + Boston__yhat: 1.7191840092864128, + Boston__yhat_lower: 1.6065776365501874, + Boston__yhat_upper: 1.839620918087611, + Boston: 1.48, + California__yhat: 1.7054047449754868, + California__yhat_lower: 1.535206762631946, + California__yhat_upper: 1.8577821614335777, + California: 1.815, + WestTexNewMexico__yhat: 1.4213934070254646, + WestTexNewMexico__yhat_lower: 1.2481435763626016, + WestTexNewMexico__yhat_upper: 1.5936239782584871, + WestTexNewMexico: 1.315, + }, + { + __timestamp: 1500854400000, + Boston__yhat: 1.670256065786413, + Boston__yhat_lower: 1.553077857629512, + Boston__yhat_upper: 1.7869679292492795, + Boston: 1.545, + California__yhat: 1.714411769084566, + California__yhat_lower: 1.5643734411616905, + California__yhat_upper: 1.8667131285949061, + California: 1.76, + WestTexNewMexico__yhat: 1.407248985203041, + WestTexNewMexico__yhat_lower: 1.238049195039753, + WestTexNewMexico__yhat_upper: 1.5669510953410066, + WestTexNewMexico: 1.34, + }, + { + __timestamp: 1501459200000, + Boston__yhat: 1.6582917033228237, + Boston__yhat_lower: 1.5409092935474398, + Boston__yhat_upper: 1.7845780519218253, + Boston: 1.58, + California__yhat: 1.7037623513454934, + California__yhat_lower: 1.5502705426731838, + California__yhat_upper: 1.8609802183770094, + California: 1.77, + WestTexNewMexico__yhat: 1.3959911883988048, + WestTexNewMexico__yhat_lower: 1.2357229389395101, + WestTexNewMexico__yhat_upper: 1.5488768665975765, + WestTexNewMexico: 1.365, + }, + { + __timestamp: 1502064000000, + Boston__yhat: 1.6719325972202634, + Boston__yhat_lower: 1.5549665305959768, + Boston__yhat_upper: 1.7968206245970162, + Boston: 1.645, + California__yhat: 1.702279498346654, + California__yhat_lower: 1.5468903384299495, + California__yhat_upper: 1.8613392400539936, + California: 1.735, + WestTexNewMexico__yhat: 1.419826404697059, + WestTexNewMexico__yhat_lower: 1.2535254446063566, + WestTexNewMexico__yhat_upper: 1.587496068086963, + WestTexNewMexico: 1.48, + }, + { + __timestamp: 1502668800000, + Boston__yhat: 1.6914240210366667, + Boston__yhat_lower: 1.572243044003606, + Boston__yhat_upper: 1.809374180252829, + Boston: 1.745, + California__yhat: 1.7251379246918526, + California__yhat_lower: 1.5656549380337181, + California__yhat_upper: 1.8664638530454856, + California: 2.005, + WestTexNewMexico__yhat: 1.4644529713654408, + WestTexNewMexico__yhat_lower: 1.2960084753426138, + WestTexNewMexico__yhat_upper: 1.6290333163133552, + WestTexNewMexico: 1.72, + }, + { + __timestamp: 1503273600000, + Boston__yhat: 1.7102480252220476, + Boston__yhat_lower: 1.5920744149499648, + Boston__yhat_upper: 1.8280049793256221, + Boston: 1.77, + California__yhat: 1.76076006674544, + California__yhat_lower: 1.6040896711403747, + California__yhat_upper: 1.917339228742503, + California: 2.16, + WestTexNewMexico__yhat: 1.495655425762464, + WestTexNewMexico__yhat_lower: 1.3287121240767514, + WestTexNewMexico__yhat_upper: 1.6650107120670545, + WestTexNewMexico: 1.79, + }, + { + __timestamp: 1503878400000, + Boston__yhat: 1.732895859621494, + Boston__yhat_lower: 1.6107061239405822, + Boston__yhat_upper: 1.845354975869303, + Boston: 1.785, + California__yhat: 1.7843378450931897, + California__yhat_lower: 1.6323654325281014, + California__yhat_upper: 1.9318196076295764, + California: 1.87, + WestTexNewMexico__yhat: 1.506710267457564, + WestTexNewMexico__yhat_lower: 1.3400550535218518, + WestTexNewMexico__yhat_upper: 1.669833705250297, + WestTexNewMexico: 1.765, + }, + { + __timestamp: 1504483200000, + Boston__yhat: 1.755244450196397, + Boston__yhat_lower: 1.637449623542636, + Boston__yhat_upper: 1.871272038544953, + Boston: 1.685, + California__yhat: 1.7846281349885311, + California__yhat_lower: 1.622387183433942, + California__yhat_upper: 1.9439851659479768, + California: 1.955, + WestTexNewMexico__yhat: 1.5294803570968938, + WestTexNewMexico__yhat_lower: 1.3613502797411972, + WestTexNewMexico__yhat_upper: 1.6927229242339974, + WestTexNewMexico: 1.76, + }, + { + __timestamp: 1505088000000, + Boston__yhat: 1.756615424009621, + Boston__yhat_lower: 1.6410463799636061, + Boston__yhat_upper: 1.870394173319885, + Boston: 1.57, + California__yhat: 1.7765246925015679, + California__yhat_lower: 1.6216879321213362, + California__yhat_upper: 1.9318739523532495, + California: 1.95, + WestTexNewMexico__yhat: 1.5951620379294922, + WestTexNewMexico__yhat_lower: 1.4376736726898494, + WestTexNewMexico__yhat_upper: 1.7655559117205906, + WestTexNewMexico: 1.78, + }, + { + __timestamp: 1505692800000, + Boston__yhat: 1.7178097680607571, + Boston__yhat_lower: 1.6022240484885857, + Boston__yhat_upper: 1.8407005168977442, + Boston: 1.59, + California__yhat: 1.7859776752881176, + California__yhat_lower: 1.630448354264863, + California__yhat_upper: 1.941471247383345, + California: 1.895, + WestTexNewMexico__yhat: 1.6901750210424575, + WestTexNewMexico__yhat_lower: 1.5243936951119106, + WestTexNewMexico__yhat_upper: 1.8614950065165954, + WestTexNewMexico: 1.74, + }, + { + __timestamp: 1506297600000, + Boston__yhat: 1.6457729015261873, + Boston__yhat_lower: 1.5322283465574804, + Boston__yhat_upper: 1.7646499117189138, + Boston: 1.615, + California__yhat: 1.8222195096881877, + California__yhat_lower: 1.6627006734537622, + California__yhat_upper: 1.977876902478907, + California: 1.925, + WestTexNewMexico__yhat: 1.75967388341635, + WestTexNewMexico__yhat_lower: 1.5945232197807684, + WestTexNewMexico__yhat_upper: 1.9332467068986767, + WestTexNewMexico: 1.795, + }, + { + __timestamp: 1506902400000, + Boston__yhat: 1.5747145164848486, + Boston__yhat_lower: 1.4526178172739, + Boston__yhat_upper: 1.688227953801409, + Boston: 1.585, + California__yhat: 1.8656740212343985, + California__yhat_lower: 1.7126250130588196, + California__yhat_upper: 2.0176230395733374, + California: 1.955, + WestTexNewMexico__yhat: 1.7575841759379691, + WestTexNewMexico__yhat_lower: 1.5863235558049222, + WestTexNewMexico__yhat_upper: 1.9295182974675937, + WestTexNewMexico: 1.795, + }, + { + __timestamp: 1507507200000, + Boston__yhat: 1.5391257682954589, + Boston__yhat_lower: 1.4325811215040265, + Boston__yhat_upper: 1.651378741623639, + Boston: 1.595, + California__yhat: 1.884287406049771, + California__yhat_lower: 1.7232418981208881, + California__yhat_upper: 2.040893202969264, + California: 1.89, + WestTexNewMexico__yhat: 1.6896884418687792, + WestTexNewMexico__yhat_lower: 1.5333015164189816, + WestTexNewMexico__yhat_upper: 1.8520706067206518, + WestTexNewMexico: 1.61, + }, + { + __timestamp: 1508112000000, + Boston__yhat: 1.5457875712691287, + Boston__yhat_lower: 1.4237508862869774, + Boston__yhat_upper: 1.6566809290625377, + Boston: 1.53, + California__yhat: 1.8623246781854044, + California__yhat_lower: 1.71699357688764, + California__yhat_upper: 2.0166695308216984, + California: 1.765, + WestTexNewMexico__yhat: 1.6044826042052538, + WestTexNewMexico__yhat_lower: 1.4354026808463178, + WestTexNewMexico__yhat_upper: 1.774700503239314, + WestTexNewMexico: 1.425, + }, + { + __timestamp: 1508716800000, + Boston__yhat: 1.5726067277125042, + Boston__yhat_lower: 1.4588518304131273, + Boston__yhat_upper: 1.6931394818598706, + Boston: 1.66, + California__yhat: 1.813276217297562, + California__yhat_lower: 1.6436630115090212, + California__yhat_upper: 1.9726143953562199, + California: 1.605, + WestTexNewMexico__yhat: 1.5443116800783563, + WestTexNewMexico__yhat_lower: 1.3762184866575962, + WestTexNewMexico__yhat_upper: 1.7109707070940048, + WestTexNewMexico: 1.455, + }, + { + __timestamp: 1509321600000, + Boston__yhat: 1.5924432782000346, + Boston__yhat_lower: 1.4703826300286846, + Boston__yhat_upper: 1.7121204098890965, + Boston: 1.72, + California__yhat: 1.764716669699304, + California__yhat_lower: 1.6050564164237722, + California__yhat_upper: 1.9155961260848229, + California: 1.455, + WestTexNewMexico__yhat: 1.5102635492996923, + WestTexNewMexico__yhat_lower: 1.3491095695601811, + WestTexNewMexico__yhat_upper: 1.6780957297633348, + WestTexNewMexico: 1.34, + }, + { + __timestamp: 1509926400000, + Boston__yhat: 1.5952916742523302, + Boston__yhat_lower: 1.4724655896157, + Boston__yhat_upper: 1.715043028690722, + Boston: 1.55, + California__yhat: 1.7308712112618871, + California__yhat_lower: 1.5739489361166974, + California__yhat_upper: 1.8856751719281246, + California: 1.57, + WestTexNewMexico__yhat: 1.4744099923739549, + WestTexNewMexico__yhat_lower: 1.3115443224203953, + WestTexNewMexico__yhat_upper: 1.6401515994802147, + WestTexNewMexico: 1.365, + }, + { + __timestamp: 1510531200000, + Boston__yhat: 1.5888392408097436, + Boston__yhat_lower: 1.4668361685602658, + Boston__yhat_upper: 1.7046226875993664, + Boston: 1.585, + California__yhat: 1.700205239943529, + California__yhat_lower: 1.5485532218705247, + California__yhat_upper: 1.85030601233507, + California: 1.62, + WestTexNewMexico__yhat: 1.418973341834363, + WestTexNewMexico__yhat_lower: 1.258913708855633, + WestTexNewMexico__yhat_upper: 1.574537399654355, + WestTexNewMexico: 1.415, + }, + { + __timestamp: 1511136000000, + Boston__yhat: 1.5836318701735101, + Boston__yhat_lower: 1.4645047458001548, + Boston__yhat_upper: 1.7040502830959576, + Boston: 1.6, + California__yhat: 1.6497771589307555, + California__yhat_lower: 1.4923567485580018, + California__yhat_upper: 1.8149873186283765, + California: 1.65, + WestTexNewMexico__yhat: 1.3563342745068379, + WestTexNewMexico__yhat_lower: 1.1846050321358912, + WestTexNewMexico__yhat_upper: 1.5060991373789618, + WestTexNewMexico: 1.41, + }, + { + __timestamp: 1511740800000, + Boston__yhat: 1.5826517548445758, + Boston__yhat_lower: 1.467319909405141, + Boston__yhat_upper: 1.697456544854553, + Boston: 1.64, + California__yhat: 1.5716498507522567, + California__yhat_lower: 1.4030949862688427, + California__yhat_upper: 1.7196692318309386, + California: 1.45, + WestTexNewMexico__yhat: 1.3115312127819436, + WestTexNewMexico__yhat_lower: 1.1377047570253669, + WestTexNewMexico__yhat_upper: 1.4728488944922875, + WestTexNewMexico: 1.2, + }, + { + __timestamp: 1512345600000, + Boston__yhat: 1.5836934227290973, + Boston__yhat_lower: 1.4706505426607004, + Boston__yhat_upper: 1.7028617092919829, + Boston: 1.44, + California__yhat: 1.4853000367022948, + California__yhat_lower: 1.3171932005626774, + California__yhat_upper: 1.6495818788885088, + California: 1.475, + WestTexNewMexico__yhat: 1.2929263032369593, + WestTexNewMexico__yhat_lower: 1.126161335435101, + WestTexNewMexico__yhat_upper: 1.4691437711105042, + WestTexNewMexico: 1.255, + }, + { + __timestamp: 1512950400000, + Boston__yhat: 1.5854904493945186, + Boston__yhat_lower: 1.4663113792968328, + Boston__yhat_upper: 1.7064247946100661, + Boston: 1.55, + California__yhat: 1.423812565967093, + California__yhat_lower: 1.26337217088044, + California__yhat_upper: 1.5855591138371519, + California: 1.365, + WestTexNewMexico__yhat: 1.285918064954932, + WestTexNewMexico__yhat_lower: 1.1129613414382733, + WestTexNewMexico__yhat_upper: 1.4411417528866655, + WestTexNewMexico: 1.315, + }, + { + __timestamp: 1513555200000, + Boston__yhat: 1.587534822853923, + Boston__yhat_lower: 1.474373213976285, + Boston__yhat_upper: 1.7093497653377143, + Boston: 1.64, + California__yhat: 1.406491332871266, + California__yhat_lower: 1.2614139028387, + California__yhat_upper: 1.567765188079335, + California: 1.475, + WestTexNewMexico__yhat: 1.2732538523839543, + WestTexNewMexico__yhat_lower: 1.1223850003357936, + WestTexNewMexico__yhat_upper: 1.4388208415738943, + WestTexNewMexico: 1.39, + }, + { + __timestamp: 1514160000000, + Boston__yhat: 1.5864233934075276, + Boston__yhat_lower: 1.4692345690913347, + Boston__yhat_upper: 1.699449380613373, + Boston: 1.63, + California__yhat: 1.4228228692993976, + California__yhat_lower: 1.2632384697230399, + California__yhat_upper: 1.5883896474433383, + California: 1.32, + WestTexNewMexico__yhat: 1.254604177748047, + WestTexNewMexico__yhat_lower: 1.085917150263281, + WestTexNewMexico__yhat_upper: 1.410352311015645, + WestTexNewMexico: 1.255, + }, + { + __timestamp: 1514764800000, + Boston__yhat: 1.5777769291785921, + Boston__yhat_lower: 1.4651241617944295, + Boston__yhat_upper: 1.6989433879444449, + Boston: 1.595, + California__yhat: 1.4419038492586702, + California__yhat_lower: 1.2879258053870268, + California__yhat_upper: 1.6080138658220995, + California: 1.57, + WestTexNewMexico__yhat: 1.2428419002960793, + WestTexNewMexico__yhat_lower: 1.0741263868912616, + WestTexNewMexico__yhat_upper: 1.407884738946383, + WestTexNewMexico: 1.25, + }, + { + __timestamp: 1515369600000, + Boston__yhat: 1.5634839087431907, + Boston__yhat_lower: 1.4398553462505361, + Boston__yhat_upper: 1.6740426449964554, + Boston: 1.61, + California__yhat: 1.4384247589739614, + California__yhat_lower: 1.282408605059618, + California__yhat_upper: 1.6025657234949855, + California: 1.44, + WestTexNewMexico__yhat: 1.244658530051088, + WestTexNewMexico__yhat_lower: 1.06945490411183, + WestTexNewMexico__yhat_upper: 1.4129521329470152, + WestTexNewMexico: 1.415, + }, + { + __timestamp: 1515974400000, + Boston__yhat: 1.5536680519017763, + Boston__yhat_lower: 1.4375790011864307, + Boston__yhat_upper: 1.677280818004328, + Boston: 1.47, + California__yhat: 1.4122047608516037, + California__yhat_lower: 1.2652264002363518, + California__yhat_upper: 1.567139643522832, + California: 1.405, + WestTexNewMexico__yhat: 1.2505394036574187, + WestTexNewMexico__yhat_lower: 1.0786475912939553, + WestTexNewMexico__yhat_upper: 1.428300983429678, + WestTexNewMexico: 1.355, + }, + { + __timestamp: 1516579200000, + Boston__yhat: 1.557784526541132, + Boston__yhat_lower: 1.437971156562914, + Boston__yhat_upper: 1.6722358708824165, + Boston: 1.47, + California__yhat: 1.385077501398188, + California__yhat_lower: 1.2309216361341202, + California__yhat_upper: 1.5378930674747595, + California: 1.515, + WestTexNewMexico__yhat: 1.2452975589929682, + WestTexNewMexico__yhat_lower: 1.0812701428213654, + WestTexNewMexico__yhat_upper: 1.4042332991981532, + WestTexNewMexico: 1.28, + }, + { + __timestamp: 1517184000000, + Boston__yhat: 1.5741548151277522, + Boston__yhat_lower: 1.4657951310241182, + Boston__yhat_upper: 1.6946934922897228, + Boston: 1.61, + California__yhat: 1.3795831010900481, + California__yhat_lower: 1.2240059315323881, + California__yhat_upper: 1.523348626269824, + California: 1.18, + WestTexNewMexico__yhat: 1.2253524085244434, + WestTexNewMexico__yhat_lower: 1.0676441338279083, + WestTexNewMexico__yhat_upper: 1.3853412571686063, + WestTexNewMexico: 1.195, + }, + { + __timestamp: 1517788800000, + Boston__yhat: 1.5914104606043242, + Boston__yhat_lower: 1.4776611552150622, + Boston__yhat_upper: 1.703500126320889, + Boston: 1.575, + California__yhat: 1.3995428080393197, + California__yhat_lower: 1.2489325863292726, + California__yhat_upper: 1.546806803227574, + California: 1.415, + WestTexNewMexico__yhat: 1.2027703717982, + WestTexNewMexico__yhat_lower: 1.0400903472942626, + WestTexNewMexico__yhat_upper: 1.3629951573864216, + WestTexNewMexico: 1.16, + }, + { + __timestamp: 1518393600000, + Boston__yhat: 1.6013473406363457, + Boston__yhat_lower: 1.4866943308203548, + Boston__yhat_upper: 1.724859161919591, + Boston: 1.67, + California__yhat: 1.4295335961237214, + California__yhat_lower: 1.27915620579144, + California__yhat_upper: 1.592093519009324, + California: 1.535, + WestTexNewMexico__yhat: 1.1929126764808942, + WestTexNewMexico__yhat_lower: 1.0346155123052385, + WestTexNewMexico__yhat_upper: 1.3712222245975092, + WestTexNewMexico: 1.225, + }, + { + __timestamp: 1518998400000, + Boston__yhat: 1.607872039185895, + Boston__yhat_lower: 1.4920129289266784, + Boston__yhat_upper: 1.715879581587453, + Boston: 1.6, + California__yhat: 1.4520419324065412, + California__yhat_lower: 1.2928929013136694, + California__yhat_upper: 1.6171413049202863, + California: 1.425, + WestTexNewMexico__yhat: 1.2001106590202169, + WestTexNewMexico__yhat_lower: 1.0367540154507295, + WestTexNewMexico__yhat_upper: 1.3644853889790938, + WestTexNewMexico: 1.225, + }, + { + __timestamp: 1519603200000, + Boston__yhat: 1.620911752423461, + Boston__yhat_lower: 1.506812351390597, + Boston__yhat_upper: 1.7396201454879228, + Boston: 1.555, + California__yhat: 1.464809552378173, + California__yhat_lower: 1.3094369240272457, + California__yhat_upper: 1.6219770630066919, + California: 1.35, + WestTexNewMexico__yhat: 1.2152346714300077, + WestTexNewMexico__yhat_lower: 1.0545341388963183, + WestTexNewMexico__yhat_upper: 1.3889597711960058, + WestTexNewMexico: 1.21, + }, + { + __timestamp: 1520208000000, + Boston__yhat: 1.6429613225579054, + Boston__yhat_lower: 1.5250729066500823, + Boston__yhat_upper: 1.7591414050333753, + Boston: 1.595, + California__yhat: 1.4815834774378935, + California__yhat_lower: 1.3185475241546276, + California__yhat_upper: 1.6325722262914288, + California: 1.345, + WestTexNewMexico__yhat: 1.2250261625399055, + WestTexNewMexico__yhat_lower: 1.050233531841937, + WestTexNewMexico__yhat_upper: 1.3751543643791921, + WestTexNewMexico: 1.25, + }, + { + __timestamp: 1520812800000, + Boston__yhat: 1.66531535419241, + Boston__yhat_lower: 1.551493461131107, + Boston__yhat_upper: 1.7761043327879456, + Boston: 1.605, + California__yhat: 1.5160660096342993, + California__yhat_lower: 1.3585529234416427, + California__yhat_upper: 1.6832384050593, + California: 1.385, + WestTexNewMexico__yhat: 1.2230294452897705, + WestTexNewMexico__yhat_lower: 1.0609477133832677, + WestTexNewMexico__yhat_upper: 1.3881474130429041, + WestTexNewMexico: 1.22, + }, + { + __timestamp: 1521417600000, + Boston__yhat: 1.678487710603687, + Boston__yhat_lower: 1.564705165756329, + Boston__yhat_upper: 1.7926139100963339, + Boston: 1.565, + California__yhat: 1.5652070907846978, + California__yhat_lower: 1.4141177410387478, + California__yhat_upper: 1.7063662783920062, + California: 1.37, + WestTexNewMexico__yhat: 1.213712007592648, + WestTexNewMexico__yhat_lower: 1.0487714037236402, + WestTexNewMexico__yhat_upper: 1.386013473973569, + WestTexNewMexico: 1.23, + }, + { + __timestamp: 1521936000000, + Boston__yhat: 1.682536686382473, + Boston__yhat_lower: 1.5601634078750455, + Boston__yhat_upper: 1.8039620879210212, + Boston: null, + California__yhat: 1.6035530548199777, + California__yhat_lower: 1.4510914166115723, + California__yhat_upper: 1.7623422592242224, + California: null, + WestTexNewMexico__yhat: 1.2084666171356633, + WestTexNewMexico__yhat_lower: 1.0559277454557903, + WestTexNewMexico__yhat_upper: 1.3716256677551577, + WestTexNewMexico: null, + }, + { + __timestamp: 1522540800000, + Boston__yhat: 1.6853898579135072, + Boston__yhat_lower: 1.5607995110322577, + Boston__yhat_upper: 1.8073999911828285, + Boston: null, + California__yhat: 1.6237011645668817, + California__yhat_lower: 1.4757815983654023, + California__yhat_upper: 1.776587305341555, + California: null, + WestTexNewMexico__yhat: 1.214169410647762, + WestTexNewMexico__yhat_lower: 1.0581538648241648, + WestTexNewMexico__yhat_upper: 1.3695836853475196, + WestTexNewMexico: null, + }, + { + __timestamp: 1523145600000, + Boston__yhat: 1.689351966157518, + Boston__yhat_lower: 1.575343391034058, + Boston__yhat_upper: 1.808105985585739, + Boston: null, + California__yhat: 1.6102888937664057, + California__yhat_lower: 1.4532428370809523, + California__yhat_upper: 1.765926876898847, + California: null, + WestTexNewMexico__yhat: 1.2326699540808301, + WestTexNewMexico__yhat_lower: 1.0682655062624615, + WestTexNewMexico__yhat_upper: 1.3981594060214781, + WestTexNewMexico: null, + }, + { + __timestamp: 1523750400000, + Boston__yhat: 1.6884864805612496, + Boston__yhat_lower: 1.5742021894438218, + Boston__yhat_upper: 1.813433718348916, + Boston: null, + California__yhat: 1.576982498900054, + California__yhat_lower: 1.4203855126519214, + California__yhat_upper: 1.72592400619938, + California: null, + WestTexNewMexico__yhat: 1.252733863316836, + WestTexNewMexico__yhat_lower: 1.0911291189143066, + WestTexNewMexico__yhat_upper: 1.4184516602131139, + WestTexNewMexico: null, + }, + { + __timestamp: 1524355200000, + Boston__yhat: 1.6766428888228289, + Boston__yhat_lower: 1.557133646049639, + Boston__yhat_upper: 1.8039224024168021, + Boston: null, + California__yhat: 1.5489376559301495, + California__yhat_lower: 1.3802162947230194, + California__yhat_upper: 1.6976601182869269, + California: null, + WestTexNewMexico__yhat: 1.2602503359540163, + WestTexNewMexico__yhat_lower: 1.0993497131417902, + WestTexNewMexico__yhat_upper: 1.4269438319760595, + WestTexNewMexico: null, + }, + { + __timestamp: 1524960000000, + Boston__yhat: 1.6599997280355017, + Boston__yhat_lower: 1.5524988079395763, + Boston__yhat_upper: 1.78349334299218, + Boston: null, + California__yhat: 1.5455560009052383, + California__yhat_lower: 1.3837990457840332, + California__yhat_upper: 1.708515950009531, + California: null, + WestTexNewMexico__yhat: 1.2524804912613416, + WestTexNewMexico__yhat_lower: 1.0800104649716162, + WestTexNewMexico__yhat_upper: 1.4199408722695632, + WestTexNewMexico: null, + }, + { + __timestamp: 1525564800000, + Boston__yhat: 1.6546573207704953, + Boston__yhat_lower: 1.5366452027236606, + Boston__yhat_upper: 1.7771963193090587, + Boston: null, + California__yhat: 1.5701567229289408, + California__yhat_lower: 1.4158647650377556, + California__yhat_upper: 1.7268920200592506, + California: null, + WestTexNewMexico__yhat: 1.2429798542762953, + WestTexNewMexico__yhat_lower: 1.0755052631291508, + WestTexNewMexico__yhat_upper: 1.392085560821767, + WestTexNewMexico: null, + }, + { + __timestamp: 1526169600000, + Boston__yhat: 1.6695326494114453, + Boston__yhat_lower: 1.5459475971457444, + Boston__yhat_upper: 1.7950395799251673, + Boston: null, + California__yhat: 1.611624016941807, + California__yhat_lower: 1.458822882360371, + California__yhat_upper: 1.7587381622248586, + California: null, + WestTexNewMexico__yhat: 1.24801357713029, + WestTexNewMexico__yhat_lower: 1.095791907249141, + WestTexNewMexico__yhat_upper: 1.4187654522268498, + WestTexNewMexico: null, + }, + { + __timestamp: 1526774400000, + Boston__yhat: 1.6952782619161684, + Boston__yhat_lower: 1.5846747431630068, + Boston__yhat_upper: 1.808599838384513, + Boston: null, + California__yhat: 1.6529694297425044, + California__yhat_lower: 1.4947904634826412, + California__yhat_upper: 1.805281327291899, + California: null, + WestTexNewMexico__yhat: 1.2657324831260757, + WestTexNewMexico__yhat_lower: 1.0916527617406069, + WestTexNewMexico__yhat_upper: 1.4262057072494774, + WestTexNewMexico: null, + }, + { + __timestamp: 1527379200000, + Boston__yhat: 1.7146649368168043, + Boston__yhat_lower: 1.6036192075126363, + Boston__yhat_upper: 1.8320676234749995, + Boston: null, + California__yhat: 1.6799197400033026, + California__yhat_lower: 1.536795089675873, + California__yhat_upper: 1.8364148218420857, + California: null, + WestTexNewMexico__yhat: 1.2728989667058002, + WestTexNewMexico__yhat_lower: 1.1027680803304138, + WestTexNewMexico__yhat_upper: 1.4256330558513326, + WestTexNewMexico: null, + }, + { + __timestamp: 1527984000000, + Boston__yhat: 1.7231845757821997, + Boston__yhat_lower: 1.6114211589061664, + Boston__yhat_upper: 1.8399473046932247, + Boston: null, + California__yhat: 1.687126504560837, + California__yhat_lower: 1.5206803552553565, + California__yhat_upper: 1.840568971602508, + California: null, + WestTexNewMexico__yhat: 1.2494226379667293, + WestTexNewMexico__yhat_lower: 1.0819385143193307, + WestTexNewMexico__yhat_upper: 1.4094953369349135, + WestTexNewMexico: null, + }, + { + __timestamp: 1528588800000, + Boston__yhat: 1.7338736339181342, + Boston__yhat_lower: 1.624738247956961, + Boston__yhat_upper: 1.8600523588665385, + Boston: null, + California__yhat: 1.6818587206457696, + California__yhat_lower: 1.5238919914790512, + California__yhat_upper: 1.8359970540337893, + California: null, + WestTexNewMexico__yhat: 1.2082943772394181, + WestTexNewMexico__yhat_lower: 1.0433278198687912, + WestTexNewMexico__yhat_upper: 1.3775340586041351, + WestTexNewMexico: null, + }, + { + __timestamp: 1529193600000, + Boston__yhat: 1.7582239199775676, + Boston__yhat_lower: 1.6392421463550373, + Boston__yhat_upper: 1.8744063811638438, + Boston: null, + California__yhat: 1.6824892628983004, + California__yhat_lower: 1.5270216934691514, + California__yhat_upper: 1.8355198991696158, + California: null, + WestTexNewMexico__yhat: 1.1949458431792086, + WestTexNewMexico__yhat_lower: 1.0326445933404091, + WestTexNewMexico__yhat_upper: 1.3582577205018647, + WestTexNewMexico: null, + }, + { + __timestamp: 1529798400000, + Boston__yhat: 1.7854556021975714, + Boston__yhat_lower: 1.6701615867157495, + Boston__yhat_upper: 1.900992088604064, + Boston: null, + California__yhat: 1.7084141969678435, + California__yhat_lower: 1.550680184855059, + California__yhat_upper: 1.8697836855064995, + California: null, + WestTexNewMexico__yhat: 1.2480042263351998, + WestTexNewMexico__yhat_lower: 1.090434590083466, + WestTexNewMexico__yhat_upper: 1.424659399835797, + WestTexNewMexico: null, + }, + { + __timestamp: 1530403200000, + Boston__yhat: 1.787354789852457, + Boston__yhat_lower: 1.6666480384188682, + Boston__yhat_upper: 1.9098732988582017, + Boston: null, + California__yhat: 1.764902407737053, + California__yhat_lower: 1.603223194893655, + California__yhat_upper: 1.920536350083403, + California: null, + WestTexNewMexico__yhat: 1.3575978077726572, + WestTexNewMexico__yhat_lower: 1.1882370626482208, + WestTexNewMexico__yhat_upper: 1.5259537413667061, + WestTexNewMexico: null, + }, + { + __timestamp: 1531008000000, + Boston__yhat: 1.7468288679117425, + Boston__yhat_lower: 1.6269731637634024, + Boston__yhat_upper: 1.8742304717717988, + Boston: null, + California__yhat: 1.8350920426745763, + California__yhat_lower: 1.67180866418075, + California__yhat_upper: 2.0011556756788216, + California: null, + WestTexNewMexico__yhat: 1.4670856851172, + WestTexNewMexico__yhat_lower: 1.2964805935023214, + WestTexNewMexico__yhat_upper: 1.6345585674318333, + WestTexNewMexico: null, + }, + { + __timestamp: 1531612800000, + Boston__yhat: 1.6790348325378448, + Boston__yhat_lower: 1.5595355918151659, + Boston__yhat_upper: 1.7981872661345062, + Boston: null, + California__yhat: 1.8896488936902816, + California__yhat_lower: 1.7312414010981845, + California__yhat_upper: 2.04742067910337, + California: null, + WestTexNewMexico__yhat: 1.5219801642499642, + WestTexNewMexico__yhat_lower: 1.3635554462698278, + WestTexNewMexico__yhat_upper: 1.6938078169246442, + WestTexNewMexico: null, + }, + { + __timestamp: 1532217600000, + Boston__yhat: 1.6203830503925176, + Boston__yhat_lower: 1.4939148373489748, + Boston__yhat_upper: 1.7384178215507446, + Boston: null, + California__yhat: 1.9094868020939566, + California__yhat_lower: 1.7497539530943758, + California__yhat_upper: 2.066749203202386, + California: null, + WestTexNewMexico__yhat: 1.518353366307308, + WestTexNewMexico__yhat_lower: 1.3460315664515903, + WestTexNewMexico__yhat_upper: 1.6719233663023574, + WestTexNewMexico: null, + }, + { + __timestamp: 1532822400000, + Boston__yhat: 1.5966181353875348, + Boston__yhat_lower: 1.4815110953922874, + Boston__yhat_upper: 1.7116303325920141, + Boston: null, + California__yhat: 1.9020960586545756, + California__yhat_lower: 1.7292057167448445, + California__yhat_upper: 2.059778801012867, + California: null, + WestTexNewMexico__yhat: 1.500722239431866, + WestTexNewMexico__yhat_lower: 1.3231682157027853, + WestTexNewMexico__yhat_upper: 1.666981600036425, + WestTexNewMexico: null, + }, + { + __timestamp: 1533427200000, + Boston__yhat: 1.6043495104079866, + Boston__yhat_lower: 1.4840413633118215, + Boston__yhat_upper: 1.7221108099336726, + Boston: null, + California__yhat: 1.8948656849707521, + California__yhat_lower: 1.7377559285072435, + California__yhat_upper: 2.046199710416158, + California: null, + WestTexNewMexico__yhat: 1.5126502837159261, + WestTexNewMexico__yhat_lower: 1.348984942633407, + WestTexNewMexico__yhat_upper: 1.6787393215108342, + WestTexNewMexico: null, + }, + { + __timestamp: 1534032000000, + Boston__yhat: 1.6235344564929182, + Boston__yhat_lower: 1.5088248982582535, + Boston__yhat_upper: 1.7493554888388345, + Boston: null, + California__yhat: 1.909902264089578, + California__yhat_lower: 1.7594830495975537, + California__yhat_upper: 2.0814790534495446, + California: null, + WestTexNewMexico__yhat: 1.5543880317362218, + WestTexNewMexico__yhat_lower: 1.3862928701653126, + WestTexNewMexico__yhat_upper: 1.7129273819479778, + WestTexNewMexico: null, + }, + { + __timestamp: 1534636800000, + Boston__yhat: 1.6422721302404755, + Boston__yhat_lower: 1.5227340881288312, + Boston__yhat_upper: 1.7661948982300177, + Boston: null, + California__yhat: 1.9440191472850012, + California__yhat_lower: 1.7912658142139328, + California__yhat_upper: 2.1017712195687297, + California: null, + WestTexNewMexico__yhat: 1.5927167828625721, + WestTexNewMexico__yhat_lower: 1.4323724913431777, + WestTexNewMexico__yhat_upper: 1.7602140326496742, + WestTexNewMexico: null, + }, + { + __timestamp: 1535241600000, + Boston__yhat: 1.663333153399757, + Boston__yhat_lower: 1.53999712206972, + Boston__yhat_upper: 1.7784281978322263, + Boston: null, + California__yhat: 1.973841750021734, + California__yhat_lower: 1.8101188114604603, + California__yhat_upper: 2.1242592035994017, + California: null, + WestTexNewMexico__yhat: 1.6082103462185078, + WestTexNewMexico__yhat_lower: 1.4521998997210814, + WestTexNewMexico__yhat_upper: 1.787305638512403, + WestTexNewMexico: null, + }, + { + __timestamp: 1535846400000, + Boston__yhat: 1.68737589422853, + Boston__yhat_lower: 1.5546423881129967, + Boston__yhat_upper: 1.81339631040741, + Boston: null, + California__yhat: 1.9811962739192248, + California__yhat_lower: 1.8227510534530427, + California__yhat_upper: 2.1315985558632846, + California: null, + WestTexNewMexico__yhat: 1.6226614752470665, + WestTexNewMexico__yhat_lower: 1.4555221188950995, + WestTexNewMexico__yhat_upper: 1.7886204690874181, + WestTexNewMexico: null, + }, + { + __timestamp: 1536451200000, + Boston__yhat: 1.698231894874985, + Boston__yhat_lower: 1.5796838319630206, + Boston__yhat_upper: 1.8162324829522731, + Boston: null, + California__yhat: 1.9729323635080123, + California__yhat_lower: 1.808535742832015, + California__yhat_upper: 2.133577781410305, + California: null, + WestTexNewMexico__yhat: 1.6733686994910637, + WestTexNewMexico__yhat_lower: 1.502944700626823, + WestTexNewMexico__yhat_upper: 1.8462362904169698, + WestTexNewMexico: null, + }, + { + __timestamp: 1537056000000, + Boston__yhat: 1.673177148894755, + Boston__yhat_lower: 1.5453764645693406, + Boston__yhat_upper: 1.7925862861000987, + Boston: null, + California__yhat: 1.9744328609957065, + California__yhat_lower: 1.806134310310026, + California__yhat_upper: 2.1143435664934134, + California: null, + WestTexNewMexico__yhat: 1.7636853647310433, + WestTexNewMexico__yhat_lower: 1.5994080499191776, + WestTexNewMexico__yhat_upper: 1.9276560344065194, + WestTexNewMexico: null, + }, + { + __timestamp: 1537660800000, + Boston__yhat: 1.6090525676489444, + Boston__yhat_lower: 1.4758075734046576, + Boston__yhat_upper: 1.7415461464646478, + Boston: null, + California__yhat: 2.002890676494782, + California__yhat_lower: 1.8393829384321998, + California__yhat_upper: 2.167554310098903, + California: null, + WestTexNewMexico__yhat: 1.8480377771380128, + WestTexNewMexico__yhat_lower: 1.6833511313602927, + WestTexNewMexico__yhat_upper: 2.0203956302646664, + WestTexNewMexico: null, + }, + { + __timestamp: 1538265600000, + Boston__yhat: 1.5332238629414716, + Boston__yhat_lower: 1.395745532771652, + Boston__yhat_upper: 1.6594122074424231, + Boston: null, + California__yhat: 2.04750780058125, + California__yhat_lower: 1.8862667773178747, + California__yhat_upper: 2.1964678624483946, + California: null, + WestTexNewMexico__yhat: 1.871203717593608, + WestTexNewMexico__yhat_lower: 1.7079822731597716, + WestTexNewMexico__yhat_upper: 2.0301687351484716, + WestTexNewMexico: null, + }, + { + __timestamp: 1538870400000, + Boston__yhat: 1.4838235218338653, + Boston__yhat_lower: 1.342874791691052, + Boston__yhat_upper: 1.6153763350017596, + Boston: null, + California__yhat: 2.077120900334973, + California__yhat_lower: 1.9153457544393646, + California__yhat_upper: 2.2257915381404114, + California: null, + WestTexNewMexico__yhat: 1.82041781992544, + WestTexNewMexico__yhat_lower: 1.6611091710560477, + WestTexNewMexico__yhat_upper: 1.9861967842346009, + WestTexNewMexico: null, + }, + { + __timestamp: 1539475200000, + Boston__yhat: 1.4782598065971189, + Boston__yhat_lower: 1.344299563230488, + Boston__yhat_upper: 1.6120885230403785, + Boston: null, + California__yhat: 2.0680763229686003, + California__yhat_lower: 1.9058339107657098, + California__yhat_upper: 2.2271524402751357, + California: null, + WestTexNewMexico__yhat: 1.7347888113423426, + WestTexNewMexico__yhat_lower: 1.5635904551430955, + WestTexNewMexico__yhat_upper: 1.9156528167964688, + WestTexNewMexico: null, + }, + { + __timestamp: 1540080000000, + Boston__yhat: 1.5019076277701395, + Boston__yhat_lower: 1.3599533884699693, + Boston__yhat_upper: 1.6280806469131115, + Boston: null, + California__yhat: 2.024848167646863, + California__yhat_lower: 1.8751718922611667, + California__yhat_upper: 2.181285898190137, + California: null, + WestTexNewMexico__yhat: 1.6642517414081586, + WestTexNewMexico__yhat_lower: 1.5057398973441602, + WestTexNewMexico__yhat_upper: 1.8294977831848556, + WestTexNewMexico: null, + }, + { + __timestamp: 1540684800000, + Boston__yhat: 1.5261445315121063, + Boston__yhat_lower: 1.3842621727623396, + Boston__yhat_upper: 1.6621117556669727, + Boston: null, + California__yhat: 1.9734463765925931, + California__yhat_lower: 1.8088818677515675, + California__yhat_upper: 2.126982970675845, + California: null, + WestTexNewMexico__yhat: 1.6241900952059145, + WestTexNewMexico__yhat_lower: 1.4588876582071624, + WestTexNewMexico__yhat_upper: 1.784631618531262, + WestTexNewMexico: null, + }, + { + __timestamp: 1541289600000, + Boston__yhat: 1.5342292058778846, + Boston__yhat_lower: 1.4009158870039455, + Boston__yhat_upper: 1.6712593477153987, + Boston: null, + California__yhat: 1.9349431912143948, + California__yhat_lower: 1.7885852175115098, + California__yhat_upper: 2.0873085211178646, + California: null, + WestTexNewMexico__yhat: 1.5920988447021243, + WestTexNewMexico__yhat_lower: 1.4263832621800148, + WestTexNewMexico__yhat_upper: 1.7531828975557295, + WestTexNewMexico: null, + }, + { + __timestamp: 1541894400000, + Boston__yhat: 1.5294259663392042, + Boston__yhat_lower: 1.3924842007891862, + Boston__yhat_upper: 1.6507958373495442, + Boston: null, + California__yhat: 1.9057390728545534, + California__yhat_lower: 1.7475197483489708, + California__yhat_upper: 2.062712581571349, + California: null, + WestTexNewMexico__yhat: 1.543019079828916, + WestTexNewMexico__yhat_lower: 1.3695776164214464, + WestTexNewMexico__yhat_upper: 1.7087815320271016, + WestTexNewMexico: null, + }, + { + __timestamp: 1542499200000, + Boston__yhat: 1.5230698969360126, + Boston__yhat_lower: 1.3809557482614745, + Boston__yhat_upper: 1.6589456998839296, + Boston: null, + California__yhat: 1.8637296678057955, + California__yhat_lower: 1.7018053289953212, + California__yhat_upper: 2.0257018609379758, + California: null, + WestTexNewMexico__yhat: 1.4799169293082408, + WestTexNewMexico__yhat_lower: 1.3145794440516334, + WestTexNewMexico__yhat_upper: 1.6522485434508896, + WestTexNewMexico: null, + }, + { + __timestamp: 1543104000000, + Boston__yhat: 1.5208708829546633, + Boston__yhat_lower: 1.3604336968511885, + Boston__yhat_upper: 1.6609428389714096, + Boston: null, + California__yhat: 1.7936602026704043, + California__yhat_lower: 1.6379951921970646, + California__yhat_upper: 1.95152165636367, + California: null, + WestTexNewMexico__yhat: 1.4272257196828566, + WestTexNewMexico__yhat_lower: 1.272152994358733, + WestTexNewMexico__yhat_upper: 1.5868498721646007, + WestTexNewMexico: null, + }, + { + __timestamp: 1543708800000, + Boston__yhat: 1.5215185621542675, + Boston__yhat_lower: 1.3697927259578533, + Boston__yhat_upper: 1.660287494127729, + Boston: null, + California__yhat: 1.7064731067231154, + California__yhat_lower: 1.5520676677402718, + California__yhat_upper: 1.8660397663631223, + California: null, + WestTexNewMexico__yhat: 1.400927639683618, + WestTexNewMexico__yhat_lower: 1.2311493844093724, + WestTexNewMexico__yhat_upper: 1.5721726483927894, + WestTexNewMexico: null, + }, + { + __timestamp: 1544313600000, + Boston__yhat: 1.523082324505037, + Boston__yhat_lower: 1.3798605288416401, + Boston__yhat_upper: 1.6595545690681865, + Boston: null, + California__yhat: 1.63369712167469, + California__yhat_lower: 1.4812445505442762, + California__yhat_upper: 1.7895227430485967, + California: null, + WestTexNewMexico__yhat: 1.3924891998114304, + WestTexNewMexico__yhat_lower: 1.224927064552775, + WestTexNewMexico__yhat_upper: 1.5600454611520078, + WestTexNewMexico: null, + }, + { + __timestamp: 1544918400000, + Boston__yhat: 1.5252374178893244, + Boston__yhat_lower: 1.3735876009017964, + Boston__yhat_upper: 1.6817643418736, + Boston: null, + California__yhat: 1.6018360669178997, + California__yhat_lower: 1.4448200304166305, + California__yhat_upper: 1.7653214982115613, + California: null, + WestTexNewMexico__yhat: 1.382668428202286, + WestTexNewMexico__yhat_lower: 1.2250854001550213, + WestTexNewMexico__yhat_upper: 1.5513127466776713, + WestTexNewMexico: null, + }, + { + __timestamp: 1545523200000, + Boston__yhat: 1.5257009332678877, + Boston__yhat_lower: 1.373769486453698, + Boston__yhat_upper: 1.6777290304954673, + Boston: null, + California__yhat: 1.6101959065128604, + California__yhat_lower: 1.4485481898012444, + California__yhat_upper: 1.760224378777222, + California: null, + WestTexNewMexico__yhat: 1.3648297759239376, + WestTexNewMexico__yhat_lower: 1.1991014099251225, + WestTexNewMexico__yhat_upper: 1.5411049951690883, + WestTexNewMexico: null, + }, + { + __timestamp: 1546128000000, + Boston__yhat: 1.519710895215176, + Boston__yhat_lower: 1.3633919544653097, + Boston__yhat_upper: 1.6659978660046513, + Boston: null, + California__yhat: 1.6319769496654943, + California__yhat_lower: 1.473710017010973, + California__yhat_upper: 1.791109895570328, + California: null, + WestTexNewMexico__yhat: 1.3494376178076892, + WestTexNewMexico__yhat_lower: 1.185383822109829, + WestTexNewMexico__yhat_upper: 1.532570105602063, + WestTexNewMexico: null, + }, + { + __timestamp: 1546732800000, + Boston__yhat: 1.506436772565979, + Boston__yhat_lower: 1.355182359220297, + Boston__yhat_upper: 1.6593106513749971, + Boston: null, + California__yhat: 1.637152076200478, + California__yhat_lower: 1.4890084905935133, + California__yhat_upper: 1.805162095435664, + California: null, + WestTexNewMexico__yhat: 1.3471836387407383, + WestTexNewMexico__yhat_lower: 1.180741288403578, + WestTexNewMexico__yhat_upper: 1.5169593922257443, + WestTexNewMexico: null, + }, + { + __timestamp: 1547337600000, + Boston__yhat: 1.493855241350894, + Boston__yhat_lower: 1.3402894910848755, + Boston__yhat_upper: 1.6502490151569948, + Boston: null, + California__yhat: 1.6165918986195917, + California__yhat_lower: 1.452717878742141, + California__yhat_upper: 1.7835907868934933, + California: null, + WestTexNewMexico__yhat: 1.3535250210168848, + WestTexNewMexico__yhat_lower: 1.1910941101898465, + WestTexNewMexico__yhat_upper: 1.5258253127470764, + WestTexNewMexico: null, + }, + { + __timestamp: 1547942400000, + Boston__yhat: 1.4930213841534519, + Boston__yhat_lower: 1.32522086851355, + Boston__yhat_upper: 1.6395141150072567, + Boston: null, + California__yhat: 1.5868263660723425, + California__yhat_lower: 1.4139977641298356, + California__yhat_upper: 1.7378668908798396, + California: null, + WestTexNewMexico__yhat: 1.3530714721722696, + WestTexNewMexico__yhat_lower: 1.184666913955583, + WestTexNewMexico__yhat_upper: 1.5365947930677417, + WestTexNewMexico: null, + }, + { + __timestamp: 1548547200000, + Boston__yhat: 1.5064260868778963, + Boston__yhat_lower: 1.349421678738668, + Boston__yhat_upper: 1.6717312468069758, + Boston: null, + California__yhat: 1.5728369500849846, + California__yhat_lower: 1.4078403234125212, + California__yhat_upper: 1.7232456421219013, + California: null, + WestTexNewMexico__yhat: 1.3371545702180658, + WestTexNewMexico__yhat_lower: 1.1688412736364369, + WestTexNewMexico__yhat_upper: 1.5027118067203777, + WestTexNewMexico: null, + }, + { + __timestamp: 1549152000000, + Boston__yhat: 1.5247372779721031, + Boston__yhat_lower: 1.3626664019808368, + Boston__yhat_upper: 1.6814205406438416, + Boston: null, + California__yhat: 1.5856049867860793, + California__yhat_lower: 1.4318586175955552, + California__yhat_upper: 1.7445240758791, + California: null, + WestTexNewMexico__yhat: 1.3135544611621512, + WestTexNewMexico__yhat_lower: 1.1563716592544324, + WestTexNewMexico__yhat_upper: 1.475000207389841, + WestTexNewMexico: null, + }, + { + __timestamp: 1549756800000, + Boston__yhat: 1.5372085738904104, + Boston__yhat_lower: 1.3646353055360099, + Boston__yhat_upper: 1.6996311340505321, + Boston: null, + California__yhat: 1.614619447033503, + California__yhat_lower: 1.4504777711726042, + California__yhat_upper: 1.7634410984148907, + California: null, + WestTexNewMexico__yhat: 1.2984131725315775, + WestTexNewMexico__yhat_lower: 1.1291455665989898, + WestTexNewMexico__yhat_upper: 1.464210408267379, + WestTexNewMexico: null, + }, + { + __timestamp: 1550361600000, + Boston__yhat: 1.5437612828919351, + Boston__yhat_lower: 1.3714524418064908, + Boston__yhat_upper: 1.7050010452983988, + Boston: null, + California__yhat: 1.6407248315679368, + California__yhat_lower: 1.4791106123785347, + California__yhat_upper: 1.795498975466594, + California: null, + WestTexNewMexico__yhat: 1.3005896332658433, + WestTexNewMexico__yhat_lower: 1.1293433646870712, + WestTexNewMexico__yhat_upper: 1.4725109599593378, + WestTexNewMexico: null, + }, + { + __timestamp: 1550966400000, + Boston__yhat: 1.553849796800034, + Boston__yhat_lower: 1.3933386147660276, + Boston__yhat_upper: 1.7212149787623847, + Boston: null, + California__yhat: 1.6556818697074631, + California__yhat_lower: 1.4986915548656765, + California__yhat_upper: 1.8167106850243597, + California: null, + WestTexNewMexico__yhat: 1.3146671428439285, + WestTexNewMexico__yhat_lower: 1.1499214021686772, + WestTexNewMexico__yhat_upper: 1.476282980039059, + WestTexNewMexico: null, + }, + { + __timestamp: 1551571200000, + Boston__yhat: 1.5735220492749673, + Boston__yhat_lower: 1.39545277676677, + Boston__yhat_upper: 1.7405658280486025, + Boston: null, + California__yhat: 1.6692539026026865, + California__yhat_lower: 1.5070879158371504, + California__yhat_upper: 1.829855566706541, + California: null, + WestTexNewMexico__yhat: 1.3273697319920155, + WestTexNewMexico__yhat_lower: 1.1685181880635562, + WestTexNewMexico__yhat_upper: 1.5115103975610973, + WestTexNewMexico: null, + }, + { + __timestamp: 1552176000000, + Boston__yhat: 1.5970706588853314, + Boston__yhat_lower: 1.4072734746191229, + Boston__yhat_upper: 1.7662443556254754, + Boston: null, + California__yhat: 1.6973629782335624, + California__yhat_lower: 1.5391932795723466, + California__yhat_upper: 1.8666554141457992, + California: null, + WestTexNewMexico__yhat: 1.3291860136148679, + WestTexNewMexico__yhat_lower: 1.146719318199386, + WestTexNewMexico__yhat_upper: 1.49430539305963, + WestTexNewMexico: null, + }, + { + __timestamp: 1552780800000, + Boston__yhat: 1.6137166198890966, + Boston__yhat_lower: 1.435877479880376, + Boston__yhat_upper: 1.7773653706454762, + Boston: null, + California__yhat: 1.7434026274449044, + California__yhat_lower: 1.5808874223569025, + California__yhat_upper: 1.9029919670638462, + California: null, + WestTexNewMexico__yhat: 1.3211623123534868, + WestTexNewMexico__yhat_lower: 1.1561589813319189, + WestTexNewMexico__yhat_upper: 1.4849083926875184, + WestTexNewMexico: null, + }, +]; diff --git a/superset-frontend/temporary_superset_ui/superset-ui/plugins/plugin-chart-echarts/README.md b/superset-frontend/temporary_superset_ui/superset-ui/plugins/plugin-chart-echarts/README.md new file mode 100644 index 000000000000..7084d705bbb6 --- /dev/null +++ b/superset-frontend/temporary_superset_ui/superset-ui/plugins/plugin-chart-echarts/README.md @@ -0,0 +1,40 @@ +## @superset-ui/plugin-chart-echarts + +[![Version](https://img.shields.io/npm/v/@superset-ui/plugin-chart-echarts.svg?style=flat-square)](https://img.shields.io/npm/v/@superset-ui/plugin-chart-echarts.svg?style=flat-square) +[![David (path)](https://img.shields.io/david/apache-superset/superset-ui.svg?path=packages%2Fsuperset-ui-plugin-chart-echarts&style=flat-square)](https://david-dm.org/apache-superset/superset-ui?path=packages/superset-ui-plugin-chart-echarts) + +This plugin provides Echarts viz plugins for Superset: +- Timeseries Chart (combined line, area bar with support for predictive analytics) +- Pie Chart + +### Usage + +Configure `key`, which can be any `string`, and register the plugin. This `key` will be used to lookup this chart throughout the app. + +```js +import { + EchartsTimeseriesChartPlugin, + EchartsPieChartPlugin, +} from '@superset-ui/plugin-chart-echarts'; + +new EchartsTimeseriesChartPlugin() + .configure({ key: 'echarts-ts' }) + .register(); +new EchartsPieChartPlugin() + .configure({ key: 'echarts-pie' }) + .register(); +``` + +Then use it via `SuperChart`. See [storybook](https://apache-superset.github.io/superset-ui/?selectedKind=chart-plugins-plugin-chart-echarts) for more details. + +```js + +``` diff --git a/superset-frontend/temporary_superset_ui/superset-ui/plugins/plugin-chart-echarts/package.json b/superset-frontend/temporary_superset_ui/superset-ui/plugins/plugin-chart-echarts/package.json new file mode 100644 index 000000000000..f3ad428506bb --- /dev/null +++ b/superset-frontend/temporary_superset_ui/superset-ui/plugins/plugin-chart-echarts/package.json @@ -0,0 +1,48 @@ +{ + "name": "@superset-ui/plugin-chart-echarts", + "version": "0.0.0", + "description": "Superset Chart - Echarts", + "sideEffects": false, + "main": "lib/index.js", + "module": "esm/index.js", + "files": [ + "esm", + "lib" + ], + "repository": { + "type": "git", + "url": "git+https://github.com/apache-superset/superset-ui.git" + }, + "keywords": [ + "superset" + ], + "author": "Superset", + "license": "Apache-2.0", + "bugs": { + "url": "https://github.com/apache-superset/superset-ui/issues" + }, + "homepage": "https://github.com/apache-superset/superset-ui#readme", + "publishConfig": { + "access": "public" + }, + "peerDependencies": { + "@superset-ui/chart": "^0.14.1", + "@superset-ui/chart-controls": "^0.14.0", + "@superset-ui/color": "^0.14.1", + "@superset-ui/number-format": "^0.14.0", + "@superset-ui/query": "^0.14.1", + "@superset-ui/style": "^0.14.0", + "@superset-ui/translation": "^0.14.0", + "@superset-ui/validator": "^0.14.1", + "react": "^16.13.1" + }, + "devDependencies": { + "@types/jest": "^26.0.0", + "jest": "^26.0.1" + }, + "dependencies": { + "@superset-ui/time-format": "^0.14.9", + "@types/echarts": "^4.6.3", + "echarts": "^4.9.0" + } +} diff --git a/superset-frontend/temporary_superset_ui/superset-ui/plugins/plugin-chart-echarts/src/Pie/EchartsPie.tsx b/superset-frontend/temporary_superset_ui/superset-ui/plugins/plugin-chart-echarts/src/Pie/EchartsPie.tsx new file mode 100644 index 000000000000..31c0127d5545 --- /dev/null +++ b/superset-frontend/temporary_superset_ui/superset-ui/plugins/plugin-chart-echarts/src/Pie/EchartsPie.tsx @@ -0,0 +1,25 @@ +/** + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ +import React from 'react'; +import { EchartsPieProps } from './types'; +import Echart from '../components/Echart'; + +export default function EchartsPie({ height, width, echartOptions }: EchartsPieProps) { + return ; +} diff --git a/superset-frontend/temporary_superset_ui/superset-ui/plugins/plugin-chart-echarts/src/Pie/buildQuery.ts b/superset-frontend/temporary_superset_ui/superset-ui/plugins/plugin-chart-echarts/src/Pie/buildQuery.ts new file mode 100644 index 000000000000..9e3e54f52683 --- /dev/null +++ b/superset-frontend/temporary_superset_ui/superset-ui/plugins/plugin-chart-echarts/src/Pie/buildQuery.ts @@ -0,0 +1,23 @@ +/** + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ +import { buildQueryContext, QueryFormData } from '@superset-ui/query'; + +export default function buildQuery(formData: QueryFormData) { + return buildQueryContext(formData); +} diff --git a/superset-frontend/temporary_superset_ui/superset-ui/plugins/plugin-chart-echarts/src/Pie/controlPanel.ts b/superset-frontend/temporary_superset_ui/superset-ui/plugins/plugin-chart-echarts/src/Pie/controlPanel.ts new file mode 100644 index 000000000000..87eaad2fcedd --- /dev/null +++ b/superset-frontend/temporary_superset_ui/superset-ui/plugins/plugin-chart-echarts/src/Pie/controlPanel.ts @@ -0,0 +1,77 @@ +/** + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ +import { t } from '@superset-ui/translation'; +import { validateNonEmpty } from '@superset-ui/validator'; +import { ControlPanelConfig } from '@superset-ui/chart-controls'; + +const config: ControlPanelConfig = { + controlPanelSections: [ + { + label: t('Query'), + expanded: true, + controlSetRows: [['groupby'], ['metrics'], ['adhoc_filters'], ['row_limit', null]], + }, + { + label: t('Chart Options'), + expanded: true, + controlSetRows: [ + [ + { + name: 'outerRadius', + config: { + type: 'SliderControl', + label: t('Outer Radius'), + renderTrigger: true, + min: 10, + max: 100, + step: 1, + default: 70, + description: t('Outer edge of Pie chart'), + }, + }, + { + name: 'innerRadius', + config: { + type: 'SliderControl', + label: t('Inner Radius'), + renderTrigger: true, + min: 0, + max: 100, + step: 1, + default: 50, + description: t('Inner radius of donut hole'), + }, + }, + ], + ], + }, + ], + + controlOverrides: { + series: { + validators: [validateNonEmpty], + clearable: false, + }, + row_limit: { + default: 100, + }, + }, +}; + +export default config; diff --git a/superset-frontend/temporary_superset_ui/superset-ui/plugins/plugin-chart-echarts/src/Pie/images/thumbnail.png b/superset-frontend/temporary_superset_ui/superset-ui/plugins/plugin-chart-echarts/src/Pie/images/thumbnail.png new file mode 100644 index 000000000000..cc2c8fbebea1 Binary files /dev/null and b/superset-frontend/temporary_superset_ui/superset-ui/plugins/plugin-chart-echarts/src/Pie/images/thumbnail.png differ diff --git a/superset-frontend/temporary_superset_ui/superset-ui/plugins/plugin-chart-echarts/src/Pie/index.ts b/superset-frontend/temporary_superset_ui/superset-ui/plugins/plugin-chart-echarts/src/Pie/index.ts new file mode 100644 index 000000000000..e415bf572cd3 --- /dev/null +++ b/superset-frontend/temporary_superset_ui/superset-ui/plugins/plugin-chart-echarts/src/Pie/index.ts @@ -0,0 +1,52 @@ +/** + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ +import { t } from '@superset-ui/translation'; +import { ChartMetadata, ChartPlugin } from '@superset-ui/chart'; +import buildQuery from './buildQuery'; +import controlPanel from './controlPanel'; +import transformProps from './transformProps'; +import thumbnail from './images/thumbnail.png'; + +const metadata = new ChartMetadata({ + description: 'Pie chart using ECharts', + name: t('EchartsPie'), + thumbnail, +}); + +export default class EchartsPieChartPlugin extends ChartPlugin { + /** + * The constructor is used to pass relevant metadata and callbacks that get + * registered in respective registries that are used throughout the library + * and application. A more thorough description of each property is given in + * the respective imported file. + * + * It is worth noting that `buildQuery` and is optional, and only needed for + * advanced visualizations that require either post processing operations + * (pivoting, rolling aggregations, sorting etc) or submitting multiple queries. + */ + constructor() { + super({ + buildQuery, + controlPanel, + loadChart: () => import('./EchartsPie'), + metadata, + transformProps, + }); + } +} diff --git a/superset-frontend/temporary_superset_ui/superset-ui/plugins/plugin-chart-echarts/src/Pie/transformProps.ts b/superset-frontend/temporary_superset_ui/superset-ui/plugins/plugin-chart-echarts/src/Pie/transformProps.ts new file mode 100644 index 000000000000..198adfb60011 --- /dev/null +++ b/superset-frontend/temporary_superset_ui/superset-ui/plugins/plugin-chart-echarts/src/Pie/transformProps.ts @@ -0,0 +1,87 @@ +/** + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ +import { ChartProps, DataRecord } from '@superset-ui/chart'; +import { EchartsPieProps } from './types'; + +export default function transformProps(chartProps: ChartProps): EchartsPieProps { + /* + TODO: + - add support for multiple groupby (requires post transform op) + - add support for ad-hoc metrics (currently only supports datasource metrics) + - add support for superset colors + - add support for control values in legacy pie chart + */ + const { width, height, formData, queryData } = chartProps; + const data: DataRecord[] = queryData.data || []; + + const { innerRadius = 50, outerRadius = 70, groupby = [], metrics = [] } = formData; + + // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access + const keys = Array.from(new Set(data.map(datum => datum[groupby[0]]))); + + const transformedData = data.map(datum => { + return { + // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access + value: datum[metrics[0]], + // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access + name: datum[groupby[0]], + }; + }); + + const echartOptions = { + tooltip: { + trigger: 'item', + formatter: '{b}: {c} ({d}%)', + }, + legend: { + orient: 'vertical', + left: 10, + data: keys, + }, + series: [ + { + type: 'pie', + radius: [`${innerRadius}%`, `${outerRadius}%`], + avoidLabelOverlap: false, + label: { + show: false, + position: 'center', + }, + emphasis: { + label: { + show: true, + fontSize: '30', + fontWeight: 'bold', + }, + }, + labelLine: { + show: false, + }, + data: transformedData, + }, + ], + }; + + return { + width, + height, + // @ts-ignore + echartOptions, + }; +} diff --git a/superset-frontend/temporary_superset_ui/superset-ui/plugins/plugin-chart-echarts/src/Pie/types.ts b/superset-frontend/temporary_superset_ui/superset-ui/plugins/plugin-chart-echarts/src/Pie/types.ts new file mode 100644 index 000000000000..7817063d7dee --- /dev/null +++ b/superset-frontend/temporary_superset_ui/superset-ui/plugins/plugin-chart-echarts/src/Pie/types.ts @@ -0,0 +1,42 @@ +/** + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ +import { QueryFormData } from '@superset-ui/query'; +import { EchartsProps } from '../types'; + +export type PieChartFormData = QueryFormData & { + groupby?: string[]; + metrics?: string[]; + outerRadius?: number; + innerRadius?: number; +}; + +export type EchartsPieProps = EchartsProps & { + formData: PieChartFormData; + area: number; + colorScheme: string; + contributionMode?: string; + zoomable?: boolean; + seriesType: string; + logAxis: boolean; + stack: boolean; + markerEnabled: boolean; + markerSize: number; + minorSplitLine: boolean; + opacity: number; +}; diff --git a/superset-frontend/temporary_superset_ui/superset-ui/plugins/plugin-chart-echarts/src/Timeseries/EchartsTimeseries.tsx b/superset-frontend/temporary_superset_ui/superset-ui/plugins/plugin-chart-echarts/src/Timeseries/EchartsTimeseries.tsx new file mode 100644 index 000000000000..90fbeb48a6bf --- /dev/null +++ b/superset-frontend/temporary_superset_ui/superset-ui/plugins/plugin-chart-echarts/src/Timeseries/EchartsTimeseries.tsx @@ -0,0 +1,29 @@ +/** + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ +import React from 'react'; +import { EchartsTimeseriesProps } from './types'; +import Echart from '../components/Echart'; + +export default function EchartsTimeseries({ + height, + width, + echartOptions, +}: EchartsTimeseriesProps) { + return ; +} diff --git a/superset-frontend/temporary_superset_ui/superset-ui/plugins/plugin-chart-echarts/src/Timeseries/buildQuery.ts b/superset-frontend/temporary_superset_ui/superset-ui/plugins/plugin-chart-echarts/src/Timeseries/buildQuery.ts new file mode 100644 index 000000000000..0ae0424c13c7 --- /dev/null +++ b/superset-frontend/temporary_superset_ui/superset-ui/plugins/plugin-chart-echarts/src/Timeseries/buildQuery.ts @@ -0,0 +1,82 @@ +/** + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ +import { buildQueryContext, QueryFormData } from '@superset-ui/query'; + +/** + * The buildQuery function is used to create an instance of QueryContext that's + * sent to the chart data endpoint. In addition to containing information of which + * datasource to use, it specifies the type (e.g. full payload, samples, query) and + * format (e.g. CSV or JSON) of the result and whether or not to force refresh the data from + * the datasource as opposed to using a cached copy of the data, if available. + * + * More importantly though, QueryContext contains a property `queries`, which is an array of + * QueryObjects specifying individual data requests to be made. A QueryObject specifies which + * columns, metrics and filters, among others, to use during the query. Usually it will be enough + * to specify just one query based on the baseQueryObject, but for some more advanced use cases + * it is possible to define post processing operations in the QueryObject, or multiple queries + * if a viz needs multiple different result sets. + */ + +export default function buildQuery(formData: QueryFormData) { + return buildQueryContext(formData, baseQueryObject => { + const baseQueryMetrics = baseQueryObject?.metrics ? baseQueryObject.metrics : []; + + return [ + { + ...baseQueryObject, + // Time series charts need to set the `is_timeseries` flag to true + is_timeseries: true, + post_processing: [ + { + operation: 'pivot', + options: { + index: ['__timestamp'], + columns: formData.groupby, + // Create 'dummy' sum aggregates to assign cell values in pivot table + aggregates: Object.fromEntries( + baseQueryMetrics.map(metric => [metric.label, { operator: 'sum' }]), + ), + }, + }, + formData.contributionMode + ? { + operation: 'contribution', + options: { + orientation: formData.contributionMode, + }, + } + : undefined, + formData.forecastEnabled + ? { + operation: 'prophet', + options: { + time_grain: formData.time_grain_sqla, + periods: parseInt(formData.forecastPeriods, 10), + confidence_interval: parseFloat(formData.forecastInterval), + yearly_seasonality: formData.forecastSeasonalityYearly, + weekly_seasonality: formData.forecastSeasonalityWeekly, + daily_seasonality: formData.forecastSeasonalityDaily, + }, + } + : undefined, + ], + }, + ]; + }); +} diff --git a/superset-frontend/temporary_superset_ui/superset-ui/plugins/plugin-chart-echarts/src/Timeseries/controlPanel.ts b/superset-frontend/temporary_superset_ui/superset-ui/plugins/plugin-chart-echarts/src/Timeseries/controlPanel.ts new file mode 100644 index 000000000000..a4fcf83becc2 --- /dev/null +++ b/superset-frontend/temporary_superset_ui/superset-ui/plugins/plugin-chart-echarts/src/Timeseries/controlPanel.ts @@ -0,0 +1,308 @@ +/** + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ +import { t } from '@superset-ui/translation'; +import { + validateNonEmpty, + legacyValidateInteger, + legacyValidateNumber, +} from '@superset-ui/validator'; +import { ControlPanelConfig } from '@superset-ui/chart-controls'; + +const config: ControlPanelConfig = { + controlPanelSections: [ + { + label: t('Query'), + expanded: true, + controlSetRows: [ + ['metrics'], + ['groupby'], + [ + { + name: 'contributionMode', + config: { + type: 'SelectControl', + label: t('Contribution Mode'), + default: null, + choices: [ + [null, 'None'], + ['row', 'Total'], + ['column', 'Series'], + ], + description: t('Calculate contribution per series or total'), + }, + }, + ], + ['adhoc_filters'], + ['limit', 'timeseries_limit_metric'], + [ + { + name: 'order_desc', + config: { + type: 'CheckboxControl', + label: t('Sort Descending'), + default: true, + description: t('Whether to sort descending or ascending'), + }, + }, + ], + ['row_limit', null], + ], + }, + { + label: t('Predictive Analytics'), + expanded: true, + controlSetRows: [ + [ + { + name: 'forecastEnabled', + config: { + type: 'CheckboxControl', + label: t('Enable forecast'), + renderTrigger: false, + default: false, + description: t('Enable forecasting'), + }, + }, + ], + [ + { + name: 'forecastPeriods', + config: { + type: 'TextControl', + label: t('Forecast periods'), + validators: [legacyValidateInteger], + default: 10, + description: t('How many periods into the future do we want to predict'), + }, + }, + ], + [ + { + name: 'forecastInterval', + config: { + type: 'TextControl', + label: t('Confidence interval'), + validators: [legacyValidateNumber], + default: 0.8, + description: t('Width of the confidence interval. Should be between 0 and 1'), + }, + }, + { + name: 'forecastSeasonalityYearly', + config: { + type: 'SelectControl', + freeForm: true, + label: 'Yearly seasonality', + choices: [ + [null, 'default'], + [true, 'Yes'], + [false, 'No'], + ], + default: null, + description: t( + 'Should yearly seasonality be applied. An integer value will specify Fourier order of seasonality.', + ), + }, + }, + ], + [ + { + name: 'forecastSeasonalityWeekly', + config: { + type: 'SelectControl', + freeForm: true, + label: 'Weekly seasonality', + choices: [ + [null, 'default'], + [true, 'Yes'], + [false, 'No'], + ], + default: null, + description: t( + 'Should weekly seasonality be applied. An integer value will specify Fourier order of seasonality.', + ), + }, + }, + { + name: 'forecastSeasonalityDaily', + config: { + type: 'SelectControl', + freeForm: true, + label: 'Daily seasonality', + choices: [ + [null, 'default'], + [true, 'Yes'], + [false, 'No'], + ], + default: null, + description: t( + 'Should daily seasonality be applied. An integer value will specify Fourier order of seasonality.', + ), + }, + }, + ], + ], + }, + { + label: t('Chart Options'), + expanded: true, + controlSetRows: [ + ['color_scheme', 'label_colors'], + [ + { + name: 'seriesType', + config: { + type: 'SelectControl', + label: t('Series Style'), + renderTrigger: true, + default: 'line', + choices: [ + ['line', 'Line'], + ['scatter', 'Scatter'], + ['smooth', 'Smooth Line'], + ['bar', 'Bar'], + ['start', 'Step - start'], + ['middle', 'Step - middle'], + ['end', 'Step - end'], + ], + description: t('Series chart type (line, bar etc)'), + }, + }, + ], + ['y_axis_format'], + [ + { + name: 'stack', + config: { + type: 'CheckboxControl', + label: t('Stack Lines'), + renderTrigger: true, + default: false, + description: t('Stack series on top of each other'), + }, + }, + ], + [ + { + name: 'area', + config: { + type: 'CheckboxControl', + label: t('Area Chart'), + renderTrigger: true, + default: false, + description: t('Draw area under curves. Only applicable for line types.'), + }, + }, + { + name: 'opacity', + config: { + type: 'SliderControl', + label: t('Opacity'), + renderTrigger: true, + min: 0, + max: 1, + step: 0.1, + default: 0.2, + description: t('Opacity of Area Chart. Also applies to confidence band.'), + }, + }, + ], + [ + { + name: 'markerEnabled', + config: { + type: 'CheckboxControl', + label: t('Marker'), + renderTrigger: true, + default: false, + description: t('Draw a marker on data points. Only applicable for line types.'), + }, + }, + { + name: 'markerSize', + config: { + type: 'SliderControl', + label: t('Marker Size'), + renderTrigger: true, + min: 0, + max: 100, + default: 6, + description: t('Size of marker. Also applies to forecast observations.'), + }, + }, + ], + [ + { + name: 'logAxis', + config: { + type: 'CheckboxControl', + label: t('Logarithmic y-axis'), + renderTrigger: true, + default: false, + description: t('Logarithmic y-axis'), + }, + }, + { + name: 'minorSplitLine', + config: { + type: 'CheckboxControl', + label: t('Minor Split Line'), + renderTrigger: true, + default: false, + description: t('Draw split lines for minor y-axis ticks'), + }, + }, + ], + [ + { + name: 'zoomable', + config: { + type: 'CheckboxControl', + label: t('Data Zoom'), + default: false, + renderTrigger: true, + description: t('Enable data zooming controls'), + }, + }, + ], + ], + }, + ], + // Time series charts need to override the `druidTimeSeries` and `sqlaTimeSeries` + // sections to add the time grain dropdown. + sectionOverrides: { + druidTimeSeries: { + controlSetRows: [['granularity', 'druid_time_origin'], ['time_range']], + }, + sqlaTimeSeries: { + controlSetRows: [['granularity_sqla', 'time_grain_sqla'], ['time_range']], + }, + }, + controlOverrides: { + series: { + validators: [validateNonEmpty], + clearable: false, + }, + row_limit: { + default: 100, + }, + }, +}; + +export default config; diff --git a/superset-frontend/temporary_superset_ui/superset-ui/plugins/plugin-chart-echarts/src/Timeseries/images/thumbnail.png b/superset-frontend/temporary_superset_ui/superset-ui/plugins/plugin-chart-echarts/src/Timeseries/images/thumbnail.png new file mode 100644 index 000000000000..1c42c7811722 Binary files /dev/null and b/superset-frontend/temporary_superset_ui/superset-ui/plugins/plugin-chart-echarts/src/Timeseries/images/thumbnail.png differ diff --git a/superset-frontend/temporary_superset_ui/superset-ui/plugins/plugin-chart-echarts/src/Timeseries/index.ts b/superset-frontend/temporary_superset_ui/superset-ui/plugins/plugin-chart-echarts/src/Timeseries/index.ts new file mode 100644 index 000000000000..f1dac493e644 --- /dev/null +++ b/superset-frontend/temporary_superset_ui/superset-ui/plugins/plugin-chart-echarts/src/Timeseries/index.ts @@ -0,0 +1,52 @@ +/** + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ +import { t } from '@superset-ui/translation'; +import { ChartMetadata, ChartPlugin } from '@superset-ui/chart'; +import buildQuery from './buildQuery'; +import controlPanel from './controlPanel'; +import transformProps from './transformProps'; +import thumbnail from './images/thumbnail.png'; + +const metadata = new ChartMetadata({ + description: 'ECharts Timeseries', + name: t('ECharts Timeseries'), + thumbnail, +}); + +export default class EchartsTimeseriesChartPlugin extends ChartPlugin { + /** + * The constructor is used to pass relevant metadata and callbacks that get + * registered in respective registries that are used throughout the library + * and application. A more thorough description of each property is given in + * the respective imported file. + * + * It is worth noting that `buildQuery` and is optional, and only needed for + * advanced visualizations that require either post processing operations + * (pivoting, rolling aggregations, sorting etc) or submitting multiple queries. + */ + constructor() { + super({ + buildQuery, + controlPanel, + loadChart: () => import('./EchartsTimeseries'), + metadata, + transformProps, + }); + } +} diff --git a/superset-frontend/temporary_superset_ui/superset-ui/plugins/plugin-chart-echarts/src/Timeseries/transformProps.ts b/superset-frontend/temporary_superset_ui/superset-ui/plugins/plugin-chart-echarts/src/Timeseries/transformProps.ts new file mode 100644 index 000000000000..1fd02289d250 --- /dev/null +++ b/superset-frontend/temporary_superset_ui/superset-ui/plugins/plugin-chart-echarts/src/Timeseries/transformProps.ts @@ -0,0 +1,202 @@ +/** + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ +import { ChartProps } from '@superset-ui/chart'; +import { CategoricalColorNamespace } from '@superset-ui/color'; +import { getNumberFormatter } from '@superset-ui/number-format'; +import { smartDateVerboseFormatter } from '@superset-ui/time-format'; +import { EchartsTimeseriesProps } from './types'; +import { ForecastSeriesEnum } from '../types'; +import { extractTimeseriesSeries } from '../utils/series'; +import { + extractForecastSeriesContext, + extractProphetValuesFromTooltipParams, + formatProphetTooltipSeries, + rebaseTimeseriesDatum, +} from '../utils/prophet'; + +export default function transformProps(chartProps: ChartProps): EchartsTimeseriesProps { + const { width, height, formData, queryData } = chartProps; + const { + area, + colorScheme, + contributionMode, + forecastEnabled, + seriesType, + logAxis, + opacity, + stack, + markerEnabled, + markerSize, + minorSplitLine, + yAxisFormat, + zoomable, + } = formData; + + const colorFn = CategoricalColorNamespace.getScale(colorScheme as string); + + // eslint-disable-next-line @typescript-eslint/no-unsafe-call + const rebasedData = rebaseTimeseriesDatum(queryData.data || []); + const rawSeries = extractTimeseriesSeries(rebasedData); + + const series: echarts.EChartOption.Series[] = []; + const formatter = getNumberFormatter(contributionMode ? ',.0%' : yAxisFormat); + + rawSeries.forEach(entry => { + const forecastSeries = extractForecastSeriesContext(entry.name || ''); + const isConfidenceBand = + forecastSeries.type === ForecastSeriesEnum.ForecastLower || + forecastSeries.type === ForecastSeriesEnum.ForecastUpper; + const isObservation = forecastSeries.type === ForecastSeriesEnum.Observation; + const isTrend = forecastSeries.type === ForecastSeriesEnum.ForecastTrend; + let stackId; + if (isConfidenceBand) { + stackId = forecastSeries.name; + } else if (stack && isObservation) { + // the suffix of the observation series is '' (falsy), which disables + // stacking. Therefore we need to set something that is truthy. + stackId = 'obs'; + } else if (stack && isTrend) { + stackId = forecastSeries.type; + } + let plotType; + if (!isConfidenceBand && (seriesType === 'scatter' || (forecastEnabled && isObservation))) { + plotType = 'scatter'; + } else if (isConfidenceBand) { + plotType = 'line'; + } else { + plotType = seriesType === 'bar' ? 'bar' : 'line'; + } + const lineStyle = isConfidenceBand ? { opacity: 0 } : {}; + + if (!((stack || area) && isConfidenceBand)) + series.push({ + ...entry, + id: entry.name, + name: forecastSeries.name, + itemStyle: { + color: colorFn(forecastSeries.name), + }, + type: plotType, + // @ts-ignore + smooth: seriesType === 'smooth', + step: ['start', 'middle', 'end'].includes(seriesType as string) ? seriesType : undefined, + stack: stackId, + lineStyle, + areaStyle: { + opacity: forecastSeries.type === ForecastSeriesEnum.ForecastUpper || area ? opacity : 0, + }, + symbolSize: + !isConfidenceBand && + (plotType === 'scatter' || (forecastEnabled && isObservation) || markerEnabled) + ? markerSize + : 0, + }); + }); + const echartOptions: echarts.EChartOption = { + grid: { + top: 30, + bottom: zoomable ? 80 : 0, + left: 20, + right: 20, + containLabel: true, + }, + xAxis: { type: 'time' }, + yAxis: { + type: logAxis ? 'log' : 'value', + min: contributionMode === 'row' && stack ? 0 : undefined, + max: contributionMode === 'row' && stack ? 1 : undefined, + minorTick: { show: true }, + minorSplitLine: { show: minorSplitLine }, + axisLabel: { formatter }, + }, + tooltip: { + trigger: 'axis', + formatter: (params, ticket, callback) => { + // @ts-ignore + const rows = [`${smartDateVerboseFormatter(params[0].value[0])}`]; + // @ts-ignore + const prophetValues = extractProphetValuesFromTooltipParams(params); + Object.keys(prophetValues).forEach(key => { + const value = prophetValues[key]; + rows.push( + formatProphetTooltipSeries({ + ...value, + seriesName: key, + formatter, + }), + ); + }); + setTimeout(() => { + callback(ticket, rows.join('
')); + }, 50); + return 'loading'; + }, + }, + legend: { + type: 'scroll', + data: rawSeries + .filter( + entry => + extractForecastSeriesContext(entry.name || '').type === ForecastSeriesEnum.Observation, + ) + .map(entry => entry.name || ''), + right: zoomable ? 80 : 'auto', + }, + series, + toolbox: { + show: zoomable, + feature: { + dataZoom: { + yAxisIndex: false, + title: { + zoom: 'zoom area', + back: 'restore zoom', + }, + }, + }, + }, + dataZoom: zoomable + ? [ + { + type: 'slider', + start: 0, + end: 100, + bottom: 20, + }, + ] + : [], + }; + + return { + area, + colorScheme, + contributionMode, + // @ts-ignore + echartOptions, + seriesType, + logAxis, + opacity, + stack, + markerEnabled, + markerSize, + minorSplitLine, + width, + height, + }; +} diff --git a/superset-frontend/temporary_superset_ui/superset-ui/plugins/plugin-chart-echarts/src/Timeseries/types.ts b/superset-frontend/temporary_superset_ui/superset-ui/plugins/plugin-chart-echarts/src/Timeseries/types.ts new file mode 100644 index 000000000000..253aa29283ff --- /dev/null +++ b/superset-frontend/temporary_superset_ui/superset-ui/plugins/plugin-chart-echarts/src/Timeseries/types.ts @@ -0,0 +1,57 @@ +/** + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ +import { DataRecord, DataRecordValue } from '@superset-ui/chart'; +import { EchartsProps } from '../types'; + +export type TimestampType = string | number | Date; + +export interface TimeseriesDataRecord extends DataRecord { + __timestamp: TimestampType; +} + +export type EchartsBaseTimeseriesSeries = { + name: string; + data: [Date, DataRecordValue][]; +}; + +export type EchartsTimeseriesSeries = EchartsBaseTimeseriesSeries & { + color: string; + stack?: string; + type: 'bar' | 'line'; + smooth: boolean; + step?: 'start' | 'middle' | 'end'; + areaStyle: { + opacity: number; + }; + symbolSize: number; +}; + +export type EchartsTimeseriesProps = EchartsProps & { + area: number; + colorScheme: string; + contributionMode?: string; + zoomable?: boolean; + seriesType: string; + logAxis: boolean; + stack: boolean; + markerEnabled: boolean; + markerSize: number; + minorSplitLine: boolean; + opacity: number; +}; diff --git a/superset-frontend/temporary_superset_ui/superset-ui/plugins/plugin-chart-echarts/src/components/Echart.tsx b/superset-frontend/temporary_superset_ui/superset-ui/plugins/plugin-chart-echarts/src/components/Echart.tsx new file mode 100644 index 000000000000..949c657c078b --- /dev/null +++ b/superset-frontend/temporary_superset_ui/superset-ui/plugins/plugin-chart-echarts/src/components/Echart.tsx @@ -0,0 +1,48 @@ +/** + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ +import React, { useRef, useEffect } from 'react'; +import styled from '@superset-ui/style'; +import echarts from 'echarts'; +import { EchartsProps, EchartsStylesProps } from '../types'; + +const Styles = styled.div` + height: ${({ height }) => height}; + width: ${({ width }) => width}; +`; + +export default function Echart({ width, height, echartOptions }: EchartsProps) { + const divRef = useRef(null); + const chartRef = useRef(); + + useEffect(() => { + if (!divRef.current) return; + if (!chartRef.current) { + chartRef.current = echarts.init(divRef.current); + } + chartRef.current.setOption(echartOptions, true); + }, [echartOptions]); + + useEffect(() => { + if (chartRef.current) { + chartRef.current.resize({ width, height }); + } + }, [width, height]); + + return ; +} diff --git a/superset-frontend/temporary_superset_ui/superset-ui/plugins/plugin-chart-echarts/src/index.ts b/superset-frontend/temporary_superset_ui/superset-ui/plugins/plugin-chart-echarts/src/index.ts new file mode 100644 index 000000000000..b7a384880dcf --- /dev/null +++ b/superset-frontend/temporary_superset_ui/superset-ui/plugins/plugin-chart-echarts/src/index.ts @@ -0,0 +1,29 @@ +/** + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ +// eslint-disable-next-line import/prefer-default-export +export { default as EchartsTimeseriesChartPlugin } from './Timeseries'; +export { default as EchartsPieChartPlugin } from './Pie'; + +/** + * Note: this file exports the default export from EchartsTimeseries.tsx. + * If you want to export multiple visualization modules, you will need to + * either add additional plugin folders (similar in structure to ./plugin) + * OR export multiple instances of `ChartPlugin` extensions in ./plugin/index.ts + * which in turn load exports from EchartsTimeseries.tsx + */ diff --git a/superset-frontend/temporary_superset_ui/superset-ui/plugins/plugin-chart-echarts/src/types.ts b/superset-frontend/temporary_superset_ui/superset-ui/plugins/plugin-chart-echarts/src/types.ts new file mode 100644 index 000000000000..bd1c51dbb31b --- /dev/null +++ b/superset-frontend/temporary_superset_ui/superset-ui/plugins/plugin-chart-echarts/src/types.ts @@ -0,0 +1,48 @@ +/** + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ +export type EchartsStylesProps = { + height: number; + width: number; +}; + +export interface EchartsProps { + height: number; + width: number; + echartOptions: echarts.EChartOption; +} + +export enum ForecastSeriesEnum { + Observation = '', + ForecastTrend = '__yhat', + ForecastUpper = '__yhat_upper', + ForecastLower = '__yhat_lower', +} + +export type ForecastSeriesContext = { + name: string; + type: ForecastSeriesEnum; +}; + +export type ProphetValue = { + marker: string; + observation?: number; + forecastTrend?: number; + forecastLower?: number; + forecastUpper?: number; +}; diff --git a/superset-frontend/temporary_superset_ui/superset-ui/plugins/plugin-chart-echarts/src/utils/prophet.ts b/superset-frontend/temporary_superset_ui/superset-ui/plugins/plugin-chart-echarts/src/utils/prophet.ts new file mode 100644 index 000000000000..1f26f2722804 --- /dev/null +++ b/superset-frontend/temporary_superset_ui/superset-ui/plugins/plugin-chart-echarts/src/utils/prophet.ts @@ -0,0 +1,113 @@ +/** + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ +import { DataRecord } from '@superset-ui/chart'; +import { NumberFormatter } from '@superset-ui/number-format'; +import { ForecastSeriesContext, ForecastSeriesEnum, ProphetValue } from '../types'; +import { TimeseriesDataRecord } from '../Timeseries/types'; + +const seriesTypeRegex = new RegExp( + `(.+)(${ForecastSeriesEnum.ForecastLower}|${ForecastSeriesEnum.ForecastTrend}|${ForecastSeriesEnum.ForecastUpper})$`, +); +export const extractForecastSeriesContext = (seriesName: string): ForecastSeriesContext => { + const regexMatch = seriesTypeRegex.exec(seriesName); + if (!regexMatch) return { name: seriesName, type: ForecastSeriesEnum.Observation }; + return { + name: regexMatch[1], + type: regexMatch[2] as ForecastSeriesEnum, + }; +}; + +export const extractProphetValuesFromTooltipParams = ( + params: (echarts.EChartOption.Tooltip.Format & { seriesId: string })[], +): Record => { + const values: Record = {}; + params.forEach(param => { + const { marker, seriesId, value } = param; + const context = extractForecastSeriesContext(seriesId); + const numericValue = (value as [Date, number])[1]; + if (numericValue) { + if (!(context.name in values)) + values[context.name] = { + marker: marker || '', + }; + const prophetValues = values[context.name]; + if (context.type === ForecastSeriesEnum.Observation) prophetValues.observation = numericValue; + if (context.type === ForecastSeriesEnum.ForecastTrend) + prophetValues.forecastTrend = numericValue; + if (context.type === ForecastSeriesEnum.ForecastLower) + prophetValues.forecastLower = numericValue; + if (context.type === ForecastSeriesEnum.ForecastUpper) + prophetValues.forecastUpper = numericValue; + } + }); + return values; +}; + +export const formatProphetTooltipSeries = ({ + seriesName, + observation, + forecastTrend, + forecastLower, + forecastUpper, + marker, + formatter, +}: ProphetValue & { + seriesName: string; + marker: string; + formatter: NumberFormatter; +}): string => { + let row = `${marker}${seriesName}: `; + let isObservation = false; + if (observation) { + isObservation = true; + row += `${formatter(observation)}`; + } + if (forecastTrend) { + if (isObservation) row += ', '; + row += `ŷ = ${formatter(forecastTrend)}`; + if (forecastLower && forecastUpper) + // the lower bound needs to be added to the upper bound + row += ` (${formatter(forecastLower)}, ${formatter(forecastLower + forecastUpper)})`; + } + return `${row.trim()}`; +}; + +export const rebaseTimeseriesDatum = (data: DataRecord[]): TimeseriesDataRecord[] => { + const keys = data.length > 0 ? Object.keys(data[0]) : []; + + return data.map(row => { + const newRow: TimeseriesDataRecord = { __timestamp: '' }; + keys.forEach(key => { + const forecastContext = extractForecastSeriesContext(key); + const lowerKey = `${forecastContext.name}${ForecastSeriesEnum.ForecastLower}`; + let value = row[key]; + if ( + forecastContext.type === ForecastSeriesEnum.ForecastUpper && + keys.includes(lowerKey) && + value !== null && + row[lowerKey] !== null + ) { + // @ts-ignore + value -= row[lowerKey]; + } + newRow[key] = value; + }); + return newRow; + }); +}; diff --git a/superset-frontend/temporary_superset_ui/superset-ui/plugins/plugin-chart-echarts/src/utils/series.ts b/superset-frontend/temporary_superset_ui/superset-ui/plugins/plugin-chart-echarts/src/utils/series.ts new file mode 100644 index 000000000000..931895f23ede --- /dev/null +++ b/superset-frontend/temporary_superset_ui/superset-ui/plugins/plugin-chart-echarts/src/utils/series.ts @@ -0,0 +1,39 @@ +/* eslint-disable no-underscore-dangle */ +/** + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ +import { TimeseriesDataRecord } from '../Timeseries/types'; + +// eslint-disable-next-line import/prefer-default-export +export function extractTimeseriesSeries( + data: TimeseriesDataRecord[], +): echarts.EChartOption.Series[] { + if (data.length === 0) return []; + const rows = data.map(datum => ({ + ...datum, + __timestamp: new Date(datum.__timestamp), + })); + + return Object.keys(rows[0]) + .filter(key => key !== '__timestamp') + .map(key => ({ + name: key, + // @ts-ignore + data: rows.map(datum => [datum.__timestamp, datum[key]]), + })); +} diff --git a/superset-frontend/temporary_superset_ui/superset-ui/plugins/plugin-chart-echarts/test/Timeseries/buildQuery.test.ts b/superset-frontend/temporary_superset_ui/superset-ui/plugins/plugin-chart-echarts/test/Timeseries/buildQuery.test.ts new file mode 100644 index 000000000000..b91aa4a539b1 --- /dev/null +++ b/superset-frontend/temporary_superset_ui/superset-ui/plugins/plugin-chart-echarts/test/Timeseries/buildQuery.test.ts @@ -0,0 +1,35 @@ +/** + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ +import buildQuery from '../../src/Timeseries/buildQuery'; + +describe('EchartsTimeseries buildQuery', () => { + const formData = { + datasource: '5__table', + granularity_sqla: 'ds', + series: 'foo', + viz_type: 'my_chart', + queryFields: { series: 'groupby' }, + }; + + it('should build groupby with series in form data', () => { + const queryContext = buildQuery(formData); + const [query] = queryContext.queries; + expect(query.groupby).toEqual(['foo']); + }); +}); diff --git a/superset-frontend/temporary_superset_ui/superset-ui/plugins/plugin-chart-echarts/test/Timeseries/transformProps.test.ts b/superset-frontend/temporary_superset_ui/superset-ui/plugins/plugin-chart-echarts/test/Timeseries/transformProps.test.ts new file mode 100644 index 000000000000..7e4b4d1e84cd --- /dev/null +++ b/superset-frontend/temporary_superset_ui/superset-ui/plugins/plugin-chart-echarts/test/Timeseries/transformProps.test.ts @@ -0,0 +1,56 @@ +/** + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ +import 'babel-polyfill'; +import { ChartProps } from '@superset-ui/chart'; +import transformProps from '../../src/Timeseries/transformProps'; + +describe('EchartsTimeseries tranformProps', () => { + const formData = { + colorScheme: 'bnbColors', + datasource: '3__table', + granularity_sqla: 'ds', + metric: 'sum__num', + series: 'name', + }; + const chartProps = new ChartProps({ + formData, + width: 800, + height: 600, + queryData: { + data: [{ sum__num: 1, __timestamp: 599616000000 }], + }, + }); + + it('should tranform chart props for viz', () => { + expect(transformProps(chartProps)).toEqual( + expect.objectContaining({ + width: 800, + height: 600, + echartOptions: expect.objectContaining({ + series: expect.arrayContaining([ + expect.objectContaining({ + data: [[new Date(599616000000), 1]], + id: 'sum__num', + }), + ]), + }), + }), + ); + }); +}); diff --git a/superset-frontend/temporary_superset_ui/superset-ui/plugins/plugin-chart-echarts/test/index.test.ts b/superset-frontend/temporary_superset_ui/superset-ui/plugins/plugin-chart-echarts/test/index.test.ts new file mode 100644 index 000000000000..786d114d2fa3 --- /dev/null +++ b/superset-frontend/temporary_superset_ui/superset-ui/plugins/plugin-chart-echarts/test/index.test.ts @@ -0,0 +1,26 @@ +/** + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ +import { EchartsPieChartPlugin, EchartsTimeseriesChartPlugin } from '../src'; + +describe('@superset-ui/plugin-chart-echarts', () => { + it('exists', () => { + expect(EchartsPieChartPlugin).toBeDefined(); + expect(EchartsTimeseriesChartPlugin).toBeDefined(); + }); +}); diff --git a/superset-frontend/temporary_superset_ui/superset-ui/plugins/plugin-chart-echarts/test/utils/prophet.test.ts b/superset-frontend/temporary_superset_ui/superset-ui/plugins/plugin-chart-echarts/test/utils/prophet.test.ts new file mode 100644 index 000000000000..a907f3599d56 --- /dev/null +++ b/superset-frontend/temporary_superset_ui/superset-ui/plugins/plugin-chart-echarts/test/utils/prophet.test.ts @@ -0,0 +1,175 @@ +/** + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ +import { getNumberFormatter, NumberFormats } from '@superset-ui/number-format'; +import { + extractForecastSeriesContext, + extractProphetValuesFromTooltipParams, + formatProphetTooltipSeries, + rebaseTimeseriesDatum, +} from '../../src/utils/prophet'; +import { ForecastSeriesEnum } from '../../src/types'; + +describe('extractForecastSeriesContext', () => { + it('should extract the correct series name and type', () => { + expect(extractForecastSeriesContext('abcd')).toEqual({ + name: 'abcd', + type: ForecastSeriesEnum.Observation, + }); + expect(extractForecastSeriesContext('qwerty__yhat')).toEqual({ + name: 'qwerty', + type: ForecastSeriesEnum.ForecastTrend, + }); + expect(extractForecastSeriesContext('X Y Z___yhat_upper')).toEqual({ + name: 'X Y Z_', + type: ForecastSeriesEnum.ForecastUpper, + }); + expect(extractForecastSeriesContext('1 2 3__yhat_lower')).toEqual({ + name: '1 2 3', + type: ForecastSeriesEnum.ForecastLower, + }); + }); +}); + +describe('rebaseTimeseriesDatum', () => { + it('should subtract lower confidence level from upper value', () => { + expect( + rebaseTimeseriesDatum([ + { + __timestamp: new Date('2001-01-01'), + abc: 10, + abc__yhat_lower: 1, + abc__yhat_upper: 20, + }, + { + __timestamp: new Date('2002-01-01'), + abc: 10, + abc__yhat_lower: null, + abc__yhat_upper: 20, + }, + { + __timestamp: new Date('2003-01-01'), + abc: 10, + abc__yhat_lower: 1, + abc__yhat_upper: null, + }, + ]), + ).toEqual([ + { + __timestamp: new Date('2001-01-01'), + abc: 10, + abc__yhat_lower: 1, + abc__yhat_upper: 19, + }, + { + __timestamp: new Date('2002-01-01'), + abc: 10, + abc__yhat_lower: null, + abc__yhat_upper: 20, + }, + { + __timestamp: new Date('2003-01-01'), + abc: 10, + abc__yhat_lower: 1, + abc__yhat_upper: null, + }, + ]); + }); +}); + +describe('extractProphetValuesFromTooltipParams', () => { + it('should extract the proper data from tooltip params', () => { + expect( + extractProphetValuesFromTooltipParams([ + { + marker: '', + seriesId: 'abc', + value: [new Date(0), 10], + }, + { + marker: '', + seriesId: 'abc__yhat', + value: [new Date(0), 1], + }, + { + marker: '', + seriesId: 'abc__yhat_lower', + value: [new Date(0), 5], + }, + { + marker: '', + seriesId: 'abc__yhat_upper', + value: [new Date(0), 6], + }, + { + marker: '', + seriesId: 'qwerty', + value: [new Date(0), 2], + }, + ]), + ).toEqual({ + abc: { + marker: '', + observation: 10, + forecastTrend: 1, + forecastLower: 5, + forecastUpper: 6, + }, + qwerty: { + marker: '', + observation: 2, + }, + }); + }); +}); + +const formatter = getNumberFormatter(NumberFormats.INTEGER); + +describe('formatProphetTooltipSeries', () => { + it('should generate a proper series tooltip', () => { + expect( + formatProphetTooltipSeries({ + seriesName: 'abc', + marker: '', + observation: 10.1, + formatter, + }), + ).toEqual('abc: 10'); + expect( + formatProphetTooltipSeries({ + seriesName: 'qwerty', + marker: '', + observation: 10.1, + forecastTrend: 20.1, + forecastLower: 5.1, + forecastUpper: 7.1, + formatter, + }), + ).toEqual('qwerty: 10, ŷ = 20 (5, 12)'); + expect( + formatProphetTooltipSeries({ + seriesName: 'qwerty', + marker: '', + forecastTrend: 20, + forecastLower: 5, + forecastUpper: 7, + formatter, + }), + ).toEqual('qwerty: ŷ = 20 (5, 12)'); + }); +}); diff --git a/superset-frontend/temporary_superset_ui/superset-ui/plugins/plugin-chart-echarts/test/utils/series.test.ts b/superset-frontend/temporary_superset_ui/superset-ui/plugins/plugin-chart-echarts/test/utils/series.test.ts new file mode 100644 index 000000000000..2e33fd9137ea --- /dev/null +++ b/superset-frontend/temporary_superset_ui/superset-ui/plugins/plugin-chart-echarts/test/utils/series.test.ts @@ -0,0 +1,59 @@ +/** + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ +import { extractTimeseriesSeries } from '../../src/utils/series'; + +describe('extractTimeseriesSeries', () => { + it('should generate a valid ECharts timeseries series object', () => { + const data = [ + { + __timestamp: '2000-01-01', + Hulk: null, + abc: 2, + }, + { + __timestamp: '2000-02-01', + Hulk: 2, + abc: 10, + }, + { + __timestamp: '2000-03-01', + Hulk: 1, + abc: 5, + }, + ]; + expect(extractTimeseriesSeries(data)).toEqual([ + { + name: 'Hulk', + data: [ + [new Date('2000-01-01'), null], + [new Date('2000-02-01'), 2], + [new Date('2000-03-01'), 1], + ], + }, + { + name: 'abc', + data: [ + [new Date('2000-01-01'), 2], + [new Date('2000-02-01'), 10], + [new Date('2000-03-01'), 5], + ], + }, + ]); + }); +}); diff --git a/superset-frontend/temporary_superset_ui/superset-ui/plugins/plugin-chart-echarts/types/external.d.ts b/superset-frontend/temporary_superset_ui/superset-ui/plugins/plugin-chart-echarts/types/external.d.ts new file mode 100644 index 000000000000..0935dbbd8066 --- /dev/null +++ b/superset-frontend/temporary_superset_ui/superset-ui/plugins/plugin-chart-echarts/types/external.d.ts @@ -0,0 +1,4 @@ +declare module '*.png' { + const value: any; + export default value; +} diff --git a/superset-frontend/temporary_superset_ui/superset-ui/plugins/plugin-chart-word-cloud/test/plugin/buildQuery.test.ts b/superset-frontend/temporary_superset_ui/superset-ui/plugins/plugin-chart-word-cloud/test/plugin/buildQuery.test.ts index 9213fc01f8b4..6265587b76b9 100644 --- a/superset-frontend/temporary_superset_ui/superset-ui/plugins/plugin-chart-word-cloud/test/plugin/buildQuery.test.ts +++ b/superset-frontend/temporary_superset_ui/superset-ui/plugins/plugin-chart-word-cloud/test/plugin/buildQuery.test.ts @@ -1,4 +1,3 @@ -import 'babel-polyfill'; import buildQuery from '../../src/plugin/buildQuery'; describe('WordCloud buildQuery', () => { diff --git a/superset-frontend/temporary_superset_ui/superset-ui/yarn.lock b/superset-frontend/temporary_superset_ui/superset-ui/yarn.lock index fc17fe5825f2..163e8e70a617 100644 --- a/superset-frontend/temporary_superset_ui/superset-ui/yarn.lock +++ b/superset-frontend/temporary_superset_ui/superset-ui/yarn.lock @@ -1851,6 +1851,17 @@ jest-util "^25.5.0" slash "^3.0.0" +"@jest/console@^26.1.0": + version "26.1.0" + resolved "https://registry.yarnpkg.com/@jest/console/-/console-26.1.0.tgz#f67c89e4f4d04dbcf7b052aed5ab9c74f915b954" + integrity sha512-+0lpTHMd/8pJp+Nd4lyip+/Iyf2dZJvcCqrlkeZQoQid+JlThA4M9vxHtheyrQ99jJTMQam+es4BcvZ5W5cC3A== + dependencies: + "@jest/types" "^26.1.0" + chalk "^4.0.0" + jest-message-util "^26.1.0" + jest-util "^26.1.0" + slash "^3.0.0" + "@jest/core@^25.5.4": version "25.5.4" resolved "https://registry.yarnpkg.com/@jest/core/-/core-25.5.4.tgz#3ef7412f7339210f003cdf36646bbca786efe7b4" @@ -1885,6 +1896,39 @@ slash "^3.0.0" strip-ansi "^6.0.0" +"@jest/core@^26.1.0": + version "26.1.0" + resolved "https://registry.yarnpkg.com/@jest/core/-/core-26.1.0.tgz#4580555b522de412a7998b3938c851e4f9da1c18" + integrity sha512-zyizYmDJOOVke4OO/De//aiv8b07OwZzL2cfsvWF3q9YssfpcKfcnZAwDY8f+A76xXSMMYe8i/f/LPocLlByfw== + dependencies: + "@jest/console" "^26.1.0" + "@jest/reporters" "^26.1.0" + "@jest/test-result" "^26.1.0" + "@jest/transform" "^26.1.0" + "@jest/types" "^26.1.0" + ansi-escapes "^4.2.1" + chalk "^4.0.0" + exit "^0.1.2" + graceful-fs "^4.2.4" + jest-changed-files "^26.1.0" + jest-config "^26.1.0" + jest-haste-map "^26.1.0" + jest-message-util "^26.1.0" + jest-regex-util "^26.0.0" + jest-resolve "^26.1.0" + jest-resolve-dependencies "^26.1.0" + jest-runner "^26.1.0" + jest-runtime "^26.1.0" + jest-snapshot "^26.1.0" + jest-util "^26.1.0" + jest-validate "^26.1.0" + jest-watcher "^26.1.0" + micromatch "^4.0.2" + p-each-series "^2.1.0" + rimraf "^3.0.0" + slash "^3.0.0" + strip-ansi "^6.0.0" + "@jest/environment@^25.5.0": version "25.5.0" resolved "https://registry.yarnpkg.com/@jest/environment/-/environment-25.5.0.tgz#aa33b0c21a716c65686638e7ef816c0e3a0c7b37" @@ -1894,6 +1938,15 @@ "@jest/types" "^25.5.0" jest-mock "^25.5.0" +"@jest/environment@^26.1.0": + version "26.1.0" + resolved "https://registry.yarnpkg.com/@jest/environment/-/environment-26.1.0.tgz#378853bcdd1c2443b4555ab908cfbabb851e96da" + integrity sha512-86+DNcGongbX7ai/KE/S3/NcUVZfrwvFzOOWX/W+OOTvTds7j07LtC+MgGydH5c8Ri3uIrvdmVgd1xFD5zt/xA== + dependencies: + "@jest/fake-timers" "^26.1.0" + "@jest/types" "^26.1.0" + jest-mock "^26.1.0" + "@jest/fake-timers@^25.5.0": version "25.5.0" resolved "https://registry.yarnpkg.com/@jest/fake-timers/-/fake-timers-25.5.0.tgz#46352e00533c024c90c2bc2ad9f2959f7f114185" @@ -1905,6 +1958,17 @@ jest-util "^25.5.0" lolex "^5.0.0" +"@jest/fake-timers@^26.1.0": + version "26.1.0" + resolved "https://registry.yarnpkg.com/@jest/fake-timers/-/fake-timers-26.1.0.tgz#9a76b7a94c351cdbc0ad53e5a748789f819a65fe" + integrity sha512-Y5F3kBVWxhau3TJ825iuWy++BAuQzK/xEa+wD9vDH3RytW9f2DbMVodfUQC54rZDX3POqdxCgcKdgcOL0rYUpA== + dependencies: + "@jest/types" "^26.1.0" + "@sinonjs/fake-timers" "^6.0.1" + jest-message-util "^26.1.0" + jest-mock "^26.1.0" + jest-util "^26.1.0" + "@jest/globals@^25.5.2": version "25.5.2" resolved "https://registry.yarnpkg.com/@jest/globals/-/globals-25.5.2.tgz#5e45e9de8d228716af3257eeb3991cc2e162ca88" @@ -1914,6 +1978,15 @@ "@jest/types" "^25.5.0" expect "^25.5.0" +"@jest/globals@^26.1.0": + version "26.1.0" + resolved "https://registry.yarnpkg.com/@jest/globals/-/globals-26.1.0.tgz#6cc5d7cbb79b76b120f2403d7d755693cf063ab1" + integrity sha512-MKiHPNaT+ZoG85oMaYUmGHEqu98y3WO2yeIDJrs2sJqHhYOy3Z6F7F/luzFomRQ8SQ1wEkmahFAz2291Iv8EAw== + dependencies: + "@jest/environment" "^26.1.0" + "@jest/types" "^26.1.0" + expect "^26.1.0" + "@jest/reporters@^25.5.1": version "25.5.1" resolved "https://registry.yarnpkg.com/@jest/reporters/-/reporters-25.5.1.tgz#cb686bcc680f664c2dbaf7ed873e93aa6811538b" @@ -1946,6 +2019,38 @@ optionalDependencies: node-notifier "^6.0.0" +"@jest/reporters@^26.1.0": + version "26.1.0" + resolved "https://registry.yarnpkg.com/@jest/reporters/-/reporters-26.1.0.tgz#08952e90c90282e14ff49e927bdf1873617dae78" + integrity sha512-SVAysur9FOIojJbF4wLP0TybmqwDkdnFxHSPzHMMIYyBtldCW9gG+Q5xWjpMFyErDiwlRuPyMSJSU64A67Pazg== + dependencies: + "@bcoe/v8-coverage" "^0.2.3" + "@jest/console" "^26.1.0" + "@jest/test-result" "^26.1.0" + "@jest/transform" "^26.1.0" + "@jest/types" "^26.1.0" + chalk "^4.0.0" + collect-v8-coverage "^1.0.0" + exit "^0.1.2" + glob "^7.1.2" + graceful-fs "^4.2.4" + istanbul-lib-coverage "^3.0.0" + istanbul-lib-instrument "^4.0.3" + istanbul-lib-report "^3.0.0" + istanbul-lib-source-maps "^4.0.0" + istanbul-reports "^3.0.2" + jest-haste-map "^26.1.0" + jest-resolve "^26.1.0" + jest-util "^26.1.0" + jest-worker "^26.1.0" + slash "^3.0.0" + source-map "^0.6.0" + string-length "^4.0.1" + terminal-link "^2.0.0" + v8-to-istanbul "^4.1.3" + optionalDependencies: + node-notifier "^7.0.0" + "@jest/source-map@^25.5.0": version "25.5.0" resolved "https://registry.yarnpkg.com/@jest/source-map/-/source-map-25.5.0.tgz#df5c20d6050aa292c2c6d3f0d2c7606af315bd1b" @@ -1955,6 +2060,15 @@ graceful-fs "^4.2.4" source-map "^0.6.0" +"@jest/source-map@^26.1.0": + version "26.1.0" + resolved "https://registry.yarnpkg.com/@jest/source-map/-/source-map-26.1.0.tgz#a6a020d00e7d9478f4b690167c5e8b77e63adb26" + integrity sha512-XYRPYx4eEVX15cMT9mstnO7hkHP3krNtKfxUYd8L7gbtia8JvZZ6bMzSwa6IQJENbudTwKMw5R1BePRD+bkEmA== + dependencies: + callsites "^3.0.0" + graceful-fs "^4.2.4" + source-map "^0.6.0" + "@jest/test-result@^25.5.0": version "25.5.0" resolved "https://registry.yarnpkg.com/@jest/test-result/-/test-result-25.5.0.tgz#139a043230cdeffe9ba2d8341b27f2efc77ce87c" @@ -1965,6 +2079,16 @@ "@types/istanbul-lib-coverage" "^2.0.0" collect-v8-coverage "^1.0.0" +"@jest/test-result@^26.1.0": + version "26.1.0" + resolved "https://registry.yarnpkg.com/@jest/test-result/-/test-result-26.1.0.tgz#a93fa15b21ad3c7ceb21c2b4c35be2e407d8e971" + integrity sha512-Xz44mhXph93EYMA8aYDz+75mFbarTV/d/x0yMdI3tfSRs/vh4CqSxgzVmCps1fPkHDCtn0tU8IH9iCKgGeGpfw== + dependencies: + "@jest/console" "^26.1.0" + "@jest/types" "^26.1.0" + "@types/istanbul-lib-coverage" "^2.0.0" + collect-v8-coverage "^1.0.0" + "@jest/test-sequencer@^25.5.4": version "25.5.4" resolved "https://registry.yarnpkg.com/@jest/test-sequencer/-/test-sequencer-25.5.4.tgz#9b4e685b36954c38d0f052e596d28161bdc8b737" @@ -1976,6 +2100,17 @@ jest-runner "^25.5.4" jest-runtime "^25.5.4" +"@jest/test-sequencer@^26.1.0": + version "26.1.0" + resolved "https://registry.yarnpkg.com/@jest/test-sequencer/-/test-sequencer-26.1.0.tgz#41a6fc8b850c3f33f48288ea9ea517c047e7f14e" + integrity sha512-Z/hcK+rTq56E6sBwMoQhSRDVjqrGtj1y14e2bIgcowARaIE1SgOanwx6gvY4Q9gTKMoZQXbXvptji+q5GYxa6Q== + dependencies: + "@jest/test-result" "^26.1.0" + graceful-fs "^4.2.4" + jest-haste-map "^26.1.0" + jest-runner "^26.1.0" + jest-runtime "^26.1.0" + "@jest/transform@^25.5.1": version "25.5.1" resolved "https://registry.yarnpkg.com/@jest/transform/-/transform-25.5.1.tgz#0469ddc17699dd2bf985db55fa0fb9309f5c2db3" @@ -1998,6 +2133,27 @@ source-map "^0.6.1" write-file-atomic "^3.0.0" +"@jest/transform@^26.1.0": + version "26.1.0" + resolved "https://registry.yarnpkg.com/@jest/transform/-/transform-26.1.0.tgz#697f48898c2a2787c9b4cb71d09d7e617464e509" + integrity sha512-ICPm6sUXmZJieq45ix28k0s+d/z2E8CHDsq+WwtWI6kW8m7I8kPqarSEcUN86entHQ570ZBRci5OWaKL0wlAWw== + dependencies: + "@babel/core" "^7.1.0" + "@jest/types" "^26.1.0" + babel-plugin-istanbul "^6.0.0" + chalk "^4.0.0" + convert-source-map "^1.4.0" + fast-json-stable-stringify "^2.0.0" + graceful-fs "^4.2.4" + jest-haste-map "^26.1.0" + jest-regex-util "^26.0.0" + jest-util "^26.1.0" + micromatch "^4.0.2" + pirates "^4.0.1" + slash "^3.0.0" + source-map "^0.6.1" + write-file-atomic "^3.0.0" + "@jest/types@^25.1.0": version "25.2.3" resolved "https://registry.yarnpkg.com/@jest/types/-/types-25.2.3.tgz#035c4fb94e2da472f359ff9a211915d59987f6b6" @@ -2018,6 +2174,16 @@ "@types/yargs" "^15.0.0" chalk "^3.0.0" +"@jest/types@^26.1.0": + version "26.1.0" + resolved "https://registry.yarnpkg.com/@jest/types/-/types-26.1.0.tgz#f8afaaaeeb23b5cad49dd1f7779689941dcb6057" + integrity sha512-GXigDDsp6ZlNMhXQDeuy/iYCDsRIHJabWtDzvnn36+aqFfG14JmFV0e/iXxY4SP9vbXSiPNOWdehU5MeqrYHBQ== + dependencies: + "@types/istanbul-lib-coverage" "^2.0.0" + "@types/istanbul-reports" "^1.1.1" + "@types/yargs" "^15.0.0" + chalk "^4.0.0" + "@lerna/add@3.21.0": version "3.21.0" resolved "https://registry.yarnpkg.com/@lerna/add/-/add-3.21.0.tgz#27007bde71cc7b0a2969ab3c2f0ae41578b4577b" @@ -2975,7 +3141,7 @@ dependencies: type-detect "4.0.8" -"@sinonjs/fake-timers@^6.0.0": +"@sinonjs/fake-timers@^6.0.0", "@sinonjs/fake-timers@^6.0.1": version "6.0.1" resolved "https://registry.yarnpkg.com/@sinonjs/fake-timers/-/fake-timers-6.0.1.tgz#293674fccb3262ac782c7aadfdeca86b10c75c40" integrity sha512-MZPUxrmFubI36XS1DI3qmI0YdN1gks62JtFZvxR67ljjSNCeK6U08Zx4msEWOXuofgqUt6zPHSi1H9fbjR/NRA== @@ -3699,6 +3865,17 @@ resolved "https://registry.yarnpkg.com/@types/anymatch/-/anymatch-1.3.1.tgz#336badc1beecb9dacc38bea2cf32adf627a8421a" integrity sha512-/+CRPXpBDpo2RK9C68N3b2cOvO0Cf5B9aPijHsoDQTHivnGSObdOF2BRQOYjojWTDy6nQvMjmqRXIxH55VjxxA== +"@types/babel__core@^7.0.0": + version "7.1.9" + resolved "https://registry.yarnpkg.com/@types/babel__core/-/babel__core-7.1.9.tgz#77e59d438522a6fb898fa43dc3455c6e72f3963d" + integrity sha512-sY2RsIJ5rpER1u3/aQ8OFSI7qGIy8o1NEEbgb2UaJcvOtXOMpd39ko723NBpjQFg9SIX7TXtjejZVGeIMLhoOw== + dependencies: + "@babel/parser" "^7.1.0" + "@babel/types" "^7.0.0" + "@types/babel__generator" "*" + "@types/babel__template" "*" + "@types/babel__traverse" "*" + "@types/babel__core@^7.1.6", "@types/babel__core@^7.1.7": version "7.1.7" resolved "https://registry.yarnpkg.com/@types/babel__core/-/babel__core-7.1.7.tgz#1dacad8840364a57c98d0dd4855c6dd3752c6b89" @@ -3839,6 +4016,13 @@ resolved "https://registry.yarnpkg.com/@types/debug/-/debug-4.1.5.tgz#b14efa8852b7768d898906613c23f688713e02cd" integrity sha512-Q1y515GcOdTHgagaVFhHnIFQ38ygs/kmxdNpvpou+raI9UO3YZcHDngBSYKQklcKlvA7iuQlmIKbzvmxcOE9CQ== +"@types/echarts@^4.6.3": + version "4.6.3" + resolved "https://registry.yarnpkg.com/@types/echarts/-/echarts-4.6.3.tgz#227b33b106203ceb2ca4fa51760f406618caa89a" + integrity sha512-XsDsLtPDxSGPqcHvVEbH+z5r9lPiduNOf4aL3NjGprQ/4SliDiTS7DErimHpVdiEOoVFzwjn2usvgLOb1JqOJA== + dependencies: + "@types/zrender" "*" + "@types/enzyme@^3.10.3": version "3.10.5" resolved "https://registry.yarnpkg.com/@types/enzyme/-/enzyme-3.10.5.tgz#fe7eeba3550369eed20e7fb565bfb74eec44f1f0" @@ -3923,7 +4107,7 @@ "@types/istanbul-lib-coverage" "*" "@types/istanbul-lib-report" "*" -"@types/jest@^26.0.4": +"@types/jest@^26.0.0", "@types/jest@^26.0.4": version "26.0.4" resolved "https://registry.yarnpkg.com/@types/jest/-/jest-26.0.4.tgz#d2e513e85aca16992816f192582b5e67b0b15efb" integrity sha512-4fQNItvelbNA9+sFgU+fhJo8ZFF+AS4Egk3GWwCW2jFtViukXbnztccafAdLhzE/0EiCogljtQQXP8aQ9J7sFg== @@ -3992,6 +4176,11 @@ resolved "https://registry.yarnpkg.com/@types/prettier/-/prettier-1.19.1.tgz#33509849f8e679e4add158959fdb086440e9553f" integrity sha512-5qOlnZscTn4xxM5MeGXAMOsIOIKIbh9e85zJWfBRVPlRMEVawzoPhINYbRGkBZCI8LxvBe7tJCdWiarA99OZfQ== +"@types/prettier@^2.0.0": + version "2.0.2" + resolved "https://registry.yarnpkg.com/@types/prettier/-/prettier-2.0.2.tgz#5bb52ee68d0f8efa9cc0099920e56be6cc4e37f3" + integrity sha512-IkVfat549ggtkZUthUzEX49562eGikhSYeVGX97SkMFn+sTZrgRewXjQ4tPKFPCykZHkX1Zfd9OoELGqKU2jJA== + "@types/prop-types@*": version "15.7.3" resolved "https://registry.yarnpkg.com/@types/prop-types/-/prop-types-15.7.3.tgz#2ab0d5da2e5815f94b0b9d4b95d1e5f243ab2ca7" @@ -4174,6 +4363,11 @@ dependencies: "@types/yargs-parser" "*" +"@types/zrender@*": + version "4.0.0" + resolved "https://registry.yarnpkg.com/@types/zrender/-/zrender-4.0.0.tgz#a6806f12ec4eccaaebd9b0d816f049aca6188fbd" + integrity sha512-s89GOIeKFiod2KSqHkfd2rzx+T2DVu7ihZCBEBnhFrzvQPUmzvDSBot9Fi1DfMQm9Odg+rTqoMGC38RvrwJK2w== + "@typescript-eslint/eslint-plugin@^2.25.0": version "2.26.0" resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-2.26.0.tgz#04c96560c8981421e5a9caad8394192363cc423f" @@ -4979,7 +5173,7 @@ JSONStream@^1.0.4, JSONStream@^1.2.1, JSONStream@^1.3.4, JSONStream@^1.3.5: jsonparse "^1.2.0" through ">=2.2.7 <3" -abab@^2.0.0: +abab@^2.0.0, abab@^2.0.3: version "2.0.3" resolved "https://registry.yarnpkg.com/abab/-/abab-2.0.3.tgz#623e2075e02eb2d3f2475e49f99c91846467907a" integrity sha512-tsFzPpcttalNjFBCFMqsKYQcWxxen1pgJR56by//QwvJc4/OUS3kPOOttx2tSIfjsylB0pYu7f5D3K1RCxUnUg== @@ -5005,6 +5199,14 @@ acorn-globals@^4.3.2: acorn "^6.0.1" acorn-walk "^6.0.1" +acorn-globals@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/acorn-globals/-/acorn-globals-6.0.0.tgz#46cdd39f0f8ff08a876619b55f5ac8a6dc770b45" + integrity sha512-ZQl7LOWaF5ePqqcX4hLuv/bLXYQNfNWw2c0/yX/TsPRKamzHcTGQnlCjHT3TsmkOUVEPS3crCxiPfdzE/Trlhg== + dependencies: + acorn "^7.1.1" + acorn-walk "^7.1.1" + acorn-jsx@^5.2.0: version "5.2.0" resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.2.0.tgz#4c66069173d6fdd68ed85239fc256226182b2ebe" @@ -5015,6 +5217,11 @@ acorn-walk@^6.0.1: resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-6.2.0.tgz#123cb8f3b84c2171f1f7fb252615b1c78a6b1a8c" integrity sha512-7evsyfH1cLOCdAzZAd43Cic04yKydNx0cF+7tiA19p1XnLLPU4dpCQOqpjqwokFe//vS0QqfqqjCS2JkiIs0cA== +acorn-walk@^7.1.1: + version "7.2.0" + resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-7.2.0.tgz#0de889a601203909b0fbe07b8938dc21d2e967bc" + integrity sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA== + acorn@^6.0.1, acorn@^6.2.1: version "6.4.1" resolved "https://registry.yarnpkg.com/acorn/-/acorn-6.4.1.tgz#531e58ba3f51b9dacb9a6646ca4debf5b14ca474" @@ -5610,6 +5817,20 @@ babel-jest@^25.5.1: graceful-fs "^4.2.4" slash "^3.0.0" +babel-jest@^26.1.0: + version "26.1.0" + resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-26.1.0.tgz#b20751185fc7569a0f135730584044d1cb934328" + integrity sha512-Nkqgtfe7j6PxLO6TnCQQlkMm8wdTdnIF8xrdpooHCuD5hXRzVEPbPneTJKknH5Dsv3L8ip9unHDAp48YQ54Dkg== + dependencies: + "@jest/transform" "^26.1.0" + "@jest/types" "^26.1.0" + "@types/babel__core" "^7.1.7" + babel-plugin-istanbul "^6.0.0" + babel-preset-jest "^26.1.0" + chalk "^4.0.0" + graceful-fs "^4.2.4" + slash "^3.0.0" + babel-literal-to-ast@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/babel-literal-to-ast/-/babel-literal-to-ast-2.1.0.tgz#c8b12f9c36a8cee13572d65aabf6cff8adb1e8b3" @@ -5687,6 +5908,16 @@ babel-plugin-jest-hoist@^25.5.0: "@babel/types" "^7.3.3" "@types/babel__traverse" "^7.0.6" +babel-plugin-jest-hoist@^26.1.0: + version "26.1.0" + resolved "https://registry.yarnpkg.com/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-26.1.0.tgz#c6a774da08247a28285620a64dfadbd05dd5233a" + integrity sha512-qhqLVkkSlqmC83bdMhM8WW4Z9tB+JkjqAqlbbohS9sJLT5Ha2vfzuKqg5yenXrAjOPG2YC0WiXdH3a9PvB+YYw== + dependencies: + "@babel/template" "^7.3.3" + "@babel/types" "^7.3.3" + "@types/babel__core" "^7.0.0" + "@types/babel__traverse" "^7.0.6" + babel-plugin-lodash@^3.3.2: version "3.3.4" resolved "https://registry.yarnpkg.com/babel-plugin-lodash/-/babel-plugin-lodash-3.3.4.tgz#4f6844358a1340baed182adbeffa8df9967bc196" @@ -5913,6 +6144,14 @@ babel-preset-jest@^25.5.0: babel-plugin-jest-hoist "^25.5.0" babel-preset-current-node-syntax "^0.1.2" +babel-preset-jest@^26.1.0: + version "26.1.0" + resolved "https://registry.yarnpkg.com/babel-preset-jest/-/babel-preset-jest-26.1.0.tgz#612f714e5b457394acfd863793c564cbcdb7d1c1" + integrity sha512-na9qCqFksknlEj5iSdw1ehMVR06LCCTkZLGKeEtxDDdhg8xpUF09m29Kvh1pRbZ07h7AQ5ttLYUwpXL4tO6w7w== + dependencies: + babel-plugin-jest-hoist "^26.1.0" + babel-preset-current-node-syntax "^0.1.2" + "babel-preset-minify@^0.5.0 || 0.6.0-alpha.5": version "0.5.1" resolved "https://registry.yarnpkg.com/babel-preset-minify/-/babel-preset-minify-0.5.1.tgz#25f5d0bce36ec818be80338d0e594106e21eaa9f" @@ -6428,6 +6667,11 @@ camelcase@^5.0.0, camelcase@^5.3.1: resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-5.3.1.tgz#e3c9b31569e106811df242f715725a1f4c494320" integrity sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg== +camelcase@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-6.0.0.tgz#5259f7c30e35e278f1bdc2a4d91230b37cad981e" + integrity sha512-8KMDF1Vz2gzOq54ONPJS65IvTUaB1cHJ2DMM7MbPmLZljDH1qpzzLsWdiN9pHh6qvkRVDTi/07+eNGch/oLU4w== + can-use-dom@^0.1.0: version "0.1.0" resolved "https://registry.yarnpkg.com/can-use-dom/-/can-use-dom-0.1.0.tgz#22cc4a34a0abc43950f42c6411024a3f6366b45a" @@ -6542,6 +6786,11 @@ change-emitter@^0.1.2: resolved "https://registry.yarnpkg.com/change-emitter/-/change-emitter-0.1.6.tgz#e8b2fe3d7f1ab7d69a32199aff91ea6931409515" integrity sha1-6LL+PX8at9aaMhma/5HqaTFAlRU= +char-regex@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/char-regex/-/char-regex-1.0.2.tgz#d744358226217f981ed58f479b1d6bcc29545dcf" + integrity sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw== + character-entities-legacy@^1.0.0: version "1.1.4" resolved "https://registry.yarnpkg.com/character-entities-legacy/-/character-entities-legacy-1.1.4.tgz#94bc1845dce70a5bb9d2ecc748725661293d8fc1" @@ -7533,7 +7782,7 @@ csso@^4.0.2: dependencies: css-tree "1.0.0-alpha.39" -cssom@^0.4.1: +cssom@^0.4.1, cssom@^0.4.4: version "0.4.4" resolved "https://registry.yarnpkg.com/cssom/-/cssom-0.4.4.tgz#5a66cf93d2d0b661d80bf6a44fb65f5c2e4e0a10" integrity sha512-p3pvU7r1MyyqbTk+WbNJIgJjG2VmTIaB10rI93LzVPrmDJKkzKYMtxxyAvQXR/NS6otuzveI7+7BBq3SjBS2mw== @@ -7550,6 +7799,13 @@ cssstyle@^2.0.0: dependencies: cssom "~0.3.6" +cssstyle@^2.2.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/cssstyle/-/cssstyle-2.3.0.tgz#ff665a0ddbdc31864b09647f34163443d90b0852" + integrity sha512-AZL67abkUzIuvcHqk7c09cezpGNcxUxU4Ioi/05xHk4DQeTkWmGYftIE6ctU6AEt+Gn4n1lDStOtj7FKycP71A== + dependencies: + cssom "~0.3.6" + csstype@^2.2.0, csstype@^2.5.7, csstype@^2.6.3, csstype@^2.6.4, csstype@^2.6.7: version "2.6.10" resolved "https://registry.yarnpkg.com/csstype/-/csstype-2.6.10.tgz#e63af50e66d7c266edb6b32909cfd0aabe03928b" @@ -7876,6 +8132,15 @@ data-urls@^1.1.0: whatwg-mimetype "^2.2.0" whatwg-url "^7.0.0" +data-urls@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/data-urls/-/data-urls-2.0.0.tgz#156485a72963a970f5d5821aaf642bef2bf2db9b" + integrity sha512-X5eWTSXO/BJmpdIKCRuKUgSCgAN0OwliVK3yPKbwIWU1Tdw5BRajxlzMidvh+gwko9AfQ9zIj52pzF91Q3YAvQ== + dependencies: + abab "^2.0.3" + whatwg-mimetype "^2.3.0" + whatwg-url "^8.0.0" + datamaps@^0.5.8: version "0.5.9" resolved "https://registry.yarnpkg.com/datamaps/-/datamaps-0.5.9.tgz#2a775473aaab29b55025208b2245e840ecfd4fe1" @@ -7956,6 +8221,11 @@ decimal.js@9.0.1: resolved "https://registry.yarnpkg.com/decimal.js/-/decimal.js-9.0.1.tgz#1cc8b228177da7ab6498c1cc06eb130a290e6e1e" integrity sha512-2h0iKbJwnImBk4TGk7CG1xadoA0g3LDPlQhQzbZ221zvG0p2YVUedbKIPsOZXKZGx6YmZMJKYOalpCMxSdDqTQ== +decimal.js@^10.2.0: + version "10.2.0" + resolved "https://registry.yarnpkg.com/decimal.js/-/decimal.js-10.2.0.tgz#39466113a9e036111d02f82489b5fd6b0b5ed231" + integrity sha512-vDPw+rDgn3bZe1+F/pyEwb1oMG2XTlRVgAa6B4KccTEpYgF8w6eQllVbQcfIJnZyvzFtFpxnpGtx8dd7DJp/Rw== + decode-uri-component@^0.2.0: version "0.2.0" resolved "https://registry.yarnpkg.com/decode-uri-component/-/decode-uri-component-0.2.0.tgz#eb3913333458775cb84cd1a1fae062106bb87545" @@ -8131,6 +8401,11 @@ diff-sequences@^25.2.6: resolved "https://registry.yarnpkg.com/diff-sequences/-/diff-sequences-25.2.6.tgz#5f467c00edd35352b7bca46d7927d60e687a76dd" integrity sha512-Hq8o7+6GaZeoFjtpgvRBUknSXNeJiCx7V9Fr94ZMljNiCr9n9L8H8aJqgWOQiDDGdyn29fRNcDdRVJ5fdyihfg== +diff-sequences@^26.0.0: + version "26.0.0" + resolved "https://registry.yarnpkg.com/diff-sequences/-/diff-sequences-26.0.0.tgz#0760059a5c287637b842bd7085311db7060e88a6" + integrity sha512-JC/eHYEC3aSS0vZGjuoc4vHA0yAQTzhQQldXMeMF+JlxLGJlCO38Gma82NV9gk1jGFz8mDzUMeaKXvjRRdJ2dg== + diff@^3.5.0: version "3.5.0" resolved "https://registry.yarnpkg.com/diff/-/diff-3.5.0.tgz#800c0dd1e0a8bfbc95835c202ad220fe317e5a12" @@ -8269,6 +8544,13 @@ domexception@^1.0.1: dependencies: webidl-conversions "^4.0.2" +domexception@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/domexception/-/domexception-2.0.1.tgz#fb44aefba793e1574b0af6aed2801d057529f304" + integrity sha512-yxJ2mFy/sibVQlu5qHjOkf9J3K6zgmCxgJ94u2EdvDOV09H+32LtRswEcUsmUWN72pVLOEnTSRaIVVzVQgS0dg== + dependencies: + webidl-conversions "^5.0.0" + domhandler@^2.3.0: version "2.4.2" resolved "https://registry.yarnpkg.com/domhandler/-/domhandler-2.4.2.tgz#8805097e933d65e85546f726d60f5eb88b44f803" @@ -8404,6 +8686,13 @@ ecc-jsbn@~0.1.1: jsbn "~0.1.0" safer-buffer "^2.1.0" +echarts@^4.9.0: + version "4.9.0" + resolved "https://registry.yarnpkg.com/echarts/-/echarts-4.9.0.tgz#a9b9baa03f03a2a731e6340c55befb57a9e1347d" + integrity sha512-+ugizgtJ+KmsJyyDPxaw2Br5FqzuBnyOWwcxPKO6y0gc5caYcfnEUIlNStx02necw8jmKmTafmpHhGo4XDtEIA== + dependencies: + zrender "4.3.2" + edit-json-file@^1.4.0: version "1.4.0" resolved "https://registry.yarnpkg.com/edit-json-file/-/edit-json-file-1.4.0.tgz#bb244abf7fc47a23f3dfb7c106a80f2ef83c39c3" @@ -8786,6 +9075,11 @@ escape-string-regexp@1.0.5, escape-string-regexp@^1.0.2, escape-string-regexp@^1 resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" integrity sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ= +escape-string-regexp@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz#a30304e99daa32e23b2fd20f51babd07cffca344" + integrity sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w== + escodegen@^1.11.1: version "1.14.1" resolved "https://registry.yarnpkg.com/escodegen/-/escodegen-1.14.1.tgz#ba01d0c8278b5e95a9a45350142026659027a457" @@ -8798,6 +9092,18 @@ escodegen@^1.11.1: optionalDependencies: source-map "~0.6.1" +escodegen@^1.14.1: + version "1.14.3" + resolved "https://registry.yarnpkg.com/escodegen/-/escodegen-1.14.3.tgz#4e7b81fba61581dc97582ed78cab7f0e8d63f503" + integrity sha512-qFcX0XJkdg+PB3xjZZG/wKSuT1PnQWx57+TVSjIMmILd2yC/6ByYElPwJnslDsuWuSAp4AwJGumarAAmJch5Kw== + dependencies: + esprima "^4.0.1" + estraverse "^4.2.0" + esutils "^2.0.2" + optionator "^0.8.1" + optionalDependencies: + source-map "~0.6.1" + escodegen@~1.9.0: version "1.9.1" resolved "https://registry.yarnpkg.com/escodegen/-/escodegen-1.9.1.tgz#dbae17ef96c8e4bedb1356f4504fa4cc2f7cb7e2" @@ -9222,6 +9528,18 @@ expect@^25.5.0: jest-message-util "^25.5.0" jest-regex-util "^25.2.6" +expect@^26.1.0: + version "26.1.0" + resolved "https://registry.yarnpkg.com/expect/-/expect-26.1.0.tgz#8c62e31d0f8d5a8ebb186ee81473d15dd2fbf7c8" + integrity sha512-QbH4LZXDsno9AACrN9eM0zfnby9G+OsdNgZUohjg/P0mLy1O+/bzTAJGT6VSIjVCe8yKM6SzEl/ckEOFBT7Vnw== + dependencies: + "@jest/types" "^26.1.0" + ansi-styles "^4.0.0" + jest-get-type "^26.0.0" + jest-matcher-utils "^26.1.0" + jest-message-util "^26.1.0" + jest-regex-util "^26.0.0" + express@^4.17.0: version "4.17.1" resolved "https://registry.yarnpkg.com/express/-/express-4.17.1.tgz#4491fc38605cf51f8629d39c2b5d026f98a4c134" @@ -10565,6 +10883,13 @@ html-encoding-sniffer@^1.0.2: dependencies: whatwg-encoding "^1.0.1" +html-encoding-sniffer@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/html-encoding-sniffer/-/html-encoding-sniffer-2.0.1.tgz#42a6dc4fd33f00281176e8b23759ca4e4fa185f3" + integrity sha512-D5JbOMBIR/TVZkubHT+OyT2705QvogUW4IBn6nHd756OwieSF9aDYFj4dv6HHEVGYbHaLETa3WggZYWWMyy3ZQ== + dependencies: + whatwg-encoding "^1.0.5" + html-entities@^1.2.0: version "1.2.1" resolved "https://registry.yarnpkg.com/html-entities/-/html-entities-1.2.1.tgz#0df29351f0721163515dfb9e5543e5f6eed5162f" @@ -11341,6 +11666,11 @@ is-plain-object@^2.0.1, is-plain-object@^2.0.3, is-plain-object@^2.0.4: dependencies: isobject "^3.0.1" +is-potential-custom-element-name@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.0.tgz#0c52e54bcca391bb2c494b21e8626d7336c6e397" + integrity sha1-DFLlS8yjkbssSUsh6GJtczbG45c= + is-promise@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/is-promise/-/is-promise-2.1.0.tgz#79a2a9ece7f096e80f36d2b2f3bc16c1ff4bf3fa" @@ -11536,6 +11866,16 @@ istanbul-lib-instrument@^4.0.0: istanbul-lib-coverage "^3.0.0" semver "^6.3.0" +istanbul-lib-instrument@^4.0.3: + version "4.0.3" + resolved "https://registry.yarnpkg.com/istanbul-lib-instrument/-/istanbul-lib-instrument-4.0.3.tgz#873c6fff897450118222774696a3f28902d77c1d" + integrity sha512-BXgQl9kf4WTCPCCpmFGoJkz/+uhvm7h7PFKUYxh7qarQd3ER33vHG//qaE8eN25l07YqZPpHXU9I09l/RD5aGQ== + dependencies: + "@babel/core" "^7.7.5" + "@istanbuljs/schema" "^0.1.2" + istanbul-lib-coverage "^3.0.0" + semver "^6.3.0" + istanbul-lib-report@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz#7518fe52ea44de372f460a76b5ecda9ffb73d8a6" @@ -11613,6 +11953,15 @@ jest-changed-files@^25.5.0: execa "^3.2.0" throat "^5.0.0" +jest-changed-files@^26.1.0: + version "26.1.0" + resolved "https://registry.yarnpkg.com/jest-changed-files/-/jest-changed-files-26.1.0.tgz#de66b0f30453bca2aff98e9400f75905da495305" + integrity sha512-HS5MIJp3B8t0NRKGMCZkcDUZo36mVRvrDETl81aqljT1S9tqiHRSpyoOvWg9ZilzZG9TDisDNaN1IXm54fLRZw== + dependencies: + "@jest/types" "^26.1.0" + execa "^4.0.0" + throat "^5.0.0" + jest-cli@^25.5.4: version "25.5.4" resolved "https://registry.yarnpkg.com/jest-cli/-/jest-cli-25.5.4.tgz#b9f1a84d1301a92c5c217684cb79840831db9f0d" @@ -11633,6 +11982,25 @@ jest-cli@^25.5.4: realpath-native "^2.0.0" yargs "^15.3.1" +jest-cli@^26.1.0: + version "26.1.0" + resolved "https://registry.yarnpkg.com/jest-cli/-/jest-cli-26.1.0.tgz#eb9ec8a18cf3b6aa556d9deaa9e24be12b43ad87" + integrity sha512-Imumvjgi3rU7stq6SJ1JUEMaV5aAgJYXIs0jPqdUnF47N/Tk83EXfmtvNKQ+SnFVI6t6mDOvfM3aA9Sg6kQPSw== + dependencies: + "@jest/core" "^26.1.0" + "@jest/test-result" "^26.1.0" + "@jest/types" "^26.1.0" + chalk "^4.0.0" + exit "^0.1.2" + graceful-fs "^4.2.4" + import-local "^3.0.2" + is-ci "^2.0.0" + jest-config "^26.1.0" + jest-util "^26.1.0" + jest-validate "^26.1.0" + prompts "^2.0.1" + yargs "^15.3.1" + jest-config@^25.5.4: version "25.5.4" resolved "https://registry.yarnpkg.com/jest-config/-/jest-config-25.5.4.tgz#38e2057b3f976ef7309b2b2c8dcd2a708a67f02c" @@ -11658,7 +12026,41 @@ jest-config@^25.5.4: pretty-format "^25.5.0" realpath-native "^2.0.0" -jest-diff@^25.2.1, jest-diff@^25.5.0: +jest-config@^26.1.0: + version "26.1.0" + resolved "https://registry.yarnpkg.com/jest-config/-/jest-config-26.1.0.tgz#9074f7539acc185e0113ad6d22ed589c16a37a73" + integrity sha512-ONTGeoMbAwGCdq4WuKkMcdMoyfs5CLzHEkzFOlVvcDXufZSaIWh/OXMLa2fwKXiOaFcqEw8qFr4VOKJQfn4CVw== + dependencies: + "@babel/core" "^7.1.0" + "@jest/test-sequencer" "^26.1.0" + "@jest/types" "^26.1.0" + babel-jest "^26.1.0" + chalk "^4.0.0" + deepmerge "^4.2.2" + glob "^7.1.1" + graceful-fs "^4.2.4" + jest-environment-jsdom "^26.1.0" + jest-environment-node "^26.1.0" + jest-get-type "^26.0.0" + jest-jasmine2 "^26.1.0" + jest-regex-util "^26.0.0" + jest-resolve "^26.1.0" + jest-util "^26.1.0" + jest-validate "^26.1.0" + micromatch "^4.0.2" + pretty-format "^26.1.0" + +jest-diff@^25.2.1: + version "25.2.6" + resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-25.2.6.tgz#a6d70a9ab74507715ea1092ac513d1ab81c1b5e7" + integrity sha512-KuadXImtRghTFga+/adnNrv9s61HudRMR7gVSbP35UKZdn4IK2/0N0PpGZIqtmllK9aUyye54I3nu28OYSnqOg== + dependencies: + chalk "^3.0.0" + diff-sequences "^25.2.6" + jest-get-type "^25.2.6" + pretty-format "^25.2.6" + +jest-diff@^25.5.0: version "25.5.0" resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-25.5.0.tgz#1dd26ed64f96667c068cef026b677dfa01afcfa9" integrity sha512-z1kygetuPiREYdNIumRpAHY6RXiGmp70YHptjdaxTWGmA085W3iCnXNx0DhflK3vwrKmrRWyY1wUpkPMVxMK7A== @@ -11668,6 +12070,16 @@ jest-diff@^25.2.1, jest-diff@^25.5.0: jest-get-type "^25.2.6" pretty-format "^25.5.0" +jest-diff@^26.1.0: + version "26.1.0" + resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-26.1.0.tgz#00a549bdc936c9691eb4dc25d1fbd78bf456abb2" + integrity sha512-GZpIcom339y0OXznsEKjtkfKxNdg7bVbEofK8Q6MnevTIiR1jNhDWKhRX6X0SDXJlwn3dy59nZ1z55fLkAqPWg== + dependencies: + chalk "^4.0.0" + diff-sequences "^26.0.0" + jest-get-type "^26.0.0" + pretty-format "^26.1.0" + jest-docblock@^25.3.0: version "25.3.0" resolved "https://registry.yarnpkg.com/jest-docblock/-/jest-docblock-25.3.0.tgz#8b777a27e3477cd77a168c05290c471a575623ef" @@ -11675,6 +12087,13 @@ jest-docblock@^25.3.0: dependencies: detect-newline "^3.0.0" +jest-docblock@^26.0.0: + version "26.0.0" + resolved "https://registry.yarnpkg.com/jest-docblock/-/jest-docblock-26.0.0.tgz#3e2fa20899fc928cb13bd0ff68bd3711a36889b5" + integrity sha512-RDZ4Iz3QbtRWycd8bUEPxQsTlYazfYn/h5R65Fc6gOfwozFhoImx+affzky/FFBuqISPTqjXomoIGJVKBWoo0w== + dependencies: + detect-newline "^3.0.0" + jest-each@^25.5.0: version "25.5.0" resolved "https://registry.yarnpkg.com/jest-each/-/jest-each-25.5.0.tgz#0c3c2797e8225cb7bec7e4d249dcd96b934be516" @@ -11686,6 +12105,17 @@ jest-each@^25.5.0: jest-util "^25.5.0" pretty-format "^25.5.0" +jest-each@^26.1.0: + version "26.1.0" + resolved "https://registry.yarnpkg.com/jest-each/-/jest-each-26.1.0.tgz#e35449875009a22d74d1bda183b306db20f286f7" + integrity sha512-lYiSo4Igr81q6QRsVQq9LIkJW0hZcKxkIkHzNeTMPENYYDw/W/Raq28iJ0sLlNFYz2qxxeLnc5K2gQoFYlu2bA== + dependencies: + "@jest/types" "^26.1.0" + chalk "^4.0.0" + jest-get-type "^26.0.0" + jest-util "^26.1.0" + pretty-format "^26.1.0" + jest-environment-jsdom@^25.5.0: version "25.5.0" resolved "https://registry.yarnpkg.com/jest-environment-jsdom/-/jest-environment-jsdom-25.5.0.tgz#dcbe4da2ea997707997040ecf6e2560aec4e9834" @@ -11698,6 +12128,18 @@ jest-environment-jsdom@^25.5.0: jest-util "^25.5.0" jsdom "^15.2.1" +jest-environment-jsdom@^26.1.0: + version "26.1.0" + resolved "https://registry.yarnpkg.com/jest-environment-jsdom/-/jest-environment-jsdom-26.1.0.tgz#9dc7313ffe1b59761dad1fedb76e2503e5d37c5b" + integrity sha512-dWfiJ+spunVAwzXbdVqPH1LbuJW/kDL+FyqgA5YzquisHqTi0g9hquKif9xKm7c1bKBj6wbmJuDkeMCnxZEpUw== + dependencies: + "@jest/environment" "^26.1.0" + "@jest/fake-timers" "^26.1.0" + "@jest/types" "^26.1.0" + jest-mock "^26.1.0" + jest-util "^26.1.0" + jsdom "^16.2.2" + jest-environment-node@^25.5.0: version "25.5.0" resolved "https://registry.yarnpkg.com/jest-environment-node/-/jest-environment-node-25.5.0.tgz#0f55270d94804902988e64adca37c6ce0f7d07a1" @@ -11710,11 +12152,27 @@ jest-environment-node@^25.5.0: jest-util "^25.5.0" semver "^6.3.0" +jest-environment-node@^26.1.0: + version "26.1.0" + resolved "https://registry.yarnpkg.com/jest-environment-node/-/jest-environment-node-26.1.0.tgz#8bb387b3eefb132eab7826f9a808e4e05618960b" + integrity sha512-DNm5x1aQH0iRAe9UYAkZenuzuJ69VKzDCAYISFHQ5i9e+2Tbeu2ONGY7YStubCLH8a1wdKBgqScYw85+ySxqxg== + dependencies: + "@jest/environment" "^26.1.0" + "@jest/fake-timers" "^26.1.0" + "@jest/types" "^26.1.0" + jest-mock "^26.1.0" + jest-util "^26.1.0" + jest-get-type@^25.2.6: version "25.2.6" resolved "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-25.2.6.tgz#0b0a32fab8908b44d508be81681487dbabb8d877" integrity sha512-DxjtyzOHjObRM+sM1knti6or+eOgcGU4xVSb2HNP1TqO4ahsT+rqZg+nyqHWJSvWgKC5cG3QjGFBqxLghiF/Ig== +jest-get-type@^26.0.0: + version "26.0.0" + resolved "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-26.0.0.tgz#381e986a718998dbfafcd5ec05934be538db4039" + integrity sha512-zRc1OAPnnws1EVfykXOj19zo2EMw5Hi6HLbFCSjpuJiXtOWAYIjNsHVSbpQ8bDX7L5BGYGI8m+HmKdjHYFF0kg== + jest-haste-map@^25.5.1: version "25.5.1" resolved "https://registry.yarnpkg.com/jest-haste-map/-/jest-haste-map-25.5.1.tgz#1df10f716c1d94e60a1ebf7798c9fb3da2620943" @@ -11735,6 +12193,26 @@ jest-haste-map@^25.5.1: optionalDependencies: fsevents "^2.1.2" +jest-haste-map@^26.1.0: + version "26.1.0" + resolved "https://registry.yarnpkg.com/jest-haste-map/-/jest-haste-map-26.1.0.tgz#ef31209be73f09b0d9445e7d213e1b53d0d1476a" + integrity sha512-WeBS54xCIz9twzkEdm6+vJBXgRBQfdbbXD0dk8lJh7gLihopABlJmIQFdWSDDtuDe4PRiObsjZSUjbJ1uhWEpA== + dependencies: + "@jest/types" "^26.1.0" + "@types/graceful-fs" "^4.1.2" + anymatch "^3.0.3" + fb-watchman "^2.0.0" + graceful-fs "^4.2.4" + jest-serializer "^26.1.0" + jest-util "^26.1.0" + jest-worker "^26.1.0" + micromatch "^4.0.2" + sane "^4.0.3" + walker "^1.0.7" + which "^2.0.2" + optionalDependencies: + fsevents "^2.1.2" + jest-jasmine2@^25.5.4: version "25.5.4" resolved "https://registry.yarnpkg.com/jest-jasmine2/-/jest-jasmine2-25.5.4.tgz#66ca8b328fb1a3c5364816f8958f6970a8526968" @@ -11758,6 +12236,29 @@ jest-jasmine2@^25.5.4: pretty-format "^25.5.0" throat "^5.0.0" +jest-jasmine2@^26.1.0: + version "26.1.0" + resolved "https://registry.yarnpkg.com/jest-jasmine2/-/jest-jasmine2-26.1.0.tgz#4dfe349b2b2d3c6b3a27c024fd4cb57ac0ed4b6f" + integrity sha512-1IPtoDKOAG+MeBrKvvuxxGPJb35MTTRSDglNdWWCndCB3TIVzbLThRBkwH9P081vXLgiJHZY8Bz3yzFS803xqQ== + dependencies: + "@babel/traverse" "^7.1.0" + "@jest/environment" "^26.1.0" + "@jest/source-map" "^26.1.0" + "@jest/test-result" "^26.1.0" + "@jest/types" "^26.1.0" + chalk "^4.0.0" + co "^4.6.0" + expect "^26.1.0" + is-generator-fn "^2.0.0" + jest-each "^26.1.0" + jest-matcher-utils "^26.1.0" + jest-message-util "^26.1.0" + jest-runtime "^26.1.0" + jest-snapshot "^26.1.0" + jest-util "^26.1.0" + pretty-format "^26.1.0" + throat "^5.0.0" + jest-leak-detector@^25.5.0: version "25.5.0" resolved "https://registry.yarnpkg.com/jest-leak-detector/-/jest-leak-detector-25.5.0.tgz#2291c6294b0ce404241bb56fe60e2d0c3e34f0bb" @@ -11766,6 +12267,14 @@ jest-leak-detector@^25.5.0: jest-get-type "^25.2.6" pretty-format "^25.5.0" +jest-leak-detector@^26.1.0: + version "26.1.0" + resolved "https://registry.yarnpkg.com/jest-leak-detector/-/jest-leak-detector-26.1.0.tgz#039c3a07ebcd8adfa984b6ac015752c35792e0a6" + integrity sha512-dsMnKF+4BVOZwvQDlgn3MG+Ns4JuLv8jNvXH56bgqrrboyCbI1rQg6EI5rs+8IYagVcfVP2yZFKfWNZy0rK0Hw== + dependencies: + jest-get-type "^26.0.0" + pretty-format "^26.1.0" + jest-matcher-utils@^25.5.0: version "25.5.0" resolved "https://registry.yarnpkg.com/jest-matcher-utils/-/jest-matcher-utils-25.5.0.tgz#fbc98a12d730e5d2453d7f1ed4a4d948e34b7867" @@ -11776,6 +12285,16 @@ jest-matcher-utils@^25.5.0: jest-get-type "^25.2.6" pretty-format "^25.5.0" +jest-matcher-utils@^26.1.0: + version "26.1.0" + resolved "https://registry.yarnpkg.com/jest-matcher-utils/-/jest-matcher-utils-26.1.0.tgz#cf75a41bd413dda784f022de5a65a2a5c73a5c92" + integrity sha512-PW9JtItbYvES/xLn5mYxjMd+Rk+/kIt88EfH3N7w9KeOrHWaHrdYPnVHndGbsFGRJ2d5gKtwggCvkqbFDoouQA== + dependencies: + chalk "^4.0.0" + jest-diff "^26.1.0" + jest-get-type "^26.0.0" + pretty-format "^26.1.0" + jest-message-util@^25.5.0: version "25.5.0" resolved "https://registry.yarnpkg.com/jest-message-util/-/jest-message-util-25.5.0.tgz#ea11d93204cc7ae97456e1d8716251185b8880ea" @@ -11790,6 +12309,20 @@ jest-message-util@^25.5.0: slash "^3.0.0" stack-utils "^1.0.1" +jest-message-util@^26.1.0: + version "26.1.0" + resolved "https://registry.yarnpkg.com/jest-message-util/-/jest-message-util-26.1.0.tgz#52573fbb8f5cea443c4d1747804d7a238a3e233c" + integrity sha512-dY0+UlldiAJwNDJ08SF0HdF32g9PkbF2NRK/+2iMPU40O6q+iSn1lgog/u0UH8ksWoPv0+gNq8cjhYO2MFtT0g== + dependencies: + "@babel/code-frame" "^7.0.0" + "@jest/types" "^26.1.0" + "@types/stack-utils" "^1.0.1" + chalk "^4.0.0" + graceful-fs "^4.2.4" + micromatch "^4.0.2" + slash "^3.0.0" + stack-utils "^2.0.2" + jest-mock-console@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/jest-mock-console/-/jest-mock-console-1.0.1.tgz#07978047735a782d0d4172d1afcabd82f6de9b08" @@ -11802,6 +12335,13 @@ jest-mock@^25.5.0: dependencies: "@jest/types" "^25.5.0" +jest-mock@^26.1.0: + version "26.1.0" + resolved "https://registry.yarnpkg.com/jest-mock/-/jest-mock-26.1.0.tgz#80d8286da1f05a345fbad1bfd6fa49a899465d3d" + integrity sha512-1Rm8EIJ3ZFA8yCIie92UbxZWj9SuVmUGcyhLHyAhY6WI3NIct38nVcfOPWhJteqSn8V8e3xOMha9Ojfazfpovw== + dependencies: + "@jest/types" "^26.1.0" + jest-pnp-resolver@^1.2.1: version "1.2.1" resolved "https://registry.yarnpkg.com/jest-pnp-resolver/-/jest-pnp-resolver-1.2.1.tgz#ecdae604c077a7fbc70defb6d517c3c1c898923a" @@ -11812,6 +12352,11 @@ jest-regex-util@^25.2.6: resolved "https://registry.yarnpkg.com/jest-regex-util/-/jest-regex-util-25.2.6.tgz#d847d38ba15d2118d3b06390056028d0f2fd3964" integrity sha512-KQqf7a0NrtCkYmZZzodPftn7fL1cq3GQAFVMn5Hg8uKx/fIenLEobNanUxb7abQ1sjADHBseG/2FGpsv/wr+Qw== +jest-regex-util@^26.0.0: + version "26.0.0" + resolved "https://registry.yarnpkg.com/jest-regex-util/-/jest-regex-util-26.0.0.tgz#d25e7184b36e39fd466c3bc41be0971e821fee28" + integrity sha512-Gv3ZIs/nA48/Zvjrl34bf+oD76JHiGDUxNOVgUjh3j890sblXryjY4rss71fPtD/njchl6PSE2hIhvyWa1eT0A== + jest-resolve-dependencies@^25.5.4: version "25.5.4" resolved "https://registry.yarnpkg.com/jest-resolve-dependencies/-/jest-resolve-dependencies-25.5.4.tgz#85501f53957c8e3be446e863a74777b5a17397a7" @@ -11821,6 +12366,15 @@ jest-resolve-dependencies@^25.5.4: jest-regex-util "^25.2.6" jest-snapshot "^25.5.1" +jest-resolve-dependencies@^26.1.0: + version "26.1.0" + resolved "https://registry.yarnpkg.com/jest-resolve-dependencies/-/jest-resolve-dependencies-26.1.0.tgz#1ce36472f864a5dadf7dc82fa158e1c77955691b" + integrity sha512-fQVEPHHQ1JjHRDxzlLU/buuQ9om+hqW6Vo928aa4b4yvq4ZHBtRSDsLdKQLuCqn5CkTVpYZ7ARh2fbA8WkRE6g== + dependencies: + "@jest/types" "^26.1.0" + jest-regex-util "^26.0.0" + jest-snapshot "^26.1.0" + jest-resolve@^25.5.1: version "25.5.1" resolved "https://registry.yarnpkg.com/jest-resolve/-/jest-resolve-25.5.1.tgz#0e6fbcfa7c26d2a5fe8f456088dc332a79266829" @@ -11836,6 +12390,20 @@ jest-resolve@^25.5.1: resolve "^1.17.0" slash "^3.0.0" +jest-resolve@^26.1.0: + version "26.1.0" + resolved "https://registry.yarnpkg.com/jest-resolve/-/jest-resolve-26.1.0.tgz#a530eaa302b1f6fa0479079d1561dd69abc00e68" + integrity sha512-KsY1JV9FeVgEmwIISbZZN83RNGJ1CC+XUCikf/ZWJBX/tO4a4NvA21YixokhdR9UnmPKKAC4LafVixJBrwlmfg== + dependencies: + "@jest/types" "^26.1.0" + chalk "^4.0.0" + graceful-fs "^4.2.4" + jest-pnp-resolver "^1.2.1" + jest-util "^26.1.0" + read-pkg-up "^7.0.1" + resolve "^1.17.0" + slash "^3.0.0" + jest-runner@^25.5.4: version "25.5.4" resolved "https://registry.yarnpkg.com/jest-runner/-/jest-runner-25.5.4.tgz#ffec5df3875da5f5c878ae6d0a17b8e4ecd7c71d" @@ -11861,6 +12429,31 @@ jest-runner@^25.5.4: source-map-support "^0.5.6" throat "^5.0.0" +jest-runner@^26.1.0: + version "26.1.0" + resolved "https://registry.yarnpkg.com/jest-runner/-/jest-runner-26.1.0.tgz#457f7fc522afe46ca6db1dccf19f87f500b3288d" + integrity sha512-elvP7y0fVDREnfqit0zAxiXkDRSw6dgCkzPCf1XvIMnSDZ8yogmSKJf192dpOgnUVykmQXwYYJnCx641uLTgcw== + dependencies: + "@jest/console" "^26.1.0" + "@jest/environment" "^26.1.0" + "@jest/test-result" "^26.1.0" + "@jest/types" "^26.1.0" + chalk "^4.0.0" + exit "^0.1.2" + graceful-fs "^4.2.4" + jest-config "^26.1.0" + jest-docblock "^26.0.0" + jest-haste-map "^26.1.0" + jest-jasmine2 "^26.1.0" + jest-leak-detector "^26.1.0" + jest-message-util "^26.1.0" + jest-resolve "^26.1.0" + jest-runtime "^26.1.0" + jest-util "^26.1.0" + jest-worker "^26.1.0" + source-map-support "^0.5.6" + throat "^5.0.0" + jest-runtime@^25.5.4: version "25.5.4" resolved "https://registry.yarnpkg.com/jest-runtime/-/jest-runtime-25.5.4.tgz#dc981fe2cb2137abcd319e74ccae7f7eeffbfaab" @@ -11893,6 +12486,38 @@ jest-runtime@^25.5.4: strip-bom "^4.0.0" yargs "^15.3.1" +jest-runtime@^26.1.0: + version "26.1.0" + resolved "https://registry.yarnpkg.com/jest-runtime/-/jest-runtime-26.1.0.tgz#45a37af42115f123ed5c51f126c05502da2469cb" + integrity sha512-1qiYN+EZLmG1QV2wdEBRf+Ci8i3VSfIYLF02U18PiUDrMbhfpN/EAMMkJtT02jgJUoaEOpHAIXG6zS3QRMzRmA== + dependencies: + "@jest/console" "^26.1.0" + "@jest/environment" "^26.1.0" + "@jest/fake-timers" "^26.1.0" + "@jest/globals" "^26.1.0" + "@jest/source-map" "^26.1.0" + "@jest/test-result" "^26.1.0" + "@jest/transform" "^26.1.0" + "@jest/types" "^26.1.0" + "@types/yargs" "^15.0.0" + chalk "^4.0.0" + collect-v8-coverage "^1.0.0" + exit "^0.1.2" + glob "^7.1.3" + graceful-fs "^4.2.4" + jest-config "^26.1.0" + jest-haste-map "^26.1.0" + jest-message-util "^26.1.0" + jest-mock "^26.1.0" + jest-regex-util "^26.0.0" + jest-resolve "^26.1.0" + jest-snapshot "^26.1.0" + jest-util "^26.1.0" + jest-validate "^26.1.0" + slash "^3.0.0" + strip-bom "^4.0.0" + yargs "^15.3.1" + jest-serializer@^25.5.0: version "25.5.0" resolved "https://registry.yarnpkg.com/jest-serializer/-/jest-serializer-25.5.0.tgz#a993f484e769b4ed54e70e0efdb74007f503072b" @@ -11900,6 +12525,13 @@ jest-serializer@^25.5.0: dependencies: graceful-fs "^4.2.4" +jest-serializer@^26.1.0: + version "26.1.0" + resolved "https://registry.yarnpkg.com/jest-serializer/-/jest-serializer-26.1.0.tgz#72a394531fc9b08e173dc7d297440ac610d95022" + integrity sha512-eqZOQG/0+MHmr25b2Z86g7+Kzd5dG9dhCiUoyUNJPgiqi38DqbDEOlHcNijyfZoj74soGBohKBZuJFS18YTJ5w== + dependencies: + graceful-fs "^4.2.4" + jest-snapshot@^25.5.1: version "25.5.1" resolved "https://registry.yarnpkg.com/jest-snapshot/-/jest-snapshot-25.5.1.tgz#1a2a576491f9961eb8d00c2e5fd479bc28e5ff7f" @@ -11921,6 +12553,27 @@ jest-snapshot@^25.5.1: pretty-format "^25.5.0" semver "^6.3.0" +jest-snapshot@^26.1.0: + version "26.1.0" + resolved "https://registry.yarnpkg.com/jest-snapshot/-/jest-snapshot-26.1.0.tgz#c36ed1e0334bd7bd2fe5ad07e93a364ead7e1349" + integrity sha512-YhSbU7eMTVQO/iRbNs8j0mKRxGp4plo7sJ3GzOQ0IYjvsBiwg0T1o0zGQAYepza7lYHuPTrG5J2yDd0CE2YxSw== + dependencies: + "@babel/types" "^7.0.0" + "@jest/types" "^26.1.0" + "@types/prettier" "^2.0.0" + chalk "^4.0.0" + expect "^26.1.0" + graceful-fs "^4.2.4" + jest-diff "^26.1.0" + jest-get-type "^26.0.0" + jest-haste-map "^26.1.0" + jest-matcher-utils "^26.1.0" + jest-message-util "^26.1.0" + jest-resolve "^26.1.0" + natural-compare "^1.4.0" + pretty-format "^26.1.0" + semver "^7.3.2" + jest-util@^25.5.0: version "25.5.0" resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-25.5.0.tgz#31c63b5d6e901274d264a4fec849230aa3fa35b0" @@ -11932,6 +12585,17 @@ jest-util@^25.5.0: is-ci "^2.0.0" make-dir "^3.0.0" +jest-util@^26.1.0: + version "26.1.0" + resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-26.1.0.tgz#80e85d4ba820decacf41a691c2042d5276e5d8d8" + integrity sha512-rNMOwFQevljfNGvbzNQAxdmXQ+NawW/J72dmddsK0E8vgxXCMtwQ/EH0BiWEIxh0hhMcTsxwAxINt7Lh46Uzbg== + dependencies: + "@jest/types" "^26.1.0" + chalk "^4.0.0" + graceful-fs "^4.2.4" + is-ci "^2.0.0" + micromatch "^4.0.2" + jest-validate@^25.5.0: version "25.5.0" resolved "https://registry.yarnpkg.com/jest-validate/-/jest-validate-25.5.0.tgz#fb4c93f332c2e4cf70151a628e58a35e459a413a" @@ -11944,6 +12608,18 @@ jest-validate@^25.5.0: leven "^3.1.0" pretty-format "^25.5.0" +jest-validate@^26.1.0: + version "26.1.0" + resolved "https://registry.yarnpkg.com/jest-validate/-/jest-validate-26.1.0.tgz#942c85ad3d60f78250c488a7f85d8f11a29788e7" + integrity sha512-WPApOOnXsiwhZtmkDsxnpye+XLb/tUISP+H6cHjfUIXvlG+eKwP+isnivsxlHCPaO9Q5wvbhloIBkdF3qUn+Nw== + dependencies: + "@jest/types" "^26.1.0" + camelcase "^6.0.0" + chalk "^4.0.0" + jest-get-type "^26.0.0" + leven "^3.1.0" + pretty-format "^26.1.0" + jest-watcher@^25.5.0: version "25.5.0" resolved "https://registry.yarnpkg.com/jest-watcher/-/jest-watcher-25.5.0.tgz#d6110d101df98badebe435003956fd4a465e8456" @@ -11956,6 +12632,18 @@ jest-watcher@^25.5.0: jest-util "^25.5.0" string-length "^3.1.0" +jest-watcher@^26.1.0: + version "26.1.0" + resolved "https://registry.yarnpkg.com/jest-watcher/-/jest-watcher-26.1.0.tgz#99812a0cd931f0cb3d153180426135ab83e4d8f2" + integrity sha512-ffEOhJl2EvAIki613oPsSG11usqnGUzIiK7MMX6hE4422aXOcVEG3ySCTDFLn1+LZNXGPE8tuJxhp8OBJ1pgzQ== + dependencies: + "@jest/test-result" "^26.1.0" + "@jest/types" "^26.1.0" + ansi-escapes "^4.2.1" + chalk "^4.0.0" + jest-util "^26.1.0" + string-length "^4.0.1" + jest-worker@^25.1.0: version "25.2.1" resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-25.2.1.tgz#209617015c768652646aa33a7828cc2ab472a18a" @@ -11972,6 +12660,14 @@ jest-worker@^25.5.0: merge-stream "^2.0.0" supports-color "^7.0.0" +jest-worker@^26.1.0: + version "26.1.0" + resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-26.1.0.tgz#65d5641af74e08ccd561c240e7db61284f82f33d" + integrity sha512-Z9P5pZ6UC+kakMbNJn+tA2RdVdNX5WH1x+5UCBZ9MxIK24pjYtFt96fK+UwBTrjLYm232g1xz0L3eTh51OW+yQ== + dependencies: + merge-stream "^2.0.0" + supports-color "^7.0.0" + jest@^25.5.4: version "25.5.4" resolved "https://registry.yarnpkg.com/jest/-/jest-25.5.4.tgz#f21107b6489cfe32b076ce2adcadee3587acb9db" @@ -11981,6 +12677,15 @@ jest@^25.5.4: import-local "^3.0.2" jest-cli "^25.5.4" +jest@^26.0.1: + version "26.1.0" + resolved "https://registry.yarnpkg.com/jest/-/jest-26.1.0.tgz#2f3aa7bcffb9bfd025473f83bbbf46a3af026263" + integrity sha512-LIti8jppw5BcQvmNJe4w2g1N/3V68HUfAv9zDVm7v+VAtQulGhH0LnmmiVkbNE4M4I43Bj2fXPiBGKt26k9tHw== + dependencies: + "@jest/core" "^26.1.0" + import-local "^3.0.2" + jest-cli "^26.1.0" + jquery@>=1.7, jquery@^3.4.1: version "3.4.1" resolved "https://registry.yarnpkg.com/jquery/-/jquery-3.4.1.tgz#714f1f8d9dde4bdfa55764ba37ef214630d80ef2" @@ -12052,6 +12757,38 @@ jsdom@^15.2.1: ws "^7.0.0" xml-name-validator "^3.0.0" +jsdom@^16.2.2: + version "16.3.0" + resolved "https://registry.yarnpkg.com/jsdom/-/jsdom-16.3.0.tgz#75690b7dac36c67be49c336dcd7219bbbed0810c" + integrity sha512-zggeX5UuEknpdZzv15+MS1dPYG0J/TftiiNunOeNxSl3qr8Z6cIlQpN0IdJa44z9aFxZRIVqRncvEhQ7X5DtZg== + dependencies: + abab "^2.0.3" + acorn "^7.1.1" + acorn-globals "^6.0.0" + cssom "^0.4.4" + cssstyle "^2.2.0" + data-urls "^2.0.0" + decimal.js "^10.2.0" + domexception "^2.0.1" + escodegen "^1.14.1" + html-encoding-sniffer "^2.0.1" + is-potential-custom-element-name "^1.0.0" + nwsapi "^2.2.0" + parse5 "5.1.1" + request "^2.88.2" + request-promise-native "^1.0.8" + saxes "^5.0.0" + symbol-tree "^3.2.4" + tough-cookie "^3.0.1" + w3c-hr-time "^1.0.2" + w3c-xmlserializer "^2.0.0" + webidl-conversions "^6.1.0" + whatwg-encoding "^1.0.5" + whatwg-mimetype "^2.3.0" + whatwg-url "^8.0.0" + ws "^7.2.3" + xml-name-validator "^3.0.0" + jsesc@^2.5.1: version "2.5.2" resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-2.5.2.tgz#80564d2e483dacf6e8ef209650a67df3f0c283a4" @@ -13568,6 +14305,18 @@ node-notifier@^6.0.0: shellwords "^0.1.1" which "^1.3.1" +node-notifier@^7.0.0: + version "7.0.1" + resolved "https://registry.yarnpkg.com/node-notifier/-/node-notifier-7.0.1.tgz#a355e33e6bebacef9bf8562689aed0f4230ca6f9" + integrity sha512-VkzhierE7DBmQEElhTGJIoiZa1oqRijOtgOlsXg32KrJRXsPy0NXFBqWGW/wTswnJlDCs5viRYaqWguqzsKcmg== + dependencies: + growly "^1.3.0" + is-wsl "^2.1.1" + semver "^7.2.1" + shellwords "^0.1.1" + uuid "^7.0.3" + which "^2.0.2" + node-releases@^1.1.29, node-releases@^1.1.53: version "1.1.53" resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-1.1.53.tgz#2d821bfa499ed7c5dffc5e2f28c88e78a08ee3f4" @@ -14238,6 +14987,11 @@ parse5@5.1.0: resolved "https://registry.yarnpkg.com/parse5/-/parse5-5.1.0.tgz#c59341c9723f414c452975564c7c00a68d58acd2" integrity sha512-fxNG2sQjHvlVAYmzBZS9YlDp6PTSSDwa98vkD4QgVDDCAo84z5X1t5XyJQ62ImdLXx5NdIIfihey6xpum9/gRQ== +parse5@5.1.1: + version "5.1.1" + resolved "https://registry.yarnpkg.com/parse5/-/parse5-5.1.1.tgz#f68e4e5ba1852ac2cadc00f4555fff6c2abb6178" + integrity sha512-ugq4DFI0Ptb+WWjAdOK16+u/nHfiIrcE+sh8kZMaM0WllQKLI9rOUq6c2b7cwPkXdzfQESqvoqK6ug7U/Yyzug== + parse5@^3.0.1: version "3.0.3" resolved "https://registry.yarnpkg.com/parse5/-/parse5-3.0.3.tgz#042f792ffdd36851551cf4e9e066b3874ab45b5c" @@ -14628,7 +15382,7 @@ pretty-error@^2.1.1: renderkid "^2.0.1" utila "~0.4" -pretty-format@^25.2.1, pretty-format@^25.5.0: +pretty-format@^25.2.1, pretty-format@^25.2.6, pretty-format@^25.5.0: version "25.5.0" resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-25.5.0.tgz#7873c1d774f682c34b8d48b6743a2bf2ac55791a" integrity sha512-kbo/kq2LQ/A/is0PQwsEHM7Ca6//bGPPvU6UnsdDRSKTWxT/ru/xb88v4BJf6a69H+uTytOEsTusT9ksd/1iWQ== @@ -14638,6 +15392,16 @@ pretty-format@^25.2.1, pretty-format@^25.5.0: ansi-styles "^4.0.0" react-is "^16.12.0" +pretty-format@^26.1.0: + version "26.1.0" + resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-26.1.0.tgz#272b9cd1f1a924ab5d443dc224899d7a65cb96ec" + integrity sha512-GmeO1PEYdM+non4BKCj+XsPJjFOJIPnsLewqhDVoqY1xo0yNmDas7tC2XwpMrRAHR3MaE2hPo37deX5OisJ2Wg== + dependencies: + "@jest/types" "^26.1.0" + ansi-regex "^5.0.0" + ansi-styles "^4.0.0" + react-is "^16.12.0" + pretty-hrtime@^1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/pretty-hrtime/-/pretty-hrtime-1.0.3.tgz#b7e3ea42435a4c9b2759d99e0f201eb195802ee1" @@ -15840,7 +16604,7 @@ request-promise-core@1.1.3: dependencies: lodash "^4.17.15" -request-promise-native@^1.0.7: +request-promise-native@^1.0.7, request-promise-native@^1.0.8: version "1.0.8" resolved "https://registry.yarnpkg.com/request-promise-native/-/request-promise-native-1.0.8.tgz#a455b960b826e44e2bf8999af64dff2bfe58cb36" integrity sha512-dapwLGqkHtwL5AEbfenuzjTYg35Jd6KPytsC2/TLkVMz8rm+tNt72MGUWT1RP/aYawMpN6HqbNGBQaRcBtjQMQ== @@ -15849,7 +16613,7 @@ request-promise-native@^1.0.7: stealthy-require "^1.1.1" tough-cookie "^2.3.3" -request@^2.88.0: +request@^2.88.0, request@^2.88.2: version "2.88.2" resolved "https://registry.yarnpkg.com/request/-/request-2.88.2.tgz#d73c918731cb5a87da047e207234146f664d12b3" integrity sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw== @@ -16167,6 +16931,13 @@ saxes@^3.1.9: dependencies: xmlchars "^2.1.1" +saxes@^5.0.0: + version "5.0.1" + resolved "https://registry.yarnpkg.com/saxes/-/saxes-5.0.1.tgz#eebab953fa3b7608dbe94e5dadb15c888fa6696d" + integrity sha512-5LBh1Tls8c9xgGjw3QrMwETmTMVk0oFgvrFSvWx62llR2hcEInrKNZ2GZCCuuy2lvWrdl5jhbpeqc5hRYKFOcw== + dependencies: + xmlchars "^2.2.0" + scheduler@^0.19.1: version "0.19.1" resolved "https://registry.yarnpkg.com/scheduler/-/scheduler-0.19.1.tgz#4f3e2ed2c1a7d65681f4c854fa8c5a1ccb40f196" @@ -16237,7 +17008,7 @@ semver@^6.0.0, semver@^6.1.2, semver@^6.2.0, semver@^6.3.0: resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d" integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw== -semver@^7.1.2, semver@^7.1.3, semver@^7.2.1: +semver@^7.1.2, semver@^7.1.3, semver@^7.2.1, semver@^7.3.2: version "7.3.2" resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.2.tgz#604962b052b81ed0786aae84389ffba70ffd3938" integrity sha512-OrOb32TeeambH6UrhtShmF7CRDqhL6/5XpPNp2DuRH6+9QLw/orhp72j87v8Qa1ScDkvrrBNpZcDejAirJmfXQ== @@ -16786,6 +17557,13 @@ stack-utils@^1.0.1: resolved "https://registry.yarnpkg.com/stack-utils/-/stack-utils-1.0.2.tgz#33eba3897788558bebfc2db059dc158ec36cebb8" integrity sha512-MTX+MeG5U994cazkjd/9KNAapsHnibjMLnfXodlkXw76JEea0UiNzrqidzo1emMwk7w5Qhc9jd4Bn9TBb1MFwA== +stack-utils@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/stack-utils/-/stack-utils-2.0.2.tgz#5cf48b4557becb4638d0bc4f21d23f5d19586593" + integrity sha512-0H7QK2ECz3fyZMzQ8rH0j2ykpfbnd20BFtfg/SqVC2+sCTtcw0aDTGB7dk+de4U4uUeuz6nOtJcrkFFLG1B0Rg== + dependencies: + escape-string-regexp "^2.0.0" + static-eval@^2.0.0: version "2.0.5" resolved "https://registry.yarnpkg.com/static-eval/-/static-eval-2.0.5.tgz#f0782e66999c4b3651cda99d9ce59c507d188f71" @@ -16906,6 +17684,14 @@ string-length@^3.1.0: astral-regex "^1.0.0" strip-ansi "^5.2.0" +string-length@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/string-length/-/string-length-4.0.1.tgz#4a973bf31ef77c4edbceadd6af2611996985f8a1" + integrity sha512-PKyXUd0LK0ePjSOnWn34V2uD6acUWev9uy0Ft05k0E8xRW+SKcA0F7eMr7h5xlzfn+4O3N+55rduYyet3Jk+jw== + dependencies: + char-regex "^1.0.2" + strip-ansi "^6.0.0" + string-template@~0.2.1: version "0.2.1" resolved "https://registry.yarnpkg.com/string-template/-/string-template-0.2.1.tgz#42932e598a352d01fc22ec3367d9d84eec6c9add" @@ -17246,7 +18032,7 @@ symbol-observable@^1.0.4: resolved "https://registry.yarnpkg.com/symbol-observable/-/symbol-observable-1.2.0.tgz#c22688aed4eab3cdc2dfeacbb561660560a00804" integrity sha512-e900nM8RRtGhlV36KGEU9k65K3mPb1WV70OdjfxlG2EAuM1noi/E/BaW/uMhL7bPEssK8QV57vN3esixjUvcXQ== -symbol-tree@^3.2.2: +symbol-tree@^3.2.2, symbol-tree@^3.2.4: version "3.2.4" resolved "https://registry.yarnpkg.com/symbol-tree/-/symbol-tree-3.2.4.tgz#430637d248ba77e078883951fb9aa0eed7c63fa2" integrity sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw== @@ -17606,6 +18392,13 @@ tr46@^1.0.1: dependencies: punycode "^2.1.0" +tr46@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/tr46/-/tr46-2.0.2.tgz#03273586def1595ae08fedb38d7733cee91d2479" + integrity sha512-3n1qG+/5kg+jrbTzwAykB5yRYtQCTqOGKq5U5PE3b0a1/mzo6snDhjGS0zJVJunO0NrT3Dg1MLy5TjWP/UJppg== + dependencies: + punycode "^2.1.1" + trim-newlines@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/trim-newlines/-/trim-newlines-1.0.0.tgz#5887966bb582a4503a41eb524f7d35011815a613" @@ -18051,6 +18844,11 @@ uuid@^3.0.1, uuid@^3.3.2: resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.4.0.tgz#b23e4358afa8a202fe7a100af1f5f883f02007ee" integrity sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A== +uuid@^7.0.3: + version "7.0.3" + resolved "https://registry.yarnpkg.com/uuid/-/uuid-7.0.3.tgz#c5c9f2c8cf25dc0a372c4df1441c41f5bd0c680b" + integrity sha512-DPSke0pXhTZgoF/d+WSt2QaKMCFSfx7QegxEWT+JOuHF5aWrKEn0G+ztjuJg/gG8/ItK+rbPCD/yNv8yyih6Cg== + v8-compile-cache@^2.0.3: version "2.1.0" resolved "https://registry.yarnpkg.com/v8-compile-cache/-/v8-compile-cache-2.1.0.tgz#e14de37b31a6d194f5690d67efc4e7f6fc6ab30e" @@ -18479,7 +19277,7 @@ w-json@^1.3.5: resolved "https://registry.yarnpkg.com/w-json/-/w-json-1.3.9.tgz#c1ddfbae1279f7e84d5a1bd587b53a03f5c5cff8" integrity sha512-9hvWhnNZ5J3ypOJt2LzmAQBl1NrQBZED/E8MwkZQ+lGTq51hyR9zeH0dgaJzLfzOVoTbxe/yPqL10c5WVsHvbg== -w3c-hr-time@^1.0.1: +w3c-hr-time@^1.0.1, w3c-hr-time@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/w3c-hr-time/-/w3c-hr-time-1.0.2.tgz#0a89cdf5cc15822df9c360543676963e0cc308cd" integrity sha512-z8P5DvDNjKDoFIHK7q8r8lackT6l+jo/Ye3HOle7l9nICP9lf1Ci25fy9vHd0JOWewkIFzXIEig3TdKT7JQ5fQ== @@ -18495,6 +19293,13 @@ w3c-xmlserializer@^1.1.2: webidl-conversions "^4.0.2" xml-name-validator "^3.0.0" +w3c-xmlserializer@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/w3c-xmlserializer/-/w3c-xmlserializer-2.0.0.tgz#3e7104a05b75146cc60f564380b7f683acf1020a" + integrity sha512-4tzD0mF8iSiMiNs30BiLO3EpfGLZUT2MSX/G+o7ZywDzliWQ3OPtTZ0PTC3B3ca1UAf4cJMHB+2Bf56EriJuRA== + dependencies: + xml-name-validator "^3.0.0" + walker@^1.0.7, walker@~1.0.5: version "1.0.7" resolved "https://registry.yarnpkg.com/walker/-/walker-1.0.7.tgz#2f7f9b8fd10d677262b18a884e28d19618e028fb" @@ -18537,6 +19342,16 @@ webidl-conversions@^4.0.2: resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-4.0.2.tgz#a855980b1f0b6b359ba1d5d9fb39ae941faa63ad" integrity sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg== +webidl-conversions@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-5.0.0.tgz#ae59c8a00b121543a2acc65c0434f57b0fc11aff" + integrity sha512-VlZwKPCkYKxQgeSbH5EyngOmRp7Ww7I9rQLERETtf5ofd9pGeswWiOtogpEO850jziPRarreGxn5QIiTqpb2wA== + +webidl-conversions@^6.1.0: + version "6.1.0" + resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-6.1.0.tgz#9111b4d7ea80acd40f5270d666621afa78b69514" + integrity sha512-qBIvFLGiBpLjfwmYAaHPXsn+ho5xZnGvyGvsarywGNc8VyQJUMHJ8OBKGGrPER0okBeMDaan4mNBlgBROxuI8w== + webpack-dev-middleware@^3.7.0: version "3.7.2" resolved "https://registry.yarnpkg.com/webpack-dev-middleware/-/webpack-dev-middleware-3.7.2.tgz#0019c3db716e3fa5cecbf64f2ab88a74bab331f3" @@ -18664,6 +19479,15 @@ whatwg-url@^7.0.0: tr46 "^1.0.1" webidl-conversions "^4.0.2" +whatwg-url@^8.0.0: + version "8.1.0" + resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-8.1.0.tgz#c628acdcf45b82274ce7281ee31dd3c839791771" + integrity sha512-vEIkwNi9Hqt4TV9RdnaBPNt+E2Sgmo3gePebCRgZ1R7g6d23+53zCTnuB0amKI4AXq6VM8jj2DUAa0S1vjJxkw== + dependencies: + lodash.sortby "^4.7.0" + tr46 "^2.0.2" + webidl-conversions "^5.0.0" + which-module@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/which-module/-/which-module-2.0.0.tgz#d9ef07dce77b9902b8a3a8fa4b31c3e3f7e6e87a" @@ -18836,12 +19660,17 @@ ws@^7.0.0: resolved "https://registry.yarnpkg.com/ws/-/ws-7.2.3.tgz#a5411e1fb04d5ed0efee76d26d5c46d830c39b46" integrity sha512-HTDl9G9hbkNDk98naoR/cHDws7+EyYMOdL1BmjsZXRUjf7d+MficC4B7HLUPlSiho0vg+CWKrGIt/VJBd1xunQ== +ws@^7.2.3: + version "7.3.1" + resolved "https://registry.yarnpkg.com/ws/-/ws-7.3.1.tgz#d0547bf67f7ce4f12a72dfe31262c68d7dc551c8" + integrity sha512-D3RuNkynyHmEJIpD2qrgVkc9DQ23OrN/moAwZX4L8DfvszsJxpjQuUq3LMx6HoYji9fbIOBY18XWBsAux1ZZUA== + xml-name-validator@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/xml-name-validator/-/xml-name-validator-3.0.0.tgz#6ae73e06de4d8c6e47f9fb181f78d648ad457c6a" integrity sha512-A5CUptxDsvxKJEU3yO6DuWBSJz/qizqzJKOMIfUJHETbBw/sFaDxgd6fxm1ewUaM0jZ444Fc5vC5ROYurg/4Pw== -xmlchars@^2.1.1: +xmlchars@^2.1.1, xmlchars@^2.2.0: version "2.2.0" resolved "https://registry.yarnpkg.com/xmlchars/-/xmlchars-2.2.0.tgz#060fe1bcb7f9c76fe2a17db86a9bc3ab894210cb" integrity sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw== @@ -19074,3 +19903,8 @@ yosay@^2.0.2: strip-ansi "^3.0.0" taketalk "^1.0.0" wrap-ansi "^2.0.0" + +zrender@4.3.2: + version "4.3.2" + resolved "https://registry.yarnpkg.com/zrender/-/zrender-4.3.2.tgz#ec7432f9415c82c73584b6b7b8c47e1b016209c6" + integrity sha512-bIusJLS8c4DkIcdiK+s13HiQ/zjQQVgpNohtd8d94Y2DnJqgM1yjh/jpDb8DoL6hd7r8Awagw8e3qK/oLaWr3g==