{"version":3,"file":"static/js/main.7c0b0e5b.js","mappings":"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SAI5CZ,EAAAA,EAAAA,MAAA,MAAIl5D,UAAU,QAAO3Q,SAAA,CACnB4qE,EACAC,EAAY/oE,KAAK8c,GAEhBA,IACC+qD,EAAAA,EAAAA,KAAA,KAAG1mB,KAAMrkC,EAAMjO,UAAU,SAAQ3Q,UAChC2pE,EAAAA,EAAAA,KAAA,OACCc,IAAI,SACJ/N,IAAI,kCAOViN,EAAAA,EAAAA,KAAA,KAAA3pE,SAAI0qE,KACJf,EAAAA,EAAAA,KAAA,MAAA3pE,UAEC6pE,EAAAA,EAAAA,MAAA,KAAG5mB,KAAM0nB,EAAI3qE,SAAA,CACX2qE,GACAA,EAAIvqE,QAAQ,UAAW,IACrBA,QAAQ,WAAY,IACpB0Z,MAAM,EAAG,IACX6wD,GAAOA,EAAI5qE,OAAS,IAAM,aAMjC,ECioDA,EAhsDiB,CAChB,CACC6qE,MAAO,gBACPF,YAAa,wJACbC,IAAK,qCACL79B,MAAO,CACN,sBACA,cACA,0BACA,0BACA,wBACA,eACA,UACA,QACA,yBACA,UACA,MACA,SACA,aACA,MACA,UACA,cACA,mBACA,SACA,SACA,SACA,SACA,QACA,aACA,aACA,kBACA,0BACA,WACA,aACA,SACA,aACA,UAED09B,MAAO,uBACPC,IAAK,0BACLI,YAAa,CACZ,gFACA,+DAGF,CACCD,MAAO,0BACPF,YAAa,oMACbC,IAAK,oCACL79B,MAAO,CACN,sBACA,0BACA,cACA,UACA,QACA,yBACA,UACA,MACA,SACA,aACA,MACA,cACA,mBACA,SACA,SACA,SACA,QACA,aACA,aACA,kBACA,0BACA,WACA,aACA,SACA,aACA,UAED09B,MAAO,6BACPC,IAAK,0BACLI,YAAa,CACZ,uEACA,+FACA,iEAGF,CACCD,MAAO,eACPF,YAAa,iJACbC,IAAK,sCACL79B,MAAO,CACN,0BACA,QACA,UACA,MACA,aACA,aACA,SACA,SACA,QACA,SACA,aACA,SACA,QAED09B,MAAO,wBACPC,IAAK,eACLI,YAAa,CACZ,wEACA,yDAGF,CACCD,MAAO,mBACPF,YAAa,oKAEb59B,MAAO,CACN,QACA,MACA,UACA,SACA,aACA,aACA,OACA,iBACA,eACA,uBAED09B,MAAO,2BACPC,IAAK,oBACLI,YAAa,CACZ,0EAGF,CACCD,MAAO,sBACPF,YAAa,0TAEb59B,MAAO,CACN,sBACA,cACA,SACA,0BACA,wBACA,YACA,QACA,yBACA,UACA,qBACA,MACA,aACA,MACA,mBACA,gBACA,SACA,SACA,SACA,QACA,cACA,cACA,aACA,WACA,cAED09B,MAAO,sBACPC,IAAK,SACLI,YAAa,CACZ,4DACA,+DAIF,CACCD,MAAO,sBACPF,YAAa,yIAEb59B,MAAO,CACN,cACA,UACA,QACA,MACA,UACA,SACA,cACA,WACA,QACA,YACA,SACA,UACA,aACA,sBACA,sBACA,MACA,eAED09B,MAAO,+BACPC,IAAK,kBACLI,YAAa,CACZ,kFACA,mEAIF,CACCD,MAAO,oBACPF,YAAa,4JAEb59B,MAAO,CACN,cACA,UACA,UACA,QACA,SACA,UACA,MACA,SACA,MACA,cACA,mBACA,SACA,SACA,UACA,WACA,QACA,aACA,uBAED09B,MAAO,iCACPC,IAAK,oBACLI,YAAa,CACZ,+DACA,sEAGF,CACCD,MAAO,0BACPF,YAAa,iIAEb59B,MAAO,CACN,MACA,YACA,MACA,mBACA,aACA,SACA,mBAED09B,MAAO,wBACPC,IAAK,WACLI,YAAa,CACZ,kEAGF,CACCD,MAAO,YACPF,YAAa,+HAEb59B,MAAO,CACN,MACA,SACA,WACA,YACA,SACA,gBAED09B,MAAO,yBACPC,IAAK,YACLI,YAAa,IAEd,CACCD,MAAO,4BACPF,YAAa,6EAEb59B,MAAO,CAAC,MAAO,OAAQ,cAAe,UACtC09B,MAAO,kDACPC,IAAK,SACLI,YAAa,CACZ,4EAGF,CACCD,MAAO,iBACPF,YAAa,kHAEb59B,MAAO,CACN,MACA,OACA,SACA,kBACA,KACA,cACA,QACA,MACA,eACA,sBACA,WACA,WAED09B,MAAO,uBACPC,IAAK,UACLI,YAAa,CACZ,mEAGF,CACCD,MAAO,gCACPF,YAAa,uFAEb59B,MAAO,CACN,MACA,OACA,SACA,kBACA,KACA,cACA,cACA,QACA,eACA,YAED09B,MAAO,uBACPC,IAAK,UACLI,YAAa,CACZ,4DAGF,CACCD,MAAO,6BACPF,YAAa,4OAEb59B,MAAO,CACN,sBACA,wBACA,MACA,OACA,QACA,MACA,SACA,kBACA,KACA,cACA,sBACA,kBACA,UACA,sBACA,eACA,QACA,WACA,cAED09B,MAAO,yBACPC,IAAK,YACLI,YAAa,CAAC,mDAEf,CACCD,MAAO,iBACPF,YAAa,4IAGb59B,MAAO,CACN,0BACA,sBACA,UACA,UACA,oBACA,iBACA,UACA,SACA,SACA,MACA,YACA,MACA,cACA,mBACA,MACA,SACA,aACA,SACA,SACA,sBACA,mBAED09B,MAAO,+CACPC,IAAK,iBACLI,YAAa,CACZ,yEAGF,CACCD,MAAO,yCACPF,YAAa,4IAGb59B,MAAO,CACN,QACA,gBACA,qBACA,yBACA,MACA,aACA,QACA,SACA,UAED09B,MAAO,oBACPC,IAAK,OACLI,YAAa,CAAC,sDAEf,CACCD,MAAO,8BACPF,YAAa,4KAEb59B,MAAO,CACN,UACA,KACA,SACA,qBACA,MACA,aACA,SACA,SACA,eACA,UACA,0BAED09B,MAAO,8BACPC,IAAK,iBACLI,YAAa,CACZ,wFAGF,CACCD,MAAO,sDACPF,YAAa,kRAEb59B,MAAO,CACN,OACA,SACA,WACA,MACA,SACA,cACA,QACA,SACA,UACA,UAED09B,MAAO,2BACPC,IAAK,cACLI,YAAa,CACZ,uGAGF,CACCD,MAAO,sBACPF,YAAa,4NAEb59B,MAAO,CACN,QACA,SACA,SACA,aACA,OACA,MACA,iBAED09B,MAAO,oBACPC,IAAK,OACLI,YAAa,CACZ,0FAGF,CACCD,MAAO,wCACPF,YAAa,6MAEb59B,MAAO,CACN,QACA,SACA,SACA,eACA,yBACA,mBACA,0BACA,UACA,MACA,iBAED09B,MAAO,6BACPC,IAAK,gBACLI,YAAa,CACZ,gFAGF,CACCD,MAAO,2BACPF,YAAa,mFAEb59B,MAAO,CACN,UACA,SACA,UACA,SACA,MACA,iBAED09B,MAAO,qBACPC,IAAK,QACLI,YAAa,CACZ,kFAGF,CACCD,MAAO,aACPF,YAAa,6GAEb59B,MAAO,CACN,UACA,SACA,OACA,QACA,UACA,QACA,aAED09B,MAAO,oBACPC,IAAK,OACLI,YAAa,CACZ,gGAGF,CACCD,MAAO,wDACPF,YAAa,mLAEb59B,MAAO,CACN,SACA,MACA,UACA,QACA,sBACA,WACA,OACA,QACA,SACA,SACA,aACA,mBACA,0BACA,gBACA,sBAED09B,MAAO,sBACPC,IAAK,SACLI,YAAa,CACZ,wGAGF,CACCD,MAAO,cACPF,YAAa,qGAEb59B,MAAO,CACN,QACA,MACA,SACA,MACA,sBACA,WAED09B,MAAO,qBACPC,IAAK,QACLI,YAAa,CACZ,6EACA,uDAGF,CACCD,MAAO,6CACPF,YAAa,8GAEb59B,MAAO,CACN,SACA,MACA,UACA,QACA,SACA,sBACA,QACA,aAED09B,MAAO,wBACPC,IAAK,WACLI,YAAa,CACZ,4EAGF,CACCD,MAAO,6CACPF,YAAa,wHAEb59B,MAAO,CACN,aACA,QACA,SACA,SACA,eACA,MACA,gBACA,qBACA,aACA,mBACA,2BAED09B,MAAO,yBACPC,IAAK,YACLI,YAAa,CACZ,qDACA,wEAGF,CACCD,MAAO,cACPF,YAAa,sIAGb59B,MAAO,CACN,WACA,mBACA,0BACA,MACA,kBACA,QACA,YACA,YACA,aACA,YACA,SACA,YACA,UACA,SACA,OAED09B,MAAO,0BACPC,IAAK,cACLI,YAAa,CACZ,kFAGF,CACCD,MAAO,0BACPF,YAAa,kLAEb59B,MAAO,CACN,UACA,MACA,YACA,YACA,MACA,mBACA,SACA,0BACA,SACA,UAED09B,MAAO,2BACPC,IAAK,iBACLI,YAAa,CACZ,oFAGF,CACCD,MAAO,iBACPF,YAAa,oGAGb59B,MAAO,CACN,UACA,SACA,WACA,YACA,aACA,eACA,OAED09B,MAAO,sBACPC,IAAK,iBACLI,YAAa,CACZ,oEAGF,CACCD,MAAO,WACPF,YAAa,+FAGb59B,MAAO,CACN,sBACA,wBACA,UACA,OACA,QACA,cACA,cACA,OAED09B,MAAO,wBACPC,IAAK,WACLI,YAAa,CACZ,mEAGF,CACCD,MAAO,sBACPF,YAAa,yHAGb59B,MAAO,CACN,sBACA,wBACA,aACA,SACA,UACA,QACA,UACA,MACA,aACA,SACA,sBACA,OAED09B,MAAO,oBACPC,IAAK,aACLI,YAAa,CACZ,oEAGF,CACCD,MAAO,+BACPF,YAAa,gMAGb59B,MAAO,CACN,sBACA,UACA,QACA,YACA,KACA,qBACA,UACA,MACA,WACA,OACA,aACA,QACA,QACA,gBACA,QACA,SACA,eACA,QACA,cACA,UACA,uBAED09B,MAAO,2CACPC,IAAK,8BACLI,YAAa,CACZ,+DAGF,CACCD,MAAO,4CACPF,YAAa,8JAEb59B,MAAO,CACN,sBACA,aACA,UACA,YACA,UACA,MACA,WACA,aACA,aACA,MACA,MACA,QACA,YACA,SACA,eACA,QACA,eACA,uBAED09B,MAAO,sBACPC,IAAK,SACLI,YAAa,CACZ,6DACA,4DAGF,CACCD,MAAO,kCACPF,YAAa,0RAGb59B,MAAO,CACN,sBACA,eACA,aACA,SACA,UACA,QACA,YACA,QACA,UACA,SACA,aACA,MACA,WACA,aACA,UACA,OACA,QACA,cACA,UACA,SACA,aACA,YACA,UACA,kBACA,eACA,cACA,QACA,QACA,uBACA,QACA,UACA,aACA,eACA,QACA,aACA,OAED09B,MAAO,mBACPC,IAAK,MACLI,YAAa,IAEd,CACCD,MAAO,aACPF,YAAa,sNAGb59B,MAAO,CACN,QACA,WACA,WACA,WACA,aACA,eACA,sBACA,QACA,MACA,cACA,QACA,eACA,SACA,UACA,MACA,SACA,QACA,SACA,QACA,MACA,UACA,uBAED09B,MAAO,wBACPC,IAAK,WACLI,YAAa,CACZ,2EAGF,CACCD,MAAO,YACPF,YAAa,wJAGb59B,MAAO,CACN,QACA,QACA,YACA,SACA,YACA,aACA,MACA,WACA,SACA,cACA,WACA,aACA,MACA,eACA,SACA,UACA,MACA,MACA,uBAED09B,MAAO,yBACPC,IAAK,YACLI,YAAa,CACZ,kEAGF,CACCD,MAAO,kBACPF,YAAa,gOAGb59B,MAAO,CACN,QACA,WACA,aACA,sBACA,UACA,oBACA,QACA,MACA,YACA,QACA,WACA,aACA,SACA,UACA,QACA,MACA,QACA,cAED09B,MAAO,wBACPC,IAAK,WACLI,YAAa,CACZ,+DAGF,CACCD,MAAO,eACPF,YAAa,oKAGb59B,MAAO,CACN,QACA,QACA,WACA,UACA,WACA,MACA,aACA,cACA,SACA,eACA,sBACA,QACA,UAED09B,MAAO,sBACPC,IAAK,SACLI,YAAa,CACZ,8EAGF,CAECD,MAAO,kBACPF,YAAa,oNAEb59B,MAAO,CACN,QACA,WACA,WACA,sBACA,wBACA,oBACA,aACA,WACA,wBACA,MACA,QACA,sBACA,gBAED09B,MAAO,yBACPC,IAAK,YACLI,YAAa,CAAC,yDAEf,CACCD,MAAO,iBACPF,YAAa,uOAEb59B,MAAO,CACN,aACA,WACA,wBACA,OACA,MACA,MACA,QACA,MACA,SACA,UACA,MACA,UACA,YAED09B,MAAO,qBACPC,IAAK,QACLI,YAAa,CACZ,+DAGF,CACCD,MAAO,wBACPF,YAAa,4VAMb59B,MAAO,CACN,aACA,aACA,WACA,wBACA,QACA,MACA,MACA,UACA,WACA,SACA,UACA,sBACA,OAED09B,MAAO,uBACPC,IAAK,UACLI,YAAa,CACZ,mEAGF,CACCD,MAAO,eACPF,YAAa,mNAEb59B,MAAO,CACN,QACA,UACA,sBACA,UACA,oBACA,eACA,QACA,UACA,WACA,SACA,UACA,WACA,MACA,QACA,MACA,QACA,SAED09B,MAAO,qBACPC,IAAK,QACLI,YAAa,CAAC,0DAEf,CACCD,MAAO,OACPF,YAAa,6LAEb59B,MAAO,CACN,QACA,eACA,UACA,wBACA,QACA,WACA,SACA,UACA,MACA,QACA,MACA,SACA,MACA,oBAED09B,MAAO,oBACPC,IAAK,OACLI,YAAa,CACZ,iEAGF,CACCD,MAAO,SACPF,YAAa,wKAEb59B,MAAO,CACN,QACA,cACA,QACA,wBACA,WACA,MACA,uBAED09B,MAAO,sBACPC,IAAK,SACLI,YAAa,CAAC,yDAEf,CACCD,MAAO,gBACPF,YAAa,6GAEb59B,MAAO,CACN,aACA,WACA,UACA,MACA,wBACA,SACA,QACA,QACA,SACA,MACA,cAED09B,MAAO,oBACPC,IAAK,OACLI,YAAa,CACZ,4EAGF,CACCD,MAAO,4BACPF,YAAa,2IAEb59B,MAAO,CACN,aACA,WACA,UACA,MACA,wBACA,aACA,QACA,QACA,SACA,MACA,cAED09B,MAAO,sBACPC,IAAK,SACLI,YAAa,CACZ,qFAGF,CACCD,MAAO,wBACPF,YAAa,sOAEb59B,MAAO,CACN,aACA,MACA,SACA,UACA,QACA,eACA,SACA,kBACA,sBACA,mBACA,YACA,aACA,oBACA,QACA,UAED09B,MAAO,sBACPC,IAAK,QACLI,YAAa,IAEd,CACCD,MAAO,qBACPF,YAAa,wKAEb59B,MAAO,CACN,aACA,MACA,SACA,UACA,QACA,SACA,QACA,YACA,aACA,oBACA,QACA,UAED09B,MAAO,sBACPC,IAAK,QACLI,YAAa,IAEd,CACCD,MAAO,gBACPF,YAAa,0GAEb59B,MAAO,CACN,aACA,qBACA,MACA,SACA,UACA,QACA,SACA,cACA,yBACA,eACA,cAED09B,MAAO,4BACPC,IAAK,gBACLI,YAAa,CACZ,6DAGF,CACCD,MAAO,mBACPF,YAAa,sJAEb59B,MAAO,CACN,aACA,MACA,SACA,UACA,WACA,UACA,WACA,aACA,QAED09B,MAAO,sBACPC,IAAK,SACLI,YAAa,CACZ,4EAGF,CACCD,MAAO,cACPF,YAAa,+GAEb59B,MAAO,CACN,aACA,MACA,SACA,UACA,WACA,cACA,SACA,gBAED09B,MAAO,0BACPC,IAAK,cACLI,YAAa,CACZ,gGAGF,CACCD,MAAO,uBACPF,YAAa,kLAEb59B,MAAO,CACN,aACA,sBACA,MACA,SACA,UACA,WACA,cACA,aACA,WACA,wBACA,OACA,eACA,UAED09B,MAAO,kCACPC,IAAK,uBACLI,YAAa,CACZ,4DAGF,CACCD,MAAO,cACPF,YAAa,mTAEb59B,MAAO,CACN,aACA,wBACA,mBACA,MACA,WACA,QACA,MACA,QACA,SACA,UACA,SAED09B,MAAO,0BACPC,IAAK,cACLI,YAAa,CAAC,uDAEf,CACCD,MAAO,qBACPF,YAAa,8QAGb59B,MAAO,CACN,QACA,aACA,WACA,sBACA,cACA,OACA,QACA,MACA,aACA,eAED09B,MAAO,yBACPC,IAAK,YACLI,YAAa,CACZ,gEAGF,CACCD,MAAO,gBACPF,YAAa,wNAGb59B,MAAO,CACN,aACA,aACA,WACA,sBACA,UACA,eACA,UACA,oBACA,MACA,YACA,UACA,MACA,QACA,SACA,MACA,gBAED09B,MAAO,sBACPC,IAAK,SACLI,YAAa,CACZ,6DAGF,CACCD,MAAO,uBACPF,YAAa,+NAEb59B,MAAO,CACN,sBACA,eACA,UACA,WACA,UACA,MACA,aACA,QACA,QACA,QACA,SACA,eACA,QACA,aACA,OACA,OAED09B,MAAO,uBACPC,IAAK,UACLI,YAAa,CAAC,uDAEf,CACCD,MAAO,sBACPF,YAAa,+JAEb59B,MAAO,CACN,aACA,WACA,sBACA,SACA,eACA,QACA,MACA,UAED09B,MAAO,yBACPC,IAAK,YACLI,YAAa,CACZ,0FAGF,CACCD,MAAO,uBACPF,YAAa,gJAEb59B,MAAO,CACN,sBACA,WACA,uBACA,eACA,QACA,YACA,aACA,aACA,MACA,QACA,SACA,wBACA,QAED09B,MAAO,qBACPC,IAAK,QACLI,YAAa,CACZ,kFAGF,CACCD,MAAO,6BACPF,YAAa,2PAEb59B,MAAO,CACN,aACA,WACA,sBACA,UACA,oBACA,eACA,YACA,eACA,SACA,MACA,UACA,QACA,QACA,MACA,SAED09B,MAAO,wBACPC,IAAK,WACLI,YAAa,CACZ,yEAGF,CACCD,MAAO,UACPF,YAAa,+DAEb59B,MAAO,CAAC,MAAO,aAAc,WAAY,OACzC09B,MAAO,uBACPC,IAAK,UACLI,YAAa,CAAC,2DAEf,CACCD,MAAO,0BACPF,YAAa,iIAEb59B,MAAO,CAAC,aAAc,WAAY,YAAa,MAAO,QAAS,OAC/D09B,MAAO,uBACPC,IAAK,UACLI,YAAa,CACZ,8DAGF,CACCD,MAAO,YACPF,YAAa,iLAEb59B,MAAO,CACN,aACA,eACA,aACA,WACA,OACA,wBACA,SACA,MACA,UACA,UACA,WACA,SACA,QACA,QACA,MACA,SAED09B,MAAO,oBACPC,IAAK,OACLI,YAAa,CAAC,2DAEf,CACCD,MAAO,SACPF,YAAa,mNAEb59B,MAAO,CACN,SACA,WACA,MACA,sBACA,eACA,UACA,oBACA,SACA,SACA,QACA,MACA,QACA,MACA,SAED09B,MAAO,sBACPC,IAAK,SACLI,YAAa,CACZ,mEAGF,CACCD,MAAO,UACPF,YAAa,kEAEb59B,MAAO,CACN,UACA,MACA,sBACA,SACA,SACA,WACA,SACA,SAED09B,MAAO,uBACPC,IAAK,UACLI,YAAa,CAAC,iDAEf,CACCD,MAAO,UACPF,YAAa,uEAEb59B,MAAO,CACN,MACA,iBACA,sBACA,kBACA,aACA,UACA,SAED09B,MAAO,mBACPC,IAAK,eACLI,YAAa,CAAC,sDAEf,CACCD,MAAO,0BACPF,YAAa,4FAEb59B,MAAO,CACN,MACA,aACA,UACA,eACA,SACA,MACA,UACA,sBACA,UACA,oBACA,QACA,SACA,UACA,WACA,aACA,QACA,cACA,UAED09B,MAAO,0BACPC,IAAK,0BACLI,YAAa,CACZ,+DAGF,CACCD,MAAO,0BACPF,YAAa,gCAEb59B,MAAO,CAAC,YAAa,MAAO,SAAU,WAAY,SAAU,WAC5D09B,MAAO,yBACPC,IAAK,YACLI,YAAa,CACZ,4DAGF,CACCD,MAAO,iCACPF,YAAa,gDAEb59B,MAAO,CAAC,YAAa,MAAO,SAAU,WAAY,SAAU,WAC5D09B,MAAO,gCACPC,IAAK,YACLI,YAAa,CACZ,wEAGF,CACCD,MAAO,qBACPF,YAAa,qEAEb59B,MAAO,CACN,SACA,MACA,iBACA,QACA,WACA,gBAED09B,MAAO,gCACPC,IAAK,qBACLI,YAAa,CAAC,wDAEf,CACCD,MAAO,iBACPF,YAAa,GAEb59B,MAAO,CACN,sBACA,MACA,QACA,iBACA,SACA,eACA,2BAED09B,MAAO,0BACPC,IAAK,aACLI,Y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","sources":["../node_modules/react/index.js","../node_modules/react/cjs/react-jsx-runtime.production.min.js","../node_modules/@material-ui/icons/Email.js","../node_modules/react/cjs/react.production.min.js","../node_modules/hoist-non-react-statics/dist/hoist-non-react-statics.cjs.js","../node_modules/scheduler/cjs/scheduler.production.min.js","../node_modules/@babel/runtime/helpers/interopRequireWildcard.js","../node_modules/@emotion/sheet/dist/sheet.browser.esm.js","../node_modules/@emotion/stylis/dist/stylis.browser.esm.js","../node_modules/@emotion/cache/dist/cache.browser.esm.js","../node_modules/@emotion/utils/dist/utils.browser.esm.js","../node_modules/@emotion/hash/dist/hash.browser.esm.js","../node_modules/@emotion/unitless/dist/unitless.browser.esm.js","../node_modules/@emotion/serialize/dist/serialize.browser.esm.js","../node_modules/@emotion/memoize/dist/memoize.browser.esm.js","../node_modules/@emotion/core/dist/emotion-element-04d85134.browser.esm.js","../node_modules/@emotion/css/dist/css.browser.esm.js","../node_modules/@emotion/core/dist/core.browser.esm.js","../node_modules/@material-ui/icons/GitHub.js","../node_modules/react-loading-skeleton/lib/index.js","../node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js","../node_modules/@babel/runtime/helpers/esm/inheritsLoose.js","../node_modules/react/jsx-runtime.js","../node_modules/@material-ui/icons/LinkedIn.js","../node_modules/@material-ui/utils/esm/formatMuiErrorMessage.js","../node_modules/@material-ui/core/esm/utils/capitalize.js","../node_modules/@material-ui/core/esm/utils/createChainedFunction.js","../node_modules/@babel/runtime/helpers/esm/extends.js","../node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js","../node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js","../node_modules/clsx/dist/clsx.m.js","../node_modules/is-in-browser/dist/module.js","../node_modules/@babel/runtime/helpers/esm/typeof.js","../node_modules/@babel/runtime/helpers/esm/toPropertyKey.js","../node_modules/@babel/runtime/helpers/esm/toPrimitive.js","../node_modules/@babel/runtime/helpers/esm/createClass.js","../node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js","../node_modules/jss/dist/jss.esm.js","../node_modules/@material-ui/styles/esm/mergeClasses/mergeClasses.js","../node_modules/@material-ui/styles/esm/makeStyles/multiKeyStore.js","../node_modules/@material-ui/styles/esm/useTheme/ThemeContext.js","../node_modules/@material-ui/styles/esm/useTheme/useTheme.js","../node_modules/@material-ui/styles/esm/ThemeProvider/nested.js","../node_modules/@material-ui/styles/esm/createGenerateClassName/createGenerateClassName.js","../node_modules/jss-plugin-rule-value-function/dist/jss-plugin-rule-value-function.esm.js","../node_modules/jss-plugin-global/dist/jss-plugin-global.esm.js","../node_modules/jss-plugin-nested/dist/jss-plugin-nested.esm.js","../node_modules/hyphenate-style-name/index.js","../node_modules/jss-plugin-camel-case/dist/jss-plugin-camel-case.esm.js","../node_modules/jss-plugin-default-unit/dist/jss-plugin-default-unit.esm.js","../node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js","../node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js","../node_modules/@babel/runtime/helpers/esm/toConsumableArray.js","../node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js","../node_modules/@babel/runtime/helpers/esm/iterableToArray.js","../node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js","../node_modules/css-vendor/dist/css-vendor.esm.js","../node_modules/jss-plugin-vendor-prefixer/dist/jss-plugin-vendor-prefixer.esm.js","../node_modules/jss-plugin-props-sort/dist/jss-plugin-props-sort.esm.js","../node_modules/@material-ui/styles/esm/StylesProvider/StylesProvider.js","../node_modules/@material-ui/styles/esm/jssPreset/jssPreset.js","../node_modules/@material-ui/styles/esm/makeStyles/indexCounter.js","../node_modules/@material-ui/utils/esm/deepmerge.js","../node_modules/@material-ui/styles/esm/getStylesCreator/noopTheme.js","../node_modules/@material-ui/styles/esm/makeStyles/makeStyles.js","../node_modules/@material-ui/styles/esm/getStylesCreator/getStylesCreator.js","../node_modules/@material-ui/styles/esm/withStyles/withStyles.js","../node_modules/@material-ui/styles/esm/getThemeProps/getThemeProps.js","../node_modules/@material-ui/core/esm/styles/createBreakpoints.js","../node_modules/@babel/runtime/helpers/esm/defineProperty.js","../node_modules/@material-ui/core/esm/styles/createMixins.js","../node_modules/@material-ui/core/esm/colors/common.js","../node_modules/@material-ui/core/esm/colors/grey.js","../node_modules/@material-ui/core/esm/colors/indigo.js","../node_modules/@material-ui/core/esm/colors/pink.js","../node_modules/@material-ui/core/esm/colors/red.js","../node_modules/@material-ui/core/esm/colors/orange.js","../node_modules/@material-ui/core/esm/colors/blue.js","../node_modules/@material-ui/core/esm/colors/green.js","../node_modules/@material-ui/core/esm/styles/colorManipulator.js","../node_modules/@material-ui/core/esm/styles/createPalette.js","../node_modules/@material-ui/core/esm/styles/createTypography.js","../node_modules/@material-ui/core/esm/styles/shadows.js","../node_modules/@material-ui/core/esm/styles/shape.js","../node_modules/@babel/runtime/helpers/esm/slicedToArray.js","../node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js","../node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js","../node_modules/@babel/runtime/helpers/esm/nonIterableRest.js","../node_modules/@material-ui/system/esm/breakpoints.js","../node_modules/@material-ui/system/esm/merge.js","../node_modules/@material-ui/system/esm/spacing.js","../node_modules/@material-ui/system/esm/memoize.js","../node_modules/@material-ui/core/esm/styles/transitions.js","../node_modules/@material-ui/core/esm/styles/zIndex.js","../node_modules/@material-ui/core/esm/styles/createTheme.js","../node_modules/@material-ui/core/esm/styles/createSpacing.js","../node_modules/@material-ui/core/esm/styles/defaultTheme.js","../node_modules/@material-ui/core/esm/styles/withStyles.js","../node_modules/@material-ui/core/esm/SvgIcon/SvgIcon.js","../node_modules/@material-ui/core/esm/utils/createSvgIcon.js","../node_modules/@material-ui/core/esm/utils/debounce.js","../node_modules/@material-ui/core/esm/utils/deprecatedPropType.js","../node_modules/@material-ui/core/esm/utils/isMuiElement.js","../node_modules/@material-ui/core/esm/utils/ownerDocument.js","../node_modules/@material-ui/core/esm/utils/ownerWindow.js","../node_modules/@material-ui/core/esm/utils/requirePropFactory.js","../node_modules/@material-ui/core/esm/utils/setRef.js","../node_modules/@material-ui/core/esm/utils/unsupportedProp.js","../node_modules/@material-ui/core/esm/utils/useControlled.js","../node_modules/@material-ui/core/esm/utils/useEventCallback.js","../node_modules/@material-ui/core/esm/utils/useForkRef.js","../node_modules/@material-ui/core/esm/utils/unstable_useId.js","../node_modules/@material-ui/core/esm/utils/useIsFocusVisible.js","../node_modules/react-dom/cjs/react-dom.production.min.js","../node_modules/@babel/runtime/helpers/typeof.js","../node_modules/hoist-non-react-statics/node_modules/react-is/index.js","../node_modules/react-tilt/dist/tilt.js","../node_modules/@material-ui/icons/utils/createSvgIcon.js","../node_modules/scheduler/index.js","../node_modules/@material-ui/icons/LocalPhone.js","../node_modules/react-dom/index.js","../node_modules/hoist-non-react-statics/node_modules/react-is/cjs/react-is.production.min.js","../node_modules/@babel/runtime/helpers/interopRequireDefault.js","../webpack/bootstrap","../webpack/runtime/compat get default export","../webpack/runtime/define property getters","../webpack/runtime/hasOwnProperty shorthand","../webpack/runtime/make namespace object","../webpack/runtime/publicPath","components/Filter.js","filtersToString.js","components/parallax.js","components/Project.js","data.js","../node_modules/chart.js/dist/chunks/helpers.segment.mjs","../node_modules/chart.js/dist/chart.mjs","../node_modules/chart.js/auto/auto.mjs","../node_modules/react-chartjs-2/node_modules/@swc/helpers/src/_object_spread.js","../node_modules/react-chartjs-2/node_modules/@swc/helpers/src/_define_property.js","../node_modules/react-chartjs-2/node_modules/@swc/helpers/src/_object_without_properties.js","../node_modules/react-chartjs-2/node_modules/@swc/helpers/src/_object_without_properties_loose.js","../node_modules/react-chartjs-2/node_modules/@swc/helpers/src/_sliced_to_array.js","../node_modules/react-chartjs-2/node_modules/@swc/helpers/src/_array_with_holes.js","../node_modules/react-chartjs-2/node_modules/@swc/helpers/src/_iterable_to_array.js","../node_modules/react-chartjs-2/node_modules/@swc/helpers/src/_non_iterable_rest.js","../node_modules/react-chartjs-2/src/utils.ts","../node_modules/react-chartjs-2/src/chart.tsx","../node_modules/react-chartjs-2/src/typedCharts.tsx","components/getLanguages.js","components/PieChart.js","App.js","index.js"],"sourcesContent":["'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react.production.min.js');\n} else {\n module.exports = require('./cjs/react.development.js');\n}\n","/**\n * @license React\n * react-jsx-runtime.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';var f=require(\"react\"),k=Symbol.for(\"react.element\"),l=Symbol.for(\"react.fragment\"),m=Object.prototype.hasOwnProperty,n=f.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,p={key:!0,ref:!0,__self:!0,__source:!0};\nfunction q(c,a,g){var b,d={},e=null,h=null;void 0!==g&&(e=\"\"+g);void 0!==a.key&&(e=\"\"+a.key);void 0!==a.ref&&(h=a.ref);for(b in a)m.call(a,b)&&!p.hasOwnProperty(b)&&(d[b]=a[b]);if(c&&c.defaultProps)for(b in a=c.defaultProps,a)void 0===d[b]&&(d[b]=a[b]);return{$$typeof:k,type:c,key:e,ref:h,props:d,_owner:n.current}}exports.Fragment=l;exports.jsx=q;exports.jsxs=q;\n","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar React = _interopRequireWildcard(require(\"react\"));\n\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\n\nvar _default = (0, _createSvgIcon.default)( /*#__PURE__*/React.createElement(\"path\", {\n d: \"M20 4H4c-1.1 0-1.99.9-1.99 2L2 18c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2zm0 4l-8 5-8-5V6l8 5 8-5v2z\"\n}), 'Email');\n\nexports.default = _default;","/**\n * @license React\n * react.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';var l=Symbol.for(\"react.element\"),n=Symbol.for(\"react.portal\"),p=Symbol.for(\"react.fragment\"),q=Symbol.for(\"react.strict_mode\"),r=Symbol.for(\"react.profiler\"),t=Symbol.for(\"react.provider\"),u=Symbol.for(\"react.context\"),v=Symbol.for(\"react.forward_ref\"),w=Symbol.for(\"react.suspense\"),x=Symbol.for(\"react.memo\"),y=Symbol.for(\"react.lazy\"),z=Symbol.iterator;function A(a){if(null===a||\"object\"!==typeof a)return null;a=z&&a[z]||a[\"@@iterator\"];return\"function\"===typeof a?a:null}\nvar B={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},C=Object.assign,D={};function E(a,b,e){this.props=a;this.context=b;this.refs=D;this.updater=e||B}E.prototype.isReactComponent={};\nE.prototype.setState=function(a,b){if(\"object\"!==typeof a&&\"function\"!==typeof a&&null!=a)throw Error(\"setState(...): takes an object of state variables to update or a function which returns an object of state variables.\");this.updater.enqueueSetState(this,a,b,\"setState\")};E.prototype.forceUpdate=function(a){this.updater.enqueueForceUpdate(this,a,\"forceUpdate\")};function F(){}F.prototype=E.prototype;function G(a,b,e){this.props=a;this.context=b;this.refs=D;this.updater=e||B}var H=G.prototype=new F;\nH.constructor=G;C(H,E.prototype);H.isPureReactComponent=!0;var I=Array.isArray,J=Object.prototype.hasOwnProperty,K={current:null},L={key:!0,ref:!0,__self:!0,__source:!0};\nfunction M(a,b,e){var d,c={},k=null,h=null;if(null!=b)for(d in void 0!==b.ref&&(h=b.ref),void 0!==b.key&&(k=\"\"+b.key),b)J.call(b,d)&&!L.hasOwnProperty(d)&&(c[d]=b[d]);var g=arguments.length-2;if(1===g)c.children=e;else if(1>>1,e=a[d];if(0>>1;dg(C,c))ng(x,C)?(a[d]=x,a[n]=c,d=n):(a[d]=C,a[m]=c,d=m);else if(ng(x,c))a[d]=x,a[n]=c,d=n;else break a}}return b}\nfunction g(a,b){var c=a.sortIndex-b.sortIndex;return 0!==c?c:a.id-b.id}if(\"object\"===typeof performance&&\"function\"===typeof performance.now){var l=performance;exports.unstable_now=function(){return l.now()}}else{var p=Date,q=p.now();exports.unstable_now=function(){return p.now()-q}}var r=[],t=[],u=1,v=null,y=3,z=!1,A=!1,B=!1,D=\"function\"===typeof setTimeout?setTimeout:null,E=\"function\"===typeof clearTimeout?clearTimeout:null,F=\"undefined\"!==typeof setImmediate?setImmediate:null;\n\"undefined\"!==typeof navigator&&void 0!==navigator.scheduling&&void 0!==navigator.scheduling.isInputPending&&navigator.scheduling.isInputPending.bind(navigator.scheduling);function G(a){for(var b=h(t);null!==b;){if(null===b.callback)k(t);else if(b.startTime<=a)k(t),b.sortIndex=b.expirationTime,f(r,b);else break;b=h(t)}}function H(a){B=!1;G(a);if(!A)if(null!==h(r))A=!0,I(J);else{var b=h(t);null!==b&&K(H,b.startTime-a)}}\nfunction J(a,b){A=!1;B&&(B=!1,E(L),L=-1);z=!0;var c=y;try{G(b);for(v=h(r);null!==v&&(!(v.expirationTime>b)||a&&!M());){var d=v.callback;if(\"function\"===typeof d){v.callback=null;y=v.priorityLevel;var e=d(v.expirationTime<=b);b=exports.unstable_now();\"function\"===typeof e?v.callback=e:v===h(r)&&k(r);G(b)}else k(r);v=h(r)}if(null!==v)var w=!0;else{var m=h(t);null!==m&&K(H,m.startTime-b);w=!1}return w}finally{v=null,y=c,z=!1}}var N=!1,O=null,L=-1,P=5,Q=-1;\nfunction M(){return exports.unstable_now()-Qa||125d?(a.sortIndex=c,f(t,a),null===h(r)&&a===h(t)&&(B?(E(L),L=-1):B=!0,K(H,c-d))):(a.sortIndex=e,f(r,a),A||z||(A=!0,I(J)));return a};\nexports.unstable_shouldYield=M;exports.unstable_wrapCallback=function(a){var b=y;return function(){var c=y;y=b;try{return a.apply(this,arguments)}finally{y=c}}};\n","var _typeof = require(\"./typeof.js\")[\"default\"];\nfunction _getRequireWildcardCache(e) {\n if (\"function\" != typeof WeakMap) return null;\n var r = new WeakMap(),\n t = new WeakMap();\n return (_getRequireWildcardCache = function _getRequireWildcardCache(e) {\n return e ? t : r;\n })(e);\n}\nfunction _interopRequireWildcard(e, r) {\n if (!r && e && e.__esModule) return e;\n if (null === e || \"object\" != _typeof(e) && \"function\" != typeof e) return {\n \"default\": e\n };\n var t = _getRequireWildcardCache(r);\n if (t && t.has(e)) return t.get(e);\n var n = {\n __proto__: null\n },\n a = Object.defineProperty && Object.getOwnPropertyDescriptor;\n for (var u in e) if (\"default\" !== u && {}.hasOwnProperty.call(e, u)) {\n var i = a ? Object.getOwnPropertyDescriptor(e, u) : null;\n i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u];\n }\n return n[\"default\"] = e, t && t.set(e, n), n;\n}\nmodule.exports = _interopRequireWildcard, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","/*\n\nBased off glamor's StyleSheet, thanks Sunil ❤️\n\nhigh performance StyleSheet for css-in-js systems\n\n- uses multiple style tags behind the scenes for millions of rules\n- uses `insertRule` for appending in production for *much* faster performance\n\n// usage\n\nimport { StyleSheet } from '@emotion/sheet'\n\nlet styleSheet = new StyleSheet({ key: '', container: document.head })\n\nstyleSheet.insert('#box { border: 1px solid red; }')\n- appends a css rule into the stylesheet\n\nstyleSheet.flush()\n- empties the stylesheet of all its contents\n\n*/\n// $FlowFixMe\nfunction sheetForTag(tag) {\n if (tag.sheet) {\n // $FlowFixMe\n return tag.sheet;\n } // this weirdness brought to you by firefox\n\n /* istanbul ignore next */\n\n\n for (var i = 0; i < document.styleSheets.length; i++) {\n if (document.styleSheets[i].ownerNode === tag) {\n // $FlowFixMe\n return document.styleSheets[i];\n }\n }\n}\n\nfunction createStyleElement(options) {\n var tag = document.createElement('style');\n tag.setAttribute('data-emotion', options.key);\n\n if (options.nonce !== undefined) {\n tag.setAttribute('nonce', options.nonce);\n }\n\n tag.appendChild(document.createTextNode(''));\n return tag;\n}\n\nvar StyleSheet =\n/*#__PURE__*/\nfunction () {\n function StyleSheet(options) {\n this.isSpeedy = options.speedy === undefined ? process.env.NODE_ENV === 'production' : options.speedy;\n this.tags = [];\n this.ctr = 0;\n this.nonce = options.nonce; // key is the value of the data-emotion attribute, it's used to identify different sheets\n\n this.key = options.key;\n this.container = options.container;\n this.before = null;\n }\n\n var _proto = StyleSheet.prototype;\n\n _proto.insert = function insert(rule) {\n // the max length is how many rules we have per style tag, it's 65000 in speedy mode\n // it's 1 in dev because we insert source maps that map a single rule to a location\n // and you can only have one source map per style tag\n if (this.ctr % (this.isSpeedy ? 65000 : 1) === 0) {\n var _tag = createStyleElement(this);\n\n var before;\n\n if (this.tags.length === 0) {\n before = this.before;\n } else {\n before = this.tags[this.tags.length - 1].nextSibling;\n }\n\n this.container.insertBefore(_tag, before);\n this.tags.push(_tag);\n }\n\n var tag = this.tags[this.tags.length - 1];\n\n if (this.isSpeedy) {\n var sheet = sheetForTag(tag);\n\n try {\n // this is a really hot path\n // we check the second character first because having \"i\"\n // as the second character will happen less often than\n // having \"@\" as the first character\n var isImportRule = rule.charCodeAt(1) === 105 && rule.charCodeAt(0) === 64; // this is the ultrafast version, works across browsers\n // the big drawback is that the css won't be editable in devtools\n\n sheet.insertRule(rule, // we need to insert @import rules before anything else\n // otherwise there will be an error\n // technically this means that the @import rules will\n // _usually_(not always since there could be multiple style tags)\n // be the first ones in prod and generally later in dev\n // this shouldn't really matter in the real world though\n // @import is generally only used for font faces from google fonts and etc.\n // so while this could be technically correct then it would be slower and larger\n // for a tiny bit of correctness that won't matter in the real world\n isImportRule ? 0 : sheet.cssRules.length);\n } catch (e) {\n if (process.env.NODE_ENV !== 'production') {\n console.warn(\"There was a problem inserting the following rule: \\\"\" + rule + \"\\\"\", e);\n }\n }\n } else {\n tag.appendChild(document.createTextNode(rule));\n }\n\n this.ctr++;\n };\n\n _proto.flush = function flush() {\n // $FlowFixMe\n this.tags.forEach(function (tag) {\n return tag.parentNode.removeChild(tag);\n });\n this.tags = [];\n this.ctr = 0;\n };\n\n return StyleSheet;\n}();\n\nexport { StyleSheet };\n","function stylis_min (W) {\n function M(d, c, e, h, a) {\n for (var m = 0, b = 0, v = 0, n = 0, q, g, x = 0, K = 0, k, u = k = q = 0, l = 0, r = 0, I = 0, t = 0, B = e.length, J = B - 1, y, f = '', p = '', F = '', G = '', C; l < B;) {\n g = e.charCodeAt(l);\n l === J && 0 !== b + n + v + m && (0 !== b && (g = 47 === b ? 10 : 47), n = v = m = 0, B++, J++);\n\n if (0 === b + n + v + m) {\n if (l === J && (0 < r && (f = f.replace(N, '')), 0 < f.trim().length)) {\n switch (g) {\n case 32:\n case 9:\n case 59:\n case 13:\n case 10:\n break;\n\n default:\n f += e.charAt(l);\n }\n\n g = 59;\n }\n\n switch (g) {\n case 123:\n f = f.trim();\n q = f.charCodeAt(0);\n k = 1;\n\n for (t = ++l; l < B;) {\n switch (g = e.charCodeAt(l)) {\n case 123:\n k++;\n break;\n\n case 125:\n k--;\n break;\n\n case 47:\n switch (g = e.charCodeAt(l + 1)) {\n case 42:\n case 47:\n a: {\n for (u = l + 1; u < J; ++u) {\n switch (e.charCodeAt(u)) {\n case 47:\n if (42 === g && 42 === e.charCodeAt(u - 1) && l + 2 !== u) {\n l = u + 1;\n break a;\n }\n\n break;\n\n case 10:\n if (47 === g) {\n l = u + 1;\n break a;\n }\n\n }\n }\n\n l = u;\n }\n\n }\n\n break;\n\n case 91:\n g++;\n\n case 40:\n g++;\n\n case 34:\n case 39:\n for (; l++ < J && e.charCodeAt(l) !== g;) {\n }\n\n }\n\n if (0 === k) break;\n l++;\n }\n\n k = e.substring(t, l);\n 0 === q && (q = (f = f.replace(ca, '').trim()).charCodeAt(0));\n\n switch (q) {\n case 64:\n 0 < r && (f = f.replace(N, ''));\n g = f.charCodeAt(1);\n\n switch (g) {\n case 100:\n case 109:\n case 115:\n case 45:\n r = c;\n break;\n\n default:\n r = O;\n }\n\n k = M(c, r, k, g, a + 1);\n t = k.length;\n 0 < A && (r = X(O, f, I), C = H(3, k, r, c, D, z, t, g, a, h), f = r.join(''), void 0 !== C && 0 === (t = (k = C.trim()).length) && (g = 0, k = ''));\n if (0 < t) switch (g) {\n case 115:\n f = f.replace(da, ea);\n\n case 100:\n case 109:\n case 45:\n k = f + '{' + k + '}';\n break;\n\n case 107:\n f = f.replace(fa, '$1 $2');\n k = f + '{' + k + '}';\n k = 1 === w || 2 === w && L('@' + k, 3) ? '@-webkit-' + k + '@' + k : '@' + k;\n break;\n\n default:\n k = f + k, 112 === h && (k = (p += k, ''));\n } else k = '';\n break;\n\n default:\n k = M(c, X(c, f, I), k, h, a + 1);\n }\n\n F += k;\n k = I = r = u = q = 0;\n f = '';\n g = e.charCodeAt(++l);\n break;\n\n case 125:\n case 59:\n f = (0 < r ? f.replace(N, '') : f).trim();\n if (1 < (t = f.length)) switch (0 === u && (q = f.charCodeAt(0), 45 === q || 96 < q && 123 > q) && (t = (f = f.replace(' ', ':')).length), 0 < A && void 0 !== (C = H(1, f, c, d, D, z, p.length, h, a, h)) && 0 === (t = (f = C.trim()).length) && (f = '\\x00\\x00'), q = f.charCodeAt(0), g = f.charCodeAt(1), q) {\n case 0:\n break;\n\n case 64:\n if (105 === g || 99 === g) {\n G += f + e.charAt(l);\n break;\n }\n\n default:\n 58 !== f.charCodeAt(t - 1) && (p += P(f, q, g, f.charCodeAt(2)));\n }\n I = r = u = q = 0;\n f = '';\n g = e.charCodeAt(++l);\n }\n }\n\n switch (g) {\n case 13:\n case 10:\n 47 === b ? b = 0 : 0 === 1 + q && 107 !== h && 0 < f.length && (r = 1, f += '\\x00');\n 0 < A * Y && H(0, f, c, d, D, z, p.length, h, a, h);\n z = 1;\n D++;\n break;\n\n case 59:\n case 125:\n if (0 === b + n + v + m) {\n z++;\n break;\n }\n\n default:\n z++;\n y = e.charAt(l);\n\n switch (g) {\n case 9:\n case 32:\n if (0 === n + m + b) switch (x) {\n case 44:\n case 58:\n case 9:\n case 32:\n y = '';\n break;\n\n default:\n 32 !== g && (y = ' ');\n }\n break;\n\n case 0:\n y = '\\\\0';\n break;\n\n case 12:\n y = '\\\\f';\n break;\n\n case 11:\n y = '\\\\v';\n break;\n\n case 38:\n 0 === n + b + m && (r = I = 1, y = '\\f' + y);\n break;\n\n case 108:\n if (0 === n + b + m + E && 0 < u) switch (l - u) {\n case 2:\n 112 === x && 58 === e.charCodeAt(l - 3) && (E = x);\n\n case 8:\n 111 === K && (E = K);\n }\n break;\n\n case 58:\n 0 === n + b + m && (u = l);\n break;\n\n case 44:\n 0 === b + v + n + m && (r = 1, y += '\\r');\n break;\n\n case 34:\n case 39:\n 0 === b && (n = n === g ? 0 : 0 === n ? g : n);\n break;\n\n case 91:\n 0 === n + b + v && m++;\n break;\n\n case 93:\n 0 === n + b + v && m--;\n break;\n\n case 41:\n 0 === n + b + m && v--;\n break;\n\n case 40:\n if (0 === n + b + m) {\n if (0 === q) switch (2 * x + 3 * K) {\n case 533:\n break;\n\n default:\n q = 1;\n }\n v++;\n }\n\n break;\n\n case 64:\n 0 === b + v + n + m + u + k && (k = 1);\n break;\n\n case 42:\n case 47:\n if (!(0 < n + m + v)) switch (b) {\n case 0:\n switch (2 * g + 3 * e.charCodeAt(l + 1)) {\n case 235:\n b = 47;\n break;\n\n case 220:\n t = l, b = 42;\n }\n\n break;\n\n case 42:\n 47 === g && 42 === x && t + 2 !== l && (33 === e.charCodeAt(t + 2) && (p += e.substring(t, l + 1)), y = '', b = 0);\n }\n }\n\n 0 === b && (f += y);\n }\n\n K = x;\n x = g;\n l++;\n }\n\n t = p.length;\n\n if (0 < t) {\n r = c;\n if (0 < A && (C = H(2, p, r, d, D, z, t, h, a, h), void 0 !== C && 0 === (p = C).length)) return G + p + F;\n p = r.join(',') + '{' + p + '}';\n\n if (0 !== w * E) {\n 2 !== w || L(p, 2) || (E = 0);\n\n switch (E) {\n case 111:\n p = p.replace(ha, ':-moz-$1') + p;\n break;\n\n case 112:\n p = p.replace(Q, '::-webkit-input-$1') + p.replace(Q, '::-moz-$1') + p.replace(Q, ':-ms-input-$1') + p;\n }\n\n E = 0;\n }\n }\n\n return G + p + F;\n }\n\n function X(d, c, e) {\n var h = c.trim().split(ia);\n c = h;\n var a = h.length,\n m = d.length;\n\n switch (m) {\n case 0:\n case 1:\n var b = 0;\n\n for (d = 0 === m ? '' : d[0] + ' '; b < a; ++b) {\n c[b] = Z(d, c[b], e).trim();\n }\n\n break;\n\n default:\n var v = b = 0;\n\n for (c = []; b < a; ++b) {\n for (var n = 0; n < m; ++n) {\n c[v++] = Z(d[n] + ' ', h[b], e).trim();\n }\n }\n\n }\n\n return c;\n }\n\n function Z(d, c, e) {\n var h = c.charCodeAt(0);\n 33 > h && (h = (c = c.trim()).charCodeAt(0));\n\n switch (h) {\n case 38:\n return c.replace(F, '$1' + d.trim());\n\n case 58:\n return d.trim() + c.replace(F, '$1' + d.trim());\n\n default:\n if (0 < 1 * e && 0 < c.indexOf('\\f')) return c.replace(F, (58 === d.charCodeAt(0) ? '' : '$1') + d.trim());\n }\n\n return d + c;\n }\n\n function P(d, c, e, h) {\n var a = d + ';',\n m = 2 * c + 3 * e + 4 * h;\n\n if (944 === m) {\n d = a.indexOf(':', 9) + 1;\n var b = a.substring(d, a.length - 1).trim();\n b = a.substring(0, d).trim() + b + ';';\n return 1 === w || 2 === w && L(b, 1) ? '-webkit-' + b + b : b;\n }\n\n if (0 === w || 2 === w && !L(a, 1)) return a;\n\n switch (m) {\n case 1015:\n return 97 === a.charCodeAt(10) ? '-webkit-' + a + a : a;\n\n case 951:\n return 116 === a.charCodeAt(3) ? '-webkit-' + a + a : a;\n\n case 963:\n return 110 === a.charCodeAt(5) ? '-webkit-' + a + a : a;\n\n case 1009:\n if (100 !== a.charCodeAt(4)) break;\n\n case 969:\n case 942:\n return '-webkit-' + a + a;\n\n case 978:\n return '-webkit-' + a + '-moz-' + a + a;\n\n case 1019:\n case 983:\n return '-webkit-' + a + '-moz-' + a + '-ms-' + a + a;\n\n case 883:\n if (45 === a.charCodeAt(8)) return '-webkit-' + a + a;\n if (0 < a.indexOf('image-set(', 11)) return a.replace(ja, '$1-webkit-$2') + a;\n break;\n\n case 932:\n if (45 === a.charCodeAt(4)) switch (a.charCodeAt(5)) {\n case 103:\n return '-webkit-box-' + a.replace('-grow', '') + '-webkit-' + a + '-ms-' + a.replace('grow', 'positive') + a;\n\n case 115:\n return '-webkit-' + a + '-ms-' + a.replace('shrink', 'negative') + a;\n\n case 98:\n return '-webkit-' + a + '-ms-' + a.replace('basis', 'preferred-size') + a;\n }\n return '-webkit-' + a + '-ms-' + a + a;\n\n case 964:\n return '-webkit-' + a + '-ms-flex-' + a + a;\n\n case 1023:\n if (99 !== a.charCodeAt(8)) break;\n b = a.substring(a.indexOf(':', 15)).replace('flex-', '').replace('space-between', 'justify');\n return '-webkit-box-pack' + b + '-webkit-' + a + '-ms-flex-pack' + b + a;\n\n case 1005:\n return ka.test(a) ? a.replace(aa, ':-webkit-') + a.replace(aa, ':-moz-') + a : a;\n\n case 1e3:\n b = a.substring(13).trim();\n c = b.indexOf('-') + 1;\n\n switch (b.charCodeAt(0) + b.charCodeAt(c)) {\n case 226:\n b = a.replace(G, 'tb');\n break;\n\n case 232:\n b = a.replace(G, 'tb-rl');\n break;\n\n case 220:\n b = a.replace(G, 'lr');\n break;\n\n default:\n return a;\n }\n\n return '-webkit-' + a + '-ms-' + b + a;\n\n case 1017:\n if (-1 === a.indexOf('sticky', 9)) break;\n\n case 975:\n c = (a = d).length - 10;\n b = (33 === a.charCodeAt(c) ? a.substring(0, c) : a).substring(d.indexOf(':', 7) + 1).trim();\n\n switch (m = b.charCodeAt(0) + (b.charCodeAt(7) | 0)) {\n case 203:\n if (111 > b.charCodeAt(8)) break;\n\n case 115:\n a = a.replace(b, '-webkit-' + b) + ';' + a;\n break;\n\n case 207:\n case 102:\n a = a.replace(b, '-webkit-' + (102 < m ? 'inline-' : '') + 'box') + ';' + a.replace(b, '-webkit-' + b) + ';' + a.replace(b, '-ms-' + b + 'box') + ';' + a;\n }\n\n return a + ';';\n\n case 938:\n if (45 === a.charCodeAt(5)) switch (a.charCodeAt(6)) {\n case 105:\n return b = a.replace('-items', ''), '-webkit-' + a + '-webkit-box-' + b + '-ms-flex-' + b + a;\n\n case 115:\n return '-webkit-' + a + '-ms-flex-item-' + a.replace(ba, '') + a;\n\n default:\n return '-webkit-' + a + '-ms-flex-line-pack' + a.replace('align-content', '').replace(ba, '') + a;\n }\n break;\n\n case 973:\n case 989:\n if (45 !== a.charCodeAt(3) || 122 === a.charCodeAt(4)) break;\n\n case 931:\n case 953:\n if (!0 === la.test(d)) return 115 === (b = d.substring(d.indexOf(':') + 1)).charCodeAt(0) ? P(d.replace('stretch', 'fill-available'), c, e, h).replace(':fill-available', ':stretch') : a.replace(b, '-webkit-' + b) + a.replace(b, '-moz-' + b.replace('fill-', '')) + a;\n break;\n\n case 962:\n if (a = '-webkit-' + a + (102 === a.charCodeAt(5) ? '-ms-' + a : '') + a, 211 === e + h && 105 === a.charCodeAt(13) && 0 < a.indexOf('transform', 10)) return a.substring(0, a.indexOf(';', 27) + 1).replace(ma, '$1-webkit-$2') + a;\n }\n\n return a;\n }\n\n function L(d, c) {\n var e = d.indexOf(1 === c ? ':' : '{'),\n h = d.substring(0, 3 !== c ? e : 10);\n e = d.substring(e + 1, d.length - 1);\n return R(2 !== c ? h : h.replace(na, '$1'), e, c);\n }\n\n function ea(d, c) {\n var e = P(c, c.charCodeAt(0), c.charCodeAt(1), c.charCodeAt(2));\n return e !== c + ';' ? e.replace(oa, ' or ($1)').substring(4) : '(' + c + ')';\n }\n\n function H(d, c, e, h, a, m, b, v, n, q) {\n for (var g = 0, x = c, w; g < A; ++g) {\n switch (w = S[g].call(B, d, x, e, h, a, m, b, v, n, q)) {\n case void 0:\n case !1:\n case !0:\n case null:\n break;\n\n default:\n x = w;\n }\n }\n\n if (x !== c) return x;\n }\n\n function T(d) {\n switch (d) {\n case void 0:\n case null:\n A = S.length = 0;\n break;\n\n default:\n if ('function' === typeof d) S[A++] = d;else if ('object' === typeof d) for (var c = 0, e = d.length; c < e; ++c) {\n T(d[c]);\n } else Y = !!d | 0;\n }\n\n return T;\n }\n\n function U(d) {\n d = d.prefix;\n void 0 !== d && (R = null, d ? 'function' !== typeof d ? w = 1 : (w = 2, R = d) : w = 0);\n return U;\n }\n\n function B(d, c) {\n var e = d;\n 33 > e.charCodeAt(0) && (e = e.trim());\n V = e;\n e = [V];\n\n if (0 < A) {\n var h = H(-1, c, e, e, D, z, 0, 0, 0, 0);\n void 0 !== h && 'string' === typeof h && (c = h);\n }\n\n var a = M(O, e, c, 0, 0);\n 0 < A && (h = H(-2, a, e, e, D, z, a.length, 0, 0, 0), void 0 !== h && (a = h));\n V = '';\n E = 0;\n z = D = 1;\n return a;\n }\n\n var ca = /^\\0+/g,\n N = /[\\0\\r\\f]/g,\n aa = /: */g,\n ka = /zoo|gra/,\n ma = /([,: ])(transform)/g,\n ia = /,\\r+?/g,\n F = /([\\t\\r\\n ])*\\f?&/g,\n fa = /@(k\\w+)\\s*(\\S*)\\s*/,\n Q = /::(place)/g,\n ha = /:(read-only)/g,\n G = /[svh]\\w+-[tblr]{2}/,\n da = /\\(\\s*(.*)\\s*\\)/g,\n oa = /([\\s\\S]*?);/g,\n ba = /-self|flex-/g,\n na = /[^]*?(:[rp][el]a[\\w-]+)[^]*/,\n la = /stretch|:\\s*\\w+\\-(?:conte|avail)/,\n ja = /([^-])(image-set\\()/,\n z = 1,\n D = 1,\n E = 0,\n w = 1,\n O = [],\n S = [],\n A = 0,\n R = null,\n Y = 0,\n V = '';\n B.use = T;\n B.set = U;\n void 0 !== W && U(W);\n return B;\n}\n\nexport default stylis_min;\n","import { StyleSheet } from '@emotion/sheet';\nimport Stylis from '@emotion/stylis';\nimport '@emotion/weak-memoize';\n\n// https://github.com/thysultan/stylis.js/tree/master/plugins/rule-sheet\n// inlined to avoid umd wrapper and peerDep warnings/installing stylis\n// since we use stylis after closure compiler\nvar delimiter = '/*|*/';\nvar needle = delimiter + '}';\n\nfunction toSheet(block) {\n if (block) {\n Sheet.current.insert(block + '}');\n }\n}\n\nvar Sheet = {\n current: null\n};\nvar ruleSheet = function ruleSheet(context, content, selectors, parents, line, column, length, ns, depth, at) {\n switch (context) {\n // property\n case 1:\n {\n switch (content.charCodeAt(0)) {\n case 64:\n {\n // @import\n Sheet.current.insert(content + ';');\n return '';\n }\n // charcode for l\n\n case 108:\n {\n // charcode for b\n // this ignores label\n if (content.charCodeAt(2) === 98) {\n return '';\n }\n }\n }\n\n break;\n }\n // selector\n\n case 2:\n {\n if (ns === 0) return content + delimiter;\n break;\n }\n // at-rule\n\n case 3:\n {\n switch (ns) {\n // @font-face, @page\n case 102:\n case 112:\n {\n Sheet.current.insert(selectors[0] + content);\n return '';\n }\n\n default:\n {\n return content + (at === 0 ? delimiter : '');\n }\n }\n }\n\n case -2:\n {\n content.split(needle).forEach(toSheet);\n }\n }\n};\n\nvar createCache = function createCache(options) {\n if (options === undefined) options = {};\n var key = options.key || 'css';\n var stylisOptions;\n\n if (options.prefix !== undefined) {\n stylisOptions = {\n prefix: options.prefix\n };\n }\n\n var stylis = new Stylis(stylisOptions);\n\n if (process.env.NODE_ENV !== 'production') {\n // $FlowFixMe\n if (/[^a-z-]/.test(key)) {\n throw new Error(\"Emotion key must only contain lower case alphabetical characters and - but \\\"\" + key + \"\\\" was passed\");\n }\n }\n\n var inserted = {}; // $FlowFixMe\n\n var container;\n\n {\n container = options.container || document.head;\n var nodes = document.querySelectorAll(\"style[data-emotion-\" + key + \"]\");\n Array.prototype.forEach.call(nodes, function (node) {\n var attrib = node.getAttribute(\"data-emotion-\" + key); // $FlowFixMe\n\n attrib.split(' ').forEach(function (id) {\n inserted[id] = true;\n });\n\n if (node.parentNode !== container) {\n container.appendChild(node);\n }\n });\n }\n\n var _insert;\n\n {\n stylis.use(options.stylisPlugins)(ruleSheet);\n\n _insert = function insert(selector, serialized, sheet, shouldCache) {\n var name = serialized.name;\n Sheet.current = sheet;\n\n if (process.env.NODE_ENV !== 'production' && serialized.map !== undefined) {\n var map = serialized.map;\n Sheet.current = {\n insert: function insert(rule) {\n sheet.insert(rule + map);\n }\n };\n }\n\n stylis(selector, serialized.styles);\n\n if (shouldCache) {\n cache.inserted[name] = true;\n }\n };\n }\n\n if (process.env.NODE_ENV !== 'production') {\n // https://esbench.com/bench/5bf7371a4cd7e6009ef61d0a\n var commentStart = /\\/\\*/g;\n var commentEnd = /\\*\\//g;\n stylis.use(function (context, content) {\n switch (context) {\n case -1:\n {\n while (commentStart.test(content)) {\n commentEnd.lastIndex = commentStart.lastIndex;\n\n if (commentEnd.test(content)) {\n commentStart.lastIndex = commentEnd.lastIndex;\n continue;\n }\n\n throw new Error('Your styles have an unterminated comment (\"/*\" without corresponding \"*/\").');\n }\n\n commentStart.lastIndex = 0;\n break;\n }\n }\n });\n stylis.use(function (context, content, selectors) {\n switch (context) {\n case -1:\n {\n var flag = 'emotion-disable-server-rendering-unsafe-selector-warning-please-do-not-use-this-the-warning-exists-for-a-reason';\n var unsafePseudoClasses = content.match(/(:first|:nth|:nth-last)-child/g);\n\n if (unsafePseudoClasses && cache.compat !== true) {\n unsafePseudoClasses.forEach(function (unsafePseudoClass) {\n var ignoreRegExp = new RegExp(unsafePseudoClass + \".*\\\\/\\\\* \" + flag + \" \\\\*\\\\/\");\n var ignore = ignoreRegExp.test(content);\n\n if (unsafePseudoClass && !ignore) {\n console.error(\"The pseudo class \\\"\" + unsafePseudoClass + \"\\\" is potentially unsafe when doing server-side rendering. Try changing it to \\\"\" + unsafePseudoClass.split('-child')[0] + \"-of-type\\\".\");\n }\n });\n }\n\n break;\n }\n }\n });\n }\n\n var cache = {\n key: key,\n sheet: new StyleSheet({\n key: key,\n container: container,\n nonce: options.nonce,\n speedy: options.speedy\n }),\n nonce: options.nonce,\n inserted: inserted,\n registered: {},\n insert: _insert\n };\n return cache;\n};\n\nexport default createCache;\n","var isBrowser = \"object\" !== 'undefined';\nfunction getRegisteredStyles(registered, registeredStyles, classNames) {\n var rawClassName = '';\n classNames.split(' ').forEach(function (className) {\n if (registered[className] !== undefined) {\n registeredStyles.push(registered[className]);\n } else {\n rawClassName += className + \" \";\n }\n });\n return rawClassName;\n}\nvar insertStyles = function insertStyles(cache, serialized, isStringTag) {\n var className = cache.key + \"-\" + serialized.name;\n\n if ( // we only need to add the styles to the registered cache if the\n // class name could be used further down\n // the tree but if it's a string tag, we know it won't\n // so we don't have to add it to registered cache.\n // this improves memory usage since we can avoid storing the whole style string\n (isStringTag === false || // we need to always store it if we're in compat mode and\n // in node since emotion-server relies on whether a style is in\n // the registered cache to know whether a style is global or not\n // also, note that this check will be dead code eliminated in the browser\n isBrowser === false && cache.compat !== undefined) && cache.registered[className] === undefined) {\n cache.registered[className] = serialized.styles;\n }\n\n if (cache.inserted[serialized.name] === undefined) {\n var current = serialized;\n\n do {\n var maybeStyles = cache.insert(\".\" + className, current, cache.sheet, true);\n\n current = current.next;\n } while (current !== undefined);\n }\n};\n\nexport { getRegisteredStyles, insertStyles };\n","/* eslint-disable */\n// Inspired by https://github.com/garycourt/murmurhash-js\n// Ported from https://github.com/aappleby/smhasher/blob/61a0530f28277f2e850bfc39600ce61d02b518de/src/MurmurHash2.cpp#L37-L86\nfunction murmur2(str) {\n // 'm' and 'r' are mixing constants generated offline.\n // They're not really 'magic', they just happen to work well.\n // const m = 0x5bd1e995;\n // const r = 24;\n // Initialize the hash\n var h = 0; // Mix 4 bytes at a time into the hash\n\n var k,\n i = 0,\n len = str.length;\n\n for (; len >= 4; ++i, len -= 4) {\n k = str.charCodeAt(i) & 0xff | (str.charCodeAt(++i) & 0xff) << 8 | (str.charCodeAt(++i) & 0xff) << 16 | (str.charCodeAt(++i) & 0xff) << 24;\n k =\n /* Math.imul(k, m): */\n (k & 0xffff) * 0x5bd1e995 + ((k >>> 16) * 0xe995 << 16);\n k ^=\n /* k >>> r: */\n k >>> 24;\n h =\n /* Math.imul(k, m): */\n (k & 0xffff) * 0x5bd1e995 + ((k >>> 16) * 0xe995 << 16) ^\n /* Math.imul(h, m): */\n (h & 0xffff) * 0x5bd1e995 + ((h >>> 16) * 0xe995 << 16);\n } // Handle the last few bytes of the input array\n\n\n switch (len) {\n case 3:\n h ^= (str.charCodeAt(i + 2) & 0xff) << 16;\n\n case 2:\n h ^= (str.charCodeAt(i + 1) & 0xff) << 8;\n\n case 1:\n h ^= str.charCodeAt(i) & 0xff;\n h =\n /* Math.imul(h, m): */\n (h & 0xffff) * 0x5bd1e995 + ((h >>> 16) * 0xe995 << 16);\n } // Do a few final mixes of the hash to ensure the last few\n // bytes are well-incorporated.\n\n\n h ^= h >>> 13;\n h =\n /* Math.imul(h, m): */\n (h & 0xffff) * 0x5bd1e995 + ((h >>> 16) * 0xe995 << 16);\n return ((h ^ h >>> 15) >>> 0).toString(36);\n}\n\nexport default murmur2;\n","var unitlessKeys = {\n animationIterationCount: 1,\n borderImageOutset: 1,\n borderImageSlice: 1,\n borderImageWidth: 1,\n boxFlex: 1,\n boxFlexGroup: 1,\n boxOrdinalGroup: 1,\n columnCount: 1,\n columns: 1,\n flex: 1,\n flexGrow: 1,\n flexPositive: 1,\n flexShrink: 1,\n flexNegative: 1,\n flexOrder: 1,\n gridRow: 1,\n gridRowEnd: 1,\n gridRowSpan: 1,\n gridRowStart: 1,\n gridColumn: 1,\n gridColumnEnd: 1,\n gridColumnSpan: 1,\n gridColumnStart: 1,\n msGridRow: 1,\n msGridRowSpan: 1,\n msGridColumn: 1,\n msGridColumnSpan: 1,\n fontWeight: 1,\n lineHeight: 1,\n opacity: 1,\n order: 1,\n orphans: 1,\n tabSize: 1,\n widows: 1,\n zIndex: 1,\n zoom: 1,\n WebkitLineClamp: 1,\n // SVG-related properties\n fillOpacity: 1,\n floodOpacity: 1,\n stopOpacity: 1,\n strokeDasharray: 1,\n strokeDashoffset: 1,\n strokeMiterlimit: 1,\n strokeOpacity: 1,\n strokeWidth: 1\n};\n\nexport default unitlessKeys;\n","import hashString from '@emotion/hash';\nimport unitless from '@emotion/unitless';\nimport memoize from '@emotion/memoize';\n\nvar ILLEGAL_ESCAPE_SEQUENCE_ERROR = \"You have illegal escape sequence in your template literal, most likely inside content's property value.\\nBecause you write your CSS inside a JavaScript string you actually have to do double escaping, so for example \\\"content: '\\\\00d7';\\\" should become \\\"content: '\\\\\\\\00d7';\\\".\\nYou can read more about this here:\\nhttps://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Template_literals#ES2018_revision_of_illegal_escape_sequences\";\nvar UNDEFINED_AS_OBJECT_KEY_ERROR = \"You have passed in falsy value as style object's key (can happen when in example you pass unexported component as computed key).\";\nvar hyphenateRegex = /[A-Z]|^ms/g;\nvar animationRegex = /_EMO_([^_]+?)_([^]*?)_EMO_/g;\n\nvar isCustomProperty = function isCustomProperty(property) {\n return property.charCodeAt(1) === 45;\n};\n\nvar isProcessableValue = function isProcessableValue(value) {\n return value != null && typeof value !== 'boolean';\n};\n\nvar processStyleName = memoize(function (styleName) {\n return isCustomProperty(styleName) ? styleName : styleName.replace(hyphenateRegex, '-$&').toLowerCase();\n});\n\nvar processStyleValue = function processStyleValue(key, value) {\n switch (key) {\n case 'animation':\n case 'animationName':\n {\n if (typeof value === 'string') {\n return value.replace(animationRegex, function (match, p1, p2) {\n cursor = {\n name: p1,\n styles: p2,\n next: cursor\n };\n return p1;\n });\n }\n }\n }\n\n if (unitless[key] !== 1 && !isCustomProperty(key) && typeof value === 'number' && value !== 0) {\n return value + 'px';\n }\n\n return value;\n};\n\nif (process.env.NODE_ENV !== 'production') {\n var contentValuePattern = /(attr|calc|counters?|url)\\(/;\n var contentValues = ['normal', 'none', 'counter', 'open-quote', 'close-quote', 'no-open-quote', 'no-close-quote', 'initial', 'inherit', 'unset'];\n var oldProcessStyleValue = processStyleValue;\n var msPattern = /^-ms-/;\n var hyphenPattern = /-(.)/g;\n var hyphenatedCache = {};\n\n processStyleValue = function processStyleValue(key, value) {\n if (key === 'content') {\n if (typeof value !== 'string' || contentValues.indexOf(value) === -1 && !contentValuePattern.test(value) && (value.charAt(0) !== value.charAt(value.length - 1) || value.charAt(0) !== '\"' && value.charAt(0) !== \"'\")) {\n console.error(\"You seem to be using a value for 'content' without quotes, try replacing it with `content: '\\\"\" + value + \"\\\"'`\");\n }\n }\n\n var processed = oldProcessStyleValue(key, value);\n\n if (processed !== '' && !isCustomProperty(key) && key.indexOf('-') !== -1 && hyphenatedCache[key] === undefined) {\n hyphenatedCache[key] = true;\n console.error(\"Using kebab-case for css properties in objects is not supported. Did you mean \" + key.replace(msPattern, 'ms-').replace(hyphenPattern, function (str, _char) {\n return _char.toUpperCase();\n }) + \"?\");\n }\n\n return processed;\n };\n}\n\nvar shouldWarnAboutInterpolatingClassNameFromCss = true;\n\nfunction handleInterpolation(mergedProps, registered, interpolation, couldBeSelectorInterpolation) {\n if (interpolation == null) {\n return '';\n }\n\n if (interpolation.__emotion_styles !== undefined) {\n if (process.env.NODE_ENV !== 'production' && interpolation.toString() === 'NO_COMPONENT_SELECTOR') {\n throw new Error('Component selectors can only be used in conjunction with babel-plugin-emotion.');\n }\n\n return interpolation;\n }\n\n switch (typeof interpolation) {\n case 'boolean':\n {\n return '';\n }\n\n case 'object':\n {\n if (interpolation.anim === 1) {\n cursor = {\n name: interpolation.name,\n styles: interpolation.styles,\n next: cursor\n };\n return interpolation.name;\n }\n\n if (interpolation.styles !== undefined) {\n var next = interpolation.next;\n\n if (next !== undefined) {\n // not the most efficient thing ever but this is a pretty rare case\n // and there will be very few iterations of this generally\n while (next !== undefined) {\n cursor = {\n name: next.name,\n styles: next.styles,\n next: cursor\n };\n next = next.next;\n }\n }\n\n var styles = interpolation.styles + \";\";\n\n if (process.env.NODE_ENV !== 'production' && interpolation.map !== undefined) {\n styles += interpolation.map;\n }\n\n return styles;\n }\n\n return createStringFromObject(mergedProps, registered, interpolation);\n }\n\n case 'function':\n {\n if (mergedProps !== undefined) {\n var previousCursor = cursor;\n var result = interpolation(mergedProps);\n cursor = previousCursor;\n return handleInterpolation(mergedProps, registered, result, couldBeSelectorInterpolation);\n } else if (process.env.NODE_ENV !== 'production') {\n console.error('Functions that are interpolated in css calls will be stringified.\\n' + 'If you want to have a css call based on props, create a function that returns a css call like this\\n' + 'let dynamicStyle = (props) => css`color: ${props.color}`\\n' + 'It can be called directly with props or interpolated in a styled call like this\\n' + \"let SomeComponent = styled('div')`${dynamicStyle}`\");\n }\n\n break;\n }\n\n case 'string':\n if (process.env.NODE_ENV !== 'production') {\n var matched = [];\n var replaced = interpolation.replace(animationRegex, function (match, p1, p2) {\n var fakeVarName = \"animation\" + matched.length;\n matched.push(\"const \" + fakeVarName + \" = keyframes`\" + p2.replace(/^@keyframes animation-\\w+/, '') + \"`\");\n return \"${\" + fakeVarName + \"}\";\n });\n\n if (matched.length) {\n console.error('`keyframes` output got interpolated into plain string, please wrap it with `css`.\\n\\n' + 'Instead of doing this:\\n\\n' + [].concat(matched, [\"`\" + replaced + \"`\"]).join('\\n') + '\\n\\nYou should wrap it with `css` like this:\\n\\n' + (\"css`\" + replaced + \"`\"));\n }\n }\n\n break;\n } // finalize string values (regular strings and functions interpolated into css calls)\n\n\n if (registered == null) {\n return interpolation;\n }\n\n var cached = registered[interpolation];\n\n if (process.env.NODE_ENV !== 'production' && couldBeSelectorInterpolation && shouldWarnAboutInterpolatingClassNameFromCss && cached !== undefined) {\n console.error('Interpolating a className from css`` is not recommended and will cause problems with composition.\\n' + 'Interpolating a className from css`` will be completely unsupported in a future major version of Emotion');\n shouldWarnAboutInterpolatingClassNameFromCss = false;\n }\n\n return cached !== undefined && !couldBeSelectorInterpolation ? cached : interpolation;\n}\n\nfunction createStringFromObject(mergedProps, registered, obj) {\n var string = '';\n\n if (Array.isArray(obj)) {\n for (var i = 0; i < obj.length; i++) {\n string += handleInterpolation(mergedProps, registered, obj[i], false);\n }\n } else {\n for (var _key in obj) {\n var value = obj[_key];\n\n if (typeof value !== 'object') {\n if (registered != null && registered[value] !== undefined) {\n string += _key + \"{\" + registered[value] + \"}\";\n } else if (isProcessableValue(value)) {\n string += processStyleName(_key) + \":\" + processStyleValue(_key, value) + \";\";\n }\n } else {\n if (_key === 'NO_COMPONENT_SELECTOR' && process.env.NODE_ENV !== 'production') {\n throw new Error('Component selectors can only be used in conjunction with babel-plugin-emotion.');\n }\n\n if (Array.isArray(value) && typeof value[0] === 'string' && (registered == null || registered[value[0]] === undefined)) {\n for (var _i = 0; _i < value.length; _i++) {\n if (isProcessableValue(value[_i])) {\n string += processStyleName(_key) + \":\" + processStyleValue(_key, value[_i]) + \";\";\n }\n }\n } else {\n var interpolated = handleInterpolation(mergedProps, registered, value, false);\n\n switch (_key) {\n case 'animation':\n case 'animationName':\n {\n string += processStyleName(_key) + \":\" + interpolated + \";\";\n break;\n }\n\n default:\n {\n if (process.env.NODE_ENV !== 'production' && _key === 'undefined') {\n console.error(UNDEFINED_AS_OBJECT_KEY_ERROR);\n }\n\n string += _key + \"{\" + interpolated + \"}\";\n }\n }\n }\n }\n }\n }\n\n return string;\n}\n\nvar labelPattern = /label:\\s*([^\\s;\\n{]+)\\s*;/g;\nvar sourceMapPattern;\n\nif (process.env.NODE_ENV !== 'production') {\n sourceMapPattern = /\\/\\*#\\ssourceMappingURL=data:application\\/json;\\S+\\s+\\*\\//;\n} // this is the cursor for keyframes\n// keyframes are stored on the SerializedStyles object as a linked list\n\n\nvar cursor;\nvar serializeStyles = function serializeStyles(args, registered, mergedProps) {\n if (args.length === 1 && typeof args[0] === 'object' && args[0] !== null && args[0].styles !== undefined) {\n return args[0];\n }\n\n var stringMode = true;\n var styles = '';\n cursor = undefined;\n var strings = args[0];\n\n if (strings == null || strings.raw === undefined) {\n stringMode = false;\n styles += handleInterpolation(mergedProps, registered, strings, false);\n } else {\n if (process.env.NODE_ENV !== 'production' && strings[0] === undefined) {\n console.error(ILLEGAL_ESCAPE_SEQUENCE_ERROR);\n }\n\n styles += strings[0];\n } // we start at 1 since we've already handled the first arg\n\n\n for (var i = 1; i < args.length; i++) {\n styles += handleInterpolation(mergedProps, registered, args[i], styles.charCodeAt(styles.length - 1) === 46);\n\n if (stringMode) {\n if (process.env.NODE_ENV !== 'production' && strings[i] === undefined) {\n console.error(ILLEGAL_ESCAPE_SEQUENCE_ERROR);\n }\n\n styles += strings[i];\n }\n }\n\n var sourceMap;\n\n if (process.env.NODE_ENV !== 'production') {\n styles = styles.replace(sourceMapPattern, function (match) {\n sourceMap = match;\n return '';\n });\n } // using a global regex with .exec is stateful so lastIndex has to be reset each time\n\n\n labelPattern.lastIndex = 0;\n var identifierName = '';\n var match; // https://esbench.com/bench/5b809c2cf2949800a0f61fb5\n\n while ((match = labelPattern.exec(styles)) !== null) {\n identifierName += '-' + // $FlowFixMe we know it's not null\n match[1];\n }\n\n var name = hashString(styles) + identifierName;\n\n if (process.env.NODE_ENV !== 'production') {\n // $FlowFixMe SerializedStyles type doesn't have toString property (and we don't want to add it)\n return {\n name: name,\n styles: styles,\n map: sourceMap,\n next: cursor,\n toString: function toString() {\n return \"You have tried to stringify object returned from `css` function. It isn't supposed to be used directly (e.g. as value of the `className` prop), but rather handed to emotion so it can handle it (e.g. as value of `css` prop).\";\n }\n };\n }\n\n return {\n name: name,\n styles: styles,\n next: cursor\n };\n};\n\nexport { serializeStyles };\n","function memoize(fn) {\n var cache = {};\n return function (arg) {\n if (cache[arg] === undefined) cache[arg] = fn(arg);\n return cache[arg];\n };\n}\n\nexport default memoize;\n","import '@babel/runtime/helpers/inheritsLoose';\nimport { createContext, forwardRef, createElement, Fragment } from 'react';\nimport createCache from '@emotion/cache';\nimport { getRegisteredStyles, insertStyles } from '@emotion/utils';\nimport { serializeStyles } from '@emotion/serialize';\n\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\n\nvar EmotionCacheContext = /*#__PURE__*/createContext( // we're doing this to avoid preconstruct's dead code elimination in this one case\n// because this module is primarily intended for the browser and node\n// but it's also required in react native and similar environments sometimes\n// and we could have a special build just for that\n// but this is much easier and the native packages\n// might use a different theme context in the future anyway\ntypeof HTMLElement !== 'undefined' ? createCache() : null);\nvar ThemeContext = /*#__PURE__*/createContext({});\nvar CacheProvider = EmotionCacheContext.Provider;\n\nvar withEmotionCache = function withEmotionCache(func) {\n var render = function render(props, ref) {\n return /*#__PURE__*/createElement(EmotionCacheContext.Consumer, null, function (cache) {\n return func(props, cache, ref);\n });\n }; // $FlowFixMe\n\n\n return /*#__PURE__*/forwardRef(render);\n};\n\n// thus we only need to replace what is a valid character for JS, but not for CSS\n\nvar sanitizeIdentifier = function sanitizeIdentifier(identifier) {\n return identifier.replace(/\\$/g, '-');\n};\n\nvar typePropName = '__EMOTION_TYPE_PLEASE_DO_NOT_USE__';\nvar labelPropName = '__EMOTION_LABEL_PLEASE_DO_NOT_USE__';\nvar createEmotionProps = function createEmotionProps(type, props) {\n if (process.env.NODE_ENV !== 'production' && typeof props.css === 'string' && // check if there is a css declaration\n props.css.indexOf(':') !== -1) {\n throw new Error(\"Strings are not allowed as css prop values, please wrap it in a css template literal from '@emotion/css' like this: css`\" + props.css + \"`\");\n }\n\n var newProps = {};\n\n for (var key in props) {\n if (hasOwnProperty.call(props, key)) {\n newProps[key] = props[key];\n }\n }\n\n newProps[typePropName] = type; // TODO: check if this still works with all of those different JSX functions\n\n if (process.env.NODE_ENV !== 'production') {\n var error = new Error();\n\n if (error.stack) {\n // chrome\n var match = error.stack.match(/at (?:Object\\.|Module\\.|)(?:jsx|createEmotionProps).*\\n\\s+at (?:Object\\.|)([A-Z][A-Za-z$]+) /);\n\n if (!match) {\n // safari and firefox\n match = error.stack.match(/.*\\n([A-Z][A-Za-z$]+)@/);\n }\n\n if (match) {\n newProps[labelPropName] = sanitizeIdentifier(match[1]);\n }\n }\n }\n\n return newProps;\n};\n\nvar Noop = function Noop() {\n return null;\n};\n\nvar render = function render(cache, props, theme, ref) {\n var cssProp = theme === null ? props.css : props.css(theme); // so that using `css` from `emotion` and passing the result to the css prop works\n // not passing the registered cache to serializeStyles because it would\n // make certain babel optimisations not possible\n\n if (typeof cssProp === 'string' && cache.registered[cssProp] !== undefined) {\n cssProp = cache.registered[cssProp];\n }\n\n var type = props[typePropName];\n var registeredStyles = [cssProp];\n var className = '';\n\n if (typeof props.className === 'string') {\n className = getRegisteredStyles(cache.registered, registeredStyles, props.className);\n } else if (props.className != null) {\n className = props.className + \" \";\n }\n\n var serialized = serializeStyles(registeredStyles);\n\n if (process.env.NODE_ENV !== 'production' && serialized.name.indexOf('-') === -1) {\n var labelFromStack = props[labelPropName];\n\n if (labelFromStack) {\n serialized = serializeStyles([serialized, 'label:' + labelFromStack + ';']);\n }\n }\n\n var rules = insertStyles(cache, serialized, typeof type === 'string');\n className += cache.key + \"-\" + serialized.name;\n var newProps = {};\n\n for (var key in props) {\n if (hasOwnProperty.call(props, key) && key !== 'css' && key !== typePropName && (process.env.NODE_ENV === 'production' || key !== labelPropName)) {\n newProps[key] = props[key];\n }\n }\n\n newProps.ref = ref;\n newProps.className = className;\n var ele = /*#__PURE__*/createElement(type, newProps);\n var possiblyStyleElement = /*#__PURE__*/createElement(Noop, null);\n\n\n return /*#__PURE__*/createElement(Fragment, null, possiblyStyleElement, ele);\n}; // eslint-disable-next-line no-undef\n\n\nvar Emotion = /* #__PURE__ */withEmotionCache(function (props, cache, ref) {\n if (typeof props.css === 'function') {\n return /*#__PURE__*/createElement(ThemeContext.Consumer, null, function (theme) {\n return render(cache, props, theme, ref);\n });\n }\n\n return render(cache, props, null, ref);\n});\n\nif (process.env.NODE_ENV !== 'production') {\n Emotion.displayName = 'EmotionCssPropInternal';\n}\n\nexport { CacheProvider as C, Emotion as E, ThemeContext as T, createEmotionProps as c, hasOwnProperty as h, withEmotionCache as w };\n","import { serializeStyles } from '@emotion/serialize';\n\nfunction css() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return serializeStyles(args);\n}\n\nexport default css;\n","import _inheritsLoose from '@babel/runtime/helpers/esm/inheritsLoose';\nimport { createElement, Component, Fragment } from 'react';\nimport '@emotion/cache';\nimport { h as hasOwnProperty, E as Emotion, c as createEmotionProps, w as withEmotionCache, T as ThemeContext } from './emotion-element-04d85134.browser.esm.js';\nexport { C as CacheProvider, T as ThemeContext, w as withEmotionCache } from './emotion-element-04d85134.browser.esm.js';\nimport { insertStyles, getRegisteredStyles } from '@emotion/utils';\nimport { serializeStyles } from '@emotion/serialize';\nimport { StyleSheet } from '@emotion/sheet';\nimport css from '@emotion/css';\nexport { default as css } from '@emotion/css';\n\nvar jsx = function jsx(type, props) {\n var args = arguments;\n\n if (props == null || !hasOwnProperty.call(props, 'css')) {\n // $FlowFixMe\n return createElement.apply(undefined, args);\n }\n\n var argsLength = args.length;\n var createElementArgArray = new Array(argsLength);\n createElementArgArray[0] = Emotion;\n createElementArgArray[1] = createEmotionProps(type, props);\n\n for (var i = 2; i < argsLength; i++) {\n createElementArgArray[i] = args[i];\n } // $FlowFixMe\n\n\n return createElement.apply(null, createElementArgArray);\n};\n\nvar warnedAboutCssPropForGlobal = false;\nvar Global = /* #__PURE__ */withEmotionCache(function (props, cache) {\n if (process.env.NODE_ENV !== 'production' && !warnedAboutCssPropForGlobal && ( // check for className as well since the user is\n // probably using the custom createElement which\n // means it will be turned into a className prop\n // $FlowFixMe I don't really want to add it to the type since it shouldn't be used\n props.className || props.css)) {\n console.error(\"It looks like you're using the css prop on Global, did you mean to use the styles prop instead?\");\n warnedAboutCssPropForGlobal = true;\n }\n\n var styles = props.styles;\n\n if (typeof styles === 'function') {\n return /*#__PURE__*/createElement(ThemeContext.Consumer, null, function (theme) {\n var serialized = serializeStyles([styles(theme)]);\n return /*#__PURE__*/createElement(InnerGlobal, {\n serialized: serialized,\n cache: cache\n });\n });\n }\n\n var serialized = serializeStyles([styles]);\n return /*#__PURE__*/createElement(InnerGlobal, {\n serialized: serialized,\n cache: cache\n });\n});\n\n// maintain place over rerenders.\n// initial render from browser, insertBefore context.sheet.tags[0] or if a style hasn't been inserted there yet, appendChild\n// initial client-side render from SSR, use place of hydrating tag\nvar InnerGlobal = /*#__PURE__*/function (_React$Component) {\n _inheritsLoose(InnerGlobal, _React$Component);\n\n function InnerGlobal(props, context, updater) {\n return _React$Component.call(this, props, context, updater) || this;\n }\n\n var _proto = InnerGlobal.prototype;\n\n _proto.componentDidMount = function componentDidMount() {\n this.sheet = new StyleSheet({\n key: this.props.cache.key + \"-global\",\n nonce: this.props.cache.sheet.nonce,\n container: this.props.cache.sheet.container\n }); // $FlowFixMe\n\n var node = document.querySelector(\"style[data-emotion-\" + this.props.cache.key + \"=\\\"\" + this.props.serialized.name + \"\\\"]\");\n\n if (node !== null) {\n this.sheet.tags.push(node);\n }\n\n if (this.props.cache.sheet.tags.length) {\n this.sheet.before = this.props.cache.sheet.tags[0];\n }\n\n this.insertStyles();\n };\n\n _proto.componentDidUpdate = function componentDidUpdate(prevProps) {\n if (prevProps.serialized.name !== this.props.serialized.name) {\n this.insertStyles();\n }\n };\n\n _proto.insertStyles = function insertStyles$1() {\n if (this.props.serialized.next !== undefined) {\n // insert keyframes\n insertStyles(this.props.cache, this.props.serialized.next, true);\n }\n\n if (this.sheet.tags.length) {\n // if this doesn't exist then it will be null so the style element will be appended\n var element = this.sheet.tags[this.sheet.tags.length - 1].nextElementSibling;\n this.sheet.before = element;\n this.sheet.flush();\n }\n\n this.props.cache.insert(\"\", this.props.serialized, this.sheet, false);\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n this.sheet.flush();\n };\n\n _proto.render = function render() {\n\n return null;\n };\n\n return InnerGlobal;\n}(Component);\n\nvar keyframes = function keyframes() {\n var insertable = css.apply(void 0, arguments);\n var name = \"animation-\" + insertable.name; // $FlowFixMe\n\n return {\n name: name,\n styles: \"@keyframes \" + name + \"{\" + insertable.styles + \"}\",\n anim: 1,\n toString: function toString() {\n return \"_EMO_\" + this.name + \"_\" + this.styles + \"_EMO_\";\n }\n };\n};\n\nvar classnames = function classnames(args) {\n var len = args.length;\n var i = 0;\n var cls = '';\n\n for (; i < len; i++) {\n var arg = args[i];\n if (arg == null) continue;\n var toAdd = void 0;\n\n switch (typeof arg) {\n case 'boolean':\n break;\n\n case 'object':\n {\n if (Array.isArray(arg)) {\n toAdd = classnames(arg);\n } else {\n toAdd = '';\n\n for (var k in arg) {\n if (arg[k] && k) {\n toAdd && (toAdd += ' ');\n toAdd += k;\n }\n }\n }\n\n break;\n }\n\n default:\n {\n toAdd = arg;\n }\n }\n\n if (toAdd) {\n cls && (cls += ' ');\n cls += toAdd;\n }\n }\n\n return cls;\n};\n\nfunction merge(registered, css, className) {\n var registeredStyles = [];\n var rawClassName = getRegisteredStyles(registered, registeredStyles, className);\n\n if (registeredStyles.length < 2) {\n return className;\n }\n\n return rawClassName + css(registeredStyles);\n}\n\nvar Noop = function Noop() {\n return null;\n};\n\nvar ClassNames = withEmotionCache(function (props, context) {\n return /*#__PURE__*/createElement(ThemeContext.Consumer, null, function (theme) {\n var hasRendered = false;\n\n var css = function css() {\n if (hasRendered && process.env.NODE_ENV !== 'production') {\n throw new Error('css can only be used during render');\n }\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n var serialized = serializeStyles(args, context.registered);\n\n {\n insertStyles(context, serialized, false);\n }\n\n return context.key + \"-\" + serialized.name;\n };\n\n var cx = function cx() {\n if (hasRendered && process.env.NODE_ENV !== 'production') {\n throw new Error('cx can only be used during render');\n }\n\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n return merge(context.registered, css, classnames(args));\n };\n\n var content = {\n css: css,\n cx: cx,\n theme: theme\n };\n var ele = props.children(content);\n hasRendered = true;\n var possiblyStyleElement = /*#__PURE__*/createElement(Noop, null);\n\n\n return /*#__PURE__*/createElement(Fragment, null, possiblyStyleElement, ele);\n });\n});\n\nexport { ClassNames, Global, jsx as createElement, jsx, keyframes };\n","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar React = _interopRequireWildcard(require(\"react\"));\n\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\n\nvar _default = (0, _createSvgIcon.default)( /*#__PURE__*/React.createElement(\"path\", {\n d: \"M12 .3a12 12 0 0 0-3.8 23.4c.6.1.8-.3.8-.6v-2c-3.3.7-4-1.6-4-1.6-.6-1.4-1.4-1.8-1.4-1.8-1-.7.1-.7.1-.7 1.2 0 1.9 1.2 1.9 1.2 1 1.8 2.8 1.3 3.5 1 0-.8.4-1.3.7-1.6-2.7-.3-5.5-1.3-5.5-6 0-1.2.5-2.3 1.3-3.1-.2-.4-.6-1.6 0-3.2 0 0 1-.3 3.4 1.2a11.5 11.5 0 0 1 6 0c2.3-1.5 3.3-1.2 3.3-1.2.6 1.6.2 2.8 0 3.2.9.8 1.3 1.9 1.3 3.2 0 4.6-2.8 5.6-5.5 5.9.5.4.9 1 .9 2.2v3.3c0 .3.1.7.8.6A12 12 0 0 0 12 .3\"\n}), 'GitHub');\n\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nObject.defineProperty(exports, \"default\", {\n enumerable: true,\n get: function get() {\n return _skeleton.default;\n }\n});\nObject.defineProperty(exports, \"SkeletonTheme\", {\n enumerable: true,\n get: function get() {\n return _skeletonTheme.default;\n }\n});\n\nvar _skeleton = _interopRequireDefault(require(\"./skeleton\"));\n\nvar _skeletonTheme = _interopRequireDefault(require(\"./skeleton-theme\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }","function _setPrototypeOf(t, e) {\n return _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function (t, e) {\n return t.__proto__ = e, t;\n }, _setPrototypeOf(t, e);\n}\nexport { _setPrototypeOf as default };","import setPrototypeOf from \"./setPrototypeOf.js\";\nfunction _inheritsLoose(t, o) {\n t.prototype = Object.create(o.prototype), t.prototype.constructor = t, setPrototypeOf(t, o);\n}\nexport { _inheritsLoose as default };","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-jsx-runtime.production.min.js');\n} else {\n module.exports = require('./cjs/react-jsx-runtime.development.js');\n}\n","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar React = _interopRequireWildcard(require(\"react\"));\n\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\n\nvar _default = (0, _createSvgIcon.default)( /*#__PURE__*/React.createElement(\"path\", {\n d: \"M19 3a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h14m-.5 15.5v-5.3a3.26 3.26 0 0 0-3.26-3.26c-.85 0-1.84.52-2.32 1.3v-1.11h-2.79v8.37h2.79v-4.93c0-.77.62-1.4 1.39-1.4a1.4 1.4 0 0 1 1.4 1.4v4.93h2.79M6.88 8.56a1.68 1.68 0 0 0 1.68-1.68c0-.93-.75-1.69-1.68-1.69a1.69 1.69 0 0 0-1.69 1.69c0 .93.76 1.68 1.69 1.68m1.39 9.94v-8.37H5.5v8.37h2.77z\"\n}), 'LinkedIn');\n\nexports.default = _default;","/**\n * WARNING: Don't import this directly.\n * Use `MuiError` from `@material-ui/utils/macros/MuiError.macro` instead.\n * @param {number} code\n */\nexport default function formatMuiErrorMessage(code) {\n // Apply babel-plugin-transform-template-literals in loose mode\n // loose mode is safe iff we're concatenating primitives\n // see https://babeljs.io/docs/en/babel-plugin-transform-template-literals#loose\n\n /* eslint-disable prefer-template */\n var url = 'https://mui.com/production-error/?code=' + code;\n\n for (var i = 1; i < arguments.length; i += 1) {\n // rest params over-transpile for this case\n // eslint-disable-next-line prefer-rest-params\n url += '&args[]=' + encodeURIComponent(arguments[i]);\n }\n\n return 'Minified Material-UI error #' + code + '; visit ' + url + ' for the full message.';\n /* eslint-enable prefer-template */\n}","import { formatMuiErrorMessage as _formatMuiErrorMessage } from \"@material-ui/utils\";\n// It should to be noted that this function isn't equivalent to `text-transform: capitalize`.\n//\n// A strict capitalization should uppercase the first letter of each word a the sentence.\n// We only handle the first word.\nexport default function capitalize(string) {\n if (typeof string !== 'string') {\n throw new Error(process.env.NODE_ENV !== \"production\" ? \"Material-UI: capitalize(string) expects a string argument.\" : _formatMuiErrorMessage(7));\n }\n\n return string.charAt(0).toUpperCase() + string.slice(1);\n}","/**\n * Safe chained function\n *\n * Will only create a new function if needed,\n * otherwise will pass back existing functions or null.\n *\n * @param {function} functions to chain\n * @returns {function|null}\n */\nexport default function createChainedFunction() {\n for (var _len = arguments.length, funcs = new Array(_len), _key = 0; _key < _len; _key++) {\n funcs[_key] = arguments[_key];\n }\n\n return funcs.reduce(function (acc, func) {\n if (func == null) {\n return acc;\n }\n\n if (process.env.NODE_ENV !== 'production') {\n if (typeof func !== 'function') {\n console.error('Material-UI: Invalid Argument Type, must only provide functions, undefined, or null.');\n }\n }\n\n return function chainedFunction() {\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n acc.apply(this, args);\n func.apply(this, args);\n };\n }, function () {});\n}","function _extends() {\n return _extends = Object.assign ? Object.assign.bind() : function (n) {\n for (var e = 1; e < arguments.length; e++) {\n var t = arguments[e];\n for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]);\n }\n return n;\n }, _extends.apply(null, arguments);\n}\nexport { _extends as default };","function _objectWithoutPropertiesLoose(r, e) {\n if (null == r) return {};\n var t = {};\n for (var n in r) if ({}.hasOwnProperty.call(r, n)) {\n if (-1 !== e.indexOf(n)) continue;\n t[n] = r[n];\n }\n return t;\n}\nexport { _objectWithoutPropertiesLoose as default };","import objectWithoutPropertiesLoose from \"./objectWithoutPropertiesLoose.js\";\nfunction _objectWithoutProperties(e, t) {\n if (null == e) return {};\n var o,\n r,\n i = objectWithoutPropertiesLoose(e, t);\n if (Object.getOwnPropertySymbols) {\n var n = Object.getOwnPropertySymbols(e);\n for (r = 0; r < n.length; r++) o = n[r], -1 === t.indexOf(o) && {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]);\n }\n return i;\n}\nexport { _objectWithoutProperties as default };","function r(e){var t,f,n=\"\";if(\"string\"==typeof e||\"number\"==typeof e)n+=e;else if(\"object\"==typeof e)if(Array.isArray(e))for(t=0;t `margin: 5px 10px;`\n * `border: ['1px', '2px']` > `border: 1px, 2px;`\n * `margin: [['5px', '10px'], '!important']` > `margin: 5px 10px !important;`\n * `color: ['red', !important]` > `color: red !important;`\n */\n\n\nvar toCssValue = function toCssValue(value) {\n if (!Array.isArray(value)) return value;\n var cssValue = ''; // Support space separated values via `[['5px', '10px']]`.\n\n if (Array.isArray(value[0])) {\n for (var i = 0; i < value.length; i++) {\n if (value[i] === '!important') break;\n if (cssValue) cssValue += ', ';\n cssValue += join(value[i], ' ');\n }\n } else cssValue = join(value, ', '); // Add !important, because it was ignored.\n\n\n if (value[value.length - 1] === '!important') {\n cssValue += ' !important';\n }\n\n return cssValue;\n};\n\nfunction getWhitespaceSymbols(options) {\n if (options && options.format === false) {\n return {\n linebreak: '',\n space: ''\n };\n }\n\n return {\n linebreak: '\\n',\n space: ' '\n };\n}\n\n/**\n * Indent a string.\n * http://jsperf.com/array-join-vs-for\n */\n\nfunction indentStr(str, indent) {\n var result = '';\n\n for (var index = 0; index < indent; index++) {\n result += ' ';\n }\n\n return result + str;\n}\n/**\n * Converts a Rule to CSS string.\n */\n\n\nfunction toCss(selector, style, options) {\n if (options === void 0) {\n options = {};\n }\n\n var result = '';\n if (!style) return result;\n var _options = options,\n _options$indent = _options.indent,\n indent = _options$indent === void 0 ? 0 : _options$indent;\n var fallbacks = style.fallbacks;\n\n if (options.format === false) {\n indent = -Infinity;\n }\n\n var _getWhitespaceSymbols = getWhitespaceSymbols(options),\n linebreak = _getWhitespaceSymbols.linebreak,\n space = _getWhitespaceSymbols.space;\n\n if (selector) indent++; // Apply fallbacks first.\n\n if (fallbacks) {\n // Array syntax {fallbacks: [{prop: value}]}\n if (Array.isArray(fallbacks)) {\n for (var index = 0; index < fallbacks.length; index++) {\n var fallback = fallbacks[index];\n\n for (var prop in fallback) {\n var value = fallback[prop];\n\n if (value != null) {\n if (result) result += linebreak;\n result += indentStr(prop + \":\" + space + toCssValue(value) + \";\", indent);\n }\n }\n }\n } else {\n // Object syntax {fallbacks: {prop: value}}\n for (var _prop in fallbacks) {\n var _value = fallbacks[_prop];\n\n if (_value != null) {\n if (result) result += linebreak;\n result += indentStr(_prop + \":\" + space + toCssValue(_value) + \";\", indent);\n }\n }\n }\n }\n\n for (var _prop2 in style) {\n var _value2 = style[_prop2];\n\n if (_value2 != null && _prop2 !== 'fallbacks') {\n if (result) result += linebreak;\n result += indentStr(_prop2 + \":\" + space + toCssValue(_value2) + \";\", indent);\n }\n } // Allow empty style in this case, because properties will be added dynamically.\n\n\n if (!result && !options.allowEmpty) return result; // When rule is being stringified before selector was defined.\n\n if (!selector) return result;\n indent--;\n if (result) result = \"\" + linebreak + result + linebreak;\n return indentStr(\"\" + selector + space + \"{\" + result, indent) + indentStr('}', indent);\n}\n\nvar escapeRegex = /([[\\].#*$><+~=|^:(),\"'`\\s])/g;\nvar nativeEscape = typeof CSS !== 'undefined' && CSS.escape;\nvar escape = (function (str) {\n return nativeEscape ? nativeEscape(str) : str.replace(escapeRegex, '\\\\$1');\n});\n\nvar BaseStyleRule =\n/*#__PURE__*/\nfunction () {\n function BaseStyleRule(key, style, options) {\n this.type = 'style';\n this.isProcessed = false;\n var sheet = options.sheet,\n Renderer = options.Renderer;\n this.key = key;\n this.options = options;\n this.style = style;\n if (sheet) this.renderer = sheet.renderer;else if (Renderer) this.renderer = new Renderer();\n }\n /**\n * Get or set a style property.\n */\n\n\n var _proto = BaseStyleRule.prototype;\n\n _proto.prop = function prop(name, value, options) {\n // It's a getter.\n if (value === undefined) return this.style[name]; // Don't do anything if the value has not changed.\n\n var force = options ? options.force : false;\n if (!force && this.style[name] === value) return this;\n var newValue = value;\n\n if (!options || options.process !== false) {\n newValue = this.options.jss.plugins.onChangeValue(value, name, this);\n }\n\n var isEmpty = newValue == null || newValue === false;\n var isDefined = name in this.style; // Value is empty and wasn't defined before.\n\n if (isEmpty && !isDefined && !force) return this; // We are going to remove this value.\n\n var remove = isEmpty && isDefined;\n if (remove) delete this.style[name];else this.style[name] = newValue; // Renderable is defined if StyleSheet option `link` is true.\n\n if (this.renderable && this.renderer) {\n if (remove) this.renderer.removeProperty(this.renderable, name);else this.renderer.setProperty(this.renderable, name, newValue);\n return this;\n }\n\n var sheet = this.options.sheet;\n\n if (sheet && sheet.attached) {\n process.env.NODE_ENV !== \"production\" ? warning(false, '[JSS] Rule is not linked. Missing sheet option \"link: true\".') : void 0;\n }\n\n return this;\n };\n\n return BaseStyleRule;\n}();\nvar StyleRule =\n/*#__PURE__*/\nfunction (_BaseStyleRule) {\n _inheritsLoose(StyleRule, _BaseStyleRule);\n\n function StyleRule(key, style, options) {\n var _this;\n\n _this = _BaseStyleRule.call(this, key, style, options) || this;\n var selector = options.selector,\n scoped = options.scoped,\n sheet = options.sheet,\n generateId = options.generateId;\n\n if (selector) {\n _this.selectorText = selector;\n } else if (scoped !== false) {\n _this.id = generateId(_assertThisInitialized(_assertThisInitialized(_this)), sheet);\n _this.selectorText = \".\" + escape(_this.id);\n }\n\n return _this;\n }\n /**\n * Set selector string.\n * Attention: use this with caution. Most browsers didn't implement\n * selectorText setter, so this may result in rerendering of entire Style Sheet.\n */\n\n\n var _proto2 = StyleRule.prototype;\n\n /**\n * Apply rule to an element inline.\n */\n _proto2.applyTo = function applyTo(renderable) {\n var renderer = this.renderer;\n\n if (renderer) {\n var json = this.toJSON();\n\n for (var prop in json) {\n renderer.setProperty(renderable, prop, json[prop]);\n }\n }\n\n return this;\n }\n /**\n * Returns JSON representation of the rule.\n * Fallbacks are not supported.\n * Useful for inline styles.\n */\n ;\n\n _proto2.toJSON = function toJSON() {\n var json = {};\n\n for (var prop in this.style) {\n var value = this.style[prop];\n if (typeof value !== 'object') json[prop] = value;else if (Array.isArray(value)) json[prop] = toCssValue(value);\n }\n\n return json;\n }\n /**\n * Generates a CSS string.\n */\n ;\n\n _proto2.toString = function toString(options) {\n var sheet = this.options.sheet;\n var link = sheet ? sheet.options.link : false;\n var opts = link ? _extends({}, options, {\n allowEmpty: true\n }) : options;\n return toCss(this.selectorText, this.style, opts);\n };\n\n _createClass(StyleRule, [{\n key: \"selector\",\n set: function set(selector) {\n if (selector === this.selectorText) return;\n this.selectorText = selector;\n var renderer = this.renderer,\n renderable = this.renderable;\n if (!renderable || !renderer) return;\n var hasChanged = renderer.setSelector(renderable, selector); // If selector setter is not implemented, rerender the rule.\n\n if (!hasChanged) {\n renderer.replaceRule(renderable, this);\n }\n }\n /**\n * Get selector string.\n */\n ,\n get: function get() {\n return this.selectorText;\n }\n }]);\n\n return StyleRule;\n}(BaseStyleRule);\nvar pluginStyleRule = {\n onCreateRule: function onCreateRule(key, style, options) {\n if (key[0] === '@' || options.parent && options.parent.type === 'keyframes') {\n return null;\n }\n\n return new StyleRule(key, style, options);\n }\n};\n\nvar defaultToStringOptions = {\n indent: 1,\n children: true\n};\nvar atRegExp = /@([\\w-]+)/;\n/**\n * Conditional rule for @media, @supports\n */\n\nvar ConditionalRule =\n/*#__PURE__*/\nfunction () {\n function ConditionalRule(key, styles, options) {\n this.type = 'conditional';\n this.isProcessed = false;\n this.key = key;\n var atMatch = key.match(atRegExp);\n this.at = atMatch ? atMatch[1] : 'unknown'; // Key might contain a unique suffix in case the `name` passed by user was duplicate.\n\n this.query = options.name || \"@\" + this.at;\n this.options = options;\n this.rules = new RuleList(_extends({}, options, {\n parent: this\n }));\n\n for (var name in styles) {\n this.rules.add(name, styles[name]);\n }\n\n this.rules.process();\n }\n /**\n * Get a rule.\n */\n\n\n var _proto = ConditionalRule.prototype;\n\n _proto.getRule = function getRule(name) {\n return this.rules.get(name);\n }\n /**\n * Get index of a rule.\n */\n ;\n\n _proto.indexOf = function indexOf(rule) {\n return this.rules.indexOf(rule);\n }\n /**\n * Create and register rule, run plugins.\n */\n ;\n\n _proto.addRule = function addRule(name, style, options) {\n var rule = this.rules.add(name, style, options);\n if (!rule) return null;\n this.options.jss.plugins.onProcessRule(rule);\n return rule;\n }\n /**\n * Replace rule, run plugins.\n */\n ;\n\n _proto.replaceRule = function replaceRule(name, style, options) {\n var newRule = this.rules.replace(name, style, options);\n if (newRule) this.options.jss.plugins.onProcessRule(newRule);\n return newRule;\n }\n /**\n * Generates a CSS string.\n */\n ;\n\n _proto.toString = function toString(options) {\n if (options === void 0) {\n options = defaultToStringOptions;\n }\n\n var _getWhitespaceSymbols = getWhitespaceSymbols(options),\n linebreak = _getWhitespaceSymbols.linebreak;\n\n if (options.indent == null) options.indent = defaultToStringOptions.indent;\n if (options.children == null) options.children = defaultToStringOptions.children;\n\n if (options.children === false) {\n return this.query + \" {}\";\n }\n\n var children = this.rules.toString(options);\n return children ? this.query + \" {\" + linebreak + children + linebreak + \"}\" : '';\n };\n\n return ConditionalRule;\n}();\nvar keyRegExp = /@container|@media|@supports\\s+/;\nvar pluginConditionalRule = {\n onCreateRule: function onCreateRule(key, styles, options) {\n return keyRegExp.test(key) ? new ConditionalRule(key, styles, options) : null;\n }\n};\n\nvar defaultToStringOptions$1 = {\n indent: 1,\n children: true\n};\nvar nameRegExp = /@keyframes\\s+([\\w-]+)/;\n/**\n * Rule for @keyframes\n */\n\nvar KeyframesRule =\n/*#__PURE__*/\nfunction () {\n function KeyframesRule(key, frames, options) {\n this.type = 'keyframes';\n this.at = '@keyframes';\n this.isProcessed = false;\n var nameMatch = key.match(nameRegExp);\n\n if (nameMatch && nameMatch[1]) {\n this.name = nameMatch[1];\n } else {\n this.name = 'noname';\n process.env.NODE_ENV !== \"production\" ? warning(false, \"[JSS] Bad keyframes name \" + key) : void 0;\n }\n\n this.key = this.type + \"-\" + this.name;\n this.options = options;\n var scoped = options.scoped,\n sheet = options.sheet,\n generateId = options.generateId;\n this.id = scoped === false ? this.name : escape(generateId(this, sheet));\n this.rules = new RuleList(_extends({}, options, {\n parent: this\n }));\n\n for (var name in frames) {\n this.rules.add(name, frames[name], _extends({}, options, {\n parent: this\n }));\n }\n\n this.rules.process();\n }\n /**\n * Generates a CSS string.\n */\n\n\n var _proto = KeyframesRule.prototype;\n\n _proto.toString = function toString(options) {\n if (options === void 0) {\n options = defaultToStringOptions$1;\n }\n\n var _getWhitespaceSymbols = getWhitespaceSymbols(options),\n linebreak = _getWhitespaceSymbols.linebreak;\n\n if (options.indent == null) options.indent = defaultToStringOptions$1.indent;\n if (options.children == null) options.children = defaultToStringOptions$1.children;\n\n if (options.children === false) {\n return this.at + \" \" + this.id + \" {}\";\n }\n\n var children = this.rules.toString(options);\n if (children) children = \"\" + linebreak + children + linebreak;\n return this.at + \" \" + this.id + \" {\" + children + \"}\";\n };\n\n return KeyframesRule;\n}();\nvar keyRegExp$1 = /@keyframes\\s+/;\nvar refRegExp = /\\$([\\w-]+)/g;\n\nvar findReferencedKeyframe = function findReferencedKeyframe(val, keyframes) {\n if (typeof val === 'string') {\n return val.replace(refRegExp, function (match, name) {\n if (name in keyframes) {\n return keyframes[name];\n }\n\n process.env.NODE_ENV !== \"production\" ? warning(false, \"[JSS] Referenced keyframes rule \\\"\" + name + \"\\\" is not defined.\") : void 0;\n return match;\n });\n }\n\n return val;\n};\n/**\n * Replace the reference for a animation name.\n */\n\n\nvar replaceRef = function replaceRef(style, prop, keyframes) {\n var value = style[prop];\n var refKeyframe = findReferencedKeyframe(value, keyframes);\n\n if (refKeyframe !== value) {\n style[prop] = refKeyframe;\n }\n};\n\nvar pluginKeyframesRule = {\n onCreateRule: function onCreateRule(key, frames, options) {\n return typeof key === 'string' && keyRegExp$1.test(key) ? new KeyframesRule(key, frames, options) : null;\n },\n // Animation name ref replacer.\n onProcessStyle: function onProcessStyle(style, rule, sheet) {\n if (rule.type !== 'style' || !sheet) return style;\n if ('animation-name' in style) replaceRef(style, 'animation-name', sheet.keyframes);\n if ('animation' in style) replaceRef(style, 'animation', sheet.keyframes);\n return style;\n },\n onChangeValue: function onChangeValue(val, prop, rule) {\n var sheet = rule.options.sheet;\n\n if (!sheet) {\n return val;\n }\n\n switch (prop) {\n case 'animation':\n return findReferencedKeyframe(val, sheet.keyframes);\n\n case 'animation-name':\n return findReferencedKeyframe(val, sheet.keyframes);\n\n default:\n return val;\n }\n }\n};\n\nvar KeyframeRule =\n/*#__PURE__*/\nfunction (_BaseStyleRule) {\n _inheritsLoose(KeyframeRule, _BaseStyleRule);\n\n function KeyframeRule() {\n return _BaseStyleRule.apply(this, arguments) || this;\n }\n\n var _proto = KeyframeRule.prototype;\n\n /**\n * Generates a CSS string.\n */\n _proto.toString = function toString(options) {\n var sheet = this.options.sheet;\n var link = sheet ? sheet.options.link : false;\n var opts = link ? _extends({}, options, {\n allowEmpty: true\n }) : options;\n return toCss(this.key, this.style, opts);\n };\n\n return KeyframeRule;\n}(BaseStyleRule);\nvar pluginKeyframeRule = {\n onCreateRule: function onCreateRule(key, style, options) {\n if (options.parent && options.parent.type === 'keyframes') {\n return new KeyframeRule(key, style, options);\n }\n\n return null;\n }\n};\n\nvar FontFaceRule =\n/*#__PURE__*/\nfunction () {\n function FontFaceRule(key, style, options) {\n this.type = 'font-face';\n this.at = '@font-face';\n this.isProcessed = false;\n this.key = key;\n this.style = style;\n this.options = options;\n }\n /**\n * Generates a CSS string.\n */\n\n\n var _proto = FontFaceRule.prototype;\n\n _proto.toString = function toString(options) {\n var _getWhitespaceSymbols = getWhitespaceSymbols(options),\n linebreak = _getWhitespaceSymbols.linebreak;\n\n if (Array.isArray(this.style)) {\n var str = '';\n\n for (var index = 0; index < this.style.length; index++) {\n str += toCss(this.at, this.style[index]);\n if (this.style[index + 1]) str += linebreak;\n }\n\n return str;\n }\n\n return toCss(this.at, this.style, options);\n };\n\n return FontFaceRule;\n}();\nvar keyRegExp$2 = /@font-face/;\nvar pluginFontFaceRule = {\n onCreateRule: function onCreateRule(key, style, options) {\n return keyRegExp$2.test(key) ? new FontFaceRule(key, style, options) : null;\n }\n};\n\nvar ViewportRule =\n/*#__PURE__*/\nfunction () {\n function ViewportRule(key, style, options) {\n this.type = 'viewport';\n this.at = '@viewport';\n this.isProcessed = false;\n this.key = key;\n this.style = style;\n this.options = options;\n }\n /**\n * Generates a CSS string.\n */\n\n\n var _proto = ViewportRule.prototype;\n\n _proto.toString = function toString(options) {\n return toCss(this.key, this.style, options);\n };\n\n return ViewportRule;\n}();\nvar pluginViewportRule = {\n onCreateRule: function onCreateRule(key, style, options) {\n return key === '@viewport' || key === '@-ms-viewport' ? new ViewportRule(key, style, options) : null;\n }\n};\n\nvar SimpleRule =\n/*#__PURE__*/\nfunction () {\n function SimpleRule(key, value, options) {\n this.type = 'simple';\n this.isProcessed = false;\n this.key = key;\n this.value = value;\n this.options = options;\n }\n /**\n * Generates a CSS string.\n */\n // eslint-disable-next-line no-unused-vars\n\n\n var _proto = SimpleRule.prototype;\n\n _proto.toString = function toString(options) {\n if (Array.isArray(this.value)) {\n var str = '';\n\n for (var index = 0; index < this.value.length; index++) {\n str += this.key + \" \" + this.value[index] + \";\";\n if (this.value[index + 1]) str += '\\n';\n }\n\n return str;\n }\n\n return this.key + \" \" + this.value + \";\";\n };\n\n return SimpleRule;\n}();\nvar keysMap = {\n '@charset': true,\n '@import': true,\n '@namespace': true\n};\nvar pluginSimpleRule = {\n onCreateRule: function onCreateRule(key, value, options) {\n return key in keysMap ? new SimpleRule(key, value, options) : null;\n }\n};\n\nvar plugins = [pluginStyleRule, pluginConditionalRule, pluginKeyframesRule, pluginKeyframeRule, pluginFontFaceRule, pluginViewportRule, pluginSimpleRule];\n\nvar defaultUpdateOptions = {\n process: true\n};\nvar forceUpdateOptions = {\n force: true,\n process: true\n /**\n * Contains rules objects and allows adding/removing etc.\n * Is used for e.g. by `StyleSheet` or `ConditionalRule`.\n */\n\n};\n\nvar RuleList =\n/*#__PURE__*/\nfunction () {\n // Rules registry for access by .get() method.\n // It contains the same rule registered by name and by selector.\n // Original styles object.\n // Used to ensure correct rules order.\n function RuleList(options) {\n this.map = {};\n this.raw = {};\n this.index = [];\n this.counter = 0;\n this.options = options;\n this.classes = options.classes;\n this.keyframes = options.keyframes;\n }\n /**\n * Create and register rule.\n *\n * Will not render after Style Sheet was rendered the first time.\n */\n\n\n var _proto = RuleList.prototype;\n\n _proto.add = function add(name, decl, ruleOptions) {\n var _this$options = this.options,\n parent = _this$options.parent,\n sheet = _this$options.sheet,\n jss = _this$options.jss,\n Renderer = _this$options.Renderer,\n generateId = _this$options.generateId,\n scoped = _this$options.scoped;\n\n var options = _extends({\n classes: this.classes,\n parent: parent,\n sheet: sheet,\n jss: jss,\n Renderer: Renderer,\n generateId: generateId,\n scoped: scoped,\n name: name,\n keyframes: this.keyframes,\n selector: undefined\n }, ruleOptions); // When user uses .createStyleSheet(), duplicate names are not possible, but\n // `sheet.addRule()` opens the door for any duplicate rule name. When this happens\n // we need to make the key unique within this RuleList instance scope.\n\n\n var key = name;\n\n if (name in this.raw) {\n key = name + \"-d\" + this.counter++;\n } // We need to save the original decl before creating the rule\n // because cache plugin needs to use it as a key to return a cached rule.\n\n\n this.raw[key] = decl;\n\n if (key in this.classes) {\n // E.g. rules inside of @media container\n options.selector = \".\" + escape(this.classes[key]);\n }\n\n var rule = createRule(key, decl, options);\n if (!rule) return null;\n this.register(rule);\n var index = options.index === undefined ? this.index.length : options.index;\n this.index.splice(index, 0, rule);\n return rule;\n }\n /**\n * Replace rule.\n * Create a new rule and remove old one instead of overwriting\n * because we want to invoke onCreateRule hook to make plugins work.\n */\n ;\n\n _proto.replace = function replace(name, decl, ruleOptions) {\n var oldRule = this.get(name);\n var oldIndex = this.index.indexOf(oldRule);\n\n if (oldRule) {\n this.remove(oldRule);\n }\n\n var options = ruleOptions;\n if (oldIndex !== -1) options = _extends({}, ruleOptions, {\n index: oldIndex\n });\n return this.add(name, decl, options);\n }\n /**\n * Get a rule by name or selector.\n */\n ;\n\n _proto.get = function get(nameOrSelector) {\n return this.map[nameOrSelector];\n }\n /**\n * Delete a rule.\n */\n ;\n\n _proto.remove = function remove(rule) {\n this.unregister(rule);\n delete this.raw[rule.key];\n this.index.splice(this.index.indexOf(rule), 1);\n }\n /**\n * Get index of a rule.\n */\n ;\n\n _proto.indexOf = function indexOf(rule) {\n return this.index.indexOf(rule);\n }\n /**\n * Run `onProcessRule()` plugins on every rule.\n */\n ;\n\n _proto.process = function process() {\n var plugins = this.options.jss.plugins; // We need to clone array because if we modify the index somewhere else during a loop\n // we end up with very hard-to-track-down side effects.\n\n this.index.slice(0).forEach(plugins.onProcessRule, plugins);\n }\n /**\n * Register a rule in `.map`, `.classes` and `.keyframes` maps.\n */\n ;\n\n _proto.register = function register(rule) {\n this.map[rule.key] = rule;\n\n if (rule instanceof StyleRule) {\n this.map[rule.selector] = rule;\n if (rule.id) this.classes[rule.key] = rule.id;\n } else if (rule instanceof KeyframesRule && this.keyframes) {\n this.keyframes[rule.name] = rule.id;\n }\n }\n /**\n * Unregister a rule.\n */\n ;\n\n _proto.unregister = function unregister(rule) {\n delete this.map[rule.key];\n\n if (rule instanceof StyleRule) {\n delete this.map[rule.selector];\n delete this.classes[rule.key];\n } else if (rule instanceof KeyframesRule) {\n delete this.keyframes[rule.name];\n }\n }\n /**\n * Update the function values with a new data.\n */\n ;\n\n _proto.update = function update() {\n var name;\n var data;\n var options;\n\n if (typeof (arguments.length <= 0 ? undefined : arguments[0]) === 'string') {\n name = arguments.length <= 0 ? undefined : arguments[0];\n data = arguments.length <= 1 ? undefined : arguments[1];\n options = arguments.length <= 2 ? undefined : arguments[2];\n } else {\n data = arguments.length <= 0 ? undefined : arguments[0];\n options = arguments.length <= 1 ? undefined : arguments[1];\n name = null;\n }\n\n if (name) {\n this.updateOne(this.get(name), data, options);\n } else {\n for (var index = 0; index < this.index.length; index++) {\n this.updateOne(this.index[index], data, options);\n }\n }\n }\n /**\n * Execute plugins, update rule props.\n */\n ;\n\n _proto.updateOne = function updateOne(rule, data, options) {\n if (options === void 0) {\n options = defaultUpdateOptions;\n }\n\n var _this$options2 = this.options,\n plugins = _this$options2.jss.plugins,\n sheet = _this$options2.sheet; // It is a rules container like for e.g. ConditionalRule.\n\n if (rule.rules instanceof RuleList) {\n rule.rules.update(data, options);\n return;\n }\n\n var style = rule.style;\n plugins.onUpdate(data, rule, sheet, options); // We rely on a new `style` ref in case it was mutated during onUpdate hook.\n\n if (options.process && style && style !== rule.style) {\n // We need to run the plugins in case new `style` relies on syntax plugins.\n plugins.onProcessStyle(rule.style, rule, sheet); // Update and add props.\n\n for (var prop in rule.style) {\n var nextValue = rule.style[prop];\n var prevValue = style[prop]; // We need to use `force: true` because `rule.style` has been updated during onUpdate hook, so `rule.prop()` will not update the CSSOM rule.\n // We do this comparison to avoid unneeded `rule.prop()` calls, since we have the old `style` object here.\n\n if (nextValue !== prevValue) {\n rule.prop(prop, nextValue, forceUpdateOptions);\n }\n } // Remove props.\n\n\n for (var _prop in style) {\n var _nextValue = rule.style[_prop];\n var _prevValue = style[_prop]; // We need to use `force: true` because `rule.style` has been updated during onUpdate hook, so `rule.prop()` will not update the CSSOM rule.\n // We do this comparison to avoid unneeded `rule.prop()` calls, since we have the old `style` object here.\n\n if (_nextValue == null && _nextValue !== _prevValue) {\n rule.prop(_prop, null, forceUpdateOptions);\n }\n }\n }\n }\n /**\n * Convert rules to a CSS string.\n */\n ;\n\n _proto.toString = function toString(options) {\n var str = '';\n var sheet = this.options.sheet;\n var link = sheet ? sheet.options.link : false;\n\n var _getWhitespaceSymbols = getWhitespaceSymbols(options),\n linebreak = _getWhitespaceSymbols.linebreak;\n\n for (var index = 0; index < this.index.length; index++) {\n var rule = this.index[index];\n var css = rule.toString(options); // No need to render an empty rule.\n\n if (!css && !link) continue;\n if (str) str += linebreak;\n str += css;\n }\n\n return str;\n };\n\n return RuleList;\n}();\n\nvar StyleSheet =\n/*#__PURE__*/\nfunction () {\n function StyleSheet(styles, options) {\n this.attached = false;\n this.deployed = false;\n this.classes = {};\n this.keyframes = {};\n this.options = _extends({}, options, {\n sheet: this,\n parent: this,\n classes: this.classes,\n keyframes: this.keyframes\n });\n\n if (options.Renderer) {\n this.renderer = new options.Renderer(this);\n }\n\n this.rules = new RuleList(this.options);\n\n for (var name in styles) {\n this.rules.add(name, styles[name]);\n }\n\n this.rules.process();\n }\n /**\n * Attach renderable to the render tree.\n */\n\n\n var _proto = StyleSheet.prototype;\n\n _proto.attach = function attach() {\n if (this.attached) return this;\n if (this.renderer) this.renderer.attach();\n this.attached = true; // Order is important, because we can't use insertRule API if style element is not attached.\n\n if (!this.deployed) this.deploy();\n return this;\n }\n /**\n * Remove renderable from render tree.\n */\n ;\n\n _proto.detach = function detach() {\n if (!this.attached) return this;\n if (this.renderer) this.renderer.detach();\n this.attached = false;\n return this;\n }\n /**\n * Add a rule to the current stylesheet.\n * Will insert a rule also after the stylesheet has been rendered first time.\n */\n ;\n\n _proto.addRule = function addRule(name, decl, options) {\n var queue = this.queue; // Plugins can create rules.\n // In order to preserve the right order, we need to queue all `.addRule` calls,\n // which happen after the first `rules.add()` call.\n\n if (this.attached && !queue) this.queue = [];\n var rule = this.rules.add(name, decl, options);\n if (!rule) return null;\n this.options.jss.plugins.onProcessRule(rule);\n\n if (this.attached) {\n if (!this.deployed) return rule; // Don't insert rule directly if there is no stringified version yet.\n // It will be inserted all together when .attach is called.\n\n if (queue) queue.push(rule);else {\n this.insertRule(rule);\n\n if (this.queue) {\n this.queue.forEach(this.insertRule, this);\n this.queue = undefined;\n }\n }\n return rule;\n } // We can't add rules to a detached style node.\n // We will redeploy the sheet once user will attach it.\n\n\n this.deployed = false;\n return rule;\n }\n /**\n * Replace a rule in the current stylesheet.\n */\n ;\n\n _proto.replaceRule = function replaceRule(nameOrSelector, decl, options) {\n var oldRule = this.rules.get(nameOrSelector);\n if (!oldRule) return this.addRule(nameOrSelector, decl, options);\n var newRule = this.rules.replace(nameOrSelector, decl, options);\n\n if (newRule) {\n this.options.jss.plugins.onProcessRule(newRule);\n }\n\n if (this.attached) {\n if (!this.deployed) return newRule; // Don't replace / delete rule directly if there is no stringified version yet.\n // It will be inserted all together when .attach is called.\n\n if (this.renderer) {\n if (!newRule) {\n this.renderer.deleteRule(oldRule);\n } else if (oldRule.renderable) {\n this.renderer.replaceRule(oldRule.renderable, newRule);\n }\n }\n\n return newRule;\n } // We can't replace rules to a detached style node.\n // We will redeploy the sheet once user will attach it.\n\n\n this.deployed = false;\n return newRule;\n }\n /**\n * Insert rule into the StyleSheet\n */\n ;\n\n _proto.insertRule = function insertRule(rule) {\n if (this.renderer) {\n this.renderer.insertRule(rule);\n }\n }\n /**\n * Create and add rules.\n * Will render also after Style Sheet was rendered the first time.\n */\n ;\n\n _proto.addRules = function addRules(styles, options) {\n var added = [];\n\n for (var name in styles) {\n var rule = this.addRule(name, styles[name], options);\n if (rule) added.push(rule);\n }\n\n return added;\n }\n /**\n * Get a rule by name or selector.\n */\n ;\n\n _proto.getRule = function getRule(nameOrSelector) {\n return this.rules.get(nameOrSelector);\n }\n /**\n * Delete a rule by name.\n * Returns `true`: if rule has been deleted from the DOM.\n */\n ;\n\n _proto.deleteRule = function deleteRule(name) {\n var rule = typeof name === 'object' ? name : this.rules.get(name);\n\n if (!rule || // Style sheet was created without link: true and attached, in this case we\n // won't be able to remove the CSS rule from the DOM.\n this.attached && !rule.renderable) {\n return false;\n }\n\n this.rules.remove(rule);\n\n if (this.attached && rule.renderable && this.renderer) {\n return this.renderer.deleteRule(rule.renderable);\n }\n\n return true;\n }\n /**\n * Get index of a rule.\n */\n ;\n\n _proto.indexOf = function indexOf(rule) {\n return this.rules.indexOf(rule);\n }\n /**\n * Deploy pure CSS string to a renderable.\n */\n ;\n\n _proto.deploy = function deploy() {\n if (this.renderer) this.renderer.deploy();\n this.deployed = true;\n return this;\n }\n /**\n * Update the function values with a new data.\n */\n ;\n\n _proto.update = function update() {\n var _this$rules;\n\n (_this$rules = this.rules).update.apply(_this$rules, arguments);\n\n return this;\n }\n /**\n * Updates a single rule.\n */\n ;\n\n _proto.updateOne = function updateOne(rule, data, options) {\n this.rules.updateOne(rule, data, options);\n return this;\n }\n /**\n * Convert rules to a CSS string.\n */\n ;\n\n _proto.toString = function toString(options) {\n return this.rules.toString(options);\n };\n\n return StyleSheet;\n}();\n\nvar PluginsRegistry =\n/*#__PURE__*/\nfunction () {\n function PluginsRegistry() {\n this.plugins = {\n internal: [],\n external: []\n };\n this.registry = {};\n }\n\n var _proto = PluginsRegistry.prototype;\n\n /**\n * Call `onCreateRule` hooks and return an object if returned by a hook.\n */\n _proto.onCreateRule = function onCreateRule(name, decl, options) {\n for (var i = 0; i < this.registry.onCreateRule.length; i++) {\n var rule = this.registry.onCreateRule[i](name, decl, options);\n if (rule) return rule;\n }\n\n return null;\n }\n /**\n * Call `onProcessRule` hooks.\n */\n ;\n\n _proto.onProcessRule = function onProcessRule(rule) {\n if (rule.isProcessed) return;\n var sheet = rule.options.sheet;\n\n for (var i = 0; i < this.registry.onProcessRule.length; i++) {\n this.registry.onProcessRule[i](rule, sheet);\n }\n\n if (rule.style) this.onProcessStyle(rule.style, rule, sheet);\n rule.isProcessed = true;\n }\n /**\n * Call `onProcessStyle` hooks.\n */\n ;\n\n _proto.onProcessStyle = function onProcessStyle(style, rule, sheet) {\n for (var i = 0; i < this.registry.onProcessStyle.length; i++) {\n rule.style = this.registry.onProcessStyle[i](rule.style, rule, sheet);\n }\n }\n /**\n * Call `onProcessSheet` hooks.\n */\n ;\n\n _proto.onProcessSheet = function onProcessSheet(sheet) {\n for (var i = 0; i < this.registry.onProcessSheet.length; i++) {\n this.registry.onProcessSheet[i](sheet);\n }\n }\n /**\n * Call `onUpdate` hooks.\n */\n ;\n\n _proto.onUpdate = function onUpdate(data, rule, sheet, options) {\n for (var i = 0; i < this.registry.onUpdate.length; i++) {\n this.registry.onUpdate[i](data, rule, sheet, options);\n }\n }\n /**\n * Call `onChangeValue` hooks.\n */\n ;\n\n _proto.onChangeValue = function onChangeValue(value, prop, rule) {\n var processedValue = value;\n\n for (var i = 0; i < this.registry.onChangeValue.length; i++) {\n processedValue = this.registry.onChangeValue[i](processedValue, prop, rule);\n }\n\n return processedValue;\n }\n /**\n * Register a plugin.\n */\n ;\n\n _proto.use = function use(newPlugin, options) {\n if (options === void 0) {\n options = {\n queue: 'external'\n };\n }\n\n var plugins = this.plugins[options.queue]; // Avoids applying same plugin twice, at least based on ref.\n\n if (plugins.indexOf(newPlugin) !== -1) {\n return;\n }\n\n plugins.push(newPlugin);\n this.registry = [].concat(this.plugins.external, this.plugins.internal).reduce(function (registry, plugin) {\n for (var name in plugin) {\n if (name in registry) {\n registry[name].push(plugin[name]);\n } else {\n process.env.NODE_ENV !== \"production\" ? warning(false, \"[JSS] Unknown hook \\\"\" + name + \"\\\".\") : void 0;\n }\n }\n\n return registry;\n }, {\n onCreateRule: [],\n onProcessRule: [],\n onProcessStyle: [],\n onProcessSheet: [],\n onChangeValue: [],\n onUpdate: []\n });\n };\n\n return PluginsRegistry;\n}();\n\n/**\n * Sheets registry to access all instances in one place.\n */\n\nvar SheetsRegistry =\n/*#__PURE__*/\nfunction () {\n function SheetsRegistry() {\n this.registry = [];\n }\n\n var _proto = SheetsRegistry.prototype;\n\n /**\n * Register a Style Sheet.\n */\n _proto.add = function add(sheet) {\n var registry = this.registry;\n var index = sheet.options.index;\n if (registry.indexOf(sheet) !== -1) return;\n\n if (registry.length === 0 || index >= this.index) {\n registry.push(sheet);\n return;\n } // Find a position.\n\n\n for (var i = 0; i < registry.length; i++) {\n if (registry[i].options.index > index) {\n registry.splice(i, 0, sheet);\n return;\n }\n }\n }\n /**\n * Reset the registry.\n */\n ;\n\n _proto.reset = function reset() {\n this.registry = [];\n }\n /**\n * Remove a Style Sheet.\n */\n ;\n\n _proto.remove = function remove(sheet) {\n var index = this.registry.indexOf(sheet);\n this.registry.splice(index, 1);\n }\n /**\n * Convert all attached sheets to a CSS string.\n */\n ;\n\n _proto.toString = function toString(_temp) {\n var _ref = _temp === void 0 ? {} : _temp,\n attached = _ref.attached,\n options = _objectWithoutPropertiesLoose(_ref, [\"attached\"]);\n\n var _getWhitespaceSymbols = getWhitespaceSymbols(options),\n linebreak = _getWhitespaceSymbols.linebreak;\n\n var css = '';\n\n for (var i = 0; i < this.registry.length; i++) {\n var sheet = this.registry[i];\n\n if (attached != null && sheet.attached !== attached) {\n continue;\n }\n\n if (css) css += linebreak;\n css += sheet.toString(options);\n }\n\n return css;\n };\n\n _createClass(SheetsRegistry, [{\n key: \"index\",\n\n /**\n * Current highest index number.\n */\n get: function get() {\n return this.registry.length === 0 ? 0 : this.registry[this.registry.length - 1].options.index;\n }\n }]);\n\n return SheetsRegistry;\n}();\n\n/**\n * This is a global sheets registry. Only DomRenderer will add sheets to it.\n * On the server one should use an own SheetsRegistry instance and add the\n * sheets to it, because you need to make sure to create a new registry for\n * each request in order to not leak sheets across requests.\n */\n\nvar sheets = new SheetsRegistry();\n\n/* eslint-disable */\n\n/**\n * Now that `globalThis` is available on most platforms\n * (https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/globalThis#browser_compatibility)\n * we check for `globalThis` first. `globalThis` is necessary for jss\n * to run in Agoric's secure version of JavaScript (SES). Under SES,\n * `globalThis` exists, but `window`, `self`, and `Function('return\n * this')()` are all undefined for security reasons.\n *\n * https://github.com/zloirock/core-js/issues/86#issuecomment-115759028\n */\nvar globalThis$1 = typeof globalThis !== 'undefined' ? globalThis : typeof window !== 'undefined' && window.Math === Math ? window : typeof self !== 'undefined' && self.Math === Math ? self : Function('return this')();\n\nvar ns = '2f1acc6c3a606b082e5eef5e54414ffb';\nif (globalThis$1[ns] == null) globalThis$1[ns] = 0; // Bundle may contain multiple JSS versions at the same time. In order to identify\n// the current version with just one short number and use it for classes generation\n// we use a counter. Also it is more accurate, because user can manually reevaluate\n// the module.\n\nvar moduleId = globalThis$1[ns]++;\n\nvar maxRules = 1e10;\n/**\n * Returns a function which generates unique class names based on counters.\n * When new generator function is created, rule counter is reseted.\n * We need to reset the rule counter for SSR for each request.\n */\n\nvar createGenerateId = function createGenerateId(options) {\n if (options === void 0) {\n options = {};\n }\n\n var ruleCounter = 0;\n\n var generateId = function generateId(rule, sheet) {\n ruleCounter += 1;\n\n if (ruleCounter > maxRules) {\n process.env.NODE_ENV !== \"production\" ? warning(false, \"[JSS] You might have a memory leak. Rule counter is at \" + ruleCounter + \".\") : void 0;\n }\n\n var jssId = '';\n var prefix = '';\n\n if (sheet) {\n if (sheet.options.classNamePrefix) {\n prefix = sheet.options.classNamePrefix;\n }\n\n if (sheet.options.jss.id != null) {\n jssId = String(sheet.options.jss.id);\n }\n }\n\n if (options.minify) {\n // Using \"c\" because a number can't be the first char in a class name.\n return \"\" + (prefix || 'c') + moduleId + jssId + ruleCounter;\n }\n\n return prefix + rule.key + \"-\" + moduleId + (jssId ? \"-\" + jssId : '') + \"-\" + ruleCounter;\n };\n\n return generateId;\n};\n\n/**\n * Cache the value from the first time a function is called.\n */\n\nvar memoize = function memoize(fn) {\n var value;\n return function () {\n if (!value) value = fn();\n return value;\n };\n};\n/**\n * Get a style property value.\n */\n\n\nvar getPropertyValue = function getPropertyValue(cssRule, prop) {\n try {\n // Support CSSTOM.\n if (cssRule.attributeStyleMap) {\n return cssRule.attributeStyleMap.get(prop);\n }\n\n return cssRule.style.getPropertyValue(prop);\n } catch (err) {\n // IE may throw if property is unknown.\n return '';\n }\n};\n/**\n * Set a style property.\n */\n\n\nvar setProperty = function setProperty(cssRule, prop, value) {\n try {\n var cssValue = value;\n\n if (Array.isArray(value)) {\n cssValue = toCssValue(value);\n } // Support CSSTOM.\n\n\n if (cssRule.attributeStyleMap) {\n cssRule.attributeStyleMap.set(prop, cssValue);\n } else {\n var indexOfImportantFlag = cssValue ? cssValue.indexOf('!important') : -1;\n var cssValueWithoutImportantFlag = indexOfImportantFlag > -1 ? cssValue.substr(0, indexOfImportantFlag - 1) : cssValue;\n cssRule.style.setProperty(prop, cssValueWithoutImportantFlag, indexOfImportantFlag > -1 ? 'important' : '');\n }\n } catch (err) {\n // IE may throw if property is unknown.\n return false;\n }\n\n return true;\n};\n/**\n * Remove a style property.\n */\n\n\nvar removeProperty = function removeProperty(cssRule, prop) {\n try {\n // Support CSSTOM.\n if (cssRule.attributeStyleMap) {\n cssRule.attributeStyleMap.delete(prop);\n } else {\n cssRule.style.removeProperty(prop);\n }\n } catch (err) {\n process.env.NODE_ENV !== \"production\" ? warning(false, \"[JSS] DOMException \\\"\" + err.message + \"\\\" was thrown. Tried to remove property \\\"\" + prop + \"\\\".\") : void 0;\n }\n};\n/**\n * Set the selector.\n */\n\n\nvar setSelector = function setSelector(cssRule, selectorText) {\n cssRule.selectorText = selectorText; // Return false if setter was not successful.\n // Currently works in chrome only.\n\n return cssRule.selectorText === selectorText;\n};\n/**\n * Gets the `head` element upon the first call and caches it.\n * We assume it can't be null.\n */\n\n\nvar getHead = memoize(function () {\n return document.querySelector('head');\n});\n/**\n * Find attached sheet with an index higher than the passed one.\n */\n\nfunction findHigherSheet(registry, options) {\n for (var i = 0; i < registry.length; i++) {\n var sheet = registry[i];\n\n if (sheet.attached && sheet.options.index > options.index && sheet.options.insertionPoint === options.insertionPoint) {\n return sheet;\n }\n }\n\n return null;\n}\n/**\n * Find attached sheet with the highest index.\n */\n\n\nfunction findHighestSheet(registry, options) {\n for (var i = registry.length - 1; i >= 0; i--) {\n var sheet = registry[i];\n\n if (sheet.attached && sheet.options.insertionPoint === options.insertionPoint) {\n return sheet;\n }\n }\n\n return null;\n}\n/**\n * Find a comment with \"jss\" inside.\n */\n\n\nfunction findCommentNode(text) {\n var head = getHead();\n\n for (var i = 0; i < head.childNodes.length; i++) {\n var node = head.childNodes[i];\n\n if (node.nodeType === 8 && node.nodeValue.trim() === text) {\n return node;\n }\n }\n\n return null;\n}\n/**\n * Find a node before which we can insert the sheet.\n */\n\n\nfunction findPrevNode(options) {\n var registry = sheets.registry;\n\n if (registry.length > 0) {\n // Try to insert before the next higher sheet.\n var sheet = findHigherSheet(registry, options);\n\n if (sheet && sheet.renderer) {\n return {\n parent: sheet.renderer.element.parentNode,\n node: sheet.renderer.element\n };\n } // Otherwise insert after the last attached.\n\n\n sheet = findHighestSheet(registry, options);\n\n if (sheet && sheet.renderer) {\n return {\n parent: sheet.renderer.element.parentNode,\n node: sheet.renderer.element.nextSibling\n };\n }\n } // Try to find a comment placeholder if registry is empty.\n\n\n var insertionPoint = options.insertionPoint;\n\n if (insertionPoint && typeof insertionPoint === 'string') {\n var comment = findCommentNode(insertionPoint);\n\n if (comment) {\n return {\n parent: comment.parentNode,\n node: comment.nextSibling\n };\n } // If user specifies an insertion point and it can't be found in the document -\n // bad specificity issues may appear.\n\n\n process.env.NODE_ENV !== \"production\" ? warning(false, \"[JSS] Insertion point \\\"\" + insertionPoint + \"\\\" not found.\") : void 0;\n }\n\n return false;\n}\n/**\n * Insert style element into the DOM.\n */\n\n\nfunction insertStyle(style, options) {\n var insertionPoint = options.insertionPoint;\n var nextNode = findPrevNode(options);\n\n if (nextNode !== false && nextNode.parent) {\n nextNode.parent.insertBefore(style, nextNode.node);\n return;\n } // Works with iframes and any node types.\n\n\n if (insertionPoint && typeof insertionPoint.nodeType === 'number') {\n var insertionPointElement = insertionPoint;\n var parentNode = insertionPointElement.parentNode;\n if (parentNode) parentNode.insertBefore(style, insertionPointElement.nextSibling);else process.env.NODE_ENV !== \"production\" ? warning(false, '[JSS] Insertion point is not in the DOM.') : void 0;\n return;\n }\n\n getHead().appendChild(style);\n}\n/**\n * Read jss nonce setting from the page if the user has set it.\n */\n\n\nvar getNonce = memoize(function () {\n var node = document.querySelector('meta[property=\"csp-nonce\"]');\n return node ? node.getAttribute('content') : null;\n});\n\nvar _insertRule = function insertRule(container, rule, index) {\n try {\n if ('insertRule' in container) {\n container.insertRule(rule, index);\n } // Keyframes rule.\n else if ('appendRule' in container) {\n container.appendRule(rule);\n }\n } catch (err) {\n process.env.NODE_ENV !== \"production\" ? warning(false, \"[JSS] \" + err.message) : void 0;\n return false;\n }\n\n return container.cssRules[index];\n};\n\nvar getValidRuleInsertionIndex = function getValidRuleInsertionIndex(container, index) {\n var maxIndex = container.cssRules.length; // In case previous insertion fails, passed index might be wrong\n\n if (index === undefined || index > maxIndex) {\n // eslint-disable-next-line no-param-reassign\n return maxIndex;\n }\n\n return index;\n};\n\nvar createStyle = function createStyle() {\n var el = document.createElement('style'); // Without it, IE will have a broken source order specificity if we\n // insert rules after we insert the style tag.\n // It seems to kick-off the source order specificity algorithm.\n\n el.textContent = '\\n';\n return el;\n};\n\nvar DomRenderer =\n/*#__PURE__*/\nfunction () {\n // Will be empty if link: true option is not set, because\n // it is only for use together with insertRule API.\n function DomRenderer(sheet) {\n this.getPropertyValue = getPropertyValue;\n this.setProperty = setProperty;\n this.removeProperty = removeProperty;\n this.setSelector = setSelector;\n this.hasInsertedRules = false;\n this.cssRules = [];\n // There is no sheet when the renderer is used from a standalone StyleRule.\n if (sheet) sheets.add(sheet);\n this.sheet = sheet;\n\n var _ref = this.sheet ? this.sheet.options : {},\n media = _ref.media,\n meta = _ref.meta,\n element = _ref.element;\n\n this.element = element || createStyle();\n this.element.setAttribute('data-jss', '');\n if (media) this.element.setAttribute('media', media);\n if (meta) this.element.setAttribute('data-meta', meta);\n var nonce = getNonce();\n if (nonce) this.element.setAttribute('nonce', nonce);\n }\n /**\n * Insert style element into render tree.\n */\n\n\n var _proto = DomRenderer.prototype;\n\n _proto.attach = function attach() {\n // In the case the element node is external and it is already in the DOM.\n if (this.element.parentNode || !this.sheet) return;\n insertStyle(this.element, this.sheet.options); // When rules are inserted using `insertRule` API, after `sheet.detach().attach()`\n // most browsers create a new CSSStyleSheet, except of all IEs.\n\n var deployed = Boolean(this.sheet && this.sheet.deployed);\n\n if (this.hasInsertedRules && deployed) {\n this.hasInsertedRules = false;\n this.deploy();\n }\n }\n /**\n * Remove style element from render tree.\n */\n ;\n\n _proto.detach = function detach() {\n if (!this.sheet) return;\n var parentNode = this.element.parentNode;\n if (parentNode) parentNode.removeChild(this.element); // In the most browsers, rules inserted using insertRule() API will be lost when style element is removed.\n // Though IE will keep them and we need a consistent behavior.\n\n if (this.sheet.options.link) {\n this.cssRules = [];\n this.element.textContent = '\\n';\n }\n }\n /**\n * Inject CSS string into element.\n */\n ;\n\n _proto.deploy = function deploy() {\n var sheet = this.sheet;\n if (!sheet) return;\n\n if (sheet.options.link) {\n this.insertRules(sheet.rules);\n return;\n }\n\n this.element.textContent = \"\\n\" + sheet.toString() + \"\\n\";\n }\n /**\n * Insert RuleList into an element.\n */\n ;\n\n _proto.insertRules = function insertRules(rules, nativeParent) {\n for (var i = 0; i < rules.index.length; i++) {\n this.insertRule(rules.index[i], i, nativeParent);\n }\n }\n /**\n * Insert a rule into element.\n */\n ;\n\n _proto.insertRule = function insertRule(rule, index, nativeParent) {\n if (nativeParent === void 0) {\n nativeParent = this.element.sheet;\n }\n\n if (rule.rules) {\n var parent = rule;\n var latestNativeParent = nativeParent;\n\n if (rule.type === 'conditional' || rule.type === 'keyframes') {\n var _insertionIndex = getValidRuleInsertionIndex(nativeParent, index); // We need to render the container without children first.\n\n\n latestNativeParent = _insertRule(nativeParent, parent.toString({\n children: false\n }), _insertionIndex);\n\n if (latestNativeParent === false) {\n return false;\n }\n\n this.refCssRule(rule, _insertionIndex, latestNativeParent);\n }\n\n this.insertRules(parent.rules, latestNativeParent);\n return latestNativeParent;\n }\n\n var ruleStr = rule.toString();\n if (!ruleStr) return false;\n var insertionIndex = getValidRuleInsertionIndex(nativeParent, index);\n\n var nativeRule = _insertRule(nativeParent, ruleStr, insertionIndex);\n\n if (nativeRule === false) {\n return false;\n }\n\n this.hasInsertedRules = true;\n this.refCssRule(rule, insertionIndex, nativeRule);\n return nativeRule;\n };\n\n _proto.refCssRule = function refCssRule(rule, index, cssRule) {\n rule.renderable = cssRule; // We only want to reference the top level rules, deleteRule API doesn't support removing nested rules\n // like rules inside media queries or keyframes\n\n if (rule.options.parent instanceof StyleSheet) {\n this.cssRules.splice(index, 0, cssRule);\n }\n }\n /**\n * Delete a rule.\n */\n ;\n\n _proto.deleteRule = function deleteRule(cssRule) {\n var sheet = this.element.sheet;\n var index = this.indexOf(cssRule);\n if (index === -1) return false;\n sheet.deleteRule(index);\n this.cssRules.splice(index, 1);\n return true;\n }\n /**\n * Get index of a CSS Rule.\n */\n ;\n\n _proto.indexOf = function indexOf(cssRule) {\n return this.cssRules.indexOf(cssRule);\n }\n /**\n * Generate a new CSS rule and replace the existing one.\n */\n ;\n\n _proto.replaceRule = function replaceRule(cssRule, rule) {\n var index = this.indexOf(cssRule);\n if (index === -1) return false;\n this.element.sheet.deleteRule(index);\n this.cssRules.splice(index, 1);\n return this.insertRule(rule, index);\n }\n /**\n * Get all rules elements.\n */\n ;\n\n _proto.getRules = function getRules() {\n return this.element.sheet.cssRules;\n };\n\n return DomRenderer;\n}();\n\nvar instanceCounter = 0;\n\nvar Jss =\n/*#__PURE__*/\nfunction () {\n function Jss(options) {\n this.id = instanceCounter++;\n this.version = \"10.10.0\";\n this.plugins = new PluginsRegistry();\n this.options = {\n id: {\n minify: false\n },\n createGenerateId: createGenerateId,\n Renderer: isInBrowser ? DomRenderer : null,\n plugins: []\n };\n this.generateId = createGenerateId({\n minify: false\n });\n\n for (var i = 0; i < plugins.length; i++) {\n this.plugins.use(plugins[i], {\n queue: 'internal'\n });\n }\n\n this.setup(options);\n }\n /**\n * Prepares various options, applies plugins.\n * Should not be used twice on the same instance, because there is no plugins\n * deduplication logic.\n */\n\n\n var _proto = Jss.prototype;\n\n _proto.setup = function setup(options) {\n if (options === void 0) {\n options = {};\n }\n\n if (options.createGenerateId) {\n this.options.createGenerateId = options.createGenerateId;\n }\n\n if (options.id) {\n this.options.id = _extends({}, this.options.id, options.id);\n }\n\n if (options.createGenerateId || options.id) {\n this.generateId = this.options.createGenerateId(this.options.id);\n }\n\n if (options.insertionPoint != null) this.options.insertionPoint = options.insertionPoint;\n\n if ('Renderer' in options) {\n this.options.Renderer = options.Renderer;\n } // eslint-disable-next-line prefer-spread\n\n\n if (options.plugins) this.use.apply(this, options.plugins);\n return this;\n }\n /**\n * Create a Style Sheet.\n */\n ;\n\n _proto.createStyleSheet = function createStyleSheet(styles, options) {\n if (options === void 0) {\n options = {};\n }\n\n var _options = options,\n index = _options.index;\n\n if (typeof index !== 'number') {\n index = sheets.index === 0 ? 0 : sheets.index + 1;\n }\n\n var sheet = new StyleSheet(styles, _extends({}, options, {\n jss: this,\n generateId: options.generateId || this.generateId,\n insertionPoint: this.options.insertionPoint,\n Renderer: this.options.Renderer,\n index: index\n }));\n this.plugins.onProcessSheet(sheet);\n return sheet;\n }\n /**\n * Detach the Style Sheet and remove it from the registry.\n */\n ;\n\n _proto.removeStyleSheet = function removeStyleSheet(sheet) {\n sheet.detach();\n sheets.remove(sheet);\n return this;\n }\n /**\n * Create a rule without a Style Sheet.\n * [Deprecated] will be removed in the next major version.\n */\n ;\n\n _proto.createRule = function createRule$1(name, style, options) {\n if (style === void 0) {\n style = {};\n }\n\n if (options === void 0) {\n options = {};\n }\n\n // Enable rule without name for inline styles.\n if (typeof name === 'object') {\n return this.createRule(undefined, name, style);\n }\n\n var ruleOptions = _extends({}, options, {\n name: name,\n jss: this,\n Renderer: this.options.Renderer\n });\n\n if (!ruleOptions.generateId) ruleOptions.generateId = this.generateId;\n if (!ruleOptions.classes) ruleOptions.classes = {};\n if (!ruleOptions.keyframes) ruleOptions.keyframes = {};\n\n var rule = createRule(name, style, ruleOptions);\n\n if (rule) this.plugins.onProcessRule(rule);\n return rule;\n }\n /**\n * Register plugin. Passed function will be invoked with a rule instance.\n */\n ;\n\n _proto.use = function use() {\n var _this = this;\n\n for (var _len = arguments.length, plugins = new Array(_len), _key = 0; _key < _len; _key++) {\n plugins[_key] = arguments[_key];\n }\n\n plugins.forEach(function (plugin) {\n _this.plugins.use(plugin);\n });\n return this;\n };\n\n return Jss;\n}();\n\nvar createJss = function createJss(options) {\n return new Jss(options);\n};\n\n/**\n * SheetsManager is like a WeakMap which is designed to count StyleSheet\n * instances and attach/detach automatically.\n * Used in react-jss.\n */\n\nvar SheetsManager =\n/*#__PURE__*/\nfunction () {\n function SheetsManager() {\n this.length = 0;\n this.sheets = new WeakMap();\n }\n\n var _proto = SheetsManager.prototype;\n\n _proto.get = function get(key) {\n var entry = this.sheets.get(key);\n return entry && entry.sheet;\n };\n\n _proto.add = function add(key, sheet) {\n if (this.sheets.has(key)) return;\n this.length++;\n this.sheets.set(key, {\n sheet: sheet,\n refs: 0\n });\n };\n\n _proto.manage = function manage(key) {\n var entry = this.sheets.get(key);\n\n if (entry) {\n if (entry.refs === 0) {\n entry.sheet.attach();\n }\n\n entry.refs++;\n return entry.sheet;\n }\n\n warning(false, \"[JSS] SheetsManager: can't find sheet to manage\");\n return undefined;\n };\n\n _proto.unmanage = function unmanage(key) {\n var entry = this.sheets.get(key);\n\n if (entry) {\n if (entry.refs > 0) {\n entry.refs--;\n if (entry.refs === 0) entry.sheet.detach();\n }\n } else {\n warning(false, \"SheetsManager: can't find sheet to unmanage\");\n }\n };\n\n _createClass(SheetsManager, [{\n key: \"size\",\n get: function get() {\n return this.length;\n }\n }]);\n\n return SheetsManager;\n}();\n\n/**\n* Export a constant indicating if this browser has CSSTOM support.\n* https://developers.google.com/web/updates/2018/03/cssom\n*/\nvar hasCSSTOMSupport = typeof CSS === 'object' && CSS != null && 'number' in CSS;\n\n/**\n * Extracts a styles object with only props that contain function values.\n */\nfunction getDynamicStyles(styles) {\n var to = null;\n\n for (var key in styles) {\n var value = styles[key];\n var type = typeof value;\n\n if (type === 'function') {\n if (!to) to = {};\n to[key] = value;\n } else if (type === 'object' && value !== null && !Array.isArray(value)) {\n var extracted = getDynamicStyles(value);\n\n if (extracted) {\n if (!to) to = {};\n to[key] = extracted;\n }\n }\n }\n\n return to;\n}\n\n/**\n * A better abstraction over CSS.\n *\n * @copyright Oleg Isonen (Slobodskoi) / Isonen 2014-present\n * @website https://github.com/cssinjs/jss\n * @license MIT\n */\nvar index = createJss();\n\nexport default index;\nexport { RuleList, SheetsManager, SheetsRegistry, createJss as create, createGenerateId, createRule, getDynamicStyles, hasCSSTOMSupport, sheets, toCssValue };\n","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport { getDisplayName } from '@material-ui/utils';\nexport default function mergeClasses() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var baseClasses = options.baseClasses,\n newClasses = options.newClasses,\n Component = options.Component;\n\n if (!newClasses) {\n return baseClasses;\n }\n\n var nextClasses = _extends({}, baseClasses);\n\n if (process.env.NODE_ENV !== 'production') {\n if (typeof newClasses === 'string') {\n console.error([\"Material-UI: The value `\".concat(newClasses, \"` \") + \"provided to the classes prop of \".concat(getDisplayName(Component), \" is incorrect.\"), 'You might want to use the className prop instead.'].join('\\n'));\n return baseClasses;\n }\n }\n\n Object.keys(newClasses).forEach(function (key) {\n if (process.env.NODE_ENV !== 'production') {\n if (!baseClasses[key] && newClasses[key]) {\n console.error([\"Material-UI: The key `\".concat(key, \"` \") + \"provided to the classes prop is not implemented in \".concat(getDisplayName(Component), \".\"), \"You can only override one of the following: \".concat(Object.keys(baseClasses).join(','), \".\")].join('\\n'));\n }\n\n if (newClasses[key] && typeof newClasses[key] !== 'string') {\n console.error([\"Material-UI: The key `\".concat(key, \"` \") + \"provided to the classes prop is not valid for \".concat(getDisplayName(Component), \".\"), \"You need to provide a non empty string instead of: \".concat(newClasses[key], \".\")].join('\\n'));\n }\n }\n\n if (newClasses[key]) {\n nextClasses[key] = \"\".concat(baseClasses[key], \" \").concat(newClasses[key]);\n }\n });\n return nextClasses;\n}","// Used https://github.com/thinkloop/multi-key-cache as inspiration\nvar multiKeyStore = {\n set: function set(cache, key1, key2, value) {\n var subCache = cache.get(key1);\n\n if (!subCache) {\n subCache = new Map();\n cache.set(key1, subCache);\n }\n\n subCache.set(key2, value);\n },\n get: function get(cache, key1, key2) {\n var subCache = cache.get(key1);\n return subCache ? subCache.get(key2) : undefined;\n },\n delete: function _delete(cache, key1, key2) {\n var subCache = cache.get(key1);\n subCache.delete(key2);\n }\n};\nexport default multiKeyStore;","import React from 'react';\nvar ThemeContext = React.createContext(null);\n\nif (process.env.NODE_ENV !== 'production') {\n ThemeContext.displayName = 'ThemeContext';\n}\n\nexport default ThemeContext;","import React from 'react';\nimport ThemeContext from './ThemeContext';\nexport default function useTheme() {\n var theme = React.useContext(ThemeContext);\n\n if (process.env.NODE_ENV !== 'production') {\n // eslint-disable-next-line react-hooks/rules-of-hooks\n React.useDebugValue(theme);\n }\n\n return theme;\n}","var hasSymbol = typeof Symbol === 'function' && Symbol.for;\nexport default hasSymbol ? Symbol.for('mui.nested') : '__THEME_NESTED__';","import nested from '../ThemeProvider/nested';\n/**\n * This is the list of the style rule name we use as drop in replacement for the built-in\n * pseudo classes (:checked, :disabled, :focused, etc.).\n *\n * Why do they exist in the first place?\n * These classes are used at a specificity of 2.\n * It allows them to override previously definied styles as well as\n * being untouched by simple user overrides.\n */\n\nvar pseudoClasses = ['checked', 'disabled', 'error', 'focused', 'focusVisible', 'required', 'expanded', 'selected']; // Returns a function which generates unique class names based on counters.\n// When new generator function is created, rule counter is reset.\n// We need to reset the rule counter for SSR for each request.\n//\n// It's inspired by\n// https://github.com/cssinjs/jss/blob/4e6a05dd3f7b6572fdd3ab216861d9e446c20331/src/utils/createGenerateClassName.js\n\nexport default function createGenerateClassName() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var _options$disableGloba = options.disableGlobal,\n disableGlobal = _options$disableGloba === void 0 ? false : _options$disableGloba,\n _options$productionPr = options.productionPrefix,\n productionPrefix = _options$productionPr === void 0 ? 'jss' : _options$productionPr,\n _options$seed = options.seed,\n seed = _options$seed === void 0 ? '' : _options$seed;\n var seedPrefix = seed === '' ? '' : \"\".concat(seed, \"-\");\n var ruleCounter = 0;\n\n var getNextCounterId = function getNextCounterId() {\n ruleCounter += 1;\n\n if (process.env.NODE_ENV !== 'production') {\n if (ruleCounter >= 1e10) {\n console.warn(['Material-UI: You might have a memory leak.', 'The ruleCounter is not supposed to grow that much.'].join(''));\n }\n }\n\n return ruleCounter;\n };\n\n return function (rule, styleSheet) {\n var name = styleSheet.options.name; // Is a global static MUI style?\n\n if (name && name.indexOf('Mui') === 0 && !styleSheet.options.link && !disableGlobal) {\n // We can use a shorthand class name, we never use the keys to style the components.\n if (pseudoClasses.indexOf(rule.key) !== -1) {\n return \"Mui-\".concat(rule.key);\n }\n\n var prefix = \"\".concat(seedPrefix).concat(name, \"-\").concat(rule.key);\n\n if (!styleSheet.options.theme[nested] || seed !== '') {\n return prefix;\n }\n\n return \"\".concat(prefix, \"-\").concat(getNextCounterId());\n }\n\n if (process.env.NODE_ENV === 'production') {\n return \"\".concat(seedPrefix).concat(productionPrefix).concat(getNextCounterId());\n }\n\n var suffix = \"\".concat(rule.key, \"-\").concat(getNextCounterId()); // Help with debuggability.\n\n if (styleSheet.options.classNamePrefix) {\n return \"\".concat(seedPrefix).concat(styleSheet.options.classNamePrefix, \"-\").concat(suffix);\n }\n\n return \"\".concat(seedPrefix).concat(suffix);\n };\n}","import warning from 'tiny-warning';\nimport { createRule } from 'jss';\n\nvar now = Date.now();\nvar fnValuesNs = \"fnValues\" + now;\nvar fnRuleNs = \"fnStyle\" + ++now;\n\nvar functionPlugin = function functionPlugin() {\n return {\n onCreateRule: function onCreateRule(name, decl, options) {\n if (typeof decl !== 'function') return null;\n var rule = createRule(name, {}, options);\n rule[fnRuleNs] = decl;\n return rule;\n },\n onProcessStyle: function onProcessStyle(style, rule) {\n // We need to extract function values from the declaration, so that we can keep core unaware of them.\n // We need to do that only once.\n // We don't need to extract functions on each style update, since this can happen only once.\n // We don't support function values inside of function rules.\n if (fnValuesNs in rule || fnRuleNs in rule) return style;\n var fnValues = {};\n\n for (var prop in style) {\n var value = style[prop];\n if (typeof value !== 'function') continue;\n delete style[prop];\n fnValues[prop] = value;\n }\n\n rule[fnValuesNs] = fnValues;\n return style;\n },\n onUpdate: function onUpdate(data, rule, sheet, options) {\n var styleRule = rule;\n var fnRule = styleRule[fnRuleNs]; // If we have a style function, the entire rule is dynamic and style object\n // will be returned from that function.\n\n if (fnRule) {\n // Empty object will remove all currently defined props\n // in case function rule returns a falsy value.\n styleRule.style = fnRule(data) || {};\n\n if (process.env.NODE_ENV === 'development') {\n for (var prop in styleRule.style) {\n if (typeof styleRule.style[prop] === 'function') {\n process.env.NODE_ENV !== \"production\" ? warning(false, '[JSS] Function values inside function rules are not supported.') : void 0;\n break;\n }\n }\n }\n }\n\n var fnValues = styleRule[fnValuesNs]; // If we have a fn values map, it is a rule with function values.\n\n if (fnValues) {\n for (var _prop in fnValues) {\n styleRule.prop(_prop, fnValues[_prop](data), options);\n }\n }\n }\n };\n};\n\nexport default functionPlugin;\n","import _extends from '@babel/runtime/helpers/esm/extends';\nimport { RuleList } from 'jss';\n\nvar at = '@global';\nvar atPrefix = '@global ';\n\nvar GlobalContainerRule =\n/*#__PURE__*/\nfunction () {\n function GlobalContainerRule(key, styles, options) {\n this.type = 'global';\n this.at = at;\n this.isProcessed = false;\n this.key = key;\n this.options = options;\n this.rules = new RuleList(_extends({}, options, {\n parent: this\n }));\n\n for (var selector in styles) {\n this.rules.add(selector, styles[selector]);\n }\n\n this.rules.process();\n }\n /**\n * Get a rule.\n */\n\n\n var _proto = GlobalContainerRule.prototype;\n\n _proto.getRule = function getRule(name) {\n return this.rules.get(name);\n }\n /**\n * Create and register rule, run plugins.\n */\n ;\n\n _proto.addRule = function addRule(name, style, options) {\n var rule = this.rules.add(name, style, options);\n if (rule) this.options.jss.plugins.onProcessRule(rule);\n return rule;\n }\n /**\n * Replace rule, run plugins.\n */\n ;\n\n _proto.replaceRule = function replaceRule(name, style, options) {\n var newRule = this.rules.replace(name, style, options);\n if (newRule) this.options.jss.plugins.onProcessRule(newRule);\n return newRule;\n }\n /**\n * Get index of a rule.\n */\n ;\n\n _proto.indexOf = function indexOf(rule) {\n return this.rules.indexOf(rule);\n }\n /**\n * Generates a CSS string.\n */\n ;\n\n _proto.toString = function toString(options) {\n return this.rules.toString(options);\n };\n\n return GlobalContainerRule;\n}();\n\nvar GlobalPrefixedRule =\n/*#__PURE__*/\nfunction () {\n function GlobalPrefixedRule(key, style, options) {\n this.type = 'global';\n this.at = at;\n this.isProcessed = false;\n this.key = key;\n this.options = options;\n var selector = key.substr(atPrefix.length);\n this.rule = options.jss.createRule(selector, style, _extends({}, options, {\n parent: this\n }));\n }\n\n var _proto2 = GlobalPrefixedRule.prototype;\n\n _proto2.toString = function toString(options) {\n return this.rule ? this.rule.toString(options) : '';\n };\n\n return GlobalPrefixedRule;\n}();\n\nvar separatorRegExp = /\\s*,\\s*/g;\n\nfunction addScope(selector, scope) {\n var parts = selector.split(separatorRegExp);\n var scoped = '';\n\n for (var i = 0; i < parts.length; i++) {\n scoped += scope + \" \" + parts[i].trim();\n if (parts[i + 1]) scoped += ', ';\n }\n\n return scoped;\n}\n\nfunction handleNestedGlobalContainerRule(rule, sheet) {\n var options = rule.options,\n style = rule.style;\n var rules = style ? style[at] : null;\n if (!rules) return;\n\n for (var name in rules) {\n sheet.addRule(name, rules[name], _extends({}, options, {\n selector: addScope(name, rule.selector)\n }));\n }\n\n delete style[at];\n}\n\nfunction handlePrefixedGlobalRule(rule, sheet) {\n var options = rule.options,\n style = rule.style;\n\n for (var prop in style) {\n if (prop[0] !== '@' || prop.substr(0, at.length) !== at) continue;\n var selector = addScope(prop.substr(at.length), rule.selector);\n sheet.addRule(selector, style[prop], _extends({}, options, {\n selector: selector\n }));\n delete style[prop];\n }\n}\n/**\n * Convert nested rules to separate, remove them from original styles.\n */\n\n\nfunction jssGlobal() {\n function onCreateRule(name, styles, options) {\n if (!name) return null;\n\n if (name === at) {\n return new GlobalContainerRule(name, styles, options);\n }\n\n if (name[0] === '@' && name.substr(0, atPrefix.length) === atPrefix) {\n return new GlobalPrefixedRule(name, styles, options);\n }\n\n var parent = options.parent;\n\n if (parent) {\n if (parent.type === 'global' || parent.options.parent && parent.options.parent.type === 'global') {\n options.scoped = false;\n }\n }\n\n if (!options.selector && options.scoped === false) {\n options.selector = name;\n }\n\n return null;\n }\n\n function onProcessRule(rule, sheet) {\n if (rule.type !== 'style' || !sheet) return;\n handleNestedGlobalContainerRule(rule, sheet);\n handlePrefixedGlobalRule(rule, sheet);\n }\n\n return {\n onCreateRule: onCreateRule,\n onProcessRule: onProcessRule\n };\n}\n\nexport default jssGlobal;\n","import _extends from '@babel/runtime/helpers/esm/extends';\nimport warning from 'tiny-warning';\n\nvar separatorRegExp = /\\s*,\\s*/g;\nvar parentRegExp = /&/g;\nvar refRegExp = /\\$([\\w-]+)/g;\n/**\n * Convert nested rules to separate, remove them from original styles.\n */\n\nfunction jssNested() {\n // Get a function to be used for $ref replacement.\n function getReplaceRef(container, sheet) {\n return function (match, key) {\n var rule = container.getRule(key) || sheet && sheet.getRule(key);\n\n if (rule) {\n return rule.selector;\n }\n\n process.env.NODE_ENV !== \"production\" ? warning(false, \"[JSS] Could not find the referenced rule \\\"\" + key + \"\\\" in \\\"\" + (container.options.meta || container.toString()) + \"\\\".\") : void 0;\n return key;\n };\n }\n\n function replaceParentRefs(nestedProp, parentProp) {\n var parentSelectors = parentProp.split(separatorRegExp);\n var nestedSelectors = nestedProp.split(separatorRegExp);\n var result = '';\n\n for (var i = 0; i < parentSelectors.length; i++) {\n var parent = parentSelectors[i];\n\n for (var j = 0; j < nestedSelectors.length; j++) {\n var nested = nestedSelectors[j];\n if (result) result += ', '; // Replace all & by the parent or prefix & with the parent.\n\n result += nested.indexOf('&') !== -1 ? nested.replace(parentRegExp, parent) : parent + \" \" + nested;\n }\n }\n\n return result;\n }\n\n function getOptions(rule, container, prevOptions) {\n // Options has been already created, now we only increase index.\n if (prevOptions) return _extends({}, prevOptions, {\n index: prevOptions.index + 1\n });\n var nestingLevel = rule.options.nestingLevel;\n nestingLevel = nestingLevel === undefined ? 1 : nestingLevel + 1;\n\n var options = _extends({}, rule.options, {\n nestingLevel: nestingLevel,\n index: container.indexOf(rule) + 1 // We don't need the parent name to be set options for chlid.\n\n });\n\n delete options.name;\n return options;\n }\n\n function onProcessStyle(style, rule, sheet) {\n if (rule.type !== 'style') return style;\n var styleRule = rule;\n var container = styleRule.options.parent;\n var options;\n var replaceRef;\n\n for (var prop in style) {\n var isNested = prop.indexOf('&') !== -1;\n var isNestedConditional = prop[0] === '@';\n if (!isNested && !isNestedConditional) continue;\n options = getOptions(styleRule, container, options);\n\n if (isNested) {\n var selector = replaceParentRefs(prop, styleRule.selector); // Lazily create the ref replacer function just once for\n // all nested rules within the sheet.\n\n if (!replaceRef) replaceRef = getReplaceRef(container, sheet); // Replace all $refs.\n\n selector = selector.replace(refRegExp, replaceRef);\n var name = styleRule.key + \"-\" + prop;\n\n if ('replaceRule' in container) {\n // for backward compatibility\n container.replaceRule(name, style[prop], _extends({}, options, {\n selector: selector\n }));\n } else {\n container.addRule(name, style[prop], _extends({}, options, {\n selector: selector\n }));\n }\n } else if (isNestedConditional) {\n // Place conditional right after the parent rule to ensure right ordering.\n container.addRule(prop, {}, options).addRule(styleRule.key, style[prop], {\n selector: styleRule.selector\n });\n }\n\n delete style[prop];\n }\n\n return style;\n }\n\n return {\n onProcessStyle: onProcessStyle\n };\n}\n\nexport default jssNested;\n","/* eslint-disable no-var, prefer-template */\nvar uppercasePattern = /[A-Z]/g\nvar msPattern = /^ms-/\nvar cache = {}\n\nfunction toHyphenLower(match) {\n return '-' + match.toLowerCase()\n}\n\nfunction hyphenateStyleName(name) {\n if (cache.hasOwnProperty(name)) {\n return cache[name]\n }\n\n var hName = name.replace(uppercasePattern, toHyphenLower)\n return (cache[name] = msPattern.test(hName) ? '-' + hName : hName)\n}\n\nexport default hyphenateStyleName\n","import hyphenate from 'hyphenate-style-name';\n\n/**\n * Convert camel cased property names to dash separated.\n */\n\nfunction convertCase(style) {\n var converted = {};\n\n for (var prop in style) {\n var key = prop.indexOf('--') === 0 ? prop : hyphenate(prop);\n converted[key] = style[prop];\n }\n\n if (style.fallbacks) {\n if (Array.isArray(style.fallbacks)) converted.fallbacks = style.fallbacks.map(convertCase);else converted.fallbacks = convertCase(style.fallbacks);\n }\n\n return converted;\n}\n/**\n * Allow camel cased property names by converting them back to dasherized.\n */\n\n\nfunction camelCase() {\n function onProcessStyle(style) {\n if (Array.isArray(style)) {\n // Handle rules like @font-face, which can have multiple styles in an array\n for (var index = 0; index < style.length; index++) {\n style[index] = convertCase(style[index]);\n }\n\n return style;\n }\n\n return convertCase(style);\n }\n\n function onChangeValue(value, prop, rule) {\n if (prop.indexOf('--') === 0) {\n return value;\n }\n\n var hyphenatedProp = hyphenate(prop); // There was no camel case in place\n\n if (prop === hyphenatedProp) return value;\n rule.prop(hyphenatedProp, value); // Core will ignore that property value we set the proper one above.\n\n return null;\n }\n\n return {\n onProcessStyle: onProcessStyle,\n onChangeValue: onChangeValue\n };\n}\n\nexport default camelCase;\n","import { hasCSSTOMSupport } from 'jss';\n\nvar px = hasCSSTOMSupport && CSS ? CSS.px : 'px';\nvar ms = hasCSSTOMSupport && CSS ? CSS.ms : 'ms';\nvar percent = hasCSSTOMSupport && CSS ? CSS.percent : '%';\n/**\n * Generated jss-plugin-default-unit CSS property units\n */\n\nvar defaultUnits = {\n // Animation properties\n 'animation-delay': ms,\n 'animation-duration': ms,\n // Background properties\n 'background-position': px,\n 'background-position-x': px,\n 'background-position-y': px,\n 'background-size': px,\n // Border Properties\n border: px,\n 'border-bottom': px,\n 'border-bottom-left-radius': px,\n 'border-bottom-right-radius': px,\n 'border-bottom-width': px,\n 'border-left': px,\n 'border-left-width': px,\n 'border-radius': px,\n 'border-right': px,\n 'border-right-width': px,\n 'border-top': px,\n 'border-top-left-radius': px,\n 'border-top-right-radius': px,\n 'border-top-width': px,\n 'border-width': px,\n 'border-block': px,\n 'border-block-end': px,\n 'border-block-end-width': px,\n 'border-block-start': px,\n 'border-block-start-width': px,\n 'border-block-width': px,\n 'border-inline': px,\n 'border-inline-end': px,\n 'border-inline-end-width': px,\n 'border-inline-start': px,\n 'border-inline-start-width': px,\n 'border-inline-width': px,\n 'border-start-start-radius': px,\n 'border-start-end-radius': px,\n 'border-end-start-radius': px,\n 'border-end-end-radius': px,\n // Margin properties\n margin: px,\n 'margin-bottom': px,\n 'margin-left': px,\n 'margin-right': px,\n 'margin-top': px,\n 'margin-block': px,\n 'margin-block-end': px,\n 'margin-block-start': px,\n 'margin-inline': px,\n 'margin-inline-end': px,\n 'margin-inline-start': px,\n // Padding properties\n padding: px,\n 'padding-bottom': px,\n 'padding-left': px,\n 'padding-right': px,\n 'padding-top': px,\n 'padding-block': px,\n 'padding-block-end': px,\n 'padding-block-start': px,\n 'padding-inline': px,\n 'padding-inline-end': px,\n 'padding-inline-start': px,\n // Mask properties\n 'mask-position-x': px,\n 'mask-position-y': px,\n 'mask-size': px,\n // Width and height properties\n height: px,\n width: px,\n 'min-height': px,\n 'max-height': px,\n 'min-width': px,\n 'max-width': px,\n // Position properties\n bottom: px,\n left: px,\n top: px,\n right: px,\n inset: px,\n 'inset-block': px,\n 'inset-block-end': px,\n 'inset-block-start': px,\n 'inset-inline': px,\n 'inset-inline-end': px,\n 'inset-inline-start': px,\n // Shadow properties\n 'box-shadow': px,\n 'text-shadow': px,\n // Column properties\n 'column-gap': px,\n 'column-rule': px,\n 'column-rule-width': px,\n 'column-width': px,\n // Font and text properties\n 'font-size': px,\n 'font-size-delta': px,\n 'letter-spacing': px,\n 'text-decoration-thickness': px,\n 'text-indent': px,\n 'text-stroke': px,\n 'text-stroke-width': px,\n 'word-spacing': px,\n // Motion properties\n motion: px,\n 'motion-offset': px,\n // Outline properties\n outline: px,\n 'outline-offset': px,\n 'outline-width': px,\n // Perspective properties\n perspective: px,\n 'perspective-origin-x': percent,\n 'perspective-origin-y': percent,\n // Transform properties\n 'transform-origin': percent,\n 'transform-origin-x': percent,\n 'transform-origin-y': percent,\n 'transform-origin-z': percent,\n // Transition properties\n 'transition-delay': ms,\n 'transition-duration': ms,\n // Alignment properties\n 'vertical-align': px,\n 'flex-basis': px,\n // Some random properties\n 'shape-margin': px,\n size: px,\n gap: px,\n // Grid properties\n grid: px,\n 'grid-gap': px,\n 'row-gap': px,\n 'grid-row-gap': px,\n 'grid-column-gap': px,\n 'grid-template-rows': px,\n 'grid-template-columns': px,\n 'grid-auto-rows': px,\n 'grid-auto-columns': px,\n // Not existing properties.\n // Used to avoid issues with jss-plugin-expand integration.\n 'box-shadow-x': px,\n 'box-shadow-y': px,\n 'box-shadow-blur': px,\n 'box-shadow-spread': px,\n 'font-line-height': px,\n 'text-shadow-x': px,\n 'text-shadow-y': px,\n 'text-shadow-blur': px\n};\n\n/**\n * Clones the object and adds a camel cased property version.\n */\n\nfunction addCamelCasedVersion(obj) {\n var regExp = /(-[a-z])/g;\n\n var replace = function replace(str) {\n return str[1].toUpperCase();\n };\n\n var newObj = {};\n\n for (var key in obj) {\n newObj[key] = obj[key];\n newObj[key.replace(regExp, replace)] = obj[key];\n }\n\n return newObj;\n}\n\nvar units = addCamelCasedVersion(defaultUnits);\n/**\n * Recursive deep style passing function\n */\n\nfunction iterate(prop, value, options) {\n if (value == null) return value;\n\n if (Array.isArray(value)) {\n for (var i = 0; i < value.length; i++) {\n value[i] = iterate(prop, value[i], options);\n }\n } else if (typeof value === 'object') {\n if (prop === 'fallbacks') {\n for (var innerProp in value) {\n value[innerProp] = iterate(innerProp, value[innerProp], options);\n }\n } else {\n for (var _innerProp in value) {\n value[_innerProp] = iterate(prop + \"-\" + _innerProp, value[_innerProp], options);\n }\n } // eslint-disable-next-line no-restricted-globals\n\n } else if (typeof value === 'number' && isNaN(value) === false) {\n var unit = options[prop] || units[prop]; // Add the unit if available, except for the special case of 0px.\n\n if (unit && !(value === 0 && unit === px)) {\n return typeof unit === 'function' ? unit(value).toString() : \"\" + value + unit;\n }\n\n return value.toString();\n }\n\n return value;\n}\n/**\n * Add unit to numeric values.\n */\n\n\nfunction defaultUnit(options) {\n if (options === void 0) {\n options = {};\n }\n\n var camelCasedOptions = addCamelCasedVersion(options);\n\n function onProcessStyle(style, rule) {\n if (rule.type !== 'style') return style;\n\n for (var prop in style) {\n style[prop] = iterate(prop, style[prop], camelCasedOptions);\n }\n\n return style;\n }\n\n function onChangeValue(value, prop) {\n return iterate(prop, value, camelCasedOptions);\n }\n\n return {\n onProcessStyle: onProcessStyle,\n onChangeValue: onChangeValue\n };\n}\n\nexport default defaultUnit;\n","function _arrayLikeToArray(r, a) {\n (null == a || a > r.length) && (a = r.length);\n for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e];\n return n;\n}\nexport { _arrayLikeToArray as default };","import arrayLikeToArray from \"./arrayLikeToArray.js\";\nfunction _unsupportedIterableToArray(r, a) {\n if (r) {\n if (\"string\" == typeof r) return arrayLikeToArray(r, a);\n var t = {}.toString.call(r).slice(8, -1);\n return \"Object\" === t && r.constructor && (t = r.constructor.name), \"Map\" === t || \"Set\" === t ? Array.from(r) : \"Arguments\" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? arrayLikeToArray(r, a) : void 0;\n }\n}\nexport { _unsupportedIterableToArray as default };","import arrayWithoutHoles from \"./arrayWithoutHoles.js\";\nimport iterableToArray from \"./iterableToArray.js\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nimport nonIterableSpread from \"./nonIterableSpread.js\";\nfunction _toConsumableArray(r) {\n return arrayWithoutHoles(r) || iterableToArray(r) || unsupportedIterableToArray(r) || nonIterableSpread();\n}\nexport { _toConsumableArray as default };","import arrayLikeToArray from \"./arrayLikeToArray.js\";\nfunction _arrayWithoutHoles(r) {\n if (Array.isArray(r)) return arrayLikeToArray(r);\n}\nexport { _arrayWithoutHoles as default };","function _iterableToArray(r) {\n if (\"undefined\" != typeof Symbol && null != r[Symbol.iterator] || null != r[\"@@iterator\"]) return Array.from(r);\n}\nexport { _iterableToArray as default };","function _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\nexport { _nonIterableSpread as default };","import isInBrowser from 'is-in-browser';\nimport _toConsumableArray from '@babel/runtime/helpers/esm/toConsumableArray';\n\n// Export javascript style and css style vendor prefixes.\nvar js = '';\nvar css = '';\nvar vendor = '';\nvar browser = '';\nvar isTouch = isInBrowser && 'ontouchstart' in document.documentElement; // We should not do anything if required serverside.\n\nif (isInBrowser) {\n // Order matters. We need to check Webkit the last one because\n // other vendors use to add Webkit prefixes to some properties\n var jsCssMap = {\n Moz: '-moz-',\n ms: '-ms-',\n O: '-o-',\n Webkit: '-webkit-'\n };\n\n var _document$createEleme = document.createElement('p'),\n style = _document$createEleme.style;\n\n var testProp = 'Transform';\n\n for (var key in jsCssMap) {\n if (key + testProp in style) {\n js = key;\n css = jsCssMap[key];\n break;\n }\n } // Correctly detect the Edge browser.\n\n\n if (js === 'Webkit' && 'msHyphens' in style) {\n js = 'ms';\n css = jsCssMap.ms;\n browser = 'edge';\n } // Correctly detect the Safari browser.\n\n\n if (js === 'Webkit' && '-apple-trailing-word' in style) {\n vendor = 'apple';\n }\n}\n/**\n * Vendor prefix string for the current browser.\n *\n * @type {{js: String, css: String, vendor: String, browser: String}}\n * @api public\n */\n\n\nvar prefix = {\n js: js,\n css: css,\n vendor: vendor,\n browser: browser,\n isTouch: isTouch\n};\n\n/**\n * Test if a keyframe at-rule should be prefixed or not\n *\n * @param {String} vendor prefix string for the current browser.\n * @return {String}\n * @api public\n */\n\nfunction supportedKeyframes(key) {\n // Keyframes is already prefixed. e.g. key = '@-webkit-keyframes a'\n if (key[1] === '-') return key; // No need to prefix IE/Edge. Older browsers will ignore unsupported rules.\n // https://caniuse.com/#search=keyframes\n\n if (prefix.js === 'ms') return key;\n return \"@\" + prefix.css + \"keyframes\" + key.substr(10);\n}\n\n// https://caniuse.com/#search=appearance\n\nvar appearence = {\n noPrefill: ['appearance'],\n supportedProperty: function supportedProperty(prop) {\n if (prop !== 'appearance') return false;\n if (prefix.js === 'ms') return \"-webkit-\" + prop;\n return prefix.css + prop;\n }\n};\n\n// https://caniuse.com/#search=color-adjust\n\nvar colorAdjust = {\n noPrefill: ['color-adjust'],\n supportedProperty: function supportedProperty(prop) {\n if (prop !== 'color-adjust') return false;\n if (prefix.js === 'Webkit') return prefix.css + \"print-\" + prop;\n return prop;\n }\n};\n\nvar regExp = /[-\\s]+(.)?/g;\n/**\n * Replaces the letter with the capital letter\n *\n * @param {String} match\n * @param {String} c\n * @return {String}\n * @api private\n */\n\nfunction toUpper(match, c) {\n return c ? c.toUpperCase() : '';\n}\n/**\n * Convert dash separated strings to camel-cased.\n *\n * @param {String} str\n * @return {String}\n * @api private\n */\n\n\nfunction camelize(str) {\n return str.replace(regExp, toUpper);\n}\n\n/**\n * Convert dash separated strings to pascal cased.\n *\n * @param {String} str\n * @return {String}\n * @api private\n */\n\nfunction pascalize(str) {\n return camelize(\"-\" + str);\n}\n\n// but we can use a longhand property instead.\n// https://caniuse.com/#search=mask\n\nvar mask = {\n noPrefill: ['mask'],\n supportedProperty: function supportedProperty(prop, style) {\n if (!/^mask/.test(prop)) return false;\n\n if (prefix.js === 'Webkit') {\n var longhand = 'mask-image';\n\n if (camelize(longhand) in style) {\n return prop;\n }\n\n if (prefix.js + pascalize(longhand) in style) {\n return prefix.css + prop;\n }\n }\n\n return prop;\n }\n};\n\n// https://caniuse.com/#search=text-orientation\n\nvar textOrientation = {\n noPrefill: ['text-orientation'],\n supportedProperty: function supportedProperty(prop) {\n if (prop !== 'text-orientation') return false;\n\n if (prefix.vendor === 'apple' && !prefix.isTouch) {\n return prefix.css + prop;\n }\n\n return prop;\n }\n};\n\n// https://caniuse.com/#search=transform\n\nvar transform = {\n noPrefill: ['transform'],\n supportedProperty: function supportedProperty(prop, style, options) {\n if (prop !== 'transform') return false;\n\n if (options.transform) {\n return prop;\n }\n\n return prefix.css + prop;\n }\n};\n\n// https://caniuse.com/#search=transition\n\nvar transition = {\n noPrefill: ['transition'],\n supportedProperty: function supportedProperty(prop, style, options) {\n if (prop !== 'transition') return false;\n\n if (options.transition) {\n return prop;\n }\n\n return prefix.css + prop;\n }\n};\n\n// https://caniuse.com/#search=writing-mode\n\nvar writingMode = {\n noPrefill: ['writing-mode'],\n supportedProperty: function supportedProperty(prop) {\n if (prop !== 'writing-mode') return false;\n\n if (prefix.js === 'Webkit' || prefix.js === 'ms' && prefix.browser !== 'edge') {\n return prefix.css + prop;\n }\n\n return prop;\n }\n};\n\n// https://caniuse.com/#search=user-select\n\nvar userSelect = {\n noPrefill: ['user-select'],\n supportedProperty: function supportedProperty(prop) {\n if (prop !== 'user-select') return false;\n\n if (prefix.js === 'Moz' || prefix.js === 'ms' || prefix.vendor === 'apple') {\n return prefix.css + prop;\n }\n\n return prop;\n }\n};\n\n// https://caniuse.com/#search=multicolumn\n// https://github.com/postcss/autoprefixer/issues/491\n// https://github.com/postcss/autoprefixer/issues/177\n\nvar breakPropsOld = {\n supportedProperty: function supportedProperty(prop, style) {\n if (!/^break-/.test(prop)) return false;\n\n if (prefix.js === 'Webkit') {\n var jsProp = \"WebkitColumn\" + pascalize(prop);\n return jsProp in style ? prefix.css + \"column-\" + prop : false;\n }\n\n if (prefix.js === 'Moz') {\n var _jsProp = \"page\" + pascalize(prop);\n\n return _jsProp in style ? \"page-\" + prop : false;\n }\n\n return false;\n }\n};\n\n// See https://github.com/postcss/autoprefixer/issues/324.\n\nvar inlineLogicalOld = {\n supportedProperty: function supportedProperty(prop, style) {\n if (!/^(border|margin|padding)-inline/.test(prop)) return false;\n if (prefix.js === 'Moz') return prop;\n var newProp = prop.replace('-inline', '');\n return prefix.js + pascalize(newProp) in style ? prefix.css + newProp : false;\n }\n};\n\n// Camelization is required because we can't test using.\n// CSS syntax for e.g. in FF.\n\nvar unprefixed = {\n supportedProperty: function supportedProperty(prop, style) {\n return camelize(prop) in style ? prop : false;\n }\n};\n\nvar prefixed = {\n supportedProperty: function supportedProperty(prop, style) {\n var pascalized = pascalize(prop); // Return custom CSS variable without prefixing.\n\n if (prop[0] === '-') return prop; // Return already prefixed value without prefixing.\n\n if (prop[0] === '-' && prop[1] === '-') return prop;\n if (prefix.js + pascalized in style) return prefix.css + prop; // Try webkit fallback.\n\n if (prefix.js !== 'Webkit' && \"Webkit\" + pascalized in style) return \"-webkit-\" + prop;\n return false;\n }\n};\n\n// https://caniuse.com/#search=scroll-snap\n\nvar scrollSnap = {\n supportedProperty: function supportedProperty(prop) {\n if (prop.substring(0, 11) !== 'scroll-snap') return false;\n\n if (prefix.js === 'ms') {\n return \"\" + prefix.css + prop;\n }\n\n return prop;\n }\n};\n\n// https://caniuse.com/#search=overscroll-behavior\n\nvar overscrollBehavior = {\n supportedProperty: function supportedProperty(prop) {\n if (prop !== 'overscroll-behavior') return false;\n\n if (prefix.js === 'ms') {\n return prefix.css + \"scroll-chaining\";\n }\n\n return prop;\n }\n};\n\nvar propMap = {\n 'flex-grow': 'flex-positive',\n 'flex-shrink': 'flex-negative',\n 'flex-basis': 'flex-preferred-size',\n 'justify-content': 'flex-pack',\n order: 'flex-order',\n 'align-items': 'flex-align',\n 'align-content': 'flex-line-pack' // 'align-self' is handled by 'align-self' plugin.\n\n}; // Support old flex spec from 2012.\n\nvar flex2012 = {\n supportedProperty: function supportedProperty(prop, style) {\n var newProp = propMap[prop];\n if (!newProp) return false;\n return prefix.js + pascalize(newProp) in style ? prefix.css + newProp : false;\n }\n};\n\nvar propMap$1 = {\n flex: 'box-flex',\n 'flex-grow': 'box-flex',\n 'flex-direction': ['box-orient', 'box-direction'],\n order: 'box-ordinal-group',\n 'align-items': 'box-align',\n 'flex-flow': ['box-orient', 'box-direction'],\n 'justify-content': 'box-pack'\n};\nvar propKeys = Object.keys(propMap$1);\n\nvar prefixCss = function prefixCss(p) {\n return prefix.css + p;\n}; // Support old flex spec from 2009.\n\n\nvar flex2009 = {\n supportedProperty: function supportedProperty(prop, style, _ref) {\n var multiple = _ref.multiple;\n\n if (propKeys.indexOf(prop) > -1) {\n var newProp = propMap$1[prop];\n\n if (!Array.isArray(newProp)) {\n return prefix.js + pascalize(newProp) in style ? prefix.css + newProp : false;\n }\n\n if (!multiple) return false;\n\n for (var i = 0; i < newProp.length; i++) {\n if (!(prefix.js + pascalize(newProp[0]) in style)) {\n return false;\n }\n }\n\n return newProp.map(prefixCss);\n }\n\n return false;\n }\n};\n\n// plugins = [\n// ...plugins,\n// breakPropsOld,\n// inlineLogicalOld,\n// unprefixed,\n// prefixed,\n// scrollSnap,\n// flex2012,\n// flex2009\n// ]\n// Plugins without 'noPrefill' value, going last.\n// 'flex-*' plugins should be at the bottom.\n// 'flex2009' going after 'flex2012'.\n// 'prefixed' going after 'unprefixed'\n\nvar plugins = [appearence, colorAdjust, mask, textOrientation, transform, transition, writingMode, userSelect, breakPropsOld, inlineLogicalOld, unprefixed, prefixed, scrollSnap, overscrollBehavior, flex2012, flex2009];\nvar propertyDetectors = plugins.filter(function (p) {\n return p.supportedProperty;\n}).map(function (p) {\n return p.supportedProperty;\n});\nvar noPrefill = plugins.filter(function (p) {\n return p.noPrefill;\n}).reduce(function (a, p) {\n a.push.apply(a, _toConsumableArray(p.noPrefill));\n return a;\n}, []);\n\nvar el;\nvar cache = {};\n\nif (isInBrowser) {\n el = document.createElement('p'); // We test every property on vendor prefix requirement.\n // Once tested, result is cached. It gives us up to 70% perf boost.\n // http://jsperf.com/element-style-object-access-vs-plain-object\n //\n // Prefill cache with known css properties to reduce amount of\n // properties we need to feature test at runtime.\n // http://davidwalsh.name/vendor-prefix\n\n var computed = window.getComputedStyle(document.documentElement, '');\n\n for (var key$1 in computed) {\n // eslint-disable-next-line no-restricted-globals\n if (!isNaN(key$1)) cache[computed[key$1]] = computed[key$1];\n } // Properties that cannot be correctly detected using the\n // cache prefill method.\n\n\n noPrefill.forEach(function (x) {\n return delete cache[x];\n });\n}\n/**\n * Test if a property is supported, returns supported property with vendor\n * prefix if required. Returns `false` if not supported.\n *\n * @param {String} prop dash separated\n * @param {Object} [options]\n * @return {String|Boolean}\n * @api public\n */\n\n\nfunction supportedProperty(prop, options) {\n if (options === void 0) {\n options = {};\n }\n\n // For server-side rendering.\n if (!el) return prop; // Remove cache for benchmark tests or return property from the cache.\n\n if (process.env.NODE_ENV !== 'benchmark' && cache[prop] != null) {\n return cache[prop];\n } // Check if 'transition' or 'transform' natively supported in browser.\n\n\n if (prop === 'transition' || prop === 'transform') {\n options[prop] = prop in el.style;\n } // Find a plugin for current prefix property.\n\n\n for (var i = 0; i < propertyDetectors.length; i++) {\n cache[prop] = propertyDetectors[i](prop, el.style, options); // Break loop, if value found.\n\n if (cache[prop]) break;\n } // Reset styles for current property.\n // Firefox can even throw an error for invalid properties, e.g., \"0\".\n\n\n try {\n el.style[prop] = '';\n } catch (err) {\n return false;\n }\n\n return cache[prop];\n}\n\nvar cache$1 = {};\nvar transitionProperties = {\n transition: 1,\n 'transition-property': 1,\n '-webkit-transition': 1,\n '-webkit-transition-property': 1\n};\nvar transPropsRegExp = /(^\\s*[\\w-]+)|, (\\s*[\\w-]+)(?![^()]*\\))/g;\nvar el$1;\n/**\n * Returns prefixed value transition/transform if needed.\n *\n * @param {String} match\n * @param {String} p1\n * @param {String} p2\n * @return {String}\n * @api private\n */\n\nfunction prefixTransitionCallback(match, p1, p2) {\n if (p1 === 'var') return 'var';\n if (p1 === 'all') return 'all';\n if (p2 === 'all') return ', all';\n var prefixedValue = p1 ? supportedProperty(p1) : \", \" + supportedProperty(p2);\n if (!prefixedValue) return p1 || p2;\n return prefixedValue;\n}\n\nif (isInBrowser) el$1 = document.createElement('p');\n/**\n * Returns prefixed value if needed. Returns `false` if value is not supported.\n *\n * @param {String} property\n * @param {String} value\n * @return {String|Boolean}\n * @api public\n */\n\nfunction supportedValue(property, value) {\n // For server-side rendering.\n var prefixedValue = value;\n if (!el$1 || property === 'content') return value; // It is a string or a number as a string like '1'.\n // We want only prefixable values here.\n // eslint-disable-next-line no-restricted-globals\n\n if (typeof prefixedValue !== 'string' || !isNaN(parseInt(prefixedValue, 10))) {\n return prefixedValue;\n } // Create cache key for current value.\n\n\n var cacheKey = property + prefixedValue; // Remove cache for benchmark tests or return value from cache.\n\n if (process.env.NODE_ENV !== 'benchmark' && cache$1[cacheKey] != null) {\n return cache$1[cacheKey];\n } // IE can even throw an error in some cases, for e.g. style.content = 'bar'.\n\n\n try {\n // Test value as it is.\n el$1.style[property] = prefixedValue;\n } catch (err) {\n // Return false if value not supported.\n cache$1[cacheKey] = false;\n return false;\n } // If 'transition' or 'transition-property' property.\n\n\n if (transitionProperties[property]) {\n prefixedValue = prefixedValue.replace(transPropsRegExp, prefixTransitionCallback);\n } else if (el$1.style[property] === '') {\n // Value with a vendor prefix.\n prefixedValue = prefix.css + prefixedValue; // Hardcode test to convert \"flex\" to \"-ms-flexbox\" for IE10.\n\n if (prefixedValue === '-ms-flex') el$1.style[property] = '-ms-flexbox'; // Test prefixed value.\n\n el$1.style[property] = prefixedValue; // Return false if value not supported.\n\n if (el$1.style[property] === '') {\n cache$1[cacheKey] = false;\n return false;\n }\n } // Reset styles for current property.\n\n\n el$1.style[property] = ''; // Write current value to cache.\n\n cache$1[cacheKey] = prefixedValue;\n return cache$1[cacheKey];\n}\n\nexport { prefix, supportedKeyframes, supportedProperty, supportedValue };\n","import { supportedKeyframes, supportedValue, supportedProperty } from 'css-vendor';\nimport { toCssValue } from 'jss';\n\n/**\n * Add vendor prefix to a property name when needed.\n */\n\nfunction jssVendorPrefixer() {\n function onProcessRule(rule) {\n if (rule.type === 'keyframes') {\n var atRule = rule;\n atRule.at = supportedKeyframes(atRule.at);\n }\n }\n\n function prefixStyle(style) {\n for (var prop in style) {\n var value = style[prop];\n\n if (prop === 'fallbacks' && Array.isArray(value)) {\n style[prop] = value.map(prefixStyle);\n continue;\n }\n\n var changeProp = false;\n var supportedProp = supportedProperty(prop);\n if (supportedProp && supportedProp !== prop) changeProp = true;\n var changeValue = false;\n var supportedValue$1 = supportedValue(supportedProp, toCssValue(value));\n if (supportedValue$1 && supportedValue$1 !== value) changeValue = true;\n\n if (changeProp || changeValue) {\n if (changeProp) delete style[prop];\n style[supportedProp || prop] = supportedValue$1 || value;\n }\n }\n\n return style;\n }\n\n function onProcessStyle(style, rule) {\n if (rule.type !== 'style') return style;\n return prefixStyle(style);\n }\n\n function onChangeValue(value, prop) {\n return supportedValue(prop, toCssValue(value)) || value;\n }\n\n return {\n onProcessRule: onProcessRule,\n onProcessStyle: onProcessStyle,\n onChangeValue: onChangeValue\n };\n}\n\nexport default jssVendorPrefixer;\n","/**\n * Sort props by length.\n */\nfunction jssPropsSort() {\n var sort = function sort(prop0, prop1) {\n if (prop0.length === prop1.length) {\n return prop0 > prop1 ? 1 : -1;\n }\n\n return prop0.length - prop1.length;\n };\n\n return {\n onProcessStyle: function onProcessStyle(style, rule) {\n if (rule.type !== 'style') return style;\n var newStyle = {};\n var props = Object.keys(style).sort(sort);\n\n for (var i = 0; i < props.length; i++) {\n newStyle[props[i]] = style[props[i]];\n }\n\n return newStyle;\n }\n };\n}\n\nexport default jssPropsSort;\n","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport { exactProp } from '@material-ui/utils';\nimport createGenerateClassName from '../createGenerateClassName';\nimport { create } from 'jss';\nimport jssPreset from '../jssPreset'; // Default JSS instance.\n\nvar jss = create(jssPreset()); // Use a singleton or the provided one by the context.\n//\n// The counter-based approach doesn't tolerate any mistake.\n// It's much safer to use the same counter everywhere.\n\nvar generateClassName = createGenerateClassName(); // Exported for test purposes\n\nexport var sheetsManager = new Map();\nvar defaultOptions = {\n disableGeneration: false,\n generateClassName: generateClassName,\n jss: jss,\n sheetsCache: null,\n sheetsManager: sheetsManager,\n sheetsRegistry: null\n};\nexport var StylesContext = React.createContext(defaultOptions);\n\nif (process.env.NODE_ENV !== 'production') {\n StylesContext.displayName = 'StylesContext';\n}\n\nvar injectFirstNode;\nexport default function StylesProvider(props) {\n var children = props.children,\n _props$injectFirst = props.injectFirst,\n injectFirst = _props$injectFirst === void 0 ? false : _props$injectFirst,\n _props$disableGenerat = props.disableGeneration,\n disableGeneration = _props$disableGenerat === void 0 ? false : _props$disableGenerat,\n localOptions = _objectWithoutProperties(props, [\"children\", \"injectFirst\", \"disableGeneration\"]);\n\n var outerOptions = React.useContext(StylesContext);\n\n var context = _extends({}, outerOptions, {\n disableGeneration: disableGeneration\n }, localOptions);\n\n if (process.env.NODE_ENV !== 'production') {\n if (typeof window === 'undefined' && !context.sheetsManager) {\n console.error('Material-UI: You need to use the ServerStyleSheets API when rendering on the server.');\n }\n }\n\n if (process.env.NODE_ENV !== 'production') {\n if (context.jss.options.insertionPoint && injectFirst) {\n console.error('Material-UI: You cannot use a custom insertionPoint and at the same time.');\n }\n }\n\n if (process.env.NODE_ENV !== 'production') {\n if (injectFirst && localOptions.jss) {\n console.error('Material-UI: You cannot use the jss and injectFirst props at the same time.');\n }\n }\n\n if (!context.jss.options.insertionPoint && injectFirst && typeof window !== 'undefined') {\n if (!injectFirstNode) {\n var head = document.head;\n injectFirstNode = document.createComment('mui-inject-first');\n head.insertBefore(injectFirstNode, head.firstChild);\n }\n\n context.jss = create({\n plugins: jssPreset().plugins,\n insertionPoint: injectFirstNode\n });\n }\n\n return /*#__PURE__*/React.createElement(StylesContext.Provider, {\n value: context\n }, children);\n}\nprocess.env.NODE_ENV !== \"production\" ? StylesProvider.propTypes = {\n /**\n * Your component tree.\n */\n children: PropTypes.node.isRequired,\n\n /**\n * You can disable the generation of the styles with this option.\n * It can be useful when traversing the React tree outside of the HTML\n * rendering step on the server.\n * Let's say you are using react-apollo to extract all\n * the queries made by the interface server-side - you can significantly speed up the traversal with this prop.\n */\n disableGeneration: PropTypes.bool,\n\n /**\n * JSS's class name generator.\n */\n generateClassName: PropTypes.func,\n\n /**\n * By default, the styles are injected last in the element of the page.\n * As a result, they gain more specificity than any other style sheet.\n * If you want to override Material-UI's styles, set this prop.\n */\n injectFirst: PropTypes.bool,\n\n /**\n * JSS's instance.\n */\n jss: PropTypes.object,\n\n /**\n * @ignore\n */\n serverGenerateClassName: PropTypes.func,\n\n /**\n * @ignore\n *\n * Beta feature.\n *\n * Cache for the sheets.\n */\n sheetsCache: PropTypes.object,\n\n /**\n * @ignore\n *\n * The sheetsManager is used to deduplicate style sheet injection in the page.\n * It's deduplicating using the (theme, styles) couple.\n * On the server, you should provide a new instance for each request.\n */\n sheetsManager: PropTypes.object,\n\n /**\n * @ignore\n *\n * Collect the sheets.\n */\n sheetsRegistry: PropTypes.object\n} : void 0;\n\nif (process.env.NODE_ENV !== 'production') {\n process.env.NODE_ENV !== \"production\" ? StylesProvider.propTypes = exactProp(StylesProvider.propTypes) : void 0;\n}","import functions from 'jss-plugin-rule-value-function';\nimport global from 'jss-plugin-global';\nimport nested from 'jss-plugin-nested';\nimport camelCase from 'jss-plugin-camel-case';\nimport defaultUnit from 'jss-plugin-default-unit';\nimport vendorPrefixer from 'jss-plugin-vendor-prefixer';\nimport propsSort from 'jss-plugin-props-sort'; // Subset of jss-preset-default with only the plugins the Material-UI components are using.\n\nexport default function jssPreset() {\n return {\n plugins: [functions(), global(), nested(), camelCase(), defaultUnit(), // Disable the vendor prefixer server-side, it does nothing.\n // This way, we can get a performance boost.\n // In the documentation, we are using `autoprefixer` to solve this problem.\n typeof window === 'undefined' ? null : vendorPrefixer(), propsSort()]\n };\n}","/* eslint-disable import/prefer-default-export */\n// Global index counter to preserve source order.\n// We create the style sheet during the creation of the component,\n// children are handled after the parents, so the order of style elements would be parent->child.\n// It is a problem though when a parent passes a className\n// which needs to override any child's styles.\n// StyleSheet of the child has a higher specificity, because of the source order.\n// So our solution is to render sheets them in the reverse order child->sheet, so\n// that parent has a higher specificity.\nvar indexCounter = -1e9;\nexport function increment() {\n indexCounter += 1;\n\n if (process.env.NODE_ENV !== 'production') {\n if (indexCounter >= 0) {\n console.warn(['Material-UI: You might have a memory leak.', 'The indexCounter is not supposed to grow that much.'].join('\\n'));\n }\n }\n\n return indexCounter;\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\nexport function isPlainObject(item) {\n return item && _typeof(item) === 'object' && item.constructor === Object;\n}\nexport default function deepmerge(target, source) {\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {\n clone: true\n };\n var output = options.clone ? _extends({}, target) : target;\n\n if (isPlainObject(target) && isPlainObject(source)) {\n Object.keys(source).forEach(function (key) {\n // Avoid prototype pollution\n if (key === '__proto__') {\n return;\n }\n\n if (isPlainObject(source[key]) && key in target) {\n output[key] = deepmerge(target[key], source[key], options);\n } else {\n output[key] = source[key];\n }\n });\n }\n\n return output;\n}","// We use the same empty object to ref count the styles that don't need a theme object.\nvar noopTheme = {};\nexport default noopTheme;","import _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport React from 'react';\nimport { getDynamicStyles } from 'jss';\nimport mergeClasses from '../mergeClasses';\nimport multiKeyStore from './multiKeyStore';\nimport useTheme from '../useTheme';\nimport { StylesContext } from '../StylesProvider';\nimport { increment } from './indexCounter';\nimport getStylesCreator from '../getStylesCreator';\nimport noopTheme from '../getStylesCreator/noopTheme';\n\nfunction getClasses(_ref, classes, Component) {\n var state = _ref.state,\n stylesOptions = _ref.stylesOptions;\n\n if (stylesOptions.disableGeneration) {\n return classes || {};\n }\n\n if (!state.cacheClasses) {\n state.cacheClasses = {\n // Cache for the finalized classes value.\n value: null,\n // Cache for the last used classes prop pointer.\n lastProp: null,\n // Cache for the last used rendered classes pointer.\n lastJSS: {}\n };\n } // Tracks if either the rendered classes or classes prop has changed,\n // requiring the generation of a new finalized classes object.\n\n\n var generate = false;\n\n if (state.classes !== state.cacheClasses.lastJSS) {\n state.cacheClasses.lastJSS = state.classes;\n generate = true;\n }\n\n if (classes !== state.cacheClasses.lastProp) {\n state.cacheClasses.lastProp = classes;\n generate = true;\n }\n\n if (generate) {\n state.cacheClasses.value = mergeClasses({\n baseClasses: state.cacheClasses.lastJSS,\n newClasses: classes,\n Component: Component\n });\n }\n\n return state.cacheClasses.value;\n}\n\nfunction attach(_ref2, props) {\n var state = _ref2.state,\n theme = _ref2.theme,\n stylesOptions = _ref2.stylesOptions,\n stylesCreator = _ref2.stylesCreator,\n name = _ref2.name;\n\n if (stylesOptions.disableGeneration) {\n return;\n }\n\n var sheetManager = multiKeyStore.get(stylesOptions.sheetsManager, stylesCreator, theme);\n\n if (!sheetManager) {\n sheetManager = {\n refs: 0,\n staticSheet: null,\n dynamicStyles: null\n };\n multiKeyStore.set(stylesOptions.sheetsManager, stylesCreator, theme, sheetManager);\n }\n\n var options = _extends({}, stylesCreator.options, stylesOptions, {\n theme: theme,\n flip: typeof stylesOptions.flip === 'boolean' ? stylesOptions.flip : theme.direction === 'rtl'\n });\n\n options.generateId = options.serverGenerateClassName || options.generateClassName;\n var sheetsRegistry = stylesOptions.sheetsRegistry;\n\n if (sheetManager.refs === 0) {\n var staticSheet;\n\n if (stylesOptions.sheetsCache) {\n staticSheet = multiKeyStore.get(stylesOptions.sheetsCache, stylesCreator, theme);\n }\n\n var styles = stylesCreator.create(theme, name);\n\n if (!staticSheet) {\n staticSheet = stylesOptions.jss.createStyleSheet(styles, _extends({\n link: false\n }, options));\n staticSheet.attach();\n\n if (stylesOptions.sheetsCache) {\n multiKeyStore.set(stylesOptions.sheetsCache, stylesCreator, theme, staticSheet);\n }\n }\n\n if (sheetsRegistry) {\n sheetsRegistry.add(staticSheet);\n }\n\n sheetManager.staticSheet = staticSheet;\n sheetManager.dynamicStyles = getDynamicStyles(styles);\n }\n\n if (sheetManager.dynamicStyles) {\n var dynamicSheet = stylesOptions.jss.createStyleSheet(sheetManager.dynamicStyles, _extends({\n link: true\n }, options));\n dynamicSheet.update(props);\n dynamicSheet.attach();\n state.dynamicSheet = dynamicSheet;\n state.classes = mergeClasses({\n baseClasses: sheetManager.staticSheet.classes,\n newClasses: dynamicSheet.classes\n });\n\n if (sheetsRegistry) {\n sheetsRegistry.add(dynamicSheet);\n }\n } else {\n state.classes = sheetManager.staticSheet.classes;\n }\n\n sheetManager.refs += 1;\n}\n\nfunction update(_ref3, props) {\n var state = _ref3.state;\n\n if (state.dynamicSheet) {\n state.dynamicSheet.update(props);\n }\n}\n\nfunction detach(_ref4) {\n var state = _ref4.state,\n theme = _ref4.theme,\n stylesOptions = _ref4.stylesOptions,\n stylesCreator = _ref4.stylesCreator;\n\n if (stylesOptions.disableGeneration) {\n return;\n }\n\n var sheetManager = multiKeyStore.get(stylesOptions.sheetsManager, stylesCreator, theme);\n sheetManager.refs -= 1;\n var sheetsRegistry = stylesOptions.sheetsRegistry;\n\n if (sheetManager.refs === 0) {\n multiKeyStore.delete(stylesOptions.sheetsManager, stylesCreator, theme);\n stylesOptions.jss.removeStyleSheet(sheetManager.staticSheet);\n\n if (sheetsRegistry) {\n sheetsRegistry.remove(sheetManager.staticSheet);\n }\n }\n\n if (state.dynamicSheet) {\n stylesOptions.jss.removeStyleSheet(state.dynamicSheet);\n\n if (sheetsRegistry) {\n sheetsRegistry.remove(state.dynamicSheet);\n }\n }\n}\n\nfunction useSynchronousEffect(func, values) {\n var key = React.useRef([]);\n var output; // Store \"generation\" key. Just returns a new object every time\n\n var currentKey = React.useMemo(function () {\n return {};\n }, values); // eslint-disable-line react-hooks/exhaustive-deps\n // \"the first render\", or \"memo dropped the value\"\n\n if (key.current !== currentKey) {\n key.current = currentKey;\n output = func();\n }\n\n React.useEffect(function () {\n return function () {\n if (output) {\n output();\n }\n };\n }, [currentKey] // eslint-disable-line react-hooks/exhaustive-deps\n );\n}\n\nexport default function makeStyles(stylesOrCreator) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n var name = options.name,\n classNamePrefixOption = options.classNamePrefix,\n Component = options.Component,\n _options$defaultTheme = options.defaultTheme,\n defaultTheme = _options$defaultTheme === void 0 ? noopTheme : _options$defaultTheme,\n stylesOptions2 = _objectWithoutProperties(options, [\"name\", \"classNamePrefix\", \"Component\", \"defaultTheme\"]);\n\n var stylesCreator = getStylesCreator(stylesOrCreator);\n var classNamePrefix = name || classNamePrefixOption || 'makeStyles';\n stylesCreator.options = {\n index: increment(),\n name: name,\n meta: classNamePrefix,\n classNamePrefix: classNamePrefix\n };\n\n var useStyles = function useStyles() {\n var props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var theme = useTheme() || defaultTheme;\n\n var stylesOptions = _extends({}, React.useContext(StylesContext), stylesOptions2);\n\n var instance = React.useRef();\n var shouldUpdate = React.useRef();\n useSynchronousEffect(function () {\n var current = {\n name: name,\n state: {},\n stylesCreator: stylesCreator,\n stylesOptions: stylesOptions,\n theme: theme\n };\n attach(current, props);\n shouldUpdate.current = false;\n instance.current = current;\n return function () {\n detach(current);\n };\n }, [theme, stylesCreator]);\n React.useEffect(function () {\n if (shouldUpdate.current) {\n update(instance.current, props);\n }\n\n shouldUpdate.current = true;\n });\n var classes = getClasses(instance.current, props.classes, Component);\n\n if (process.env.NODE_ENV !== 'production') {\n // eslint-disable-next-line react-hooks/rules-of-hooks\n React.useDebugValue(classes);\n }\n\n return classes;\n };\n\n return useStyles;\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport { deepmerge } from '@material-ui/utils';\nimport noopTheme from './noopTheme';\nexport default function getStylesCreator(stylesOrCreator) {\n var themingEnabled = typeof stylesOrCreator === 'function';\n\n if (process.env.NODE_ENV !== 'production') {\n if (_typeof(stylesOrCreator) !== 'object' && !themingEnabled) {\n console.error(['Material-UI: The `styles` argument provided is invalid.', 'You need to provide a function generating the styles or a styles object.'].join('\\n'));\n }\n }\n\n return {\n create: function create(theme, name) {\n var styles;\n\n try {\n styles = themingEnabled ? stylesOrCreator(theme) : stylesOrCreator;\n } catch (err) {\n if (process.env.NODE_ENV !== 'production') {\n if (themingEnabled === true && theme === noopTheme) {\n // TODO: prepend error message/name instead\n console.error(['Material-UI: The `styles` argument provided is invalid.', 'You are providing a function without a theme in the context.', 'One of the parent elements needs to use a ThemeProvider.'].join('\\n'));\n }\n }\n\n throw err;\n }\n\n if (!name || !theme.overrides || !theme.overrides[name]) {\n return styles;\n }\n\n var overrides = theme.overrides[name];\n\n var stylesWithOverrides = _extends({}, styles);\n\n Object.keys(overrides).forEach(function (key) {\n if (process.env.NODE_ENV !== 'production') {\n if (!stylesWithOverrides[key]) {\n console.warn(['Material-UI: You are trying to override a style that does not exist.', \"Fix the `\".concat(key, \"` key of `theme.overrides.\").concat(name, \"`.\")].join('\\n'));\n }\n }\n\n stylesWithOverrides[key] = deepmerge(stylesWithOverrides[key], overrides[key]);\n });\n return stylesWithOverrides;\n },\n options: {}\n };\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport hoistNonReactStatics from 'hoist-non-react-statics';\nimport { chainPropTypes, getDisplayName } from '@material-ui/utils';\nimport makeStyles from '../makeStyles';\nimport getThemeProps from '../getThemeProps';\nimport useTheme from '../useTheme'; // Link a style sheet with a component.\n// It does not modify the component passed to it;\n// instead, it returns a new component, with a `classes` property.\n\nvar withStyles = function withStyles(stylesOrCreator) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n return function (Component) {\n var defaultTheme = options.defaultTheme,\n _options$withTheme = options.withTheme,\n withTheme = _options$withTheme === void 0 ? false : _options$withTheme,\n name = options.name,\n stylesOptions = _objectWithoutProperties(options, [\"defaultTheme\", \"withTheme\", \"name\"]);\n\n if (process.env.NODE_ENV !== 'production') {\n if (Component === undefined) {\n throw new Error(['You are calling withStyles(styles)(Component) with an undefined component.', 'You may have forgotten to import it.'].join('\\n'));\n }\n }\n\n var classNamePrefix = name;\n\n if (process.env.NODE_ENV !== 'production') {\n if (!name) {\n // Provide a better DX outside production.\n var displayName = getDisplayName(Component);\n\n if (displayName !== undefined) {\n classNamePrefix = displayName;\n }\n }\n }\n\n var useStyles = makeStyles(stylesOrCreator, _extends({\n defaultTheme: defaultTheme,\n Component: Component,\n name: name || Component.displayName,\n classNamePrefix: classNamePrefix\n }, stylesOptions));\n var WithStyles = /*#__PURE__*/React.forwardRef(function WithStyles(props, ref) {\n var classesProp = props.classes,\n innerRef = props.innerRef,\n other = _objectWithoutProperties(props, [\"classes\", \"innerRef\"]); // The wrapper receives only user supplied props, which could be a subset of\n // the actual props Component might receive due to merging with defaultProps.\n // So copying it here would give us the same result in the wrapper as well.\n\n\n var classes = useStyles(_extends({}, Component.defaultProps, props));\n var theme;\n var more = other;\n\n if (typeof name === 'string' || withTheme) {\n // name and withTheme are invariant in the outer scope\n // eslint-disable-next-line react-hooks/rules-of-hooks\n theme = useTheme() || defaultTheme;\n\n if (name) {\n more = getThemeProps({\n theme: theme,\n name: name,\n props: other\n });\n } // Provide the theme to the wrapped component.\n // So we don't have to use the `withTheme()` Higher-order Component.\n\n\n if (withTheme && !more.theme) {\n more.theme = theme;\n }\n }\n\n return /*#__PURE__*/React.createElement(Component, _extends({\n ref: innerRef || ref,\n classes: classes\n }, more));\n });\n process.env.NODE_ENV !== \"production\" ? WithStyles.propTypes = {\n /**\n * Override or extend the styles applied to the component.\n */\n classes: PropTypes.object,\n\n /**\n * Use that prop to pass a ref to the decorated component.\n * @deprecated\n */\n innerRef: chainPropTypes(PropTypes.oneOfType([PropTypes.func, PropTypes.object]), function (props) {\n if (props.innerRef == null) {\n return null;\n }\n\n return null; // return new Error(\n // 'Material-UI: The `innerRef` prop is deprecated and will be removed in v5. ' +\n // 'Refs are now automatically forwarded to the inner component.',\n // );\n })\n } : void 0;\n\n if (process.env.NODE_ENV !== 'production') {\n WithStyles.displayName = \"WithStyles(\".concat(getDisplayName(Component), \")\");\n }\n\n hoistNonReactStatics(WithStyles, Component);\n\n if (process.env.NODE_ENV !== 'production') {\n // Exposed for test purposes.\n WithStyles.Naked = Component;\n WithStyles.options = options;\n WithStyles.useStyles = useStyles;\n }\n\n return WithStyles;\n };\n};\n\nexport default withStyles;","/* eslint-disable no-restricted-syntax */\nexport default function getThemeProps(params) {\n var theme = params.theme,\n name = params.name,\n props = params.props;\n\n if (!theme || !theme.props || !theme.props[name]) {\n return props;\n } // Resolve default props, code borrow from React source.\n // https://github.com/facebook/react/blob/15a8f031838a553e41c0b66eb1bcf1da8448104d/packages/react/src/ReactElement.js#L221\n\n\n var defaultProps = theme.props[name];\n var propName;\n\n for (propName in defaultProps) {\n if (props[propName] === undefined) {\n props[propName] = defaultProps[propName];\n }\n }\n\n return props;\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\n// Sorted ASC by size. That's important.\n// It can't be configured as it's used statically for propTypes.\nexport var keys = ['xs', 'sm', 'md', 'lg', 'xl']; // Keep in mind that @media is inclusive by the CSS specification.\n\nexport default function createBreakpoints(breakpoints) {\n var _breakpoints$values = breakpoints.values,\n values = _breakpoints$values === void 0 ? {\n xs: 0,\n sm: 600,\n md: 960,\n lg: 1280,\n xl: 1920\n } : _breakpoints$values,\n _breakpoints$unit = breakpoints.unit,\n unit = _breakpoints$unit === void 0 ? 'px' : _breakpoints$unit,\n _breakpoints$step = breakpoints.step,\n step = _breakpoints$step === void 0 ? 5 : _breakpoints$step,\n other = _objectWithoutProperties(breakpoints, [\"values\", \"unit\", \"step\"]);\n\n function up(key) {\n var value = typeof values[key] === 'number' ? values[key] : key;\n return \"@media (min-width:\".concat(value).concat(unit, \")\");\n }\n\n function down(key) {\n var endIndex = keys.indexOf(key) + 1;\n var upperbound = values[keys[endIndex]];\n\n if (endIndex === keys.length) {\n // xl down applies to all sizes\n return up('xs');\n }\n\n var value = typeof upperbound === 'number' && endIndex > 0 ? upperbound : key;\n return \"@media (max-width:\".concat(value - step / 100).concat(unit, \")\");\n }\n\n function between(start, end) {\n var endIndex = keys.indexOf(end);\n\n if (endIndex === keys.length - 1) {\n return up(start);\n }\n\n return \"@media (min-width:\".concat(typeof values[start] === 'number' ? values[start] : start).concat(unit, \") and \") + \"(max-width:\".concat((endIndex !== -1 && typeof values[keys[endIndex + 1]] === 'number' ? values[keys[endIndex + 1]] : end) - step / 100).concat(unit, \")\");\n }\n\n function only(key) {\n return between(key, key);\n }\n\n var warnedOnce = false;\n\n function width(key) {\n if (process.env.NODE_ENV !== 'production') {\n if (!warnedOnce) {\n warnedOnce = true;\n console.warn([\"Material-UI: The `theme.breakpoints.width` utility is deprecated because it's redundant.\", 'Use the `theme.breakpoints.values` instead.'].join('\\n'));\n }\n }\n\n return values[key];\n }\n\n return _extends({\n keys: keys,\n values: values,\n up: up,\n down: down,\n between: between,\n only: only,\n width: width\n }, other);\n}","import toPropertyKey from \"./toPropertyKey.js\";\nfunction _defineProperty(e, r, t) {\n return (r = toPropertyKey(r)) in e ? Object.defineProperty(e, r, {\n value: t,\n enumerable: !0,\n configurable: !0,\n writable: !0\n }) : e[r] = t, e;\n}\nexport { _defineProperty as default };","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nexport default function createMixins(breakpoints, spacing, mixins) {\n var _toolbar;\n\n return _extends({\n gutters: function gutters() {\n var styles = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n console.warn(['Material-UI: theme.mixins.gutters() is deprecated.', 'You can use the source of the mixin directly:', \"\\n paddingLeft: theme.spacing(2),\\n paddingRight: theme.spacing(2),\\n [theme.breakpoints.up('sm')]: {\\n paddingLeft: theme.spacing(3),\\n paddingRight: theme.spacing(3),\\n },\\n \"].join('\\n'));\n return _extends({\n paddingLeft: spacing(2),\n paddingRight: spacing(2)\n }, styles, _defineProperty({}, breakpoints.up('sm'), _extends({\n paddingLeft: spacing(3),\n paddingRight: spacing(3)\n }, styles[breakpoints.up('sm')])));\n },\n toolbar: (_toolbar = {\n minHeight: 56\n }, _defineProperty(_toolbar, \"\".concat(breakpoints.up('xs'), \" and (orientation: landscape)\"), {\n minHeight: 48\n }), _defineProperty(_toolbar, breakpoints.up('sm'), {\n minHeight: 64\n }), _toolbar)\n }, mixins);\n}","var common = {\n black: '#000',\n white: '#fff'\n};\nexport default common;","var grey = {\n 50: '#fafafa',\n 100: '#f5f5f5',\n 200: '#eeeeee',\n 300: '#e0e0e0',\n 400: '#bdbdbd',\n 500: '#9e9e9e',\n 600: '#757575',\n 700: '#616161',\n 800: '#424242',\n 900: '#212121',\n A100: '#d5d5d5',\n A200: '#aaaaaa',\n A400: '#303030',\n A700: '#616161'\n};\nexport default grey;","var indigo = {\n 50: '#e8eaf6',\n 100: '#c5cae9',\n 200: '#9fa8da',\n 300: '#7986cb',\n 400: '#5c6bc0',\n 500: '#3f51b5',\n 600: '#3949ab',\n 700: '#303f9f',\n 800: '#283593',\n 900: '#1a237e',\n A100: '#8c9eff',\n A200: '#536dfe',\n A400: '#3d5afe',\n A700: '#304ffe'\n};\nexport default indigo;","var pink = {\n 50: '#fce4ec',\n 100: '#f8bbd0',\n 200: '#f48fb1',\n 300: '#f06292',\n 400: '#ec407a',\n 500: '#e91e63',\n 600: '#d81b60',\n 700: '#c2185b',\n 800: '#ad1457',\n 900: '#880e4f',\n A100: '#ff80ab',\n A200: '#ff4081',\n A400: '#f50057',\n A700: '#c51162'\n};\nexport default pink;","var red = {\n 50: '#ffebee',\n 100: '#ffcdd2',\n 200: '#ef9a9a',\n 300: '#e57373',\n 400: '#ef5350',\n 500: '#f44336',\n 600: '#e53935',\n 700: '#d32f2f',\n 800: '#c62828',\n 900: '#b71c1c',\n A100: '#ff8a80',\n A200: '#ff5252',\n A400: '#ff1744',\n A700: '#d50000'\n};\nexport default red;","var orange = {\n 50: '#fff3e0',\n 100: '#ffe0b2',\n 200: '#ffcc80',\n 300: '#ffb74d',\n 400: '#ffa726',\n 500: '#ff9800',\n 600: '#fb8c00',\n 700: '#f57c00',\n 800: '#ef6c00',\n 900: '#e65100',\n A100: '#ffd180',\n A200: '#ffab40',\n A400: '#ff9100',\n A700: '#ff6d00'\n};\nexport default orange;","var blue = {\n 50: '#e3f2fd',\n 100: '#bbdefb',\n 200: '#90caf9',\n 300: '#64b5f6',\n 400: '#42a5f5',\n 500: '#2196f3',\n 600: '#1e88e5',\n 700: '#1976d2',\n 800: '#1565c0',\n 900: '#0d47a1',\n A100: '#82b1ff',\n A200: '#448aff',\n A400: '#2979ff',\n A700: '#2962ff'\n};\nexport default blue;","var green = {\n 50: '#e8f5e9',\n 100: '#c8e6c9',\n 200: '#a5d6a7',\n 300: '#81c784',\n 400: '#66bb6a',\n 500: '#4caf50',\n 600: '#43a047',\n 700: '#388e3c',\n 800: '#2e7d32',\n 900: '#1b5e20',\n A100: '#b9f6ca',\n A200: '#69f0ae',\n A400: '#00e676',\n A700: '#00c853'\n};\nexport default green;","import { formatMuiErrorMessage as _formatMuiErrorMessage } from \"@material-ui/utils\";\n\n/* eslint-disable no-use-before-define */\n\n/**\n * Returns a number whose value is limited to the given range.\n *\n * @param {number} value The value to be clamped\n * @param {number} min The lower boundary of the output range\n * @param {number} max The upper boundary of the output range\n * @returns {number} A number in the range [min, max]\n */\nfunction clamp(value) {\n var min = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n var max = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 1;\n\n if (process.env.NODE_ENV !== 'production') {\n if (value < min || value > max) {\n console.error(\"Material-UI: The value provided \".concat(value, \" is out of range [\").concat(min, \", \").concat(max, \"].\"));\n }\n }\n\n return Math.min(Math.max(min, value), max);\n}\n/**\n * Converts a color from CSS hex format to CSS rgb format.\n *\n * @param {string} color - Hex color, i.e. #nnn or #nnnnnn\n * @returns {string} A CSS rgb color string\n */\n\n\nexport function hexToRgb(color) {\n color = color.substr(1);\n var re = new RegExp(\".{1,\".concat(color.length >= 6 ? 2 : 1, \"}\"), 'g');\n var colors = color.match(re);\n\n if (colors && colors[0].length === 1) {\n colors = colors.map(function (n) {\n return n + n;\n });\n }\n\n return colors ? \"rgb\".concat(colors.length === 4 ? 'a' : '', \"(\").concat(colors.map(function (n, index) {\n return index < 3 ? parseInt(n, 16) : Math.round(parseInt(n, 16) / 255 * 1000) / 1000;\n }).join(', '), \")\") : '';\n}\n\nfunction intToHex(int) {\n var hex = int.toString(16);\n return hex.length === 1 ? \"0\".concat(hex) : hex;\n}\n/**\n * Converts a color from CSS rgb format to CSS hex format.\n *\n * @param {string} color - RGB color, i.e. rgb(n, n, n)\n * @returns {string} A CSS rgb color string, i.e. #nnnnnn\n */\n\n\nexport function rgbToHex(color) {\n // Idempotent\n if (color.indexOf('#') === 0) {\n return color;\n }\n\n var _decomposeColor = decomposeColor(color),\n values = _decomposeColor.values;\n\n return \"#\".concat(values.map(function (n) {\n return intToHex(n);\n }).join(''));\n}\n/**\n * Converts a color from hsl format to rgb format.\n *\n * @param {string} color - HSL color values\n * @returns {string} rgb color values\n */\n\nexport function hslToRgb(color) {\n color = decomposeColor(color);\n var _color = color,\n values = _color.values;\n var h = values[0];\n var s = values[1] / 100;\n var l = values[2] / 100;\n var a = s * Math.min(l, 1 - l);\n\n var f = function f(n) {\n var k = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : (n + h / 30) % 12;\n return l - a * Math.max(Math.min(k - 3, 9 - k, 1), -1);\n };\n\n var type = 'rgb';\n var rgb = [Math.round(f(0) * 255), Math.round(f(8) * 255), Math.round(f(4) * 255)];\n\n if (color.type === 'hsla') {\n type += 'a';\n rgb.push(values[3]);\n }\n\n return recomposeColor({\n type: type,\n values: rgb\n });\n}\n/**\n * Returns an object with the type and values of a color.\n *\n * Note: Does not support rgb % values.\n *\n * @param {string} color - CSS color, i.e. one of: #nnn, #nnnnnn, rgb(), rgba(), hsl(), hsla()\n * @returns {object} - A MUI color object: {type: string, values: number[]}\n */\n\nexport function decomposeColor(color) {\n // Idempotent\n if (color.type) {\n return color;\n }\n\n if (color.charAt(0) === '#') {\n return decomposeColor(hexToRgb(color));\n }\n\n var marker = color.indexOf('(');\n var type = color.substring(0, marker);\n\n if (['rgb', 'rgba', 'hsl', 'hsla'].indexOf(type) === -1) {\n throw new Error(process.env.NODE_ENV !== \"production\" ? \"Material-UI: Unsupported `\".concat(color, \"` color.\\nWe support the following formats: #nnn, #nnnnnn, rgb(), rgba(), hsl(), hsla().\") : _formatMuiErrorMessage(3, color));\n }\n\n var values = color.substring(marker + 1, color.length - 1).split(',');\n values = values.map(function (value) {\n return parseFloat(value);\n });\n return {\n type: type,\n values: values\n };\n}\n/**\n * Converts a color object with type and values to a string.\n *\n * @param {object} color - Decomposed color\n * @param {string} color.type - One of: 'rgb', 'rgba', 'hsl', 'hsla'\n * @param {array} color.values - [n,n,n] or [n,n,n,n]\n * @returns {string} A CSS color string\n */\n\nexport function recomposeColor(color) {\n var type = color.type;\n var values = color.values;\n\n if (type.indexOf('rgb') !== -1) {\n // Only convert the first 3 values to int (i.e. not alpha)\n values = values.map(function (n, i) {\n return i < 3 ? parseInt(n, 10) : n;\n });\n } else if (type.indexOf('hsl') !== -1) {\n values[1] = \"\".concat(values[1], \"%\");\n values[2] = \"\".concat(values[2], \"%\");\n }\n\n return \"\".concat(type, \"(\").concat(values.join(', '), \")\");\n}\n/**\n * Calculates the contrast ratio between two colors.\n *\n * Formula: https://www.w3.org/TR/WCAG20-TECHS/G17.html#G17-tests\n *\n * @param {string} foreground - CSS color, i.e. one of: #nnn, #nnnnnn, rgb(), rgba(), hsl(), hsla()\n * @param {string} background - CSS color, i.e. one of: #nnn, #nnnnnn, rgb(), rgba(), hsl(), hsla()\n * @returns {number} A contrast ratio value in the range 0 - 21.\n */\n\nexport function getContrastRatio(foreground, background) {\n var lumA = getLuminance(foreground);\n var lumB = getLuminance(background);\n return (Math.max(lumA, lumB) + 0.05) / (Math.min(lumA, lumB) + 0.05);\n}\n/**\n * The relative brightness of any point in a color space,\n * normalized to 0 for darkest black and 1 for lightest white.\n *\n * Formula: https://www.w3.org/TR/WCAG20-TECHS/G17.html#G17-tests\n *\n * @param {string} color - CSS color, i.e. one of: #nnn, #nnnnnn, rgb(), rgba(), hsl(), hsla()\n * @returns {number} The relative brightness of the color in the range 0 - 1\n */\n\nexport function getLuminance(color) {\n color = decomposeColor(color);\n var rgb = color.type === 'hsl' ? decomposeColor(hslToRgb(color)).values : color.values;\n rgb = rgb.map(function (val) {\n val /= 255; // normalized\n\n return val <= 0.03928 ? val / 12.92 : Math.pow((val + 0.055) / 1.055, 2.4);\n }); // Truncate at 3 digits\n\n return Number((0.2126 * rgb[0] + 0.7152 * rgb[1] + 0.0722 * rgb[2]).toFixed(3));\n}\n/**\n * Darken or lighten a color, depending on its luminance.\n * Light colors are darkened, dark colors are lightened.\n *\n * @param {string} color - CSS color, i.e. one of: #nnn, #nnnnnn, rgb(), rgba(), hsl(), hsla()\n * @param {number} coefficient=0.15 - multiplier in the range 0 - 1\n * @returns {string} A CSS color string. Hex input values are returned as rgb\n */\n\nexport function emphasize(color) {\n var coefficient = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0.15;\n return getLuminance(color) > 0.5 ? darken(color, coefficient) : lighten(color, coefficient);\n}\nvar warnedOnce = false;\n/**\n * Set the absolute transparency of a color.\n * Any existing alpha values are overwritten.\n *\n * @param {string} color - CSS color, i.e. one of: #nnn, #nnnnnn, rgb(), rgba(), hsl(), hsla()\n * @param {number} value - value to set the alpha channel to in the range 0 -1\n * @returns {string} A CSS color string. Hex input values are returned as rgb\n *\n * @deprecated\n * Use `import { alpha } from '@material-ui/core/styles'` instead.\n */\n\nexport function fade(color, value) {\n if (process.env.NODE_ENV !== 'production') {\n if (!warnedOnce) {\n warnedOnce = true;\n console.error(['Material-UI: The `fade` color utility was renamed to `alpha` to better describe its functionality.', '', \"You should use `import { alpha } from '@material-ui/core/styles'`\"].join('\\n'));\n }\n }\n\n return alpha(color, value);\n}\n/**\n * Set the absolute transparency of a color.\n * Any existing alpha value is overwritten.\n *\n * @param {string} color - CSS color, i.e. one of: #nnn, #nnnnnn, rgb(), rgba(), hsl(), hsla()\n * @param {number} value - value to set the alpha channel to in the range 0-1\n * @returns {string} A CSS color string. Hex input values are returned as rgb\n */\n\nexport function alpha(color, value) {\n color = decomposeColor(color);\n value = clamp(value);\n\n if (color.type === 'rgb' || color.type === 'hsl') {\n color.type += 'a';\n }\n\n color.values[3] = value;\n return recomposeColor(color);\n}\n/**\n * Darkens a color.\n *\n * @param {string} color - CSS color, i.e. one of: #nnn, #nnnnnn, rgb(), rgba(), hsl(), hsla()\n * @param {number} coefficient - multiplier in the range 0 - 1\n * @returns {string} A CSS color string. Hex input values are returned as rgb\n */\n\nexport function darken(color, coefficient) {\n color = decomposeColor(color);\n coefficient = clamp(coefficient);\n\n if (color.type.indexOf('hsl') !== -1) {\n color.values[2] *= 1 - coefficient;\n } else if (color.type.indexOf('rgb') !== -1) {\n for (var i = 0; i < 3; i += 1) {\n color.values[i] *= 1 - coefficient;\n }\n }\n\n return recomposeColor(color);\n}\n/**\n * Lightens a color.\n *\n * @param {string} color - CSS color, i.e. one of: #nnn, #nnnnnn, rgb(), rgba(), hsl(), hsla()\n * @param {number} coefficient - multiplier in the range 0 - 1\n * @returns {string} A CSS color string. Hex input values are returned as rgb\n */\n\nexport function lighten(color, coefficient) {\n color = decomposeColor(color);\n coefficient = clamp(coefficient);\n\n if (color.type.indexOf('hsl') !== -1) {\n color.values[2] += (100 - color.values[2]) * coefficient;\n } else if (color.type.indexOf('rgb') !== -1) {\n for (var i = 0; i < 3; i += 1) {\n color.values[i] += (255 - color.values[i]) * coefficient;\n }\n }\n\n return recomposeColor(color);\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport { formatMuiErrorMessage as _formatMuiErrorMessage } from \"@material-ui/utils\";\nimport { deepmerge } from '@material-ui/utils';\nimport common from '../colors/common';\nimport grey from '../colors/grey';\nimport indigo from '../colors/indigo';\nimport pink from '../colors/pink';\nimport red from '../colors/red';\nimport orange from '../colors/orange';\nimport blue from '../colors/blue';\nimport green from '../colors/green';\nimport { darken, getContrastRatio, lighten } from './colorManipulator';\nexport var light = {\n // The colors used to style the text.\n text: {\n // The most important text.\n primary: 'rgba(0, 0, 0, 0.87)',\n // Secondary text.\n secondary: 'rgba(0, 0, 0, 0.54)',\n // Disabled text have even lower visual prominence.\n disabled: 'rgba(0, 0, 0, 0.38)',\n // Text hints.\n hint: 'rgba(0, 0, 0, 0.38)'\n },\n // The color used to divide different elements.\n divider: 'rgba(0, 0, 0, 0.12)',\n // The background colors used to style the surfaces.\n // Consistency between these values is important.\n background: {\n paper: common.white,\n default: grey[50]\n },\n // The colors used to style the action elements.\n action: {\n // The color of an active action like an icon button.\n active: 'rgba(0, 0, 0, 0.54)',\n // The color of an hovered action.\n hover: 'rgba(0, 0, 0, 0.04)',\n hoverOpacity: 0.04,\n // The color of a selected action.\n selected: 'rgba(0, 0, 0, 0.08)',\n selectedOpacity: 0.08,\n // The color of a disabled action.\n disabled: 'rgba(0, 0, 0, 0.26)',\n // The background color of a disabled action.\n disabledBackground: 'rgba(0, 0, 0, 0.12)',\n disabledOpacity: 0.38,\n focus: 'rgba(0, 0, 0, 0.12)',\n focusOpacity: 0.12,\n activatedOpacity: 0.12\n }\n};\nexport var dark = {\n text: {\n primary: common.white,\n secondary: 'rgba(255, 255, 255, 0.7)',\n disabled: 'rgba(255, 255, 255, 0.5)',\n hint: 'rgba(255, 255, 255, 0.5)',\n icon: 'rgba(255, 255, 255, 0.5)'\n },\n divider: 'rgba(255, 255, 255, 0.12)',\n background: {\n paper: grey[800],\n default: '#303030'\n },\n action: {\n active: common.white,\n hover: 'rgba(255, 255, 255, 0.08)',\n hoverOpacity: 0.08,\n selected: 'rgba(255, 255, 255, 0.16)',\n selectedOpacity: 0.16,\n disabled: 'rgba(255, 255, 255, 0.3)',\n disabledBackground: 'rgba(255, 255, 255, 0.12)',\n disabledOpacity: 0.38,\n focus: 'rgba(255, 255, 255, 0.12)',\n focusOpacity: 0.12,\n activatedOpacity: 0.24\n }\n};\n\nfunction addLightOrDark(intent, direction, shade, tonalOffset) {\n var tonalOffsetLight = tonalOffset.light || tonalOffset;\n var tonalOffsetDark = tonalOffset.dark || tonalOffset * 1.5;\n\n if (!intent[direction]) {\n if (intent.hasOwnProperty(shade)) {\n intent[direction] = intent[shade];\n } else if (direction === 'light') {\n intent.light = lighten(intent.main, tonalOffsetLight);\n } else if (direction === 'dark') {\n intent.dark = darken(intent.main, tonalOffsetDark);\n }\n }\n}\n\nexport default function createPalette(palette) {\n var _palette$primary = palette.primary,\n primary = _palette$primary === void 0 ? {\n light: indigo[300],\n main: indigo[500],\n dark: indigo[700]\n } : _palette$primary,\n _palette$secondary = palette.secondary,\n secondary = _palette$secondary === void 0 ? {\n light: pink.A200,\n main: pink.A400,\n dark: pink.A700\n } : _palette$secondary,\n _palette$error = palette.error,\n error = _palette$error === void 0 ? {\n light: red[300],\n main: red[500],\n dark: red[700]\n } : _palette$error,\n _palette$warning = palette.warning,\n warning = _palette$warning === void 0 ? {\n light: orange[300],\n main: orange[500],\n dark: orange[700]\n } : _palette$warning,\n _palette$info = palette.info,\n info = _palette$info === void 0 ? {\n light: blue[300],\n main: blue[500],\n dark: blue[700]\n } : _palette$info,\n _palette$success = palette.success,\n success = _palette$success === void 0 ? {\n light: green[300],\n main: green[500],\n dark: green[700]\n } : _palette$success,\n _palette$type = palette.type,\n type = _palette$type === void 0 ? 'light' : _palette$type,\n _palette$contrastThre = palette.contrastThreshold,\n contrastThreshold = _palette$contrastThre === void 0 ? 3 : _palette$contrastThre,\n _palette$tonalOffset = palette.tonalOffset,\n tonalOffset = _palette$tonalOffset === void 0 ? 0.2 : _palette$tonalOffset,\n other = _objectWithoutProperties(palette, [\"primary\", \"secondary\", \"error\", \"warning\", \"info\", \"success\", \"type\", \"contrastThreshold\", \"tonalOffset\"]); // Use the same logic as\n // Bootstrap: https://github.com/twbs/bootstrap/blob/1d6e3710dd447de1a200f29e8fa521f8a0908f70/scss/_functions.scss#L59\n // and material-components-web https://github.com/material-components/material-components-web/blob/ac46b8863c4dab9fc22c4c662dc6bd1b65dd652f/packages/mdc-theme/_functions.scss#L54\n\n\n function getContrastText(background) {\n var contrastText = getContrastRatio(background, dark.text.primary) >= contrastThreshold ? dark.text.primary : light.text.primary;\n\n if (process.env.NODE_ENV !== 'production') {\n var contrast = getContrastRatio(background, contrastText);\n\n if (contrast < 3) {\n console.error([\"Material-UI: The contrast ratio of \".concat(contrast, \":1 for \").concat(contrastText, \" on \").concat(background), 'falls below the WCAG recommended absolute minimum contrast ratio of 3:1.', 'https://www.w3.org/TR/2008/REC-WCAG20-20081211/#visual-audio-contrast-contrast'].join('\\n'));\n }\n }\n\n return contrastText;\n }\n\n var augmentColor = function augmentColor(color) {\n var mainShade = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 500;\n var lightShade = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 300;\n var darkShade = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 700;\n color = _extends({}, color);\n\n if (!color.main && color[mainShade]) {\n color.main = color[mainShade];\n }\n\n if (!color.main) {\n throw new Error(process.env.NODE_ENV !== \"production\" ? \"Material-UI: The color provided to augmentColor(color) is invalid.\\nThe color object needs to have a `main` property or a `\".concat(mainShade, \"` property.\") : _formatMuiErrorMessage(4, mainShade));\n }\n\n if (typeof color.main !== 'string') {\n throw new Error(process.env.NODE_ENV !== \"production\" ? \"Material-UI: The color provided to augmentColor(color) is invalid.\\n`color.main` should be a string, but `\".concat(JSON.stringify(color.main), \"` was provided instead.\\n\\nDid you intend to use one of the following approaches?\\n\\nimport {\\xA0green } from \\\"@material-ui/core/colors\\\";\\n\\nconst theme1 = createTheme({ palette: {\\n primary: green,\\n} });\\n\\nconst theme2 = createTheme({ palette: {\\n primary: { main: green[500] },\\n} });\") : _formatMuiErrorMessage(5, JSON.stringify(color.main)));\n }\n\n addLightOrDark(color, 'light', lightShade, tonalOffset);\n addLightOrDark(color, 'dark', darkShade, tonalOffset);\n\n if (!color.contrastText) {\n color.contrastText = getContrastText(color.main);\n }\n\n return color;\n };\n\n var types = {\n dark: dark,\n light: light\n };\n\n if (process.env.NODE_ENV !== 'production') {\n if (!types[type]) {\n console.error(\"Material-UI: The palette type `\".concat(type, \"` is not supported.\"));\n }\n }\n\n var paletteOutput = deepmerge(_extends({\n // A collection of common colors.\n common: common,\n // The palette type, can be light or dark.\n type: type,\n // The colors used to represent primary interface elements for a user.\n primary: augmentColor(primary),\n // The colors used to represent secondary interface elements for a user.\n secondary: augmentColor(secondary, 'A400', 'A200', 'A700'),\n // The colors used to represent interface elements that the user should be made aware of.\n error: augmentColor(error),\n // The colors used to represent potentially dangerous actions or important messages.\n warning: augmentColor(warning),\n // The colors used to present information to the user that is neutral and not necessarily important.\n info: augmentColor(info),\n // The colors used to indicate the successful completion of an action that user triggered.\n success: augmentColor(success),\n // The grey colors.\n grey: grey,\n // Used by `getContrastText()` to maximize the contrast between\n // the background and the text.\n contrastThreshold: contrastThreshold,\n // Takes a background color and returns the text color that maximizes the contrast.\n getContrastText: getContrastText,\n // Generate a rich color object.\n augmentColor: augmentColor,\n // Used by the functions below to shift a color's luminance by approximately\n // two indexes within its tonal palette.\n // E.g., shift from Red 500 to Red 300 or Red 700.\n tonalOffset: tonalOffset\n }, types[type]), other);\n return paletteOutput;\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport { deepmerge } from '@material-ui/utils';\n\nfunction round(value) {\n return Math.round(value * 1e5) / 1e5;\n}\n\nvar warnedOnce = false;\n\nfunction roundWithDeprecationWarning(value) {\n if (process.env.NODE_ENV !== 'production') {\n if (!warnedOnce) {\n console.warn(['Material-UI: The `theme.typography.round` helper is deprecated.', 'Head to https://mui.com/r/migration-v4/#theme for a migration path.'].join('\\n'));\n warnedOnce = true;\n }\n }\n\n return round(value);\n}\n\nvar caseAllCaps = {\n textTransform: 'uppercase'\n};\nvar defaultFontFamily = '\"Roboto\", \"Helvetica\", \"Arial\", sans-serif';\n/**\n * @see @link{https://material.io/design/typography/the-type-system.html}\n * @see @link{https://material.io/design/typography/understanding-typography.html}\n */\n\nexport default function createTypography(palette, typography) {\n var _ref = typeof typography === 'function' ? typography(palette) : typography,\n _ref$fontFamily = _ref.fontFamily,\n fontFamily = _ref$fontFamily === void 0 ? defaultFontFamily : _ref$fontFamily,\n _ref$fontSize = _ref.fontSize,\n fontSize = _ref$fontSize === void 0 ? 14 : _ref$fontSize,\n _ref$fontWeightLight = _ref.fontWeightLight,\n fontWeightLight = _ref$fontWeightLight === void 0 ? 300 : _ref$fontWeightLight,\n _ref$fontWeightRegula = _ref.fontWeightRegular,\n fontWeightRegular = _ref$fontWeightRegula === void 0 ? 400 : _ref$fontWeightRegula,\n _ref$fontWeightMedium = _ref.fontWeightMedium,\n fontWeightMedium = _ref$fontWeightMedium === void 0 ? 500 : _ref$fontWeightMedium,\n _ref$fontWeightBold = _ref.fontWeightBold,\n fontWeightBold = _ref$fontWeightBold === void 0 ? 700 : _ref$fontWeightBold,\n _ref$htmlFontSize = _ref.htmlFontSize,\n htmlFontSize = _ref$htmlFontSize === void 0 ? 16 : _ref$htmlFontSize,\n allVariants = _ref.allVariants,\n pxToRem2 = _ref.pxToRem,\n other = _objectWithoutProperties(_ref, [\"fontFamily\", \"fontSize\", \"fontWeightLight\", \"fontWeightRegular\", \"fontWeightMedium\", \"fontWeightBold\", \"htmlFontSize\", \"allVariants\", \"pxToRem\"]);\n\n if (process.env.NODE_ENV !== 'production') {\n if (typeof fontSize !== 'number') {\n console.error('Material-UI: `fontSize` is required to be a number.');\n }\n\n if (typeof htmlFontSize !== 'number') {\n console.error('Material-UI: `htmlFontSize` is required to be a number.');\n }\n }\n\n var coef = fontSize / 14;\n\n var pxToRem = pxToRem2 || function (size) {\n return \"\".concat(size / htmlFontSize * coef, \"rem\");\n };\n\n var buildVariant = function buildVariant(fontWeight, size, lineHeight, letterSpacing, casing) {\n return _extends({\n fontFamily: fontFamily,\n fontWeight: fontWeight,\n fontSize: pxToRem(size),\n // Unitless following https://meyerweb.com/eric/thoughts/2006/02/08/unitless-line-heights/\n lineHeight: lineHeight\n }, fontFamily === defaultFontFamily ? {\n letterSpacing: \"\".concat(round(letterSpacing / size), \"em\")\n } : {}, casing, allVariants);\n };\n\n var variants = {\n h1: buildVariant(fontWeightLight, 96, 1.167, -1.5),\n h2: buildVariant(fontWeightLight, 60, 1.2, -0.5),\n h3: buildVariant(fontWeightRegular, 48, 1.167, 0),\n h4: buildVariant(fontWeightRegular, 34, 1.235, 0.25),\n h5: buildVariant(fontWeightRegular, 24, 1.334, 0),\n h6: buildVariant(fontWeightMedium, 20, 1.6, 0.15),\n subtitle1: buildVariant(fontWeightRegular, 16, 1.75, 0.15),\n subtitle2: buildVariant(fontWeightMedium, 14, 1.57, 0.1),\n body1: buildVariant(fontWeightRegular, 16, 1.5, 0.15),\n body2: buildVariant(fontWeightRegular, 14, 1.43, 0.15),\n button: buildVariant(fontWeightMedium, 14, 1.75, 0.4, caseAllCaps),\n caption: buildVariant(fontWeightRegular, 12, 1.66, 0.4),\n overline: buildVariant(fontWeightRegular, 12, 2.66, 1, caseAllCaps)\n };\n return deepmerge(_extends({\n htmlFontSize: htmlFontSize,\n pxToRem: pxToRem,\n round: roundWithDeprecationWarning,\n // TODO v5: remove\n fontFamily: fontFamily,\n fontSize: fontSize,\n fontWeightLight: fontWeightLight,\n fontWeightRegular: fontWeightRegular,\n fontWeightMedium: fontWeightMedium,\n fontWeightBold: fontWeightBold\n }, variants), other, {\n clone: false // No need to clone deep\n\n });\n}","var shadowKeyUmbraOpacity = 0.2;\nvar shadowKeyPenumbraOpacity = 0.14;\nvar shadowAmbientShadowOpacity = 0.12;\n\nfunction createShadow() {\n return [\"\".concat(arguments.length <= 0 ? undefined : arguments[0], \"px \").concat(arguments.length <= 1 ? undefined : arguments[1], \"px \").concat(arguments.length <= 2 ? undefined : arguments[2], \"px \").concat(arguments.length <= 3 ? undefined : arguments[3], \"px rgba(0,0,0,\").concat(shadowKeyUmbraOpacity, \")\"), \"\".concat(arguments.length <= 4 ? undefined : arguments[4], \"px \").concat(arguments.length <= 5 ? undefined : arguments[5], \"px \").concat(arguments.length <= 6 ? undefined : arguments[6], \"px \").concat(arguments.length <= 7 ? undefined : arguments[7], \"px rgba(0,0,0,\").concat(shadowKeyPenumbraOpacity, \")\"), \"\".concat(arguments.length <= 8 ? undefined : arguments[8], \"px \").concat(arguments.length <= 9 ? undefined : arguments[9], \"px \").concat(arguments.length <= 10 ? undefined : arguments[10], \"px \").concat(arguments.length <= 11 ? undefined : arguments[11], \"px rgba(0,0,0,\").concat(shadowAmbientShadowOpacity, \")\")].join(',');\n} // Values from https://github.com/material-components/material-components-web/blob/be8747f94574669cb5e7add1a7c54fa41a89cec7/packages/mdc-elevation/_variables.scss\n\n\nvar shadows = ['none', createShadow(0, 2, 1, -1, 0, 1, 1, 0, 0, 1, 3, 0), createShadow(0, 3, 1, -2, 0, 2, 2, 0, 0, 1, 5, 0), createShadow(0, 3, 3, -2, 0, 3, 4, 0, 0, 1, 8, 0), createShadow(0, 2, 4, -1, 0, 4, 5, 0, 0, 1, 10, 0), createShadow(0, 3, 5, -1, 0, 5, 8, 0, 0, 1, 14, 0), createShadow(0, 3, 5, -1, 0, 6, 10, 0, 0, 1, 18, 0), createShadow(0, 4, 5, -2, 0, 7, 10, 1, 0, 2, 16, 1), createShadow(0, 5, 5, -3, 0, 8, 10, 1, 0, 3, 14, 2), createShadow(0, 5, 6, -3, 0, 9, 12, 1, 0, 3, 16, 2), createShadow(0, 6, 6, -3, 0, 10, 14, 1, 0, 4, 18, 3), createShadow(0, 6, 7, -4, 0, 11, 15, 1, 0, 4, 20, 3), createShadow(0, 7, 8, -4, 0, 12, 17, 2, 0, 5, 22, 4), createShadow(0, 7, 8, -4, 0, 13, 19, 2, 0, 5, 24, 4), createShadow(0, 7, 9, -4, 0, 14, 21, 2, 0, 5, 26, 4), createShadow(0, 8, 9, -5, 0, 15, 22, 2, 0, 6, 28, 5), createShadow(0, 8, 10, -5, 0, 16, 24, 2, 0, 6, 30, 5), createShadow(0, 8, 11, -5, 0, 17, 26, 2, 0, 6, 32, 5), createShadow(0, 9, 11, -5, 0, 18, 28, 2, 0, 7, 34, 6), createShadow(0, 9, 12, -6, 0, 19, 29, 2, 0, 7, 36, 6), createShadow(0, 10, 13, -6, 0, 20, 31, 3, 0, 8, 38, 7), createShadow(0, 10, 13, -6, 0, 21, 33, 3, 0, 8, 40, 7), createShadow(0, 10, 14, -6, 0, 22, 35, 3, 0, 8, 42, 7), createShadow(0, 11, 14, -7, 0, 23, 36, 3, 0, 9, 44, 8), createShadow(0, 11, 15, -7, 0, 24, 38, 3, 0, 9, 46, 8)];\nexport default shadows;","var shape = {\n borderRadius: 4\n};\nexport default shape;","import arrayWithHoles from \"./arrayWithHoles.js\";\nimport iterableToArrayLimit from \"./iterableToArrayLimit.js\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nimport nonIterableRest from \"./nonIterableRest.js\";\nfunction _slicedToArray(r, e) {\n return arrayWithHoles(r) || iterableToArrayLimit(r, e) || unsupportedIterableToArray(r, e) || nonIterableRest();\n}\nexport { _slicedToArray as default };","function _arrayWithHoles(r) {\n if (Array.isArray(r)) return r;\n}\nexport { _arrayWithHoles as default };","function _iterableToArrayLimit(r, l) {\n var t = null == r ? null : \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"];\n if (null != t) {\n var e,\n n,\n i,\n u,\n a = [],\n f = !0,\n o = !1;\n try {\n if (i = (t = t.call(r)).next, 0 === l) {\n if (Object(t) !== t) return;\n f = !1;\n } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0);\n } catch (r) {\n o = !0, n = r;\n } finally {\n try {\n if (!f && null != t[\"return\"] && (u = t[\"return\"](), Object(u) !== u)) return;\n } finally {\n if (o) throw n;\n }\n }\n return a;\n }\n}\nexport { _iterableToArrayLimit as default };","function _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\nexport { _nonIterableRest as default };","import _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport PropTypes from 'prop-types';\nimport merge from './merge'; // The breakpoint **start** at this value.\n// For instance with the first breakpoint xs: [xs, sm[.\n\nvar values = {\n xs: 0,\n sm: 600,\n md: 960,\n lg: 1280,\n xl: 1920\n};\nvar defaultBreakpoints = {\n // Sorted ASC by size. That's important.\n // It can't be configured as it's used statically for propTypes.\n keys: ['xs', 'sm', 'md', 'lg', 'xl'],\n up: function up(key) {\n return \"@media (min-width:\".concat(values[key], \"px)\");\n }\n};\nexport function handleBreakpoints(props, propValue, styleFromPropValue) {\n if (process.env.NODE_ENV !== 'production') {\n if (!props.theme) {\n console.error('Material-UI: You are calling a style function without a theme value.');\n }\n }\n\n if (Array.isArray(propValue)) {\n var themeBreakpoints = props.theme.breakpoints || defaultBreakpoints;\n return propValue.reduce(function (acc, item, index) {\n acc[themeBreakpoints.up(themeBreakpoints.keys[index])] = styleFromPropValue(propValue[index]);\n return acc;\n }, {});\n }\n\n if (_typeof(propValue) === 'object') {\n var _themeBreakpoints = props.theme.breakpoints || defaultBreakpoints;\n\n return Object.keys(propValue).reduce(function (acc, breakpoint) {\n acc[_themeBreakpoints.up(breakpoint)] = styleFromPropValue(propValue[breakpoint]);\n return acc;\n }, {});\n }\n\n var output = styleFromPropValue(propValue);\n return output;\n}\n\nfunction breakpoints(styleFunction) {\n var newStyleFunction = function newStyleFunction(props) {\n var base = styleFunction(props);\n var themeBreakpoints = props.theme.breakpoints || defaultBreakpoints;\n var extended = themeBreakpoints.keys.reduce(function (acc, key) {\n if (props[key]) {\n acc = acc || {};\n acc[themeBreakpoints.up(key)] = styleFunction(_extends({\n theme: props.theme\n }, props[key]));\n }\n\n return acc;\n }, null);\n return merge(base, extended);\n };\n\n newStyleFunction.propTypes = process.env.NODE_ENV !== 'production' ? _extends({}, styleFunction.propTypes, {\n xs: PropTypes.object,\n sm: PropTypes.object,\n md: PropTypes.object,\n lg: PropTypes.object,\n xl: PropTypes.object\n }) : {};\n newStyleFunction.filterProps = ['xs', 'sm', 'md', 'lg', 'xl'].concat(_toConsumableArray(styleFunction.filterProps));\n return newStyleFunction;\n}\n\nexport default breakpoints;","import { deepmerge } from '@material-ui/utils';\n\nfunction merge(acc, item) {\n if (!item) {\n return acc;\n }\n\n return deepmerge(acc, item, {\n clone: false // No need to clone deep, it's way faster.\n\n });\n}\n\nexport default merge;","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport responsivePropType from './responsivePropType';\nimport { handleBreakpoints } from './breakpoints';\nimport merge from './merge';\nimport memoize from './memoize';\nvar properties = {\n m: 'margin',\n p: 'padding'\n};\nvar directions = {\n t: 'Top',\n r: 'Right',\n b: 'Bottom',\n l: 'Left',\n x: ['Left', 'Right'],\n y: ['Top', 'Bottom']\n};\nvar aliases = {\n marginX: 'mx',\n marginY: 'my',\n paddingX: 'px',\n paddingY: 'py'\n}; // memoize() impact:\n// From 300,000 ops/sec\n// To 350,000 ops/sec\n\nvar getCssProperties = memoize(function (prop) {\n // It's not a shorthand notation.\n if (prop.length > 2) {\n if (aliases[prop]) {\n prop = aliases[prop];\n } else {\n return [prop];\n }\n }\n\n var _prop$split = prop.split(''),\n _prop$split2 = _slicedToArray(_prop$split, 2),\n a = _prop$split2[0],\n b = _prop$split2[1];\n\n var property = properties[a];\n var direction = directions[b] || '';\n return Array.isArray(direction) ? direction.map(function (dir) {\n return property + dir;\n }) : [property + direction];\n});\nvar spacingKeys = ['m', 'mt', 'mr', 'mb', 'ml', 'mx', 'my', 'p', 'pt', 'pr', 'pb', 'pl', 'px', 'py', 'margin', 'marginTop', 'marginRight', 'marginBottom', 'marginLeft', 'marginX', 'marginY', 'padding', 'paddingTop', 'paddingRight', 'paddingBottom', 'paddingLeft', 'paddingX', 'paddingY'];\nexport function createUnarySpacing(theme) {\n var themeSpacing = theme.spacing || 8;\n\n if (typeof themeSpacing === 'number') {\n return function (abs) {\n if (process.env.NODE_ENV !== 'production') {\n if (typeof abs !== 'number') {\n console.error(\"Material-UI: Expected spacing argument to be a number, got \".concat(abs, \".\"));\n }\n }\n\n return themeSpacing * abs;\n };\n }\n\n if (Array.isArray(themeSpacing)) {\n return function (abs) {\n if (process.env.NODE_ENV !== 'production') {\n if (abs > themeSpacing.length - 1) {\n console.error([\"Material-UI: The value provided (\".concat(abs, \") overflows.\"), \"The supported values are: \".concat(JSON.stringify(themeSpacing), \".\"), \"\".concat(abs, \" > \").concat(themeSpacing.length - 1, \", you need to add the missing values.\")].join('\\n'));\n }\n }\n\n return themeSpacing[abs];\n };\n }\n\n if (typeof themeSpacing === 'function') {\n return themeSpacing;\n }\n\n if (process.env.NODE_ENV !== 'production') {\n console.error([\"Material-UI: The `theme.spacing` value (\".concat(themeSpacing, \") is invalid.\"), 'It should be a number, an array or a function.'].join('\\n'));\n }\n\n return function () {\n return undefined;\n };\n}\n\nfunction getValue(transformer, propValue) {\n if (typeof propValue === 'string' || propValue == null) {\n return propValue;\n }\n\n var abs = Math.abs(propValue);\n var transformed = transformer(abs);\n\n if (propValue >= 0) {\n return transformed;\n }\n\n if (typeof transformed === 'number') {\n return -transformed;\n }\n\n return \"-\".concat(transformed);\n}\n\nfunction getStyleFromPropValue(cssProperties, transformer) {\n return function (propValue) {\n return cssProperties.reduce(function (acc, cssProperty) {\n acc[cssProperty] = getValue(transformer, propValue);\n return acc;\n }, {});\n };\n}\n\nfunction spacing(props) {\n var theme = props.theme;\n var transformer = createUnarySpacing(theme);\n return Object.keys(props).map(function (prop) {\n // Using a hash computation over an array iteration could be faster, but with only 28 items,\n // it's doesn't worth the bundle size.\n if (spacingKeys.indexOf(prop) === -1) {\n return null;\n }\n\n var cssProperties = getCssProperties(prop);\n var styleFromPropValue = getStyleFromPropValue(cssProperties, transformer);\n var propValue = props[prop];\n return handleBreakpoints(props, propValue, styleFromPropValue);\n }).reduce(merge, {});\n}\n\nspacing.propTypes = process.env.NODE_ENV !== 'production' ? spacingKeys.reduce(function (obj, key) {\n obj[key] = responsivePropType;\n return obj;\n}, {}) : {};\nspacing.filterProps = spacingKeys;\nexport default spacing;","export default function memoize(fn) {\n var cache = {};\n return function (arg) {\n if (cache[arg] === undefined) {\n cache[arg] = fn(arg);\n }\n\n return cache[arg];\n };\n}","import _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\n// Follow https://material.google.com/motion/duration-easing.html#duration-easing-natural-easing-curves\n// to learn the context in which each easing should be used.\nexport var easing = {\n // This is the most common easing curve.\n easeInOut: 'cubic-bezier(0.4, 0, 0.2, 1)',\n // Objects enter the screen at full velocity from off-screen and\n // slowly decelerate to a resting point.\n easeOut: 'cubic-bezier(0.0, 0, 0.2, 1)',\n // Objects leave the screen at full velocity. They do not decelerate when off-screen.\n easeIn: 'cubic-bezier(0.4, 0, 1, 1)',\n // The sharp curve is used by objects that may return to the screen at any time.\n sharp: 'cubic-bezier(0.4, 0, 0.6, 1)'\n}; // Follow https://material.io/guidelines/motion/duration-easing.html#duration-easing-common-durations\n// to learn when use what timing\n\nexport var duration = {\n shortest: 150,\n shorter: 200,\n short: 250,\n // most basic recommended timing\n standard: 300,\n // this is to be used in complex animations\n complex: 375,\n // recommended when something is entering screen\n enteringScreen: 225,\n // recommended when something is leaving screen\n leavingScreen: 195\n};\n\nfunction formatMs(milliseconds) {\n return \"\".concat(Math.round(milliseconds), \"ms\");\n}\n/**\n * @param {string|Array} props\n * @param {object} param\n * @param {string} param.prop\n * @param {number} param.duration\n * @param {string} param.easing\n * @param {number} param.delay\n */\n\n\nexport default {\n easing: easing,\n duration: duration,\n create: function create() {\n var props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : ['all'];\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n var _options$duration = options.duration,\n durationOption = _options$duration === void 0 ? duration.standard : _options$duration,\n _options$easing = options.easing,\n easingOption = _options$easing === void 0 ? easing.easeInOut : _options$easing,\n _options$delay = options.delay,\n delay = _options$delay === void 0 ? 0 : _options$delay,\n other = _objectWithoutProperties(options, [\"duration\", \"easing\", \"delay\"]);\n\n if (process.env.NODE_ENV !== 'production') {\n var isString = function isString(value) {\n return typeof value === 'string';\n };\n\n var isNumber = function isNumber(value) {\n return !isNaN(parseFloat(value));\n };\n\n if (!isString(props) && !Array.isArray(props)) {\n console.error('Material-UI: Argument \"props\" must be a string or Array.');\n }\n\n if (!isNumber(durationOption) && !isString(durationOption)) {\n console.error(\"Material-UI: Argument \\\"duration\\\" must be a number or a string but found \".concat(durationOption, \".\"));\n }\n\n if (!isString(easingOption)) {\n console.error('Material-UI: Argument \"easing\" must be a string.');\n }\n\n if (!isNumber(delay) && !isString(delay)) {\n console.error('Material-UI: Argument \"delay\" must be a number or a string.');\n }\n\n if (Object.keys(other).length !== 0) {\n console.error(\"Material-UI: Unrecognized argument(s) [\".concat(Object.keys(other).join(','), \"].\"));\n }\n }\n\n return (Array.isArray(props) ? props : [props]).map(function (animatedProp) {\n return \"\".concat(animatedProp, \" \").concat(typeof durationOption === 'string' ? durationOption : formatMs(durationOption), \" \").concat(easingOption, \" \").concat(typeof delay === 'string' ? delay : formatMs(delay));\n }).join(',');\n },\n getAutoHeightDuration: function getAutoHeightDuration(height) {\n if (!height) {\n return 0;\n }\n\n var constant = height / 36; // https://www.wolframalpha.com/input/?i=(4+%2B+15+*+(x+%2F+36+)+**+0.25+%2B+(x+%2F+36)+%2F+5)+*+10\n\n return Math.round((4 + 15 * Math.pow(constant, 0.25) + constant / 5) * 10);\n }\n};","// We need to centralize the zIndex definitions as they work\n// like global values in the browser.\nvar zIndex = {\n mobileStepper: 1000,\n speedDial: 1050,\n appBar: 1100,\n drawer: 1200,\n modal: 1300,\n snackbar: 1400,\n tooltip: 1500\n};\nexport default zIndex;","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport { deepmerge } from '@material-ui/utils';\nimport createBreakpoints from './createBreakpoints';\nimport createMixins from './createMixins';\nimport createPalette from './createPalette';\nimport createTypography from './createTypography';\nimport shadows from './shadows';\nimport shape from './shape';\nimport createSpacing from './createSpacing';\nimport transitions from './transitions';\nimport zIndex from './zIndex';\n\nfunction createTheme() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n var _options$breakpoints = options.breakpoints,\n breakpointsInput = _options$breakpoints === void 0 ? {} : _options$breakpoints,\n _options$mixins = options.mixins,\n mixinsInput = _options$mixins === void 0 ? {} : _options$mixins,\n _options$palette = options.palette,\n paletteInput = _options$palette === void 0 ? {} : _options$palette,\n spacingInput = options.spacing,\n _options$typography = options.typography,\n typographyInput = _options$typography === void 0 ? {} : _options$typography,\n other = _objectWithoutProperties(options, [\"breakpoints\", \"mixins\", \"palette\", \"spacing\", \"typography\"]);\n\n var palette = createPalette(paletteInput);\n var breakpoints = createBreakpoints(breakpointsInput);\n var spacing = createSpacing(spacingInput);\n var muiTheme = deepmerge({\n breakpoints: breakpoints,\n direction: 'ltr',\n mixins: createMixins(breakpoints, spacing, mixinsInput),\n overrides: {},\n // Inject custom styles\n palette: palette,\n props: {},\n // Provide default props\n shadows: shadows,\n typography: createTypography(palette, typographyInput),\n spacing: spacing,\n shape: shape,\n transitions: transitions,\n zIndex: zIndex\n }, other);\n\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n muiTheme = args.reduce(function (acc, argument) {\n return deepmerge(acc, argument);\n }, muiTheme);\n\n if (process.env.NODE_ENV !== 'production') {\n var pseudoClasses = ['checked', 'disabled', 'error', 'focused', 'focusVisible', 'required', 'expanded', 'selected'];\n\n var traverse = function traverse(node, parentKey) {\n var depth = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 1;\n var key; // eslint-disable-next-line guard-for-in, no-restricted-syntax\n\n for (key in node) {\n var child = node[key];\n\n if (depth === 1) {\n if (key.indexOf('Mui') === 0 && child) {\n traverse(child, key, depth + 1);\n }\n } else if (pseudoClasses.indexOf(key) !== -1 && Object.keys(child).length > 0) {\n if (process.env.NODE_ENV !== 'production') {\n console.error([\"Material-UI: The `\".concat(parentKey, \"` component increases \") + \"the CSS specificity of the `\".concat(key, \"` internal state.\"), 'You can not override it like this: ', JSON.stringify(node, null, 2), '', 'Instead, you need to use the $ruleName syntax:', JSON.stringify({\n root: _defineProperty({}, \"&$\".concat(key), child)\n }, null, 2), '', 'https://mui.com/r/pseudo-classes-guide'].join('\\n'));\n } // Remove the style to prevent global conflicts.\n\n\n node[key] = {};\n }\n }\n };\n\n traverse(muiTheme.overrides);\n }\n\n return muiTheme;\n}\n\nvar warnedOnce = false;\nexport function createMuiTheme() {\n if (process.env.NODE_ENV !== 'production') {\n if (!warnedOnce) {\n warnedOnce = true;\n console.error(['Material-UI: the createMuiTheme function was renamed to createTheme.', '', \"You should use `import { createTheme } from '@material-ui/core/styles'`\"].join('\\n'));\n }\n }\n\n return createTheme.apply(void 0, arguments);\n}\nexport default createTheme;","import { createUnarySpacing } from '@material-ui/system';\nvar warnOnce;\nexport default function createSpacing() {\n var spacingInput = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 8;\n\n // Already transformed.\n if (spacingInput.mui) {\n return spacingInput;\n } // Material Design layouts are visually balanced. Most measurements align to an 8dp grid applied, which aligns both spacing and the overall layout.\n // Smaller components, such as icons and type, can align to a 4dp grid.\n // https://material.io/design/layout/understanding-layout.html#usage\n\n\n var transform = createUnarySpacing({\n spacing: spacingInput\n });\n\n var spacing = function spacing() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n if (process.env.NODE_ENV !== 'production') {\n if (!(args.length <= 4)) {\n console.error(\"Material-UI: Too many arguments provided, expected between 0 and 4, got \".concat(args.length));\n }\n }\n\n if (args.length === 0) {\n return transform(1);\n }\n\n if (args.length === 1) {\n return transform(args[0]);\n }\n\n return args.map(function (argument) {\n if (typeof argument === 'string') {\n return argument;\n }\n\n var output = transform(argument);\n return typeof output === 'number' ? \"\".concat(output, \"px\") : output;\n }).join(' ');\n }; // Backward compatibility, to remove in v5.\n\n\n Object.defineProperty(spacing, 'unit', {\n get: function get() {\n if (process.env.NODE_ENV !== 'production') {\n if (!warnOnce || process.env.NODE_ENV === 'test') {\n console.error(['Material-UI: theme.spacing.unit usage has been deprecated.', 'It will be removed in v5.', 'You can replace `theme.spacing.unit * y` with `theme.spacing(y)`.', '', 'You can use the `https://github.com/mui-org/material-ui/tree/master/packages/material-ui-codemod/README.md#theme-spacing-api` migration helper to make the process smoother.'].join('\\n'));\n }\n\n warnOnce = true;\n }\n\n return spacingInput;\n }\n });\n spacing.mui = true;\n return spacing;\n}","import createTheme from './createTheme';\nvar defaultTheme = createTheme();\nexport default defaultTheme;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport { withStyles as withStylesWithoutDefault } from '@material-ui/styles';\nimport defaultTheme from './defaultTheme';\n\nfunction withStyles(stylesOrCreator, options) {\n return withStylesWithoutDefault(stylesOrCreator, _extends({\n defaultTheme: defaultTheme\n }, options));\n}\n\nexport default withStyles;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport { chainPropTypes } from '@material-ui/utils';\nimport withStyles from '../styles/withStyles';\nimport capitalize from '../utils/capitalize';\nexport var styles = function styles(theme) {\n return {\n /* Styles applied to the root element. */\n root: {\n userSelect: 'none',\n width: '1em',\n height: '1em',\n display: 'inline-block',\n fill: 'currentColor',\n flexShrink: 0,\n fontSize: theme.typography.pxToRem(24),\n transition: theme.transitions.create('fill', {\n duration: theme.transitions.duration.shorter\n })\n },\n\n /* Styles applied to the root element if `color=\"primary\"`. */\n colorPrimary: {\n color: theme.palette.primary.main\n },\n\n /* Styles applied to the root element if `color=\"secondary\"`. */\n colorSecondary: {\n color: theme.palette.secondary.main\n },\n\n /* Styles applied to the root element if `color=\"action\"`. */\n colorAction: {\n color: theme.palette.action.active\n },\n\n /* Styles applied to the root element if `color=\"error\"`. */\n colorError: {\n color: theme.palette.error.main\n },\n\n /* Styles applied to the root element if `color=\"disabled\"`. */\n colorDisabled: {\n color: theme.palette.action.disabled\n },\n\n /* Styles applied to the root element if `fontSize=\"inherit\"`. */\n fontSizeInherit: {\n fontSize: 'inherit'\n },\n\n /* Styles applied to the root element if `fontSize=\"small\"`. */\n fontSizeSmall: {\n fontSize: theme.typography.pxToRem(20)\n },\n\n /* Styles applied to the root element if `fontSize=\"large\"`. */\n fontSizeLarge: {\n fontSize: theme.typography.pxToRem(35)\n }\n };\n};\nvar SvgIcon = /*#__PURE__*/React.forwardRef(function SvgIcon(props, ref) {\n var children = props.children,\n classes = props.classes,\n className = props.className,\n _props$color = props.color,\n color = _props$color === void 0 ? 'inherit' : _props$color,\n _props$component = props.component,\n Component = _props$component === void 0 ? 'svg' : _props$component,\n _props$fontSize = props.fontSize,\n fontSize = _props$fontSize === void 0 ? 'medium' : _props$fontSize,\n htmlColor = props.htmlColor,\n titleAccess = props.titleAccess,\n _props$viewBox = props.viewBox,\n viewBox = _props$viewBox === void 0 ? '0 0 24 24' : _props$viewBox,\n other = _objectWithoutProperties(props, [\"children\", \"classes\", \"className\", \"color\", \"component\", \"fontSize\", \"htmlColor\", \"titleAccess\", \"viewBox\"]);\n\n return /*#__PURE__*/React.createElement(Component, _extends({\n className: clsx(classes.root, className, color !== 'inherit' && classes[\"color\".concat(capitalize(color))], fontSize !== 'default' && fontSize !== 'medium' && classes[\"fontSize\".concat(capitalize(fontSize))]),\n focusable: \"false\",\n viewBox: viewBox,\n color: htmlColor,\n \"aria-hidden\": titleAccess ? undefined : true,\n role: titleAccess ? 'img' : undefined,\n ref: ref\n }, other), children, titleAccess ? /*#__PURE__*/React.createElement(\"title\", null, titleAccess) : null);\n});\nprocess.env.NODE_ENV !== \"production\" ? SvgIcon.propTypes = {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit the d.ts file and run \"yarn proptypes\" |\n // ----------------------------------------------------------------------\n\n /**\n * Node passed into the SVG element.\n */\n children: PropTypes.node,\n\n /**\n * Override or extend the styles applied to the component.\n * See [CSS API](#css) below for more details.\n */\n classes: PropTypes.object,\n\n /**\n * @ignore\n */\n className: PropTypes.string,\n\n /**\n * The color of the component. It supports those theme colors that make sense for this component.\n * You can use the `htmlColor` prop to apply a color attribute to the SVG element.\n */\n color: PropTypes.oneOf(['action', 'disabled', 'error', 'inherit', 'primary', 'secondary']),\n\n /**\n * The component used for the root node.\n * Either a string to use a HTML element or a component.\n */\n component: PropTypes\n /* @typescript-to-proptypes-ignore */\n .elementType,\n\n /**\n * The fontSize applied to the icon. Defaults to 24px, but can be configure to inherit font size.\n */\n fontSize: chainPropTypes(PropTypes.oneOf(['default', 'inherit', 'large', 'medium', 'small']), function (props) {\n var fontSize = props.fontSize;\n\n if (fontSize === 'default') {\n throw new Error('Material-UI: `fontSize=\"default\"` is deprecated. Use `fontSize=\"medium\"` instead.');\n }\n\n return null;\n }),\n\n /**\n * Applies a color attribute to the SVG element.\n */\n htmlColor: PropTypes.string,\n\n /**\n * The shape-rendering attribute. The behavior of the different options is described on the\n * [MDN Web Docs](https://developer.mozilla.org/en-US/docs/Web/SVG/Attribute/shape-rendering).\n * If you are having issues with blurry icons you should investigate this property.\n */\n shapeRendering: PropTypes.string,\n\n /**\n * Provides a human-readable title for the element that contains it.\n * https://www.w3.org/TR/SVG-access/#Equivalent\n */\n titleAccess: PropTypes.string,\n\n /**\n * Allows you to redefine what the coordinates without units mean inside an SVG element.\n * For example, if the SVG element is 500 (width) by 200 (height),\n * and you pass viewBox=\"0 0 50 20\",\n * this means that the coordinates inside the SVG will go from the top left corner (0,0)\n * to bottom right (50,20) and each unit will be worth 10px.\n */\n viewBox: PropTypes.string\n} : void 0;\nSvgIcon.muiName = 'SvgIcon';\nexport default withStyles(styles, {\n name: 'MuiSvgIcon'\n})(SvgIcon);","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport React from 'react';\nimport SvgIcon from '../SvgIcon';\n/**\n * Private module reserved for @material-ui/x packages.\n */\n\nexport default function createSvgIcon(path, displayName) {\n var Component = function Component(props, ref) {\n return /*#__PURE__*/React.createElement(SvgIcon, _extends({\n ref: ref\n }, props), path);\n };\n\n if (process.env.NODE_ENV !== 'production') {\n // Need to set `displayName` on the inner component for React.memo.\n // React prior to 16.14 ignores `displayName` on the wrapper.\n Component.displayName = \"\".concat(displayName, \"Icon\");\n }\n\n Component.muiName = SvgIcon.muiName;\n return /*#__PURE__*/React.memo( /*#__PURE__*/React.forwardRef(Component));\n}","// Corresponds to 10 frames at 60 Hz.\n// A few bytes payload overhead when lodash/debounce is ~3 kB and debounce ~300 B.\nexport default function debounce(func) {\n var wait = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 166;\n var timeout;\n\n function debounced() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n // eslint-disable-next-line consistent-this\n var that = this;\n\n var later = function later() {\n func.apply(that, args);\n };\n\n clearTimeout(timeout);\n timeout = setTimeout(later, wait);\n }\n\n debounced.clear = function () {\n clearTimeout(timeout);\n };\n\n return debounced;\n}","export default function deprecatedPropType(validator, reason) {\n if (process.env.NODE_ENV === 'production') {\n return function () {\n return null;\n };\n }\n\n return function (props, propName, componentName, location, propFullName) {\n var componentNameSafe = componentName || '<>';\n var propFullNameSafe = propFullName || propName;\n\n if (typeof props[propName] !== 'undefined') {\n return new Error(\"The \".concat(location, \" `\").concat(propFullNameSafe, \"` of \") + \"`\".concat(componentNameSafe, \"` is deprecated. \").concat(reason));\n }\n\n return null;\n };\n}","import * as React from 'react';\nexport default function isMuiElement(element, muiNames) {\n return /*#__PURE__*/React.isValidElement(element) && muiNames.indexOf(element.type.muiName) !== -1;\n}","export default function ownerDocument(node) {\n return node && node.ownerDocument || document;\n}","import ownerDocument from './ownerDocument';\nexport default function ownerWindow(node) {\n var doc = ownerDocument(node);\n return doc.defaultView || window;\n}","export default function requirePropFactory(componentNameInError) {\n if (process.env.NODE_ENV === 'production') {\n return function () {\n return null;\n };\n }\n\n var requireProp = function requireProp(requiredProp) {\n return function (props, propName, componentName, location, propFullName) {\n var propFullNameSafe = propFullName || propName;\n\n if (typeof props[propName] !== 'undefined' && !props[requiredProp]) {\n return new Error(\"The prop `\".concat(propFullNameSafe, \"` of \") + \"`\".concat(componentNameInError, \"` must be used on `\").concat(requiredProp, \"`.\"));\n }\n\n return null;\n };\n };\n\n return requireProp;\n}","// TODO v5: consider to make it private\nexport default function setRef(ref, value) {\n if (typeof ref === 'function') {\n ref(value);\n } else if (ref) {\n ref.current = value;\n }\n}","export default function unsupportedProp(props, propName, componentName, location, propFullName) {\n if (process.env.NODE_ENV === 'production') {\n return null;\n }\n\n var propFullNameSafe = propFullName || propName;\n\n if (typeof props[propName] !== 'undefined') {\n return new Error(\"The prop `\".concat(propFullNameSafe, \"` is not supported. Please remove it.\"));\n }\n\n return null;\n}","/* eslint-disable react-hooks/rules-of-hooks, react-hooks/exhaustive-deps */\nimport * as React from 'react';\nexport default function useControlled(_ref) {\n var controlled = _ref.controlled,\n defaultProp = _ref.default,\n name = _ref.name,\n _ref$state = _ref.state,\n state = _ref$state === void 0 ? 'value' : _ref$state;\n\n var _React$useRef = React.useRef(controlled !== undefined),\n isControlled = _React$useRef.current;\n\n var _React$useState = React.useState(defaultProp),\n valueState = _React$useState[0],\n setValue = _React$useState[1];\n\n var value = isControlled ? controlled : valueState;\n\n if (process.env.NODE_ENV !== 'production') {\n React.useEffect(function () {\n if (isControlled !== (controlled !== undefined)) {\n console.error([\"Material-UI: A component is changing the \".concat(isControlled ? '' : 'un', \"controlled \").concat(state, \" state of \").concat(name, \" to be \").concat(isControlled ? 'un' : '', \"controlled.\"), 'Elements should not switch from uncontrolled to controlled (or vice versa).', \"Decide between using a controlled or uncontrolled \".concat(name, \" \") + 'element for the lifetime of the component.', \"The nature of the state is determined during the first render, it's considered controlled if the value is not `undefined`.\", 'More info: https://fb.me/react-controlled-components'].join('\\n'));\n }\n }, [controlled]);\n\n var _React$useRef2 = React.useRef(defaultProp),\n defaultValue = _React$useRef2.current;\n\n React.useEffect(function () {\n if (!isControlled && defaultValue !== defaultProp) {\n console.error([\"Material-UI: A component is changing the default \".concat(state, \" state of an uncontrolled \").concat(name, \" after being initialized. \") + \"To suppress this warning opt to use a controlled \".concat(name, \".\")].join('\\n'));\n }\n }, [JSON.stringify(defaultProp)]);\n }\n\n var setValueIfUncontrolled = React.useCallback(function (newValue) {\n if (!isControlled) {\n setValue(newValue);\n }\n }, []);\n return [value, setValueIfUncontrolled];\n}","import * as React from 'react';\nvar useEnhancedEffect = typeof window !== 'undefined' ? React.useLayoutEffect : React.useEffect;\n/**\n * https://github.com/facebook/react/issues/14099#issuecomment-440013892\n *\n * @param {function} fn\n */\n\nexport default function useEventCallback(fn) {\n var ref = React.useRef(fn);\n useEnhancedEffect(function () {\n ref.current = fn;\n });\n return React.useCallback(function () {\n return (0, ref.current).apply(void 0, arguments);\n }, []);\n}","import * as React from 'react';\nimport setRef from './setRef';\nexport default function useForkRef(refA, refB) {\n /**\n * This will create a new function if the ref props change and are defined.\n * This means react will call the old forkRef with `null` and the new forkRef\n * with the ref. Cleanup naturally emerges from this behavior\n */\n return React.useMemo(function () {\n if (refA == null && refB == null) {\n return null;\n }\n\n return function (refValue) {\n setRef(refA, refValue);\n setRef(refB, refValue);\n };\n }, [refA, refB]);\n}","import * as React from 'react';\n/**\n * Private module reserved for @material-ui/x packages.\n */\n\nexport default function useId(idOverride) {\n var _React$useState = React.useState(idOverride),\n defaultId = _React$useState[0],\n setDefaultId = _React$useState[1];\n\n var id = idOverride || defaultId;\n React.useEffect(function () {\n if (defaultId == null) {\n // Fallback to this default id when possible.\n // Use the random value for client-side rendering only.\n // We can't use it server-side.\n setDefaultId(\"mui-\".concat(Math.round(Math.random() * 1e5)));\n }\n }, [defaultId]);\n return id;\n}","// based on https://github.com/WICG/focus-visible/blob/v4.1.5/src/focus-visible.js\nimport * as React from 'react';\nimport * as ReactDOM from 'react-dom';\nvar hadKeyboardEvent = true;\nvar hadFocusVisibleRecently = false;\nvar hadFocusVisibleRecentlyTimeout = null;\nvar inputTypesWhitelist = {\n text: true,\n search: true,\n url: true,\n tel: true,\n email: true,\n password: true,\n number: true,\n date: true,\n month: true,\n week: true,\n time: true,\n datetime: true,\n 'datetime-local': true\n};\n/**\n * Computes whether the given element should automatically trigger the\n * `focus-visible` class being added, i.e. whether it should always match\n * `:focus-visible` when focused.\n * @param {Element} node\n * @return {boolean}\n */\n\nfunction focusTriggersKeyboardModality(node) {\n var type = node.type,\n tagName = node.tagName;\n\n if (tagName === 'INPUT' && inputTypesWhitelist[type] && !node.readOnly) {\n return true;\n }\n\n if (tagName === 'TEXTAREA' && !node.readOnly) {\n return true;\n }\n\n if (node.isContentEditable) {\n return true;\n }\n\n return false;\n}\n/**\n * Keep track of our keyboard modality state with `hadKeyboardEvent`.\n * If the most recent user interaction was via the keyboard;\n * and the key press did not include a meta, alt/option, or control key;\n * then the modality is keyboard. Otherwise, the modality is not keyboard.\n * @param {KeyboardEvent} event\n */\n\n\nfunction handleKeyDown(event) {\n if (event.metaKey || event.altKey || event.ctrlKey) {\n return;\n }\n\n hadKeyboardEvent = true;\n}\n/**\n * If at any point a user clicks with a pointing device, ensure that we change\n * the modality away from keyboard.\n * This avoids the situation where a user presses a key on an already focused\n * element, and then clicks on a different element, focusing it with a\n * pointing device, while we still think we're in keyboard modality.\n */\n\n\nfunction handlePointerDown() {\n hadKeyboardEvent = false;\n}\n\nfunction handleVisibilityChange() {\n if (this.visibilityState === 'hidden') {\n // If the tab becomes active again, the browser will handle calling focus\n // on the element (Safari actually calls it twice).\n // If this tab change caused a blur on an element with focus-visible,\n // re-apply the class when the user switches back to the tab.\n if (hadFocusVisibleRecently) {\n hadKeyboardEvent = true;\n }\n }\n}\n\nfunction prepare(doc) {\n doc.addEventListener('keydown', handleKeyDown, true);\n doc.addEventListener('mousedown', handlePointerDown, true);\n doc.addEventListener('pointerdown', handlePointerDown, true);\n doc.addEventListener('touchstart', handlePointerDown, true);\n doc.addEventListener('visibilitychange', handleVisibilityChange, true);\n}\n\nexport function teardown(doc) {\n doc.removeEventListener('keydown', handleKeyDown, true);\n doc.removeEventListener('mousedown', handlePointerDown, true);\n doc.removeEventListener('pointerdown', handlePointerDown, true);\n doc.removeEventListener('touchstart', handlePointerDown, true);\n doc.removeEventListener('visibilitychange', handleVisibilityChange, true);\n}\n\nfunction isFocusVisible(event) {\n var target = event.target;\n\n try {\n return target.matches(':focus-visible');\n } catch (error) {} // browsers not implementing :focus-visible will throw a SyntaxError\n // we use our own heuristic for those browsers\n // rethrow might be better if it's not the expected error but do we really\n // want to crash if focus-visible malfunctioned?\n // no need for validFocusTarget check. the user does that by attaching it to\n // focusable events only\n\n\n return hadKeyboardEvent || focusTriggersKeyboardModality(target);\n}\n/**\n * Should be called if a blur event is fired on a focus-visible element\n */\n\n\nfunction handleBlurVisible() {\n // To detect a tab/window switch, we look for a blur event followed\n // rapidly by a visibility change.\n // If we don't see a visibility change within 100ms, it's probably a\n // regular focus change.\n hadFocusVisibleRecently = true;\n window.clearTimeout(hadFocusVisibleRecentlyTimeout);\n hadFocusVisibleRecentlyTimeout = window.setTimeout(function () {\n hadFocusVisibleRecently = false;\n }, 100);\n}\n\nexport default function useIsFocusVisible() {\n var ref = React.useCallback(function (instance) {\n var node = ReactDOM.findDOMNode(instance);\n\n if (node != null) {\n prepare(node.ownerDocument);\n }\n }, []);\n\n if (process.env.NODE_ENV !== 'production') {\n // eslint-disable-next-line react-hooks/rules-of-hooks\n React.useDebugValue(isFocusVisible);\n }\n\n return {\n isFocusVisible: isFocusVisible,\n onBlurVisible: handleBlurVisible,\n ref: ref\n };\n}","/**\n * @license React\n * react-dom.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n/*\n Modernizr 3.0.0pre (Custom Build) | MIT\n*/\n'use strict';var aa=require(\"react\"),ca=require(\"scheduler\");function p(a){for(var b=\"https://reactjs.org/docs/error-decoder.html?invariant=\"+a,c=1;cb}return!1}function v(a,b,c,d,e,f,g){this.acceptsBooleans=2===b||3===b||4===b;this.attributeName=d;this.attributeNamespace=e;this.mustUseProperty=c;this.propertyName=a;this.type=b;this.sanitizeURL=f;this.removeEmptyString=g}var z={};\n\"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style\".split(\" \").forEach(function(a){z[a]=new v(a,0,!1,a,null,!1,!1)});[[\"acceptCharset\",\"accept-charset\"],[\"className\",\"class\"],[\"htmlFor\",\"for\"],[\"httpEquiv\",\"http-equiv\"]].forEach(function(a){var b=a[0];z[b]=new v(b,1,!1,a[1],null,!1,!1)});[\"contentEditable\",\"draggable\",\"spellCheck\",\"value\"].forEach(function(a){z[a]=new v(a,2,!1,a.toLowerCase(),null,!1,!1)});\n[\"autoReverse\",\"externalResourcesRequired\",\"focusable\",\"preserveAlpha\"].forEach(function(a){z[a]=new v(a,2,!1,a,null,!1,!1)});\"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture disableRemotePlayback formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope\".split(\" \").forEach(function(a){z[a]=new v(a,3,!1,a.toLowerCase(),null,!1,!1)});\n[\"checked\",\"multiple\",\"muted\",\"selected\"].forEach(function(a){z[a]=new v(a,3,!0,a,null,!1,!1)});[\"capture\",\"download\"].forEach(function(a){z[a]=new v(a,4,!1,a,null,!1,!1)});[\"cols\",\"rows\",\"size\",\"span\"].forEach(function(a){z[a]=new v(a,6,!1,a,null,!1,!1)});[\"rowSpan\",\"start\"].forEach(function(a){z[a]=new v(a,5,!1,a.toLowerCase(),null,!1,!1)});var ra=/[\\-:]([a-z])/g;function sa(a){return a[1].toUpperCase()}\n\"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height\".split(\" \").forEach(function(a){var b=a.replace(ra,\nsa);z[b]=new v(b,1,!1,a,null,!1,!1)});\"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type\".split(\" \").forEach(function(a){var b=a.replace(ra,sa);z[b]=new v(b,1,!1,a,\"http://www.w3.org/1999/xlink\",!1,!1)});[\"xml:base\",\"xml:lang\",\"xml:space\"].forEach(function(a){var b=a.replace(ra,sa);z[b]=new v(b,1,!1,a,\"http://www.w3.org/XML/1998/namespace\",!1,!1)});[\"tabIndex\",\"crossOrigin\"].forEach(function(a){z[a]=new v(a,1,!1,a.toLowerCase(),null,!1,!1)});\nz.xlinkHref=new v(\"xlinkHref\",1,!1,\"xlink:href\",\"http://www.w3.org/1999/xlink\",!0,!1);[\"src\",\"href\",\"action\",\"formAction\"].forEach(function(a){z[a]=new v(a,1,!1,a.toLowerCase(),null,!0,!0)});\nfunction ta(a,b,c,d){var e=z.hasOwnProperty(b)?z[b]:null;if(null!==e?0!==e.type:d||!(2h||e[g]!==f[h]){var k=\"\\n\"+e[g].replace(\" at new \",\" at \");a.displayName&&k.includes(\"\")&&(k=k.replace(\"\",a.displayName));return k}while(1<=g&&0<=h)}break}}}finally{Na=!1,Error.prepareStackTrace=c}return(a=a?a.displayName||a.name:\"\")?Ma(a):\"\"}\nfunction Pa(a){switch(a.tag){case 5:return Ma(a.type);case 16:return Ma(\"Lazy\");case 13:return Ma(\"Suspense\");case 19:return Ma(\"SuspenseList\");case 0:case 2:case 15:return a=Oa(a.type,!1),a;case 11:return a=Oa(a.type.render,!1),a;case 1:return a=Oa(a.type,!0),a;default:return\"\"}}\nfunction Qa(a){if(null==a)return null;if(\"function\"===typeof a)return a.displayName||a.name||null;if(\"string\"===typeof a)return a;switch(a){case ya:return\"Fragment\";case wa:return\"Portal\";case Aa:return\"Profiler\";case za:return\"StrictMode\";case Ea:return\"Suspense\";case Fa:return\"SuspenseList\"}if(\"object\"===typeof a)switch(a.$$typeof){case Ca:return(a.displayName||\"Context\")+\".Consumer\";case Ba:return(a._context.displayName||\"Context\")+\".Provider\";case Da:var b=a.render;a=a.displayName;a||(a=b.displayName||\nb.name||\"\",a=\"\"!==a?\"ForwardRef(\"+a+\")\":\"ForwardRef\");return a;case Ga:return b=a.displayName||null,null!==b?b:Qa(a.type)||\"Memo\";case Ha:b=a._payload;a=a._init;try{return Qa(a(b))}catch(c){}}return null}\nfunction Ra(a){var b=a.type;switch(a.tag){case 24:return\"Cache\";case 9:return(b.displayName||\"Context\")+\".Consumer\";case 10:return(b._context.displayName||\"Context\")+\".Provider\";case 18:return\"DehydratedFragment\";case 11:return a=b.render,a=a.displayName||a.name||\"\",b.displayName||(\"\"!==a?\"ForwardRef(\"+a+\")\":\"ForwardRef\");case 7:return\"Fragment\";case 5:return b;case 4:return\"Portal\";case 3:return\"Root\";case 6:return\"Text\";case 16:return Qa(b);case 8:return b===za?\"StrictMode\":\"Mode\";case 22:return\"Offscreen\";\ncase 12:return\"Profiler\";case 21:return\"Scope\";case 13:return\"Suspense\";case 19:return\"SuspenseList\";case 25:return\"TracingMarker\";case 1:case 0:case 17:case 2:case 14:case 15:if(\"function\"===typeof b)return b.displayName||b.name||null;if(\"string\"===typeof b)return b}return null}function Sa(a){switch(typeof a){case \"boolean\":case \"number\":case \"string\":case \"undefined\":return a;case \"object\":return a;default:return\"\"}}\nfunction Ta(a){var b=a.type;return(a=a.nodeName)&&\"input\"===a.toLowerCase()&&(\"checkbox\"===b||\"radio\"===b)}\nfunction Ua(a){var b=Ta(a)?\"checked\":\"value\",c=Object.getOwnPropertyDescriptor(a.constructor.prototype,b),d=\"\"+a[b];if(!a.hasOwnProperty(b)&&\"undefined\"!==typeof c&&\"function\"===typeof c.get&&\"function\"===typeof c.set){var e=c.get,f=c.set;Object.defineProperty(a,b,{configurable:!0,get:function(){return e.call(this)},set:function(a){d=\"\"+a;f.call(this,a)}});Object.defineProperty(a,b,{enumerable:c.enumerable});return{getValue:function(){return d},setValue:function(a){d=\"\"+a},stopTracking:function(){a._valueTracker=\nnull;delete a[b]}}}}function Va(a){a._valueTracker||(a._valueTracker=Ua(a))}function Wa(a){if(!a)return!1;var b=a._valueTracker;if(!b)return!0;var c=b.getValue();var d=\"\";a&&(d=Ta(a)?a.checked?\"true\":\"false\":a.value);a=d;return a!==c?(b.setValue(a),!0):!1}function Xa(a){a=a||(\"undefined\"!==typeof document?document:void 0);if(\"undefined\"===typeof a)return null;try{return a.activeElement||a.body}catch(b){return a.body}}\nfunction Ya(a,b){var c=b.checked;return A({},b,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:null!=c?c:a._wrapperState.initialChecked})}function Za(a,b){var c=null==b.defaultValue?\"\":b.defaultValue,d=null!=b.checked?b.checked:b.defaultChecked;c=Sa(null!=b.value?b.value:c);a._wrapperState={initialChecked:d,initialValue:c,controlled:\"checkbox\"===b.type||\"radio\"===b.type?null!=b.checked:null!=b.value}}function ab(a,b){b=b.checked;null!=b&&ta(a,\"checked\",b,!1)}\nfunction bb(a,b){ab(a,b);var c=Sa(b.value),d=b.type;if(null!=c)if(\"number\"===d){if(0===c&&\"\"===a.value||a.value!=c)a.value=\"\"+c}else a.value!==\"\"+c&&(a.value=\"\"+c);else if(\"submit\"===d||\"reset\"===d){a.removeAttribute(\"value\");return}b.hasOwnProperty(\"value\")?cb(a,b.type,c):b.hasOwnProperty(\"defaultValue\")&&cb(a,b.type,Sa(b.defaultValue));null==b.checked&&null!=b.defaultChecked&&(a.defaultChecked=!!b.defaultChecked)}\nfunction db(a,b,c){if(b.hasOwnProperty(\"value\")||b.hasOwnProperty(\"defaultValue\")){var d=b.type;if(!(\"submit\"!==d&&\"reset\"!==d||void 0!==b.value&&null!==b.value))return;b=\"\"+a._wrapperState.initialValue;c||b===a.value||(a.value=b);a.defaultValue=b}c=a.name;\"\"!==c&&(a.name=\"\");a.defaultChecked=!!a._wrapperState.initialChecked;\"\"!==c&&(a.name=c)}\nfunction cb(a,b,c){if(\"number\"!==b||Xa(a.ownerDocument)!==a)null==c?a.defaultValue=\"\"+a._wrapperState.initialValue:a.defaultValue!==\"\"+c&&(a.defaultValue=\"\"+c)}var eb=Array.isArray;\nfunction fb(a,b,c,d){a=a.options;if(b){b={};for(var e=0;e\"+b.valueOf().toString()+\"\";for(b=mb.firstChild;a.firstChild;)a.removeChild(a.firstChild);for(;b.firstChild;)a.appendChild(b.firstChild)}});\nfunction ob(a,b){if(b){var c=a.firstChild;if(c&&c===a.lastChild&&3===c.nodeType){c.nodeValue=b;return}}a.textContent=b}\nvar pb={animationIterationCount:!0,aspectRatio:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridArea:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,\nzoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},qb=[\"Webkit\",\"ms\",\"Moz\",\"O\"];Object.keys(pb).forEach(function(a){qb.forEach(function(b){b=b+a.charAt(0).toUpperCase()+a.substring(1);pb[b]=pb[a]})});function rb(a,b,c){return null==b||\"boolean\"===typeof b||\"\"===b?\"\":c||\"number\"!==typeof b||0===b||pb.hasOwnProperty(a)&&pb[a]?(\"\"+b).trim():b+\"px\"}\nfunction sb(a,b){a=a.style;for(var c in b)if(b.hasOwnProperty(c)){var d=0===c.indexOf(\"--\"),e=rb(c,b[c],d);\"float\"===c&&(c=\"cssFloat\");d?a.setProperty(c,e):a[c]=e}}var tb=A({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0});\nfunction ub(a,b){if(b){if(tb[a]&&(null!=b.children||null!=b.dangerouslySetInnerHTML))throw Error(p(137,a));if(null!=b.dangerouslySetInnerHTML){if(null!=b.children)throw Error(p(60));if(\"object\"!==typeof b.dangerouslySetInnerHTML||!(\"__html\"in b.dangerouslySetInnerHTML))throw Error(p(61));}if(null!=b.style&&\"object\"!==typeof b.style)throw Error(p(62));}}\nfunction vb(a,b){if(-1===a.indexOf(\"-\"))return\"string\"===typeof b.is;switch(a){case \"annotation-xml\":case \"color-profile\":case \"font-face\":case \"font-face-src\":case \"font-face-uri\":case \"font-face-format\":case \"font-face-name\":case \"missing-glyph\":return!1;default:return!0}}var wb=null;function xb(a){a=a.target||a.srcElement||window;a.correspondingUseElement&&(a=a.correspondingUseElement);return 3===a.nodeType?a.parentNode:a}var yb=null,zb=null,Ab=null;\nfunction Bb(a){if(a=Cb(a)){if(\"function\"!==typeof yb)throw Error(p(280));var b=a.stateNode;b&&(b=Db(b),yb(a.stateNode,a.type,b))}}function Eb(a){zb?Ab?Ab.push(a):Ab=[a]:zb=a}function Fb(){if(zb){var a=zb,b=Ab;Ab=zb=null;Bb(a);if(b)for(a=0;a>>=0;return 0===a?32:31-(pc(a)/qc|0)|0}var rc=64,sc=4194304;\nfunction tc(a){switch(a&-a){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return a&4194240;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return a&130023424;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 1073741824;\ndefault:return a}}function uc(a,b){var c=a.pendingLanes;if(0===c)return 0;var d=0,e=a.suspendedLanes,f=a.pingedLanes,g=c&268435455;if(0!==g){var h=g&~e;0!==h?d=tc(h):(f&=g,0!==f&&(d=tc(f)))}else g=c&~e,0!==g?d=tc(g):0!==f&&(d=tc(f));if(0===d)return 0;if(0!==b&&b!==d&&0===(b&e)&&(e=d&-d,f=b&-b,e>=f||16===e&&0!==(f&4194240)))return b;0!==(d&4)&&(d|=c&16);b=a.entangledLanes;if(0!==b)for(a=a.entanglements,b&=d;0c;c++)b.push(a);return b}\nfunction Ac(a,b,c){a.pendingLanes|=b;536870912!==b&&(a.suspendedLanes=0,a.pingedLanes=0);a=a.eventTimes;b=31-oc(b);a[b]=c}function Bc(a,b){var c=a.pendingLanes&~b;a.pendingLanes=b;a.suspendedLanes=0;a.pingedLanes=0;a.expiredLanes&=b;a.mutableReadLanes&=b;a.entangledLanes&=b;b=a.entanglements;var d=a.eventTimes;for(a=a.expirationTimes;0=be),ee=String.fromCharCode(32),fe=!1;\nfunction ge(a,b){switch(a){case \"keyup\":return-1!==$d.indexOf(b.keyCode);case \"keydown\":return 229!==b.keyCode;case \"keypress\":case \"mousedown\":case \"focusout\":return!0;default:return!1}}function he(a){a=a.detail;return\"object\"===typeof a&&\"data\"in a?a.data:null}var ie=!1;function je(a,b){switch(a){case \"compositionend\":return he(b);case \"keypress\":if(32!==b.which)return null;fe=!0;return ee;case \"textInput\":return a=b.data,a===ee&&fe?null:a;default:return null}}\nfunction ke(a,b){if(ie)return\"compositionend\"===a||!ae&&ge(a,b)?(a=nd(),md=ld=kd=null,ie=!1,a):null;switch(a){case \"paste\":return null;case \"keypress\":if(!(b.ctrlKey||b.altKey||b.metaKey)||b.ctrlKey&&b.altKey){if(b.char&&1=b)return{node:c,offset:b-a};a=d}a:{for(;c;){if(c.nextSibling){c=c.nextSibling;break a}c=c.parentNode}c=void 0}c=Je(c)}}function Le(a,b){return a&&b?a===b?!0:a&&3===a.nodeType?!1:b&&3===b.nodeType?Le(a,b.parentNode):\"contains\"in a?a.contains(b):a.compareDocumentPosition?!!(a.compareDocumentPosition(b)&16):!1:!1}\nfunction Me(){for(var a=window,b=Xa();b instanceof a.HTMLIFrameElement;){try{var c=\"string\"===typeof b.contentWindow.location.href}catch(d){c=!1}if(c)a=b.contentWindow;else break;b=Xa(a.document)}return b}function Ne(a){var b=a&&a.nodeName&&a.nodeName.toLowerCase();return b&&(\"input\"===b&&(\"text\"===a.type||\"search\"===a.type||\"tel\"===a.type||\"url\"===a.type||\"password\"===a.type)||\"textarea\"===b||\"true\"===a.contentEditable)}\nfunction Oe(a){var b=Me(),c=a.focusedElem,d=a.selectionRange;if(b!==c&&c&&c.ownerDocument&&Le(c.ownerDocument.documentElement,c)){if(null!==d&&Ne(c))if(b=d.start,a=d.end,void 0===a&&(a=b),\"selectionStart\"in c)c.selectionStart=b,c.selectionEnd=Math.min(a,c.value.length);else if(a=(b=c.ownerDocument||document)&&b.defaultView||window,a.getSelection){a=a.getSelection();var e=c.textContent.length,f=Math.min(d.start,e);d=void 0===d.end?f:Math.min(d.end,e);!a.extend&&f>d&&(e=d,d=f,f=e);e=Ke(c,f);var g=Ke(c,\nd);e&&g&&(1!==a.rangeCount||a.anchorNode!==e.node||a.anchorOffset!==e.offset||a.focusNode!==g.node||a.focusOffset!==g.offset)&&(b=b.createRange(),b.setStart(e.node,e.offset),a.removeAllRanges(),f>d?(a.addRange(b),a.extend(g.node,g.offset)):(b.setEnd(g.node,g.offset),a.addRange(b)))}b=[];for(a=c;a=a.parentNode;)1===a.nodeType&&b.push({element:a,left:a.scrollLeft,top:a.scrollTop});\"function\"===typeof c.focus&&c.focus();for(c=0;c=document.documentMode,Qe=null,Re=null,Se=null,Te=!1;\nfunction Ue(a,b,c){var d=c.window===c?c.document:9===c.nodeType?c:c.ownerDocument;Te||null==Qe||Qe!==Xa(d)||(d=Qe,\"selectionStart\"in d&&Ne(d)?d={start:d.selectionStart,end:d.selectionEnd}:(d=(d.ownerDocument&&d.ownerDocument.defaultView||window).getSelection(),d={anchorNode:d.anchorNode,anchorOffset:d.anchorOffset,focusNode:d.focusNode,focusOffset:d.focusOffset}),Se&&Ie(Se,d)||(Se=d,d=oe(Re,\"onSelect\"),0Tf||(a.current=Sf[Tf],Sf[Tf]=null,Tf--)}function G(a,b){Tf++;Sf[Tf]=a.current;a.current=b}var Vf={},H=Uf(Vf),Wf=Uf(!1),Xf=Vf;function Yf(a,b){var c=a.type.contextTypes;if(!c)return Vf;var d=a.stateNode;if(d&&d.__reactInternalMemoizedUnmaskedChildContext===b)return d.__reactInternalMemoizedMaskedChildContext;var e={},f;for(f in c)e[f]=b[f];d&&(a=a.stateNode,a.__reactInternalMemoizedUnmaskedChildContext=b,a.__reactInternalMemoizedMaskedChildContext=e);return e}\nfunction Zf(a){a=a.childContextTypes;return null!==a&&void 0!==a}function $f(){E(Wf);E(H)}function ag(a,b,c){if(H.current!==Vf)throw Error(p(168));G(H,b);G(Wf,c)}function bg(a,b,c){var d=a.stateNode;b=b.childContextTypes;if(\"function\"!==typeof d.getChildContext)return c;d=d.getChildContext();for(var e in d)if(!(e in b))throw Error(p(108,Ra(a)||\"Unknown\",e));return A({},c,d)}\nfunction cg(a){a=(a=a.stateNode)&&a.__reactInternalMemoizedMergedChildContext||Vf;Xf=H.current;G(H,a);G(Wf,Wf.current);return!0}function dg(a,b,c){var d=a.stateNode;if(!d)throw Error(p(169));c?(a=bg(a,b,Xf),d.__reactInternalMemoizedMergedChildContext=a,E(Wf),E(H),G(H,a)):E(Wf);G(Wf,c)}var eg=null,fg=!1,gg=!1;function hg(a){null===eg?eg=[a]:eg.push(a)}function ig(a){fg=!0;hg(a)}\nfunction jg(){if(!gg&&null!==eg){gg=!0;var a=0,b=C;try{var c=eg;for(C=1;a>=g;e-=g;rg=1<<32-oc(b)+e|c<w?(x=u,u=null):x=u.sibling;var n=r(e,u,h[w],k);if(null===n){null===u&&(u=x);break}a&&u&&null===n.alternate&&b(e,u);g=f(n,g,w);null===m?l=n:m.sibling=n;m=n;u=x}if(w===h.length)return c(e,u),I&&tg(e,w),l;if(null===u){for(;ww?(x=m,m=null):x=m.sibling;var t=r(e,m,n.value,k);if(null===t){null===m&&(m=x);break}a&&m&&null===t.alternate&&b(e,m);g=f(t,g,w);null===u?l=t:u.sibling=t;u=t;m=x}if(n.done)return c(e,\nm),I&&tg(e,w),l;if(null===m){for(;!n.done;w++,n=h.next())n=q(e,n.value,k),null!==n&&(g=f(n,g,w),null===u?l=n:u.sibling=n,u=n);I&&tg(e,w);return l}for(m=d(e,m);!n.done;w++,n=h.next())n=y(m,e,w,n.value,k),null!==n&&(a&&null!==n.alternate&&m.delete(null===n.key?w:n.key),g=f(n,g,w),null===u?l=n:u.sibling=n,u=n);a&&m.forEach(function(a){return b(e,a)});I&&tg(e,w);return l}function J(a,d,f,h){\"object\"===typeof f&&null!==f&&f.type===ya&&null===f.key&&(f=f.props.children);if(\"object\"===typeof f&&null!==f){switch(f.$$typeof){case va:a:{for(var k=\nf.key,l=d;null!==l;){if(l.key===k){k=f.type;if(k===ya){if(7===l.tag){c(a,l.sibling);d=e(l,f.props.children);d.return=a;a=d;break a}}else if(l.elementType===k||\"object\"===typeof k&&null!==k&&k.$$typeof===Ha&&Ng(k)===l.type){c(a,l.sibling);d=e(l,f.props);d.ref=Lg(a,l,f);d.return=a;a=d;break a}c(a,l);break}else b(a,l);l=l.sibling}f.type===ya?(d=Tg(f.props.children,a.mode,h,f.key),d.return=a,a=d):(h=Rg(f.type,f.key,f.props,null,a.mode,h),h.ref=Lg(a,d,f),h.return=a,a=h)}return g(a);case wa:a:{for(l=f.key;null!==\nd;){if(d.key===l)if(4===d.tag&&d.stateNode.containerInfo===f.containerInfo&&d.stateNode.implementation===f.implementation){c(a,d.sibling);d=e(d,f.children||[]);d.return=a;a=d;break a}else{c(a,d);break}else b(a,d);d=d.sibling}d=Sg(f,a.mode,h);d.return=a;a=d}return g(a);case Ha:return l=f._init,J(a,d,l(f._payload),h)}if(eb(f))return n(a,d,f,h);if(Ka(f))return t(a,d,f,h);Mg(a,f)}return\"string\"===typeof f&&\"\"!==f||\"number\"===typeof f?(f=\"\"+f,null!==d&&6===d.tag?(c(a,d.sibling),d=e(d,f),d.return=a,a=d):\n(c(a,d),d=Qg(f,a.mode,h),d.return=a,a=d),g(a)):c(a,d)}return J}var Ug=Og(!0),Vg=Og(!1),Wg=Uf(null),Xg=null,Yg=null,Zg=null;function $g(){Zg=Yg=Xg=null}function ah(a){var b=Wg.current;E(Wg);a._currentValue=b}function bh(a,b,c){for(;null!==a;){var d=a.alternate;(a.childLanes&b)!==b?(a.childLanes|=b,null!==d&&(d.childLanes|=b)):null!==d&&(d.childLanes&b)!==b&&(d.childLanes|=b);if(a===c)break;a=a.return}}\nfunction ch(a,b){Xg=a;Zg=Yg=null;a=a.dependencies;null!==a&&null!==a.firstContext&&(0!==(a.lanes&b)&&(dh=!0),a.firstContext=null)}function eh(a){var b=a._currentValue;if(Zg!==a)if(a={context:a,memoizedValue:b,next:null},null===Yg){if(null===Xg)throw Error(p(308));Yg=a;Xg.dependencies={lanes:0,firstContext:a}}else Yg=Yg.next=a;return b}var fh=null;function gh(a){null===fh?fh=[a]:fh.push(a)}\nfunction hh(a,b,c,d){var e=b.interleaved;null===e?(c.next=c,gh(b)):(c.next=e.next,e.next=c);b.interleaved=c;return ih(a,d)}function ih(a,b){a.lanes|=b;var c=a.alternate;null!==c&&(c.lanes|=b);c=a;for(a=a.return;null!==a;)a.childLanes|=b,c=a.alternate,null!==c&&(c.childLanes|=b),c=a,a=a.return;return 3===c.tag?c.stateNode:null}var jh=!1;function kh(a){a.updateQueue={baseState:a.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,interleaved:null,lanes:0},effects:null}}\nfunction lh(a,b){a=a.updateQueue;b.updateQueue===a&&(b.updateQueue={baseState:a.baseState,firstBaseUpdate:a.firstBaseUpdate,lastBaseUpdate:a.lastBaseUpdate,shared:a.shared,effects:a.effects})}function mh(a,b){return{eventTime:a,lane:b,tag:0,payload:null,callback:null,next:null}}\nfunction nh(a,b,c){var d=a.updateQueue;if(null===d)return null;d=d.shared;if(0!==(K&2)){var e=d.pending;null===e?b.next=b:(b.next=e.next,e.next=b);d.pending=b;return ih(a,c)}e=d.interleaved;null===e?(b.next=b,gh(d)):(b.next=e.next,e.next=b);d.interleaved=b;return ih(a,c)}function oh(a,b,c){b=b.updateQueue;if(null!==b&&(b=b.shared,0!==(c&4194240))){var d=b.lanes;d&=a.pendingLanes;c|=d;b.lanes=c;Cc(a,c)}}\nfunction ph(a,b){var c=a.updateQueue,d=a.alternate;if(null!==d&&(d=d.updateQueue,c===d)){var e=null,f=null;c=c.firstBaseUpdate;if(null!==c){do{var g={eventTime:c.eventTime,lane:c.lane,tag:c.tag,payload:c.payload,callback:c.callback,next:null};null===f?e=f=g:f=f.next=g;c=c.next}while(null!==c);null===f?e=f=b:f=f.next=b}else e=f=b;c={baseState:d.baseState,firstBaseUpdate:e,lastBaseUpdate:f,shared:d.shared,effects:d.effects};a.updateQueue=c;return}a=c.lastBaseUpdate;null===a?c.firstBaseUpdate=b:a.next=\nb;c.lastBaseUpdate=b}\nfunction qh(a,b,c,d){var e=a.updateQueue;jh=!1;var f=e.firstBaseUpdate,g=e.lastBaseUpdate,h=e.shared.pending;if(null!==h){e.shared.pending=null;var k=h,l=k.next;k.next=null;null===g?f=l:g.next=l;g=k;var m=a.alternate;null!==m&&(m=m.updateQueue,h=m.lastBaseUpdate,h!==g&&(null===h?m.firstBaseUpdate=l:h.next=l,m.lastBaseUpdate=k))}if(null!==f){var q=e.baseState;g=0;m=l=k=null;h=f;do{var r=h.lane,y=h.eventTime;if((d&r)===r){null!==m&&(m=m.next={eventTime:y,lane:0,tag:h.tag,payload:h.payload,callback:h.callback,\nnext:null});a:{var n=a,t=h;r=b;y=c;switch(t.tag){case 1:n=t.payload;if(\"function\"===typeof n){q=n.call(y,q,r);break a}q=n;break a;case 3:n.flags=n.flags&-65537|128;case 0:n=t.payload;r=\"function\"===typeof n?n.call(y,q,r):n;if(null===r||void 0===r)break a;q=A({},q,r);break a;case 2:jh=!0}}null!==h.callback&&0!==h.lane&&(a.flags|=64,r=e.effects,null===r?e.effects=[h]:r.push(h))}else y={eventTime:y,lane:r,tag:h.tag,payload:h.payload,callback:h.callback,next:null},null===m?(l=m=y,k=q):m=m.next=y,g|=r;\nh=h.next;if(null===h)if(h=e.shared.pending,null===h)break;else r=h,h=r.next,r.next=null,e.lastBaseUpdate=r,e.shared.pending=null}while(1);null===m&&(k=q);e.baseState=k;e.firstBaseUpdate=l;e.lastBaseUpdate=m;b=e.shared.interleaved;if(null!==b){e=b;do g|=e.lane,e=e.next;while(e!==b)}else null===f&&(e.shared.lanes=0);rh|=g;a.lanes=g;a.memoizedState=q}}\nfunction sh(a,b,c){a=b.effects;b.effects=null;if(null!==a)for(b=0;bc?c:4;a(!0);var d=Gh.transition;Gh.transition={};try{a(!1),b()}finally{C=c,Gh.transition=d}}function wi(){return Uh().memoizedState}\nfunction xi(a,b,c){var d=yi(a);c={lane:d,action:c,hasEagerState:!1,eagerState:null,next:null};if(zi(a))Ai(b,c);else if(c=hh(a,b,c,d),null!==c){var e=R();gi(c,a,d,e);Bi(c,b,d)}}\nfunction ii(a,b,c){var d=yi(a),e={lane:d,action:c,hasEagerState:!1,eagerState:null,next:null};if(zi(a))Ai(b,e);else{var f=a.alternate;if(0===a.lanes&&(null===f||0===f.lanes)&&(f=b.lastRenderedReducer,null!==f))try{var g=b.lastRenderedState,h=f(g,c);e.hasEagerState=!0;e.eagerState=h;if(He(h,g)){var k=b.interleaved;null===k?(e.next=e,gh(b)):(e.next=k.next,k.next=e);b.interleaved=e;return}}catch(l){}finally{}c=hh(a,b,e,d);null!==c&&(e=R(),gi(c,a,d,e),Bi(c,b,d))}}\nfunction zi(a){var b=a.alternate;return a===M||null!==b&&b===M}function Ai(a,b){Jh=Ih=!0;var c=a.pending;null===c?b.next=b:(b.next=c.next,c.next=b);a.pending=b}function Bi(a,b,c){if(0!==(c&4194240)){var d=b.lanes;d&=a.pendingLanes;c|=d;b.lanes=c;Cc(a,c)}}\nvar Rh={readContext:eh,useCallback:P,useContext:P,useEffect:P,useImperativeHandle:P,useInsertionEffect:P,useLayoutEffect:P,useMemo:P,useReducer:P,useRef:P,useState:P,useDebugValue:P,useDeferredValue:P,useTransition:P,useMutableSource:P,useSyncExternalStore:P,useId:P,unstable_isNewReconciler:!1},Oh={readContext:eh,useCallback:function(a,b){Th().memoizedState=[a,void 0===b?null:b];return a},useContext:eh,useEffect:mi,useImperativeHandle:function(a,b,c){c=null!==c&&void 0!==c?c.concat([a]):null;return ki(4194308,\n4,pi.bind(null,b,a),c)},useLayoutEffect:function(a,b){return ki(4194308,4,a,b)},useInsertionEffect:function(a,b){return ki(4,2,a,b)},useMemo:function(a,b){var c=Th();b=void 0===b?null:b;a=a();c.memoizedState=[a,b];return a},useReducer:function(a,b,c){var d=Th();b=void 0!==c?c(b):b;d.memoizedState=d.baseState=b;a={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:a,lastRenderedState:b};d.queue=a;a=a.dispatch=xi.bind(null,M,a);return[d.memoizedState,a]},useRef:function(a){var b=\nTh();a={current:a};return b.memoizedState=a},useState:hi,useDebugValue:ri,useDeferredValue:function(a){return Th().memoizedState=a},useTransition:function(){var a=hi(!1),b=a[0];a=vi.bind(null,a[1]);Th().memoizedState=a;return[b,a]},useMutableSource:function(){},useSyncExternalStore:function(a,b,c){var d=M,e=Th();if(I){if(void 0===c)throw Error(p(407));c=c()}else{c=b();if(null===Q)throw Error(p(349));0!==(Hh&30)||di(d,b,c)}e.memoizedState=c;var f={value:c,getSnapshot:b};e.queue=f;mi(ai.bind(null,d,\nf,a),[a]);d.flags|=2048;bi(9,ci.bind(null,d,f,c,b),void 0,null);return c},useId:function(){var a=Th(),b=Q.identifierPrefix;if(I){var c=sg;var d=rg;c=(d&~(1<<32-oc(d)-1)).toString(32)+c;b=\":\"+b+\"R\"+c;c=Kh++;0\\x3c/script>\",a=a.removeChild(a.firstChild)):\n\"string\"===typeof d.is?a=g.createElement(c,{is:d.is}):(a=g.createElement(c),\"select\"===c&&(g=a,d.multiple?g.multiple=!0:d.size&&(g.size=d.size))):a=g.createElementNS(a,c);a[Of]=b;a[Pf]=d;zj(a,b,!1,!1);b.stateNode=a;a:{g=vb(c,d);switch(c){case \"dialog\":D(\"cancel\",a);D(\"close\",a);e=d;break;case \"iframe\":case \"object\":case \"embed\":D(\"load\",a);e=d;break;case \"video\":case \"audio\":for(e=0;eGj&&(b.flags|=128,d=!0,Dj(f,!1),b.lanes=4194304)}else{if(!d)if(a=Ch(g),null!==a){if(b.flags|=128,d=!0,c=a.updateQueue,null!==c&&(b.updateQueue=c,b.flags|=4),Dj(f,!0),null===f.tail&&\"hidden\"===f.tailMode&&!g.alternate&&!I)return S(b),null}else 2*B()-f.renderingStartTime>Gj&&1073741824!==c&&(b.flags|=128,d=!0,Dj(f,!1),b.lanes=4194304);f.isBackwards?(g.sibling=b.child,b.child=g):(c=f.last,null!==c?c.sibling=g:b.child=g,f.last=g)}if(null!==f.tail)return b=f.tail,f.rendering=\nb,f.tail=b.sibling,f.renderingStartTime=B(),b.sibling=null,c=L.current,G(L,d?c&1|2:c&1),b;S(b);return null;case 22:case 23:return Hj(),d=null!==b.memoizedState,null!==a&&null!==a.memoizedState!==d&&(b.flags|=8192),d&&0!==(b.mode&1)?0!==(fj&1073741824)&&(S(b),b.subtreeFlags&6&&(b.flags|=8192)):S(b),null;case 24:return null;case 25:return null}throw Error(p(156,b.tag));}\nfunction Ij(a,b){wg(b);switch(b.tag){case 1:return Zf(b.type)&&$f(),a=b.flags,a&65536?(b.flags=a&-65537|128,b):null;case 3:return zh(),E(Wf),E(H),Eh(),a=b.flags,0!==(a&65536)&&0===(a&128)?(b.flags=a&-65537|128,b):null;case 5:return Bh(b),null;case 13:E(L);a=b.memoizedState;if(null!==a&&null!==a.dehydrated){if(null===b.alternate)throw Error(p(340));Ig()}a=b.flags;return a&65536?(b.flags=a&-65537|128,b):null;case 19:return E(L),null;case 4:return zh(),null;case 10:return ah(b.type._context),null;case 22:case 23:return Hj(),\nnull;case 24:return null;default:return null}}var Jj=!1,U=!1,Kj=\"function\"===typeof WeakSet?WeakSet:Set,V=null;function Lj(a,b){var c=a.ref;if(null!==c)if(\"function\"===typeof c)try{c(null)}catch(d){W(a,b,d)}else c.current=null}function Mj(a,b,c){try{c()}catch(d){W(a,b,d)}}var Nj=!1;\nfunction Oj(a,b){Cf=dd;a=Me();if(Ne(a)){if(\"selectionStart\"in a)var c={start:a.selectionStart,end:a.selectionEnd};else a:{c=(c=a.ownerDocument)&&c.defaultView||window;var d=c.getSelection&&c.getSelection();if(d&&0!==d.rangeCount){c=d.anchorNode;var e=d.anchorOffset,f=d.focusNode;d=d.focusOffset;try{c.nodeType,f.nodeType}catch(F){c=null;break a}var g=0,h=-1,k=-1,l=0,m=0,q=a,r=null;b:for(;;){for(var y;;){q!==c||0!==e&&3!==q.nodeType||(h=g+e);q!==f||0!==d&&3!==q.nodeType||(k=g+d);3===q.nodeType&&(g+=\nq.nodeValue.length);if(null===(y=q.firstChild))break;r=q;q=y}for(;;){if(q===a)break b;r===c&&++l===e&&(h=g);r===f&&++m===d&&(k=g);if(null!==(y=q.nextSibling))break;q=r;r=q.parentNode}q=y}c=-1===h||-1===k?null:{start:h,end:k}}else c=null}c=c||{start:0,end:0}}else c=null;Df={focusedElem:a,selectionRange:c};dd=!1;for(V=b;null!==V;)if(b=V,a=b.child,0!==(b.subtreeFlags&1028)&&null!==a)a.return=b,V=a;else for(;null!==V;){b=V;try{var n=b.alternate;if(0!==(b.flags&1024))switch(b.tag){case 0:case 11:case 15:break;\ncase 1:if(null!==n){var t=n.memoizedProps,J=n.memoizedState,x=b.stateNode,w=x.getSnapshotBeforeUpdate(b.elementType===b.type?t:Ci(b.type,t),J);x.__reactInternalSnapshotBeforeUpdate=w}break;case 3:var u=b.stateNode.containerInfo;1===u.nodeType?u.textContent=\"\":9===u.nodeType&&u.documentElement&&u.removeChild(u.documentElement);break;case 5:case 6:case 4:case 17:break;default:throw Error(p(163));}}catch(F){W(b,b.return,F)}a=b.sibling;if(null!==a){a.return=b.return;V=a;break}V=b.return}n=Nj;Nj=!1;return n}\nfunction Pj(a,b,c){var d=b.updateQueue;d=null!==d?d.lastEffect:null;if(null!==d){var e=d=d.next;do{if((e.tag&a)===a){var f=e.destroy;e.destroy=void 0;void 0!==f&&Mj(b,c,f)}e=e.next}while(e!==d)}}function Qj(a,b){b=b.updateQueue;b=null!==b?b.lastEffect:null;if(null!==b){var c=b=b.next;do{if((c.tag&a)===a){var d=c.create;c.destroy=d()}c=c.next}while(c!==b)}}function Rj(a){var b=a.ref;if(null!==b){var c=a.stateNode;switch(a.tag){case 5:a=c;break;default:a=c}\"function\"===typeof b?b(a):b.current=a}}\nfunction Sj(a){var b=a.alternate;null!==b&&(a.alternate=null,Sj(b));a.child=null;a.deletions=null;a.sibling=null;5===a.tag&&(b=a.stateNode,null!==b&&(delete b[Of],delete b[Pf],delete b[of],delete b[Qf],delete b[Rf]));a.stateNode=null;a.return=null;a.dependencies=null;a.memoizedProps=null;a.memoizedState=null;a.pendingProps=null;a.stateNode=null;a.updateQueue=null}function Tj(a){return 5===a.tag||3===a.tag||4===a.tag}\nfunction Uj(a){a:for(;;){for(;null===a.sibling;){if(null===a.return||Tj(a.return))return null;a=a.return}a.sibling.return=a.return;for(a=a.sibling;5!==a.tag&&6!==a.tag&&18!==a.tag;){if(a.flags&2)continue a;if(null===a.child||4===a.tag)continue a;else a.child.return=a,a=a.child}if(!(a.flags&2))return a.stateNode}}\nfunction Vj(a,b,c){var d=a.tag;if(5===d||6===d)a=a.stateNode,b?8===c.nodeType?c.parentNode.insertBefore(a,b):c.insertBefore(a,b):(8===c.nodeType?(b=c.parentNode,b.insertBefore(a,c)):(b=c,b.appendChild(a)),c=c._reactRootContainer,null!==c&&void 0!==c||null!==b.onclick||(b.onclick=Bf));else if(4!==d&&(a=a.child,null!==a))for(Vj(a,b,c),a=a.sibling;null!==a;)Vj(a,b,c),a=a.sibling}\nfunction Wj(a,b,c){var d=a.tag;if(5===d||6===d)a=a.stateNode,b?c.insertBefore(a,b):c.appendChild(a);else if(4!==d&&(a=a.child,null!==a))for(Wj(a,b,c),a=a.sibling;null!==a;)Wj(a,b,c),a=a.sibling}var X=null,Xj=!1;function Yj(a,b,c){for(c=c.child;null!==c;)Zj(a,b,c),c=c.sibling}\nfunction Zj(a,b,c){if(lc&&\"function\"===typeof lc.onCommitFiberUnmount)try{lc.onCommitFiberUnmount(kc,c)}catch(h){}switch(c.tag){case 5:U||Lj(c,b);case 6:var d=X,e=Xj;X=null;Yj(a,b,c);X=d;Xj=e;null!==X&&(Xj?(a=X,c=c.stateNode,8===a.nodeType?a.parentNode.removeChild(c):a.removeChild(c)):X.removeChild(c.stateNode));break;case 18:null!==X&&(Xj?(a=X,c=c.stateNode,8===a.nodeType?Kf(a.parentNode,c):1===a.nodeType&&Kf(a,c),bd(a)):Kf(X,c.stateNode));break;case 4:d=X;e=Xj;X=c.stateNode.containerInfo;Xj=!0;\nYj(a,b,c);X=d;Xj=e;break;case 0:case 11:case 14:case 15:if(!U&&(d=c.updateQueue,null!==d&&(d=d.lastEffect,null!==d))){e=d=d.next;do{var f=e,g=f.destroy;f=f.tag;void 0!==g&&(0!==(f&2)?Mj(c,b,g):0!==(f&4)&&Mj(c,b,g));e=e.next}while(e!==d)}Yj(a,b,c);break;case 1:if(!U&&(Lj(c,b),d=c.stateNode,\"function\"===typeof d.componentWillUnmount))try{d.props=c.memoizedProps,d.state=c.memoizedState,d.componentWillUnmount()}catch(h){W(c,b,h)}Yj(a,b,c);break;case 21:Yj(a,b,c);break;case 22:c.mode&1?(U=(d=U)||null!==\nc.memoizedState,Yj(a,b,c),U=d):Yj(a,b,c);break;default:Yj(a,b,c)}}function ak(a){var b=a.updateQueue;if(null!==b){a.updateQueue=null;var c=a.stateNode;null===c&&(c=a.stateNode=new Kj);b.forEach(function(b){var d=bk.bind(null,a,b);c.has(b)||(c.add(b),b.then(d,d))})}}\nfunction ck(a,b){var c=b.deletions;if(null!==c)for(var d=0;de&&(e=g);d&=~f}d=e;d=B()-d;d=(120>d?120:480>d?480:1080>d?1080:1920>d?1920:3E3>d?3E3:4320>d?4320:1960*lk(d/1960))-d;if(10a?16:a;if(null===wk)var d=!1;else{a=wk;wk=null;xk=0;if(0!==(K&6))throw Error(p(331));var e=K;K|=4;for(V=a.current;null!==V;){var f=V,g=f.child;if(0!==(V.flags&16)){var h=f.deletions;if(null!==h){for(var k=0;kB()-fk?Kk(a,0):rk|=c);Dk(a,b)}function Yk(a,b){0===b&&(0===(a.mode&1)?b=1:(b=sc,sc<<=1,0===(sc&130023424)&&(sc=4194304)));var c=R();a=ih(a,b);null!==a&&(Ac(a,b,c),Dk(a,c))}function uj(a){var b=a.memoizedState,c=0;null!==b&&(c=b.retryLane);Yk(a,c)}\nfunction bk(a,b){var c=0;switch(a.tag){case 13:var d=a.stateNode;var e=a.memoizedState;null!==e&&(c=e.retryLane);break;case 19:d=a.stateNode;break;default:throw Error(p(314));}null!==d&&d.delete(b);Yk(a,c)}var Vk;\nVk=function(a,b,c){if(null!==a)if(a.memoizedProps!==b.pendingProps||Wf.current)dh=!0;else{if(0===(a.lanes&c)&&0===(b.flags&128))return dh=!1,yj(a,b,c);dh=0!==(a.flags&131072)?!0:!1}else dh=!1,I&&0!==(b.flags&1048576)&&ug(b,ng,b.index);b.lanes=0;switch(b.tag){case 2:var d=b.type;ij(a,b);a=b.pendingProps;var e=Yf(b,H.current);ch(b,c);e=Nh(null,b,d,a,e,c);var f=Sh();b.flags|=1;\"object\"===typeof e&&null!==e&&\"function\"===typeof e.render&&void 0===e.$$typeof?(b.tag=1,b.memoizedState=null,b.updateQueue=\nnull,Zf(d)?(f=!0,cg(b)):f=!1,b.memoizedState=null!==e.state&&void 0!==e.state?e.state:null,kh(b),e.updater=Ei,b.stateNode=e,e._reactInternals=b,Ii(b,d,a,c),b=jj(null,b,d,!0,f,c)):(b.tag=0,I&&f&&vg(b),Xi(null,b,e,c),b=b.child);return b;case 16:d=b.elementType;a:{ij(a,b);a=b.pendingProps;e=d._init;d=e(d._payload);b.type=d;e=b.tag=Zk(d);a=Ci(d,a);switch(e){case 0:b=cj(null,b,d,a,c);break a;case 1:b=hj(null,b,d,a,c);break a;case 11:b=Yi(null,b,d,a,c);break a;case 14:b=$i(null,b,d,Ci(d.type,a),c);break a}throw Error(p(306,\nd,\"\"));}return b;case 0:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Ci(d,e),cj(a,b,d,e,c);case 1:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Ci(d,e),hj(a,b,d,e,c);case 3:a:{kj(b);if(null===a)throw Error(p(387));d=b.pendingProps;f=b.memoizedState;e=f.element;lh(a,b);qh(b,d,null,c);var g=b.memoizedState;d=g.element;if(f.isDehydrated)if(f={element:d,isDehydrated:!1,cache:g.cache,pendingSuspenseBoundaries:g.pendingSuspenseBoundaries,transitions:g.transitions},b.updateQueue.baseState=\nf,b.memoizedState=f,b.flags&256){e=Ji(Error(p(423)),b);b=lj(a,b,d,c,e);break a}else if(d!==e){e=Ji(Error(p(424)),b);b=lj(a,b,d,c,e);break a}else for(yg=Lf(b.stateNode.containerInfo.firstChild),xg=b,I=!0,zg=null,c=Vg(b,null,d,c),b.child=c;c;)c.flags=c.flags&-3|4096,c=c.sibling;else{Ig();if(d===e){b=Zi(a,b,c);break a}Xi(a,b,d,c)}b=b.child}return b;case 5:return Ah(b),null===a&&Eg(b),d=b.type,e=b.pendingProps,f=null!==a?a.memoizedProps:null,g=e.children,Ef(d,e)?g=null:null!==f&&Ef(d,f)&&(b.flags|=32),\ngj(a,b),Xi(a,b,g,c),b.child;case 6:return null===a&&Eg(b),null;case 13:return oj(a,b,c);case 4:return yh(b,b.stateNode.containerInfo),d=b.pendingProps,null===a?b.child=Ug(b,null,d,c):Xi(a,b,d,c),b.child;case 11:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Ci(d,e),Yi(a,b,d,e,c);case 7:return Xi(a,b,b.pendingProps,c),b.child;case 8:return Xi(a,b,b.pendingProps.children,c),b.child;case 12:return Xi(a,b,b.pendingProps.children,c),b.child;case 10:a:{d=b.type._context;e=b.pendingProps;f=b.memoizedProps;\ng=e.value;G(Wg,d._currentValue);d._currentValue=g;if(null!==f)if(He(f.value,g)){if(f.children===e.children&&!Wf.current){b=Zi(a,b,c);break a}}else for(f=b.child,null!==f&&(f.return=b);null!==f;){var h=f.dependencies;if(null!==h){g=f.child;for(var k=h.firstContext;null!==k;){if(k.context===d){if(1===f.tag){k=mh(-1,c&-c);k.tag=2;var l=f.updateQueue;if(null!==l){l=l.shared;var m=l.pending;null===m?k.next=k:(k.next=m.next,m.next=k);l.pending=k}}f.lanes|=c;k=f.alternate;null!==k&&(k.lanes|=c);bh(f.return,\nc,b);h.lanes|=c;break}k=k.next}}else if(10===f.tag)g=f.type===b.type?null:f.child;else if(18===f.tag){g=f.return;if(null===g)throw Error(p(341));g.lanes|=c;h=g.alternate;null!==h&&(h.lanes|=c);bh(g,c,b);g=f.sibling}else g=f.child;if(null!==g)g.return=f;else for(g=f;null!==g;){if(g===b){g=null;break}f=g.sibling;if(null!==f){f.return=g.return;g=f;break}g=g.return}f=g}Xi(a,b,e.children,c);b=b.child}return b;case 9:return e=b.type,d=b.pendingProps.children,ch(b,c),e=eh(e),d=d(e),b.flags|=1,Xi(a,b,d,c),\nb.child;case 14:return d=b.type,e=Ci(d,b.pendingProps),e=Ci(d.type,e),$i(a,b,d,e,c);case 15:return bj(a,b,b.type,b.pendingProps,c);case 17:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Ci(d,e),ij(a,b),b.tag=1,Zf(d)?(a=!0,cg(b)):a=!1,ch(b,c),Gi(b,d,e),Ii(b,d,e,c),jj(null,b,d,!0,a,c);case 19:return xj(a,b,c);case 22:return dj(a,b,c)}throw Error(p(156,b.tag));};function Fk(a,b){return ac(a,b)}\nfunction $k(a,b,c,d){this.tag=a;this.key=c;this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null;this.index=0;this.ref=null;this.pendingProps=b;this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null;this.mode=d;this.subtreeFlags=this.flags=0;this.deletions=null;this.childLanes=this.lanes=0;this.alternate=null}function Bg(a,b,c,d){return new $k(a,b,c,d)}function aj(a){a=a.prototype;return!(!a||!a.isReactComponent)}\nfunction Zk(a){if(\"function\"===typeof a)return aj(a)?1:0;if(void 0!==a&&null!==a){a=a.$$typeof;if(a===Da)return 11;if(a===Ga)return 14}return 2}\nfunction Pg(a,b){var c=a.alternate;null===c?(c=Bg(a.tag,b,a.key,a.mode),c.elementType=a.elementType,c.type=a.type,c.stateNode=a.stateNode,c.alternate=a,a.alternate=c):(c.pendingProps=b,c.type=a.type,c.flags=0,c.subtreeFlags=0,c.deletions=null);c.flags=a.flags&14680064;c.childLanes=a.childLanes;c.lanes=a.lanes;c.child=a.child;c.memoizedProps=a.memoizedProps;c.memoizedState=a.memoizedState;c.updateQueue=a.updateQueue;b=a.dependencies;c.dependencies=null===b?null:{lanes:b.lanes,firstContext:b.firstContext};\nc.sibling=a.sibling;c.index=a.index;c.ref=a.ref;return c}\nfunction Rg(a,b,c,d,e,f){var g=2;d=a;if(\"function\"===typeof a)aj(a)&&(g=1);else if(\"string\"===typeof a)g=5;else a:switch(a){case ya:return Tg(c.children,e,f,b);case za:g=8;e|=8;break;case Aa:return a=Bg(12,c,b,e|2),a.elementType=Aa,a.lanes=f,a;case Ea:return a=Bg(13,c,b,e),a.elementType=Ea,a.lanes=f,a;case Fa:return a=Bg(19,c,b,e),a.elementType=Fa,a.lanes=f,a;case Ia:return pj(c,e,f,b);default:if(\"object\"===typeof a&&null!==a)switch(a.$$typeof){case Ba:g=10;break a;case Ca:g=9;break a;case Da:g=11;\nbreak a;case Ga:g=14;break a;case Ha:g=16;d=null;break a}throw Error(p(130,null==a?a:typeof a,\"\"));}b=Bg(g,c,b,e);b.elementType=a;b.type=d;b.lanes=f;return b}function Tg(a,b,c,d){a=Bg(7,a,d,b);a.lanes=c;return a}function pj(a,b,c,d){a=Bg(22,a,d,b);a.elementType=Ia;a.lanes=c;a.stateNode={isHidden:!1};return a}function Qg(a,b,c){a=Bg(6,a,null,b);a.lanes=c;return a}\nfunction Sg(a,b,c){b=Bg(4,null!==a.children?a.children:[],a.key,b);b.lanes=c;b.stateNode={containerInfo:a.containerInfo,pendingChildren:null,implementation:a.implementation};return b}\nfunction al(a,b,c,d,e){this.tag=b;this.containerInfo=a;this.finishedWork=this.pingCache=this.current=this.pendingChildren=null;this.timeoutHandle=-1;this.callbackNode=this.pendingContext=this.context=null;this.callbackPriority=0;this.eventTimes=zc(0);this.expirationTimes=zc(-1);this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0;this.entanglements=zc(0);this.identifierPrefix=d;this.onRecoverableError=e;this.mutableSourceEagerHydrationData=\nnull}function bl(a,b,c,d,e,f,g,h,k){a=new al(a,b,c,h,k);1===b?(b=1,!0===f&&(b|=8)):b=0;f=Bg(3,null,null,b);a.current=f;f.stateNode=a;f.memoizedState={element:d,isDehydrated:c,cache:null,transitions:null,pendingSuspenseBoundaries:null};kh(f);return a}function cl(a,b,c){var d=3 0 && arguments[0] !== undefined ? arguments[0] : function () {};\n var e = arguments[1];\n\n this.updateElementPosition();\n\n this.setState(Object.assign({}, this.state, {\n style: _extends({}, this.state.style, {\n willChange: \"transform\"\n })\n }));\n\n this.setTransition();\n\n return cb(e);\n }\n }, {\n key: 'reset',\n value: function reset() {\n var _this2 = this;\n\n window.requestAnimationFrame(function () {\n _this2.setState(Object.assign({}, _this2.state, {\n style: _extends({}, _this2.state.style, {\n transform: \"perspective(\" + _this2.settings.perspective + \"px) \" + \"rotateX(0deg) \" + \"rotateY(0deg) \" + \"scale3d(1, 1, 1)\" })\n }));\n });\n }\n }, {\n key: 'onMouseMove',\n value: function onMouseMove() {\n var cb = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : function () {};\n var e = arguments[1];\n\n e.persist();\n\n if (this.updateCall !== null) {\n window.cancelAnimationFrame(this.updateCall);\n }\n\n this.event = e;\n this.updateCall = requestAnimationFrame(this.update.bind(this, e));\n\n return cb(e);\n }\n }, {\n key: 'setTransition',\n value: function setTransition() {\n var _this3 = this;\n\n clearTimeout(this.transitionTimeout);\n\n this.setState(Object.assign({}, this.state, {\n style: _extends({}, this.state.style, {\n transition: this.settings.speed + \"ms \" + this.settings.easing\n })\n }));\n\n this.transitionTimeout = setTimeout(function () {\n _this3.setState(Object.assign({}, _this3.state, {\n style: _extends({}, _this3.state.style, {\n transition: ''\n })\n }));\n }, this.settings.speed);\n }\n }, {\n key: 'onMouseLeave',\n value: function onMouseLeave() {\n var cb = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : function () {};\n var e = arguments[1];\n\n this.setTransition();\n\n if (this.settings.reset) {\n this.reset();\n }\n return cb(e);\n }\n }, {\n key: 'getValues',\n value: function getValues(e) {\n var x = (e.nativeEvent.clientX - this.left) / this.width;\n var y = (e.nativeEvent.clientY - this.top) / this.height;\n var _x = Math.min(Math.max(x, 0), 1);\n var _y = Math.min(Math.max(y, 0), 1);\n\n var tiltX = (this.reverse * (this.settings.max / 2 - _x * this.settings.max)).toFixed(2);\n var tiltY = (this.reverse * (_y * this.settings.max - this.settings.max / 2)).toFixed(2);\n\n var percentageX = _x * 100;\n var percentageY = _y * 100;\n\n return {\n tiltX: tiltX,\n tiltY: tiltY,\n percentageX: percentageX,\n percentageY: percentageY\n };\n }\n }, {\n key: 'updateElementPosition',\n value: function updateElementPosition() {\n var rect = this.element.getBoundingClientRect();\n this.width = this.element.offsetWidth;\n this.height = this.element.offsetHeight;\n this.left = rect.left;\n this.top = rect.top;\n }\n }, {\n key: 'update',\n value: function update(e) {\n var values = this.getValues(e);\n\n this.setState(Object.assign({}, this.state, {\n style: _extends({}, this.state.style, {\n transform: \"perspective(\" + this.settings.perspective + \"px) \" + \"rotateX(\" + (this.settings.axis === \"x\" ? 0 : values.tiltY) + \"deg) \" + \"rotateY(\" + (this.settings.axis === \"y\" ? 0 : values.tiltX) + \"deg) \" + \"scale3d(\" + this.settings.scale + \", \" + this.settings.scale + \", \" + this.settings.scale + \")\"\n })\n }));\n\n this.updateCall = null;\n }\n }, {\n key: 'render',\n value: function render() {\n var style = Object.assign({}, this.props.style, this.state.style);\n return _react2.default.createElement(\n 'div',\n { style: style,\n className: this.props.className,\n onMouseEnter: this.onMouseEnter,\n onMouseMove: this.onMouseMove,\n onMouseLeave: this.onMouseLeave\n },\n this.props.children\n );\n }\n }]);\n\n return Tilt;\n}(_react.Component);\n\nexports.default = Tilt;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nObject.defineProperty(exports, \"default\", {\n enumerable: true,\n get: function get() {\n return _utils.createSvgIcon;\n }\n});\n\nvar _utils = require(\"@material-ui/core/utils\");","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/scheduler.production.min.js');\n} else {\n module.exports = require('./cjs/scheduler.development.js');\n}\n","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar React = _interopRequireWildcard(require(\"react\"));\n\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\n\nvar _default = (0, _createSvgIcon.default)( /*#__PURE__*/React.createElement(\"path\", {\n d: \"M6.62 10.79c1.44 2.83 3.76 5.14 6.59 6.59l2.2-2.2c.27-.27.67-.36 1.02-.24 1.12.37 2.33.57 3.57.57.55 0 1 .45 1 1V20c0 .55-.45 1-1 1-9.39 0-17-7.61-17-17 0-.55.45-1 1-1h3.5c.55 0 1 .45 1 1 0 1.25.2 2.45.57 3.57.11.35.03.74-.25 1.02l-2.2 2.2z\"\n}), 'LocalPhone');\n\nexports.default = _default;","'use strict';\n\nfunction checkDCE() {\n /* global __REACT_DEVTOOLS_GLOBAL_HOOK__ */\n if (\n typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ === 'undefined' ||\n typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE !== 'function'\n ) {\n return;\n }\n if (process.env.NODE_ENV !== 'production') {\n // This branch is unreachable because this function is only called\n // in production, but the condition is true only in development.\n // Therefore if the branch is still here, dead code elimination wasn't\n // properly applied.\n // Don't change the message. React DevTools relies on it. Also make sure\n // this message doesn't occur elsewhere in this function, or it will cause\n // a false positive.\n throw new Error('^_^');\n }\n try {\n // Verify that the code above has been dead code eliminated (DCE'd).\n __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(checkDCE);\n } catch (err) {\n // DevTools shouldn't crash React, no matter what.\n // We should still report in case we break this code.\n console.error(err);\n }\n}\n\nif (process.env.NODE_ENV === 'production') {\n // DCE check should happen before ReactDOM bundle executes so that\n // DevTools can report bad minification during injection.\n checkDCE();\n module.exports = require('./cjs/react-dom.production.min.js');\n} else {\n module.exports = require('./cjs/react-dom.development.js');\n}\n","/** @license React v16.13.1\n * react-is.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';var b=\"function\"===typeof Symbol&&Symbol.for,c=b?Symbol.for(\"react.element\"):60103,d=b?Symbol.for(\"react.portal\"):60106,e=b?Symbol.for(\"react.fragment\"):60107,f=b?Symbol.for(\"react.strict_mode\"):60108,g=b?Symbol.for(\"react.profiler\"):60114,h=b?Symbol.for(\"react.provider\"):60109,k=b?Symbol.for(\"react.context\"):60110,l=b?Symbol.for(\"react.async_mode\"):60111,m=b?Symbol.for(\"react.concurrent_mode\"):60111,n=b?Symbol.for(\"react.forward_ref\"):60112,p=b?Symbol.for(\"react.suspense\"):60113,q=b?\nSymbol.for(\"react.suspense_list\"):60120,r=b?Symbol.for(\"react.memo\"):60115,t=b?Symbol.for(\"react.lazy\"):60116,v=b?Symbol.for(\"react.block\"):60121,w=b?Symbol.for(\"react.fundamental\"):60117,x=b?Symbol.for(\"react.responder\"):60118,y=b?Symbol.for(\"react.scope\"):60119;\nfunction z(a){if(\"object\"===typeof a&&null!==a){var u=a.$$typeof;switch(u){case c:switch(a=a.type,a){case l:case m:case e:case g:case f:case p:return a;default:switch(a=a&&a.$$typeof,a){case k:case n:case t:case r:case h:return a;default:return u}}case d:return u}}}function A(a){return z(a)===m}exports.AsyncMode=l;exports.ConcurrentMode=m;exports.ContextConsumer=k;exports.ContextProvider=h;exports.Element=c;exports.ForwardRef=n;exports.Fragment=e;exports.Lazy=t;exports.Memo=r;exports.Portal=d;\nexports.Profiler=g;exports.StrictMode=f;exports.Suspense=p;exports.isAsyncMode=function(a){return A(a)||z(a)===l};exports.isConcurrentMode=A;exports.isContextConsumer=function(a){return z(a)===k};exports.isContextProvider=function(a){return z(a)===h};exports.isElement=function(a){return\"object\"===typeof a&&null!==a&&a.$$typeof===c};exports.isForwardRef=function(a){return z(a)===n};exports.isFragment=function(a){return z(a)===e};exports.isLazy=function(a){return z(a)===t};\nexports.isMemo=function(a){return z(a)===r};exports.isPortal=function(a){return z(a)===d};exports.isProfiler=function(a){return z(a)===g};exports.isStrictMode=function(a){return z(a)===f};exports.isSuspense=function(a){return z(a)===p};\nexports.isValidElementType=function(a){return\"string\"===typeof a||\"function\"===typeof a||a===e||a===m||a===g||a===f||a===p||a===q||\"object\"===typeof a&&null!==a&&(a.$$typeof===t||a.$$typeof===r||a.$$typeof===h||a.$$typeof===k||a.$$typeof===n||a.$$typeof===w||a.$$typeof===x||a.$$typeof===y||a.$$typeof===v)};exports.typeOf=z;\n","function _interopRequireDefault(e) {\n return e && e.__esModule ? e : {\n \"default\": e\n };\n}\nmodule.exports = _interopRequireDefault, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","__webpack_require__.p = \"/\";","import { useState } from \"react\";\r\nimport { useEffect } from \"react\";\r\nimport { filtersToString } from \"../filtersToString.js\";\r\n\r\nfunction Filter({ handleFilter, projects }) {\r\n\tconsole.log(\"Filters: \", filtersToString());\r\n\tconst [count, setCount] = useState(\r\n\t\tdocument.getElementsByClassName(\"project\").length\r\n\t);\r\n\tfunction toPascalCase(string) {\r\n\t\tlet split = string.split(\" \");\r\n\t\tlet pascalSplit = split.map(\r\n\t\t\t(word) => word[0].toUpperCase() + word.substr(1)\r\n\t\t);\r\n\t\tlet pascalJoin = pascalSplit.join(\" \");\r\n\t\treturn pascalJoin;\r\n\t}\r\n\t// could do this, or regular object, or array of arrays, or localecompare, or the one in the return with entries,sort,map\r\n\tlet filterBtns = new Map();\r\n\tfor (let project of projects) {\r\n\t\tfor (let lang of project.stack) {\r\n\t\t\tif (!filterBtns.has(lang)) {\r\n\t\t\t\tfilterBtns.set(\r\n\t\t\t\t\tlang,\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t{toPascalCase(lang)}\r\n\t\t\t\t\t\r\n\t\t\t\t);\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\tuseEffect(() => {\r\n\t\tsetCount(document.getElementsByClassName(\"project\").length);\r\n\t});\r\n\r\n\treturn (\r\n\t\t
\r\n\t\t\t
    \r\n\t\t\t\t
  • Filter:
  • \r\n\t\t\t\t\r\n\t\t\t\t{/* sorting [['a',],['b',]] seems to be just comparing the first elements, a to b */}\r\n\t\t\t\t{[...filterBtns.entries()].sort().map((lang) => lang[1])}\r\n\t\t\t
\r\n\t\t
\r\n\t);\r\n}\r\n\r\nexport default Filter;\r\n","function filtersToString() {\n const filterButtons = document.getElementsByClassName(\"unselected\");\n const texts = Array.from(filterButtons).map((filter) => filter.innerText);\n const string = texts.join(\", \");\n return string;\n}\n\nexport { filtersToString };\n","function parallax() {\n\t// Add event listener\n\tdocument.addEventListener(\"mousemove\", parallax);\n\tconst elem = document.querySelector(\"#parallax\");\n\t// Magic happens here\n\tfunction parallax(e) {\n\t\tlet _w = window.innerWidth / 2;\n\t\tlet _h = window.innerHeight / 2;\n\t\tlet _mouseX = e.clientX;\n\t\tlet _mouseY = e.clientY;\n\t\t// console.log(elem.style.backgroundPosition);\n\t\tlet _depth1 = `${40 - (_mouseX - _w) * 0.01}% ${\n\t\t\t100 - (_mouseY - _h) * 0.01\n\t\t}%`;\n\t\tlet _depth2 = `${60 - (_mouseX - _w) * 0.03}% ${\n\t\t\t100 - (_mouseY - _h) * 0.02\n\t\t}%`;\n\t\tlet _depth3 = `${30 - (_mouseX - _w) * 0.05}% ${\n\t\t\t120 - (_mouseY - _h) * 0.06\n\t\t}%`;\n\t\tlet _depth4 = `${70 - (_mouseX - _w) * 0.08}% ${\n\t\t\t120 - (_mouseY - _h) * 0.06\n\t\t}%`;\n\n\t\tlet x = `${_depth3}, ${_depth2}, ${_depth1}, ${_depth4}`;\n\t\t// console.log(x);\n\t\telem.style.backgroundPosition = x;\n\t}\n}\n\nexport default parallax;\n","import Tilt from \"react-tilt\";\r\n\r\nfunction Project({ filters, data }) {\r\n\tconst { image, alt, description, stack, URL, title, githubLinks } = data;\r\n\tlet isIncluded = false;\r\n\r\n\t// if all the languages in the filter are in the languages that the project uses, the project is included\r\n\tisIncluded = filters.every((filter) => {\r\n\t\treturn stack.includes(filter);\r\n\t});\r\n\t// stack.forEach((lang) => {\r\n\t// \tif (filters.includes(lang)) {\r\n\t// \t\tisIncluded = true;\r\n\t// \t}\r\n\t// });\r\n\r\n\treturn (\r\n\t\tisIncluded && (\r\n\t\t\t
\r\n\t\t\t\t{/* Tilting makes it seem like it's clickable, so if there's no URL to go to, it shouldn't tilt */}\r\n\t\t\t\t\r\n\t\t\t\t\t{/*if url is null, dont go anywhere. if there is a url, go to url*/}\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t{alt}\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\r\n\t\t\t\t

\r\n\t\t\t\t\t{title}\r\n\t\t\t\t\t{githubLinks.map((link) => {\r\n\t\t\t\t\t\treturn (\r\n\t\t\t\t\t\t\tlink && (\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t)\r\n\t\t\t\t\t\t);\r\n\t\t\t\t\t})}\r\n\t\t\t\t

\r\n\t\t\t\t

{description}

\r\n\t\t\t\t

\r\n\t\t\t\t\t{/* URL link. if null, dont show*/}\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t{URL &&\r\n\t\t\t\t\t\t\tURL.replace(\"http://\", \"\")\r\n\t\t\t\t\t\t\t\t.replace(\"https://\", \"\")\r\n\t\t\t\t\t\t\t\t.slice(0, 34)}\r\n\t\t\t\t\t\t{URL && URL.length > 34 && \"...\"}\r\n\t\t\t\t\t\r\n\t\t\t\t

\r\n\t\t\t
\r\n\t\t)\r\n\t);\r\n}\r\n\r\nexport default Project;\r\n","const projects = [\r\n\t{\r\n\t\ttitle: `AI Chatbot v2`,\r\n\t\tdescription: `A voice chatbot that can interview the user, or retrieve an order. Stack: NextJs, React, AWS Amplify, FastAPI, Elastic Beanstalk, OpenAI API, Livekit`,\r\n\t\tURL: \"https://demo2.aiatyourservice.com/\",\r\n\t\tstack: [\r\n\t\t\t\"amazon web services\",\r\n\t\t\t\"aws amplify\",\r\n\t\t\t\"artificial intelligence\",\r\n\t\t\t\"aws certificate manager\",\r\n\t\t\t\"aws elastic beanstalk\",\r\n\t\t\t\"aws route 53\",\r\n\t\t\t\"chatbot\",\r\n\t\t\t\"ci/cd\",\r\n\t\t\t\"extract transform load\",\r\n\t\t\t\"fastapi\",\r\n\t\t\t\"git\",\r\n\t\t\t\"heroku\",\r\n\t\t\t\"javascript\",\r\n\t\t\t\"llm\",\r\n\t\t\t\"livekit\",\r\n\t\t\t\"lucid chart\",\r\n\t\t\t\"machine learning\",\r\n\t\t\t\"nextjs\",\r\n\t\t\t\"openai\",\r\n\t\t\t\"pandas\",\r\n\t\t\t\"python\",\r\n\t\t\t\"react\",\r\n\t\t\t\"responsive\",\r\n\t\t\t\"pineconedb\",\r\n\t\t\t\"vector database\",\r\n\t\t\t\"artificial intelligence\",\r\n\t\t\t\"html/css\",\r\n\t\t\t\"typescript\",\r\n\t\t\t\"twilio\",\r\n\t\t\t\"websockets\",\r\n\t\t\t\"webrtc\",\r\n\t\t],\r\n\t\timage: \"./images/livekit.png\",\r\n\t\talt: \"chatbot store assistant\",\r\n\t\tgithubLinks: [\r\n\t\t\t\"https://github.com/andrewcbuensalida/livekit-chatbot-store-fastapi-openai.git\",\r\n\t\t\t\"https://github.com/andrewcbuensalida/agents-playground.git\",\r\n\t\t],\r\n\t},\r\n\t{\r\n\t\ttitle: `Chatbot Store Assistant`,\r\n\t\tdescription: `A voice chatbot that answers the user's questions about products and orders. Stack: React, Pinecone Vector Database, AWS Amplify, FastAPI, Heroku, Pandas, OpenAI API, Websockets, WebRTC, Twilio`,\r\n\t\tURL: \"https://demo.aiatyourservice.com/\",\r\n\t\tstack: [\r\n\t\t\t\"amazon web services\",\r\n\t\t\t\"artificial intelligence\",\r\n\t\t\t\"aws amplify\",\r\n\t\t\t\"chatbot\",\r\n\t\t\t\"ci/cd\",\r\n\t\t\t\"extract transform load\",\r\n\t\t\t\"fastapi\",\r\n\t\t\t\"git\",\r\n\t\t\t\"heroku\",\r\n\t\t\t\"javascript\",\r\n\t\t\t\"llm\",\r\n\t\t\t\"lucid chart\",\r\n\t\t\t\"machine learning\",\r\n\t\t\t\"openai\",\r\n\t\t\t\"pandas\",\r\n\t\t\t\"python\",\r\n\t\t\t\"react\",\r\n\t\t\t\"responsive\",\r\n\t\t\t\"pineconedb\",\r\n\t\t\t\"vector database\",\r\n\t\t\t\"artificial intelligence\",\r\n\t\t\t\"html/css\",\r\n\t\t\t\"typescript\",\r\n\t\t\t\"twilio\",\r\n\t\t\t\"websockets\",\r\n\t\t\t\"webrtc\",\r\n\t\t],\r\n\t\timage: \"./images/chatbot-store.png\",\r\n\t\talt: \"chatbot store assistant\",\r\n\t\tgithubLinks: [\r\n\t\t\t\"https://github.com/andrewcbuensalida/chatbot-store-openai-pandas.git\",\r\n\t\t\t\"https://github.com/andrewcbuensalida/chatbot-store-orders-products-python-pandas-fastapi.git\",\r\n\t\t\t\"https://github.com/andrewcbuensalida/react-chatbot-store.git\",\r\n\t\t],\r\n\t},\r\n\t{\r\n\t\ttitle: `Task Planner`,\r\n\t\tdescription: `A simple task planner that uses AI to generate a schedule based on your tasks. Stack: Cursor, React, Vite, Vercel, OpenAI API, Render, FastAPI`,\r\n\t\tURL: \"https://mudita-frontend.vercel.app/\",\r\n\t\tstack: [\r\n\t\t\t\"artificial intelligence\",\r\n\t\t\t\"ci/cd\",\r\n\t\t\t\"fastapi\",\r\n\t\t\t\"git\",\r\n\t\t\t\"javascript\",\r\n\t\t\t\"responsive\",\r\n\t\t\t\"openai\",\r\n\t\t\t\"python\",\r\n\t\t\t\"react\",\r\n\t\t\t\"render\",\r\n\t\t\t\"typescript\",\r\n\t\t\t\"vercel\",\r\n\t\t\t\"vite\",\r\n\t\t],\r\n\t\timage: \"./images/plan-day.png\",\r\n\t\talt: \"task planner\",\r\n\t\tgithubLinks: [\r\n\t\t\t\"https://github.com/andrewcbuensalida/mudita-task-organizer-assignment\",\r\n\t\t\t\"https://github.com/andrewcbuensalida/mudita-frontend\",\r\n\t\t],\r\n\t},\r\n\t{\r\n\t\ttitle: `Restaurant 2 API`,\r\n\t\tdescription: `A sample backend using GraphQL and in-memory restaurant menu dummy data, this time in Typescript. Stack: GraphQL, NodeJs, Jest, Github Actions, CI/CD, Typescript`,\r\n\t\t// URL: \"https://main.d270tnz1kj6wbf.amplifyapp.com/\",\r\n\t\tstack: [\r\n\t\t\t\"ci/cd\",\r\n\t\t\t\"git\",\r\n\t\t\t\"graphql\",\r\n\t\t\t\"nodejs\",\r\n\t\t\t\"javascript\",\r\n\t\t\t\"typescript\",\r\n\t\t\t\"jest\",\r\n\t\t\t\"github actions\",\r\n\t\t\t\"unit testing\",\r\n\t\t\t\"user authentication\",\r\n\t\t],\r\n\t\timage: \"./images/restaurant2.png\",\r\n\t\talt: \"restaurant menu 2\",\r\n\t\tgithubLinks: [\r\n\t\t\t\"https://github.com/andrewcbuensalida/restaurant-2-graphql-node-apollo\",\r\n\t\t],\r\n\t},\r\n\t{\r\n\t\ttitle: `AI Comics Publisher`,\r\n\t\tdescription: `Data Analysis and Dashboard to approve AI generated draft Facebook posts for a Comic Books Company. Front-end Stack: React, React-Query Pagination, React-Table, BootStrap, Typescript, AWS Amplify. Back-end Stack: AWS S3, SSH Tunnel, FastAPI, OpenAI, AWS Elastic Beanstalk, Python, SQL Server, Facebook Graph API`,\r\n\t\t// URL: \"https://demo2.aiatyourservice.com/\",\r\n\t\tstack: [\r\n\t\t\t\"amazon web services\",\r\n\t\t\t\"aws amplify\",\r\n\t\t\t\"aws s3\",\r\n\t\t\t\"artificial intelligence\",\r\n\t\t\t\"aws elastic beanstalk\",\r\n\t\t\t\"bootstrap\",\r\n\t\t\t\"ci/cd\",\r\n\t\t\t\"extract transform load\",\r\n\t\t\t\"fastapi\",\r\n\t\t\t\"facebook graph api\",\r\n\t\t\t\"git\",\r\n\t\t\t\"javascript\",\r\n\t\t\t\"llm\",\r\n\t\t\t\"machine learning\",\r\n\t\t\t\"ms sql server\",\r\n\t\t\t\"openai\",\r\n\t\t\t\"pandas\",\r\n\t\t\t\"python\",\r\n\t\t\t\"react\",\r\n\t\t\t\"react-query\",\r\n\t\t\t\"react-table\",\r\n\t\t\t\"pagination\",\r\n\t\t\t\"html/css\",\r\n\t\t\t\"typescript\",\r\n\t\t],\r\n\t\timage: \"./images/comics.png\",\r\n\t\talt: \"comics\",\r\n\t\tgithubLinks: [\r\n\t\t\t\"https://github.com/andrewcbuensalida/comic-social-curator\",\r\n\t\t\t\"https://github.com/andrewcbuensalida/comics-price-guide-ui\",\r\n\t\t],\r\n\t},\r\n\r\n\t{\r\n\t\ttitle: `Restaurant Menu API`,\r\n\t\tdescription: `Stack: GraphQL, AWS RDS Postgres, Material UI, Heroku, AWS Amplify, Sequelize, NodeJs, Express, React, Git, CI/CD, User Authentication`,\r\n\t\t// URL: \"https://main.d270tnz1kj6wbf.amplifyapp.com/\",\r\n\t\tstack: [\r\n\t\t\t\"aws amplify\",\r\n\t\t\t\"aws rds\",\r\n\t\t\t\"ci/cd\",\r\n\t\t\t\"git\",\r\n\t\t\t\"graphql\",\r\n\t\t\t\"heroku\",\r\n\t\t\t\"material ui\",\r\n\t\t\t\"postgres\",\r\n\t\t\t\"react\",\r\n\t\t\t\"sequelize\",\r\n\t\t\t\"nodejs\",\r\n\t\t\t\"express\",\r\n\t\t\t\"javascript\",\r\n\t\t\t\"user authentication\",\r\n\t\t\t\"amazon web services\",\r\n\t\t\t\"jwt\",\r\n\t\t\t\"lucid chart\",\r\n\t\t],\r\n\t\timage: \"./images/restaurant-menu.png\",\r\n\t\talt: \"restaurant menu\",\r\n\t\tgithubLinks: [\r\n\t\t\t\"https://github.com/andrewcbuensalida/PSQL-Express-React-Node-GraphQL-Apollo.git\",\r\n\t\t\t\"https://github.com/andrewcbuensalida/restaurant-menu-react.git\",\r\n\t\t],\r\n\t},\r\n\r\n\t{\r\n\t\ttitle: `Pokemon Assistant`,\r\n\t\tdescription: `Pokemon Chatbot that shows pictures and information about Pokemon. Stack: OpenAI, React, AWS Amplify, NodeJs, Heroku, PokeAPI, Tavily, Postgres, AWS RDS.`,\r\n\t\t// URL: \"https://master.d25jr6vo3627gh.amplifyapp.com\",\r\n\t\tstack: [\r\n\t\t\t\"aws amplify\",\r\n\t\t\t\"aws rds\",\r\n\t\t\t\"chatbot\",\r\n\t\t\t\"ci/cd\",\r\n\t\t\t\"docker\",\r\n\t\t\t\"express\",\r\n\t\t\t\"git\",\r\n\t\t\t\"heroku\",\r\n\t\t\t\"llm\",\r\n\t\t\t\"lucid chart\",\r\n\t\t\t\"machine learning\",\r\n\t\t\t\"nodejs\",\r\n\t\t\t\"openai\",\r\n\t\t\t\"pokeapi\",\r\n\t\t\t\"postgres\",\r\n\t\t\t\"react\",\r\n\t\t\t\"typescript\",\r\n\t\t\t\"amazon web services\",\r\n\t\t],\r\n\t\timage: \"./images/pokemon-assistant.png\",\r\n\t\talt: \"pokemon assistant\",\r\n\t\tgithubLinks: [\r\n\t\t\t\"https://github.com/andrewcbuensalida/typescript-node-project\",\r\n\t\t\t\"https://github.com/andrewcbuensalida/react-chatgpt-clone-meta.git\",\r\n\t\t],\r\n\t},\r\n\t{\r\n\t\ttitle: `An honest observer vlog`,\r\n\t\tdescription: `A RAG (Retrieval Augmented Generation) API for An honest observer Youtube Channel content. Stack: LangChain, Pinecone, Python `,\r\n\t\t// URL: \"\",\r\n\t\tstack: [\r\n\t\t\t\"git\",\r\n\t\t\t\"langchain\",\r\n\t\t\t\"llm\",\r\n\t\t\t\"machine learning\",\r\n\t\t\t\"pineconedb\",\r\n\t\t\t\"python\",\r\n\t\t\t\"vector database\",\r\n\t\t],\r\n\t\timage: \"./images/pinecone.png\",\r\n\t\talt: \"pinecone\",\r\n\t\tgithubLinks: [\r\n\t\t\t\"https://github.com/andrewcbuensalida/anhonestobserver-rag.git\",\r\n\t\t],\r\n\t},\r\n\t{\r\n\t\ttitle: `AutoApply`,\r\n\t\tdescription: `AI that automatically applies to LinkedIn job postings with web scraping. Stack: Selenium, Python, LangChain, OpenAI, PyTest`,\r\n\t\t// URL: null,\r\n\t\tstack: [\r\n\t\t\t\"git\",\r\n\t\t\t\"python\",\r\n\t\t\t\"selenium\",\r\n\t\t\t\"langchain\",\r\n\t\t\t\"openai\",\r\n\t\t\t\"web scraping\",\r\n\t\t],\r\n\t\timage: \"./images/autoapply.png\",\r\n\t\talt: \"autoapply\",\r\n\t\tgithubLinks: [],\r\n\t},\r\n\t{\r\n\t\ttitle: `Spring Boot Movie Reviews`,\r\n\t\tdescription: `A spring boot back-end API for getting movie reviews from TMDB with Eureka`,\r\n\t\t// URL: null,\r\n\t\tstack: [\"git\", \"java\", \"spring boot\", \"eureka\"],\r\n\t\timage: \"./images/spring-boot-microservices-workshop.png\",\r\n\t\talt: \"movies\",\r\n\t\tgithubLinks: [\r\n\t\t\t\"https://github.com/andrewcbuensalida/spring-boot-microservices-workshop\",\r\n\t\t],\r\n\t},\r\n\t{\r\n\t\ttitle: `Pokemon Review`,\r\n\t\tdescription: `A spring boot back-end API for reviewing Pokemon. Stack includes PostgreSQL, unit testing, user authentication.`,\r\n\t\t// URL: null,\r\n\t\tstack: [\r\n\t\t\t\"git\",\r\n\t\t\t\"java\",\r\n\t\t\t\"lombok\",\r\n\t\t\t\"spring data jpa\",\r\n\t\t\t\"h2\",\r\n\t\t\t\"spring boot\",\r\n\t\t\t\"junit\",\r\n\t\t\t\"jwt\",\r\n\t\t\t\"unit testing\",\r\n\t\t\t\"user authentication\",\r\n\t\t\t\"postgres\",\r\n\t\t\t\"pokeapi\",\r\n\t\t],\r\n\t\timage: \"./images/pokemon.png\",\r\n\t\talt: \"pokemon\",\r\n\t\tgithubLinks: [\r\n\t\t\t\"https://github.com/andrewcbuensalida/pokemon-review-springboot\",\r\n\t\t],\r\n\t},\r\n\t{\r\n\t\ttitle: `Authors and Books Spring Boot`,\r\n\t\tdescription: `A spring boot back-end API for authors and books using PostgreSQL, and unit testing.`,\r\n\t\t// URL: null,\r\n\t\tstack: [\r\n\t\t\t\"git\",\r\n\t\t\t\"java\",\r\n\t\t\t\"lombok\",\r\n\t\t\t\"spring data jpa\",\r\n\t\t\t\"h2\",\r\n\t\t\t\"spring boot\",\r\n\t\t\t\"spring jdbc\",\r\n\t\t\t\"junit\",\r\n\t\t\t\"unit testing\",\r\n\t\t\t\"postgres\",\r\n\t\t],\r\n\t\timage: \"./images/devtiro.png\",\r\n\t\talt: \"devtiro\",\r\n\t\tgithubLinks: [\r\n\t\t\t\"https://github.com/andrewcbuensalida/course-spring-boot\",\r\n\t\t],\r\n\t},\r\n\t{\r\n\t\ttitle: `Employees/Albums Spring6yt`,\r\n\t\tdescription: `A basic spring boot back-end API that gets users from Jsonplaceholder.com, and stores products in an H2 in-memory database, configuration management, and user authentication with oauth and postgres. Deployed on AWS Elastic Beanstalk.`,\r\n\t\t// URL: null,\r\n\t\tstack: [\r\n\t\t\t\"amazon web services\",\r\n\t\t\t\"aws elastic beanstalk\",\r\n\t\t\t\"git\",\r\n\t\t\t\"java\",\r\n\t\t\t\"junit\",\r\n\t\t\t\"jwt\",\r\n\t\t\t\"lombok\",\r\n\t\t\t\"spring data jpa\",\r\n\t\t\t\"h2\",\r\n\t\t\t\"spring boot\",\r\n\t\t\t\"spring cloud config\",\r\n\t\t\t\"spring actuator\",\r\n\t\t\t\"swagger\",\r\n\t\t\t\"user authentication\",\r\n\t\t\t\"unit testing\",\r\n\t\t\t\"oauth\",\r\n\t\t\t\"postgres\",\r\n\t\t\t\"pagination\",\r\n\t\t],\r\n\t\timage: \"./images/spring6yt.png\",\r\n\t\talt: \"spring6yt\",\r\n\t\tgithubLinks: [\"https://github.com/andrewcbuensalida/spring6yt\"],\r\n\t},\r\n\t{\r\n\t\ttitle: `Django Chatbot`,\r\n\t\tdescription: `Chatbot using GPT-4 of OpenAI API, LangChain, Django, Docker, and AWS ECS.\r\n\t\tStack also includes: asyncio, beautiful soup, Pinecone DB`,\r\n\t\t// URL: null,\r\n\t\tstack: [\r\n\t\t\t\"artificial intelligence\",\r\n\t\t\t\"amazon web services\",\r\n\t\t\t\"aws ecr\",\r\n\t\t\t\"aws ecs\",\r\n\t\t\t\"aws load-balancer\",\r\n\t\t\t\"beautiful soup\",\r\n\t\t\t\"chatbot\",\r\n\t\t\t\"django\",\r\n\t\t\t\"docker\",\r\n\t\t\t\"git\",\r\n\t\t\t\"langchain\",\r\n\t\t\t\"llm\",\r\n\t\t\t\"lucid chart\",\r\n\t\t\t\"machine learning\",\r\n\t\t\t\"mvc\",\r\n\t\t\t\"openai\",\r\n\t\t\t\"pineconedb\",\r\n\t\t\t\"python\",\r\n\t\t\t\"sqlite\",\r\n\t\t\t\"user authentication\",\r\n\t\t\t\"vector database\",\r\n\t\t],\r\n\t\timage: \"./images/django-chatbot-langchain-docker.png\",\r\n\t\talt: \"django chatbot\",\r\n\t\tgithubLinks: [\r\n\t\t\t\"https://github.com/andrewcbuensalida/django-chatbot-langchain-docker\",\r\n\t\t],\r\n\t},\r\n\t{\r\n\t\ttitle: `Monthly Retail Trade Survey (MRTS) ETL`,\r\n\t\tdescription: `Performed ETL (Extract Transform Load), Analyzed, Visualized MRTS sales.\r\n\t\tStack: MatPlotLib, Numpy, Pandas, MySQL, Python, javascript`,\r\n\t\t// URL: null,\r\n\t\tstack: [\r\n\t\t\t\"mysql\",\r\n\t\t\t\"data analysis\",\r\n\t\t\t\"data visualization\",\r\n\t\t\t\"extract transform load\",\r\n\t\t\t\"git\",\r\n\t\t\t\"matplotlib\",\r\n\t\t\t\"numpy\",\r\n\t\t\t\"python\",\r\n\t\t\t\"pandas\",\r\n\t\t],\r\n\t\timage: \"./images/mrts.png\",\r\n\t\talt: \"mrts\",\r\n\t\tgithubLinks: [\"https://github.com/andrewcbuensalida/mrts-etl-mit\"],\r\n\t},\r\n\t{\r\n\t\ttitle: `Word Frequency Bubble Chart`,\r\n\t\tdescription: `ETL and Visualize word frequency in a bubble chart. Words were scraped from the MIT catalog. Stack: D3, nltk, pandas, python, airflow, beautiful soup, docker, javascript`,\r\n\t\t// URL: null,\r\n\t\tstack: [\r\n\t\t\t\"airflow\",\r\n\t\t\t\"d3\",\r\n\t\t\t\"docker\",\r\n\t\t\t\"data visualization\",\r\n\t\t\t\"git\",\r\n\t\t\t\"javascript\",\r\n\t\t\t\"pandas\",\r\n\t\t\t\"python\",\r\n\t\t\t\"web scraping\",\r\n\t\t\t\"airflow\",\r\n\t\t\t\"extract transform load\",\r\n\t\t],\r\n\t\timage: \"./images/word-frequency.png\",\r\n\t\talt: \"word-frequency\",\r\n\t\tgithubLinks: [\r\n\t\t\t\"https://github.com/andrewcbuensalida/javascript-d3-airflow-docker-mit-module-23.git\",\r\n\t\t],\r\n\t},\r\n\t{\r\n\t\ttitle: `Temperature and Humidity Sensor/Vehicle Coordinates`,\r\n\t\tdescription: `Project 1: Generated temperature and humidity data, published using Mosquitto, read by Thingsboard, and stored in Firebase. Stack: Docker, Firebase, Git, Mosquitto, Python, Thingsboard. Project 2: Generated and consumed vehicle coordinates using Kafka and NodeJs Express.`,\r\n\t\t// URL: null,\r\n\t\tstack: [\r\n\t\t\t\"mqtt\",\r\n\t\t\t\"docker\",\r\n\t\t\t\"firebase\",\r\n\t\t\t\"git\",\r\n\t\t\t\"python\",\r\n\t\t\t\"thingsboard\",\r\n\t\t\t\"kafka\",\r\n\t\t\t\"nodejs\",\r\n\t\t\t\"express\",\r\n\t\t\t\"pubsub\",\r\n\t\t],\r\n\t\timage: \"./images/thingsboard.png\",\r\n\t\talt: \"thingsboard\",\r\n\t\tgithubLinks: [\r\n\t\t\t\"https://github.com/andrewcbuensalida/kafka-thingsboard-mosquitto-firebase-docker-module-24-mit.git\",\r\n\t\t],\r\n\t},\r\n\t{\r\n\t\ttitle: `Dask and websockets`,\r\n\t\tdescription: `Project 1: Processed salary data in parallel with Dask and compared it with Pandas and Numpy. Project 2: Generated time data and sent it to a web client using websockets. Stack: Dask, Numpy, Pandas, Python, Websockets`,\r\n\t\t// URL: null,\r\n\t\tstack: [\r\n\t\t\t\"numpy\",\r\n\t\t\t\"pandas\",\r\n\t\t\t\"python\",\r\n\t\t\t\"websockets\",\r\n\t\t\t\"dask\",\r\n\t\t\t\"git\",\r\n\t\t\t\"data analysis\",\r\n\t\t],\r\n\t\timage: \"./images/dask.png\",\r\n\t\talt: \"dask\",\r\n\t\tgithubLinks: [\r\n\t\t\t\"https://github.com/andrewcbuensalida/parquet-feather-websocket-dask-mit-module-22.git\",\r\n\t\t],\r\n\t},\r\n\t{\r\n\t\ttitle: `Titanic Dataset Analysis/Path finding`,\r\n\t\tdescription: `Project 1: Use Scikit-learn's K-means clustering to predict survival in the Titanic dataset. Project 2: Find the optimal path in a graph using Reinforcement Learning. Stack: Sci-kit learn, Numpy, Pandas`,\r\n\t\t// URL: null,\r\n\t\tstack: [\r\n\t\t\t\"numpy\",\r\n\t\t\t\"pandas\",\r\n\t\t\t\"python\",\r\n\t\t\t\"scikit-learn\",\r\n\t\t\t\"reinforcement learning\",\r\n\t\t\t\"machine learning\",\r\n\t\t\t\"artificial intelligence\",\r\n\t\t\t\"k-means\",\r\n\t\t\t\"git\",\r\n\t\t\t\"data analysis\",\r\n\t\t],\r\n\t\timage: \"./images/reinforcement.png\",\r\n\t\talt: \"reinforcement\",\r\n\t\tgithubLinks: [\r\n\t\t\t\"https://github.com/andrewcbuensalida/kmeans-reinforcement-module-21-mit.git\",\r\n\t\t],\r\n\t},\r\n\t{\r\n\t\ttitle: `Departure Delay Analysis`,\r\n\t\tdescription: `Use PySpark to analyze departure delays. Stack: PySpark, Python, Docker, Airflow`,\r\n\t\t// URL: null,\r\n\t\tstack: [\r\n\t\t\t\"airflow\",\r\n\t\t\t\"docker\",\r\n\t\t\t\"pyspark\",\r\n\t\t\t\"python\",\r\n\t\t\t\"git\",\r\n\t\t\t\"data analysis\",\r\n\t\t],\r\n\t\timage: \"./images/spark.png\",\r\n\t\talt: \"spark\",\r\n\t\tgithubLinks: [\r\n\t\t\t\"https://github.com/andrewcbuensalida/pyspark-airflow-docker-mit-module-19.git\",\r\n\t\t],\r\n\t},\r\n\t{\r\n\t\ttitle: `Movies ETL`,\r\n\t\tdescription: `User NiFi to extract, transform, and load movie data. Stack: Apache NiFi, MySQL, MongoDB, Redis, Cassandra`,\r\n\t\t// URL: null,\r\n\t\tstack: [\r\n\t\t\t\"airflow\",\r\n\t\t\t\"docker\",\r\n\t\t\t\"nifi\",\r\n\t\t\t\"mysql\",\r\n\t\t\t\"mongodb\",\r\n\t\t\t\"redis\",\r\n\t\t\t\"cassandra\",\r\n\t\t],\r\n\t\timage: \"./images/nifi.png\",\r\n\t\talt: \"nifi\",\r\n\t\tgithubLinks: [\r\n\t\t\t\"https://github.com/andrewcbuensalida/nifi-etl-mysql-mongo-redis-cassandra-module-17-mit.git\",\r\n\t\t],\r\n\t},\r\n\t{\r\n\t\ttitle: `Massachusetts Bay Transportation Authority (MBTA) CDC`,\r\n\t\tdescription: `Use Debezium to capture changes in a MySQL database and insert them into a MongoDB database. Display buses on a map with Mapbox. Stack: Debezium, MySQL, MongoDB, Docker, Mapbox`,\r\n\t\t// URL: null,\r\n\t\tstack: [\r\n\t\t\t\"docker\",\r\n\t\t\t\"git\",\r\n\t\t\t\"mongodb\",\r\n\t\t\t\"mysql\",\r\n\t\t\t\"change data capture\",\r\n\t\t\t\"debezium\",\r\n\t\t\t\"java\",\r\n\t\t\t\"flask\",\r\n\t\t\t\"python\",\r\n\t\t\t\"mapbox\",\r\n\t\t\t\"regression\",\r\n\t\t\t\"machine learning\",\r\n\t\t\t\"artificial intelligence\",\r\n\t\t\t\"data analysis\",\r\n\t\t\t\"data visualization\",\r\n\t\t],\r\n\t\timage: \"./images/mapbox.png\",\r\n\t\talt: \"mapbox\",\r\n\t\tgithubLinks: [\r\n\t\t\t\"https://github.com/andrewcbuensalida/debezium-mongo-java-mysql-docker-mapbox-mbta-module-16-mit.git\",\r\n\t\t],\r\n\t},\r\n\t{\r\n\t\ttitle: `Flask books`,\r\n\t\tdescription: `A flask back-end API for books with JWT Cookie authentication, Swagger. Stack: Flask, Python, JWT.`,\r\n\t\t// URL: null,\r\n\t\tstack: [\r\n\t\t\t\"flask\",\r\n\t\t\t\"git\",\r\n\t\t\t\"python\",\r\n\t\t\t\"jwt\",\r\n\t\t\t\"user authentication\",\r\n\t\t\t\"swagger\",\r\n\t\t],\r\n\t\timage: \"./images/flask.png\",\r\n\t\talt: \"flask\",\r\n\t\tgithubLinks: [\r\n\t\t\t\"https://github.com/andrewcbuensalida/jwt-advanced-python-mit-module-15.git\",\r\n\t\t\t\"https://github.com/andrewcbuensalida/flask-mit.git\",\r\n\t\t],\r\n\t},\r\n\t{\r\n\t\ttitle: `Change Data Capture (CDC) MySQL to MongoDB`,\r\n\t\tdescription: `Generate time data, write to MySQL, read, then write to MongoDB. Stack: MySQL, MongoDB, Docker, Python, Git`,\r\n\t\t// URL: null,\r\n\t\tstack: [\r\n\t\t\t\"docker\",\r\n\t\t\t\"git\",\r\n\t\t\t\"mongodb\",\r\n\t\t\t\"mysql\",\r\n\t\t\t\"python\",\r\n\t\t\t\"change data capture\",\r\n\t\t\t\"redis\",\r\n\t\t\t\"cassandra\",\r\n\t\t],\r\n\t\timage: \"./images/timeloop.png\",\r\n\t\talt: \"timeloop\",\r\n\t\tgithubLinks: [\r\n\t\t\t\"https://github.com/andrewcbuensalida/cdc-docker-redis-mit-module-12.git\",\r\n\t\t],\r\n\t},\r\n\t{\r\n\t\ttitle: `UFO/Athletes/Housing/Titanic Data Analysis`,\r\n\t\tdescription: `Analyze UFO, Athletes, Housing, and Titanic datasets. Stack: Python, Pandas, Numpy, Matplotlib, Seaborn, Scikit-learn`,\r\n\t\t// URL: null,\r\n\t\tstack: [\r\n\t\t\t\"matplotlib\",\r\n\t\t\t\"numpy\",\r\n\t\t\t\"pandas\",\r\n\t\t\t\"python\",\r\n\t\t\t\"scikit-learn\",\r\n\t\t\t\"git\",\r\n\t\t\t\"data analysis\",\r\n\t\t\t\"data visualization\",\r\n\t\t\t\"regression\",\r\n\t\t\t\"machine learning\",\r\n\t\t\t\"artificial intelligence\",\r\n\t\t],\r\n\t\timage: \"./images/histogram.png\",\r\n\t\talt: \"histogram\",\r\n\t\tgithubLinks: [\r\n\t\t\t\"https://github.com/andrewcbuensalida/numpy-mit.git\",\r\n\t\t\t\"https://github.com/andrewcbuensalida/predict-housing-prices-mit.git\",\r\n\t\t],\r\n\t},\r\n\t{\r\n\t\ttitle: `Tangible AI`,\r\n\t\tdescription: `Built Retrieval Augmented Generation (RAG) APIs \r\n\t\tStack: Chroma Vector Database, Pinecone DB, Langchain, OpenAI GPT LLM, Python`,\r\n\t\t// URL: null,\r\n\t\tstack: [\r\n\t\t\t\"chromadb\",\r\n\t\t\t\"machine learning\",\r\n\t\t\t\"artificial intelligence\",\r\n\t\t\t\"llm\",\r\n\t\t\t\"vector database\",\r\n\t\t\t\"redis\",\r\n\t\t\t\"langsmith\",\r\n\t\t\t\"langgraph\",\r\n\t\t\t\"pineconedb\",\r\n\t\t\t\"langchain\",\r\n\t\t\t\"openai\",\r\n\t\t\t\"anthropic\",\r\n\t\t\t\"chatbot\",\r\n\t\t\t\"python\",\r\n\t\t\t\"git\",\r\n\t\t],\r\n\t\timage: \"./images/tangibleai.jpg\",\r\n\t\talt: \"tangible ai\",\r\n\t\tgithubLinks: [\r\n\t\t\t\"https://github.com/andrewcbuensalida/Complete-Generative-AI-Course-on-YouTube\",\r\n\t\t],\r\n\t},\r\n\t{\r\n\t\ttitle: `Travel Agent AI Chatbot`,\r\n\t\tdescription: `A travel agent chatbot that modifies and answers questions about the user's flight details, hotel, car, excursion bookings. Stack: LangGraph, LangChain, OpenAI, Python, SQLite`,\r\n\t\t// URL: null,\r\n\t\tstack: [\r\n\t\t\t\"chatbot\",\r\n\t\t\t\"git\",\r\n\t\t\t\"langchain\",\r\n\t\t\t\"langgraph\",\r\n\t\t\t\"llm\",\r\n\t\t\t\"machine learning\",\r\n\t\t\t\"openai\",\r\n\t\t\t\"artificial intelligence\",\r\n\t\t\t\"python\",\r\n\t\t\t\"sqlite\",\r\n\t\t],\r\n\t\timage: \"./images/travelagent.png\",\r\n\t\talt: \"travelagent ai\",\r\n\t\tgithubLinks: [\r\n\t\t\t\"https://github.com/andrewcbuensalida/langgraph-travel-chatbot-sqlite-pandas.git\",\r\n\t\t],\r\n\t},\r\n\t{\r\n\t\ttitle: `Zillow Scraper`,\r\n\t\tdescription: `Scrape house listings from Zillow.com \r\n\t\tStack includes NodeJs, Puppeteer, Typescript, Express`,\r\n\t\t// URL: null,\r\n\t\tstack: [\r\n\t\t\t\"express\",\r\n\t\t\t\"nodejs\",\r\n\t\t\t\"html/css\",\r\n\t\t\t\"puppeteer\",\r\n\t\t\t\"typescript\",\r\n\t\t\t\"web scraping\",\r\n\t\t\t\"git\",\r\n\t\t],\r\n\t\timage: \"./images/zillow.png\",\r\n\t\talt: \"zillow scraper\",\r\n\t\tgithubLinks: [\r\n\t\t\t\"https://github.com/andrewcbuensalida/express-api-starter-ts.git\",\r\n\t\t],\r\n\t},\r\n\t{\r\n\t\ttitle: `Movieist`,\r\n\t\tdescription: `Write reviews for movies. \r\n\t\tStack includes Spring Boot, Java, Elastic Beanstalk, MongoDB`,\r\n\t\t// URL: null,\r\n\t\tstack: [\r\n\t\t\t\"amazon web services\",\r\n\t\t\t\"aws elastic beanstalk\",\r\n\t\t\t\"mongodb\",\r\n\t\t\t\"java\",\r\n\t\t\t\"maven\",\r\n\t\t\t\"spring boot\",\r\n\t\t\t\"lucid chart\",\r\n\t\t\t\"git\",\r\n\t\t],\r\n\t\timage: \"./images/movieist.png\",\r\n\t\talt: \"movieist\",\r\n\t\tgithubLinks: [\r\n\t\t\t\"https://github.com/andrewcbuensalida/movieist-from-scratch.git\",\r\n\t\t],\r\n\t},\r\n\t{\r\n\t\ttitle: `NestJs Task Tracker`,\r\n\t\tdescription: `Keep track of users and tasks. \r\n\t\tStack includes NestJs, Typescript, AWS Elastic Beanstalk, AWS RDS, MySQL, TypeORM`,\r\n\t\t// URL: null,\r\n\t\tstack: [\r\n\t\t\t\"amazon web services\",\r\n\t\t\t\"aws elastic beanstalk\",\r\n\t\t\t\"typescript\",\r\n\t\t\t\"nestjs\",\r\n\t\t\t\"aws rds\",\r\n\t\t\t\"mysql\",\r\n\t\t\t\"typeorm\",\r\n\t\t\t\"git\",\r\n\t\t\t\"javascript\",\r\n\t\t\t\"nodejs\",\r\n\t\t\t\"user authentication\",\r\n\t\t\t\"jwt\",\r\n\t\t],\r\n\t\timage: \"./images/nest.png\",\r\n\t\talt: \"nest tasks\",\r\n\t\tgithubLinks: [\r\n\t\t\t\"https://github.com/andrewcbuensalida/nestjs-task-management.git\",\r\n\t\t],\r\n\t},\r\n\t{\r\n\t\ttitle: `Neo4j Spring Boot University`,\r\n\t\tdescription: `Keep track of enrolled courses. \r\n\t\tStack includes React, AWS ec2, Bootstrap, Java, Maven, Neo4j Knowledge Graph, Spring Boot, D3 data visualization, Node, Express, Swagger, MS SQL Server`,\r\n\t\t// URL: null,\r\n\t\tstack: [\r\n\t\t\t\"amazon web services\",\r\n\t\t\t\"aws ec2\",\r\n\t\t\t\"axios\",\r\n\t\t\t\"bootstrap\",\r\n\t\t\t\"d3\",\r\n\t\t\t\"data visualization\",\r\n\t\t\t\"express\",\r\n\t\t\t\"git\",\r\n\t\t\t\"html/css\",\r\n\t\t\t\"java\",\r\n\t\t\t\"javascript\",\r\n\t\t\t\"linux\",\r\n\t\t\t\"maven\",\r\n\t\t\t\"ms sql server\",\r\n\t\t\t\"neo4j\",\r\n\t\t\t\"nodejs\",\r\n\t\t\t\"react router\",\r\n\t\t\t\"react\",\r\n\t\t\t\"spring boot\",\r\n\t\t\t\"swagger\",\r\n\t\t\t\"user authentication\",\r\n\t\t],\r\n\t\timage: \"./images/neo4j-springboot-university.png\",\r\n\t\talt: \"neo4j-springboot-university\",\r\n\t\tgithubLinks: [\r\n\t\t\t\"https://github.com/andrewcbuensalida/spring-boot-neo4j.git\",\r\n\t\t],\r\n\t},\r\n\t{\r\n\t\ttitle: `ASCONA senior care management specialists`,\r\n\t\tdescription: `Web app that connects families to senior care facilities. React, AWS Lambda, AWS SNS, AWS DynamoDB, Bootstrap, React Router, User Authorization, Google Ads`,\r\n\t\t// URL: null,\r\n\t\tstack: [\r\n\t\t\t\"amazon web services\",\r\n\t\t\t\"google ads\",\r\n\t\t\t\"aws sns\",\r\n\t\t\t\"bootstrap\",\r\n\t\t\t\"express\",\r\n\t\t\t\"git\",\r\n\t\t\t\"html/css\",\r\n\t\t\t\"aws lambda\",\r\n\t\t\t\"javascript\",\r\n\t\t\t\"jwt\",\r\n\t\t\t\"yup\",\r\n\t\t\t\"axios\",\r\n\t\t\t\"bootstrap\",\r\n\t\t\t\"nodejs\",\r\n\t\t\t\"react router\",\r\n\t\t\t\"react\",\r\n\t\t\t\"aws dynamodb\",\r\n\t\t\t\"user authentication\",\r\n\t\t],\r\n\t\timage: \"./images/ascona.png\",\r\n\t\talt: \"ASCONA\",\r\n\t\tgithubLinks: [\r\n\t\t\t\"https://github.com/andrewcbuensalida/caring_clone_node.git\",\r\n\t\t\t\"https://github.com/andrewcbuensalida/caring_clone_react\",\r\n\t\t],\r\n\t},\r\n\t{\r\n\t\ttitle: `Department of Homeland Security`,\r\n\t\tdescription: `Web app for processing immigrants. \r\n\t\tStack includes React, Redux, Typescript, React Hook Form, React Table, AWS, Lambda, NodeJs, DynamoDB, SNS, Oracle PL/SQL, s3, SASS, Bootstrap, Serverless Framework, PDF-lib, Node mailer, Jest, Sinon, Jenkins/Cloudbees, ElectronJs, Swagger`,\r\n\t\t// URL: null,\r\n\t\tstack: [\r\n\t\t\t\"amazon web services\",\r\n\t\t\t\"aws dynamodb\",\r\n\t\t\t\"aws lambda\",\r\n\t\t\t\"aws s3\",\r\n\t\t\t\"aws sns\",\r\n\t\t\t\"axios\",\r\n\t\t\t\"bootstrap\",\r\n\t\t\t\"ci/cd\",\r\n\t\t\t\"dbeaver\",\r\n\t\t\t\"docker\",\r\n\t\t\t\"electronjs\",\r\n\t\t\t\"git\",\r\n\t\t\t\"html/css\",\r\n\t\t\t\"javascript\",\r\n\t\t\t\"jenkins\",\r\n\t\t\t\"jest\",\r\n\t\t\t\"linux\",\r\n\t\t\t\"lucid chart\",\r\n\t\t\t\"mongodb\",\r\n\t\t\t\"nodejs\",\r\n\t\t\t\"nodemailer\",\r\n\t\t\t\"oracle db\",\r\n\t\t\t\"pdf-lib\",\r\n\t\t\t\"react hook form\",\r\n\t\t\t\"react router\",\r\n\t\t\t\"react table\",\r\n\t\t\t\"react\",\r\n\t\t\t\"redux\",\r\n\t\t\t\"serverless framework\",\r\n\t\t\t\"sinon\",\r\n\t\t\t\"swagger\",\r\n\t\t\t\"typescript\",\r\n\t\t\t\"unit testing\",\r\n\t\t\t\"visio\",\r\n\t\t\t\"websockets\",\r\n\t\t\t\"yup\",\r\n\t\t],\r\n\t\timage: \"./images/dhs.png\",\r\n\t\talt: \"dhs\",\r\n\t\tgithubLinks: [],\r\n\t},\r\n\t{\r\n\t\ttitle: `JUST do it`,\r\n\t\tdescription: `An e-commerce website with Stripe Payments. \r\n\t\t\tStack includes MaterialUI, Redux, Axios, React, React Router, CSS Styled Components, CryptoJS, Express, Node, JWT, Stripe, MongdoDB hosted on Heroku with CI/CD`,\r\n\t\t// // URL: \"http://justdoit.anhonestobserver.com\",\r\n\t\tstack: [\r\n\t\t\t\"react\",\r\n\t\t\t\"cryptojs\",\r\n\t\t\t\"mongoose\",\r\n\t\t\t\"html/css\",\r\n\t\t\t\"javascript\",\r\n\t\t\t\"aws route 53\",\r\n\t\t\t\"amazon web services\",\r\n\t\t\t\"ci/cd\",\r\n\t\t\t\"git\",\r\n\t\t\t\"material ui\",\r\n\t\t\t\"redux\",\r\n\t\t\t\"react router\",\r\n\t\t\t\"nodejs\",\r\n\t\t\t\"express\",\r\n\t\t\t\"jwt\",\r\n\t\t\t\"stripe\",\r\n\t\t\t\"axios\",\r\n\t\t\t\"heroku\",\r\n\t\t\t\"ci/cd\",\r\n\t\t\t\"git\",\r\n\t\t\t\"mongodb\",\r\n\t\t\t\"user authentication\",\r\n\t\t],\r\n\t\timage: \"./images/justdoit.png\",\r\n\t\talt: \"justdoit\",\r\n\t\tgithubLinks: [\r\n\t\t\t\"https://github.com/andrewcbuensalida/youtube/tree/mern-ecommerce-app-1\",\r\n\t\t],\r\n\t},\r\n\t{\r\n\t\ttitle: `Messenger`,\r\n\t\tdescription: `Real-time React based messenger app with user authorization. \r\n\t\t\tStack includes Redis, React, chakra-ui, formik, socket.io, NodeJS, Postgres, JWT`,\r\n\t\t// // URL: \"http://justdoit.anhonestobserver.com\",\r\n\t\tstack: [\r\n\t\t\t\"react\",\r\n\t\t\t\"redis\",\r\n\t\t\t\"chakra-ui\",\r\n\t\t\t\"formik\",\r\n\t\t\t\"socket.io\",\r\n\t\t\t\"websockets\",\r\n\t\t\t\"yup\",\r\n\t\t\t\"postgres\",\r\n\t\t\t\"docker\",\r\n\t\t\t\"lucid chart\",\r\n\t\t\t\"html/css\",\r\n\t\t\t\"javascript\",\r\n\t\t\t\"git\",\r\n\t\t\t\"react router\",\r\n\t\t\t\"nodejs\",\r\n\t\t\t\"express\",\r\n\t\t\t\"jwt\",\r\n\t\t\t\"git\",\r\n\t\t\t\"user authentication\",\r\n\t\t],\r\n\t\timage: \"./images/messenger.png\",\r\n\t\talt: \"messenger\",\r\n\t\tgithubLinks: [\r\n\t\t\t\"https://github.com/andrewcbuensalida/react-live-messenger.git\",\r\n\t\t],\r\n\t},\r\n\t{\r\n\t\ttitle: `Doctor Database`,\r\n\t\tdescription: `A responsive Web App with Infinite scroll to find and rate your doctor. \r\n\t\t\tStack includes Bootstrap, Nginx, Axios, React, PostgreSQL, Node, hosted on an AWS EC2 server, with continuous integration with Code Pipeline.`,\r\n\t\t// URL: null, //\"https://doctordb.anhonestobserver.com\",\r\n\t\tstack: [\r\n\t\t\t\"react\",\r\n\t\t\t\"html/css\",\r\n\t\t\t\"javascript\",\r\n\t\t\t\"amazon web services\",\r\n\t\t\t\"aws ec2\",\r\n\t\t\t\"aws code pipeline\",\r\n\t\t\t\"ci/cd\",\r\n\t\t\t\"git\",\r\n\t\t\t\"bootstrap\",\r\n\t\t\t\"nginx\",\r\n\t\t\t\"postgres\",\r\n\t\t\t\"pagination\",\r\n\t\t\t\"nodejs\",\r\n\t\t\t\"express\",\r\n\t\t\t\"linux\",\r\n\t\t\t\"ssl\",\r\n\t\t\t\"axios\",\r\n\t\t\t\"responsive\",\r\n\t\t],\r\n\t\timage: \"./images/doctordb.png\",\r\n\t\talt: \"doctordb\",\r\n\t\tgithubLinks: [\r\n\t\t\t\"https://github.com/andrewcbuensalida/PERN-STACK-YELP-CLONE\",\r\n\t\t],\r\n\t},\r\n\t{\r\n\t\ttitle: `Amazon Clone`,\r\n\t\tdescription: `React Amazon Clone with Stripe payments and user authentication with Firebase. Tech: React router, Material ui, Firestore, Functions, Hosting for CI/CD. \r\n\t\t\t`,\r\n\t\t// // URL: \"https://amazon.anhonestobserver.com/\",\r\n\t\tstack: [\r\n\t\t\t\"axios\",\r\n\t\t\t\"ci/cd\",\r\n\t\t\t\"html/css\",\r\n\t\t\t\"express\",\r\n\t\t\t\"firebase\",\r\n\t\t\t\"git\",\r\n\t\t\t\"javascript\",\r\n\t\t\t\"material ui\",\r\n\t\t\t\"nodejs\",\r\n\t\t\t\"react router\",\r\n\t\t\t\"user authentication\",\r\n\t\t\t\"react\",\r\n\t\t\t\"stripe\",\r\n\t\t],\r\n\t\timage: \"./images/amazon.png\",\r\n\t\talt: \"amazon\",\r\n\t\tgithubLinks: [\r\n\t\t\t\"https://github.com/andrewcbuensalida/react-amazon-stripe-reducer-firebase\",\r\n\t\t],\r\n\t},\r\n\t{\r\n\t\t// this one has the private repo\r\n\t\ttitle: `Instagram Clone`,\r\n\t\tdescription: `A multi-paged app to sign-up, like, comment, and follow other users. Technologies: React Router, Tailwind, Date-fns, Firebase user authentication, Firestore, AWS Elastic Beanstalk and Code Pipeline for CI/CD. `,\r\n\t\t// // URL: \"https://www.instagram.anhonestobserver.com\",\r\n\t\tstack: [\r\n\t\t\t\"react\",\r\n\t\t\t\"html/css\",\r\n\t\t\t\"tailwind\",\r\n\t\t\t\"amazon web services\",\r\n\t\t\t\"aws elastic beanstalk\",\r\n\t\t\t\"aws code pipeline\",\r\n\t\t\t\"javascript\",\r\n\t\t\t\"firebase\",\r\n\t\t\t\"google cloud platform\",\r\n\t\t\t\"git\",\r\n\t\t\t\"ci/cd\",\r\n\t\t\t\"user authentication\",\r\n\t\t\t\"react router\",\r\n\t\t],\r\n\t\timage: \"./images/instagram.png\",\r\n\t\talt: \"instagram\",\r\n\t\tgithubLinks: [\"https://github.com/andrewcbuensalida/Instagram-Clone\"],\r\n\t},\r\n\t{\r\n\t\ttitle: `Andrew's Blogs`,\r\n\t\tdescription: `Create, Read, and Delete blogs with rate limiting and SCSS animations. Stack includes EJS for the front-end, MongoDB and Mongoose for the database, and Node, Express, Google Cloud Platform's App Engine and Cloud Build for CI/CD.`,\r\n\t\t// // URL: \"https://blogs.anhonestobserver.com/\",\r\n\t\tstack: [\r\n\t\t\t\"javascript\",\r\n\t\t\t\"html/css\",\r\n\t\t\t\"google cloud platform\",\r\n\t\t\t\"scss\",\r\n\t\t\t\"ejs\",\r\n\t\t\t\"mvc\",\r\n\t\t\t\"ci/cd\",\r\n\t\t\t\"git\",\r\n\t\t\t\"nodejs\",\r\n\t\t\t\"express\",\r\n\t\t\t\"mvc\",\r\n\t\t\t\"mongodb\",\r\n\t\t\t\"mongoose\",\r\n\t\t],\r\n\t\timage: \"./images/blogs.png\",\r\n\t\talt: \"blogs\",\r\n\t\tgithubLinks: [\r\n\t\t\t\"https://github.com/andrewcbuensalida/node-crash-course.git\",\r\n\t\t],\r\n\t},\r\n\t{\r\n\t\ttitle: `Minute Cookie Recipes`,\r\n\t\tdescription: `Log in to see cookie recipes. \r\n\t\t\tStack includes Handlebars templating engine, JWT and Cookie User authentication, \r\n\t\t\tModel View Controller design pattern, Bcrypt password encryption, Node with express for the server,\r\n\t\t\tMongoDB with mongoose for the database,\r\n\t\t\tGoogle Cloud's App Engine for hosting, and Cloud Build for CI/CD`,\r\n\t\t// URL: \"https://www.cookies.anhonestobserver.com\",\r\n\t\tstack: [\r\n\t\t\t\"javascript\",\r\n\t\t\t\"handlebars\",\r\n\t\t\t\"html/css\",\r\n\t\t\t\"google cloud platform\",\r\n\t\t\t\"ci/cd\",\r\n\t\t\t\"git\",\r\n\t\t\t\"mvc\",\r\n\t\t\t\"mongodb\",\r\n\t\t\t\"mongoose\",\r\n\t\t\t\"nodejs\",\r\n\t\t\t\"express\",\r\n\t\t\t\"user authentication\",\r\n\t\t\t\"jwt\",\r\n\t\t],\r\n\t\timage: \"./images/cookies.png\",\r\n\t\talt: \"cookies\",\r\n\t\tgithubLinks: [\r\n\t\t\t\"https://github.com/andrewcbuensalida/node-express-jwt-auth.git\",\r\n\t\t],\r\n\t},\r\n\t{\r\n\t\ttitle: `Love's Books`,\r\n\t\tdescription: `Add your favorite books. Stack includes React with GraphQL for the front-end and a MongoDB Atlas database and Node server on an AWS EC2 with Nginx proxy on an SSL certified domain with Code Pipeline for CI/CD`,\r\n\t\t// URL: null, //\"https://www.books.anhonestobserver.com\",\r\n\t\tstack: [\r\n\t\t\t\"react\",\r\n\t\t\t\"graphql\",\r\n\t\t\t\"amazon web services\",\r\n\t\t\t\"aws ec2\",\r\n\t\t\t\"aws code pipeline\",\r\n\t\t\t\"aws route 53\",\r\n\t\t\t\"linux\",\r\n\t\t\t\"mongodb\",\r\n\t\t\t\"mongoose\",\r\n\t\t\t\"nodejs\",\r\n\t\t\t\"express\",\r\n\t\t\t\"html/css\",\r\n\t\t\t\"git\",\r\n\t\t\t\"nginx\",\r\n\t\t\t\"ssl\",\r\n\t\t\t\"ci/cd\",\r\n\t\t\t\"linux\",\r\n\t\t],\r\n\t\timage: \"./images/books.png\",\r\n\t\talt: \"books\",\r\n\t\tgithubLinks: [\"https://github.com/andrewcbuensalida/graphql-playlist\"],\r\n\t},\r\n\t{\r\n\t\ttitle: `Heat`,\r\n\t\tdescription: `A simple mobile app that tracks your running race results. Currently for Android only. Technologies: React Native, React Navigation, Expo, Postgres, GCP Compute Engine, Formik, Yup, Node`,\r\n\t\t// URL: \"https://expo.dev/@andrewcbuensalida/heat\",\r\n\t\tstack: [\r\n\t\t\t\"react\",\r\n\t\t\t\"react native\",\r\n\t\t\t\"android\",\r\n\t\t\t\"google cloud platform\",\r\n\t\t\t\"linux\",\r\n\t\t\t\"postgres\",\r\n\t\t\t\"nodejs\",\r\n\t\t\t\"express\",\r\n\t\t\t\"git\",\r\n\t\t\t\"nginx\",\r\n\t\t\t\"ssl\",\r\n\t\t\t\"formik\",\r\n\t\t\t\"yup\",\r\n\t\t\t\"react navigation\",\r\n\t\t],\r\n\t\timage: \"./images/heat.png\",\r\n\t\talt: \"heat\",\r\n\t\tgithubLinks: [\r\n\t\t\t\"https://github.com/andrewcbuensalida/react-native-tutorial-1\",\r\n\t\t],\r\n\t},\r\n\t{\r\n\t\ttitle: `LinkUp`,\r\n\t\tdescription: `A LinkedIn clone with limited functionality. It features authentication and post creation using Material UI, React, Redux, Firebase Firestore and serverless hosting.`,\r\n\t\t// URL: \"https://linkup.anhonestobserver.com\",\r\n\t\tstack: [\r\n\t\t\t\"react\",\r\n\t\t\t\"material ui\",\r\n\t\t\t\"redux\",\r\n\t\t\t\"google cloud platform\",\r\n\t\t\t\"firebase\",\r\n\t\t\t\"git\",\r\n\t\t\t\"user authentication\",\r\n\t\t],\r\n\t\timage: \"./images/linkup.png\",\r\n\t\talt: \"linkup\",\r\n\t\tgithubLinks: [\"https://github.com/andrewcbuensalida/ExampleLinkedIn\"],\r\n\t},\r\n\t{\r\n\t\ttitle: `Flexible Life`,\r\n\t\tdescription: `A simple responsive website featuring CSS Flexbox. Tech: Node, Express, Jquery, Javascript, hosted on GCP.`,\r\n\t\t// URL: \"https://flex.anhonestobserver.com/\",\r\n\t\tstack: [\r\n\t\t\t\"javascript\",\r\n\t\t\t\"html/css\",\r\n\t\t\t\"express\",\r\n\t\t\t\"git\",\r\n\t\t\t\"google cloud platform\",\r\n\t\t\t\"jquery\",\r\n\t\t\t\"linux\",\r\n\t\t\t\"nginx\",\r\n\t\t\t\"nodejs\",\r\n\t\t\t\"ssl\",\r\n\t\t\t\"responsive\",\r\n\t\t],\r\n\t\timage: \"./images/flex.png\",\r\n\t\talt: \"flex\",\r\n\t\tgithubLinks: [\r\n\t\t\t\"https://github.com/andrewcbuensalida/css-responsive-scrimba-simple-life\",\r\n\t\t],\r\n\t},\r\n\t{\r\n\t\ttitle: `Andrew's Web Dev Services`,\r\n\t\tdescription: `A simple responsive website featuring CSS Grid, and contact form submission. Tech: FormSubmit, Handlebars, Node, Express, hosted on GCP.`,\r\n\t\t// URL: \"https://webdev.anhonestobserver.com/\",\r\n\t\tstack: [\r\n\t\t\t\"javascript\",\r\n\t\t\t\"html/css\",\r\n\t\t\t\"express\",\r\n\t\t\t\"git\",\r\n\t\t\t\"google cloud platform\",\r\n\t\t\t\"handlebars\",\r\n\t\t\t\"linux\",\r\n\t\t\t\"nginx\",\r\n\t\t\t\"nodejs\",\r\n\t\t\t\"ssl\",\r\n\t\t\t\"responsive\",\r\n\t\t],\r\n\t\timage: \"./images/webdev.png\",\r\n\t\talt: \"webdev\",\r\n\t\tgithubLinks: [\r\n\t\t\t\"https://github.com/andrewcbuensalida/css-grid-responsive-scrimba-webdev-services\",\r\n\t\t],\r\n\t},\r\n\t{\r\n\t\ttitle: `Merry Dating - Mobile`,\r\n\t\tdescription: `A video speed dating app for Android and iOS. Stack: PM2 load-balancer, AWS Application Load-balancer, Oracle DB migrated to AWS RDS Aurora, React Native, React Navigation, Twilio, Node, Express, React Hook Forms, Social Signin`,\r\n\t\t// URL: null,\r\n\t\tstack: [\r\n\t\t\t\"javascript\",\r\n\t\t\t\"git\",\r\n\t\t\t\"nodejs\",\r\n\t\t\t\"express\",\r\n\t\t\t\"ngrok\",\r\n\t\t\t\"react native\",\r\n\t\t\t\"twilio\",\r\n\t\t\t\"react hook form\",\r\n\t\t\t\"user authentication\",\r\n\t\t\t\"react navigation\",\r\n\t\t\t\"oracle db\",\r\n\t\t\t\"aws aurora\",\r\n\t\t\t\"aws load-balancer\",\r\n\t\t\t\"nginx\",\r\n\t\t\t\"webrtc\",\r\n\t\t],\r\n\t\timage: \"./images/twilio.png\",\r\n\t\talt: \"Merry\",\r\n\t\tgithubLinks: [],\r\n\t},\r\n\t{\r\n\t\ttitle: `Merry Dating - Web`,\r\n\t\tdescription: `A video speed dating app for the browser. Stack: PM2 load-balancer, AWS Application Load-balancer, Oracle DB migrated to AWS RDS Aurora, React, Twilio, Node, Express`,\r\n\t\t// URL: null, //\"https://merry.anhonestobserver.com/\",\r\n\t\tstack: [\r\n\t\t\t\"javascript\",\r\n\t\t\t\"git\",\r\n\t\t\t\"nodejs\",\r\n\t\t\t\"express\",\r\n\t\t\t\"ngrok\",\r\n\t\t\t\"twilio\",\r\n\t\t\t\"react\",\r\n\t\t\t\"oracle db\",\r\n\t\t\t\"aws aurora\",\r\n\t\t\t\"aws load-balancer\",\r\n\t\t\t\"nginx\",\r\n\t\t\t\"webrtc\",\r\n\t\t],\r\n\t\timage: \"./images/twilio.png\",\r\n\t\talt: \"Merry\",\r\n\t\tgithubLinks: [],\r\n\t},\r\n\t{\r\n\t\ttitle: `Social Street`,\r\n\t\tdescription: `A crypto exchange. Stack: Websockets, Axios, Node, Express, Heroku, Material UI, React Financial Charts`,\r\n\t\t// URL: \"https://social-street-crypto.herokuapp.com/\",\r\n\t\tstack: [\r\n\t\t\t\"javascript\",\r\n\t\t\t\"data visualization\",\r\n\t\t\t\"git\",\r\n\t\t\t\"nodejs\",\r\n\t\t\t\"express\",\r\n\t\t\t\"axios\",\r\n\t\t\t\"heroku\",\r\n\t\t\t\"material ui\",\r\n\t\t\t\"react financial charts\",\r\n\t\t\t\"react router\",\r\n\t\t\t\"websockets\",\r\n\t\t],\r\n\t\timage: \"./images/socialstreet.png\",\r\n\t\talt: \"Social street\",\r\n\t\tgithubLinks: [\r\n\t\t\t\"https://github.com/andrewcbuensalida/social-street-react\",\r\n\t\t],\r\n\t},\r\n\t{\r\n\t\ttitle: `Uplift Card Game`,\r\n\t\tdescription: `A simple card game. If you get an ace in the last hand, you win. Stack: React, Tailwind, GraphQL, Postgres, Typescript, Jest, Node, Express, Apollo`,\r\n\t\t// URL: null,\r\n\t\tstack: [\r\n\t\t\t\"javascript\",\r\n\t\t\t\"git\",\r\n\t\t\t\"nodejs\",\r\n\t\t\t\"express\",\r\n\t\t\t\"tailwind\",\r\n\t\t\t\"graphql\",\r\n\t\t\t\"postgres\",\r\n\t\t\t\"typescript\",\r\n\t\t\t\"jest\",\r\n\t\t],\r\n\t\timage: \"./images/uplift.png\",\r\n\t\talt: \"Uplift\",\r\n\t\tgithubLinks: [\r\n\t\t\t\"https://github.com/andrewcbuensalida/uplift-interview-andrew-buensalida\",\r\n\t\t],\r\n\t},\r\n\t{\r\n\t\ttitle: `Yummy Bites`,\r\n\t\tdescription: `An order tracking web app for food manufacturers. Stack: React, Express, Node, Postgres, Material UI, Heroku`,\r\n\t\t// URL: \"https://yummy-bites.herokuapp.com/admin/orders\",\r\n\t\tstack: [\r\n\t\t\t\"javascript\",\r\n\t\t\t\"git\",\r\n\t\t\t\"nodejs\",\r\n\t\t\t\"express\",\r\n\t\t\t\"postgres\",\r\n\t\t\t\"material ui\",\r\n\t\t\t\"heroku\",\r\n\t\t\t\"react router\",\r\n\t\t],\r\n\t\timage: \"./images/yummybites.png\",\r\n\t\talt: \"Yummy Bites\",\r\n\t\tgithubLinks: [\r\n\t\t\t\"https://github.com/andrewcbuensalida/yumy-bites-react-node-express-postgress-NOT-TYPESCRIPT\",\r\n\t\t],\r\n\t},\r\n\t{\r\n\t\ttitle: `Yummy Bites Electron`,\r\n\t\tdescription: `ElectronJS version of Yummy Bites with Selenium and React Testing Library for Automated Testing. Stack: ElectronJS, React Testing Library, Express, Node, Postgres, Material UI`,\r\n\t\t// URL: null,\r\n\t\tstack: [\r\n\t\t\t\"javascript\",\r\n\t\t\t\"amazon web services\",\r\n\t\t\t\"git\",\r\n\t\t\t\"nodejs\",\r\n\t\t\t\"express\",\r\n\t\t\t\"postgres\",\r\n\t\t\t\"material ui\",\r\n\t\t\t\"electronjs\",\r\n\t\t\t\"selenium\",\r\n\t\t\t\"react testing library\",\r\n\t\t\t\"jest\",\r\n\t\t\t\"react router\",\r\n\t\t\t\"enzyme\",\r\n\t\t],\r\n\t\timage: \"./images/yummybiteselectron.png\",\r\n\t\talt: \"Yummy Bites Electron\",\r\n\t\tgithubLinks: [\r\n\t\t\t\"https://github.com/andrewcbuensalida/electron-react.git\",\r\n\t\t],\r\n\t},\r\n\t{\r\n\t\ttitle: `Auto Scribe`,\r\n\t\tdescription: `A voice-activated Google Assistant medical charting app. For nurse assistants, Auto Scribe records brief changes, and feeding, gives advice on transferring and CPR, and tracks top performers. Stack: Node, Google Firebase Firestore for the noSQL databse, hosted on a Google Compute Cloud virtual machine. `,\r\n\t\t// URL: \"https://assistant.google.com/services/invoke/uid/000000817e041429/alm/CgRUf1EIEgIQAQ==?hl=en\",\r\n\t\tstack: [\r\n\t\t\t\"javascript\",\r\n\t\t\t\"google cloud platform\",\r\n\t\t\t\"google assistant\",\r\n\t\t\t\"git\",\r\n\t\t\t\"firebase\",\r\n\t\t\t\"linux\",\r\n\t\t\t\"ssl\",\r\n\t\t\t\"nginx\",\r\n\t\t\t\"nodejs\",\r\n\t\t\t\"express\",\r\n\t\t\t\"ngrok\",\r\n\t\t],\r\n\t\timage: \"./images/autoscribe.png\",\r\n\t\talt: \"auto scribe\",\r\n\t\tgithubLinks: [\"https://github.com/andrewcbuensalida/doctor-google\"],\r\n\t},\r\n\t{\r\n\t\ttitle: `Andrew's Portfolio`,\r\n\t\tdescription: `Website that displays some of my projects. Includes a Lucid Chart diagram, links to the apps and their respective Github repositories.\r\n\t\t\tStack includes React for the front-end, Jest for testing, CSS from codepen, hosted on AWS Amplify for continuous deployment. `,\r\n\t\t// URL: \"https://www.anhonestobserver.com\",\r\n\t\tstack: [\r\n\t\t\t\"react\",\r\n\t\t\t\"javascript\",\r\n\t\t\t\"html/css\",\r\n\t\t\t\"amazon web services\",\r\n\t\t\t\"aws amplify\",\r\n\t\t\t\"jest\",\r\n\t\t\t\"ci/cd\",\r\n\t\t\t\"git\",\r\n\t\t\t\"responsive\",\r\n\t\t\t\"lucid chart\",\r\n\t\t],\r\n\t\timage: \"./images/portfolio.png\",\r\n\t\talt: \"portfolio\",\r\n\t\tgithubLinks: [\r\n\t\t\t\"https://github.com/andrewcbuensalida/andrews-tech-portfolio\",\r\n\t\t],\r\n\t},\r\n\t{\r\n\t\ttitle: `Crypto Logger`,\r\n\t\tdescription: `A vanilla Typescript CRUD web app featuring sorting and filtering with DynamoDB.\r\n\t\t\tStack also includes AWS Application Load Balancer, PM2 load-balancer, Node, Express, date-fns, Bootstrap, hosted on AWS EC2. `,\r\n\t\t// URL: null, //\"https://crypto.anhonestobserver.com/\",\r\n\t\tstack: [\r\n\t\t\t\"javascript\",\r\n\t\t\t\"typescript\",\r\n\t\t\t\"html/css\",\r\n\t\t\t\"amazon web services\",\r\n\t\t\t\"aws ec2\",\r\n\t\t\t\"aws route 53\",\r\n\t\t\t\"aws vpc\",\r\n\t\t\t\"aws load-balancer\",\r\n\t\t\t\"git\",\r\n\t\t\t\"bootstrap\",\r\n\t\t\t\"express\",\r\n\t\t\t\"git\",\r\n\t\t\t\"linux\",\r\n\t\t\t\"nodejs\",\r\n\t\t\t\"ssl\",\r\n\t\t\t\"aws dynamodb\",\r\n\t\t],\r\n\t\timage: \"./images/crypto.png\",\r\n\t\talt: \"crypto\",\r\n\t\tgithubLinks: [\r\n\t\t\t\"https://github.com/andrewcbuensalida/typescript-tutorial\",\r\n\t\t],\r\n\t},\r\n\t{\r\n\t\ttitle: `Babylon Appointments`,\r\n\t\tdescription: `Create medical appointments. Features availability filtering based on data from a MySQL database, with a mobile-first responsive class-based React front-end and Node back-end. Other tech includes MomentJS, hosted on AWS.`,\r\n\t\t// URL: null, //\"https://babylon.anhonestobserver.com/\",\r\n\t\tstack: [\r\n\t\t\t\"amazon web services\",\r\n\t\t\t\"aws route 53\",\r\n\t\t\t\"aws ec2\",\r\n\t\t\t\"html/css\",\r\n\t\t\t\"express\",\r\n\t\t\t\"git\",\r\n\t\t\t\"javascript\",\r\n\t\t\t\"linux\",\r\n\t\t\t\"mysql\",\r\n\t\t\t\"nginx\",\r\n\t\t\t\"nodejs\",\r\n\t\t\t\"react router\",\r\n\t\t\t\"react\",\r\n\t\t\t\"responsive\",\r\n\t\t\t\"scss\",\r\n\t\t\t\"ssl\",\r\n\t\t],\r\n\t\timage: \"./images/babylon.png\",\r\n\t\talt: \"babylon\",\r\n\t\tgithubLinks: [\"https://github.com/andrewcbuensalida/web-interview\"],\r\n\t},\r\n\t{\r\n\t\ttitle: `Andrew's Black Jack`,\r\n\t\tdescription: `Play against the dealer. Refactored vanilla Javascript to JQuery and implemented game logic. Stack is hosted in an Amazon web services S3 bucket with CI/CD.`,\r\n\t\t// URL: \"http://www.andrewsblackjack.com.s3-website-us-west-1.amazonaws.com\", // \"http://www.andrewsblackjack.com\",\r\n\t\tstack: [\r\n\t\t\t\"javascript\",\r\n\t\t\t\"html/css\",\r\n\t\t\t\"amazon web services\",\r\n\t\t\t\"aws s3\",\r\n\t\t\t\"aws route 53\",\r\n\t\t\t\"ci/cd\",\r\n\t\t\t\"git\",\r\n\t\t\t\"jquery\",\r\n\t\t],\r\n\t\timage: \"./images/blackjack.png\",\r\n\t\talt: \"blackjack\",\r\n\t\tgithubLinks: [\r\n\t\t\t\"https://github.com/andrewcbuensalida/javascript-beginners-blackjack-clever-programmer\",\r\n\t\t],\r\n\t},\r\n\t{\r\n\t\ttitle: `eMonk Accountability`,\r\n\t\tdescription: `Loss your deposit if you relapse with your bad habit. Stack includes Bootstrap, React, Typescript, AWS Lambda, Serverless Framework, DynamoDB`,\r\n\t\t// URL: null, //\"https://www.starwars.anhonestobserver.com\",\r\n\t\tstack: [\r\n\t\t\t\"amazon web services\",\r\n\t\t\t\"html/css\",\r\n\t\t\t\"serverless framework\",\r\n\t\t\t\"aws dynamodb\",\r\n\t\t\t\"react\",\r\n\t\t\t\"bootstrap\",\r\n\t\t\t\"typescript\",\r\n\t\t\t\"aws lambda\",\r\n\t\t\t\"git\",\r\n\t\t\t\"ci/cd\",\r\n\t\t\t\"enzyme\",\r\n\t\t\t\"react testing library\",\r\n\t\t\t\"jest\",\r\n\t\t],\r\n\t\timage: \"./images/emonk.png\",\r\n\t\talt: \"emonk\",\r\n\t\tgithubLinks: [\r\n\t\t\t\"https://github.com/andrewcbuensalida/serverless-framework-dynamodb-typescript\",\r\n\t\t],\r\n\t},\r\n\t{\r\n\t\ttitle: `Random Star Wars Generator`,\r\n\t\tdescription: `Generates a random Star Wars character via web scraping with Puppeteer and through an API. Stack includes Javascript for the front-end, Puppeteer for the scraper, Node/Express for the server on an AWS EC2 Linux instance, and codepipeline for CI/CD `,\r\n\t\t// URL: null, //\"https://www.starwars.anhonestobserver.com\",\r\n\t\tstack: [\r\n\t\t\t\"javascript\",\r\n\t\t\t\"html/css\",\r\n\t\t\t\"amazon web services\",\r\n\t\t\t\"aws ec2\",\r\n\t\t\t\"aws code pipeline\",\r\n\t\t\t\"aws route 53\",\r\n\t\t\t\"puppeteer\",\r\n\t\t\t\"web scraping\",\r\n\t\t\t\"nodejs\",\r\n\t\t\t\"git\",\r\n\t\t\t\"express\",\r\n\t\t\t\"ci/cd\",\r\n\t\t\t\"linux\",\r\n\t\t\t\"ssl\",\r\n\t\t\t\"nginx\",\r\n\t\t],\r\n\t\timage: \"./images/starwars.png\",\r\n\t\talt: \"starwars\",\r\n\t\tgithubLinks: [\r\n\t\t\t\"https://github.com/andrewcbuensalida/puppeteer-node-random-star-wars\",\r\n\t\t],\r\n\t},\r\n\t{\r\n\t\ttitle: `Quizzes`,\r\n\t\tdescription: `Vue website with quizzes about chemistry, biology, and math.`,\r\n\t\t// URL: \"https://www.anhonestobserver.com\",\r\n\t\tstack: [\"vue\", \"javascript\", \"html/css\", \"git\"],\r\n\t\timage: \"./images/quizzes.png\",\r\n\t\talt: \"quizzes\",\r\n\t\tgithubLinks: [\"https://github.com/andrewcbuensalida/Vue3-Crash-Course\"],\r\n\t},\r\n\t{\r\n\t\ttitle: `Hoopstr Sports Tracker `,\r\n\t\tdescription: `A voice activated sports scoring and statistics tracking web app using PHP, MySQL, Javascript, HTML, CSS, hosted on Hostgator.`,\r\n\t\t// URL: null,\r\n\t\tstack: [\"javascript\", \"html/css\", \"hostgator\", \"php\", \"mysql\", \"git\"],\r\n\t\timage: \"./images/hoopstr.png\",\r\n\t\talt: \"hoopstr\",\r\n\t\tgithubLinks: [\r\n\t\t\t\"https://github.com/andrewcbuensalida/php-html-Hoopstr-App\",\r\n\t\t],\r\n\t},\r\n\t{\r\n\t\ttitle: `Todo List`,\r\n\t\tdescription: `Add, remove, and edit a todo list. Stack includes Typescript, SCSS, CI/CD with watchtower deploying Node, and MongoDB Docker containers, hosted on Google Cloud Compute Engine`,\r\n\t\t// URL: \"https://www.todo.anhonestobserver.com\",\r\n\t\tstack: [\r\n\t\t\t\"javascript\",\r\n\t\t\t\"aws route 53\",\r\n\t\t\t\"typescript\",\r\n\t\t\t\"html/css\",\r\n\t\t\t\"scss\",\r\n\t\t\t\"google cloud platform\",\r\n\t\t\t\"nodejs\",\r\n\t\t\t\"git\",\r\n\t\t\t\"express\",\r\n\t\t\t\"mongodb\",\r\n\t\t\t\"mongoose\",\r\n\t\t\t\"docker\",\r\n\t\t\t\"nginx\",\r\n\t\t\t\"linux\",\r\n\t\t\t\"ssl\",\r\n\t\t\t\"ci/cd\",\r\n\t\t],\r\n\t\timage: \"./images/todo.png\",\r\n\t\talt: \"todo\",\r\n\t\tgithubLinks: [\"https://github.com/andrewcbuensalida/node-mongodb-todo\"],\r\n\t},\r\n\t{\r\n\t\ttitle: `PyShop`,\r\n\t\tdescription: `PyShop. Currently in-progress. A Django webapp that displays price and stock data of products. Stack includes Python, Gunicorn, Nginx, with a SQLite database, hosted on an AWS EC2 with CodePipeline for CI/CD.`,\r\n\t\t// URL: null, //\"https://pyshop.anhonestobserver.com/\",\r\n\t\tstack: [\r\n\t\t\t\"django\",\r\n\t\t\t\"html/css\",\r\n\t\t\t\"git\",\r\n\t\t\t\"amazon web services\",\r\n\t\t\t\"aws route 53\",\r\n\t\t\t\"aws ec2\",\r\n\t\t\t\"aws code pipeline\",\r\n\t\t\t\"python\",\r\n\t\t\t\"sqlite\",\r\n\t\t\t\"nginx\",\r\n\t\t\t\"ssl\",\r\n\t\t\t\"linux\",\r\n\t\t\t\"mvc\",\r\n\t\t\t\"ci/cd\",\r\n\t\t],\r\n\t\timage: \"./images/pyshop.png\",\r\n\t\talt: \"pyshop\",\r\n\t\tgithubLinks: [\r\n\t\t\t\"https://github.com/andrewcbuensalida/django-python-pyshop-mosh\",\r\n\t\t],\r\n\t},\r\n\t{\r\n\t\ttitle: `Airflow`,\r\n\t\tdescription: `Airflow task automation with AWS s3, PostgreSQL, Python, Docker`,\r\n\t\t// URL: null, //\"https://pyshop.anhonestobserver.com/\",\r\n\t\tstack: [\r\n\t\t\t\"airflow\",\r\n\t\t\t\"git\",\r\n\t\t\t\"amazon web services\",\r\n\t\t\t\"aws s3\",\r\n\t\t\t\"python\",\r\n\t\t\t\"postgres\",\r\n\t\t\t\"docker\",\r\n\t\t\t\"minio\",\r\n\t\t],\r\n\t\timage: \"./images/airflow.png\",\r\n\t\talt: \"airflow\",\r\n\t\tgithubLinks: [\"https://github.com/andrewcbuensalida/airflow\"],\r\n\t},\r\n\t{\r\n\t\ttitle: `AWS SAM`,\r\n\t\tdescription: `CI/CD pipeline with AWS SAM, Lambda, API Gateway, and GitHub Actions`,\r\n\t\t// URL: null, //\"https://pyshop.anhonestobserver.com/\",\r\n\t\tstack: [\r\n\t\t\t\"git\",\r\n\t\t\t\"github actions\",\r\n\t\t\t\"amazon web services\",\r\n\t\t\t\"aws api gateway\",\r\n\t\t\t\"aws lambda\",\r\n\t\t\t\"aws sam\",\r\n\t\t\t\"ci/cd\",\r\n\t\t],\r\n\t\timage: \"./images/sam.jpg\",\r\n\t\talt: \"sam-workshop\",\r\n\t\tgithubLinks: [\"https://github.com/andrewcbuensalida/sam-workshop\"],\r\n\t},\r\n\t{\r\n\t\ttitle: `Supervisor Notification`,\r\n\t\tdescription: `Notification webapp utilizing AWS ECS Fargate, EKS, Kubernetes, React Router, Yup, Formik`,\r\n\t\t// URL: null, //\"https://pyshop.anhonestobserver.com/\",\r\n\t\tstack: [\r\n\t\t\t\"yup\",\r\n\t\t\t\"kubernetes\",\r\n\t\t\t\"aws eks\",\r\n\t\t\t\"react router\",\r\n\t\t\t\"formik\",\r\n\t\t\t\"git\",\r\n\t\t\t\"aws ecs\",\r\n\t\t\t\"amazon web services\",\r\n\t\t\t\"aws ecr\",\r\n\t\t\t\"aws load-balancer\",\r\n\t\t\t\"axios\",\r\n\t\t\t\"docker\",\r\n\t\t\t\"express\",\r\n\t\t\t\"html/css\",\r\n\t\t\t\"javascript\",\r\n\t\t\t\"react\",\r\n\t\t\t\"lucid chart\",\r\n\t\t\t\"nodejs\",\r\n\t\t],\r\n\t\timage: \"./images/supervisor.png\",\r\n\t\talt: \"Supervisor Notification\",\r\n\t\tgithubLinks: [\r\n\t\t\t\"https://github.com/andrewcbuensalida/lightfeather-takehome\",\r\n\t\t],\r\n\t},\r\n\t{\r\n\t\ttitle: `Twitter Clone Sequelize`,\r\n\t\tdescription: `with NodeJs, Postgres, Docker`,\r\n\t\t// URL: null, //\"https://pyshop.anhonestobserver.com/\",\r\n\t\tstack: [\"sequelize\", \"git\", \"nodejs\", \"postgres\", \"docker\", \"express\"],\r\n\t\timage: \"./images/sequelize.png\",\r\n\t\talt: \"sequelize\",\r\n\t\tgithubLinks: [\r\n\t\t\t\"https://github.com/andrewcbuensalida/postgres_sequelize\",\r\n\t\t],\r\n\t},\r\n\t{\r\n\t\ttitle: `Python Automation (unfinished)`,\r\n\t\tdescription: `Web Scraping Email, Ted Talk Video downloader`,\r\n\t\t// URL: null, //\"https://pyshop.anhonestobserver.com/\",\r\n\t\tstack: [\"sequelize\", \"git\", \"nodejs\", \"postgres\", \"docker\", \"express\"],\r\n\t\timage: \"./images/pythonautomation.jpg\",\r\n\t\talt: \"sequelize\",\r\n\t\tgithubLinks: [\r\n\t\t\t\"https://github.com/andrewcbuensalida/build_tools_to_automate_python\",\r\n\t\t],\r\n\t},\r\n\t{\r\n\t\ttitle: `Python for Hackers`,\r\n\t\tdescription: `Python tools like sockets, encryption, flask, web scraping, fuzzer`,\r\n\t\t// URL: null, //\"https://pyshop.anhonestobserver.com/\",\r\n\t\tstack: [\r\n\t\t\t\"python\",\r\n\t\t\t\"git\",\r\n\t\t\t\"beautiful soup\",\r\n\t\t\t\"flask\",\r\n\t\t\t\"selenium\",\r\n\t\t\t\"web scraping\",\r\n\t\t],\r\n\t\timage: \"./images/pythonforhackers.png\",\r\n\t\talt: \"python for hackers\",\r\n\t\tgithubLinks: [\"https://github.com/andrewcbuensalida/python-sandbox\"],\r\n\t},\r\n\t{\r\n\t\ttitle: `AWS Cloudfront`,\r\n\t\tdescription: ``,\r\n\t\t// URL: null, //\"https://pyshop.anhonestobserver.com/\",\r\n\t\tstack: [\r\n\t\t\t\"amazon web services\",\r\n\t\t\t\"git\",\r\n\t\t\t\"react\",\r\n\t\t\t\"aws cloudfront\",\r\n\t\t\t\"aws s3\",\r\n\t\t\t\"aws route 53\",\r\n\t\t\t\"aws certificate manager\",\r\n\t\t],\r\n\t\timage: \"./images/cloudfront.jpg\",\r\n\t\talt: \"cloudfront\",\r\n\t\tgithubLinks: [\r\n\t\t\t\"https://github.com/andrewcbuensalida/cloudfront-s3-react\",\r\n\t\t],\r\n\t},\r\n\t{\r\n\t\ttitle: `Product Liker`,\r\n\t\tdescription: `Backend server that keeps track of products and likes. Made with RabbitMQ, Node.js, Typeorm, MySQL, MongoDB`,\r\n\t\t// URL: null, //\"https://pyshop.anhonestobserver.com/\",\r\n\t\tstack: [\"git\", \"rabbitmq\", \"nodejs\", \"typeorm\", \"mysql\", \"mongodb\"],\r\n\t\timage: \"./images/rabbitmq.png\",\r\n\t\talt: \"rabbitmq\",\r\n\t\tgithubLinks: [\r\n\t\t\t\"https://github.com/andrewcbuensalida/node-microservices\",\r\n\t\t],\r\n\t},\r\n\t{\r\n\t\ttitle: `Electrode`,\r\n\t\tdescription: `An ElectronJS app that pulls data from Pokemon API, localStorage, SQLite, and Postgres. Stack also includes: AWS Lambda, Api Gateway`,\r\n\t\t// URL: null,\r\n\t\tstack: [\r\n\t\t\t\"html/css\",\r\n\t\t\t\"amazon web services\",\r\n\t\t\t\"aws lambda\",\r\n\t\t\t\"aws api gateway\",\r\n\t\t\t\"git\",\r\n\t\t\t\"sqlite\",\r\n\t\t\t\"electronjs\",\r\n\t\t\t\"postgres\",\r\n\t\t\t\"javascript\",\r\n\t\t],\r\n\t\timage: \"./images/electrode.png\",\r\n\t\talt: \"electrode picture\",\r\n\t\tgithubLinks: [\r\n\t\t\t\"https://github.com/andrewcbuensalida/electron-vanilla-javascript-todo\",\r\n\t\t],\r\n\t},\r\n\r\n\t{\r\n\t\ttitle: `Kite Earth Wordpress`,\r\n\t\tdescription: `Static Wordpress Website with Google Maps, Photo Gallery, and Youtube integration.`,\r\n\t\t// URL: \"https://taalkiteboardassociation.wordpress.com/ \",\r\n\t\tstack: [\"wordpress\"],\r\n\t\timage: \"./images/kite.png\",\r\n\t\talt: \"kite\",\r\n\t\tgithubLinks: [],\r\n\t},\r\n\t{\r\n\t\ttitle: `Mastermind Wordpress`,\r\n\t\tdescription: `Static Wordpress Website with Google Maps, Photo Gallery, and Youtube integration.`,\r\n\t\t// URL: null, //\"https://mastermindescaperooms.wordpress.com/ \",\r\n\t\tstack: [\"wordpress\"],\r\n\t\timage: \"./images/mastermind.png\",\r\n\t\talt: \"mastermind\",\r\n\t\tgithubLinks: [],\r\n\t},\r\n\t{\r\n\t\ttitle: `VRX Wordpress`,\r\n\t\tdescription: `Static Wordpress Website with Google Maps, Photo Gallery, and Youtube integration.`,\r\n\t\t// URL: \"https://vrxph.wordpress.com/ \",\r\n\t\tstack: [\"wordpress\"],\r\n\t\timage: \"./images/vrx.png\",\r\n\t\talt: \"vrx\",\r\n\t\tgithubLinks: [],\r\n\t},\r\n];\r\nexport default projects;\r\n","/*!\n * Chart.js v3.9.1\n * https://www.chartjs.org\n * (c) 2022 Chart.js Contributors\n * Released under the MIT License\n */\nfunction noop() {}\nconst uid = (function() {\n let id = 0;\n return function() {\n return id++;\n };\n}());\nfunction isNullOrUndef(value) {\n return value === null || typeof value === 'undefined';\n}\nfunction isArray(value) {\n if (Array.isArray && Array.isArray(value)) {\n return true;\n }\n const type = Object.prototype.toString.call(value);\n if (type.slice(0, 7) === '[object' && type.slice(-6) === 'Array]') {\n return true;\n }\n return false;\n}\nfunction isObject(value) {\n return value !== null && Object.prototype.toString.call(value) === '[object Object]';\n}\nconst isNumberFinite = (value) => (typeof value === 'number' || value instanceof Number) && isFinite(+value);\nfunction finiteOrDefault(value, defaultValue) {\n return isNumberFinite(value) ? value : defaultValue;\n}\nfunction valueOrDefault(value, defaultValue) {\n return typeof value === 'undefined' ? defaultValue : value;\n}\nconst toPercentage = (value, dimension) =>\n typeof value === 'string' && value.endsWith('%') ?\n parseFloat(value) / 100\n : value / dimension;\nconst toDimension = (value, dimension) =>\n typeof value === 'string' && value.endsWith('%') ?\n parseFloat(value) / 100 * dimension\n : +value;\nfunction callback(fn, args, thisArg) {\n if (fn && typeof fn.call === 'function') {\n return fn.apply(thisArg, args);\n }\n}\nfunction each(loopable, fn, thisArg, reverse) {\n let i, len, keys;\n if (isArray(loopable)) {\n len = loopable.length;\n if (reverse) {\n for (i = len - 1; i >= 0; i--) {\n fn.call(thisArg, loopable[i], i);\n }\n } else {\n for (i = 0; i < len; i++) {\n fn.call(thisArg, loopable[i], i);\n }\n }\n } else if (isObject(loopable)) {\n keys = Object.keys(loopable);\n len = keys.length;\n for (i = 0; i < len; i++) {\n fn.call(thisArg, loopable[keys[i]], keys[i]);\n }\n }\n}\nfunction _elementsEqual(a0, a1) {\n let i, ilen, v0, v1;\n if (!a0 || !a1 || a0.length !== a1.length) {\n return false;\n }\n for (i = 0, ilen = a0.length; i < ilen; ++i) {\n v0 = a0[i];\n v1 = a1[i];\n if (v0.datasetIndex !== v1.datasetIndex || v0.index !== v1.index) {\n return false;\n }\n }\n return true;\n}\nfunction clone$1(source) {\n if (isArray(source)) {\n return source.map(clone$1);\n }\n if (isObject(source)) {\n const target = Object.create(null);\n const keys = Object.keys(source);\n const klen = keys.length;\n let k = 0;\n for (; k < klen; ++k) {\n target[keys[k]] = clone$1(source[keys[k]]);\n }\n return target;\n }\n return source;\n}\nfunction isValidKey(key) {\n return ['__proto__', 'prototype', 'constructor'].indexOf(key) === -1;\n}\nfunction _merger(key, target, source, options) {\n if (!isValidKey(key)) {\n return;\n }\n const tval = target[key];\n const sval = source[key];\n if (isObject(tval) && isObject(sval)) {\n merge(tval, sval, options);\n } else {\n target[key] = clone$1(sval);\n }\n}\nfunction merge(target, source, options) {\n const sources = isArray(source) ? source : [source];\n const ilen = sources.length;\n if (!isObject(target)) {\n return target;\n }\n options = options || {};\n const merger = options.merger || _merger;\n for (let i = 0; i < ilen; ++i) {\n source = sources[i];\n if (!isObject(source)) {\n continue;\n }\n const keys = Object.keys(source);\n for (let k = 0, klen = keys.length; k < klen; ++k) {\n merger(keys[k], target, source, options);\n }\n }\n return target;\n}\nfunction mergeIf(target, source) {\n return merge(target, source, {merger: _mergerIf});\n}\nfunction _mergerIf(key, target, source) {\n if (!isValidKey(key)) {\n return;\n }\n const tval = target[key];\n const sval = source[key];\n if (isObject(tval) && isObject(sval)) {\n mergeIf(tval, sval);\n } else if (!Object.prototype.hasOwnProperty.call(target, key)) {\n target[key] = clone$1(sval);\n }\n}\nfunction _deprecated(scope, value, previous, current) {\n if (value !== undefined) {\n console.warn(scope + ': \"' + previous +\n\t\t\t'\" is deprecated. Please use \"' + current + '\" instead');\n }\n}\nconst keyResolvers = {\n '': v => v,\n x: o => o.x,\n y: o => o.y\n};\nfunction resolveObjectKey(obj, key) {\n const resolver = keyResolvers[key] || (keyResolvers[key] = _getKeyResolver(key));\n return resolver(obj);\n}\nfunction _getKeyResolver(key) {\n const keys = _splitKey(key);\n return obj => {\n for (const k of keys) {\n if (k === '') {\n break;\n }\n obj = obj && obj[k];\n }\n return obj;\n };\n}\nfunction _splitKey(key) {\n const parts = key.split('.');\n const keys = [];\n let tmp = '';\n for (const part of parts) {\n tmp += part;\n if (tmp.endsWith('\\\\')) {\n tmp = tmp.slice(0, -1) + '.';\n } else {\n keys.push(tmp);\n tmp = '';\n }\n }\n return keys;\n}\nfunction _capitalize(str) {\n return str.charAt(0).toUpperCase() + str.slice(1);\n}\nconst defined = (value) => typeof value !== 'undefined';\nconst isFunction = (value) => typeof value === 'function';\nconst setsEqual = (a, b) => {\n if (a.size !== b.size) {\n return false;\n }\n for (const item of a) {\n if (!b.has(item)) {\n return false;\n }\n }\n return true;\n};\nfunction _isClickEvent(e) {\n return e.type === 'mouseup' || e.type === 'click' || e.type === 'contextmenu';\n}\n\nconst PI = Math.PI;\nconst TAU = 2 * PI;\nconst PITAU = TAU + PI;\nconst INFINITY = Number.POSITIVE_INFINITY;\nconst RAD_PER_DEG = PI / 180;\nconst HALF_PI = PI / 2;\nconst QUARTER_PI = PI / 4;\nconst TWO_THIRDS_PI = PI * 2 / 3;\nconst log10 = Math.log10;\nconst sign = Math.sign;\nfunction niceNum(range) {\n const roundedRange = Math.round(range);\n range = almostEquals(range, roundedRange, range / 1000) ? roundedRange : range;\n const niceRange = Math.pow(10, Math.floor(log10(range)));\n const fraction = range / niceRange;\n const niceFraction = fraction <= 1 ? 1 : fraction <= 2 ? 2 : fraction <= 5 ? 5 : 10;\n return niceFraction * niceRange;\n}\nfunction _factorize(value) {\n const result = [];\n const sqrt = Math.sqrt(value);\n let i;\n for (i = 1; i < sqrt; i++) {\n if (value % i === 0) {\n result.push(i);\n result.push(value / i);\n }\n }\n if (sqrt === (sqrt | 0)) {\n result.push(sqrt);\n }\n result.sort((a, b) => a - b).pop();\n return result;\n}\nfunction isNumber(n) {\n return !isNaN(parseFloat(n)) && isFinite(n);\n}\nfunction almostEquals(x, y, epsilon) {\n return Math.abs(x - y) < epsilon;\n}\nfunction almostWhole(x, epsilon) {\n const rounded = Math.round(x);\n return ((rounded - epsilon) <= x) && ((rounded + epsilon) >= x);\n}\nfunction _setMinAndMaxByKey(array, target, property) {\n let i, ilen, value;\n for (i = 0, ilen = array.length; i < ilen; i++) {\n value = array[i][property];\n if (!isNaN(value)) {\n target.min = Math.min(target.min, value);\n target.max = Math.max(target.max, value);\n }\n }\n}\nfunction toRadians(degrees) {\n return degrees * (PI / 180);\n}\nfunction toDegrees(radians) {\n return radians * (180 / PI);\n}\nfunction _decimalPlaces(x) {\n if (!isNumberFinite(x)) {\n return;\n }\n let e = 1;\n let p = 0;\n while (Math.round(x * e) / e !== x) {\n e *= 10;\n p++;\n }\n return p;\n}\nfunction getAngleFromPoint(centrePoint, anglePoint) {\n const distanceFromXCenter = anglePoint.x - centrePoint.x;\n const distanceFromYCenter = anglePoint.y - centrePoint.y;\n const radialDistanceFromCenter = Math.sqrt(distanceFromXCenter * distanceFromXCenter + distanceFromYCenter * distanceFromYCenter);\n let angle = Math.atan2(distanceFromYCenter, distanceFromXCenter);\n if (angle < (-0.5 * PI)) {\n angle += TAU;\n }\n return {\n angle,\n distance: radialDistanceFromCenter\n };\n}\nfunction distanceBetweenPoints(pt1, pt2) {\n return Math.sqrt(Math.pow(pt2.x - pt1.x, 2) + Math.pow(pt2.y - pt1.y, 2));\n}\nfunction _angleDiff(a, b) {\n return (a - b + PITAU) % TAU - PI;\n}\nfunction _normalizeAngle(a) {\n return (a % TAU + TAU) % TAU;\n}\nfunction _angleBetween(angle, start, end, sameAngleIsFullCircle) {\n const a = _normalizeAngle(angle);\n const s = _normalizeAngle(start);\n const e = _normalizeAngle(end);\n const angleToStart = _normalizeAngle(s - a);\n const angleToEnd = _normalizeAngle(e - a);\n const startToAngle = _normalizeAngle(a - s);\n const endToAngle = _normalizeAngle(a - e);\n return a === s || a === e || (sameAngleIsFullCircle && s === e)\n || (angleToStart > angleToEnd && startToAngle < endToAngle);\n}\nfunction _limitValue(value, min, max) {\n return Math.max(min, Math.min(max, value));\n}\nfunction _int16Range(value) {\n return _limitValue(value, -32768, 32767);\n}\nfunction _isBetween(value, start, end, epsilon = 1e-6) {\n return value >= Math.min(start, end) - epsilon && value <= Math.max(start, end) + epsilon;\n}\n\nfunction _lookup(table, value, cmp) {\n cmp = cmp || ((index) => table[index] < value);\n let hi = table.length - 1;\n let lo = 0;\n let mid;\n while (hi - lo > 1) {\n mid = (lo + hi) >> 1;\n if (cmp(mid)) {\n lo = mid;\n } else {\n hi = mid;\n }\n }\n return {lo, hi};\n}\nconst _lookupByKey = (table, key, value, last) =>\n _lookup(table, value, last\n ? index => table[index][key] <= value\n : index => table[index][key] < value);\nconst _rlookupByKey = (table, key, value) =>\n _lookup(table, value, index => table[index][key] >= value);\nfunction _filterBetween(values, min, max) {\n let start = 0;\n let end = values.length;\n while (start < end && values[start] < min) {\n start++;\n }\n while (end > start && values[end - 1] > max) {\n end--;\n }\n return start > 0 || end < values.length\n ? values.slice(start, end)\n : values;\n}\nconst arrayEvents = ['push', 'pop', 'shift', 'splice', 'unshift'];\nfunction listenArrayEvents(array, listener) {\n if (array._chartjs) {\n array._chartjs.listeners.push(listener);\n return;\n }\n Object.defineProperty(array, '_chartjs', {\n configurable: true,\n enumerable: false,\n value: {\n listeners: [listener]\n }\n });\n arrayEvents.forEach((key) => {\n const method = '_onData' + _capitalize(key);\n const base = array[key];\n Object.defineProperty(array, key, {\n configurable: true,\n enumerable: false,\n value(...args) {\n const res = base.apply(this, args);\n array._chartjs.listeners.forEach((object) => {\n if (typeof object[method] === 'function') {\n object[method](...args);\n }\n });\n return res;\n }\n });\n });\n}\nfunction unlistenArrayEvents(array, listener) {\n const stub = array._chartjs;\n if (!stub) {\n return;\n }\n const listeners = stub.listeners;\n const index = listeners.indexOf(listener);\n if (index !== -1) {\n listeners.splice(index, 1);\n }\n if (listeners.length > 0) {\n return;\n }\n arrayEvents.forEach((key) => {\n delete array[key];\n });\n delete array._chartjs;\n}\nfunction _arrayUnique(items) {\n const set = new Set();\n let i, ilen;\n for (i = 0, ilen = items.length; i < ilen; ++i) {\n set.add(items[i]);\n }\n if (set.size === ilen) {\n return items;\n }\n return Array.from(set);\n}\n\nfunction fontString(pixelSize, fontStyle, fontFamily) {\n return fontStyle + ' ' + pixelSize + 'px ' + fontFamily;\n}\nconst requestAnimFrame = (function() {\n if (typeof window === 'undefined') {\n return function(callback) {\n return callback();\n };\n }\n return window.requestAnimationFrame;\n}());\nfunction throttled(fn, thisArg, updateFn) {\n const updateArgs = updateFn || ((args) => Array.prototype.slice.call(args));\n let ticking = false;\n let args = [];\n return function(...rest) {\n args = updateArgs(rest);\n if (!ticking) {\n ticking = true;\n requestAnimFrame.call(window, () => {\n ticking = false;\n fn.apply(thisArg, args);\n });\n }\n };\n}\nfunction debounce(fn, delay) {\n let timeout;\n return function(...args) {\n if (delay) {\n clearTimeout(timeout);\n timeout = setTimeout(fn, delay, args);\n } else {\n fn.apply(this, args);\n }\n return delay;\n };\n}\nconst _toLeftRightCenter = (align) => align === 'start' ? 'left' : align === 'end' ? 'right' : 'center';\nconst _alignStartEnd = (align, start, end) => align === 'start' ? start : align === 'end' ? end : (start + end) / 2;\nconst _textX = (align, left, right, rtl) => {\n const check = rtl ? 'left' : 'right';\n return align === check ? right : align === 'center' ? (left + right) / 2 : left;\n};\nfunction _getStartAndCountOfVisiblePoints(meta, points, animationsDisabled) {\n const pointCount = points.length;\n let start = 0;\n let count = pointCount;\n if (meta._sorted) {\n const {iScale, _parsed} = meta;\n const axis = iScale.axis;\n const {min, max, minDefined, maxDefined} = iScale.getUserBounds();\n if (minDefined) {\n start = _limitValue(Math.min(\n _lookupByKey(_parsed, iScale.axis, min).lo,\n animationsDisabled ? pointCount : _lookupByKey(points, axis, iScale.getPixelForValue(min)).lo),\n 0, pointCount - 1);\n }\n if (maxDefined) {\n count = _limitValue(Math.max(\n _lookupByKey(_parsed, iScale.axis, max, true).hi + 1,\n animationsDisabled ? 0 : _lookupByKey(points, axis, iScale.getPixelForValue(max), true).hi + 1),\n start, pointCount) - start;\n } else {\n count = pointCount - start;\n }\n }\n return {start, count};\n}\nfunction _scaleRangesChanged(meta) {\n const {xScale, yScale, _scaleRanges} = meta;\n const newRanges = {\n xmin: xScale.min,\n xmax: xScale.max,\n ymin: yScale.min,\n ymax: yScale.max\n };\n if (!_scaleRanges) {\n meta._scaleRanges = newRanges;\n return true;\n }\n const changed = _scaleRanges.xmin !== xScale.min\n\t\t|| _scaleRanges.xmax !== xScale.max\n\t\t|| _scaleRanges.ymin !== yScale.min\n\t\t|| _scaleRanges.ymax !== yScale.max;\n Object.assign(_scaleRanges, newRanges);\n return changed;\n}\n\nconst atEdge = (t) => t === 0 || t === 1;\nconst elasticIn = (t, s, p) => -(Math.pow(2, 10 * (t -= 1)) * Math.sin((t - s) * TAU / p));\nconst elasticOut = (t, s, p) => Math.pow(2, -10 * t) * Math.sin((t - s) * TAU / p) + 1;\nconst effects = {\n linear: t => t,\n easeInQuad: t => t * t,\n easeOutQuad: t => -t * (t - 2),\n easeInOutQuad: t => ((t /= 0.5) < 1)\n ? 0.5 * t * t\n : -0.5 * ((--t) * (t - 2) - 1),\n easeInCubic: t => t * t * t,\n easeOutCubic: t => (t -= 1) * t * t + 1,\n easeInOutCubic: t => ((t /= 0.5) < 1)\n ? 0.5 * t * t * t\n : 0.5 * ((t -= 2) * t * t + 2),\n easeInQuart: t => t * t * t * t,\n easeOutQuart: t => -((t -= 1) * t * t * t - 1),\n easeInOutQuart: t => ((t /= 0.5) < 1)\n ? 0.5 * t * t * t * t\n : -0.5 * ((t -= 2) * t * t * t - 2),\n easeInQuint: t => t * t * t * t * t,\n easeOutQuint: t => (t -= 1) * t * t * t * t + 1,\n easeInOutQuint: t => ((t /= 0.5) < 1)\n ? 0.5 * t * t * t * t * t\n : 0.5 * ((t -= 2) * t * t * t * t + 2),\n easeInSine: t => -Math.cos(t * HALF_PI) + 1,\n easeOutSine: t => Math.sin(t * HALF_PI),\n easeInOutSine: t => -0.5 * (Math.cos(PI * t) - 1),\n easeInExpo: t => (t === 0) ? 0 : Math.pow(2, 10 * (t - 1)),\n easeOutExpo: t => (t === 1) ? 1 : -Math.pow(2, -10 * t) + 1,\n easeInOutExpo: t => atEdge(t) ? t : t < 0.5\n ? 0.5 * Math.pow(2, 10 * (t * 2 - 1))\n : 0.5 * (-Math.pow(2, -10 * (t * 2 - 1)) + 2),\n easeInCirc: t => (t >= 1) ? t : -(Math.sqrt(1 - t * t) - 1),\n easeOutCirc: t => Math.sqrt(1 - (t -= 1) * t),\n easeInOutCirc: t => ((t /= 0.5) < 1)\n ? -0.5 * (Math.sqrt(1 - t * t) - 1)\n : 0.5 * (Math.sqrt(1 - (t -= 2) * t) + 1),\n easeInElastic: t => atEdge(t) ? t : elasticIn(t, 0.075, 0.3),\n easeOutElastic: t => atEdge(t) ? t : elasticOut(t, 0.075, 0.3),\n easeInOutElastic(t) {\n const s = 0.1125;\n const p = 0.45;\n return atEdge(t) ? t :\n t < 0.5\n ? 0.5 * elasticIn(t * 2, s, p)\n : 0.5 + 0.5 * elasticOut(t * 2 - 1, s, p);\n },\n easeInBack(t) {\n const s = 1.70158;\n return t * t * ((s + 1) * t - s);\n },\n easeOutBack(t) {\n const s = 1.70158;\n return (t -= 1) * t * ((s + 1) * t + s) + 1;\n },\n easeInOutBack(t) {\n let s = 1.70158;\n if ((t /= 0.5) < 1) {\n return 0.5 * (t * t * (((s *= (1.525)) + 1) * t - s));\n }\n return 0.5 * ((t -= 2) * t * (((s *= (1.525)) + 1) * t + s) + 2);\n },\n easeInBounce: t => 1 - effects.easeOutBounce(1 - t),\n easeOutBounce(t) {\n const m = 7.5625;\n const d = 2.75;\n if (t < (1 / d)) {\n return m * t * t;\n }\n if (t < (2 / d)) {\n return m * (t -= (1.5 / d)) * t + 0.75;\n }\n if (t < (2.5 / d)) {\n return m * (t -= (2.25 / d)) * t + 0.9375;\n }\n return m * (t -= (2.625 / d)) * t + 0.984375;\n },\n easeInOutBounce: t => (t < 0.5)\n ? effects.easeInBounce(t * 2) * 0.5\n : effects.easeOutBounce(t * 2 - 1) * 0.5 + 0.5,\n};\n\n/*!\n * @kurkle/color v0.2.1\n * https://github.com/kurkle/color#readme\n * (c) 2022 Jukka Kurkela\n * Released under the MIT License\n */\nfunction round(v) {\n return v + 0.5 | 0;\n}\nconst lim = (v, l, h) => Math.max(Math.min(v, h), l);\nfunction p2b(v) {\n return lim(round(v * 2.55), 0, 255);\n}\nfunction n2b(v) {\n return lim(round(v * 255), 0, 255);\n}\nfunction b2n(v) {\n return lim(round(v / 2.55) / 100, 0, 1);\n}\nfunction n2p(v) {\n return lim(round(v * 100), 0, 100);\n}\nconst map$1 = {0: 0, 1: 1, 2: 2, 3: 3, 4: 4, 5: 5, 6: 6, 7: 7, 8: 8, 9: 9, A: 10, B: 11, C: 12, D: 13, E: 14, F: 15, a: 10, b: 11, c: 12, d: 13, e: 14, f: 15};\nconst hex = [...'0123456789ABCDEF'];\nconst h1 = b => hex[b & 0xF];\nconst h2 = b => hex[(b & 0xF0) >> 4] + hex[b & 0xF];\nconst eq = b => ((b & 0xF0) >> 4) === (b & 0xF);\nconst isShort = v => eq(v.r) && eq(v.g) && eq(v.b) && eq(v.a);\nfunction hexParse(str) {\n var len = str.length;\n var ret;\n if (str[0] === '#') {\n if (len === 4 || len === 5) {\n ret = {\n r: 255 & map$1[str[1]] * 17,\n g: 255 & map$1[str[2]] * 17,\n b: 255 & map$1[str[3]] * 17,\n a: len === 5 ? map$1[str[4]] * 17 : 255\n };\n } else if (len === 7 || len === 9) {\n ret = {\n r: map$1[str[1]] << 4 | map$1[str[2]],\n g: map$1[str[3]] << 4 | map$1[str[4]],\n b: map$1[str[5]] << 4 | map$1[str[6]],\n a: len === 9 ? (map$1[str[7]] << 4 | map$1[str[8]]) : 255\n };\n }\n }\n return ret;\n}\nconst alpha = (a, f) => a < 255 ? f(a) : '';\nfunction hexString(v) {\n var f = isShort(v) ? h1 : h2;\n return v\n ? '#' + f(v.r) + f(v.g) + f(v.b) + alpha(v.a, f)\n : undefined;\n}\nconst HUE_RE = /^(hsla?|hwb|hsv)\\(\\s*([-+.e\\d]+)(?:deg)?[\\s,]+([-+.e\\d]+)%[\\s,]+([-+.e\\d]+)%(?:[\\s,]+([-+.e\\d]+)(%)?)?\\s*\\)$/;\nfunction hsl2rgbn(h, s, l) {\n const a = s * Math.min(l, 1 - l);\n const f = (n, k = (n + h / 30) % 12) => l - a * Math.max(Math.min(k - 3, 9 - k, 1), -1);\n return [f(0), f(8), f(4)];\n}\nfunction hsv2rgbn(h, s, v) {\n const f = (n, k = (n + h / 60) % 6) => v - v * s * Math.max(Math.min(k, 4 - k, 1), 0);\n return [f(5), f(3), f(1)];\n}\nfunction hwb2rgbn(h, w, b) {\n const rgb = hsl2rgbn(h, 1, 0.5);\n let i;\n if (w + b > 1) {\n i = 1 / (w + b);\n w *= i;\n b *= i;\n }\n for (i = 0; i < 3; i++) {\n rgb[i] *= 1 - w - b;\n rgb[i] += w;\n }\n return rgb;\n}\nfunction hueValue(r, g, b, d, max) {\n if (r === max) {\n return ((g - b) / d) + (g < b ? 6 : 0);\n }\n if (g === max) {\n return (b - r) / d + 2;\n }\n return (r - g) / d + 4;\n}\nfunction rgb2hsl(v) {\n const range = 255;\n const r = v.r / range;\n const g = v.g / range;\n const b = v.b / range;\n const max = Math.max(r, g, b);\n const min = Math.min(r, g, b);\n const l = (max + min) / 2;\n let h, s, d;\n if (max !== min) {\n d = max - min;\n s = l > 0.5 ? d / (2 - max - min) : d / (max + min);\n h = hueValue(r, g, b, d, max);\n h = h * 60 + 0.5;\n }\n return [h | 0, s || 0, l];\n}\nfunction calln(f, a, b, c) {\n return (\n Array.isArray(a)\n ? f(a[0], a[1], a[2])\n : f(a, b, c)\n ).map(n2b);\n}\nfunction hsl2rgb(h, s, l) {\n return calln(hsl2rgbn, h, s, l);\n}\nfunction hwb2rgb(h, w, b) {\n return calln(hwb2rgbn, h, w, b);\n}\nfunction hsv2rgb(h, s, v) {\n return calln(hsv2rgbn, h, s, v);\n}\nfunction hue(h) {\n return (h % 360 + 360) % 360;\n}\nfunction hueParse(str) {\n const m = HUE_RE.exec(str);\n let a = 255;\n let v;\n if (!m) {\n return;\n }\n if (m[5] !== v) {\n a = m[6] ? p2b(+m[5]) : n2b(+m[5]);\n }\n const h = hue(+m[2]);\n const p1 = +m[3] / 100;\n const p2 = +m[4] / 100;\n if (m[1] === 'hwb') {\n v = hwb2rgb(h, p1, p2);\n } else if (m[1] === 'hsv') {\n v = hsv2rgb(h, p1, p2);\n } else {\n v = hsl2rgb(h, p1, p2);\n }\n return {\n r: v[0],\n g: v[1],\n b: v[2],\n a: a\n };\n}\nfunction rotate(v, deg) {\n var h = rgb2hsl(v);\n h[0] = hue(h[0] + deg);\n h = hsl2rgb(h);\n v.r = h[0];\n v.g = h[1];\n v.b = h[2];\n}\nfunction hslString(v) {\n if (!v) {\n return;\n }\n const a = rgb2hsl(v);\n const h = a[0];\n const s = n2p(a[1]);\n const l = n2p(a[2]);\n return v.a < 255\n ? `hsla(${h}, ${s}%, ${l}%, ${b2n(v.a)})`\n : `hsl(${h}, ${s}%, ${l}%)`;\n}\nconst map = {\n x: 'dark',\n Z: 'light',\n Y: 're',\n X: 'blu',\n W: 'gr',\n V: 'medium',\n U: 'slate',\n A: 'ee',\n T: 'ol',\n S: 'or',\n B: 'ra',\n C: 'lateg',\n D: 'ights',\n R: 'in',\n Q: 'turquois',\n E: 'hi',\n P: 'ro',\n O: 'al',\n N: 'le',\n M: 'de',\n L: 'yello',\n F: 'en',\n K: 'ch',\n G: 'arks',\n H: 'ea',\n I: 'ightg',\n J: 'wh'\n};\nconst names$1 = {\n OiceXe: 'f0f8ff',\n antiquewEte: 'faebd7',\n aqua: 'ffff',\n aquamarRe: '7fffd4',\n azuY: 'f0ffff',\n beige: 'f5f5dc',\n bisque: 'ffe4c4',\n black: '0',\n blanKedOmond: 'ffebcd',\n Xe: 'ff',\n XeviTet: '8a2be2',\n bPwn: 'a52a2a',\n burlywood: 'deb887',\n caMtXe: '5f9ea0',\n KartYuse: '7fff00',\n KocTate: 'd2691e',\n cSO: 'ff7f50',\n cSnflowerXe: '6495ed',\n cSnsilk: 'fff8dc',\n crimson: 'dc143c',\n cyan: 'ffff',\n xXe: '8b',\n xcyan: '8b8b',\n xgTMnPd: 'b8860b',\n xWay: 'a9a9a9',\n xgYF: '6400',\n xgYy: 'a9a9a9',\n xkhaki: 'bdb76b',\n xmagFta: '8b008b',\n xTivegYF: '556b2f',\n xSange: 'ff8c00',\n xScEd: '9932cc',\n xYd: '8b0000',\n xsOmon: 'e9967a',\n xsHgYF: '8fbc8f',\n xUXe: '483d8b',\n xUWay: '2f4f4f',\n xUgYy: '2f4f4f',\n xQe: 'ced1',\n xviTet: '9400d3',\n dAppRk: 'ff1493',\n dApskyXe: 'bfff',\n dimWay: '696969',\n dimgYy: '696969',\n dodgerXe: '1e90ff',\n fiYbrick: 'b22222',\n flSOwEte: 'fffaf0',\n foYstWAn: '228b22',\n fuKsia: 'ff00ff',\n gaRsbSo: 'dcdcdc',\n ghostwEte: 'f8f8ff',\n gTd: 'ffd700',\n gTMnPd: 'daa520',\n Way: '808080',\n gYF: '8000',\n gYFLw: 'adff2f',\n gYy: '808080',\n honeyMw: 'f0fff0',\n hotpRk: 'ff69b4',\n RdianYd: 'cd5c5c',\n Rdigo: '4b0082',\n ivSy: 'fffff0',\n khaki: 'f0e68c',\n lavFMr: 'e6e6fa',\n lavFMrXsh: 'fff0f5',\n lawngYF: '7cfc00',\n NmoncEffon: 'fffacd',\n ZXe: 'add8e6',\n ZcSO: 'f08080',\n Zcyan: 'e0ffff',\n ZgTMnPdLw: 'fafad2',\n ZWay: 'd3d3d3',\n ZgYF: '90ee90',\n ZgYy: 'd3d3d3',\n ZpRk: 'ffb6c1',\n ZsOmon: 'ffa07a',\n ZsHgYF: '20b2aa',\n ZskyXe: '87cefa',\n ZUWay: '778899',\n ZUgYy: '778899',\n ZstAlXe: 'b0c4de',\n ZLw: 'ffffe0',\n lime: 'ff00',\n limegYF: '32cd32',\n lRF: 'faf0e6',\n magFta: 'ff00ff',\n maPon: '800000',\n VaquamarRe: '66cdaa',\n VXe: 'cd',\n VScEd: 'ba55d3',\n VpurpN: '9370db',\n VsHgYF: '3cb371',\n VUXe: '7b68ee',\n VsprRggYF: 'fa9a',\n VQe: '48d1cc',\n VviTetYd: 'c71585',\n midnightXe: '191970',\n mRtcYam: 'f5fffa',\n mistyPse: 'ffe4e1',\n moccasR: 'ffe4b5',\n navajowEte: 'ffdead',\n navy: '80',\n Tdlace: 'fdf5e6',\n Tive: '808000',\n TivedBb: '6b8e23',\n Sange: 'ffa500',\n SangeYd: 'ff4500',\n ScEd: 'da70d6',\n pOegTMnPd: 'eee8aa',\n pOegYF: '98fb98',\n pOeQe: 'afeeee',\n pOeviTetYd: 'db7093',\n papayawEp: 'ffefd5',\n pHKpuff: 'ffdab9',\n peru: 'cd853f',\n pRk: 'ffc0cb',\n plum: 'dda0dd',\n powMrXe: 'b0e0e6',\n purpN: '800080',\n YbeccapurpN: '663399',\n Yd: 'ff0000',\n Psybrown: 'bc8f8f',\n PyOXe: '4169e1',\n saddNbPwn: '8b4513',\n sOmon: 'fa8072',\n sandybPwn: 'f4a460',\n sHgYF: '2e8b57',\n sHshell: 'fff5ee',\n siFna: 'a0522d',\n silver: 'c0c0c0',\n skyXe: '87ceeb',\n UXe: '6a5acd',\n UWay: '708090',\n UgYy: '708090',\n snow: 'fffafa',\n sprRggYF: 'ff7f',\n stAlXe: '4682b4',\n tan: 'd2b48c',\n teO: '8080',\n tEstN: 'd8bfd8',\n tomato: 'ff6347',\n Qe: '40e0d0',\n viTet: 'ee82ee',\n JHt: 'f5deb3',\n wEte: 'ffffff',\n wEtesmoke: 'f5f5f5',\n Lw: 'ffff00',\n LwgYF: '9acd32'\n};\nfunction unpack() {\n const unpacked = {};\n const keys = Object.keys(names$1);\n const tkeys = Object.keys(map);\n let i, j, k, ok, nk;\n for (i = 0; i < keys.length; i++) {\n ok = nk = keys[i];\n for (j = 0; j < tkeys.length; j++) {\n k = tkeys[j];\n nk = nk.replace(k, map[k]);\n }\n k = parseInt(names$1[ok], 16);\n unpacked[nk] = [k >> 16 & 0xFF, k >> 8 & 0xFF, k & 0xFF];\n }\n return unpacked;\n}\nlet names;\nfunction nameParse(str) {\n if (!names) {\n names = unpack();\n names.transparent = [0, 0, 0, 0];\n }\n const a = names[str.toLowerCase()];\n return a && {\n r: a[0],\n g: a[1],\n b: a[2],\n a: a.length === 4 ? a[3] : 255\n };\n}\nconst RGB_RE = /^rgba?\\(\\s*([-+.\\d]+)(%)?[\\s,]+([-+.e\\d]+)(%)?[\\s,]+([-+.e\\d]+)(%)?(?:[\\s,/]+([-+.e\\d]+)(%)?)?\\s*\\)$/;\nfunction rgbParse(str) {\n const m = RGB_RE.exec(str);\n let a = 255;\n let r, g, b;\n if (!m) {\n return;\n }\n if (m[7] !== r) {\n const v = +m[7];\n a = m[8] ? p2b(v) : lim(v * 255, 0, 255);\n }\n r = +m[1];\n g = +m[3];\n b = +m[5];\n r = 255 & (m[2] ? p2b(r) : lim(r, 0, 255));\n g = 255 & (m[4] ? p2b(g) : lim(g, 0, 255));\n b = 255 & (m[6] ? p2b(b) : lim(b, 0, 255));\n return {\n r: r,\n g: g,\n b: b,\n a: a\n };\n}\nfunction rgbString(v) {\n return v && (\n v.a < 255\n ? `rgba(${v.r}, ${v.g}, ${v.b}, ${b2n(v.a)})`\n : `rgb(${v.r}, ${v.g}, ${v.b})`\n );\n}\nconst to = v => v <= 0.0031308 ? v * 12.92 : Math.pow(v, 1.0 / 2.4) * 1.055 - 0.055;\nconst from = v => v <= 0.04045 ? v / 12.92 : Math.pow((v + 0.055) / 1.055, 2.4);\nfunction interpolate(rgb1, rgb2, t) {\n const r = from(b2n(rgb1.r));\n const g = from(b2n(rgb1.g));\n const b = from(b2n(rgb1.b));\n return {\n r: n2b(to(r + t * (from(b2n(rgb2.r)) - r))),\n g: n2b(to(g + t * (from(b2n(rgb2.g)) - g))),\n b: n2b(to(b + t * (from(b2n(rgb2.b)) - b))),\n a: rgb1.a + t * (rgb2.a - rgb1.a)\n };\n}\nfunction modHSL(v, i, ratio) {\n if (v) {\n let tmp = rgb2hsl(v);\n tmp[i] = Math.max(0, Math.min(tmp[i] + tmp[i] * ratio, i === 0 ? 360 : 1));\n tmp = hsl2rgb(tmp);\n v.r = tmp[0];\n v.g = tmp[1];\n v.b = tmp[2];\n }\n}\nfunction clone(v, proto) {\n return v ? Object.assign(proto || {}, v) : v;\n}\nfunction fromObject(input) {\n var v = {r: 0, g: 0, b: 0, a: 255};\n if (Array.isArray(input)) {\n if (input.length >= 3) {\n v = {r: input[0], g: input[1], b: input[2], a: 255};\n if (input.length > 3) {\n v.a = n2b(input[3]);\n }\n }\n } else {\n v = clone(input, {r: 0, g: 0, b: 0, a: 1});\n v.a = n2b(v.a);\n }\n return v;\n}\nfunction functionParse(str) {\n if (str.charAt(0) === 'r') {\n return rgbParse(str);\n }\n return hueParse(str);\n}\nclass Color {\n constructor(input) {\n if (input instanceof Color) {\n return input;\n }\n const type = typeof input;\n let v;\n if (type === 'object') {\n v = fromObject(input);\n } else if (type === 'string') {\n v = hexParse(input) || nameParse(input) || functionParse(input);\n }\n this._rgb = v;\n this._valid = !!v;\n }\n get valid() {\n return this._valid;\n }\n get rgb() {\n var v = clone(this._rgb);\n if (v) {\n v.a = b2n(v.a);\n }\n return v;\n }\n set rgb(obj) {\n this._rgb = fromObject(obj);\n }\n rgbString() {\n return this._valid ? rgbString(this._rgb) : undefined;\n }\n hexString() {\n return this._valid ? hexString(this._rgb) : undefined;\n }\n hslString() {\n return this._valid ? hslString(this._rgb) : undefined;\n }\n mix(color, weight) {\n if (color) {\n const c1 = this.rgb;\n const c2 = color.rgb;\n let w2;\n const p = weight === w2 ? 0.5 : weight;\n const w = 2 * p - 1;\n const a = c1.a - c2.a;\n const w1 = ((w * a === -1 ? w : (w + a) / (1 + w * a)) + 1) / 2.0;\n w2 = 1 - w1;\n c1.r = 0xFF & w1 * c1.r + w2 * c2.r + 0.5;\n c1.g = 0xFF & w1 * c1.g + w2 * c2.g + 0.5;\n c1.b = 0xFF & w1 * c1.b + w2 * c2.b + 0.5;\n c1.a = p * c1.a + (1 - p) * c2.a;\n this.rgb = c1;\n }\n return this;\n }\n interpolate(color, t) {\n if (color) {\n this._rgb = interpolate(this._rgb, color._rgb, t);\n }\n return this;\n }\n clone() {\n return new Color(this.rgb);\n }\n alpha(a) {\n this._rgb.a = n2b(a);\n return this;\n }\n clearer(ratio) {\n const rgb = this._rgb;\n rgb.a *= 1 - ratio;\n return this;\n }\n greyscale() {\n const rgb = this._rgb;\n const val = round(rgb.r * 0.3 + rgb.g * 0.59 + rgb.b * 0.11);\n rgb.r = rgb.g = rgb.b = val;\n return this;\n }\n opaquer(ratio) {\n const rgb = this._rgb;\n rgb.a *= 1 + ratio;\n return this;\n }\n negate() {\n const v = this._rgb;\n v.r = 255 - v.r;\n v.g = 255 - v.g;\n v.b = 255 - v.b;\n return this;\n }\n lighten(ratio) {\n modHSL(this._rgb, 2, ratio);\n return this;\n }\n darken(ratio) {\n modHSL(this._rgb, 2, -ratio);\n return this;\n }\n saturate(ratio) {\n modHSL(this._rgb, 1, ratio);\n return this;\n }\n desaturate(ratio) {\n modHSL(this._rgb, 1, -ratio);\n return this;\n }\n rotate(deg) {\n rotate(this._rgb, deg);\n return this;\n }\n}\nfunction index_esm(input) {\n return new Color(input);\n}\n\nfunction isPatternOrGradient(value) {\n if (value && typeof value === 'object') {\n const type = value.toString();\n return type === '[object CanvasPattern]' || type === '[object CanvasGradient]';\n }\n return false;\n}\nfunction color(value) {\n return isPatternOrGradient(value) ? value : index_esm(value);\n}\nfunction getHoverColor(value) {\n return isPatternOrGradient(value)\n ? value\n : index_esm(value).saturate(0.5).darken(0.1).hexString();\n}\n\nconst overrides = Object.create(null);\nconst descriptors = Object.create(null);\nfunction getScope$1(node, key) {\n if (!key) {\n return node;\n }\n const keys = key.split('.');\n for (let i = 0, n = keys.length; i < n; ++i) {\n const k = keys[i];\n node = node[k] || (node[k] = Object.create(null));\n }\n return node;\n}\nfunction set(root, scope, values) {\n if (typeof scope === 'string') {\n return merge(getScope$1(root, scope), values);\n }\n return merge(getScope$1(root, ''), scope);\n}\nclass Defaults {\n constructor(_descriptors) {\n this.animation = undefined;\n this.backgroundColor = 'rgba(0,0,0,0.1)';\n this.borderColor = 'rgba(0,0,0,0.1)';\n this.color = '#666';\n this.datasets = {};\n this.devicePixelRatio = (context) => context.chart.platform.getDevicePixelRatio();\n this.elements = {};\n this.events = [\n 'mousemove',\n 'mouseout',\n 'click',\n 'touchstart',\n 'touchmove'\n ];\n this.font = {\n family: \"'Helvetica Neue', 'Helvetica', 'Arial', sans-serif\",\n size: 12,\n style: 'normal',\n lineHeight: 1.2,\n weight: null\n };\n this.hover = {};\n this.hoverBackgroundColor = (ctx, options) => getHoverColor(options.backgroundColor);\n this.hoverBorderColor = (ctx, options) => getHoverColor(options.borderColor);\n this.hoverColor = (ctx, options) => getHoverColor(options.color);\n this.indexAxis = 'x';\n this.interaction = {\n mode: 'nearest',\n intersect: true,\n includeInvisible: false\n };\n this.maintainAspectRatio = true;\n this.onHover = null;\n this.onClick = null;\n this.parsing = true;\n this.plugins = {};\n this.responsive = true;\n this.scale = undefined;\n this.scales = {};\n this.showLine = true;\n this.drawActiveElementsOnTop = true;\n this.describe(_descriptors);\n }\n set(scope, values) {\n return set(this, scope, values);\n }\n get(scope) {\n return getScope$1(this, scope);\n }\n describe(scope, values) {\n return set(descriptors, scope, values);\n }\n override(scope, values) {\n return set(overrides, scope, values);\n }\n route(scope, name, targetScope, targetName) {\n const scopeObject = getScope$1(this, scope);\n const targetScopeObject = getScope$1(this, targetScope);\n const privateName = '_' + name;\n Object.defineProperties(scopeObject, {\n [privateName]: {\n value: scopeObject[name],\n writable: true\n },\n [name]: {\n enumerable: true,\n get() {\n const local = this[privateName];\n const target = targetScopeObject[targetName];\n if (isObject(local)) {\n return Object.assign({}, target, local);\n }\n return valueOrDefault(local, target);\n },\n set(value) {\n this[privateName] = value;\n }\n }\n });\n }\n}\nvar defaults = new Defaults({\n _scriptable: (name) => !name.startsWith('on'),\n _indexable: (name) => name !== 'events',\n hover: {\n _fallback: 'interaction'\n },\n interaction: {\n _scriptable: false,\n _indexable: false,\n }\n});\n\nfunction toFontString(font) {\n if (!font || isNullOrUndef(font.size) || isNullOrUndef(font.family)) {\n return null;\n }\n return (font.style ? font.style + ' ' : '')\n\t\t+ (font.weight ? font.weight + ' ' : '')\n\t\t+ font.size + 'px '\n\t\t+ font.family;\n}\nfunction _measureText(ctx, data, gc, longest, string) {\n let textWidth = data[string];\n if (!textWidth) {\n textWidth = data[string] = ctx.measureText(string).width;\n gc.push(string);\n }\n if (textWidth > longest) {\n longest = textWidth;\n }\n return longest;\n}\nfunction _longestText(ctx, font, arrayOfThings, cache) {\n cache = cache || {};\n let data = cache.data = cache.data || {};\n let gc = cache.garbageCollect = cache.garbageCollect || [];\n if (cache.font !== font) {\n data = cache.data = {};\n gc = cache.garbageCollect = [];\n cache.font = font;\n }\n ctx.save();\n ctx.font = font;\n let longest = 0;\n const ilen = arrayOfThings.length;\n let i, j, jlen, thing, nestedThing;\n for (i = 0; i < ilen; i++) {\n thing = arrayOfThings[i];\n if (thing !== undefined && thing !== null && isArray(thing) !== true) {\n longest = _measureText(ctx, data, gc, longest, thing);\n } else if (isArray(thing)) {\n for (j = 0, jlen = thing.length; j < jlen; j++) {\n nestedThing = thing[j];\n if (nestedThing !== undefined && nestedThing !== null && !isArray(nestedThing)) {\n longest = _measureText(ctx, data, gc, longest, nestedThing);\n }\n }\n }\n }\n ctx.restore();\n const gcLen = gc.length / 2;\n if (gcLen > arrayOfThings.length) {\n for (i = 0; i < gcLen; i++) {\n delete data[gc[i]];\n }\n gc.splice(0, gcLen);\n }\n return longest;\n}\nfunction _alignPixel(chart, pixel, width) {\n const devicePixelRatio = chart.currentDevicePixelRatio;\n const halfWidth = width !== 0 ? Math.max(width / 2, 0.5) : 0;\n return Math.round((pixel - halfWidth) * devicePixelRatio) / devicePixelRatio + halfWidth;\n}\nfunction clearCanvas(canvas, ctx) {\n ctx = ctx || canvas.getContext('2d');\n ctx.save();\n ctx.resetTransform();\n ctx.clearRect(0, 0, canvas.width, canvas.height);\n ctx.restore();\n}\nfunction drawPoint(ctx, options, x, y) {\n drawPointLegend(ctx, options, x, y, null);\n}\nfunction drawPointLegend(ctx, options, x, y, w) {\n let type, xOffset, yOffset, size, cornerRadius, width;\n const style = options.pointStyle;\n const rotation = options.rotation;\n const radius = options.radius;\n let rad = (rotation || 0) * RAD_PER_DEG;\n if (style && typeof style === 'object') {\n type = style.toString();\n if (type === '[object HTMLImageElement]' || type === '[object HTMLCanvasElement]') {\n ctx.save();\n ctx.translate(x, y);\n ctx.rotate(rad);\n ctx.drawImage(style, -style.width / 2, -style.height / 2, style.width, style.height);\n ctx.restore();\n return;\n }\n }\n if (isNaN(radius) || radius <= 0) {\n return;\n }\n ctx.beginPath();\n switch (style) {\n default:\n if (w) {\n ctx.ellipse(x, y, w / 2, radius, 0, 0, TAU);\n } else {\n ctx.arc(x, y, radius, 0, TAU);\n }\n ctx.closePath();\n break;\n case 'triangle':\n ctx.moveTo(x + Math.sin(rad) * radius, y - Math.cos(rad) * radius);\n rad += TWO_THIRDS_PI;\n ctx.lineTo(x + Math.sin(rad) * radius, y - Math.cos(rad) * radius);\n rad += TWO_THIRDS_PI;\n ctx.lineTo(x + Math.sin(rad) * radius, y - Math.cos(rad) * radius);\n ctx.closePath();\n break;\n case 'rectRounded':\n cornerRadius = radius * 0.516;\n size = radius - cornerRadius;\n xOffset = Math.cos(rad + QUARTER_PI) * size;\n yOffset = Math.sin(rad + QUARTER_PI) * size;\n ctx.arc(x - xOffset, y - yOffset, cornerRadius, rad - PI, rad - HALF_PI);\n ctx.arc(x + yOffset, y - xOffset, cornerRadius, rad - HALF_PI, rad);\n ctx.arc(x + xOffset, y + yOffset, cornerRadius, rad, rad + HALF_PI);\n ctx.arc(x - yOffset, y + xOffset, cornerRadius, rad + HALF_PI, rad + PI);\n ctx.closePath();\n break;\n case 'rect':\n if (!rotation) {\n size = Math.SQRT1_2 * radius;\n width = w ? w / 2 : size;\n ctx.rect(x - width, y - size, 2 * width, 2 * size);\n break;\n }\n rad += QUARTER_PI;\n case 'rectRot':\n xOffset = Math.cos(rad) * radius;\n yOffset = Math.sin(rad) * radius;\n ctx.moveTo(x - xOffset, y - yOffset);\n ctx.lineTo(x + yOffset, y - xOffset);\n ctx.lineTo(x + xOffset, y + yOffset);\n ctx.lineTo(x - yOffset, y + xOffset);\n ctx.closePath();\n break;\n case 'crossRot':\n rad += QUARTER_PI;\n case 'cross':\n xOffset = Math.cos(rad) * radius;\n yOffset = Math.sin(rad) * radius;\n ctx.moveTo(x - xOffset, y - yOffset);\n ctx.lineTo(x + xOffset, y + yOffset);\n ctx.moveTo(x + yOffset, y - xOffset);\n ctx.lineTo(x - yOffset, y + xOffset);\n break;\n case 'star':\n xOffset = Math.cos(rad) * radius;\n yOffset = Math.sin(rad) * radius;\n ctx.moveTo(x - xOffset, y - yOffset);\n ctx.lineTo(x + xOffset, y + yOffset);\n ctx.moveTo(x + yOffset, y - xOffset);\n ctx.lineTo(x - yOffset, y + xOffset);\n rad += QUARTER_PI;\n xOffset = Math.cos(rad) * radius;\n yOffset = Math.sin(rad) * radius;\n ctx.moveTo(x - xOffset, y - yOffset);\n ctx.lineTo(x + xOffset, y + yOffset);\n ctx.moveTo(x + yOffset, y - xOffset);\n ctx.lineTo(x - yOffset, y + xOffset);\n break;\n case 'line':\n xOffset = w ? w / 2 : Math.cos(rad) * radius;\n yOffset = Math.sin(rad) * radius;\n ctx.moveTo(x - xOffset, y - yOffset);\n ctx.lineTo(x + xOffset, y + yOffset);\n break;\n case 'dash':\n ctx.moveTo(x, y);\n ctx.lineTo(x + Math.cos(rad) * radius, y + Math.sin(rad) * radius);\n break;\n }\n ctx.fill();\n if (options.borderWidth > 0) {\n ctx.stroke();\n }\n}\nfunction _isPointInArea(point, area, margin) {\n margin = margin || 0.5;\n return !area || (point && point.x > area.left - margin && point.x < area.right + margin &&\n\t\tpoint.y > area.top - margin && point.y < area.bottom + margin);\n}\nfunction clipArea(ctx, area) {\n ctx.save();\n ctx.beginPath();\n ctx.rect(area.left, area.top, area.right - area.left, area.bottom - area.top);\n ctx.clip();\n}\nfunction unclipArea(ctx) {\n ctx.restore();\n}\nfunction _steppedLineTo(ctx, previous, target, flip, mode) {\n if (!previous) {\n return ctx.lineTo(target.x, target.y);\n }\n if (mode === 'middle') {\n const midpoint = (previous.x + target.x) / 2.0;\n ctx.lineTo(midpoint, previous.y);\n ctx.lineTo(midpoint, target.y);\n } else if (mode === 'after' !== !!flip) {\n ctx.lineTo(previous.x, target.y);\n } else {\n ctx.lineTo(target.x, previous.y);\n }\n ctx.lineTo(target.x, target.y);\n}\nfunction _bezierCurveTo(ctx, previous, target, flip) {\n if (!previous) {\n return ctx.lineTo(target.x, target.y);\n }\n ctx.bezierCurveTo(\n flip ? previous.cp1x : previous.cp2x,\n flip ? previous.cp1y : previous.cp2y,\n flip ? target.cp2x : target.cp1x,\n flip ? target.cp2y : target.cp1y,\n target.x,\n target.y);\n}\nfunction renderText(ctx, text, x, y, font, opts = {}) {\n const lines = isArray(text) ? text : [text];\n const stroke = opts.strokeWidth > 0 && opts.strokeColor !== '';\n let i, line;\n ctx.save();\n ctx.font = font.string;\n setRenderOpts(ctx, opts);\n for (i = 0; i < lines.length; ++i) {\n line = lines[i];\n if (stroke) {\n if (opts.strokeColor) {\n ctx.strokeStyle = opts.strokeColor;\n }\n if (!isNullOrUndef(opts.strokeWidth)) {\n ctx.lineWidth = opts.strokeWidth;\n }\n ctx.strokeText(line, x, y, opts.maxWidth);\n }\n ctx.fillText(line, x, y, opts.maxWidth);\n decorateText(ctx, x, y, line, opts);\n y += font.lineHeight;\n }\n ctx.restore();\n}\nfunction setRenderOpts(ctx, opts) {\n if (opts.translation) {\n ctx.translate(opts.translation[0], opts.translation[1]);\n }\n if (!isNullOrUndef(opts.rotation)) {\n ctx.rotate(opts.rotation);\n }\n if (opts.color) {\n ctx.fillStyle = opts.color;\n }\n if (opts.textAlign) {\n ctx.textAlign = opts.textAlign;\n }\n if (opts.textBaseline) {\n ctx.textBaseline = opts.textBaseline;\n }\n}\nfunction decorateText(ctx, x, y, line, opts) {\n if (opts.strikethrough || opts.underline) {\n const metrics = ctx.measureText(line);\n const left = x - metrics.actualBoundingBoxLeft;\n const right = x + metrics.actualBoundingBoxRight;\n const top = y - metrics.actualBoundingBoxAscent;\n const bottom = y + metrics.actualBoundingBoxDescent;\n const yDecoration = opts.strikethrough ? (top + bottom) / 2 : bottom;\n ctx.strokeStyle = ctx.fillStyle;\n ctx.beginPath();\n ctx.lineWidth = opts.decorationWidth || 2;\n ctx.moveTo(left, yDecoration);\n ctx.lineTo(right, yDecoration);\n ctx.stroke();\n }\n}\nfunction addRoundedRectPath(ctx, rect) {\n const {x, y, w, h, radius} = rect;\n ctx.arc(x + radius.topLeft, y + radius.topLeft, radius.topLeft, -HALF_PI, PI, true);\n ctx.lineTo(x, y + h - radius.bottomLeft);\n ctx.arc(x + radius.bottomLeft, y + h - radius.bottomLeft, radius.bottomLeft, PI, HALF_PI, true);\n ctx.lineTo(x + w - radius.bottomRight, y + h);\n ctx.arc(x + w - radius.bottomRight, y + h - radius.bottomRight, radius.bottomRight, HALF_PI, 0, true);\n ctx.lineTo(x + w, y + radius.topRight);\n ctx.arc(x + w - radius.topRight, y + radius.topRight, radius.topRight, 0, -HALF_PI, true);\n ctx.lineTo(x + radius.topLeft, y);\n}\n\nconst LINE_HEIGHT = new RegExp(/^(normal|(\\d+(?:\\.\\d+)?)(px|em|%)?)$/);\nconst FONT_STYLE = new RegExp(/^(normal|italic|initial|inherit|unset|(oblique( -?[0-9]?[0-9]deg)?))$/);\nfunction toLineHeight(value, size) {\n const matches = ('' + value).match(LINE_HEIGHT);\n if (!matches || matches[1] === 'normal') {\n return size * 1.2;\n }\n value = +matches[2];\n switch (matches[3]) {\n case 'px':\n return value;\n case '%':\n value /= 100;\n break;\n }\n return size * value;\n}\nconst numberOrZero = v => +v || 0;\nfunction _readValueToProps(value, props) {\n const ret = {};\n const objProps = isObject(props);\n const keys = objProps ? Object.keys(props) : props;\n const read = isObject(value)\n ? objProps\n ? prop => valueOrDefault(value[prop], value[props[prop]])\n : prop => value[prop]\n : () => value;\n for (const prop of keys) {\n ret[prop] = numberOrZero(read(prop));\n }\n return ret;\n}\nfunction toTRBL(value) {\n return _readValueToProps(value, {top: 'y', right: 'x', bottom: 'y', left: 'x'});\n}\nfunction toTRBLCorners(value) {\n return _readValueToProps(value, ['topLeft', 'topRight', 'bottomLeft', 'bottomRight']);\n}\nfunction toPadding(value) {\n const obj = toTRBL(value);\n obj.width = obj.left + obj.right;\n obj.height = obj.top + obj.bottom;\n return obj;\n}\nfunction toFont(options, fallback) {\n options = options || {};\n fallback = fallback || defaults.font;\n let size = valueOrDefault(options.size, fallback.size);\n if (typeof size === 'string') {\n size = parseInt(size, 10);\n }\n let style = valueOrDefault(options.style, fallback.style);\n if (style && !('' + style).match(FONT_STYLE)) {\n console.warn('Invalid font style specified: \"' + style + '\"');\n style = '';\n }\n const font = {\n family: valueOrDefault(options.family, fallback.family),\n lineHeight: toLineHeight(valueOrDefault(options.lineHeight, fallback.lineHeight), size),\n size,\n style,\n weight: valueOrDefault(options.weight, fallback.weight),\n string: ''\n };\n font.string = toFontString(font);\n return font;\n}\nfunction resolve(inputs, context, index, info) {\n let cacheable = true;\n let i, ilen, value;\n for (i = 0, ilen = inputs.length; i < ilen; ++i) {\n value = inputs[i];\n if (value === undefined) {\n continue;\n }\n if (context !== undefined && typeof value === 'function') {\n value = value(context);\n cacheable = false;\n }\n if (index !== undefined && isArray(value)) {\n value = value[index % value.length];\n cacheable = false;\n }\n if (value !== undefined) {\n if (info && !cacheable) {\n info.cacheable = false;\n }\n return value;\n }\n }\n}\nfunction _addGrace(minmax, grace, beginAtZero) {\n const {min, max} = minmax;\n const change = toDimension(grace, (max - min) / 2);\n const keepZero = (value, add) => beginAtZero && value === 0 ? 0 : value + add;\n return {\n min: keepZero(min, -Math.abs(change)),\n max: keepZero(max, change)\n };\n}\nfunction createContext(parentContext, context) {\n return Object.assign(Object.create(parentContext), context);\n}\n\nfunction _createResolver(scopes, prefixes = [''], rootScopes = scopes, fallback, getTarget = () => scopes[0]) {\n if (!defined(fallback)) {\n fallback = _resolve('_fallback', scopes);\n }\n const cache = {\n [Symbol.toStringTag]: 'Object',\n _cacheable: true,\n _scopes: scopes,\n _rootScopes: rootScopes,\n _fallback: fallback,\n _getTarget: getTarget,\n override: (scope) => _createResolver([scope, ...scopes], prefixes, rootScopes, fallback),\n };\n return new Proxy(cache, {\n deleteProperty(target, prop) {\n delete target[prop];\n delete target._keys;\n delete scopes[0][prop];\n return true;\n },\n get(target, prop) {\n return _cached(target, prop,\n () => _resolveWithPrefixes(prop, prefixes, scopes, target));\n },\n getOwnPropertyDescriptor(target, prop) {\n return Reflect.getOwnPropertyDescriptor(target._scopes[0], prop);\n },\n getPrototypeOf() {\n return Reflect.getPrototypeOf(scopes[0]);\n },\n has(target, prop) {\n return getKeysFromAllScopes(target).includes(prop);\n },\n ownKeys(target) {\n return getKeysFromAllScopes(target);\n },\n set(target, prop, value) {\n const storage = target._storage || (target._storage = getTarget());\n target[prop] = storage[prop] = value;\n delete target._keys;\n return true;\n }\n });\n}\nfunction _attachContext(proxy, context, subProxy, descriptorDefaults) {\n const cache = {\n _cacheable: false,\n _proxy: proxy,\n _context: context,\n _subProxy: subProxy,\n _stack: new Set(),\n _descriptors: _descriptors(proxy, descriptorDefaults),\n setContext: (ctx) => _attachContext(proxy, ctx, subProxy, descriptorDefaults),\n override: (scope) => _attachContext(proxy.override(scope), context, subProxy, descriptorDefaults)\n };\n return new Proxy(cache, {\n deleteProperty(target, prop) {\n delete target[prop];\n delete proxy[prop];\n return true;\n },\n get(target, prop, receiver) {\n return _cached(target, prop,\n () => _resolveWithContext(target, prop, receiver));\n },\n getOwnPropertyDescriptor(target, prop) {\n return target._descriptors.allKeys\n ? Reflect.has(proxy, prop) ? {enumerable: true, configurable: true} : undefined\n : Reflect.getOwnPropertyDescriptor(proxy, prop);\n },\n getPrototypeOf() {\n return Reflect.getPrototypeOf(proxy);\n },\n has(target, prop) {\n return Reflect.has(proxy, prop);\n },\n ownKeys() {\n return Reflect.ownKeys(proxy);\n },\n set(target, prop, value) {\n proxy[prop] = value;\n delete target[prop];\n return true;\n }\n });\n}\nfunction _descriptors(proxy, defaults = {scriptable: true, indexable: true}) {\n const {_scriptable = defaults.scriptable, _indexable = defaults.indexable, _allKeys = defaults.allKeys} = proxy;\n return {\n allKeys: _allKeys,\n scriptable: _scriptable,\n indexable: _indexable,\n isScriptable: isFunction(_scriptable) ? _scriptable : () => _scriptable,\n isIndexable: isFunction(_indexable) ? _indexable : () => _indexable\n };\n}\nconst readKey = (prefix, name) => prefix ? prefix + _capitalize(name) : name;\nconst needsSubResolver = (prop, value) => isObject(value) && prop !== 'adapters' &&\n (Object.getPrototypeOf(value) === null || value.constructor === Object);\nfunction _cached(target, prop, resolve) {\n if (Object.prototype.hasOwnProperty.call(target, prop)) {\n return target[prop];\n }\n const value = resolve();\n target[prop] = value;\n return value;\n}\nfunction _resolveWithContext(target, prop, receiver) {\n const {_proxy, _context, _subProxy, _descriptors: descriptors} = target;\n let value = _proxy[prop];\n if (isFunction(value) && descriptors.isScriptable(prop)) {\n value = _resolveScriptable(prop, value, target, receiver);\n }\n if (isArray(value) && value.length) {\n value = _resolveArray(prop, value, target, descriptors.isIndexable);\n }\n if (needsSubResolver(prop, value)) {\n value = _attachContext(value, _context, _subProxy && _subProxy[prop], descriptors);\n }\n return value;\n}\nfunction _resolveScriptable(prop, value, target, receiver) {\n const {_proxy, _context, _subProxy, _stack} = target;\n if (_stack.has(prop)) {\n throw new Error('Recursion detected: ' + Array.from(_stack).join('->') + '->' + prop);\n }\n _stack.add(prop);\n value = value(_context, _subProxy || receiver);\n _stack.delete(prop);\n if (needsSubResolver(prop, value)) {\n value = createSubResolver(_proxy._scopes, _proxy, prop, value);\n }\n return value;\n}\nfunction _resolveArray(prop, value, target, isIndexable) {\n const {_proxy, _context, _subProxy, _descriptors: descriptors} = target;\n if (defined(_context.index) && isIndexable(prop)) {\n value = value[_context.index % value.length];\n } else if (isObject(value[0])) {\n const arr = value;\n const scopes = _proxy._scopes.filter(s => s !== arr);\n value = [];\n for (const item of arr) {\n const resolver = createSubResolver(scopes, _proxy, prop, item);\n value.push(_attachContext(resolver, _context, _subProxy && _subProxy[prop], descriptors));\n }\n }\n return value;\n}\nfunction resolveFallback(fallback, prop, value) {\n return isFunction(fallback) ? fallback(prop, value) : fallback;\n}\nconst getScope = (key, parent) => key === true ? parent\n : typeof key === 'string' ? resolveObjectKey(parent, key) : undefined;\nfunction addScopes(set, parentScopes, key, parentFallback, value) {\n for (const parent of parentScopes) {\n const scope = getScope(key, parent);\n if (scope) {\n set.add(scope);\n const fallback = resolveFallback(scope._fallback, key, value);\n if (defined(fallback) && fallback !== key && fallback !== parentFallback) {\n return fallback;\n }\n } else if (scope === false && defined(parentFallback) && key !== parentFallback) {\n return null;\n }\n }\n return false;\n}\nfunction createSubResolver(parentScopes, resolver, prop, value) {\n const rootScopes = resolver._rootScopes;\n const fallback = resolveFallback(resolver._fallback, prop, value);\n const allScopes = [...parentScopes, ...rootScopes];\n const set = new Set();\n set.add(value);\n let key = addScopesFromKey(set, allScopes, prop, fallback || prop, value);\n if (key === null) {\n return false;\n }\n if (defined(fallback) && fallback !== prop) {\n key = addScopesFromKey(set, allScopes, fallback, key, value);\n if (key === null) {\n return false;\n }\n }\n return _createResolver(Array.from(set), [''], rootScopes, fallback,\n () => subGetTarget(resolver, prop, value));\n}\nfunction addScopesFromKey(set, allScopes, key, fallback, item) {\n while (key) {\n key = addScopes(set, allScopes, key, fallback, item);\n }\n return key;\n}\nfunction subGetTarget(resolver, prop, value) {\n const parent = resolver._getTarget();\n if (!(prop in parent)) {\n parent[prop] = {};\n }\n const target = parent[prop];\n if (isArray(target) && isObject(value)) {\n return value;\n }\n return target;\n}\nfunction _resolveWithPrefixes(prop, prefixes, scopes, proxy) {\n let value;\n for (const prefix of prefixes) {\n value = _resolve(readKey(prefix, prop), scopes);\n if (defined(value)) {\n return needsSubResolver(prop, value)\n ? createSubResolver(scopes, proxy, prop, value)\n : value;\n }\n }\n}\nfunction _resolve(key, scopes) {\n for (const scope of scopes) {\n if (!scope) {\n continue;\n }\n const value = scope[key];\n if (defined(value)) {\n return value;\n }\n }\n}\nfunction getKeysFromAllScopes(target) {\n let keys = target._keys;\n if (!keys) {\n keys = target._keys = resolveKeysFromAllScopes(target._scopes);\n }\n return keys;\n}\nfunction resolveKeysFromAllScopes(scopes) {\n const set = new Set();\n for (const scope of scopes) {\n for (const key of Object.keys(scope).filter(k => !k.startsWith('_'))) {\n set.add(key);\n }\n }\n return Array.from(set);\n}\nfunction _parseObjectDataRadialScale(meta, data, start, count) {\n const {iScale} = meta;\n const {key = 'r'} = this._parsing;\n const parsed = new Array(count);\n let i, ilen, index, item;\n for (i = 0, ilen = count; i < ilen; ++i) {\n index = i + start;\n item = data[index];\n parsed[i] = {\n r: iScale.parse(resolveObjectKey(item, key), index)\n };\n }\n return parsed;\n}\n\nconst EPSILON = Number.EPSILON || 1e-14;\nconst getPoint = (points, i) => i < points.length && !points[i].skip && points[i];\nconst getValueAxis = (indexAxis) => indexAxis === 'x' ? 'y' : 'x';\nfunction splineCurve(firstPoint, middlePoint, afterPoint, t) {\n const previous = firstPoint.skip ? middlePoint : firstPoint;\n const current = middlePoint;\n const next = afterPoint.skip ? middlePoint : afterPoint;\n const d01 = distanceBetweenPoints(current, previous);\n const d12 = distanceBetweenPoints(next, current);\n let s01 = d01 / (d01 + d12);\n let s12 = d12 / (d01 + d12);\n s01 = isNaN(s01) ? 0 : s01;\n s12 = isNaN(s12) ? 0 : s12;\n const fa = t * s01;\n const fb = t * s12;\n return {\n previous: {\n x: current.x - fa * (next.x - previous.x),\n y: current.y - fa * (next.y - previous.y)\n },\n next: {\n x: current.x + fb * (next.x - previous.x),\n y: current.y + fb * (next.y - previous.y)\n }\n };\n}\nfunction monotoneAdjust(points, deltaK, mK) {\n const pointsLen = points.length;\n let alphaK, betaK, tauK, squaredMagnitude, pointCurrent;\n let pointAfter = getPoint(points, 0);\n for (let i = 0; i < pointsLen - 1; ++i) {\n pointCurrent = pointAfter;\n pointAfter = getPoint(points, i + 1);\n if (!pointCurrent || !pointAfter) {\n continue;\n }\n if (almostEquals(deltaK[i], 0, EPSILON)) {\n mK[i] = mK[i + 1] = 0;\n continue;\n }\n alphaK = mK[i] / deltaK[i];\n betaK = mK[i + 1] / deltaK[i];\n squaredMagnitude = Math.pow(alphaK, 2) + Math.pow(betaK, 2);\n if (squaredMagnitude <= 9) {\n continue;\n }\n tauK = 3 / Math.sqrt(squaredMagnitude);\n mK[i] = alphaK * tauK * deltaK[i];\n mK[i + 1] = betaK * tauK * deltaK[i];\n }\n}\nfunction monotoneCompute(points, mK, indexAxis = 'x') {\n const valueAxis = getValueAxis(indexAxis);\n const pointsLen = points.length;\n let delta, pointBefore, pointCurrent;\n let pointAfter = getPoint(points, 0);\n for (let i = 0; i < pointsLen; ++i) {\n pointBefore = pointCurrent;\n pointCurrent = pointAfter;\n pointAfter = getPoint(points, i + 1);\n if (!pointCurrent) {\n continue;\n }\n const iPixel = pointCurrent[indexAxis];\n const vPixel = pointCurrent[valueAxis];\n if (pointBefore) {\n delta = (iPixel - pointBefore[indexAxis]) / 3;\n pointCurrent[`cp1${indexAxis}`] = iPixel - delta;\n pointCurrent[`cp1${valueAxis}`] = vPixel - delta * mK[i];\n }\n if (pointAfter) {\n delta = (pointAfter[indexAxis] - iPixel) / 3;\n pointCurrent[`cp2${indexAxis}`] = iPixel + delta;\n pointCurrent[`cp2${valueAxis}`] = vPixel + delta * mK[i];\n }\n }\n}\nfunction splineCurveMonotone(points, indexAxis = 'x') {\n const valueAxis = getValueAxis(indexAxis);\n const pointsLen = points.length;\n const deltaK = Array(pointsLen).fill(0);\n const mK = Array(pointsLen);\n let i, pointBefore, pointCurrent;\n let pointAfter = getPoint(points, 0);\n for (i = 0; i < pointsLen; ++i) {\n pointBefore = pointCurrent;\n pointCurrent = pointAfter;\n pointAfter = getPoint(points, i + 1);\n if (!pointCurrent) {\n continue;\n }\n if (pointAfter) {\n const slopeDelta = pointAfter[indexAxis] - pointCurrent[indexAxis];\n deltaK[i] = slopeDelta !== 0 ? (pointAfter[valueAxis] - pointCurrent[valueAxis]) / slopeDelta : 0;\n }\n mK[i] = !pointBefore ? deltaK[i]\n : !pointAfter ? deltaK[i - 1]\n : (sign(deltaK[i - 1]) !== sign(deltaK[i])) ? 0\n : (deltaK[i - 1] + deltaK[i]) / 2;\n }\n monotoneAdjust(points, deltaK, mK);\n monotoneCompute(points, mK, indexAxis);\n}\nfunction capControlPoint(pt, min, max) {\n return Math.max(Math.min(pt, max), min);\n}\nfunction capBezierPoints(points, area) {\n let i, ilen, point, inArea, inAreaPrev;\n let inAreaNext = _isPointInArea(points[0], area);\n for (i = 0, ilen = points.length; i < ilen; ++i) {\n inAreaPrev = inArea;\n inArea = inAreaNext;\n inAreaNext = i < ilen - 1 && _isPointInArea(points[i + 1], area);\n if (!inArea) {\n continue;\n }\n point = points[i];\n if (inAreaPrev) {\n point.cp1x = capControlPoint(point.cp1x, area.left, area.right);\n point.cp1y = capControlPoint(point.cp1y, area.top, area.bottom);\n }\n if (inAreaNext) {\n point.cp2x = capControlPoint(point.cp2x, area.left, area.right);\n point.cp2y = capControlPoint(point.cp2y, area.top, area.bottom);\n }\n }\n}\nfunction _updateBezierControlPoints(points, options, area, loop, indexAxis) {\n let i, ilen, point, controlPoints;\n if (options.spanGaps) {\n points = points.filter((pt) => !pt.skip);\n }\n if (options.cubicInterpolationMode === 'monotone') {\n splineCurveMonotone(points, indexAxis);\n } else {\n let prev = loop ? points[points.length - 1] : points[0];\n for (i = 0, ilen = points.length; i < ilen; ++i) {\n point = points[i];\n controlPoints = splineCurve(\n prev,\n point,\n points[Math.min(i + 1, ilen - (loop ? 0 : 1)) % ilen],\n options.tension\n );\n point.cp1x = controlPoints.previous.x;\n point.cp1y = controlPoints.previous.y;\n point.cp2x = controlPoints.next.x;\n point.cp2y = controlPoints.next.y;\n prev = point;\n }\n }\n if (options.capBezierPoints) {\n capBezierPoints(points, area);\n }\n}\n\nfunction _isDomSupported() {\n return typeof window !== 'undefined' && typeof document !== 'undefined';\n}\nfunction _getParentNode(domNode) {\n let parent = domNode.parentNode;\n if (parent && parent.toString() === '[object ShadowRoot]') {\n parent = parent.host;\n }\n return parent;\n}\nfunction parseMaxStyle(styleValue, node, parentProperty) {\n let valueInPixels;\n if (typeof styleValue === 'string') {\n valueInPixels = parseInt(styleValue, 10);\n if (styleValue.indexOf('%') !== -1) {\n valueInPixels = valueInPixels / 100 * node.parentNode[parentProperty];\n }\n } else {\n valueInPixels = styleValue;\n }\n return valueInPixels;\n}\nconst getComputedStyle = (element) => window.getComputedStyle(element, null);\nfunction getStyle(el, property) {\n return getComputedStyle(el).getPropertyValue(property);\n}\nconst positions = ['top', 'right', 'bottom', 'left'];\nfunction getPositionedStyle(styles, style, suffix) {\n const result = {};\n suffix = suffix ? '-' + suffix : '';\n for (let i = 0; i < 4; i++) {\n const pos = positions[i];\n result[pos] = parseFloat(styles[style + '-' + pos + suffix]) || 0;\n }\n result.width = result.left + result.right;\n result.height = result.top + result.bottom;\n return result;\n}\nconst useOffsetPos = (x, y, target) => (x > 0 || y > 0) && (!target || !target.shadowRoot);\nfunction getCanvasPosition(e, canvas) {\n const touches = e.touches;\n const source = touches && touches.length ? touches[0] : e;\n const {offsetX, offsetY} = source;\n let box = false;\n let x, y;\n if (useOffsetPos(offsetX, offsetY, e.target)) {\n x = offsetX;\n y = offsetY;\n } else {\n const rect = canvas.getBoundingClientRect();\n x = source.clientX - rect.left;\n y = source.clientY - rect.top;\n box = true;\n }\n return {x, y, box};\n}\nfunction getRelativePosition(evt, chart) {\n if ('native' in evt) {\n return evt;\n }\n const {canvas, currentDevicePixelRatio} = chart;\n const style = getComputedStyle(canvas);\n const borderBox = style.boxSizing === 'border-box';\n const paddings = getPositionedStyle(style, 'padding');\n const borders = getPositionedStyle(style, 'border', 'width');\n const {x, y, box} = getCanvasPosition(evt, canvas);\n const xOffset = paddings.left + (box && borders.left);\n const yOffset = paddings.top + (box && borders.top);\n let {width, height} = chart;\n if (borderBox) {\n width -= paddings.width + borders.width;\n height -= paddings.height + borders.height;\n }\n return {\n x: Math.round((x - xOffset) / width * canvas.width / currentDevicePixelRatio),\n y: Math.round((y - yOffset) / height * canvas.height / currentDevicePixelRatio)\n };\n}\nfunction getContainerSize(canvas, width, height) {\n let maxWidth, maxHeight;\n if (width === undefined || height === undefined) {\n const container = _getParentNode(canvas);\n if (!container) {\n width = canvas.clientWidth;\n height = canvas.clientHeight;\n } else {\n const rect = container.getBoundingClientRect();\n const containerStyle = getComputedStyle(container);\n const containerBorder = getPositionedStyle(containerStyle, 'border', 'width');\n const containerPadding = getPositionedStyle(containerStyle, 'padding');\n width = rect.width - containerPadding.width - containerBorder.width;\n height = rect.height - containerPadding.height - containerBorder.height;\n maxWidth = parseMaxStyle(containerStyle.maxWidth, container, 'clientWidth');\n maxHeight = parseMaxStyle(containerStyle.maxHeight, container, 'clientHeight');\n }\n }\n return {\n width,\n height,\n maxWidth: maxWidth || INFINITY,\n maxHeight: maxHeight || INFINITY\n };\n}\nconst round1 = v => Math.round(v * 10) / 10;\nfunction getMaximumSize(canvas, bbWidth, bbHeight, aspectRatio) {\n const style = getComputedStyle(canvas);\n const margins = getPositionedStyle(style, 'margin');\n const maxWidth = parseMaxStyle(style.maxWidth, canvas, 'clientWidth') || INFINITY;\n const maxHeight = parseMaxStyle(style.maxHeight, canvas, 'clientHeight') || INFINITY;\n const containerSize = getContainerSize(canvas, bbWidth, bbHeight);\n let {width, height} = containerSize;\n if (style.boxSizing === 'content-box') {\n const borders = getPositionedStyle(style, 'border', 'width');\n const paddings = getPositionedStyle(style, 'padding');\n width -= paddings.width + borders.width;\n height -= paddings.height + borders.height;\n }\n width = Math.max(0, width - margins.width);\n height = Math.max(0, aspectRatio ? Math.floor(width / aspectRatio) : height - margins.height);\n width = round1(Math.min(width, maxWidth, containerSize.maxWidth));\n height = round1(Math.min(height, maxHeight, containerSize.maxHeight));\n if (width && !height) {\n height = round1(width / 2);\n }\n return {\n width,\n height\n };\n}\nfunction retinaScale(chart, forceRatio, forceStyle) {\n const pixelRatio = forceRatio || 1;\n const deviceHeight = Math.floor(chart.height * pixelRatio);\n const deviceWidth = Math.floor(chart.width * pixelRatio);\n chart.height = deviceHeight / pixelRatio;\n chart.width = deviceWidth / pixelRatio;\n const canvas = chart.canvas;\n if (canvas.style && (forceStyle || (!canvas.style.height && !canvas.style.width))) {\n canvas.style.height = `${chart.height}px`;\n canvas.style.width = `${chart.width}px`;\n }\n if (chart.currentDevicePixelRatio !== pixelRatio\n || canvas.height !== deviceHeight\n || canvas.width !== deviceWidth) {\n chart.currentDevicePixelRatio = pixelRatio;\n canvas.height = deviceHeight;\n canvas.width = deviceWidth;\n chart.ctx.setTransform(pixelRatio, 0, 0, pixelRatio, 0, 0);\n return true;\n }\n return false;\n}\nconst supportsEventListenerOptions = (function() {\n let passiveSupported = false;\n try {\n const options = {\n get passive() {\n passiveSupported = true;\n return false;\n }\n };\n window.addEventListener('test', null, options);\n window.removeEventListener('test', null, options);\n } catch (e) {\n }\n return passiveSupported;\n}());\nfunction readUsedSize(element, property) {\n const value = getStyle(element, property);\n const matches = value && value.match(/^(\\d+)(\\.\\d+)?px$/);\n return matches ? +matches[1] : undefined;\n}\n\nfunction _pointInLine(p1, p2, t, mode) {\n return {\n x: p1.x + t * (p2.x - p1.x),\n y: p1.y + t * (p2.y - p1.y)\n };\n}\nfunction _steppedInterpolation(p1, p2, t, mode) {\n return {\n x: p1.x + t * (p2.x - p1.x),\n y: mode === 'middle' ? t < 0.5 ? p1.y : p2.y\n : mode === 'after' ? t < 1 ? p1.y : p2.y\n : t > 0 ? p2.y : p1.y\n };\n}\nfunction _bezierInterpolation(p1, p2, t, mode) {\n const cp1 = {x: p1.cp2x, y: p1.cp2y};\n const cp2 = {x: p2.cp1x, y: p2.cp1y};\n const a = _pointInLine(p1, cp1, t);\n const b = _pointInLine(cp1, cp2, t);\n const c = _pointInLine(cp2, p2, t);\n const d = _pointInLine(a, b, t);\n const e = _pointInLine(b, c, t);\n return _pointInLine(d, e, t);\n}\n\nconst intlCache = new Map();\nfunction getNumberFormat(locale, options) {\n options = options || {};\n const cacheKey = locale + JSON.stringify(options);\n let formatter = intlCache.get(cacheKey);\n if (!formatter) {\n formatter = new Intl.NumberFormat(locale, options);\n intlCache.set(cacheKey, formatter);\n }\n return formatter;\n}\nfunction formatNumber(num, locale, options) {\n return getNumberFormat(locale, options).format(num);\n}\n\nconst getRightToLeftAdapter = function(rectX, width) {\n return {\n x(x) {\n return rectX + rectX + width - x;\n },\n setWidth(w) {\n width = w;\n },\n textAlign(align) {\n if (align === 'center') {\n return align;\n }\n return align === 'right' ? 'left' : 'right';\n },\n xPlus(x, value) {\n return x - value;\n },\n leftForLtr(x, itemWidth) {\n return x - itemWidth;\n },\n };\n};\nconst getLeftToRightAdapter = function() {\n return {\n x(x) {\n return x;\n },\n setWidth(w) {\n },\n textAlign(align) {\n return align;\n },\n xPlus(x, value) {\n return x + value;\n },\n leftForLtr(x, _itemWidth) {\n return x;\n },\n };\n};\nfunction getRtlAdapter(rtl, rectX, width) {\n return rtl ? getRightToLeftAdapter(rectX, width) : getLeftToRightAdapter();\n}\nfunction overrideTextDirection(ctx, direction) {\n let style, original;\n if (direction === 'ltr' || direction === 'rtl') {\n style = ctx.canvas.style;\n original = [\n style.getPropertyValue('direction'),\n style.getPropertyPriority('direction'),\n ];\n style.setProperty('direction', direction, 'important');\n ctx.prevTextDirection = original;\n }\n}\nfunction restoreTextDirection(ctx, original) {\n if (original !== undefined) {\n delete ctx.prevTextDirection;\n ctx.canvas.style.setProperty('direction', original[0], original[1]);\n }\n}\n\nfunction propertyFn(property) {\n if (property === 'angle') {\n return {\n between: _angleBetween,\n compare: _angleDiff,\n normalize: _normalizeAngle,\n };\n }\n return {\n between: _isBetween,\n compare: (a, b) => a - b,\n normalize: x => x\n };\n}\nfunction normalizeSegment({start, end, count, loop, style}) {\n return {\n start: start % count,\n end: end % count,\n loop: loop && (end - start + 1) % count === 0,\n style\n };\n}\nfunction getSegment(segment, points, bounds) {\n const {property, start: startBound, end: endBound} = bounds;\n const {between, normalize} = propertyFn(property);\n const count = points.length;\n let {start, end, loop} = segment;\n let i, ilen;\n if (loop) {\n start += count;\n end += count;\n for (i = 0, ilen = count; i < ilen; ++i) {\n if (!between(normalize(points[start % count][property]), startBound, endBound)) {\n break;\n }\n start--;\n end--;\n }\n start %= count;\n end %= count;\n }\n if (end < start) {\n end += count;\n }\n return {start, end, loop, style: segment.style};\n}\nfunction _boundSegment(segment, points, bounds) {\n if (!bounds) {\n return [segment];\n }\n const {property, start: startBound, end: endBound} = bounds;\n const count = points.length;\n const {compare, between, normalize} = propertyFn(property);\n const {start, end, loop, style} = getSegment(segment, points, bounds);\n const result = [];\n let inside = false;\n let subStart = null;\n let value, point, prevValue;\n const startIsBefore = () => between(startBound, prevValue, value) && compare(startBound, prevValue) !== 0;\n const endIsBefore = () => compare(endBound, value) === 0 || between(endBound, prevValue, value);\n const shouldStart = () => inside || startIsBefore();\n const shouldStop = () => !inside || endIsBefore();\n for (let i = start, prev = start; i <= end; ++i) {\n point = points[i % count];\n if (point.skip) {\n continue;\n }\n value = normalize(point[property]);\n if (value === prevValue) {\n continue;\n }\n inside = between(value, startBound, endBound);\n if (subStart === null && shouldStart()) {\n subStart = compare(value, startBound) === 0 ? i : prev;\n }\n if (subStart !== null && shouldStop()) {\n result.push(normalizeSegment({start: subStart, end: i, loop, count, style}));\n subStart = null;\n }\n prev = i;\n prevValue = value;\n }\n if (subStart !== null) {\n result.push(normalizeSegment({start: subStart, end, loop, count, style}));\n }\n return result;\n}\nfunction _boundSegments(line, bounds) {\n const result = [];\n const segments = line.segments;\n for (let i = 0; i < segments.length; i++) {\n const sub = _boundSegment(segments[i], line.points, bounds);\n if (sub.length) {\n result.push(...sub);\n }\n }\n return result;\n}\nfunction findStartAndEnd(points, count, loop, spanGaps) {\n let start = 0;\n let end = count - 1;\n if (loop && !spanGaps) {\n while (start < count && !points[start].skip) {\n start++;\n }\n }\n while (start < count && points[start].skip) {\n start++;\n }\n start %= count;\n if (loop) {\n end += start;\n }\n while (end > start && points[end % count].skip) {\n end--;\n }\n end %= count;\n return {start, end};\n}\nfunction solidSegments(points, start, max, loop) {\n const count = points.length;\n const result = [];\n let last = start;\n let prev = points[start];\n let end;\n for (end = start + 1; end <= max; ++end) {\n const cur = points[end % count];\n if (cur.skip || cur.stop) {\n if (!prev.skip) {\n loop = false;\n result.push({start: start % count, end: (end - 1) % count, loop});\n start = last = cur.stop ? end : null;\n }\n } else {\n last = end;\n if (prev.skip) {\n start = end;\n }\n }\n prev = cur;\n }\n if (last !== null) {\n result.push({start: start % count, end: last % count, loop});\n }\n return result;\n}\nfunction _computeSegments(line, segmentOptions) {\n const points = line.points;\n const spanGaps = line.options.spanGaps;\n const count = points.length;\n if (!count) {\n return [];\n }\n const loop = !!line._loop;\n const {start, end} = findStartAndEnd(points, count, loop, spanGaps);\n if (spanGaps === true) {\n return splitByStyles(line, [{start, end, loop}], points, segmentOptions);\n }\n const max = end < start ? end + count : end;\n const completeLoop = !!line._fullLoop && start === 0 && end === count - 1;\n return splitByStyles(line, solidSegments(points, start, max, completeLoop), points, segmentOptions);\n}\nfunction splitByStyles(line, segments, points, segmentOptions) {\n if (!segmentOptions || !segmentOptions.setContext || !points) {\n return segments;\n }\n return doSplitByStyles(line, segments, points, segmentOptions);\n}\nfunction doSplitByStyles(line, segments, points, segmentOptions) {\n const chartContext = line._chart.getContext();\n const baseStyle = readStyle(line.options);\n const {_datasetIndex: datasetIndex, options: {spanGaps}} = line;\n const count = points.length;\n const result = [];\n let prevStyle = baseStyle;\n let start = segments[0].start;\n let i = start;\n function addStyle(s, e, l, st) {\n const dir = spanGaps ? -1 : 1;\n if (s === e) {\n return;\n }\n s += count;\n while (points[s % count].skip) {\n s -= dir;\n }\n while (points[e % count].skip) {\n e += dir;\n }\n if (s % count !== e % count) {\n result.push({start: s % count, end: e % count, loop: l, style: st});\n prevStyle = st;\n start = e % count;\n }\n }\n for (const segment of segments) {\n start = spanGaps ? start : segment.start;\n let prev = points[start % count];\n let style;\n for (i = start + 1; i <= segment.end; i++) {\n const pt = points[i % count];\n style = readStyle(segmentOptions.setContext(createContext(chartContext, {\n type: 'segment',\n p0: prev,\n p1: pt,\n p0DataIndex: (i - 1) % count,\n p1DataIndex: i % count,\n datasetIndex\n })));\n if (styleChanged(style, prevStyle)) {\n addStyle(start, i - 1, segment.loop, prevStyle);\n }\n prev = pt;\n prevStyle = style;\n }\n if (start < i - 1) {\n addStyle(start, i - 1, segment.loop, prevStyle);\n }\n }\n return result;\n}\nfunction readStyle(options) {\n return {\n backgroundColor: options.backgroundColor,\n borderCapStyle: options.borderCapStyle,\n borderDash: options.borderDash,\n borderDashOffset: options.borderDashOffset,\n borderJoinStyle: options.borderJoinStyle,\n borderWidth: options.borderWidth,\n borderColor: options.borderColor\n };\n}\nfunction styleChanged(style, prevStyle) {\n return prevStyle && JSON.stringify(style) !== JSON.stringify(prevStyle);\n}\n\nexport { _isPointInArea as $, _factorize as A, finiteOrDefault as B, callback as C, _addGrace as D, _limitValue as E, toDegrees as F, _measureText as G, HALF_PI as H, _int16Range as I, _alignPixel as J, toPadding as K, clipArea as L, renderText as M, unclipArea as N, toFont as O, PI as P, each as Q, _toLeftRightCenter as R, _alignStartEnd as S, TAU as T, overrides as U, merge as V, _capitalize as W, getRelativePosition as X, _rlookupByKey as Y, _lookupByKey as Z, _arrayUnique as _, resolve as a, toLineHeight as a$, getAngleFromPoint as a0, getMaximumSize as a1, _getParentNode as a2, readUsedSize as a3, throttled as a4, supportsEventListenerOptions as a5, _isDomSupported as a6, descriptors as a7, isFunction as a8, _attachContext as a9, getRtlAdapter as aA, overrideTextDirection as aB, _textX as aC, restoreTextDirection as aD, drawPointLegend as aE, noop as aF, distanceBetweenPoints as aG, _setMinAndMaxByKey as aH, niceNum as aI, almostWhole as aJ, almostEquals as aK, _decimalPlaces as aL, _longestText as aM, _filterBetween as aN, _lookup as aO, isPatternOrGradient as aP, getHoverColor as aQ, clone$1 as aR, _merger as aS, _mergerIf as aT, _deprecated as aU, _splitKey as aV, toFontString as aW, splineCurve as aX, splineCurveMonotone as aY, getStyle as aZ, fontString as a_, _createResolver as aa, _descriptors as ab, mergeIf as ac, uid as ad, debounce as ae, retinaScale as af, clearCanvas as ag, setsEqual as ah, _elementsEqual as ai, _isClickEvent as aj, _isBetween as ak, _readValueToProps as al, _updateBezierControlPoints as am, _computeSegments as an, _boundSegments as ao, _steppedInterpolation as ap, _bezierInterpolation as aq, _pointInLine as ar, _steppedLineTo as as, _bezierCurveTo as at, drawPoint as au, addRoundedRectPath as av, toTRBL as aw, toTRBLCorners as ax, _boundSegment as ay, _normalizeAngle as az, isArray as b, PITAU as b0, INFINITY as b1, RAD_PER_DEG as b2, QUARTER_PI as b3, TWO_THIRDS_PI as b4, _angleDiff as b5, color as c, defaults as d, effects as e, resolveObjectKey as f, isNumberFinite as g, createContext as h, isObject as i, defined as j, isNullOrUndef as k, listenArrayEvents as l, toPercentage as m, toDimension as n, formatNumber as o, _angleBetween as p, _getStartAndCountOfVisiblePoints as q, requestAnimFrame as r, sign as s, toRadians as t, unlistenArrayEvents as u, valueOrDefault as v, _scaleRangesChanged as w, isNumber as x, _parseObjectDataRadialScale as y, log10 as z };\n","/*!\n * Chart.js v3.9.1\n * https://www.chartjs.org\n * (c) 2022 Chart.js Contributors\n * Released under the MIT License\n */\nimport { r as requestAnimFrame, a as resolve, e as effects, c as color, d as defaults, i as isObject, b as isArray, v as valueOrDefault, u as unlistenArrayEvents, l as listenArrayEvents, f as resolveObjectKey, g as isNumberFinite, h as createContext, j as defined, s as sign, k as isNullOrUndef, _ as _arrayUnique, t as toRadians, m as toPercentage, n as toDimension, T as TAU, o as formatNumber, p as _angleBetween, H as HALF_PI, P as PI, q as _getStartAndCountOfVisiblePoints, w as _scaleRangesChanged, x as isNumber, y as _parseObjectDataRadialScale, z as log10, A as _factorize, B as finiteOrDefault, C as callback, D as _addGrace, E as _limitValue, F as toDegrees, G as _measureText, I as _int16Range, J as _alignPixel, K as toPadding, L as clipArea, M as renderText, N as unclipArea, O as toFont, Q as each, R as _toLeftRightCenter, S as _alignStartEnd, U as overrides, V as merge, W as _capitalize, X as getRelativePosition, Y as _rlookupByKey, Z as _lookupByKey, $ as _isPointInArea, a0 as getAngleFromPoint, a1 as getMaximumSize, a2 as _getParentNode, a3 as readUsedSize, a4 as throttled, a5 as supportsEventListenerOptions, a6 as _isDomSupported, a7 as descriptors, a8 as isFunction, a9 as _attachContext, aa as _createResolver, ab as _descriptors, ac as mergeIf, ad as uid, ae as debounce, af as retinaScale, ag as clearCanvas, ah as setsEqual, ai as _elementsEqual, aj as _isClickEvent, ak as _isBetween, al as _readValueToProps, am as _updateBezierControlPoints, an as _computeSegments, ao as _boundSegments, ap as _steppedInterpolation, aq as _bezierInterpolation, ar as _pointInLine, as as _steppedLineTo, at as _bezierCurveTo, au as drawPoint, av as addRoundedRectPath, aw as toTRBL, ax as toTRBLCorners, ay as _boundSegment, az as _normalizeAngle, aA as getRtlAdapter, aB as overrideTextDirection, aC as _textX, aD as restoreTextDirection, aE as drawPointLegend, aF as noop, aG as distanceBetweenPoints, aH as _setMinAndMaxByKey, aI as niceNum, aJ as almostWhole, aK as almostEquals, aL as _decimalPlaces, aM as _longestText, aN as _filterBetween, aO as _lookup } from './chunks/helpers.segment.mjs';\nexport { d as defaults } from './chunks/helpers.segment.mjs';\n\nclass Animator {\n constructor() {\n this._request = null;\n this._charts = new Map();\n this._running = false;\n this._lastDate = undefined;\n }\n _notify(chart, anims, date, type) {\n const callbacks = anims.listeners[type];\n const numSteps = anims.duration;\n callbacks.forEach(fn => fn({\n chart,\n initial: anims.initial,\n numSteps,\n currentStep: Math.min(date - anims.start, numSteps)\n }));\n }\n _refresh() {\n if (this._request) {\n return;\n }\n this._running = true;\n this._request = requestAnimFrame.call(window, () => {\n this._update();\n this._request = null;\n if (this._running) {\n this._refresh();\n }\n });\n }\n _update(date = Date.now()) {\n let remaining = 0;\n this._charts.forEach((anims, chart) => {\n if (!anims.running || !anims.items.length) {\n return;\n }\n const items = anims.items;\n let i = items.length - 1;\n let draw = false;\n let item;\n for (; i >= 0; --i) {\n item = items[i];\n if (item._active) {\n if (item._total > anims.duration) {\n anims.duration = item._total;\n }\n item.tick(date);\n draw = true;\n } else {\n items[i] = items[items.length - 1];\n items.pop();\n }\n }\n if (draw) {\n chart.draw();\n this._notify(chart, anims, date, 'progress');\n }\n if (!items.length) {\n anims.running = false;\n this._notify(chart, anims, date, 'complete');\n anims.initial = false;\n }\n remaining += items.length;\n });\n this._lastDate = date;\n if (remaining === 0) {\n this._running = false;\n }\n }\n _getAnims(chart) {\n const charts = this._charts;\n let anims = charts.get(chart);\n if (!anims) {\n anims = {\n running: false,\n initial: true,\n items: [],\n listeners: {\n complete: [],\n progress: []\n }\n };\n charts.set(chart, anims);\n }\n return anims;\n }\n listen(chart, event, cb) {\n this._getAnims(chart).listeners[event].push(cb);\n }\n add(chart, items) {\n if (!items || !items.length) {\n return;\n }\n this._getAnims(chart).items.push(...items);\n }\n has(chart) {\n return this._getAnims(chart).items.length > 0;\n }\n start(chart) {\n const anims = this._charts.get(chart);\n if (!anims) {\n return;\n }\n anims.running = true;\n anims.start = Date.now();\n anims.duration = anims.items.reduce((acc, cur) => Math.max(acc, cur._duration), 0);\n this._refresh();\n }\n running(chart) {\n if (!this._running) {\n return false;\n }\n const anims = this._charts.get(chart);\n if (!anims || !anims.running || !anims.items.length) {\n return false;\n }\n return true;\n }\n stop(chart) {\n const anims = this._charts.get(chart);\n if (!anims || !anims.items.length) {\n return;\n }\n const items = anims.items;\n let i = items.length - 1;\n for (; i >= 0; --i) {\n items[i].cancel();\n }\n anims.items = [];\n this._notify(chart, anims, Date.now(), 'complete');\n }\n remove(chart) {\n return this._charts.delete(chart);\n }\n}\nvar animator = new Animator();\n\nconst transparent = 'transparent';\nconst interpolators = {\n boolean(from, to, factor) {\n return factor > 0.5 ? to : from;\n },\n color(from, to, factor) {\n const c0 = color(from || transparent);\n const c1 = c0.valid && color(to || transparent);\n return c1 && c1.valid\n ? c1.mix(c0, factor).hexString()\n : to;\n },\n number(from, to, factor) {\n return from + (to - from) * factor;\n }\n};\nclass Animation {\n constructor(cfg, target, prop, to) {\n const currentValue = target[prop];\n to = resolve([cfg.to, to, currentValue, cfg.from]);\n const from = resolve([cfg.from, currentValue, to]);\n this._active = true;\n this._fn = cfg.fn || interpolators[cfg.type || typeof from];\n this._easing = effects[cfg.easing] || effects.linear;\n this._start = Math.floor(Date.now() + (cfg.delay || 0));\n this._duration = this._total = Math.floor(cfg.duration);\n this._loop = !!cfg.loop;\n this._target = target;\n this._prop = prop;\n this._from = from;\n this._to = to;\n this._promises = undefined;\n }\n active() {\n return this._active;\n }\n update(cfg, to, date) {\n if (this._active) {\n this._notify(false);\n const currentValue = this._target[this._prop];\n const elapsed = date - this._start;\n const remain = this._duration - elapsed;\n this._start = date;\n this._duration = Math.floor(Math.max(remain, cfg.duration));\n this._total += elapsed;\n this._loop = !!cfg.loop;\n this._to = resolve([cfg.to, to, currentValue, cfg.from]);\n this._from = resolve([cfg.from, currentValue, to]);\n }\n }\n cancel() {\n if (this._active) {\n this.tick(Date.now());\n this._active = false;\n this._notify(false);\n }\n }\n tick(date) {\n const elapsed = date - this._start;\n const duration = this._duration;\n const prop = this._prop;\n const from = this._from;\n const loop = this._loop;\n const to = this._to;\n let factor;\n this._active = from !== to && (loop || (elapsed < duration));\n if (!this._active) {\n this._target[prop] = to;\n this._notify(true);\n return;\n }\n if (elapsed < 0) {\n this._target[prop] = from;\n return;\n }\n factor = (elapsed / duration) % 2;\n factor = loop && factor > 1 ? 2 - factor : factor;\n factor = this._easing(Math.min(1, Math.max(0, factor)));\n this._target[prop] = this._fn(from, to, factor);\n }\n wait() {\n const promises = this._promises || (this._promises = []);\n return new Promise((res, rej) => {\n promises.push({res, rej});\n });\n }\n _notify(resolved) {\n const method = resolved ? 'res' : 'rej';\n const promises = this._promises || [];\n for (let i = 0; i < promises.length; i++) {\n promises[i][method]();\n }\n }\n}\n\nconst numbers = ['x', 'y', 'borderWidth', 'radius', 'tension'];\nconst colors = ['color', 'borderColor', 'backgroundColor'];\ndefaults.set('animation', {\n delay: undefined,\n duration: 1000,\n easing: 'easeOutQuart',\n fn: undefined,\n from: undefined,\n loop: undefined,\n to: undefined,\n type: undefined,\n});\nconst animationOptions = Object.keys(defaults.animation);\ndefaults.describe('animation', {\n _fallback: false,\n _indexable: false,\n _scriptable: (name) => name !== 'onProgress' && name !== 'onComplete' && name !== 'fn',\n});\ndefaults.set('animations', {\n colors: {\n type: 'color',\n properties: colors\n },\n numbers: {\n type: 'number',\n properties: numbers\n },\n});\ndefaults.describe('animations', {\n _fallback: 'animation',\n});\ndefaults.set('transitions', {\n active: {\n animation: {\n duration: 400\n }\n },\n resize: {\n animation: {\n duration: 0\n }\n },\n show: {\n animations: {\n colors: {\n from: 'transparent'\n },\n visible: {\n type: 'boolean',\n duration: 0\n },\n }\n },\n hide: {\n animations: {\n colors: {\n to: 'transparent'\n },\n visible: {\n type: 'boolean',\n easing: 'linear',\n fn: v => v | 0\n },\n }\n }\n});\nclass Animations {\n constructor(chart, config) {\n this._chart = chart;\n this._properties = new Map();\n this.configure(config);\n }\n configure(config) {\n if (!isObject(config)) {\n return;\n }\n const animatedProps = this._properties;\n Object.getOwnPropertyNames(config).forEach(key => {\n const cfg = config[key];\n if (!isObject(cfg)) {\n return;\n }\n const resolved = {};\n for (const option of animationOptions) {\n resolved[option] = cfg[option];\n }\n (isArray(cfg.properties) && cfg.properties || [key]).forEach((prop) => {\n if (prop === key || !animatedProps.has(prop)) {\n animatedProps.set(prop, resolved);\n }\n });\n });\n }\n _animateOptions(target, values) {\n const newOptions = values.options;\n const options = resolveTargetOptions(target, newOptions);\n if (!options) {\n return [];\n }\n const animations = this._createAnimations(options, newOptions);\n if (newOptions.$shared) {\n awaitAll(target.options.$animations, newOptions).then(() => {\n target.options = newOptions;\n }, () => {\n });\n }\n return animations;\n }\n _createAnimations(target, values) {\n const animatedProps = this._properties;\n const animations = [];\n const running = target.$animations || (target.$animations = {});\n const props = Object.keys(values);\n const date = Date.now();\n let i;\n for (i = props.length - 1; i >= 0; --i) {\n const prop = props[i];\n if (prop.charAt(0) === '$') {\n continue;\n }\n if (prop === 'options') {\n animations.push(...this._animateOptions(target, values));\n continue;\n }\n const value = values[prop];\n let animation = running[prop];\n const cfg = animatedProps.get(prop);\n if (animation) {\n if (cfg && animation.active()) {\n animation.update(cfg, value, date);\n continue;\n } else {\n animation.cancel();\n }\n }\n if (!cfg || !cfg.duration) {\n target[prop] = value;\n continue;\n }\n running[prop] = animation = new Animation(cfg, target, prop, value);\n animations.push(animation);\n }\n return animations;\n }\n update(target, values) {\n if (this._properties.size === 0) {\n Object.assign(target, values);\n return;\n }\n const animations = this._createAnimations(target, values);\n if (animations.length) {\n animator.add(this._chart, animations);\n return true;\n }\n }\n}\nfunction awaitAll(animations, properties) {\n const running = [];\n const keys = Object.keys(properties);\n for (let i = 0; i < keys.length; i++) {\n const anim = animations[keys[i]];\n if (anim && anim.active()) {\n running.push(anim.wait());\n }\n }\n return Promise.all(running);\n}\nfunction resolveTargetOptions(target, newOptions) {\n if (!newOptions) {\n return;\n }\n let options = target.options;\n if (!options) {\n target.options = newOptions;\n return;\n }\n if (options.$shared) {\n target.options = options = Object.assign({}, options, {$shared: false, $animations: {}});\n }\n return options;\n}\n\nfunction scaleClip(scale, allowedOverflow) {\n const opts = scale && scale.options || {};\n const reverse = opts.reverse;\n const min = opts.min === undefined ? allowedOverflow : 0;\n const max = opts.max === undefined ? allowedOverflow : 0;\n return {\n start: reverse ? max : min,\n end: reverse ? min : max\n };\n}\nfunction defaultClip(xScale, yScale, allowedOverflow) {\n if (allowedOverflow === false) {\n return false;\n }\n const x = scaleClip(xScale, allowedOverflow);\n const y = scaleClip(yScale, allowedOverflow);\n return {\n top: y.end,\n right: x.end,\n bottom: y.start,\n left: x.start\n };\n}\nfunction toClip(value) {\n let t, r, b, l;\n if (isObject(value)) {\n t = value.top;\n r = value.right;\n b = value.bottom;\n l = value.left;\n } else {\n t = r = b = l = value;\n }\n return {\n top: t,\n right: r,\n bottom: b,\n left: l,\n disabled: value === false\n };\n}\nfunction getSortedDatasetIndices(chart, filterVisible) {\n const keys = [];\n const metasets = chart._getSortedDatasetMetas(filterVisible);\n let i, ilen;\n for (i = 0, ilen = metasets.length; i < ilen; ++i) {\n keys.push(metasets[i].index);\n }\n return keys;\n}\nfunction applyStack(stack, value, dsIndex, options = {}) {\n const keys = stack.keys;\n const singleMode = options.mode === 'single';\n let i, ilen, datasetIndex, otherValue;\n if (value === null) {\n return;\n }\n for (i = 0, ilen = keys.length; i < ilen; ++i) {\n datasetIndex = +keys[i];\n if (datasetIndex === dsIndex) {\n if (options.all) {\n continue;\n }\n break;\n }\n otherValue = stack.values[datasetIndex];\n if (isNumberFinite(otherValue) && (singleMode || (value === 0 || sign(value) === sign(otherValue)))) {\n value += otherValue;\n }\n }\n return value;\n}\nfunction convertObjectDataToArray(data) {\n const keys = Object.keys(data);\n const adata = new Array(keys.length);\n let i, ilen, key;\n for (i = 0, ilen = keys.length; i < ilen; ++i) {\n key = keys[i];\n adata[i] = {\n x: key,\n y: data[key]\n };\n }\n return adata;\n}\nfunction isStacked(scale, meta) {\n const stacked = scale && scale.options.stacked;\n return stacked || (stacked === undefined && meta.stack !== undefined);\n}\nfunction getStackKey(indexScale, valueScale, meta) {\n return `${indexScale.id}.${valueScale.id}.${meta.stack || meta.type}`;\n}\nfunction getUserBounds(scale) {\n const {min, max, minDefined, maxDefined} = scale.getUserBounds();\n return {\n min: minDefined ? min : Number.NEGATIVE_INFINITY,\n max: maxDefined ? max : Number.POSITIVE_INFINITY\n };\n}\nfunction getOrCreateStack(stacks, stackKey, indexValue) {\n const subStack = stacks[stackKey] || (stacks[stackKey] = {});\n return subStack[indexValue] || (subStack[indexValue] = {});\n}\nfunction getLastIndexInStack(stack, vScale, positive, type) {\n for (const meta of vScale.getMatchingVisibleMetas(type).reverse()) {\n const value = stack[meta.index];\n if ((positive && value > 0) || (!positive && value < 0)) {\n return meta.index;\n }\n }\n return null;\n}\nfunction updateStacks(controller, parsed) {\n const {chart, _cachedMeta: meta} = controller;\n const stacks = chart._stacks || (chart._stacks = {});\n const {iScale, vScale, index: datasetIndex} = meta;\n const iAxis = iScale.axis;\n const vAxis = vScale.axis;\n const key = getStackKey(iScale, vScale, meta);\n const ilen = parsed.length;\n let stack;\n for (let i = 0; i < ilen; ++i) {\n const item = parsed[i];\n const {[iAxis]: index, [vAxis]: value} = item;\n const itemStacks = item._stacks || (item._stacks = {});\n stack = itemStacks[vAxis] = getOrCreateStack(stacks, key, index);\n stack[datasetIndex] = value;\n stack._top = getLastIndexInStack(stack, vScale, true, meta.type);\n stack._bottom = getLastIndexInStack(stack, vScale, false, meta.type);\n }\n}\nfunction getFirstScaleId(chart, axis) {\n const scales = chart.scales;\n return Object.keys(scales).filter(key => scales[key].axis === axis).shift();\n}\nfunction createDatasetContext(parent, index) {\n return createContext(parent,\n {\n active: false,\n dataset: undefined,\n datasetIndex: index,\n index,\n mode: 'default',\n type: 'dataset'\n }\n );\n}\nfunction createDataContext(parent, index, element) {\n return createContext(parent, {\n active: false,\n dataIndex: index,\n parsed: undefined,\n raw: undefined,\n element,\n index,\n mode: 'default',\n type: 'data'\n });\n}\nfunction clearStacks(meta, items) {\n const datasetIndex = meta.controller.index;\n const axis = meta.vScale && meta.vScale.axis;\n if (!axis) {\n return;\n }\n items = items || meta._parsed;\n for (const parsed of items) {\n const stacks = parsed._stacks;\n if (!stacks || stacks[axis] === undefined || stacks[axis][datasetIndex] === undefined) {\n return;\n }\n delete stacks[axis][datasetIndex];\n }\n}\nconst isDirectUpdateMode = (mode) => mode === 'reset' || mode === 'none';\nconst cloneIfNotShared = (cached, shared) => shared ? cached : Object.assign({}, cached);\nconst createStack = (canStack, meta, chart) => canStack && !meta.hidden && meta._stacked\n && {keys: getSortedDatasetIndices(chart, true), values: null};\nclass DatasetController {\n constructor(chart, datasetIndex) {\n this.chart = chart;\n this._ctx = chart.ctx;\n this.index = datasetIndex;\n this._cachedDataOpts = {};\n this._cachedMeta = this.getMeta();\n this._type = this._cachedMeta.type;\n this.options = undefined;\n this._parsing = false;\n this._data = undefined;\n this._objectData = undefined;\n this._sharedOptions = undefined;\n this._drawStart = undefined;\n this._drawCount = undefined;\n this.enableOptionSharing = false;\n this.supportsDecimation = false;\n this.$context = undefined;\n this._syncList = [];\n this.initialize();\n }\n initialize() {\n const meta = this._cachedMeta;\n this.configure();\n this.linkScales();\n meta._stacked = isStacked(meta.vScale, meta);\n this.addElements();\n }\n updateIndex(datasetIndex) {\n if (this.index !== datasetIndex) {\n clearStacks(this._cachedMeta);\n }\n this.index = datasetIndex;\n }\n linkScales() {\n const chart = this.chart;\n const meta = this._cachedMeta;\n const dataset = this.getDataset();\n const chooseId = (axis, x, y, r) => axis === 'x' ? x : axis === 'r' ? r : y;\n const xid = meta.xAxisID = valueOrDefault(dataset.xAxisID, getFirstScaleId(chart, 'x'));\n const yid = meta.yAxisID = valueOrDefault(dataset.yAxisID, getFirstScaleId(chart, 'y'));\n const rid = meta.rAxisID = valueOrDefault(dataset.rAxisID, getFirstScaleId(chart, 'r'));\n const indexAxis = meta.indexAxis;\n const iid = meta.iAxisID = chooseId(indexAxis, xid, yid, rid);\n const vid = meta.vAxisID = chooseId(indexAxis, yid, xid, rid);\n meta.xScale = this.getScaleForId(xid);\n meta.yScale = this.getScaleForId(yid);\n meta.rScale = this.getScaleForId(rid);\n meta.iScale = this.getScaleForId(iid);\n meta.vScale = this.getScaleForId(vid);\n }\n getDataset() {\n return this.chart.data.datasets[this.index];\n }\n getMeta() {\n return this.chart.getDatasetMeta(this.index);\n }\n getScaleForId(scaleID) {\n return this.chart.scales[scaleID];\n }\n _getOtherScale(scale) {\n const meta = this._cachedMeta;\n return scale === meta.iScale\n ? meta.vScale\n : meta.iScale;\n }\n reset() {\n this._update('reset');\n }\n _destroy() {\n const meta = this._cachedMeta;\n if (this._data) {\n unlistenArrayEvents(this._data, this);\n }\n if (meta._stacked) {\n clearStacks(meta);\n }\n }\n _dataCheck() {\n const dataset = this.getDataset();\n const data = dataset.data || (dataset.data = []);\n const _data = this._data;\n if (isObject(data)) {\n this._data = convertObjectDataToArray(data);\n } else if (_data !== data) {\n if (_data) {\n unlistenArrayEvents(_data, this);\n const meta = this._cachedMeta;\n clearStacks(meta);\n meta._parsed = [];\n }\n if (data && Object.isExtensible(data)) {\n listenArrayEvents(data, this);\n }\n this._syncList = [];\n this._data = data;\n }\n }\n addElements() {\n const meta = this._cachedMeta;\n this._dataCheck();\n if (this.datasetElementType) {\n meta.dataset = new this.datasetElementType();\n }\n }\n buildOrUpdateElements(resetNewElements) {\n const meta = this._cachedMeta;\n const dataset = this.getDataset();\n let stackChanged = false;\n this._dataCheck();\n const oldStacked = meta._stacked;\n meta._stacked = isStacked(meta.vScale, meta);\n if (meta.stack !== dataset.stack) {\n stackChanged = true;\n clearStacks(meta);\n meta.stack = dataset.stack;\n }\n this._resyncElements(resetNewElements);\n if (stackChanged || oldStacked !== meta._stacked) {\n updateStacks(this, meta._parsed);\n }\n }\n configure() {\n const config = this.chart.config;\n const scopeKeys = config.datasetScopeKeys(this._type);\n const scopes = config.getOptionScopes(this.getDataset(), scopeKeys, true);\n this.options = config.createResolver(scopes, this.getContext());\n this._parsing = this.options.parsing;\n this._cachedDataOpts = {};\n }\n parse(start, count) {\n const {_cachedMeta: meta, _data: data} = this;\n const {iScale, _stacked} = meta;\n const iAxis = iScale.axis;\n let sorted = start === 0 && count === data.length ? true : meta._sorted;\n let prev = start > 0 && meta._parsed[start - 1];\n let i, cur, parsed;\n if (this._parsing === false) {\n meta._parsed = data;\n meta._sorted = true;\n parsed = data;\n } else {\n if (isArray(data[start])) {\n parsed = this.parseArrayData(meta, data, start, count);\n } else if (isObject(data[start])) {\n parsed = this.parseObjectData(meta, data, start, count);\n } else {\n parsed = this.parsePrimitiveData(meta, data, start, count);\n }\n const isNotInOrderComparedToPrev = () => cur[iAxis] === null || (prev && cur[iAxis] < prev[iAxis]);\n for (i = 0; i < count; ++i) {\n meta._parsed[i + start] = cur = parsed[i];\n if (sorted) {\n if (isNotInOrderComparedToPrev()) {\n sorted = false;\n }\n prev = cur;\n }\n }\n meta._sorted = sorted;\n }\n if (_stacked) {\n updateStacks(this, parsed);\n }\n }\n parsePrimitiveData(meta, data, start, count) {\n const {iScale, vScale} = meta;\n const iAxis = iScale.axis;\n const vAxis = vScale.axis;\n const labels = iScale.getLabels();\n const singleScale = iScale === vScale;\n const parsed = new Array(count);\n let i, ilen, index;\n for (i = 0, ilen = count; i < ilen; ++i) {\n index = i + start;\n parsed[i] = {\n [iAxis]: singleScale || iScale.parse(labels[index], index),\n [vAxis]: vScale.parse(data[index], index)\n };\n }\n return parsed;\n }\n parseArrayData(meta, data, start, count) {\n const {xScale, yScale} = meta;\n const parsed = new Array(count);\n let i, ilen, index, item;\n for (i = 0, ilen = count; i < ilen; ++i) {\n index = i + start;\n item = data[index];\n parsed[i] = {\n x: xScale.parse(item[0], index),\n y: yScale.parse(item[1], index)\n };\n }\n return parsed;\n }\n parseObjectData(meta, data, start, count) {\n const {xScale, yScale} = meta;\n const {xAxisKey = 'x', yAxisKey = 'y'} = this._parsing;\n const parsed = new Array(count);\n let i, ilen, index, item;\n for (i = 0, ilen = count; i < ilen; ++i) {\n index = i + start;\n item = data[index];\n parsed[i] = {\n x: xScale.parse(resolveObjectKey(item, xAxisKey), index),\n y: yScale.parse(resolveObjectKey(item, yAxisKey), index)\n };\n }\n return parsed;\n }\n getParsed(index) {\n return this._cachedMeta._parsed[index];\n }\n getDataElement(index) {\n return this._cachedMeta.data[index];\n }\n applyStack(scale, parsed, mode) {\n const chart = this.chart;\n const meta = this._cachedMeta;\n const value = parsed[scale.axis];\n const stack = {\n keys: getSortedDatasetIndices(chart, true),\n values: parsed._stacks[scale.axis]\n };\n return applyStack(stack, value, meta.index, {mode});\n }\n updateRangeFromParsed(range, scale, parsed, stack) {\n const parsedValue = parsed[scale.axis];\n let value = parsedValue === null ? NaN : parsedValue;\n const values = stack && parsed._stacks[scale.axis];\n if (stack && values) {\n stack.values = values;\n value = applyStack(stack, parsedValue, this._cachedMeta.index);\n }\n range.min = Math.min(range.min, value);\n range.max = Math.max(range.max, value);\n }\n getMinMax(scale, canStack) {\n const meta = this._cachedMeta;\n const _parsed = meta._parsed;\n const sorted = meta._sorted && scale === meta.iScale;\n const ilen = _parsed.length;\n const otherScale = this._getOtherScale(scale);\n const stack = createStack(canStack, meta, this.chart);\n const range = {min: Number.POSITIVE_INFINITY, max: Number.NEGATIVE_INFINITY};\n const {min: otherMin, max: otherMax} = getUserBounds(otherScale);\n let i, parsed;\n function _skip() {\n parsed = _parsed[i];\n const otherValue = parsed[otherScale.axis];\n return !isNumberFinite(parsed[scale.axis]) || otherMin > otherValue || otherMax < otherValue;\n }\n for (i = 0; i < ilen; ++i) {\n if (_skip()) {\n continue;\n }\n this.updateRangeFromParsed(range, scale, parsed, stack);\n if (sorted) {\n break;\n }\n }\n if (sorted) {\n for (i = ilen - 1; i >= 0; --i) {\n if (_skip()) {\n continue;\n }\n this.updateRangeFromParsed(range, scale, parsed, stack);\n break;\n }\n }\n return range;\n }\n getAllParsedValues(scale) {\n const parsed = this._cachedMeta._parsed;\n const values = [];\n let i, ilen, value;\n for (i = 0, ilen = parsed.length; i < ilen; ++i) {\n value = parsed[i][scale.axis];\n if (isNumberFinite(value)) {\n values.push(value);\n }\n }\n return values;\n }\n getMaxOverflow() {\n return false;\n }\n getLabelAndValue(index) {\n const meta = this._cachedMeta;\n const iScale = meta.iScale;\n const vScale = meta.vScale;\n const parsed = this.getParsed(index);\n return {\n label: iScale ? '' + iScale.getLabelForValue(parsed[iScale.axis]) : '',\n value: vScale ? '' + vScale.getLabelForValue(parsed[vScale.axis]) : ''\n };\n }\n _update(mode) {\n const meta = this._cachedMeta;\n this.update(mode || 'default');\n meta._clip = toClip(valueOrDefault(this.options.clip, defaultClip(meta.xScale, meta.yScale, this.getMaxOverflow())));\n }\n update(mode) {}\n draw() {\n const ctx = this._ctx;\n const chart = this.chart;\n const meta = this._cachedMeta;\n const elements = meta.data || [];\n const area = chart.chartArea;\n const active = [];\n const start = this._drawStart || 0;\n const count = this._drawCount || (elements.length - start);\n const drawActiveElementsOnTop = this.options.drawActiveElementsOnTop;\n let i;\n if (meta.dataset) {\n meta.dataset.draw(ctx, area, start, count);\n }\n for (i = start; i < start + count; ++i) {\n const element = elements[i];\n if (element.hidden) {\n continue;\n }\n if (element.active && drawActiveElementsOnTop) {\n active.push(element);\n } else {\n element.draw(ctx, area);\n }\n }\n for (i = 0; i < active.length; ++i) {\n active[i].draw(ctx, area);\n }\n }\n getStyle(index, active) {\n const mode = active ? 'active' : 'default';\n return index === undefined && this._cachedMeta.dataset\n ? this.resolveDatasetElementOptions(mode)\n : this.resolveDataElementOptions(index || 0, mode);\n }\n getContext(index, active, mode) {\n const dataset = this.getDataset();\n let context;\n if (index >= 0 && index < this._cachedMeta.data.length) {\n const element = this._cachedMeta.data[index];\n context = element.$context ||\n (element.$context = createDataContext(this.getContext(), index, element));\n context.parsed = this.getParsed(index);\n context.raw = dataset.data[index];\n context.index = context.dataIndex = index;\n } else {\n context = this.$context ||\n (this.$context = createDatasetContext(this.chart.getContext(), this.index));\n context.dataset = dataset;\n context.index = context.datasetIndex = this.index;\n }\n context.active = !!active;\n context.mode = mode;\n return context;\n }\n resolveDatasetElementOptions(mode) {\n return this._resolveElementOptions(this.datasetElementType.id, mode);\n }\n resolveDataElementOptions(index, mode) {\n return this._resolveElementOptions(this.dataElementType.id, mode, index);\n }\n _resolveElementOptions(elementType, mode = 'default', index) {\n const active = mode === 'active';\n const cache = this._cachedDataOpts;\n const cacheKey = elementType + '-' + mode;\n const cached = cache[cacheKey];\n const sharing = this.enableOptionSharing && defined(index);\n if (cached) {\n return cloneIfNotShared(cached, sharing);\n }\n const config = this.chart.config;\n const scopeKeys = config.datasetElementScopeKeys(this._type, elementType);\n const prefixes = active ? [`${elementType}Hover`, 'hover', elementType, ''] : [elementType, ''];\n const scopes = config.getOptionScopes(this.getDataset(), scopeKeys);\n const names = Object.keys(defaults.elements[elementType]);\n const context = () => this.getContext(index, active);\n const values = config.resolveNamedOptions(scopes, names, context, prefixes);\n if (values.$shared) {\n values.$shared = sharing;\n cache[cacheKey] = Object.freeze(cloneIfNotShared(values, sharing));\n }\n return values;\n }\n _resolveAnimations(index, transition, active) {\n const chart = this.chart;\n const cache = this._cachedDataOpts;\n const cacheKey = `animation-${transition}`;\n const cached = cache[cacheKey];\n if (cached) {\n return cached;\n }\n let options;\n if (chart.options.animation !== false) {\n const config = this.chart.config;\n const scopeKeys = config.datasetAnimationScopeKeys(this._type, transition);\n const scopes = config.getOptionScopes(this.getDataset(), scopeKeys);\n options = config.createResolver(scopes, this.getContext(index, active, transition));\n }\n const animations = new Animations(chart, options && options.animations);\n if (options && options._cacheable) {\n cache[cacheKey] = Object.freeze(animations);\n }\n return animations;\n }\n getSharedOptions(options) {\n if (!options.$shared) {\n return;\n }\n return this._sharedOptions || (this._sharedOptions = Object.assign({}, options));\n }\n includeOptions(mode, sharedOptions) {\n return !sharedOptions || isDirectUpdateMode(mode) || this.chart._animationsDisabled;\n }\n _getSharedOptions(start, mode) {\n const firstOpts = this.resolveDataElementOptions(start, mode);\n const previouslySharedOptions = this._sharedOptions;\n const sharedOptions = this.getSharedOptions(firstOpts);\n const includeOptions = this.includeOptions(mode, sharedOptions) || (sharedOptions !== previouslySharedOptions);\n this.updateSharedOptions(sharedOptions, mode, firstOpts);\n return {sharedOptions, includeOptions};\n }\n updateElement(element, index, properties, mode) {\n if (isDirectUpdateMode(mode)) {\n Object.assign(element, properties);\n } else {\n this._resolveAnimations(index, mode).update(element, properties);\n }\n }\n updateSharedOptions(sharedOptions, mode, newOptions) {\n if (sharedOptions && !isDirectUpdateMode(mode)) {\n this._resolveAnimations(undefined, mode).update(sharedOptions, newOptions);\n }\n }\n _setStyle(element, index, mode, active) {\n element.active = active;\n const options = this.getStyle(index, active);\n this._resolveAnimations(index, mode, active).update(element, {\n options: (!active && this.getSharedOptions(options)) || options\n });\n }\n removeHoverStyle(element, datasetIndex, index) {\n this._setStyle(element, index, 'active', false);\n }\n setHoverStyle(element, datasetIndex, index) {\n this._setStyle(element, index, 'active', true);\n }\n _removeDatasetHoverStyle() {\n const element = this._cachedMeta.dataset;\n if (element) {\n this._setStyle(element, undefined, 'active', false);\n }\n }\n _setDatasetHoverStyle() {\n const element = this._cachedMeta.dataset;\n if (element) {\n this._setStyle(element, undefined, 'active', true);\n }\n }\n _resyncElements(resetNewElements) {\n const data = this._data;\n const elements = this._cachedMeta.data;\n for (const [method, arg1, arg2] of this._syncList) {\n this[method](arg1, arg2);\n }\n this._syncList = [];\n const numMeta = elements.length;\n const numData = data.length;\n const count = Math.min(numData, numMeta);\n if (count) {\n this.parse(0, count);\n }\n if (numData > numMeta) {\n this._insertElements(numMeta, numData - numMeta, resetNewElements);\n } else if (numData < numMeta) {\n this._removeElements(numData, numMeta - numData);\n }\n }\n _insertElements(start, count, resetNewElements = true) {\n const meta = this._cachedMeta;\n const data = meta.data;\n const end = start + count;\n let i;\n const move = (arr) => {\n arr.length += count;\n for (i = arr.length - 1; i >= end; i--) {\n arr[i] = arr[i - count];\n }\n };\n move(data);\n for (i = start; i < end; ++i) {\n data[i] = new this.dataElementType();\n }\n if (this._parsing) {\n move(meta._parsed);\n }\n this.parse(start, count);\n if (resetNewElements) {\n this.updateElements(data, start, count, 'reset');\n }\n }\n updateElements(element, start, count, mode) {}\n _removeElements(start, count) {\n const meta = this._cachedMeta;\n if (this._parsing) {\n const removed = meta._parsed.splice(start, count);\n if (meta._stacked) {\n clearStacks(meta, removed);\n }\n }\n meta.data.splice(start, count);\n }\n _sync(args) {\n if (this._parsing) {\n this._syncList.push(args);\n } else {\n const [method, arg1, arg2] = args;\n this[method](arg1, arg2);\n }\n this.chart._dataChanges.push([this.index, ...args]);\n }\n _onDataPush() {\n const count = arguments.length;\n this._sync(['_insertElements', this.getDataset().data.length - count, count]);\n }\n _onDataPop() {\n this._sync(['_removeElements', this._cachedMeta.data.length - 1, 1]);\n }\n _onDataShift() {\n this._sync(['_removeElements', 0, 1]);\n }\n _onDataSplice(start, count) {\n if (count) {\n this._sync(['_removeElements', start, count]);\n }\n const newCount = arguments.length - 2;\n if (newCount) {\n this._sync(['_insertElements', start, newCount]);\n }\n }\n _onDataUnshift() {\n this._sync(['_insertElements', 0, arguments.length]);\n }\n}\nDatasetController.defaults = {};\nDatasetController.prototype.datasetElementType = null;\nDatasetController.prototype.dataElementType = null;\n\nfunction getAllScaleValues(scale, type) {\n if (!scale._cache.$bar) {\n const visibleMetas = scale.getMatchingVisibleMetas(type);\n let values = [];\n for (let i = 0, ilen = visibleMetas.length; i < ilen; i++) {\n values = values.concat(visibleMetas[i].controller.getAllParsedValues(scale));\n }\n scale._cache.$bar = _arrayUnique(values.sort((a, b) => a - b));\n }\n return scale._cache.$bar;\n}\nfunction computeMinSampleSize(meta) {\n const scale = meta.iScale;\n const values = getAllScaleValues(scale, meta.type);\n let min = scale._length;\n let i, ilen, curr, prev;\n const updateMinAndPrev = () => {\n if (curr === 32767 || curr === -32768) {\n return;\n }\n if (defined(prev)) {\n min = Math.min(min, Math.abs(curr - prev) || min);\n }\n prev = curr;\n };\n for (i = 0, ilen = values.length; i < ilen; ++i) {\n curr = scale.getPixelForValue(values[i]);\n updateMinAndPrev();\n }\n prev = undefined;\n for (i = 0, ilen = scale.ticks.length; i < ilen; ++i) {\n curr = scale.getPixelForTick(i);\n updateMinAndPrev();\n }\n return min;\n}\nfunction computeFitCategoryTraits(index, ruler, options, stackCount) {\n const thickness = options.barThickness;\n let size, ratio;\n if (isNullOrUndef(thickness)) {\n size = ruler.min * options.categoryPercentage;\n ratio = options.barPercentage;\n } else {\n size = thickness * stackCount;\n ratio = 1;\n }\n return {\n chunk: size / stackCount,\n ratio,\n start: ruler.pixels[index] - (size / 2)\n };\n}\nfunction computeFlexCategoryTraits(index, ruler, options, stackCount) {\n const pixels = ruler.pixels;\n const curr = pixels[index];\n let prev = index > 0 ? pixels[index - 1] : null;\n let next = index < pixels.length - 1 ? pixels[index + 1] : null;\n const percent = options.categoryPercentage;\n if (prev === null) {\n prev = curr - (next === null ? ruler.end - ruler.start : next - curr);\n }\n if (next === null) {\n next = curr + curr - prev;\n }\n const start = curr - (curr - Math.min(prev, next)) / 2 * percent;\n const size = Math.abs(next - prev) / 2 * percent;\n return {\n chunk: size / stackCount,\n ratio: options.barPercentage,\n start\n };\n}\nfunction parseFloatBar(entry, item, vScale, i) {\n const startValue = vScale.parse(entry[0], i);\n const endValue = vScale.parse(entry[1], i);\n const min = Math.min(startValue, endValue);\n const max = Math.max(startValue, endValue);\n let barStart = min;\n let barEnd = max;\n if (Math.abs(min) > Math.abs(max)) {\n barStart = max;\n barEnd = min;\n }\n item[vScale.axis] = barEnd;\n item._custom = {\n barStart,\n barEnd,\n start: startValue,\n end: endValue,\n min,\n max\n };\n}\nfunction parseValue(entry, item, vScale, i) {\n if (isArray(entry)) {\n parseFloatBar(entry, item, vScale, i);\n } else {\n item[vScale.axis] = vScale.parse(entry, i);\n }\n return item;\n}\nfunction parseArrayOrPrimitive(meta, data, start, count) {\n const iScale = meta.iScale;\n const vScale = meta.vScale;\n const labels = iScale.getLabels();\n const singleScale = iScale === vScale;\n const parsed = [];\n let i, ilen, item, entry;\n for (i = start, ilen = start + count; i < ilen; ++i) {\n entry = data[i];\n item = {};\n item[iScale.axis] = singleScale || iScale.parse(labels[i], i);\n parsed.push(parseValue(entry, item, vScale, i));\n }\n return parsed;\n}\nfunction isFloatBar(custom) {\n return custom && custom.barStart !== undefined && custom.barEnd !== undefined;\n}\nfunction barSign(size, vScale, actualBase) {\n if (size !== 0) {\n return sign(size);\n }\n return (vScale.isHorizontal() ? 1 : -1) * (vScale.min >= actualBase ? 1 : -1);\n}\nfunction borderProps(properties) {\n let reverse, start, end, top, bottom;\n if (properties.horizontal) {\n reverse = properties.base > properties.x;\n start = 'left';\n end = 'right';\n } else {\n reverse = properties.base < properties.y;\n start = 'bottom';\n end = 'top';\n }\n if (reverse) {\n top = 'end';\n bottom = 'start';\n } else {\n top = 'start';\n bottom = 'end';\n }\n return {start, end, reverse, top, bottom};\n}\nfunction setBorderSkipped(properties, options, stack, index) {\n let edge = options.borderSkipped;\n const res = {};\n if (!edge) {\n properties.borderSkipped = res;\n return;\n }\n if (edge === true) {\n properties.borderSkipped = {top: true, right: true, bottom: true, left: true};\n return;\n }\n const {start, end, reverse, top, bottom} = borderProps(properties);\n if (edge === 'middle' && stack) {\n properties.enableBorderRadius = true;\n if ((stack._top || 0) === index) {\n edge = top;\n } else if ((stack._bottom || 0) === index) {\n edge = bottom;\n } else {\n res[parseEdge(bottom, start, end, reverse)] = true;\n edge = top;\n }\n }\n res[parseEdge(edge, start, end, reverse)] = true;\n properties.borderSkipped = res;\n}\nfunction parseEdge(edge, a, b, reverse) {\n if (reverse) {\n edge = swap(edge, a, b);\n edge = startEnd(edge, b, a);\n } else {\n edge = startEnd(edge, a, b);\n }\n return edge;\n}\nfunction swap(orig, v1, v2) {\n return orig === v1 ? v2 : orig === v2 ? v1 : orig;\n}\nfunction startEnd(v, start, end) {\n return v === 'start' ? start : v === 'end' ? end : v;\n}\nfunction setInflateAmount(properties, {inflateAmount}, ratio) {\n properties.inflateAmount = inflateAmount === 'auto'\n ? ratio === 1 ? 0.33 : 0\n : inflateAmount;\n}\nclass BarController extends DatasetController {\n parsePrimitiveData(meta, data, start, count) {\n return parseArrayOrPrimitive(meta, data, start, count);\n }\n parseArrayData(meta, data, start, count) {\n return parseArrayOrPrimitive(meta, data, start, count);\n }\n parseObjectData(meta, data, start, count) {\n const {iScale, vScale} = meta;\n const {xAxisKey = 'x', yAxisKey = 'y'} = this._parsing;\n const iAxisKey = iScale.axis === 'x' ? xAxisKey : yAxisKey;\n const vAxisKey = vScale.axis === 'x' ? xAxisKey : yAxisKey;\n const parsed = [];\n let i, ilen, item, obj;\n for (i = start, ilen = start + count; i < ilen; ++i) {\n obj = data[i];\n item = {};\n item[iScale.axis] = iScale.parse(resolveObjectKey(obj, iAxisKey), i);\n parsed.push(parseValue(resolveObjectKey(obj, vAxisKey), item, vScale, i));\n }\n return parsed;\n }\n updateRangeFromParsed(range, scale, parsed, stack) {\n super.updateRangeFromParsed(range, scale, parsed, stack);\n const custom = parsed._custom;\n if (custom && scale === this._cachedMeta.vScale) {\n range.min = Math.min(range.min, custom.min);\n range.max = Math.max(range.max, custom.max);\n }\n }\n getMaxOverflow() {\n return 0;\n }\n getLabelAndValue(index) {\n const meta = this._cachedMeta;\n const {iScale, vScale} = meta;\n const parsed = this.getParsed(index);\n const custom = parsed._custom;\n const value = isFloatBar(custom)\n ? '[' + custom.start + ', ' + custom.end + ']'\n : '' + vScale.getLabelForValue(parsed[vScale.axis]);\n return {\n label: '' + iScale.getLabelForValue(parsed[iScale.axis]),\n value\n };\n }\n initialize() {\n this.enableOptionSharing = true;\n super.initialize();\n const meta = this._cachedMeta;\n meta.stack = this.getDataset().stack;\n }\n update(mode) {\n const meta = this._cachedMeta;\n this.updateElements(meta.data, 0, meta.data.length, mode);\n }\n updateElements(bars, start, count, mode) {\n const reset = mode === 'reset';\n const {index, _cachedMeta: {vScale}} = this;\n const base = vScale.getBasePixel();\n const horizontal = vScale.isHorizontal();\n const ruler = this._getRuler();\n const {sharedOptions, includeOptions} = this._getSharedOptions(start, mode);\n for (let i = start; i < start + count; i++) {\n const parsed = this.getParsed(i);\n const vpixels = reset || isNullOrUndef(parsed[vScale.axis]) ? {base, head: base} : this._calculateBarValuePixels(i);\n const ipixels = this._calculateBarIndexPixels(i, ruler);\n const stack = (parsed._stacks || {})[vScale.axis];\n const properties = {\n horizontal,\n base: vpixels.base,\n enableBorderRadius: !stack || isFloatBar(parsed._custom) || (index === stack._top || index === stack._bottom),\n x: horizontal ? vpixels.head : ipixels.center,\n y: horizontal ? ipixels.center : vpixels.head,\n height: horizontal ? ipixels.size : Math.abs(vpixels.size),\n width: horizontal ? Math.abs(vpixels.size) : ipixels.size\n };\n if (includeOptions) {\n properties.options = sharedOptions || this.resolveDataElementOptions(i, bars[i].active ? 'active' : mode);\n }\n const options = properties.options || bars[i].options;\n setBorderSkipped(properties, options, stack, index);\n setInflateAmount(properties, options, ruler.ratio);\n this.updateElement(bars[i], i, properties, mode);\n }\n }\n _getStacks(last, dataIndex) {\n const {iScale} = this._cachedMeta;\n const metasets = iScale.getMatchingVisibleMetas(this._type)\n .filter(meta => meta.controller.options.grouped);\n const stacked = iScale.options.stacked;\n const stacks = [];\n const skipNull = (meta) => {\n const parsed = meta.controller.getParsed(dataIndex);\n const val = parsed && parsed[meta.vScale.axis];\n if (isNullOrUndef(val) || isNaN(val)) {\n return true;\n }\n };\n for (const meta of metasets) {\n if (dataIndex !== undefined && skipNull(meta)) {\n continue;\n }\n if (stacked === false || stacks.indexOf(meta.stack) === -1 ||\n\t\t\t\t(stacked === undefined && meta.stack === undefined)) {\n stacks.push(meta.stack);\n }\n if (meta.index === last) {\n break;\n }\n }\n if (!stacks.length) {\n stacks.push(undefined);\n }\n return stacks;\n }\n _getStackCount(index) {\n return this._getStacks(undefined, index).length;\n }\n _getStackIndex(datasetIndex, name, dataIndex) {\n const stacks = this._getStacks(datasetIndex, dataIndex);\n const index = (name !== undefined)\n ? stacks.indexOf(name)\n : -1;\n return (index === -1)\n ? stacks.length - 1\n : index;\n }\n _getRuler() {\n const opts = this.options;\n const meta = this._cachedMeta;\n const iScale = meta.iScale;\n const pixels = [];\n let i, ilen;\n for (i = 0, ilen = meta.data.length; i < ilen; ++i) {\n pixels.push(iScale.getPixelForValue(this.getParsed(i)[iScale.axis], i));\n }\n const barThickness = opts.barThickness;\n const min = barThickness || computeMinSampleSize(meta);\n return {\n min,\n pixels,\n start: iScale._startPixel,\n end: iScale._endPixel,\n stackCount: this._getStackCount(),\n scale: iScale,\n grouped: opts.grouped,\n ratio: barThickness ? 1 : opts.categoryPercentage * opts.barPercentage\n };\n }\n _calculateBarValuePixels(index) {\n const {_cachedMeta: {vScale, _stacked}, options: {base: baseValue, minBarLength}} = this;\n const actualBase = baseValue || 0;\n const parsed = this.getParsed(index);\n const custom = parsed._custom;\n const floating = isFloatBar(custom);\n let value = parsed[vScale.axis];\n let start = 0;\n let length = _stacked ? this.applyStack(vScale, parsed, _stacked) : value;\n let head, size;\n if (length !== value) {\n start = length - value;\n length = value;\n }\n if (floating) {\n value = custom.barStart;\n length = custom.barEnd - custom.barStart;\n if (value !== 0 && sign(value) !== sign(custom.barEnd)) {\n start = 0;\n }\n start += value;\n }\n const startValue = !isNullOrUndef(baseValue) && !floating ? baseValue : start;\n let base = vScale.getPixelForValue(startValue);\n if (this.chart.getDataVisibility(index)) {\n head = vScale.getPixelForValue(start + length);\n } else {\n head = base;\n }\n size = head - base;\n if (Math.abs(size) < minBarLength) {\n size = barSign(size, vScale, actualBase) * minBarLength;\n if (value === actualBase) {\n base -= size / 2;\n }\n const startPixel = vScale.getPixelForDecimal(0);\n const endPixel = vScale.getPixelForDecimal(1);\n const min = Math.min(startPixel, endPixel);\n const max = Math.max(startPixel, endPixel);\n base = Math.max(Math.min(base, max), min);\n head = base + size;\n }\n if (base === vScale.getPixelForValue(actualBase)) {\n const halfGrid = sign(size) * vScale.getLineWidthForValue(actualBase) / 2;\n base += halfGrid;\n size -= halfGrid;\n }\n return {\n size,\n base,\n head,\n center: head + size / 2\n };\n }\n _calculateBarIndexPixels(index, ruler) {\n const scale = ruler.scale;\n const options = this.options;\n const skipNull = options.skipNull;\n const maxBarThickness = valueOrDefault(options.maxBarThickness, Infinity);\n let center, size;\n if (ruler.grouped) {\n const stackCount = skipNull ? this._getStackCount(index) : ruler.stackCount;\n const range = options.barThickness === 'flex'\n ? computeFlexCategoryTraits(index, ruler, options, stackCount)\n : computeFitCategoryTraits(index, ruler, options, stackCount);\n const stackIndex = this._getStackIndex(this.index, this._cachedMeta.stack, skipNull ? index : undefined);\n center = range.start + (range.chunk * stackIndex) + (range.chunk / 2);\n size = Math.min(maxBarThickness, range.chunk * range.ratio);\n } else {\n center = scale.getPixelForValue(this.getParsed(index)[scale.axis], index);\n size = Math.min(maxBarThickness, ruler.min * ruler.ratio);\n }\n return {\n base: center - size / 2,\n head: center + size / 2,\n center,\n size\n };\n }\n draw() {\n const meta = this._cachedMeta;\n const vScale = meta.vScale;\n const rects = meta.data;\n const ilen = rects.length;\n let i = 0;\n for (; i < ilen; ++i) {\n if (this.getParsed(i)[vScale.axis] !== null) {\n rects[i].draw(this._ctx);\n }\n }\n }\n}\nBarController.id = 'bar';\nBarController.defaults = {\n datasetElementType: false,\n dataElementType: 'bar',\n categoryPercentage: 0.8,\n barPercentage: 0.9,\n grouped: true,\n animations: {\n numbers: {\n type: 'number',\n properties: ['x', 'y', 'base', 'width', 'height']\n }\n }\n};\nBarController.overrides = {\n scales: {\n _index_: {\n type: 'category',\n offset: true,\n grid: {\n offset: true\n }\n },\n _value_: {\n type: 'linear',\n beginAtZero: true,\n }\n }\n};\n\nclass BubbleController extends DatasetController {\n initialize() {\n this.enableOptionSharing = true;\n super.initialize();\n }\n parsePrimitiveData(meta, data, start, count) {\n const parsed = super.parsePrimitiveData(meta, data, start, count);\n for (let i = 0; i < parsed.length; i++) {\n parsed[i]._custom = this.resolveDataElementOptions(i + start).radius;\n }\n return parsed;\n }\n parseArrayData(meta, data, start, count) {\n const parsed = super.parseArrayData(meta, data, start, count);\n for (let i = 0; i < parsed.length; i++) {\n const item = data[start + i];\n parsed[i]._custom = valueOrDefault(item[2], this.resolveDataElementOptions(i + start).radius);\n }\n return parsed;\n }\n parseObjectData(meta, data, start, count) {\n const parsed = super.parseObjectData(meta, data, start, count);\n for (let i = 0; i < parsed.length; i++) {\n const item = data[start + i];\n parsed[i]._custom = valueOrDefault(item && item.r && +item.r, this.resolveDataElementOptions(i + start).radius);\n }\n return parsed;\n }\n getMaxOverflow() {\n const data = this._cachedMeta.data;\n let max = 0;\n for (let i = data.length - 1; i >= 0; --i) {\n max = Math.max(max, data[i].size(this.resolveDataElementOptions(i)) / 2);\n }\n return max > 0 && max;\n }\n getLabelAndValue(index) {\n const meta = this._cachedMeta;\n const {xScale, yScale} = meta;\n const parsed = this.getParsed(index);\n const x = xScale.getLabelForValue(parsed.x);\n const y = yScale.getLabelForValue(parsed.y);\n const r = parsed._custom;\n return {\n label: meta.label,\n value: '(' + x + ', ' + y + (r ? ', ' + r : '') + ')'\n };\n }\n update(mode) {\n const points = this._cachedMeta.data;\n this.updateElements(points, 0, points.length, mode);\n }\n updateElements(points, start, count, mode) {\n const reset = mode === 'reset';\n const {iScale, vScale} = this._cachedMeta;\n const {sharedOptions, includeOptions} = this._getSharedOptions(start, mode);\n const iAxis = iScale.axis;\n const vAxis = vScale.axis;\n for (let i = start; i < start + count; i++) {\n const point = points[i];\n const parsed = !reset && this.getParsed(i);\n const properties = {};\n const iPixel = properties[iAxis] = reset ? iScale.getPixelForDecimal(0.5) : iScale.getPixelForValue(parsed[iAxis]);\n const vPixel = properties[vAxis] = reset ? vScale.getBasePixel() : vScale.getPixelForValue(parsed[vAxis]);\n properties.skip = isNaN(iPixel) || isNaN(vPixel);\n if (includeOptions) {\n properties.options = sharedOptions || this.resolveDataElementOptions(i, point.active ? 'active' : mode);\n if (reset) {\n properties.options.radius = 0;\n }\n }\n this.updateElement(point, i, properties, mode);\n }\n }\n resolveDataElementOptions(index, mode) {\n const parsed = this.getParsed(index);\n let values = super.resolveDataElementOptions(index, mode);\n if (values.$shared) {\n values = Object.assign({}, values, {$shared: false});\n }\n const radius = values.radius;\n if (mode !== 'active') {\n values.radius = 0;\n }\n values.radius += valueOrDefault(parsed && parsed._custom, radius);\n return values;\n }\n}\nBubbleController.id = 'bubble';\nBubbleController.defaults = {\n datasetElementType: false,\n dataElementType: 'point',\n animations: {\n numbers: {\n type: 'number',\n properties: ['x', 'y', 'borderWidth', 'radius']\n }\n }\n};\nBubbleController.overrides = {\n scales: {\n x: {\n type: 'linear'\n },\n y: {\n type: 'linear'\n }\n },\n plugins: {\n tooltip: {\n callbacks: {\n title() {\n return '';\n }\n }\n }\n }\n};\n\nfunction getRatioAndOffset(rotation, circumference, cutout) {\n let ratioX = 1;\n let ratioY = 1;\n let offsetX = 0;\n let offsetY = 0;\n if (circumference < TAU) {\n const startAngle = rotation;\n const endAngle = startAngle + circumference;\n const startX = Math.cos(startAngle);\n const startY = Math.sin(startAngle);\n const endX = Math.cos(endAngle);\n const endY = Math.sin(endAngle);\n const calcMax = (angle, a, b) => _angleBetween(angle, startAngle, endAngle, true) ? 1 : Math.max(a, a * cutout, b, b * cutout);\n const calcMin = (angle, a, b) => _angleBetween(angle, startAngle, endAngle, true) ? -1 : Math.min(a, a * cutout, b, b * cutout);\n const maxX = calcMax(0, startX, endX);\n const maxY = calcMax(HALF_PI, startY, endY);\n const minX = calcMin(PI, startX, endX);\n const minY = calcMin(PI + HALF_PI, startY, endY);\n ratioX = (maxX - minX) / 2;\n ratioY = (maxY - minY) / 2;\n offsetX = -(maxX + minX) / 2;\n offsetY = -(maxY + minY) / 2;\n }\n return {ratioX, ratioY, offsetX, offsetY};\n}\nclass DoughnutController extends DatasetController {\n constructor(chart, datasetIndex) {\n super(chart, datasetIndex);\n this.enableOptionSharing = true;\n this.innerRadius = undefined;\n this.outerRadius = undefined;\n this.offsetX = undefined;\n this.offsetY = undefined;\n }\n linkScales() {}\n parse(start, count) {\n const data = this.getDataset().data;\n const meta = this._cachedMeta;\n if (this._parsing === false) {\n meta._parsed = data;\n } else {\n let getter = (i) => +data[i];\n if (isObject(data[start])) {\n const {key = 'value'} = this._parsing;\n getter = (i) => +resolveObjectKey(data[i], key);\n }\n let i, ilen;\n for (i = start, ilen = start + count; i < ilen; ++i) {\n meta._parsed[i] = getter(i);\n }\n }\n }\n _getRotation() {\n return toRadians(this.options.rotation - 90);\n }\n _getCircumference() {\n return toRadians(this.options.circumference);\n }\n _getRotationExtents() {\n let min = TAU;\n let max = -TAU;\n for (let i = 0; i < this.chart.data.datasets.length; ++i) {\n if (this.chart.isDatasetVisible(i)) {\n const controller = this.chart.getDatasetMeta(i).controller;\n const rotation = controller._getRotation();\n const circumference = controller._getCircumference();\n min = Math.min(min, rotation);\n max = Math.max(max, rotation + circumference);\n }\n }\n return {\n rotation: min,\n circumference: max - min,\n };\n }\n update(mode) {\n const chart = this.chart;\n const {chartArea} = chart;\n const meta = this._cachedMeta;\n const arcs = meta.data;\n const spacing = this.getMaxBorderWidth() + this.getMaxOffset(arcs) + this.options.spacing;\n const maxSize = Math.max((Math.min(chartArea.width, chartArea.height) - spacing) / 2, 0);\n const cutout = Math.min(toPercentage(this.options.cutout, maxSize), 1);\n const chartWeight = this._getRingWeight(this.index);\n const {circumference, rotation} = this._getRotationExtents();\n const {ratioX, ratioY, offsetX, offsetY} = getRatioAndOffset(rotation, circumference, cutout);\n const maxWidth = (chartArea.width - spacing) / ratioX;\n const maxHeight = (chartArea.height - spacing) / ratioY;\n const maxRadius = Math.max(Math.min(maxWidth, maxHeight) / 2, 0);\n const outerRadius = toDimension(this.options.radius, maxRadius);\n const innerRadius = Math.max(outerRadius * cutout, 0);\n const radiusLength = (outerRadius - innerRadius) / this._getVisibleDatasetWeightTotal();\n this.offsetX = offsetX * outerRadius;\n this.offsetY = offsetY * outerRadius;\n meta.total = this.calculateTotal();\n this.outerRadius = outerRadius - radiusLength * this._getRingWeightOffset(this.index);\n this.innerRadius = Math.max(this.outerRadius - radiusLength * chartWeight, 0);\n this.updateElements(arcs, 0, arcs.length, mode);\n }\n _circumference(i, reset) {\n const opts = this.options;\n const meta = this._cachedMeta;\n const circumference = this._getCircumference();\n if ((reset && opts.animation.animateRotate) || !this.chart.getDataVisibility(i) || meta._parsed[i] === null || meta.data[i].hidden) {\n return 0;\n }\n return this.calculateCircumference(meta._parsed[i] * circumference / TAU);\n }\n updateElements(arcs, start, count, mode) {\n const reset = mode === 'reset';\n const chart = this.chart;\n const chartArea = chart.chartArea;\n const opts = chart.options;\n const animationOpts = opts.animation;\n const centerX = (chartArea.left + chartArea.right) / 2;\n const centerY = (chartArea.top + chartArea.bottom) / 2;\n const animateScale = reset && animationOpts.animateScale;\n const innerRadius = animateScale ? 0 : this.innerRadius;\n const outerRadius = animateScale ? 0 : this.outerRadius;\n const {sharedOptions, includeOptions} = this._getSharedOptions(start, mode);\n let startAngle = this._getRotation();\n let i;\n for (i = 0; i < start; ++i) {\n startAngle += this._circumference(i, reset);\n }\n for (i = start; i < start + count; ++i) {\n const circumference = this._circumference(i, reset);\n const arc = arcs[i];\n const properties = {\n x: centerX + this.offsetX,\n y: centerY + this.offsetY,\n startAngle,\n endAngle: startAngle + circumference,\n circumference,\n outerRadius,\n innerRadius\n };\n if (includeOptions) {\n properties.options = sharedOptions || this.resolveDataElementOptions(i, arc.active ? 'active' : mode);\n }\n startAngle += circumference;\n this.updateElement(arc, i, properties, mode);\n }\n }\n calculateTotal() {\n const meta = this._cachedMeta;\n const metaData = meta.data;\n let total = 0;\n let i;\n for (i = 0; i < metaData.length; i++) {\n const value = meta._parsed[i];\n if (value !== null && !isNaN(value) && this.chart.getDataVisibility(i) && !metaData[i].hidden) {\n total += Math.abs(value);\n }\n }\n return total;\n }\n calculateCircumference(value) {\n const total = this._cachedMeta.total;\n if (total > 0 && !isNaN(value)) {\n return TAU * (Math.abs(value) / total);\n }\n return 0;\n }\n getLabelAndValue(index) {\n const meta = this._cachedMeta;\n const chart = this.chart;\n const labels = chart.data.labels || [];\n const value = formatNumber(meta._parsed[index], chart.options.locale);\n return {\n label: labels[index] || '',\n value,\n };\n }\n getMaxBorderWidth(arcs) {\n let max = 0;\n const chart = this.chart;\n let i, ilen, meta, controller, options;\n if (!arcs) {\n for (i = 0, ilen = chart.data.datasets.length; i < ilen; ++i) {\n if (chart.isDatasetVisible(i)) {\n meta = chart.getDatasetMeta(i);\n arcs = meta.data;\n controller = meta.controller;\n break;\n }\n }\n }\n if (!arcs) {\n return 0;\n }\n for (i = 0, ilen = arcs.length; i < ilen; ++i) {\n options = controller.resolveDataElementOptions(i);\n if (options.borderAlign !== 'inner') {\n max = Math.max(max, options.borderWidth || 0, options.hoverBorderWidth || 0);\n }\n }\n return max;\n }\n getMaxOffset(arcs) {\n let max = 0;\n for (let i = 0, ilen = arcs.length; i < ilen; ++i) {\n const options = this.resolveDataElementOptions(i);\n max = Math.max(max, options.offset || 0, options.hoverOffset || 0);\n }\n return max;\n }\n _getRingWeightOffset(datasetIndex) {\n let ringWeightOffset = 0;\n for (let i = 0; i < datasetIndex; ++i) {\n if (this.chart.isDatasetVisible(i)) {\n ringWeightOffset += this._getRingWeight(i);\n }\n }\n return ringWeightOffset;\n }\n _getRingWeight(datasetIndex) {\n return Math.max(valueOrDefault(this.chart.data.datasets[datasetIndex].weight, 1), 0);\n }\n _getVisibleDatasetWeightTotal() {\n return this._getRingWeightOffset(this.chart.data.datasets.length) || 1;\n }\n}\nDoughnutController.id = 'doughnut';\nDoughnutController.defaults = {\n datasetElementType: false,\n dataElementType: 'arc',\n animation: {\n animateRotate: true,\n animateScale: false\n },\n animations: {\n numbers: {\n type: 'number',\n properties: ['circumference', 'endAngle', 'innerRadius', 'outerRadius', 'startAngle', 'x', 'y', 'offset', 'borderWidth', 'spacing']\n },\n },\n cutout: '50%',\n rotation: 0,\n circumference: 360,\n radius: '100%',\n spacing: 0,\n indexAxis: 'r',\n};\nDoughnutController.descriptors = {\n _scriptable: (name) => name !== 'spacing',\n _indexable: (name) => name !== 'spacing',\n};\nDoughnutController.overrides = {\n aspectRatio: 1,\n plugins: {\n legend: {\n labels: {\n generateLabels(chart) {\n const data = chart.data;\n if (data.labels.length && data.datasets.length) {\n const {labels: {pointStyle}} = chart.legend.options;\n return data.labels.map((label, i) => {\n const meta = chart.getDatasetMeta(0);\n const style = meta.controller.getStyle(i);\n return {\n text: label,\n fillStyle: style.backgroundColor,\n strokeStyle: style.borderColor,\n lineWidth: style.borderWidth,\n pointStyle: pointStyle,\n hidden: !chart.getDataVisibility(i),\n index: i\n };\n });\n }\n return [];\n }\n },\n onClick(e, legendItem, legend) {\n legend.chart.toggleDataVisibility(legendItem.index);\n legend.chart.update();\n }\n },\n tooltip: {\n callbacks: {\n title() {\n return '';\n },\n label(tooltipItem) {\n let dataLabel = tooltipItem.label;\n const value = ': ' + tooltipItem.formattedValue;\n if (isArray(dataLabel)) {\n dataLabel = dataLabel.slice();\n dataLabel[0] += value;\n } else {\n dataLabel += value;\n }\n return dataLabel;\n }\n }\n }\n }\n};\n\nclass LineController extends DatasetController {\n initialize() {\n this.enableOptionSharing = true;\n this.supportsDecimation = true;\n super.initialize();\n }\n update(mode) {\n const meta = this._cachedMeta;\n const {dataset: line, data: points = [], _dataset} = meta;\n const animationsDisabled = this.chart._animationsDisabled;\n let {start, count} = _getStartAndCountOfVisiblePoints(meta, points, animationsDisabled);\n this._drawStart = start;\n this._drawCount = count;\n if (_scaleRangesChanged(meta)) {\n start = 0;\n count = points.length;\n }\n line._chart = this.chart;\n line._datasetIndex = this.index;\n line._decimated = !!_dataset._decimated;\n line.points = points;\n const options = this.resolveDatasetElementOptions(mode);\n if (!this.options.showLine) {\n options.borderWidth = 0;\n }\n options.segment = this.options.segment;\n this.updateElement(line, undefined, {\n animated: !animationsDisabled,\n options\n }, mode);\n this.updateElements(points, start, count, mode);\n }\n updateElements(points, start, count, mode) {\n const reset = mode === 'reset';\n const {iScale, vScale, _stacked, _dataset} = this._cachedMeta;\n const {sharedOptions, includeOptions} = this._getSharedOptions(start, mode);\n const iAxis = iScale.axis;\n const vAxis = vScale.axis;\n const {spanGaps, segment} = this.options;\n const maxGapLength = isNumber(spanGaps) ? spanGaps : Number.POSITIVE_INFINITY;\n const directUpdate = this.chart._animationsDisabled || reset || mode === 'none';\n let prevParsed = start > 0 && this.getParsed(start - 1);\n for (let i = start; i < start + count; ++i) {\n const point = points[i];\n const parsed = this.getParsed(i);\n const properties = directUpdate ? point : {};\n const nullData = isNullOrUndef(parsed[vAxis]);\n const iPixel = properties[iAxis] = iScale.getPixelForValue(parsed[iAxis], i);\n const vPixel = properties[vAxis] = reset || nullData ? vScale.getBasePixel() : vScale.getPixelForValue(_stacked ? this.applyStack(vScale, parsed, _stacked) : parsed[vAxis], i);\n properties.skip = isNaN(iPixel) || isNaN(vPixel) || nullData;\n properties.stop = i > 0 && (Math.abs(parsed[iAxis] - prevParsed[iAxis])) > maxGapLength;\n if (segment) {\n properties.parsed = parsed;\n properties.raw = _dataset.data[i];\n }\n if (includeOptions) {\n properties.options = sharedOptions || this.resolveDataElementOptions(i, point.active ? 'active' : mode);\n }\n if (!directUpdate) {\n this.updateElement(point, i, properties, mode);\n }\n prevParsed = parsed;\n }\n }\n getMaxOverflow() {\n const meta = this._cachedMeta;\n const dataset = meta.dataset;\n const border = dataset.options && dataset.options.borderWidth || 0;\n const data = meta.data || [];\n if (!data.length) {\n return border;\n }\n const firstPoint = data[0].size(this.resolveDataElementOptions(0));\n const lastPoint = data[data.length - 1].size(this.resolveDataElementOptions(data.length - 1));\n return Math.max(border, firstPoint, lastPoint) / 2;\n }\n draw() {\n const meta = this._cachedMeta;\n meta.dataset.updateControlPoints(this.chart.chartArea, meta.iScale.axis);\n super.draw();\n }\n}\nLineController.id = 'line';\nLineController.defaults = {\n datasetElementType: 'line',\n dataElementType: 'point',\n showLine: true,\n spanGaps: false,\n};\nLineController.overrides = {\n scales: {\n _index_: {\n type: 'category',\n },\n _value_: {\n type: 'linear',\n },\n }\n};\n\nclass PolarAreaController extends DatasetController {\n constructor(chart, datasetIndex) {\n super(chart, datasetIndex);\n this.innerRadius = undefined;\n this.outerRadius = undefined;\n }\n getLabelAndValue(index) {\n const meta = this._cachedMeta;\n const chart = this.chart;\n const labels = chart.data.labels || [];\n const value = formatNumber(meta._parsed[index].r, chart.options.locale);\n return {\n label: labels[index] || '',\n value,\n };\n }\n parseObjectData(meta, data, start, count) {\n return _parseObjectDataRadialScale.bind(this)(meta, data, start, count);\n }\n update(mode) {\n const arcs = this._cachedMeta.data;\n this._updateRadius();\n this.updateElements(arcs, 0, arcs.length, mode);\n }\n getMinMax() {\n const meta = this._cachedMeta;\n const range = {min: Number.POSITIVE_INFINITY, max: Number.NEGATIVE_INFINITY};\n meta.data.forEach((element, index) => {\n const parsed = this.getParsed(index).r;\n if (!isNaN(parsed) && this.chart.getDataVisibility(index)) {\n if (parsed < range.min) {\n range.min = parsed;\n }\n if (parsed > range.max) {\n range.max = parsed;\n }\n }\n });\n return range;\n }\n _updateRadius() {\n const chart = this.chart;\n const chartArea = chart.chartArea;\n const opts = chart.options;\n const minSize = Math.min(chartArea.right - chartArea.left, chartArea.bottom - chartArea.top);\n const outerRadius = Math.max(minSize / 2, 0);\n const innerRadius = Math.max(opts.cutoutPercentage ? (outerRadius / 100) * (opts.cutoutPercentage) : 1, 0);\n const radiusLength = (outerRadius - innerRadius) / chart.getVisibleDatasetCount();\n this.outerRadius = outerRadius - (radiusLength * this.index);\n this.innerRadius = this.outerRadius - radiusLength;\n }\n updateElements(arcs, start, count, mode) {\n const reset = mode === 'reset';\n const chart = this.chart;\n const opts = chart.options;\n const animationOpts = opts.animation;\n const scale = this._cachedMeta.rScale;\n const centerX = scale.xCenter;\n const centerY = scale.yCenter;\n const datasetStartAngle = scale.getIndexAngle(0) - 0.5 * PI;\n let angle = datasetStartAngle;\n let i;\n const defaultAngle = 360 / this.countVisibleElements();\n for (i = 0; i < start; ++i) {\n angle += this._computeAngle(i, mode, defaultAngle);\n }\n for (i = start; i < start + count; i++) {\n const arc = arcs[i];\n let startAngle = angle;\n let endAngle = angle + this._computeAngle(i, mode, defaultAngle);\n let outerRadius = chart.getDataVisibility(i) ? scale.getDistanceFromCenterForValue(this.getParsed(i).r) : 0;\n angle = endAngle;\n if (reset) {\n if (animationOpts.animateScale) {\n outerRadius = 0;\n }\n if (animationOpts.animateRotate) {\n startAngle = endAngle = datasetStartAngle;\n }\n }\n const properties = {\n x: centerX,\n y: centerY,\n innerRadius: 0,\n outerRadius,\n startAngle,\n endAngle,\n options: this.resolveDataElementOptions(i, arc.active ? 'active' : mode)\n };\n this.updateElement(arc, i, properties, mode);\n }\n }\n countVisibleElements() {\n const meta = this._cachedMeta;\n let count = 0;\n meta.data.forEach((element, index) => {\n if (!isNaN(this.getParsed(index).r) && this.chart.getDataVisibility(index)) {\n count++;\n }\n });\n return count;\n }\n _computeAngle(index, mode, defaultAngle) {\n return this.chart.getDataVisibility(index)\n ? toRadians(this.resolveDataElementOptions(index, mode).angle || defaultAngle)\n : 0;\n }\n}\nPolarAreaController.id = 'polarArea';\nPolarAreaController.defaults = {\n dataElementType: 'arc',\n animation: {\n animateRotate: true,\n animateScale: true\n },\n animations: {\n numbers: {\n type: 'number',\n properties: ['x', 'y', 'startAngle', 'endAngle', 'innerRadius', 'outerRadius']\n },\n },\n indexAxis: 'r',\n startAngle: 0,\n};\nPolarAreaController.overrides = {\n aspectRatio: 1,\n plugins: {\n legend: {\n labels: {\n generateLabels(chart) {\n const data = chart.data;\n if (data.labels.length && data.datasets.length) {\n const {labels: {pointStyle}} = chart.legend.options;\n return data.labels.map((label, i) => {\n const meta = chart.getDatasetMeta(0);\n const style = meta.controller.getStyle(i);\n return {\n text: label,\n fillStyle: style.backgroundColor,\n strokeStyle: style.borderColor,\n lineWidth: style.borderWidth,\n pointStyle: pointStyle,\n hidden: !chart.getDataVisibility(i),\n index: i\n };\n });\n }\n return [];\n }\n },\n onClick(e, legendItem, legend) {\n legend.chart.toggleDataVisibility(legendItem.index);\n legend.chart.update();\n }\n },\n tooltip: {\n callbacks: {\n title() {\n return '';\n },\n label(context) {\n return context.chart.data.labels[context.dataIndex] + ': ' + context.formattedValue;\n }\n }\n }\n },\n scales: {\n r: {\n type: 'radialLinear',\n angleLines: {\n display: false\n },\n beginAtZero: true,\n grid: {\n circular: true\n },\n pointLabels: {\n display: false\n },\n startAngle: 0\n }\n }\n};\n\nclass PieController extends DoughnutController {\n}\nPieController.id = 'pie';\nPieController.defaults = {\n cutout: 0,\n rotation: 0,\n circumference: 360,\n radius: '100%'\n};\n\nclass RadarController extends DatasetController {\n getLabelAndValue(index) {\n const vScale = this._cachedMeta.vScale;\n const parsed = this.getParsed(index);\n return {\n label: vScale.getLabels()[index],\n value: '' + vScale.getLabelForValue(parsed[vScale.axis])\n };\n }\n parseObjectData(meta, data, start, count) {\n return _parseObjectDataRadialScale.bind(this)(meta, data, start, count);\n }\n update(mode) {\n const meta = this._cachedMeta;\n const line = meta.dataset;\n const points = meta.data || [];\n const labels = meta.iScale.getLabels();\n line.points = points;\n if (mode !== 'resize') {\n const options = this.resolveDatasetElementOptions(mode);\n if (!this.options.showLine) {\n options.borderWidth = 0;\n }\n const properties = {\n _loop: true,\n _fullLoop: labels.length === points.length,\n options\n };\n this.updateElement(line, undefined, properties, mode);\n }\n this.updateElements(points, 0, points.length, mode);\n }\n updateElements(points, start, count, mode) {\n const scale = this._cachedMeta.rScale;\n const reset = mode === 'reset';\n for (let i = start; i < start + count; i++) {\n const point = points[i];\n const options = this.resolveDataElementOptions(i, point.active ? 'active' : mode);\n const pointPosition = scale.getPointPositionForValue(i, this.getParsed(i).r);\n const x = reset ? scale.xCenter : pointPosition.x;\n const y = reset ? scale.yCenter : pointPosition.y;\n const properties = {\n x,\n y,\n angle: pointPosition.angle,\n skip: isNaN(x) || isNaN(y),\n options\n };\n this.updateElement(point, i, properties, mode);\n }\n }\n}\nRadarController.id = 'radar';\nRadarController.defaults = {\n datasetElementType: 'line',\n dataElementType: 'point',\n indexAxis: 'r',\n showLine: true,\n elements: {\n line: {\n fill: 'start'\n }\n },\n};\nRadarController.overrides = {\n aspectRatio: 1,\n scales: {\n r: {\n type: 'radialLinear',\n }\n }\n};\n\nclass Element {\n constructor() {\n this.x = undefined;\n this.y = undefined;\n this.active = false;\n this.options = undefined;\n this.$animations = undefined;\n }\n tooltipPosition(useFinalPosition) {\n const {x, y} = this.getProps(['x', 'y'], useFinalPosition);\n return {x, y};\n }\n hasValue() {\n return isNumber(this.x) && isNumber(this.y);\n }\n getProps(props, final) {\n const anims = this.$animations;\n if (!final || !anims) {\n return this;\n }\n const ret = {};\n props.forEach(prop => {\n ret[prop] = anims[prop] && anims[prop].active() ? anims[prop]._to : this[prop];\n });\n return ret;\n }\n}\nElement.defaults = {};\nElement.defaultRoutes = undefined;\n\nconst formatters = {\n values(value) {\n return isArray(value) ? value : '' + value;\n },\n numeric(tickValue, index, ticks) {\n if (tickValue === 0) {\n return '0';\n }\n const locale = this.chart.options.locale;\n let notation;\n let delta = tickValue;\n if (ticks.length > 1) {\n const maxTick = Math.max(Math.abs(ticks[0].value), Math.abs(ticks[ticks.length - 1].value));\n if (maxTick < 1e-4 || maxTick > 1e+15) {\n notation = 'scientific';\n }\n delta = calculateDelta(tickValue, ticks);\n }\n const logDelta = log10(Math.abs(delta));\n const numDecimal = Math.max(Math.min(-1 * Math.floor(logDelta), 20), 0);\n const options = {notation, minimumFractionDigits: numDecimal, maximumFractionDigits: numDecimal};\n Object.assign(options, this.options.ticks.format);\n return formatNumber(tickValue, locale, options);\n },\n logarithmic(tickValue, index, ticks) {\n if (tickValue === 0) {\n return '0';\n }\n const remain = tickValue / (Math.pow(10, Math.floor(log10(tickValue))));\n if (remain === 1 || remain === 2 || remain === 5) {\n return formatters.numeric.call(this, tickValue, index, ticks);\n }\n return '';\n }\n};\nfunction calculateDelta(tickValue, ticks) {\n let delta = ticks.length > 3 ? ticks[2].value - ticks[1].value : ticks[1].value - ticks[0].value;\n if (Math.abs(delta) >= 1 && tickValue !== Math.floor(tickValue)) {\n delta = tickValue - Math.floor(tickValue);\n }\n return delta;\n}\nvar Ticks = {formatters};\n\ndefaults.set('scale', {\n display: true,\n offset: false,\n reverse: false,\n beginAtZero: false,\n bounds: 'ticks',\n grace: 0,\n grid: {\n display: true,\n lineWidth: 1,\n drawBorder: true,\n drawOnChartArea: true,\n drawTicks: true,\n tickLength: 8,\n tickWidth: (_ctx, options) => options.lineWidth,\n tickColor: (_ctx, options) => options.color,\n offset: false,\n borderDash: [],\n borderDashOffset: 0.0,\n borderWidth: 1\n },\n title: {\n display: false,\n text: '',\n padding: {\n top: 4,\n bottom: 4\n }\n },\n ticks: {\n minRotation: 0,\n maxRotation: 50,\n mirror: false,\n textStrokeWidth: 0,\n textStrokeColor: '',\n padding: 3,\n display: true,\n autoSkip: true,\n autoSkipPadding: 3,\n labelOffset: 0,\n callback: Ticks.formatters.values,\n minor: {},\n major: {},\n align: 'center',\n crossAlign: 'near',\n showLabelBackdrop: false,\n backdropColor: 'rgba(255, 255, 255, 0.75)',\n backdropPadding: 2,\n }\n});\ndefaults.route('scale.ticks', 'color', '', 'color');\ndefaults.route('scale.grid', 'color', '', 'borderColor');\ndefaults.route('scale.grid', 'borderColor', '', 'borderColor');\ndefaults.route('scale.title', 'color', '', 'color');\ndefaults.describe('scale', {\n _fallback: false,\n _scriptable: (name) => !name.startsWith('before') && !name.startsWith('after') && name !== 'callback' && name !== 'parser',\n _indexable: (name) => name !== 'borderDash' && name !== 'tickBorderDash',\n});\ndefaults.describe('scales', {\n _fallback: 'scale',\n});\ndefaults.describe('scale.ticks', {\n _scriptable: (name) => name !== 'backdropPadding' && name !== 'callback',\n _indexable: (name) => name !== 'backdropPadding',\n});\n\nfunction autoSkip(scale, ticks) {\n const tickOpts = scale.options.ticks;\n const ticksLimit = tickOpts.maxTicksLimit || determineMaxTicks(scale);\n const majorIndices = tickOpts.major.enabled ? getMajorIndices(ticks) : [];\n const numMajorIndices = majorIndices.length;\n const first = majorIndices[0];\n const last = majorIndices[numMajorIndices - 1];\n const newTicks = [];\n if (numMajorIndices > ticksLimit) {\n skipMajors(ticks, newTicks, majorIndices, numMajorIndices / ticksLimit);\n return newTicks;\n }\n const spacing = calculateSpacing(majorIndices, ticks, ticksLimit);\n if (numMajorIndices > 0) {\n let i, ilen;\n const avgMajorSpacing = numMajorIndices > 1 ? Math.round((last - first) / (numMajorIndices - 1)) : null;\n skip(ticks, newTicks, spacing, isNullOrUndef(avgMajorSpacing) ? 0 : first - avgMajorSpacing, first);\n for (i = 0, ilen = numMajorIndices - 1; i < ilen; i++) {\n skip(ticks, newTicks, spacing, majorIndices[i], majorIndices[i + 1]);\n }\n skip(ticks, newTicks, spacing, last, isNullOrUndef(avgMajorSpacing) ? ticks.length : last + avgMajorSpacing);\n return newTicks;\n }\n skip(ticks, newTicks, spacing);\n return newTicks;\n}\nfunction determineMaxTicks(scale) {\n const offset = scale.options.offset;\n const tickLength = scale._tickSize();\n const maxScale = scale._length / tickLength + (offset ? 0 : 1);\n const maxChart = scale._maxLength / tickLength;\n return Math.floor(Math.min(maxScale, maxChart));\n}\nfunction calculateSpacing(majorIndices, ticks, ticksLimit) {\n const evenMajorSpacing = getEvenSpacing(majorIndices);\n const spacing = ticks.length / ticksLimit;\n if (!evenMajorSpacing) {\n return Math.max(spacing, 1);\n }\n const factors = _factorize(evenMajorSpacing);\n for (let i = 0, ilen = factors.length - 1; i < ilen; i++) {\n const factor = factors[i];\n if (factor > spacing) {\n return factor;\n }\n }\n return Math.max(spacing, 1);\n}\nfunction getMajorIndices(ticks) {\n const result = [];\n let i, ilen;\n for (i = 0, ilen = ticks.length; i < ilen; i++) {\n if (ticks[i].major) {\n result.push(i);\n }\n }\n return result;\n}\nfunction skipMajors(ticks, newTicks, majorIndices, spacing) {\n let count = 0;\n let next = majorIndices[0];\n let i;\n spacing = Math.ceil(spacing);\n for (i = 0; i < ticks.length; i++) {\n if (i === next) {\n newTicks.push(ticks[i]);\n count++;\n next = majorIndices[count * spacing];\n }\n }\n}\nfunction skip(ticks, newTicks, spacing, majorStart, majorEnd) {\n const start = valueOrDefault(majorStart, 0);\n const end = Math.min(valueOrDefault(majorEnd, ticks.length), ticks.length);\n let count = 0;\n let length, i, next;\n spacing = Math.ceil(spacing);\n if (majorEnd) {\n length = majorEnd - majorStart;\n spacing = length / Math.floor(length / spacing);\n }\n next = start;\n while (next < 0) {\n count++;\n next = Math.round(start + count * spacing);\n }\n for (i = Math.max(start, 0); i < end; i++) {\n if (i === next) {\n newTicks.push(ticks[i]);\n count++;\n next = Math.round(start + count * spacing);\n }\n }\n}\nfunction getEvenSpacing(arr) {\n const len = arr.length;\n let i, diff;\n if (len < 2) {\n return false;\n }\n for (diff = arr[0], i = 1; i < len; ++i) {\n if (arr[i] - arr[i - 1] !== diff) {\n return false;\n }\n }\n return diff;\n}\n\nconst reverseAlign = (align) => align === 'left' ? 'right' : align === 'right' ? 'left' : align;\nconst offsetFromEdge = (scale, edge, offset) => edge === 'top' || edge === 'left' ? scale[edge] + offset : scale[edge] - offset;\nfunction sample(arr, numItems) {\n const result = [];\n const increment = arr.length / numItems;\n const len = arr.length;\n let i = 0;\n for (; i < len; i += increment) {\n result.push(arr[Math.floor(i)]);\n }\n return result;\n}\nfunction getPixelForGridLine(scale, index, offsetGridLines) {\n const length = scale.ticks.length;\n const validIndex = Math.min(index, length - 1);\n const start = scale._startPixel;\n const end = scale._endPixel;\n const epsilon = 1e-6;\n let lineValue = scale.getPixelForTick(validIndex);\n let offset;\n if (offsetGridLines) {\n if (length === 1) {\n offset = Math.max(lineValue - start, end - lineValue);\n } else if (index === 0) {\n offset = (scale.getPixelForTick(1) - lineValue) / 2;\n } else {\n offset = (lineValue - scale.getPixelForTick(validIndex - 1)) / 2;\n }\n lineValue += validIndex < index ? offset : -offset;\n if (lineValue < start - epsilon || lineValue > end + epsilon) {\n return;\n }\n }\n return lineValue;\n}\nfunction garbageCollect(caches, length) {\n each(caches, (cache) => {\n const gc = cache.gc;\n const gcLen = gc.length / 2;\n let i;\n if (gcLen > length) {\n for (i = 0; i < gcLen; ++i) {\n delete cache.data[gc[i]];\n }\n gc.splice(0, gcLen);\n }\n });\n}\nfunction getTickMarkLength(options) {\n return options.drawTicks ? options.tickLength : 0;\n}\nfunction getTitleHeight(options, fallback) {\n if (!options.display) {\n return 0;\n }\n const font = toFont(options.font, fallback);\n const padding = toPadding(options.padding);\n const lines = isArray(options.text) ? options.text.length : 1;\n return (lines * font.lineHeight) + padding.height;\n}\nfunction createScaleContext(parent, scale) {\n return createContext(parent, {\n scale,\n type: 'scale'\n });\n}\nfunction createTickContext(parent, index, tick) {\n return createContext(parent, {\n tick,\n index,\n type: 'tick'\n });\n}\nfunction titleAlign(align, position, reverse) {\n let ret = _toLeftRightCenter(align);\n if ((reverse && position !== 'right') || (!reverse && position === 'right')) {\n ret = reverseAlign(ret);\n }\n return ret;\n}\nfunction titleArgs(scale, offset, position, align) {\n const {top, left, bottom, right, chart} = scale;\n const {chartArea, scales} = chart;\n let rotation = 0;\n let maxWidth, titleX, titleY;\n const height = bottom - top;\n const width = right - left;\n if (scale.isHorizontal()) {\n titleX = _alignStartEnd(align, left, right);\n if (isObject(position)) {\n const positionAxisID = Object.keys(position)[0];\n const value = position[positionAxisID];\n titleY = scales[positionAxisID].getPixelForValue(value) + height - offset;\n } else if (position === 'center') {\n titleY = (chartArea.bottom + chartArea.top) / 2 + height - offset;\n } else {\n titleY = offsetFromEdge(scale, position, offset);\n }\n maxWidth = right - left;\n } else {\n if (isObject(position)) {\n const positionAxisID = Object.keys(position)[0];\n const value = position[positionAxisID];\n titleX = scales[positionAxisID].getPixelForValue(value) - width + offset;\n } else if (position === 'center') {\n titleX = (chartArea.left + chartArea.right) / 2 - width + offset;\n } else {\n titleX = offsetFromEdge(scale, position, offset);\n }\n titleY = _alignStartEnd(align, bottom, top);\n rotation = position === 'left' ? -HALF_PI : HALF_PI;\n }\n return {titleX, titleY, maxWidth, rotation};\n}\nclass Scale extends Element {\n constructor(cfg) {\n super();\n this.id = cfg.id;\n this.type = cfg.type;\n this.options = undefined;\n this.ctx = cfg.ctx;\n this.chart = cfg.chart;\n this.top = undefined;\n this.bottom = undefined;\n this.left = undefined;\n this.right = undefined;\n this.width = undefined;\n this.height = undefined;\n this._margins = {\n left: 0,\n right: 0,\n top: 0,\n bottom: 0\n };\n this.maxWidth = undefined;\n this.maxHeight = undefined;\n this.paddingTop = undefined;\n this.paddingBottom = undefined;\n this.paddingLeft = undefined;\n this.paddingRight = undefined;\n this.axis = undefined;\n this.labelRotation = undefined;\n this.min = undefined;\n this.max = undefined;\n this._range = undefined;\n this.ticks = [];\n this._gridLineItems = null;\n this._labelItems = null;\n this._labelSizes = null;\n this._length = 0;\n this._maxLength = 0;\n this._longestTextCache = {};\n this._startPixel = undefined;\n this._endPixel = undefined;\n this._reversePixels = false;\n this._userMax = undefined;\n this._userMin = undefined;\n this._suggestedMax = undefined;\n this._suggestedMin = undefined;\n this._ticksLength = 0;\n this._borderValue = 0;\n this._cache = {};\n this._dataLimitsCached = false;\n this.$context = undefined;\n }\n init(options) {\n this.options = options.setContext(this.getContext());\n this.axis = options.axis;\n this._userMin = this.parse(options.min);\n this._userMax = this.parse(options.max);\n this._suggestedMin = this.parse(options.suggestedMin);\n this._suggestedMax = this.parse(options.suggestedMax);\n }\n parse(raw, index) {\n return raw;\n }\n getUserBounds() {\n let {_userMin, _userMax, _suggestedMin, _suggestedMax} = this;\n _userMin = finiteOrDefault(_userMin, Number.POSITIVE_INFINITY);\n _userMax = finiteOrDefault(_userMax, Number.NEGATIVE_INFINITY);\n _suggestedMin = finiteOrDefault(_suggestedMin, Number.POSITIVE_INFINITY);\n _suggestedMax = finiteOrDefault(_suggestedMax, Number.NEGATIVE_INFINITY);\n return {\n min: finiteOrDefault(_userMin, _suggestedMin),\n max: finiteOrDefault(_userMax, _suggestedMax),\n minDefined: isNumberFinite(_userMin),\n maxDefined: isNumberFinite(_userMax)\n };\n }\n getMinMax(canStack) {\n let {min, max, minDefined, maxDefined} = this.getUserBounds();\n let range;\n if (minDefined && maxDefined) {\n return {min, max};\n }\n const metas = this.getMatchingVisibleMetas();\n for (let i = 0, ilen = metas.length; i < ilen; ++i) {\n range = metas[i].controller.getMinMax(this, canStack);\n if (!minDefined) {\n min = Math.min(min, range.min);\n }\n if (!maxDefined) {\n max = Math.max(max, range.max);\n }\n }\n min = maxDefined && min > max ? max : min;\n max = minDefined && min > max ? min : max;\n return {\n min: finiteOrDefault(min, finiteOrDefault(max, min)),\n max: finiteOrDefault(max, finiteOrDefault(min, max))\n };\n }\n getPadding() {\n return {\n left: this.paddingLeft || 0,\n top: this.paddingTop || 0,\n right: this.paddingRight || 0,\n bottom: this.paddingBottom || 0\n };\n }\n getTicks() {\n return this.ticks;\n }\n getLabels() {\n const data = this.chart.data;\n return this.options.labels || (this.isHorizontal() ? data.xLabels : data.yLabels) || data.labels || [];\n }\n beforeLayout() {\n this._cache = {};\n this._dataLimitsCached = false;\n }\n beforeUpdate() {\n callback(this.options.beforeUpdate, [this]);\n }\n update(maxWidth, maxHeight, margins) {\n const {beginAtZero, grace, ticks: tickOpts} = this.options;\n const sampleSize = tickOpts.sampleSize;\n this.beforeUpdate();\n this.maxWidth = maxWidth;\n this.maxHeight = maxHeight;\n this._margins = margins = Object.assign({\n left: 0,\n right: 0,\n top: 0,\n bottom: 0\n }, margins);\n this.ticks = null;\n this._labelSizes = null;\n this._gridLineItems = null;\n this._labelItems = null;\n this.beforeSetDimensions();\n this.setDimensions();\n this.afterSetDimensions();\n this._maxLength = this.isHorizontal()\n ? this.width + margins.left + margins.right\n : this.height + margins.top + margins.bottom;\n if (!this._dataLimitsCached) {\n this.beforeDataLimits();\n this.determineDataLimits();\n this.afterDataLimits();\n this._range = _addGrace(this, grace, beginAtZero);\n this._dataLimitsCached = true;\n }\n this.beforeBuildTicks();\n this.ticks = this.buildTicks() || [];\n this.afterBuildTicks();\n const samplingEnabled = sampleSize < this.ticks.length;\n this._convertTicksToLabels(samplingEnabled ? sample(this.ticks, sampleSize) : this.ticks);\n this.configure();\n this.beforeCalculateLabelRotation();\n this.calculateLabelRotation();\n this.afterCalculateLabelRotation();\n if (tickOpts.display && (tickOpts.autoSkip || tickOpts.source === 'auto')) {\n this.ticks = autoSkip(this, this.ticks);\n this._labelSizes = null;\n this.afterAutoSkip();\n }\n if (samplingEnabled) {\n this._convertTicksToLabels(this.ticks);\n }\n this.beforeFit();\n this.fit();\n this.afterFit();\n this.afterUpdate();\n }\n configure() {\n let reversePixels = this.options.reverse;\n let startPixel, endPixel;\n if (this.isHorizontal()) {\n startPixel = this.left;\n endPixel = this.right;\n } else {\n startPixel = this.top;\n endPixel = this.bottom;\n reversePixels = !reversePixels;\n }\n this._startPixel = startPixel;\n this._endPixel = endPixel;\n this._reversePixels = reversePixels;\n this._length = endPixel - startPixel;\n this._alignToPixels = this.options.alignToPixels;\n }\n afterUpdate() {\n callback(this.options.afterUpdate, [this]);\n }\n beforeSetDimensions() {\n callback(this.options.beforeSetDimensions, [this]);\n }\n setDimensions() {\n if (this.isHorizontal()) {\n this.width = this.maxWidth;\n this.left = 0;\n this.right = this.width;\n } else {\n this.height = this.maxHeight;\n this.top = 0;\n this.bottom = this.height;\n }\n this.paddingLeft = 0;\n this.paddingTop = 0;\n this.paddingRight = 0;\n this.paddingBottom = 0;\n }\n afterSetDimensions() {\n callback(this.options.afterSetDimensions, [this]);\n }\n _callHooks(name) {\n this.chart.notifyPlugins(name, this.getContext());\n callback(this.options[name], [this]);\n }\n beforeDataLimits() {\n this._callHooks('beforeDataLimits');\n }\n determineDataLimits() {}\n afterDataLimits() {\n this._callHooks('afterDataLimits');\n }\n beforeBuildTicks() {\n this._callHooks('beforeBuildTicks');\n }\n buildTicks() {\n return [];\n }\n afterBuildTicks() {\n this._callHooks('afterBuildTicks');\n }\n beforeTickToLabelConversion() {\n callback(this.options.beforeTickToLabelConversion, [this]);\n }\n generateTickLabels(ticks) {\n const tickOpts = this.options.ticks;\n let i, ilen, tick;\n for (i = 0, ilen = ticks.length; i < ilen; i++) {\n tick = ticks[i];\n tick.label = callback(tickOpts.callback, [tick.value, i, ticks], this);\n }\n }\n afterTickToLabelConversion() {\n callback(this.options.afterTickToLabelConversion, [this]);\n }\n beforeCalculateLabelRotation() {\n callback(this.options.beforeCalculateLabelRotation, [this]);\n }\n calculateLabelRotation() {\n const options = this.options;\n const tickOpts = options.ticks;\n const numTicks = this.ticks.length;\n const minRotation = tickOpts.minRotation || 0;\n const maxRotation = tickOpts.maxRotation;\n let labelRotation = minRotation;\n let tickWidth, maxHeight, maxLabelDiagonal;\n if (!this._isVisible() || !tickOpts.display || minRotation >= maxRotation || numTicks <= 1 || !this.isHorizontal()) {\n this.labelRotation = minRotation;\n return;\n }\n const labelSizes = this._getLabelSizes();\n const maxLabelWidth = labelSizes.widest.width;\n const maxLabelHeight = labelSizes.highest.height;\n const maxWidth = _limitValue(this.chart.width - maxLabelWidth, 0, this.maxWidth);\n tickWidth = options.offset ? this.maxWidth / numTicks : maxWidth / (numTicks - 1);\n if (maxLabelWidth + 6 > tickWidth) {\n tickWidth = maxWidth / (numTicks - (options.offset ? 0.5 : 1));\n maxHeight = this.maxHeight - getTickMarkLength(options.grid)\n\t\t\t\t- tickOpts.padding - getTitleHeight(options.title, this.chart.options.font);\n maxLabelDiagonal = Math.sqrt(maxLabelWidth * maxLabelWidth + maxLabelHeight * maxLabelHeight);\n labelRotation = toDegrees(Math.min(\n Math.asin(_limitValue((labelSizes.highest.height + 6) / tickWidth, -1, 1)),\n Math.asin(_limitValue(maxHeight / maxLabelDiagonal, -1, 1)) - Math.asin(_limitValue(maxLabelHeight / maxLabelDiagonal, -1, 1))\n ));\n labelRotation = Math.max(minRotation, Math.min(maxRotation, labelRotation));\n }\n this.labelRotation = labelRotation;\n }\n afterCalculateLabelRotation() {\n callback(this.options.afterCalculateLabelRotation, [this]);\n }\n afterAutoSkip() {}\n beforeFit() {\n callback(this.options.beforeFit, [this]);\n }\n fit() {\n const minSize = {\n width: 0,\n height: 0\n };\n const {chart, options: {ticks: tickOpts, title: titleOpts, grid: gridOpts}} = this;\n const display = this._isVisible();\n const isHorizontal = this.isHorizontal();\n if (display) {\n const titleHeight = getTitleHeight(titleOpts, chart.options.font);\n if (isHorizontal) {\n minSize.width = this.maxWidth;\n minSize.height = getTickMarkLength(gridOpts) + titleHeight;\n } else {\n minSize.height = this.maxHeight;\n minSize.width = getTickMarkLength(gridOpts) + titleHeight;\n }\n if (tickOpts.display && this.ticks.length) {\n const {first, last, widest, highest} = this._getLabelSizes();\n const tickPadding = tickOpts.padding * 2;\n const angleRadians = toRadians(this.labelRotation);\n const cos = Math.cos(angleRadians);\n const sin = Math.sin(angleRadians);\n if (isHorizontal) {\n const labelHeight = tickOpts.mirror ? 0 : sin * widest.width + cos * highest.height;\n minSize.height = Math.min(this.maxHeight, minSize.height + labelHeight + tickPadding);\n } else {\n const labelWidth = tickOpts.mirror ? 0 : cos * widest.width + sin * highest.height;\n minSize.width = Math.min(this.maxWidth, minSize.width + labelWidth + tickPadding);\n }\n this._calculatePadding(first, last, sin, cos);\n }\n }\n this._handleMargins();\n if (isHorizontal) {\n this.width = this._length = chart.width - this._margins.left - this._margins.right;\n this.height = minSize.height;\n } else {\n this.width = minSize.width;\n this.height = this._length = chart.height - this._margins.top - this._margins.bottom;\n }\n }\n _calculatePadding(first, last, sin, cos) {\n const {ticks: {align, padding}, position} = this.options;\n const isRotated = this.labelRotation !== 0;\n const labelsBelowTicks = position !== 'top' && this.axis === 'x';\n if (this.isHorizontal()) {\n const offsetLeft = this.getPixelForTick(0) - this.left;\n const offsetRight = this.right - this.getPixelForTick(this.ticks.length - 1);\n let paddingLeft = 0;\n let paddingRight = 0;\n if (isRotated) {\n if (labelsBelowTicks) {\n paddingLeft = cos * first.width;\n paddingRight = sin * last.height;\n } else {\n paddingLeft = sin * first.height;\n paddingRight = cos * last.width;\n }\n } else if (align === 'start') {\n paddingRight = last.width;\n } else if (align === 'end') {\n paddingLeft = first.width;\n } else if (align !== 'inner') {\n paddingLeft = first.width / 2;\n paddingRight = last.width / 2;\n }\n this.paddingLeft = Math.max((paddingLeft - offsetLeft + padding) * this.width / (this.width - offsetLeft), 0);\n this.paddingRight = Math.max((paddingRight - offsetRight + padding) * this.width / (this.width - offsetRight), 0);\n } else {\n let paddingTop = last.height / 2;\n let paddingBottom = first.height / 2;\n if (align === 'start') {\n paddingTop = 0;\n paddingBottom = first.height;\n } else if (align === 'end') {\n paddingTop = last.height;\n paddingBottom = 0;\n }\n this.paddingTop = paddingTop + padding;\n this.paddingBottom = paddingBottom + padding;\n }\n }\n _handleMargins() {\n if (this._margins) {\n this._margins.left = Math.max(this.paddingLeft, this._margins.left);\n this._margins.top = Math.max(this.paddingTop, this._margins.top);\n this._margins.right = Math.max(this.paddingRight, this._margins.right);\n this._margins.bottom = Math.max(this.paddingBottom, this._margins.bottom);\n }\n }\n afterFit() {\n callback(this.options.afterFit, [this]);\n }\n isHorizontal() {\n const {axis, position} = this.options;\n return position === 'top' || position === 'bottom' || axis === 'x';\n }\n isFullSize() {\n return this.options.fullSize;\n }\n _convertTicksToLabels(ticks) {\n this.beforeTickToLabelConversion();\n this.generateTickLabels(ticks);\n let i, ilen;\n for (i = 0, ilen = ticks.length; i < ilen; i++) {\n if (isNullOrUndef(ticks[i].label)) {\n ticks.splice(i, 1);\n ilen--;\n i--;\n }\n }\n this.afterTickToLabelConversion();\n }\n _getLabelSizes() {\n let labelSizes = this._labelSizes;\n if (!labelSizes) {\n const sampleSize = this.options.ticks.sampleSize;\n let ticks = this.ticks;\n if (sampleSize < ticks.length) {\n ticks = sample(ticks, sampleSize);\n }\n this._labelSizes = labelSizes = this._computeLabelSizes(ticks, ticks.length);\n }\n return labelSizes;\n }\n _computeLabelSizes(ticks, length) {\n const {ctx, _longestTextCache: caches} = this;\n const widths = [];\n const heights = [];\n let widestLabelSize = 0;\n let highestLabelSize = 0;\n let i, j, jlen, label, tickFont, fontString, cache, lineHeight, width, height, nestedLabel;\n for (i = 0; i < length; ++i) {\n label = ticks[i].label;\n tickFont = this._resolveTickFontOptions(i);\n ctx.font = fontString = tickFont.string;\n cache = caches[fontString] = caches[fontString] || {data: {}, gc: []};\n lineHeight = tickFont.lineHeight;\n width = height = 0;\n if (!isNullOrUndef(label) && !isArray(label)) {\n width = _measureText(ctx, cache.data, cache.gc, width, label);\n height = lineHeight;\n } else if (isArray(label)) {\n for (j = 0, jlen = label.length; j < jlen; ++j) {\n nestedLabel = label[j];\n if (!isNullOrUndef(nestedLabel) && !isArray(nestedLabel)) {\n width = _measureText(ctx, cache.data, cache.gc, width, nestedLabel);\n height += lineHeight;\n }\n }\n }\n widths.push(width);\n heights.push(height);\n widestLabelSize = Math.max(width, widestLabelSize);\n highestLabelSize = Math.max(height, highestLabelSize);\n }\n garbageCollect(caches, length);\n const widest = widths.indexOf(widestLabelSize);\n const highest = heights.indexOf(highestLabelSize);\n const valueAt = (idx) => ({width: widths[idx] || 0, height: heights[idx] || 0});\n return {\n first: valueAt(0),\n last: valueAt(length - 1),\n widest: valueAt(widest),\n highest: valueAt(highest),\n widths,\n heights,\n };\n }\n getLabelForValue(value) {\n return value;\n }\n getPixelForValue(value, index) {\n return NaN;\n }\n getValueForPixel(pixel) {}\n getPixelForTick(index) {\n const ticks = this.ticks;\n if (index < 0 || index > ticks.length - 1) {\n return null;\n }\n return this.getPixelForValue(ticks[index].value);\n }\n getPixelForDecimal(decimal) {\n if (this._reversePixels) {\n decimal = 1 - decimal;\n }\n const pixel = this._startPixel + decimal * this._length;\n return _int16Range(this._alignToPixels ? _alignPixel(this.chart, pixel, 0) : pixel);\n }\n getDecimalForPixel(pixel) {\n const decimal = (pixel - this._startPixel) / this._length;\n return this._reversePixels ? 1 - decimal : decimal;\n }\n getBasePixel() {\n return this.getPixelForValue(this.getBaseValue());\n }\n getBaseValue() {\n const {min, max} = this;\n return min < 0 && max < 0 ? max :\n min > 0 && max > 0 ? min :\n 0;\n }\n getContext(index) {\n const ticks = this.ticks || [];\n if (index >= 0 && index < ticks.length) {\n const tick = ticks[index];\n return tick.$context ||\n\t\t\t\t(tick.$context = createTickContext(this.getContext(), index, tick));\n }\n return this.$context ||\n\t\t\t(this.$context = createScaleContext(this.chart.getContext(), this));\n }\n _tickSize() {\n const optionTicks = this.options.ticks;\n const rot = toRadians(this.labelRotation);\n const cos = Math.abs(Math.cos(rot));\n const sin = Math.abs(Math.sin(rot));\n const labelSizes = this._getLabelSizes();\n const padding = optionTicks.autoSkipPadding || 0;\n const w = labelSizes ? labelSizes.widest.width + padding : 0;\n const h = labelSizes ? labelSizes.highest.height + padding : 0;\n return this.isHorizontal()\n ? h * cos > w * sin ? w / cos : h / sin\n : h * sin < w * cos ? h / cos : w / sin;\n }\n _isVisible() {\n const display = this.options.display;\n if (display !== 'auto') {\n return !!display;\n }\n return this.getMatchingVisibleMetas().length > 0;\n }\n _computeGridLineItems(chartArea) {\n const axis = this.axis;\n const chart = this.chart;\n const options = this.options;\n const {grid, position} = options;\n const offset = grid.offset;\n const isHorizontal = this.isHorizontal();\n const ticks = this.ticks;\n const ticksLength = ticks.length + (offset ? 1 : 0);\n const tl = getTickMarkLength(grid);\n const items = [];\n const borderOpts = grid.setContext(this.getContext());\n const axisWidth = borderOpts.drawBorder ? borderOpts.borderWidth : 0;\n const axisHalfWidth = axisWidth / 2;\n const alignBorderValue = function(pixel) {\n return _alignPixel(chart, pixel, axisWidth);\n };\n let borderValue, i, lineValue, alignedLineValue;\n let tx1, ty1, tx2, ty2, x1, y1, x2, y2;\n if (position === 'top') {\n borderValue = alignBorderValue(this.bottom);\n ty1 = this.bottom - tl;\n ty2 = borderValue - axisHalfWidth;\n y1 = alignBorderValue(chartArea.top) + axisHalfWidth;\n y2 = chartArea.bottom;\n } else if (position === 'bottom') {\n borderValue = alignBorderValue(this.top);\n y1 = chartArea.top;\n y2 = alignBorderValue(chartArea.bottom) - axisHalfWidth;\n ty1 = borderValue + axisHalfWidth;\n ty2 = this.top + tl;\n } else if (position === 'left') {\n borderValue = alignBorderValue(this.right);\n tx1 = this.right - tl;\n tx2 = borderValue - axisHalfWidth;\n x1 = alignBorderValue(chartArea.left) + axisHalfWidth;\n x2 = chartArea.right;\n } else if (position === 'right') {\n borderValue = alignBorderValue(this.left);\n x1 = chartArea.left;\n x2 = alignBorderValue(chartArea.right) - axisHalfWidth;\n tx1 = borderValue + axisHalfWidth;\n tx2 = this.left + tl;\n } else if (axis === 'x') {\n if (position === 'center') {\n borderValue = alignBorderValue((chartArea.top + chartArea.bottom) / 2 + 0.5);\n } else if (isObject(position)) {\n const positionAxisID = Object.keys(position)[0];\n const value = position[positionAxisID];\n borderValue = alignBorderValue(this.chart.scales[positionAxisID].getPixelForValue(value));\n }\n y1 = chartArea.top;\n y2 = chartArea.bottom;\n ty1 = borderValue + axisHalfWidth;\n ty2 = ty1 + tl;\n } else if (axis === 'y') {\n if (position === 'center') {\n borderValue = alignBorderValue((chartArea.left + chartArea.right) / 2);\n } else if (isObject(position)) {\n const positionAxisID = Object.keys(position)[0];\n const value = position[positionAxisID];\n borderValue = alignBorderValue(this.chart.scales[positionAxisID].getPixelForValue(value));\n }\n tx1 = borderValue - axisHalfWidth;\n tx2 = tx1 - tl;\n x1 = chartArea.left;\n x2 = chartArea.right;\n }\n const limit = valueOrDefault(options.ticks.maxTicksLimit, ticksLength);\n const step = Math.max(1, Math.ceil(ticksLength / limit));\n for (i = 0; i < ticksLength; i += step) {\n const optsAtIndex = grid.setContext(this.getContext(i));\n const lineWidth = optsAtIndex.lineWidth;\n const lineColor = optsAtIndex.color;\n const borderDash = optsAtIndex.borderDash || [];\n const borderDashOffset = optsAtIndex.borderDashOffset;\n const tickWidth = optsAtIndex.tickWidth;\n const tickColor = optsAtIndex.tickColor;\n const tickBorderDash = optsAtIndex.tickBorderDash || [];\n const tickBorderDashOffset = optsAtIndex.tickBorderDashOffset;\n lineValue = getPixelForGridLine(this, i, offset);\n if (lineValue === undefined) {\n continue;\n }\n alignedLineValue = _alignPixel(chart, lineValue, lineWidth);\n if (isHorizontal) {\n tx1 = tx2 = x1 = x2 = alignedLineValue;\n } else {\n ty1 = ty2 = y1 = y2 = alignedLineValue;\n }\n items.push({\n tx1,\n ty1,\n tx2,\n ty2,\n x1,\n y1,\n x2,\n y2,\n width: lineWidth,\n color: lineColor,\n borderDash,\n borderDashOffset,\n tickWidth,\n tickColor,\n tickBorderDash,\n tickBorderDashOffset,\n });\n }\n this._ticksLength = ticksLength;\n this._borderValue = borderValue;\n return items;\n }\n _computeLabelItems(chartArea) {\n const axis = this.axis;\n const options = this.options;\n const {position, ticks: optionTicks} = options;\n const isHorizontal = this.isHorizontal();\n const ticks = this.ticks;\n const {align, crossAlign, padding, mirror} = optionTicks;\n const tl = getTickMarkLength(options.grid);\n const tickAndPadding = tl + padding;\n const hTickAndPadding = mirror ? -padding : tickAndPadding;\n const rotation = -toRadians(this.labelRotation);\n const items = [];\n let i, ilen, tick, label, x, y, textAlign, pixel, font, lineHeight, lineCount, textOffset;\n let textBaseline = 'middle';\n if (position === 'top') {\n y = this.bottom - hTickAndPadding;\n textAlign = this._getXAxisLabelAlignment();\n } else if (position === 'bottom') {\n y = this.top + hTickAndPadding;\n textAlign = this._getXAxisLabelAlignment();\n } else if (position === 'left') {\n const ret = this._getYAxisLabelAlignment(tl);\n textAlign = ret.textAlign;\n x = ret.x;\n } else if (position === 'right') {\n const ret = this._getYAxisLabelAlignment(tl);\n textAlign = ret.textAlign;\n x = ret.x;\n } else if (axis === 'x') {\n if (position === 'center') {\n y = ((chartArea.top + chartArea.bottom) / 2) + tickAndPadding;\n } else if (isObject(position)) {\n const positionAxisID = Object.keys(position)[0];\n const value = position[positionAxisID];\n y = this.chart.scales[positionAxisID].getPixelForValue(value) + tickAndPadding;\n }\n textAlign = this._getXAxisLabelAlignment();\n } else if (axis === 'y') {\n if (position === 'center') {\n x = ((chartArea.left + chartArea.right) / 2) - tickAndPadding;\n } else if (isObject(position)) {\n const positionAxisID = Object.keys(position)[0];\n const value = position[positionAxisID];\n x = this.chart.scales[positionAxisID].getPixelForValue(value);\n }\n textAlign = this._getYAxisLabelAlignment(tl).textAlign;\n }\n if (axis === 'y') {\n if (align === 'start') {\n textBaseline = 'top';\n } else if (align === 'end') {\n textBaseline = 'bottom';\n }\n }\n const labelSizes = this._getLabelSizes();\n for (i = 0, ilen = ticks.length; i < ilen; ++i) {\n tick = ticks[i];\n label = tick.label;\n const optsAtIndex = optionTicks.setContext(this.getContext(i));\n pixel = this.getPixelForTick(i) + optionTicks.labelOffset;\n font = this._resolveTickFontOptions(i);\n lineHeight = font.lineHeight;\n lineCount = isArray(label) ? label.length : 1;\n const halfCount = lineCount / 2;\n const color = optsAtIndex.color;\n const strokeColor = optsAtIndex.textStrokeColor;\n const strokeWidth = optsAtIndex.textStrokeWidth;\n let tickTextAlign = textAlign;\n if (isHorizontal) {\n x = pixel;\n if (textAlign === 'inner') {\n if (i === ilen - 1) {\n tickTextAlign = !this.options.reverse ? 'right' : 'left';\n } else if (i === 0) {\n tickTextAlign = !this.options.reverse ? 'left' : 'right';\n } else {\n tickTextAlign = 'center';\n }\n }\n if (position === 'top') {\n if (crossAlign === 'near' || rotation !== 0) {\n textOffset = -lineCount * lineHeight + lineHeight / 2;\n } else if (crossAlign === 'center') {\n textOffset = -labelSizes.highest.height / 2 - halfCount * lineHeight + lineHeight;\n } else {\n textOffset = -labelSizes.highest.height + lineHeight / 2;\n }\n } else {\n if (crossAlign === 'near' || rotation !== 0) {\n textOffset = lineHeight / 2;\n } else if (crossAlign === 'center') {\n textOffset = labelSizes.highest.height / 2 - halfCount * lineHeight;\n } else {\n textOffset = labelSizes.highest.height - lineCount * lineHeight;\n }\n }\n if (mirror) {\n textOffset *= -1;\n }\n } else {\n y = pixel;\n textOffset = (1 - lineCount) * lineHeight / 2;\n }\n let backdrop;\n if (optsAtIndex.showLabelBackdrop) {\n const labelPadding = toPadding(optsAtIndex.backdropPadding);\n const height = labelSizes.heights[i];\n const width = labelSizes.widths[i];\n let top = y + textOffset - labelPadding.top;\n let left = x - labelPadding.left;\n switch (textBaseline) {\n case 'middle':\n top -= height / 2;\n break;\n case 'bottom':\n top -= height;\n break;\n }\n switch (textAlign) {\n case 'center':\n left -= width / 2;\n break;\n case 'right':\n left -= width;\n break;\n }\n backdrop = {\n left,\n top,\n width: width + labelPadding.width,\n height: height + labelPadding.height,\n color: optsAtIndex.backdropColor,\n };\n }\n items.push({\n rotation,\n label,\n font,\n color,\n strokeColor,\n strokeWidth,\n textOffset,\n textAlign: tickTextAlign,\n textBaseline,\n translation: [x, y],\n backdrop,\n });\n }\n return items;\n }\n _getXAxisLabelAlignment() {\n const {position, ticks} = this.options;\n const rotation = -toRadians(this.labelRotation);\n if (rotation) {\n return position === 'top' ? 'left' : 'right';\n }\n let align = 'center';\n if (ticks.align === 'start') {\n align = 'left';\n } else if (ticks.align === 'end') {\n align = 'right';\n } else if (ticks.align === 'inner') {\n align = 'inner';\n }\n return align;\n }\n _getYAxisLabelAlignment(tl) {\n const {position, ticks: {crossAlign, mirror, padding}} = this.options;\n const labelSizes = this._getLabelSizes();\n const tickAndPadding = tl + padding;\n const widest = labelSizes.widest.width;\n let textAlign;\n let x;\n if (position === 'left') {\n if (mirror) {\n x = this.right + padding;\n if (crossAlign === 'near') {\n textAlign = 'left';\n } else if (crossAlign === 'center') {\n textAlign = 'center';\n x += (widest / 2);\n } else {\n textAlign = 'right';\n x += widest;\n }\n } else {\n x = this.right - tickAndPadding;\n if (crossAlign === 'near') {\n textAlign = 'right';\n } else if (crossAlign === 'center') {\n textAlign = 'center';\n x -= (widest / 2);\n } else {\n textAlign = 'left';\n x = this.left;\n }\n }\n } else if (position === 'right') {\n if (mirror) {\n x = this.left + padding;\n if (crossAlign === 'near') {\n textAlign = 'right';\n } else if (crossAlign === 'center') {\n textAlign = 'center';\n x -= (widest / 2);\n } else {\n textAlign = 'left';\n x -= widest;\n }\n } else {\n x = this.left + tickAndPadding;\n if (crossAlign === 'near') {\n textAlign = 'left';\n } else if (crossAlign === 'center') {\n textAlign = 'center';\n x += widest / 2;\n } else {\n textAlign = 'right';\n x = this.right;\n }\n }\n } else {\n textAlign = 'right';\n }\n return {textAlign, x};\n }\n _computeLabelArea() {\n if (this.options.ticks.mirror) {\n return;\n }\n const chart = this.chart;\n const position = this.options.position;\n if (position === 'left' || position === 'right') {\n return {top: 0, left: this.left, bottom: chart.height, right: this.right};\n } if (position === 'top' || position === 'bottom') {\n return {top: this.top, left: 0, bottom: this.bottom, right: chart.width};\n }\n }\n drawBackground() {\n const {ctx, options: {backgroundColor}, left, top, width, height} = this;\n if (backgroundColor) {\n ctx.save();\n ctx.fillStyle = backgroundColor;\n ctx.fillRect(left, top, width, height);\n ctx.restore();\n }\n }\n getLineWidthForValue(value) {\n const grid = this.options.grid;\n if (!this._isVisible() || !grid.display) {\n return 0;\n }\n const ticks = this.ticks;\n const index = ticks.findIndex(t => t.value === value);\n if (index >= 0) {\n const opts = grid.setContext(this.getContext(index));\n return opts.lineWidth;\n }\n return 0;\n }\n drawGrid(chartArea) {\n const grid = this.options.grid;\n const ctx = this.ctx;\n const items = this._gridLineItems || (this._gridLineItems = this._computeGridLineItems(chartArea));\n let i, ilen;\n const drawLine = (p1, p2, style) => {\n if (!style.width || !style.color) {\n return;\n }\n ctx.save();\n ctx.lineWidth = style.width;\n ctx.strokeStyle = style.color;\n ctx.setLineDash(style.borderDash || []);\n ctx.lineDashOffset = style.borderDashOffset;\n ctx.beginPath();\n ctx.moveTo(p1.x, p1.y);\n ctx.lineTo(p2.x, p2.y);\n ctx.stroke();\n ctx.restore();\n };\n if (grid.display) {\n for (i = 0, ilen = items.length; i < ilen; ++i) {\n const item = items[i];\n if (grid.drawOnChartArea) {\n drawLine(\n {x: item.x1, y: item.y1},\n {x: item.x2, y: item.y2},\n item\n );\n }\n if (grid.drawTicks) {\n drawLine(\n {x: item.tx1, y: item.ty1},\n {x: item.tx2, y: item.ty2},\n {\n color: item.tickColor,\n width: item.tickWidth,\n borderDash: item.tickBorderDash,\n borderDashOffset: item.tickBorderDashOffset\n }\n );\n }\n }\n }\n }\n drawBorder() {\n const {chart, ctx, options: {grid}} = this;\n const borderOpts = grid.setContext(this.getContext());\n const axisWidth = grid.drawBorder ? borderOpts.borderWidth : 0;\n if (!axisWidth) {\n return;\n }\n const lastLineWidth = grid.setContext(this.getContext(0)).lineWidth;\n const borderValue = this._borderValue;\n let x1, x2, y1, y2;\n if (this.isHorizontal()) {\n x1 = _alignPixel(chart, this.left, axisWidth) - axisWidth / 2;\n x2 = _alignPixel(chart, this.right, lastLineWidth) + lastLineWidth / 2;\n y1 = y2 = borderValue;\n } else {\n y1 = _alignPixel(chart, this.top, axisWidth) - axisWidth / 2;\n y2 = _alignPixel(chart, this.bottom, lastLineWidth) + lastLineWidth / 2;\n x1 = x2 = borderValue;\n }\n ctx.save();\n ctx.lineWidth = borderOpts.borderWidth;\n ctx.strokeStyle = borderOpts.borderColor;\n ctx.beginPath();\n ctx.moveTo(x1, y1);\n ctx.lineTo(x2, y2);\n ctx.stroke();\n ctx.restore();\n }\n drawLabels(chartArea) {\n const optionTicks = this.options.ticks;\n if (!optionTicks.display) {\n return;\n }\n const ctx = this.ctx;\n const area = this._computeLabelArea();\n if (area) {\n clipArea(ctx, area);\n }\n const items = this._labelItems || (this._labelItems = this._computeLabelItems(chartArea));\n let i, ilen;\n for (i = 0, ilen = items.length; i < ilen; ++i) {\n const item = items[i];\n const tickFont = item.font;\n const label = item.label;\n if (item.backdrop) {\n ctx.fillStyle = item.backdrop.color;\n ctx.fillRect(item.backdrop.left, item.backdrop.top, item.backdrop.width, item.backdrop.height);\n }\n let y = item.textOffset;\n renderText(ctx, label, 0, y, tickFont, item);\n }\n if (area) {\n unclipArea(ctx);\n }\n }\n drawTitle() {\n const {ctx, options: {position, title, reverse}} = this;\n if (!title.display) {\n return;\n }\n const font = toFont(title.font);\n const padding = toPadding(title.padding);\n const align = title.align;\n let offset = font.lineHeight / 2;\n if (position === 'bottom' || position === 'center' || isObject(position)) {\n offset += padding.bottom;\n if (isArray(title.text)) {\n offset += font.lineHeight * (title.text.length - 1);\n }\n } else {\n offset += padding.top;\n }\n const {titleX, titleY, maxWidth, rotation} = titleArgs(this, offset, position, align);\n renderText(ctx, title.text, 0, 0, font, {\n color: title.color,\n maxWidth,\n rotation,\n textAlign: titleAlign(align, position, reverse),\n textBaseline: 'middle',\n translation: [titleX, titleY],\n });\n }\n draw(chartArea) {\n if (!this._isVisible()) {\n return;\n }\n this.drawBackground();\n this.drawGrid(chartArea);\n this.drawBorder();\n this.drawTitle();\n this.drawLabels(chartArea);\n }\n _layers() {\n const opts = this.options;\n const tz = opts.ticks && opts.ticks.z || 0;\n const gz = valueOrDefault(opts.grid && opts.grid.z, -1);\n if (!this._isVisible() || this.draw !== Scale.prototype.draw) {\n return [{\n z: tz,\n draw: (chartArea) => {\n this.draw(chartArea);\n }\n }];\n }\n return [{\n z: gz,\n draw: (chartArea) => {\n this.drawBackground();\n this.drawGrid(chartArea);\n this.drawTitle();\n }\n }, {\n z: gz + 1,\n draw: () => {\n this.drawBorder();\n }\n }, {\n z: tz,\n draw: (chartArea) => {\n this.drawLabels(chartArea);\n }\n }];\n }\n getMatchingVisibleMetas(type) {\n const metas = this.chart.getSortedVisibleDatasetMetas();\n const axisID = this.axis + 'AxisID';\n const result = [];\n let i, ilen;\n for (i = 0, ilen = metas.length; i < ilen; ++i) {\n const meta = metas[i];\n if (meta[axisID] === this.id && (!type || meta.type === type)) {\n result.push(meta);\n }\n }\n return result;\n }\n _resolveTickFontOptions(index) {\n const opts = this.options.ticks.setContext(this.getContext(index));\n return toFont(opts.font);\n }\n _maxDigits() {\n const fontSize = this._resolveTickFontOptions(0).lineHeight;\n return (this.isHorizontal() ? this.width : this.height) / fontSize;\n }\n}\n\nclass TypedRegistry {\n constructor(type, scope, override) {\n this.type = type;\n this.scope = scope;\n this.override = override;\n this.items = Object.create(null);\n }\n isForType(type) {\n return Object.prototype.isPrototypeOf.call(this.type.prototype, type.prototype);\n }\n register(item) {\n const proto = Object.getPrototypeOf(item);\n let parentScope;\n if (isIChartComponent(proto)) {\n parentScope = this.register(proto);\n }\n const items = this.items;\n const id = item.id;\n const scope = this.scope + '.' + id;\n if (!id) {\n throw new Error('class does not have id: ' + item);\n }\n if (id in items) {\n return scope;\n }\n items[id] = item;\n registerDefaults(item, scope, parentScope);\n if (this.override) {\n defaults.override(item.id, item.overrides);\n }\n return scope;\n }\n get(id) {\n return this.items[id];\n }\n unregister(item) {\n const items = this.items;\n const id = item.id;\n const scope = this.scope;\n if (id in items) {\n delete items[id];\n }\n if (scope && id in defaults[scope]) {\n delete defaults[scope][id];\n if (this.override) {\n delete overrides[id];\n }\n }\n }\n}\nfunction registerDefaults(item, scope, parentScope) {\n const itemDefaults = merge(Object.create(null), [\n parentScope ? defaults.get(parentScope) : {},\n defaults.get(scope),\n item.defaults\n ]);\n defaults.set(scope, itemDefaults);\n if (item.defaultRoutes) {\n routeDefaults(scope, item.defaultRoutes);\n }\n if (item.descriptors) {\n defaults.describe(scope, item.descriptors);\n }\n}\nfunction routeDefaults(scope, routes) {\n Object.keys(routes).forEach(property => {\n const propertyParts = property.split('.');\n const sourceName = propertyParts.pop();\n const sourceScope = [scope].concat(propertyParts).join('.');\n const parts = routes[property].split('.');\n const targetName = parts.pop();\n const targetScope = parts.join('.');\n defaults.route(sourceScope, sourceName, targetScope, targetName);\n });\n}\nfunction isIChartComponent(proto) {\n return 'id' in proto && 'defaults' in proto;\n}\n\nclass Registry {\n constructor() {\n this.controllers = new TypedRegistry(DatasetController, 'datasets', true);\n this.elements = new TypedRegistry(Element, 'elements');\n this.plugins = new TypedRegistry(Object, 'plugins');\n this.scales = new TypedRegistry(Scale, 'scales');\n this._typedRegistries = [this.controllers, this.scales, this.elements];\n }\n add(...args) {\n this._each('register', args);\n }\n remove(...args) {\n this._each('unregister', args);\n }\n addControllers(...args) {\n this._each('register', args, this.controllers);\n }\n addElements(...args) {\n this._each('register', args, this.elements);\n }\n addPlugins(...args) {\n this._each('register', args, this.plugins);\n }\n addScales(...args) {\n this._each('register', args, this.scales);\n }\n getController(id) {\n return this._get(id, this.controllers, 'controller');\n }\n getElement(id) {\n return this._get(id, this.elements, 'element');\n }\n getPlugin(id) {\n return this._get(id, this.plugins, 'plugin');\n }\n getScale(id) {\n return this._get(id, this.scales, 'scale');\n }\n removeControllers(...args) {\n this._each('unregister', args, this.controllers);\n }\n removeElements(...args) {\n this._each('unregister', args, this.elements);\n }\n removePlugins(...args) {\n this._each('unregister', args, this.plugins);\n }\n removeScales(...args) {\n this._each('unregister', args, this.scales);\n }\n _each(method, args, typedRegistry) {\n [...args].forEach(arg => {\n const reg = typedRegistry || this._getRegistryForType(arg);\n if (typedRegistry || reg.isForType(arg) || (reg === this.plugins && arg.id)) {\n this._exec(method, reg, arg);\n } else {\n each(arg, item => {\n const itemReg = typedRegistry || this._getRegistryForType(item);\n this._exec(method, itemReg, item);\n });\n }\n });\n }\n _exec(method, registry, component) {\n const camelMethod = _capitalize(method);\n callback(component['before' + camelMethod], [], component);\n registry[method](component);\n callback(component['after' + camelMethod], [], component);\n }\n _getRegistryForType(type) {\n for (let i = 0; i < this._typedRegistries.length; i++) {\n const reg = this._typedRegistries[i];\n if (reg.isForType(type)) {\n return reg;\n }\n }\n return this.plugins;\n }\n _get(id, typedRegistry, type) {\n const item = typedRegistry.get(id);\n if (item === undefined) {\n throw new Error('\"' + id + '\" is not a registered ' + type + '.');\n }\n return item;\n }\n}\nvar registry = new Registry();\n\nclass ScatterController extends DatasetController {\n update(mode) {\n const meta = this._cachedMeta;\n const {data: points = []} = meta;\n const animationsDisabled = this.chart._animationsDisabled;\n let {start, count} = _getStartAndCountOfVisiblePoints(meta, points, animationsDisabled);\n this._drawStart = start;\n this._drawCount = count;\n if (_scaleRangesChanged(meta)) {\n start = 0;\n count = points.length;\n }\n if (this.options.showLine) {\n const {dataset: line, _dataset} = meta;\n line._chart = this.chart;\n line._datasetIndex = this.index;\n line._decimated = !!_dataset._decimated;\n line.points = points;\n const options = this.resolveDatasetElementOptions(mode);\n options.segment = this.options.segment;\n this.updateElement(line, undefined, {\n animated: !animationsDisabled,\n options\n }, mode);\n }\n this.updateElements(points, start, count, mode);\n }\n addElements() {\n const {showLine} = this.options;\n if (!this.datasetElementType && showLine) {\n this.datasetElementType = registry.getElement('line');\n }\n super.addElements();\n }\n updateElements(points, start, count, mode) {\n const reset = mode === 'reset';\n const {iScale, vScale, _stacked, _dataset} = this._cachedMeta;\n const firstOpts = this.resolveDataElementOptions(start, mode);\n const sharedOptions = this.getSharedOptions(firstOpts);\n const includeOptions = this.includeOptions(mode, sharedOptions);\n const iAxis = iScale.axis;\n const vAxis = vScale.axis;\n const {spanGaps, segment} = this.options;\n const maxGapLength = isNumber(spanGaps) ? spanGaps : Number.POSITIVE_INFINITY;\n const directUpdate = this.chart._animationsDisabled || reset || mode === 'none';\n let prevParsed = start > 0 && this.getParsed(start - 1);\n for (let i = start; i < start + count; ++i) {\n const point = points[i];\n const parsed = this.getParsed(i);\n const properties = directUpdate ? point : {};\n const nullData = isNullOrUndef(parsed[vAxis]);\n const iPixel = properties[iAxis] = iScale.getPixelForValue(parsed[iAxis], i);\n const vPixel = properties[vAxis] = reset || nullData ? vScale.getBasePixel() : vScale.getPixelForValue(_stacked ? this.applyStack(vScale, parsed, _stacked) : parsed[vAxis], i);\n properties.skip = isNaN(iPixel) || isNaN(vPixel) || nullData;\n properties.stop = i > 0 && (Math.abs(parsed[iAxis] - prevParsed[iAxis])) > maxGapLength;\n if (segment) {\n properties.parsed = parsed;\n properties.raw = _dataset.data[i];\n }\n if (includeOptions) {\n properties.options = sharedOptions || this.resolveDataElementOptions(i, point.active ? 'active' : mode);\n }\n if (!directUpdate) {\n this.updateElement(point, i, properties, mode);\n }\n prevParsed = parsed;\n }\n this.updateSharedOptions(sharedOptions, mode, firstOpts);\n }\n getMaxOverflow() {\n const meta = this._cachedMeta;\n const data = meta.data || [];\n if (!this.options.showLine) {\n let max = 0;\n for (let i = data.length - 1; i >= 0; --i) {\n max = Math.max(max, data[i].size(this.resolveDataElementOptions(i)) / 2);\n }\n return max > 0 && max;\n }\n const dataset = meta.dataset;\n const border = dataset.options && dataset.options.borderWidth || 0;\n if (!data.length) {\n return border;\n }\n const firstPoint = data[0].size(this.resolveDataElementOptions(0));\n const lastPoint = data[data.length - 1].size(this.resolveDataElementOptions(data.length - 1));\n return Math.max(border, firstPoint, lastPoint) / 2;\n }\n}\nScatterController.id = 'scatter';\nScatterController.defaults = {\n datasetElementType: false,\n dataElementType: 'point',\n showLine: false,\n fill: false\n};\nScatterController.overrides = {\n interaction: {\n mode: 'point'\n },\n plugins: {\n tooltip: {\n callbacks: {\n title() {\n return '';\n },\n label(item) {\n return '(' + item.label + ', ' + item.formattedValue + ')';\n }\n }\n }\n },\n scales: {\n x: {\n type: 'linear'\n },\n y: {\n type: 'linear'\n }\n }\n};\n\nvar controllers = /*#__PURE__*/Object.freeze({\n__proto__: null,\nBarController: BarController,\nBubbleController: BubbleController,\nDoughnutController: DoughnutController,\nLineController: LineController,\nPolarAreaController: PolarAreaController,\nPieController: PieController,\nRadarController: RadarController,\nScatterController: ScatterController\n});\n\nfunction abstract() {\n throw new Error('This method is not implemented: Check that a complete date adapter is provided.');\n}\nclass DateAdapter {\n constructor(options) {\n this.options = options || {};\n }\n init(chartOptions) {}\n formats() {\n return abstract();\n }\n parse(value, format) {\n return abstract();\n }\n format(timestamp, format) {\n return abstract();\n }\n add(timestamp, amount, unit) {\n return abstract();\n }\n diff(a, b, unit) {\n return abstract();\n }\n startOf(timestamp, unit, weekday) {\n return abstract();\n }\n endOf(timestamp, unit) {\n return abstract();\n }\n}\nDateAdapter.override = function(members) {\n Object.assign(DateAdapter.prototype, members);\n};\nvar adapters = {\n _date: DateAdapter\n};\n\nfunction binarySearch(metaset, axis, value, intersect) {\n const {controller, data, _sorted} = metaset;\n const iScale = controller._cachedMeta.iScale;\n if (iScale && axis === iScale.axis && axis !== 'r' && _sorted && data.length) {\n const lookupMethod = iScale._reversePixels ? _rlookupByKey : _lookupByKey;\n if (!intersect) {\n return lookupMethod(data, axis, value);\n } else if (controller._sharedOptions) {\n const el = data[0];\n const range = typeof el.getRange === 'function' && el.getRange(axis);\n if (range) {\n const start = lookupMethod(data, axis, value - range);\n const end = lookupMethod(data, axis, value + range);\n return {lo: start.lo, hi: end.hi};\n }\n }\n }\n return {lo: 0, hi: data.length - 1};\n}\nfunction evaluateInteractionItems(chart, axis, position, handler, intersect) {\n const metasets = chart.getSortedVisibleDatasetMetas();\n const value = position[axis];\n for (let i = 0, ilen = metasets.length; i < ilen; ++i) {\n const {index, data} = metasets[i];\n const {lo, hi} = binarySearch(metasets[i], axis, value, intersect);\n for (let j = lo; j <= hi; ++j) {\n const element = data[j];\n if (!element.skip) {\n handler(element, index, j);\n }\n }\n }\n}\nfunction getDistanceMetricForAxis(axis) {\n const useX = axis.indexOf('x') !== -1;\n const useY = axis.indexOf('y') !== -1;\n return function(pt1, pt2) {\n const deltaX = useX ? Math.abs(pt1.x - pt2.x) : 0;\n const deltaY = useY ? Math.abs(pt1.y - pt2.y) : 0;\n return Math.sqrt(Math.pow(deltaX, 2) + Math.pow(deltaY, 2));\n };\n}\nfunction getIntersectItems(chart, position, axis, useFinalPosition, includeInvisible) {\n const items = [];\n if (!includeInvisible && !chart.isPointInArea(position)) {\n return items;\n }\n const evaluationFunc = function(element, datasetIndex, index) {\n if (!includeInvisible && !_isPointInArea(element, chart.chartArea, 0)) {\n return;\n }\n if (element.inRange(position.x, position.y, useFinalPosition)) {\n items.push({element, datasetIndex, index});\n }\n };\n evaluateInteractionItems(chart, axis, position, evaluationFunc, true);\n return items;\n}\nfunction getNearestRadialItems(chart, position, axis, useFinalPosition) {\n let items = [];\n function evaluationFunc(element, datasetIndex, index) {\n const {startAngle, endAngle} = element.getProps(['startAngle', 'endAngle'], useFinalPosition);\n const {angle} = getAngleFromPoint(element, {x: position.x, y: position.y});\n if (_angleBetween(angle, startAngle, endAngle)) {\n items.push({element, datasetIndex, index});\n }\n }\n evaluateInteractionItems(chart, axis, position, evaluationFunc);\n return items;\n}\nfunction getNearestCartesianItems(chart, position, axis, intersect, useFinalPosition, includeInvisible) {\n let items = [];\n const distanceMetric = getDistanceMetricForAxis(axis);\n let minDistance = Number.POSITIVE_INFINITY;\n function evaluationFunc(element, datasetIndex, index) {\n const inRange = element.inRange(position.x, position.y, useFinalPosition);\n if (intersect && !inRange) {\n return;\n }\n const center = element.getCenterPoint(useFinalPosition);\n const pointInArea = !!includeInvisible || chart.isPointInArea(center);\n if (!pointInArea && !inRange) {\n return;\n }\n const distance = distanceMetric(position, center);\n if (distance < minDistance) {\n items = [{element, datasetIndex, index}];\n minDistance = distance;\n } else if (distance === minDistance) {\n items.push({element, datasetIndex, index});\n }\n }\n evaluateInteractionItems(chart, axis, position, evaluationFunc);\n return items;\n}\nfunction getNearestItems(chart, position, axis, intersect, useFinalPosition, includeInvisible) {\n if (!includeInvisible && !chart.isPointInArea(position)) {\n return [];\n }\n return axis === 'r' && !intersect\n ? getNearestRadialItems(chart, position, axis, useFinalPosition)\n : getNearestCartesianItems(chart, position, axis, intersect, useFinalPosition, includeInvisible);\n}\nfunction getAxisItems(chart, position, axis, intersect, useFinalPosition) {\n const items = [];\n const rangeMethod = axis === 'x' ? 'inXRange' : 'inYRange';\n let intersectsItem = false;\n evaluateInteractionItems(chart, axis, position, (element, datasetIndex, index) => {\n if (element[rangeMethod](position[axis], useFinalPosition)) {\n items.push({element, datasetIndex, index});\n intersectsItem = intersectsItem || element.inRange(position.x, position.y, useFinalPosition);\n }\n });\n if (intersect && !intersectsItem) {\n return [];\n }\n return items;\n}\nvar Interaction = {\n evaluateInteractionItems,\n modes: {\n index(chart, e, options, useFinalPosition) {\n const position = getRelativePosition(e, chart);\n const axis = options.axis || 'x';\n const includeInvisible = options.includeInvisible || false;\n const items = options.intersect\n ? getIntersectItems(chart, position, axis, useFinalPosition, includeInvisible)\n : getNearestItems(chart, position, axis, false, useFinalPosition, includeInvisible);\n const elements = [];\n if (!items.length) {\n return [];\n }\n chart.getSortedVisibleDatasetMetas().forEach((meta) => {\n const index = items[0].index;\n const element = meta.data[index];\n if (element && !element.skip) {\n elements.push({element, datasetIndex: meta.index, index});\n }\n });\n return elements;\n },\n dataset(chart, e, options, useFinalPosition) {\n const position = getRelativePosition(e, chart);\n const axis = options.axis || 'xy';\n const includeInvisible = options.includeInvisible || false;\n let items = options.intersect\n ? getIntersectItems(chart, position, axis, useFinalPosition, includeInvisible) :\n getNearestItems(chart, position, axis, false, useFinalPosition, includeInvisible);\n if (items.length > 0) {\n const datasetIndex = items[0].datasetIndex;\n const data = chart.getDatasetMeta(datasetIndex).data;\n items = [];\n for (let i = 0; i < data.length; ++i) {\n items.push({element: data[i], datasetIndex, index: i});\n }\n }\n return items;\n },\n point(chart, e, options, useFinalPosition) {\n const position = getRelativePosition(e, chart);\n const axis = options.axis || 'xy';\n const includeInvisible = options.includeInvisible || false;\n return getIntersectItems(chart, position, axis, useFinalPosition, includeInvisible);\n },\n nearest(chart, e, options, useFinalPosition) {\n const position = getRelativePosition(e, chart);\n const axis = options.axis || 'xy';\n const includeInvisible = options.includeInvisible || false;\n return getNearestItems(chart, position, axis, options.intersect, useFinalPosition, includeInvisible);\n },\n x(chart, e, options, useFinalPosition) {\n const position = getRelativePosition(e, chart);\n return getAxisItems(chart, position, 'x', options.intersect, useFinalPosition);\n },\n y(chart, e, options, useFinalPosition) {\n const position = getRelativePosition(e, chart);\n return getAxisItems(chart, position, 'y', options.intersect, useFinalPosition);\n }\n }\n};\n\nconst STATIC_POSITIONS = ['left', 'top', 'right', 'bottom'];\nfunction filterByPosition(array, position) {\n return array.filter(v => v.pos === position);\n}\nfunction filterDynamicPositionByAxis(array, axis) {\n return array.filter(v => STATIC_POSITIONS.indexOf(v.pos) === -1 && v.box.axis === axis);\n}\nfunction sortByWeight(array, reverse) {\n return array.sort((a, b) => {\n const v0 = reverse ? b : a;\n const v1 = reverse ? a : b;\n return v0.weight === v1.weight ?\n v0.index - v1.index :\n v0.weight - v1.weight;\n });\n}\nfunction wrapBoxes(boxes) {\n const layoutBoxes = [];\n let i, ilen, box, pos, stack, stackWeight;\n for (i = 0, ilen = (boxes || []).length; i < ilen; ++i) {\n box = boxes[i];\n ({position: pos, options: {stack, stackWeight = 1}} = box);\n layoutBoxes.push({\n index: i,\n box,\n pos,\n horizontal: box.isHorizontal(),\n weight: box.weight,\n stack: stack && (pos + stack),\n stackWeight\n });\n }\n return layoutBoxes;\n}\nfunction buildStacks(layouts) {\n const stacks = {};\n for (const wrap of layouts) {\n const {stack, pos, stackWeight} = wrap;\n if (!stack || !STATIC_POSITIONS.includes(pos)) {\n continue;\n }\n const _stack = stacks[stack] || (stacks[stack] = {count: 0, placed: 0, weight: 0, size: 0});\n _stack.count++;\n _stack.weight += stackWeight;\n }\n return stacks;\n}\nfunction setLayoutDims(layouts, params) {\n const stacks = buildStacks(layouts);\n const {vBoxMaxWidth, hBoxMaxHeight} = params;\n let i, ilen, layout;\n for (i = 0, ilen = layouts.length; i < ilen; ++i) {\n layout = layouts[i];\n const {fullSize} = layout.box;\n const stack = stacks[layout.stack];\n const factor = stack && layout.stackWeight / stack.weight;\n if (layout.horizontal) {\n layout.width = factor ? factor * vBoxMaxWidth : fullSize && params.availableWidth;\n layout.height = hBoxMaxHeight;\n } else {\n layout.width = vBoxMaxWidth;\n layout.height = factor ? factor * hBoxMaxHeight : fullSize && params.availableHeight;\n }\n }\n return stacks;\n}\nfunction buildLayoutBoxes(boxes) {\n const layoutBoxes = wrapBoxes(boxes);\n const fullSize = sortByWeight(layoutBoxes.filter(wrap => wrap.box.fullSize), true);\n const left = sortByWeight(filterByPosition(layoutBoxes, 'left'), true);\n const right = sortByWeight(filterByPosition(layoutBoxes, 'right'));\n const top = sortByWeight(filterByPosition(layoutBoxes, 'top'), true);\n const bottom = sortByWeight(filterByPosition(layoutBoxes, 'bottom'));\n const centerHorizontal = filterDynamicPositionByAxis(layoutBoxes, 'x');\n const centerVertical = filterDynamicPositionByAxis(layoutBoxes, 'y');\n return {\n fullSize,\n leftAndTop: left.concat(top),\n rightAndBottom: right.concat(centerVertical).concat(bottom).concat(centerHorizontal),\n chartArea: filterByPosition(layoutBoxes, 'chartArea'),\n vertical: left.concat(right).concat(centerVertical),\n horizontal: top.concat(bottom).concat(centerHorizontal)\n };\n}\nfunction getCombinedMax(maxPadding, chartArea, a, b) {\n return Math.max(maxPadding[a], chartArea[a]) + Math.max(maxPadding[b], chartArea[b]);\n}\nfunction updateMaxPadding(maxPadding, boxPadding) {\n maxPadding.top = Math.max(maxPadding.top, boxPadding.top);\n maxPadding.left = Math.max(maxPadding.left, boxPadding.left);\n maxPadding.bottom = Math.max(maxPadding.bottom, boxPadding.bottom);\n maxPadding.right = Math.max(maxPadding.right, boxPadding.right);\n}\nfunction updateDims(chartArea, params, layout, stacks) {\n const {pos, box} = layout;\n const maxPadding = chartArea.maxPadding;\n if (!isObject(pos)) {\n if (layout.size) {\n chartArea[pos] -= layout.size;\n }\n const stack = stacks[layout.stack] || {size: 0, count: 1};\n stack.size = Math.max(stack.size, layout.horizontal ? box.height : box.width);\n layout.size = stack.size / stack.count;\n chartArea[pos] += layout.size;\n }\n if (box.getPadding) {\n updateMaxPadding(maxPadding, box.getPadding());\n }\n const newWidth = Math.max(0, params.outerWidth - getCombinedMax(maxPadding, chartArea, 'left', 'right'));\n const newHeight = Math.max(0, params.outerHeight - getCombinedMax(maxPadding, chartArea, 'top', 'bottom'));\n const widthChanged = newWidth !== chartArea.w;\n const heightChanged = newHeight !== chartArea.h;\n chartArea.w = newWidth;\n chartArea.h = newHeight;\n return layout.horizontal\n ? {same: widthChanged, other: heightChanged}\n : {same: heightChanged, other: widthChanged};\n}\nfunction handleMaxPadding(chartArea) {\n const maxPadding = chartArea.maxPadding;\n function updatePos(pos) {\n const change = Math.max(maxPadding[pos] - chartArea[pos], 0);\n chartArea[pos] += change;\n return change;\n }\n chartArea.y += updatePos('top');\n chartArea.x += updatePos('left');\n updatePos('right');\n updatePos('bottom');\n}\nfunction getMargins(horizontal, chartArea) {\n const maxPadding = chartArea.maxPadding;\n function marginForPositions(positions) {\n const margin = {left: 0, top: 0, right: 0, bottom: 0};\n positions.forEach((pos) => {\n margin[pos] = Math.max(chartArea[pos], maxPadding[pos]);\n });\n return margin;\n }\n return horizontal\n ? marginForPositions(['left', 'right'])\n : marginForPositions(['top', 'bottom']);\n}\nfunction fitBoxes(boxes, chartArea, params, stacks) {\n const refitBoxes = [];\n let i, ilen, layout, box, refit, changed;\n for (i = 0, ilen = boxes.length, refit = 0; i < ilen; ++i) {\n layout = boxes[i];\n box = layout.box;\n box.update(\n layout.width || chartArea.w,\n layout.height || chartArea.h,\n getMargins(layout.horizontal, chartArea)\n );\n const {same, other} = updateDims(chartArea, params, layout, stacks);\n refit |= same && refitBoxes.length;\n changed = changed || other;\n if (!box.fullSize) {\n refitBoxes.push(layout);\n }\n }\n return refit && fitBoxes(refitBoxes, chartArea, params, stacks) || changed;\n}\nfunction setBoxDims(box, left, top, width, height) {\n box.top = top;\n box.left = left;\n box.right = left + width;\n box.bottom = top + height;\n box.width = width;\n box.height = height;\n}\nfunction placeBoxes(boxes, chartArea, params, stacks) {\n const userPadding = params.padding;\n let {x, y} = chartArea;\n for (const layout of boxes) {\n const box = layout.box;\n const stack = stacks[layout.stack] || {count: 1, placed: 0, weight: 1};\n const weight = (layout.stackWeight / stack.weight) || 1;\n if (layout.horizontal) {\n const width = chartArea.w * weight;\n const height = stack.size || box.height;\n if (defined(stack.start)) {\n y = stack.start;\n }\n if (box.fullSize) {\n setBoxDims(box, userPadding.left, y, params.outerWidth - userPadding.right - userPadding.left, height);\n } else {\n setBoxDims(box, chartArea.left + stack.placed, y, width, height);\n }\n stack.start = y;\n stack.placed += width;\n y = box.bottom;\n } else {\n const height = chartArea.h * weight;\n const width = stack.size || box.width;\n if (defined(stack.start)) {\n x = stack.start;\n }\n if (box.fullSize) {\n setBoxDims(box, x, userPadding.top, width, params.outerHeight - userPadding.bottom - userPadding.top);\n } else {\n setBoxDims(box, x, chartArea.top + stack.placed, width, height);\n }\n stack.start = x;\n stack.placed += height;\n x = box.right;\n }\n }\n chartArea.x = x;\n chartArea.y = y;\n}\ndefaults.set('layout', {\n autoPadding: true,\n padding: {\n top: 0,\n right: 0,\n bottom: 0,\n left: 0\n }\n});\nvar layouts = {\n addBox(chart, item) {\n if (!chart.boxes) {\n chart.boxes = [];\n }\n item.fullSize = item.fullSize || false;\n item.position = item.position || 'top';\n item.weight = item.weight || 0;\n item._layers = item._layers || function() {\n return [{\n z: 0,\n draw(chartArea) {\n item.draw(chartArea);\n }\n }];\n };\n chart.boxes.push(item);\n },\n removeBox(chart, layoutItem) {\n const index = chart.boxes ? chart.boxes.indexOf(layoutItem) : -1;\n if (index !== -1) {\n chart.boxes.splice(index, 1);\n }\n },\n configure(chart, item, options) {\n item.fullSize = options.fullSize;\n item.position = options.position;\n item.weight = options.weight;\n },\n update(chart, width, height, minPadding) {\n if (!chart) {\n return;\n }\n const padding = toPadding(chart.options.layout.padding);\n const availableWidth = Math.max(width - padding.width, 0);\n const availableHeight = Math.max(height - padding.height, 0);\n const boxes = buildLayoutBoxes(chart.boxes);\n const verticalBoxes = boxes.vertical;\n const horizontalBoxes = boxes.horizontal;\n each(chart.boxes, box => {\n if (typeof box.beforeLayout === 'function') {\n box.beforeLayout();\n }\n });\n const visibleVerticalBoxCount = verticalBoxes.reduce((total, wrap) =>\n wrap.box.options && wrap.box.options.display === false ? total : total + 1, 0) || 1;\n const params = Object.freeze({\n outerWidth: width,\n outerHeight: height,\n padding,\n availableWidth,\n availableHeight,\n vBoxMaxWidth: availableWidth / 2 / visibleVerticalBoxCount,\n hBoxMaxHeight: availableHeight / 2\n });\n const maxPadding = Object.assign({}, padding);\n updateMaxPadding(maxPadding, toPadding(minPadding));\n const chartArea = Object.assign({\n maxPadding,\n w: availableWidth,\n h: availableHeight,\n x: padding.left,\n y: padding.top\n }, padding);\n const stacks = setLayoutDims(verticalBoxes.concat(horizontalBoxes), params);\n fitBoxes(boxes.fullSize, chartArea, params, stacks);\n fitBoxes(verticalBoxes, chartArea, params, stacks);\n if (fitBoxes(horizontalBoxes, chartArea, params, stacks)) {\n fitBoxes(verticalBoxes, chartArea, params, stacks);\n }\n handleMaxPadding(chartArea);\n placeBoxes(boxes.leftAndTop, chartArea, params, stacks);\n chartArea.x += chartArea.w;\n chartArea.y += chartArea.h;\n placeBoxes(boxes.rightAndBottom, chartArea, params, stacks);\n chart.chartArea = {\n left: chartArea.left,\n top: chartArea.top,\n right: chartArea.left + chartArea.w,\n bottom: chartArea.top + chartArea.h,\n height: chartArea.h,\n width: chartArea.w,\n };\n each(boxes.chartArea, (layout) => {\n const box = layout.box;\n Object.assign(box, chart.chartArea);\n box.update(chartArea.w, chartArea.h, {left: 0, top: 0, right: 0, bottom: 0});\n });\n }\n};\n\nclass BasePlatform {\n acquireContext(canvas, aspectRatio) {}\n releaseContext(context) {\n return false;\n }\n addEventListener(chart, type, listener) {}\n removeEventListener(chart, type, listener) {}\n getDevicePixelRatio() {\n return 1;\n }\n getMaximumSize(element, width, height, aspectRatio) {\n width = Math.max(0, width || element.width);\n height = height || element.height;\n return {\n width,\n height: Math.max(0, aspectRatio ? Math.floor(width / aspectRatio) : height)\n };\n }\n isAttached(canvas) {\n return true;\n }\n updateConfig(config) {\n }\n}\n\nclass BasicPlatform extends BasePlatform {\n acquireContext(item) {\n return item && item.getContext && item.getContext('2d') || null;\n }\n updateConfig(config) {\n config.options.animation = false;\n }\n}\n\nconst EXPANDO_KEY = '$chartjs';\nconst EVENT_TYPES = {\n touchstart: 'mousedown',\n touchmove: 'mousemove',\n touchend: 'mouseup',\n pointerenter: 'mouseenter',\n pointerdown: 'mousedown',\n pointermove: 'mousemove',\n pointerup: 'mouseup',\n pointerleave: 'mouseout',\n pointerout: 'mouseout'\n};\nconst isNullOrEmpty = value => value === null || value === '';\nfunction initCanvas(canvas, aspectRatio) {\n const style = canvas.style;\n const renderHeight = canvas.getAttribute('height');\n const renderWidth = canvas.getAttribute('width');\n canvas[EXPANDO_KEY] = {\n initial: {\n height: renderHeight,\n width: renderWidth,\n style: {\n display: style.display,\n height: style.height,\n width: style.width\n }\n }\n };\n style.display = style.display || 'block';\n style.boxSizing = style.boxSizing || 'border-box';\n if (isNullOrEmpty(renderWidth)) {\n const displayWidth = readUsedSize(canvas, 'width');\n if (displayWidth !== undefined) {\n canvas.width = displayWidth;\n }\n }\n if (isNullOrEmpty(renderHeight)) {\n if (canvas.style.height === '') {\n canvas.height = canvas.width / (aspectRatio || 2);\n } else {\n const displayHeight = readUsedSize(canvas, 'height');\n if (displayHeight !== undefined) {\n canvas.height = displayHeight;\n }\n }\n }\n return canvas;\n}\nconst eventListenerOptions = supportsEventListenerOptions ? {passive: true} : false;\nfunction addListener(node, type, listener) {\n node.addEventListener(type, listener, eventListenerOptions);\n}\nfunction removeListener(chart, type, listener) {\n chart.canvas.removeEventListener(type, listener, eventListenerOptions);\n}\nfunction fromNativeEvent(event, chart) {\n const type = EVENT_TYPES[event.type] || event.type;\n const {x, y} = getRelativePosition(event, chart);\n return {\n type,\n chart,\n native: event,\n x: x !== undefined ? x : null,\n y: y !== undefined ? y : null,\n };\n}\nfunction nodeListContains(nodeList, canvas) {\n for (const node of nodeList) {\n if (node === canvas || node.contains(canvas)) {\n return true;\n }\n }\n}\nfunction createAttachObserver(chart, type, listener) {\n const canvas = chart.canvas;\n const observer = new MutationObserver(entries => {\n let trigger = false;\n for (const entry of entries) {\n trigger = trigger || nodeListContains(entry.addedNodes, canvas);\n trigger = trigger && !nodeListContains(entry.removedNodes, canvas);\n }\n if (trigger) {\n listener();\n }\n });\n observer.observe(document, {childList: true, subtree: true});\n return observer;\n}\nfunction createDetachObserver(chart, type, listener) {\n const canvas = chart.canvas;\n const observer = new MutationObserver(entries => {\n let trigger = false;\n for (const entry of entries) {\n trigger = trigger || nodeListContains(entry.removedNodes, canvas);\n trigger = trigger && !nodeListContains(entry.addedNodes, canvas);\n }\n if (trigger) {\n listener();\n }\n });\n observer.observe(document, {childList: true, subtree: true});\n return observer;\n}\nconst drpListeningCharts = new Map();\nlet oldDevicePixelRatio = 0;\nfunction onWindowResize() {\n const dpr = window.devicePixelRatio;\n if (dpr === oldDevicePixelRatio) {\n return;\n }\n oldDevicePixelRatio = dpr;\n drpListeningCharts.forEach((resize, chart) => {\n if (chart.currentDevicePixelRatio !== dpr) {\n resize();\n }\n });\n}\nfunction listenDevicePixelRatioChanges(chart, resize) {\n if (!drpListeningCharts.size) {\n window.addEventListener('resize', onWindowResize);\n }\n drpListeningCharts.set(chart, resize);\n}\nfunction unlistenDevicePixelRatioChanges(chart) {\n drpListeningCharts.delete(chart);\n if (!drpListeningCharts.size) {\n window.removeEventListener('resize', onWindowResize);\n }\n}\nfunction createResizeObserver(chart, type, listener) {\n const canvas = chart.canvas;\n const container = canvas && _getParentNode(canvas);\n if (!container) {\n return;\n }\n const resize = throttled((width, height) => {\n const w = container.clientWidth;\n listener(width, height);\n if (w < container.clientWidth) {\n listener();\n }\n }, window);\n const observer = new ResizeObserver(entries => {\n const entry = entries[0];\n const width = entry.contentRect.width;\n const height = entry.contentRect.height;\n if (width === 0 && height === 0) {\n return;\n }\n resize(width, height);\n });\n observer.observe(container);\n listenDevicePixelRatioChanges(chart, resize);\n return observer;\n}\nfunction releaseObserver(chart, type, observer) {\n if (observer) {\n observer.disconnect();\n }\n if (type === 'resize') {\n unlistenDevicePixelRatioChanges(chart);\n }\n}\nfunction createProxyAndListen(chart, type, listener) {\n const canvas = chart.canvas;\n const proxy = throttled((event) => {\n if (chart.ctx !== null) {\n listener(fromNativeEvent(event, chart));\n }\n }, chart, (args) => {\n const event = args[0];\n return [event, event.offsetX, event.offsetY];\n });\n addListener(canvas, type, proxy);\n return proxy;\n}\nclass DomPlatform extends BasePlatform {\n acquireContext(canvas, aspectRatio) {\n const context = canvas && canvas.getContext && canvas.getContext('2d');\n if (context && context.canvas === canvas) {\n initCanvas(canvas, aspectRatio);\n return context;\n }\n return null;\n }\n releaseContext(context) {\n const canvas = context.canvas;\n if (!canvas[EXPANDO_KEY]) {\n return false;\n }\n const initial = canvas[EXPANDO_KEY].initial;\n ['height', 'width'].forEach((prop) => {\n const value = initial[prop];\n if (isNullOrUndef(value)) {\n canvas.removeAttribute(prop);\n } else {\n canvas.setAttribute(prop, value);\n }\n });\n const style = initial.style || {};\n Object.keys(style).forEach((key) => {\n canvas.style[key] = style[key];\n });\n canvas.width = canvas.width;\n delete canvas[EXPANDO_KEY];\n return true;\n }\n addEventListener(chart, type, listener) {\n this.removeEventListener(chart, type);\n const proxies = chart.$proxies || (chart.$proxies = {});\n const handlers = {\n attach: createAttachObserver,\n detach: createDetachObserver,\n resize: createResizeObserver\n };\n const handler = handlers[type] || createProxyAndListen;\n proxies[type] = handler(chart, type, listener);\n }\n removeEventListener(chart, type) {\n const proxies = chart.$proxies || (chart.$proxies = {});\n const proxy = proxies[type];\n if (!proxy) {\n return;\n }\n const handlers = {\n attach: releaseObserver,\n detach: releaseObserver,\n resize: releaseObserver\n };\n const handler = handlers[type] || removeListener;\n handler(chart, type, proxy);\n proxies[type] = undefined;\n }\n getDevicePixelRatio() {\n return window.devicePixelRatio;\n }\n getMaximumSize(canvas, width, height, aspectRatio) {\n return getMaximumSize(canvas, width, height, aspectRatio);\n }\n isAttached(canvas) {\n const container = _getParentNode(canvas);\n return !!(container && container.isConnected);\n }\n}\n\nfunction _detectPlatform(canvas) {\n if (!_isDomSupported() || (typeof OffscreenCanvas !== 'undefined' && canvas instanceof OffscreenCanvas)) {\n return BasicPlatform;\n }\n return DomPlatform;\n}\n\nclass PluginService {\n constructor() {\n this._init = [];\n }\n notify(chart, hook, args, filter) {\n if (hook === 'beforeInit') {\n this._init = this._createDescriptors(chart, true);\n this._notify(this._init, chart, 'install');\n }\n const descriptors = filter ? this._descriptors(chart).filter(filter) : this._descriptors(chart);\n const result = this._notify(descriptors, chart, hook, args);\n if (hook === 'afterDestroy') {\n this._notify(descriptors, chart, 'stop');\n this._notify(this._init, chart, 'uninstall');\n }\n return result;\n }\n _notify(descriptors, chart, hook, args) {\n args = args || {};\n for (const descriptor of descriptors) {\n const plugin = descriptor.plugin;\n const method = plugin[hook];\n const params = [chart, args, descriptor.options];\n if (callback(method, params, plugin) === false && args.cancelable) {\n return false;\n }\n }\n return true;\n }\n invalidate() {\n if (!isNullOrUndef(this._cache)) {\n this._oldCache = this._cache;\n this._cache = undefined;\n }\n }\n _descriptors(chart) {\n if (this._cache) {\n return this._cache;\n }\n const descriptors = this._cache = this._createDescriptors(chart);\n this._notifyStateChanges(chart);\n return descriptors;\n }\n _createDescriptors(chart, all) {\n const config = chart && chart.config;\n const options = valueOrDefault(config.options && config.options.plugins, {});\n const plugins = allPlugins(config);\n return options === false && !all ? [] : createDescriptors(chart, plugins, options, all);\n }\n _notifyStateChanges(chart) {\n const previousDescriptors = this._oldCache || [];\n const descriptors = this._cache;\n const diff = (a, b) => a.filter(x => !b.some(y => x.plugin.id === y.plugin.id));\n this._notify(diff(previousDescriptors, descriptors), chart, 'stop');\n this._notify(diff(descriptors, previousDescriptors), chart, 'start');\n }\n}\nfunction allPlugins(config) {\n const localIds = {};\n const plugins = [];\n const keys = Object.keys(registry.plugins.items);\n for (let i = 0; i < keys.length; i++) {\n plugins.push(registry.getPlugin(keys[i]));\n }\n const local = config.plugins || [];\n for (let i = 0; i < local.length; i++) {\n const plugin = local[i];\n if (plugins.indexOf(plugin) === -1) {\n plugins.push(plugin);\n localIds[plugin.id] = true;\n }\n }\n return {plugins, localIds};\n}\nfunction getOpts(options, all) {\n if (!all && options === false) {\n return null;\n }\n if (options === true) {\n return {};\n }\n return options;\n}\nfunction createDescriptors(chart, {plugins, localIds}, options, all) {\n const result = [];\n const context = chart.getContext();\n for (const plugin of plugins) {\n const id = plugin.id;\n const opts = getOpts(options[id], all);\n if (opts === null) {\n continue;\n }\n result.push({\n plugin,\n options: pluginOpts(chart.config, {plugin, local: localIds[id]}, opts, context)\n });\n }\n return result;\n}\nfunction pluginOpts(config, {plugin, local}, opts, context) {\n const keys = config.pluginScopeKeys(plugin);\n const scopes = config.getOptionScopes(opts, keys);\n if (local && plugin.defaults) {\n scopes.push(plugin.defaults);\n }\n return config.createResolver(scopes, context, [''], {\n scriptable: false,\n indexable: false,\n allKeys: true\n });\n}\n\nfunction getIndexAxis(type, options) {\n const datasetDefaults = defaults.datasets[type] || {};\n const datasetOptions = (options.datasets || {})[type] || {};\n return datasetOptions.indexAxis || options.indexAxis || datasetDefaults.indexAxis || 'x';\n}\nfunction getAxisFromDefaultScaleID(id, indexAxis) {\n let axis = id;\n if (id === '_index_') {\n axis = indexAxis;\n } else if (id === '_value_') {\n axis = indexAxis === 'x' ? 'y' : 'x';\n }\n return axis;\n}\nfunction getDefaultScaleIDFromAxis(axis, indexAxis) {\n return axis === indexAxis ? '_index_' : '_value_';\n}\nfunction axisFromPosition(position) {\n if (position === 'top' || position === 'bottom') {\n return 'x';\n }\n if (position === 'left' || position === 'right') {\n return 'y';\n }\n}\nfunction determineAxis(id, scaleOptions) {\n if (id === 'x' || id === 'y') {\n return id;\n }\n return scaleOptions.axis || axisFromPosition(scaleOptions.position) || id.charAt(0).toLowerCase();\n}\nfunction mergeScaleConfig(config, options) {\n const chartDefaults = overrides[config.type] || {scales: {}};\n const configScales = options.scales || {};\n const chartIndexAxis = getIndexAxis(config.type, options);\n const firstIDs = Object.create(null);\n const scales = Object.create(null);\n Object.keys(configScales).forEach(id => {\n const scaleConf = configScales[id];\n if (!isObject(scaleConf)) {\n return console.error(`Invalid scale configuration for scale: ${id}`);\n }\n if (scaleConf._proxy) {\n return console.warn(`Ignoring resolver passed as options for scale: ${id}`);\n }\n const axis = determineAxis(id, scaleConf);\n const defaultId = getDefaultScaleIDFromAxis(axis, chartIndexAxis);\n const defaultScaleOptions = chartDefaults.scales || {};\n firstIDs[axis] = firstIDs[axis] || id;\n scales[id] = mergeIf(Object.create(null), [{axis}, scaleConf, defaultScaleOptions[axis], defaultScaleOptions[defaultId]]);\n });\n config.data.datasets.forEach(dataset => {\n const type = dataset.type || config.type;\n const indexAxis = dataset.indexAxis || getIndexAxis(type, options);\n const datasetDefaults = overrides[type] || {};\n const defaultScaleOptions = datasetDefaults.scales || {};\n Object.keys(defaultScaleOptions).forEach(defaultID => {\n const axis = getAxisFromDefaultScaleID(defaultID, indexAxis);\n const id = dataset[axis + 'AxisID'] || firstIDs[axis] || axis;\n scales[id] = scales[id] || Object.create(null);\n mergeIf(scales[id], [{axis}, configScales[id], defaultScaleOptions[defaultID]]);\n });\n });\n Object.keys(scales).forEach(key => {\n const scale = scales[key];\n mergeIf(scale, [defaults.scales[scale.type], defaults.scale]);\n });\n return scales;\n}\nfunction initOptions(config) {\n const options = config.options || (config.options = {});\n options.plugins = valueOrDefault(options.plugins, {});\n options.scales = mergeScaleConfig(config, options);\n}\nfunction initData(data) {\n data = data || {};\n data.datasets = data.datasets || [];\n data.labels = data.labels || [];\n return data;\n}\nfunction initConfig(config) {\n config = config || {};\n config.data = initData(config.data);\n initOptions(config);\n return config;\n}\nconst keyCache = new Map();\nconst keysCached = new Set();\nfunction cachedKeys(cacheKey, generate) {\n let keys = keyCache.get(cacheKey);\n if (!keys) {\n keys = generate();\n keyCache.set(cacheKey, keys);\n keysCached.add(keys);\n }\n return keys;\n}\nconst addIfFound = (set, obj, key) => {\n const opts = resolveObjectKey(obj, key);\n if (opts !== undefined) {\n set.add(opts);\n }\n};\nclass Config {\n constructor(config) {\n this._config = initConfig(config);\n this._scopeCache = new Map();\n this._resolverCache = new Map();\n }\n get platform() {\n return this._config.platform;\n }\n get type() {\n return this._config.type;\n }\n set type(type) {\n this._config.type = type;\n }\n get data() {\n return this._config.data;\n }\n set data(data) {\n this._config.data = initData(data);\n }\n get options() {\n return this._config.options;\n }\n set options(options) {\n this._config.options = options;\n }\n get plugins() {\n return this._config.plugins;\n }\n update() {\n const config = this._config;\n this.clearCache();\n initOptions(config);\n }\n clearCache() {\n this._scopeCache.clear();\n this._resolverCache.clear();\n }\n datasetScopeKeys(datasetType) {\n return cachedKeys(datasetType,\n () => [[\n `datasets.${datasetType}`,\n ''\n ]]);\n }\n datasetAnimationScopeKeys(datasetType, transition) {\n return cachedKeys(`${datasetType}.transition.${transition}`,\n () => [\n [\n `datasets.${datasetType}.transitions.${transition}`,\n `transitions.${transition}`,\n ],\n [\n `datasets.${datasetType}`,\n ''\n ]\n ]);\n }\n datasetElementScopeKeys(datasetType, elementType) {\n return cachedKeys(`${datasetType}-${elementType}`,\n () => [[\n `datasets.${datasetType}.elements.${elementType}`,\n `datasets.${datasetType}`,\n `elements.${elementType}`,\n ''\n ]]);\n }\n pluginScopeKeys(plugin) {\n const id = plugin.id;\n const type = this.type;\n return cachedKeys(`${type}-plugin-${id}`,\n () => [[\n `plugins.${id}`,\n ...plugin.additionalOptionScopes || [],\n ]]);\n }\n _cachedScopes(mainScope, resetCache) {\n const _scopeCache = this._scopeCache;\n let cache = _scopeCache.get(mainScope);\n if (!cache || resetCache) {\n cache = new Map();\n _scopeCache.set(mainScope, cache);\n }\n return cache;\n }\n getOptionScopes(mainScope, keyLists, resetCache) {\n const {options, type} = this;\n const cache = this._cachedScopes(mainScope, resetCache);\n const cached = cache.get(keyLists);\n if (cached) {\n return cached;\n }\n const scopes = new Set();\n keyLists.forEach(keys => {\n if (mainScope) {\n scopes.add(mainScope);\n keys.forEach(key => addIfFound(scopes, mainScope, key));\n }\n keys.forEach(key => addIfFound(scopes, options, key));\n keys.forEach(key => addIfFound(scopes, overrides[type] || {}, key));\n keys.forEach(key => addIfFound(scopes, defaults, key));\n keys.forEach(key => addIfFound(scopes, descriptors, key));\n });\n const array = Array.from(scopes);\n if (array.length === 0) {\n array.push(Object.create(null));\n }\n if (keysCached.has(keyLists)) {\n cache.set(keyLists, array);\n }\n return array;\n }\n chartOptionScopes() {\n const {options, type} = this;\n return [\n options,\n overrides[type] || {},\n defaults.datasets[type] || {},\n {type},\n defaults,\n descriptors\n ];\n }\n resolveNamedOptions(scopes, names, context, prefixes = ['']) {\n const result = {$shared: true};\n const {resolver, subPrefixes} = getResolver(this._resolverCache, scopes, prefixes);\n let options = resolver;\n if (needContext(resolver, names)) {\n result.$shared = false;\n context = isFunction(context) ? context() : context;\n const subResolver = this.createResolver(scopes, context, subPrefixes);\n options = _attachContext(resolver, context, subResolver);\n }\n for (const prop of names) {\n result[prop] = options[prop];\n }\n return result;\n }\n createResolver(scopes, context, prefixes = [''], descriptorDefaults) {\n const {resolver} = getResolver(this._resolverCache, scopes, prefixes);\n return isObject(context)\n ? _attachContext(resolver, context, undefined, descriptorDefaults)\n : resolver;\n }\n}\nfunction getResolver(resolverCache, scopes, prefixes) {\n let cache = resolverCache.get(scopes);\n if (!cache) {\n cache = new Map();\n resolverCache.set(scopes, cache);\n }\n const cacheKey = prefixes.join();\n let cached = cache.get(cacheKey);\n if (!cached) {\n const resolver = _createResolver(scopes, prefixes);\n cached = {\n resolver,\n subPrefixes: prefixes.filter(p => !p.toLowerCase().includes('hover'))\n };\n cache.set(cacheKey, cached);\n }\n return cached;\n}\nconst hasFunction = value => isObject(value)\n && Object.getOwnPropertyNames(value).reduce((acc, key) => acc || isFunction(value[key]), false);\nfunction needContext(proxy, names) {\n const {isScriptable, isIndexable} = _descriptors(proxy);\n for (const prop of names) {\n const scriptable = isScriptable(prop);\n const indexable = isIndexable(prop);\n const value = (indexable || scriptable) && proxy[prop];\n if ((scriptable && (isFunction(value) || hasFunction(value)))\n || (indexable && isArray(value))) {\n return true;\n }\n }\n return false;\n}\n\nvar version = \"3.9.1\";\n\nconst KNOWN_POSITIONS = ['top', 'bottom', 'left', 'right', 'chartArea'];\nfunction positionIsHorizontal(position, axis) {\n return position === 'top' || position === 'bottom' || (KNOWN_POSITIONS.indexOf(position) === -1 && axis === 'x');\n}\nfunction compare2Level(l1, l2) {\n return function(a, b) {\n return a[l1] === b[l1]\n ? a[l2] - b[l2]\n : a[l1] - b[l1];\n };\n}\nfunction onAnimationsComplete(context) {\n const chart = context.chart;\n const animationOptions = chart.options.animation;\n chart.notifyPlugins('afterRender');\n callback(animationOptions && animationOptions.onComplete, [context], chart);\n}\nfunction onAnimationProgress(context) {\n const chart = context.chart;\n const animationOptions = chart.options.animation;\n callback(animationOptions && animationOptions.onProgress, [context], chart);\n}\nfunction getCanvas(item) {\n if (_isDomSupported() && typeof item === 'string') {\n item = document.getElementById(item);\n } else if (item && item.length) {\n item = item[0];\n }\n if (item && item.canvas) {\n item = item.canvas;\n }\n return item;\n}\nconst instances = {};\nconst getChart = (key) => {\n const canvas = getCanvas(key);\n return Object.values(instances).filter((c) => c.canvas === canvas).pop();\n};\nfunction moveNumericKeys(obj, start, move) {\n const keys = Object.keys(obj);\n for (const key of keys) {\n const intKey = +key;\n if (intKey >= start) {\n const value = obj[key];\n delete obj[key];\n if (move > 0 || intKey > start) {\n obj[intKey + move] = value;\n }\n }\n }\n}\nfunction determineLastEvent(e, lastEvent, inChartArea, isClick) {\n if (!inChartArea || e.type === 'mouseout') {\n return null;\n }\n if (isClick) {\n return lastEvent;\n }\n return e;\n}\nclass Chart {\n constructor(item, userConfig) {\n const config = this.config = new Config(userConfig);\n const initialCanvas = getCanvas(item);\n const existingChart = getChart(initialCanvas);\n if (existingChart) {\n throw new Error(\n 'Canvas is already in use. Chart with ID \\'' + existingChart.id + '\\'' +\n\t\t\t\t' must be destroyed before the canvas with ID \\'' + existingChart.canvas.id + '\\' can be reused.'\n );\n }\n const options = config.createResolver(config.chartOptionScopes(), this.getContext());\n this.platform = new (config.platform || _detectPlatform(initialCanvas))();\n this.platform.updateConfig(config);\n const context = this.platform.acquireContext(initialCanvas, options.aspectRatio);\n const canvas = context && context.canvas;\n const height = canvas && canvas.height;\n const width = canvas && canvas.width;\n this.id = uid();\n this.ctx = context;\n this.canvas = canvas;\n this.width = width;\n this.height = height;\n this._options = options;\n this._aspectRatio = this.aspectRatio;\n this._layers = [];\n this._metasets = [];\n this._stacks = undefined;\n this.boxes = [];\n this.currentDevicePixelRatio = undefined;\n this.chartArea = undefined;\n this._active = [];\n this._lastEvent = undefined;\n this._listeners = {};\n this._responsiveListeners = undefined;\n this._sortedMetasets = [];\n this.scales = {};\n this._plugins = new PluginService();\n this.$proxies = {};\n this._hiddenIndices = {};\n this.attached = false;\n this._animationsDisabled = undefined;\n this.$context = undefined;\n this._doResize = debounce(mode => this.update(mode), options.resizeDelay || 0);\n this._dataChanges = [];\n instances[this.id] = this;\n if (!context || !canvas) {\n console.error(\"Failed to create chart: can't acquire context from the given item\");\n return;\n }\n animator.listen(this, 'complete', onAnimationsComplete);\n animator.listen(this, 'progress', onAnimationProgress);\n this._initialize();\n if (this.attached) {\n this.update();\n }\n }\n get aspectRatio() {\n const {options: {aspectRatio, maintainAspectRatio}, width, height, _aspectRatio} = this;\n if (!isNullOrUndef(aspectRatio)) {\n return aspectRatio;\n }\n if (maintainAspectRatio && _aspectRatio) {\n return _aspectRatio;\n }\n return height ? width / height : null;\n }\n get data() {\n return this.config.data;\n }\n set data(data) {\n this.config.data = data;\n }\n get options() {\n return this._options;\n }\n set options(options) {\n this.config.options = options;\n }\n _initialize() {\n this.notifyPlugins('beforeInit');\n if (this.options.responsive) {\n this.resize();\n } else {\n retinaScale(this, this.options.devicePixelRatio);\n }\n this.bindEvents();\n this.notifyPlugins('afterInit');\n return this;\n }\n clear() {\n clearCanvas(this.canvas, this.ctx);\n return this;\n }\n stop() {\n animator.stop(this);\n return this;\n }\n resize(width, height) {\n if (!animator.running(this)) {\n this._resize(width, height);\n } else {\n this._resizeBeforeDraw = {width, height};\n }\n }\n _resize(width, height) {\n const options = this.options;\n const canvas = this.canvas;\n const aspectRatio = options.maintainAspectRatio && this.aspectRatio;\n const newSize = this.platform.getMaximumSize(canvas, width, height, aspectRatio);\n const newRatio = options.devicePixelRatio || this.platform.getDevicePixelRatio();\n const mode = this.width ? 'resize' : 'attach';\n this.width = newSize.width;\n this.height = newSize.height;\n this._aspectRatio = this.aspectRatio;\n if (!retinaScale(this, newRatio, true)) {\n return;\n }\n this.notifyPlugins('resize', {size: newSize});\n callback(options.onResize, [this, newSize], this);\n if (this.attached) {\n if (this._doResize(mode)) {\n this.render();\n }\n }\n }\n ensureScalesHaveIDs() {\n const options = this.options;\n const scalesOptions = options.scales || {};\n each(scalesOptions, (axisOptions, axisID) => {\n axisOptions.id = axisID;\n });\n }\n buildOrUpdateScales() {\n const options = this.options;\n const scaleOpts = options.scales;\n const scales = this.scales;\n const updated = Object.keys(scales).reduce((obj, id) => {\n obj[id] = false;\n return obj;\n }, {});\n let items = [];\n if (scaleOpts) {\n items = items.concat(\n Object.keys(scaleOpts).map((id) => {\n const scaleOptions = scaleOpts[id];\n const axis = determineAxis(id, scaleOptions);\n const isRadial = axis === 'r';\n const isHorizontal = axis === 'x';\n return {\n options: scaleOptions,\n dposition: isRadial ? 'chartArea' : isHorizontal ? 'bottom' : 'left',\n dtype: isRadial ? 'radialLinear' : isHorizontal ? 'category' : 'linear'\n };\n })\n );\n }\n each(items, (item) => {\n const scaleOptions = item.options;\n const id = scaleOptions.id;\n const axis = determineAxis(id, scaleOptions);\n const scaleType = valueOrDefault(scaleOptions.type, item.dtype);\n if (scaleOptions.position === undefined || positionIsHorizontal(scaleOptions.position, axis) !== positionIsHorizontal(item.dposition)) {\n scaleOptions.position = item.dposition;\n }\n updated[id] = true;\n let scale = null;\n if (id in scales && scales[id].type === scaleType) {\n scale = scales[id];\n } else {\n const scaleClass = registry.getScale(scaleType);\n scale = new scaleClass({\n id,\n type: scaleType,\n ctx: this.ctx,\n chart: this\n });\n scales[scale.id] = scale;\n }\n scale.init(scaleOptions, options);\n });\n each(updated, (hasUpdated, id) => {\n if (!hasUpdated) {\n delete scales[id];\n }\n });\n each(scales, (scale) => {\n layouts.configure(this, scale, scale.options);\n layouts.addBox(this, scale);\n });\n }\n _updateMetasets() {\n const metasets = this._metasets;\n const numData = this.data.datasets.length;\n const numMeta = metasets.length;\n metasets.sort((a, b) => a.index - b.index);\n if (numMeta > numData) {\n for (let i = numData; i < numMeta; ++i) {\n this._destroyDatasetMeta(i);\n }\n metasets.splice(numData, numMeta - numData);\n }\n this._sortedMetasets = metasets.slice(0).sort(compare2Level('order', 'index'));\n }\n _removeUnreferencedMetasets() {\n const {_metasets: metasets, data: {datasets}} = this;\n if (metasets.length > datasets.length) {\n delete this._stacks;\n }\n metasets.forEach((meta, index) => {\n if (datasets.filter(x => x === meta._dataset).length === 0) {\n this._destroyDatasetMeta(index);\n }\n });\n }\n buildOrUpdateControllers() {\n const newControllers = [];\n const datasets = this.data.datasets;\n let i, ilen;\n this._removeUnreferencedMetasets();\n for (i = 0, ilen = datasets.length; i < ilen; i++) {\n const dataset = datasets[i];\n let meta = this.getDatasetMeta(i);\n const type = dataset.type || this.config.type;\n if (meta.type && meta.type !== type) {\n this._destroyDatasetMeta(i);\n meta = this.getDatasetMeta(i);\n }\n meta.type = type;\n meta.indexAxis = dataset.indexAxis || getIndexAxis(type, this.options);\n meta.order = dataset.order || 0;\n meta.index = i;\n meta.label = '' + dataset.label;\n meta.visible = this.isDatasetVisible(i);\n if (meta.controller) {\n meta.controller.updateIndex(i);\n meta.controller.linkScales();\n } else {\n const ControllerClass = registry.getController(type);\n const {datasetElementType, dataElementType} = defaults.datasets[type];\n Object.assign(ControllerClass.prototype, {\n dataElementType: registry.getElement(dataElementType),\n datasetElementType: datasetElementType && registry.getElement(datasetElementType)\n });\n meta.controller = new ControllerClass(this, i);\n newControllers.push(meta.controller);\n }\n }\n this._updateMetasets();\n return newControllers;\n }\n _resetElements() {\n each(this.data.datasets, (dataset, datasetIndex) => {\n this.getDatasetMeta(datasetIndex).controller.reset();\n }, this);\n }\n reset() {\n this._resetElements();\n this.notifyPlugins('reset');\n }\n update(mode) {\n const config = this.config;\n config.update();\n const options = this._options = config.createResolver(config.chartOptionScopes(), this.getContext());\n const animsDisabled = this._animationsDisabled = !options.animation;\n this._updateScales();\n this._checkEventBindings();\n this._updateHiddenIndices();\n this._plugins.invalidate();\n if (this.notifyPlugins('beforeUpdate', {mode, cancelable: true}) === false) {\n return;\n }\n const newControllers = this.buildOrUpdateControllers();\n this.notifyPlugins('beforeElementsUpdate');\n let minPadding = 0;\n for (let i = 0, ilen = this.data.datasets.length; i < ilen; i++) {\n const {controller} = this.getDatasetMeta(i);\n const reset = !animsDisabled && newControllers.indexOf(controller) === -1;\n controller.buildOrUpdateElements(reset);\n minPadding = Math.max(+controller.getMaxOverflow(), minPadding);\n }\n minPadding = this._minPadding = options.layout.autoPadding ? minPadding : 0;\n this._updateLayout(minPadding);\n if (!animsDisabled) {\n each(newControllers, (controller) => {\n controller.reset();\n });\n }\n this._updateDatasets(mode);\n this.notifyPlugins('afterUpdate', {mode});\n this._layers.sort(compare2Level('z', '_idx'));\n const {_active, _lastEvent} = this;\n if (_lastEvent) {\n this._eventHandler(_lastEvent, true);\n } else if (_active.length) {\n this._updateHoverStyles(_active, _active, true);\n }\n this.render();\n }\n _updateScales() {\n each(this.scales, (scale) => {\n layouts.removeBox(this, scale);\n });\n this.ensureScalesHaveIDs();\n this.buildOrUpdateScales();\n }\n _checkEventBindings() {\n const options = this.options;\n const existingEvents = new Set(Object.keys(this._listeners));\n const newEvents = new Set(options.events);\n if (!setsEqual(existingEvents, newEvents) || !!this._responsiveListeners !== options.responsive) {\n this.unbindEvents();\n this.bindEvents();\n }\n }\n _updateHiddenIndices() {\n const {_hiddenIndices} = this;\n const changes = this._getUniformDataChanges() || [];\n for (const {method, start, count} of changes) {\n const move = method === '_removeElements' ? -count : count;\n moveNumericKeys(_hiddenIndices, start, move);\n }\n }\n _getUniformDataChanges() {\n const _dataChanges = this._dataChanges;\n if (!_dataChanges || !_dataChanges.length) {\n return;\n }\n this._dataChanges = [];\n const datasetCount = this.data.datasets.length;\n const makeSet = (idx) => new Set(\n _dataChanges\n .filter(c => c[0] === idx)\n .map((c, i) => i + ',' + c.splice(1).join(','))\n );\n const changeSet = makeSet(0);\n for (let i = 1; i < datasetCount; i++) {\n if (!setsEqual(changeSet, makeSet(i))) {\n return;\n }\n }\n return Array.from(changeSet)\n .map(c => c.split(','))\n .map(a => ({method: a[1], start: +a[2], count: +a[3]}));\n }\n _updateLayout(minPadding) {\n if (this.notifyPlugins('beforeLayout', {cancelable: true}) === false) {\n return;\n }\n layouts.update(this, this.width, this.height, minPadding);\n const area = this.chartArea;\n const noArea = area.width <= 0 || area.height <= 0;\n this._layers = [];\n each(this.boxes, (box) => {\n if (noArea && box.position === 'chartArea') {\n return;\n }\n if (box.configure) {\n box.configure();\n }\n this._layers.push(...box._layers());\n }, this);\n this._layers.forEach((item, index) => {\n item._idx = index;\n });\n this.notifyPlugins('afterLayout');\n }\n _updateDatasets(mode) {\n if (this.notifyPlugins('beforeDatasetsUpdate', {mode, cancelable: true}) === false) {\n return;\n }\n for (let i = 0, ilen = this.data.datasets.length; i < ilen; ++i) {\n this.getDatasetMeta(i).controller.configure();\n }\n for (let i = 0, ilen = this.data.datasets.length; i < ilen; ++i) {\n this._updateDataset(i, isFunction(mode) ? mode({datasetIndex: i}) : mode);\n }\n this.notifyPlugins('afterDatasetsUpdate', {mode});\n }\n _updateDataset(index, mode) {\n const meta = this.getDatasetMeta(index);\n const args = {meta, index, mode, cancelable: true};\n if (this.notifyPlugins('beforeDatasetUpdate', args) === false) {\n return;\n }\n meta.controller._update(mode);\n args.cancelable = false;\n this.notifyPlugins('afterDatasetUpdate', args);\n }\n render() {\n if (this.notifyPlugins('beforeRender', {cancelable: true}) === false) {\n return;\n }\n if (animator.has(this)) {\n if (this.attached && !animator.running(this)) {\n animator.start(this);\n }\n } else {\n this.draw();\n onAnimationsComplete({chart: this});\n }\n }\n draw() {\n let i;\n if (this._resizeBeforeDraw) {\n const {width, height} = this._resizeBeforeDraw;\n this._resize(width, height);\n this._resizeBeforeDraw = null;\n }\n this.clear();\n if (this.width <= 0 || this.height <= 0) {\n return;\n }\n if (this.notifyPlugins('beforeDraw', {cancelable: true}) === false) {\n return;\n }\n const layers = this._layers;\n for (i = 0; i < layers.length && layers[i].z <= 0; ++i) {\n layers[i].draw(this.chartArea);\n }\n this._drawDatasets();\n for (; i < layers.length; ++i) {\n layers[i].draw(this.chartArea);\n }\n this.notifyPlugins('afterDraw');\n }\n _getSortedDatasetMetas(filterVisible) {\n const metasets = this._sortedMetasets;\n const result = [];\n let i, ilen;\n for (i = 0, ilen = metasets.length; i < ilen; ++i) {\n const meta = metasets[i];\n if (!filterVisible || meta.visible) {\n result.push(meta);\n }\n }\n return result;\n }\n getSortedVisibleDatasetMetas() {\n return this._getSortedDatasetMetas(true);\n }\n _drawDatasets() {\n if (this.notifyPlugins('beforeDatasetsDraw', {cancelable: true}) === false) {\n return;\n }\n const metasets = this.getSortedVisibleDatasetMetas();\n for (let i = metasets.length - 1; i >= 0; --i) {\n this._drawDataset(metasets[i]);\n }\n this.notifyPlugins('afterDatasetsDraw');\n }\n _drawDataset(meta) {\n const ctx = this.ctx;\n const clip = meta._clip;\n const useClip = !clip.disabled;\n const area = this.chartArea;\n const args = {\n meta,\n index: meta.index,\n cancelable: true\n };\n if (this.notifyPlugins('beforeDatasetDraw', args) === false) {\n return;\n }\n if (useClip) {\n clipArea(ctx, {\n left: clip.left === false ? 0 : area.left - clip.left,\n right: clip.right === false ? this.width : area.right + clip.right,\n top: clip.top === false ? 0 : area.top - clip.top,\n bottom: clip.bottom === false ? this.height : area.bottom + clip.bottom\n });\n }\n meta.controller.draw();\n if (useClip) {\n unclipArea(ctx);\n }\n args.cancelable = false;\n this.notifyPlugins('afterDatasetDraw', args);\n }\n isPointInArea(point) {\n return _isPointInArea(point, this.chartArea, this._minPadding);\n }\n getElementsAtEventForMode(e, mode, options, useFinalPosition) {\n const method = Interaction.modes[mode];\n if (typeof method === 'function') {\n return method(this, e, options, useFinalPosition);\n }\n return [];\n }\n getDatasetMeta(datasetIndex) {\n const dataset = this.data.datasets[datasetIndex];\n const metasets = this._metasets;\n let meta = metasets.filter(x => x && x._dataset === dataset).pop();\n if (!meta) {\n meta = {\n type: null,\n data: [],\n dataset: null,\n controller: null,\n hidden: null,\n xAxisID: null,\n yAxisID: null,\n order: dataset && dataset.order || 0,\n index: datasetIndex,\n _dataset: dataset,\n _parsed: [],\n _sorted: false\n };\n metasets.push(meta);\n }\n return meta;\n }\n getContext() {\n return this.$context || (this.$context = createContext(null, {chart: this, type: 'chart'}));\n }\n getVisibleDatasetCount() {\n return this.getSortedVisibleDatasetMetas().length;\n }\n isDatasetVisible(datasetIndex) {\n const dataset = this.data.datasets[datasetIndex];\n if (!dataset) {\n return false;\n }\n const meta = this.getDatasetMeta(datasetIndex);\n return typeof meta.hidden === 'boolean' ? !meta.hidden : !dataset.hidden;\n }\n setDatasetVisibility(datasetIndex, visible) {\n const meta = this.getDatasetMeta(datasetIndex);\n meta.hidden = !visible;\n }\n toggleDataVisibility(index) {\n this._hiddenIndices[index] = !this._hiddenIndices[index];\n }\n getDataVisibility(index) {\n return !this._hiddenIndices[index];\n }\n _updateVisibility(datasetIndex, dataIndex, visible) {\n const mode = visible ? 'show' : 'hide';\n const meta = this.getDatasetMeta(datasetIndex);\n const anims = meta.controller._resolveAnimations(undefined, mode);\n if (defined(dataIndex)) {\n meta.data[dataIndex].hidden = !visible;\n this.update();\n } else {\n this.setDatasetVisibility(datasetIndex, visible);\n anims.update(meta, {visible});\n this.update((ctx) => ctx.datasetIndex === datasetIndex ? mode : undefined);\n }\n }\n hide(datasetIndex, dataIndex) {\n this._updateVisibility(datasetIndex, dataIndex, false);\n }\n show(datasetIndex, dataIndex) {\n this._updateVisibility(datasetIndex, dataIndex, true);\n }\n _destroyDatasetMeta(datasetIndex) {\n const meta = this._metasets[datasetIndex];\n if (meta && meta.controller) {\n meta.controller._destroy();\n }\n delete this._metasets[datasetIndex];\n }\n _stop() {\n let i, ilen;\n this.stop();\n animator.remove(this);\n for (i = 0, ilen = this.data.datasets.length; i < ilen; ++i) {\n this._destroyDatasetMeta(i);\n }\n }\n destroy() {\n this.notifyPlugins('beforeDestroy');\n const {canvas, ctx} = this;\n this._stop();\n this.config.clearCache();\n if (canvas) {\n this.unbindEvents();\n clearCanvas(canvas, ctx);\n this.platform.releaseContext(ctx);\n this.canvas = null;\n this.ctx = null;\n }\n this.notifyPlugins('destroy');\n delete instances[this.id];\n this.notifyPlugins('afterDestroy');\n }\n toBase64Image(...args) {\n return this.canvas.toDataURL(...args);\n }\n bindEvents() {\n this.bindUserEvents();\n if (this.options.responsive) {\n this.bindResponsiveEvents();\n } else {\n this.attached = true;\n }\n }\n bindUserEvents() {\n const listeners = this._listeners;\n const platform = this.platform;\n const _add = (type, listener) => {\n platform.addEventListener(this, type, listener);\n listeners[type] = listener;\n };\n const listener = (e, x, y) => {\n e.offsetX = x;\n e.offsetY = y;\n this._eventHandler(e);\n };\n each(this.options.events, (type) => _add(type, listener));\n }\n bindResponsiveEvents() {\n if (!this._responsiveListeners) {\n this._responsiveListeners = {};\n }\n const listeners = this._responsiveListeners;\n const platform = this.platform;\n const _add = (type, listener) => {\n platform.addEventListener(this, type, listener);\n listeners[type] = listener;\n };\n const _remove = (type, listener) => {\n if (listeners[type]) {\n platform.removeEventListener(this, type, listener);\n delete listeners[type];\n }\n };\n const listener = (width, height) => {\n if (this.canvas) {\n this.resize(width, height);\n }\n };\n let detached;\n const attached = () => {\n _remove('attach', attached);\n this.attached = true;\n this.resize();\n _add('resize', listener);\n _add('detach', detached);\n };\n detached = () => {\n this.attached = false;\n _remove('resize', listener);\n this._stop();\n this._resize(0, 0);\n _add('attach', attached);\n };\n if (platform.isAttached(this.canvas)) {\n attached();\n } else {\n detached();\n }\n }\n unbindEvents() {\n each(this._listeners, (listener, type) => {\n this.platform.removeEventListener(this, type, listener);\n });\n this._listeners = {};\n each(this._responsiveListeners, (listener, type) => {\n this.platform.removeEventListener(this, type, listener);\n });\n this._responsiveListeners = undefined;\n }\n updateHoverStyle(items, mode, enabled) {\n const prefix = enabled ? 'set' : 'remove';\n let meta, item, i, ilen;\n if (mode === 'dataset') {\n meta = this.getDatasetMeta(items[0].datasetIndex);\n meta.controller['_' + prefix + 'DatasetHoverStyle']();\n }\n for (i = 0, ilen = items.length; i < ilen; ++i) {\n item = items[i];\n const controller = item && this.getDatasetMeta(item.datasetIndex).controller;\n if (controller) {\n controller[prefix + 'HoverStyle'](item.element, item.datasetIndex, item.index);\n }\n }\n }\n getActiveElements() {\n return this._active || [];\n }\n setActiveElements(activeElements) {\n const lastActive = this._active || [];\n const active = activeElements.map(({datasetIndex, index}) => {\n const meta = this.getDatasetMeta(datasetIndex);\n if (!meta) {\n throw new Error('No dataset found at index ' + datasetIndex);\n }\n return {\n datasetIndex,\n element: meta.data[index],\n index,\n };\n });\n const changed = !_elementsEqual(active, lastActive);\n if (changed) {\n this._active = active;\n this._lastEvent = null;\n this._updateHoverStyles(active, lastActive);\n }\n }\n notifyPlugins(hook, args, filter) {\n return this._plugins.notify(this, hook, args, filter);\n }\n _updateHoverStyles(active, lastActive, replay) {\n const hoverOptions = this.options.hover;\n const diff = (a, b) => a.filter(x => !b.some(y => x.datasetIndex === y.datasetIndex && x.index === y.index));\n const deactivated = diff(lastActive, active);\n const activated = replay ? active : diff(active, lastActive);\n if (deactivated.length) {\n this.updateHoverStyle(deactivated, hoverOptions.mode, false);\n }\n if (activated.length && hoverOptions.mode) {\n this.updateHoverStyle(activated, hoverOptions.mode, true);\n }\n }\n _eventHandler(e, replay) {\n const args = {\n event: e,\n replay,\n cancelable: true,\n inChartArea: this.isPointInArea(e)\n };\n const eventFilter = (plugin) => (plugin.options.events || this.options.events).includes(e.native.type);\n if (this.notifyPlugins('beforeEvent', args, eventFilter) === false) {\n return;\n }\n const changed = this._handleEvent(e, replay, args.inChartArea);\n args.cancelable = false;\n this.notifyPlugins('afterEvent', args, eventFilter);\n if (changed || args.changed) {\n this.render();\n }\n return this;\n }\n _handleEvent(e, replay, inChartArea) {\n const {_active: lastActive = [], options} = this;\n const useFinalPosition = replay;\n const active = this._getActiveElements(e, lastActive, inChartArea, useFinalPosition);\n const isClick = _isClickEvent(e);\n const lastEvent = determineLastEvent(e, this._lastEvent, inChartArea, isClick);\n if (inChartArea) {\n this._lastEvent = null;\n callback(options.onHover, [e, active, this], this);\n if (isClick) {\n callback(options.onClick, [e, active, this], this);\n }\n }\n const changed = !_elementsEqual(active, lastActive);\n if (changed || replay) {\n this._active = active;\n this._updateHoverStyles(active, lastActive, replay);\n }\n this._lastEvent = lastEvent;\n return changed;\n }\n _getActiveElements(e, lastActive, inChartArea, useFinalPosition) {\n if (e.type === 'mouseout') {\n return [];\n }\n if (!inChartArea) {\n return lastActive;\n }\n const hoverOptions = this.options.hover;\n return this.getElementsAtEventForMode(e, hoverOptions.mode, hoverOptions, useFinalPosition);\n }\n}\nconst invalidatePlugins = () => each(Chart.instances, (chart) => chart._plugins.invalidate());\nconst enumerable = true;\nObject.defineProperties(Chart, {\n defaults: {\n enumerable,\n value: defaults\n },\n instances: {\n enumerable,\n value: instances\n },\n overrides: {\n enumerable,\n value: overrides\n },\n registry: {\n enumerable,\n value: registry\n },\n version: {\n enumerable,\n value: version\n },\n getChart: {\n enumerable,\n value: getChart\n },\n register: {\n enumerable,\n value: (...items) => {\n registry.add(...items);\n invalidatePlugins();\n }\n },\n unregister: {\n enumerable,\n value: (...items) => {\n registry.remove(...items);\n invalidatePlugins();\n }\n }\n});\n\nfunction clipArc(ctx, element, endAngle) {\n const {startAngle, pixelMargin, x, y, outerRadius, innerRadius} = element;\n let angleMargin = pixelMargin / outerRadius;\n ctx.beginPath();\n ctx.arc(x, y, outerRadius, startAngle - angleMargin, endAngle + angleMargin);\n if (innerRadius > pixelMargin) {\n angleMargin = pixelMargin / innerRadius;\n ctx.arc(x, y, innerRadius, endAngle + angleMargin, startAngle - angleMargin, true);\n } else {\n ctx.arc(x, y, pixelMargin, endAngle + HALF_PI, startAngle - HALF_PI);\n }\n ctx.closePath();\n ctx.clip();\n}\nfunction toRadiusCorners(value) {\n return _readValueToProps(value, ['outerStart', 'outerEnd', 'innerStart', 'innerEnd']);\n}\nfunction parseBorderRadius$1(arc, innerRadius, outerRadius, angleDelta) {\n const o = toRadiusCorners(arc.options.borderRadius);\n const halfThickness = (outerRadius - innerRadius) / 2;\n const innerLimit = Math.min(halfThickness, angleDelta * innerRadius / 2);\n const computeOuterLimit = (val) => {\n const outerArcLimit = (outerRadius - Math.min(halfThickness, val)) * angleDelta / 2;\n return _limitValue(val, 0, Math.min(halfThickness, outerArcLimit));\n };\n return {\n outerStart: computeOuterLimit(o.outerStart),\n outerEnd: computeOuterLimit(o.outerEnd),\n innerStart: _limitValue(o.innerStart, 0, innerLimit),\n innerEnd: _limitValue(o.innerEnd, 0, innerLimit),\n };\n}\nfunction rThetaToXY(r, theta, x, y) {\n return {\n x: x + r * Math.cos(theta),\n y: y + r * Math.sin(theta),\n };\n}\nfunction pathArc(ctx, element, offset, spacing, end, circular) {\n const {x, y, startAngle: start, pixelMargin, innerRadius: innerR} = element;\n const outerRadius = Math.max(element.outerRadius + spacing + offset - pixelMargin, 0);\n const innerRadius = innerR > 0 ? innerR + spacing + offset + pixelMargin : 0;\n let spacingOffset = 0;\n const alpha = end - start;\n if (spacing) {\n const noSpacingInnerRadius = innerR > 0 ? innerR - spacing : 0;\n const noSpacingOuterRadius = outerRadius > 0 ? outerRadius - spacing : 0;\n const avNogSpacingRadius = (noSpacingInnerRadius + noSpacingOuterRadius) / 2;\n const adjustedAngle = avNogSpacingRadius !== 0 ? (alpha * avNogSpacingRadius) / (avNogSpacingRadius + spacing) : alpha;\n spacingOffset = (alpha - adjustedAngle) / 2;\n }\n const beta = Math.max(0.001, alpha * outerRadius - offset / PI) / outerRadius;\n const angleOffset = (alpha - beta) / 2;\n const startAngle = start + angleOffset + spacingOffset;\n const endAngle = end - angleOffset - spacingOffset;\n const {outerStart, outerEnd, innerStart, innerEnd} = parseBorderRadius$1(element, innerRadius, outerRadius, endAngle - startAngle);\n const outerStartAdjustedRadius = outerRadius - outerStart;\n const outerEndAdjustedRadius = outerRadius - outerEnd;\n const outerStartAdjustedAngle = startAngle + outerStart / outerStartAdjustedRadius;\n const outerEndAdjustedAngle = endAngle - outerEnd / outerEndAdjustedRadius;\n const innerStartAdjustedRadius = innerRadius + innerStart;\n const innerEndAdjustedRadius = innerRadius + innerEnd;\n const innerStartAdjustedAngle = startAngle + innerStart / innerStartAdjustedRadius;\n const innerEndAdjustedAngle = endAngle - innerEnd / innerEndAdjustedRadius;\n ctx.beginPath();\n if (circular) {\n ctx.arc(x, y, outerRadius, outerStartAdjustedAngle, outerEndAdjustedAngle);\n if (outerEnd > 0) {\n const pCenter = rThetaToXY(outerEndAdjustedRadius, outerEndAdjustedAngle, x, y);\n ctx.arc(pCenter.x, pCenter.y, outerEnd, outerEndAdjustedAngle, endAngle + HALF_PI);\n }\n const p4 = rThetaToXY(innerEndAdjustedRadius, endAngle, x, y);\n ctx.lineTo(p4.x, p4.y);\n if (innerEnd > 0) {\n const pCenter = rThetaToXY(innerEndAdjustedRadius, innerEndAdjustedAngle, x, y);\n ctx.arc(pCenter.x, pCenter.y, innerEnd, endAngle + HALF_PI, innerEndAdjustedAngle + Math.PI);\n }\n ctx.arc(x, y, innerRadius, endAngle - (innerEnd / innerRadius), startAngle + (innerStart / innerRadius), true);\n if (innerStart > 0) {\n const pCenter = rThetaToXY(innerStartAdjustedRadius, innerStartAdjustedAngle, x, y);\n ctx.arc(pCenter.x, pCenter.y, innerStart, innerStartAdjustedAngle + Math.PI, startAngle - HALF_PI);\n }\n const p8 = rThetaToXY(outerStartAdjustedRadius, startAngle, x, y);\n ctx.lineTo(p8.x, p8.y);\n if (outerStart > 0) {\n const pCenter = rThetaToXY(outerStartAdjustedRadius, outerStartAdjustedAngle, x, y);\n ctx.arc(pCenter.x, pCenter.y, outerStart, startAngle - HALF_PI, outerStartAdjustedAngle);\n }\n } else {\n ctx.moveTo(x, y);\n const outerStartX = Math.cos(outerStartAdjustedAngle) * outerRadius + x;\n const outerStartY = Math.sin(outerStartAdjustedAngle) * outerRadius + y;\n ctx.lineTo(outerStartX, outerStartY);\n const outerEndX = Math.cos(outerEndAdjustedAngle) * outerRadius + x;\n const outerEndY = Math.sin(outerEndAdjustedAngle) * outerRadius + y;\n ctx.lineTo(outerEndX, outerEndY);\n }\n ctx.closePath();\n}\nfunction drawArc(ctx, element, offset, spacing, circular) {\n const {fullCircles, startAngle, circumference} = element;\n let endAngle = element.endAngle;\n if (fullCircles) {\n pathArc(ctx, element, offset, spacing, startAngle + TAU, circular);\n for (let i = 0; i < fullCircles; ++i) {\n ctx.fill();\n }\n if (!isNaN(circumference)) {\n endAngle = startAngle + circumference % TAU;\n if (circumference % TAU === 0) {\n endAngle += TAU;\n }\n }\n }\n pathArc(ctx, element, offset, spacing, endAngle, circular);\n ctx.fill();\n return endAngle;\n}\nfunction drawFullCircleBorders(ctx, element, inner) {\n const {x, y, startAngle, pixelMargin, fullCircles} = element;\n const outerRadius = Math.max(element.outerRadius - pixelMargin, 0);\n const innerRadius = element.innerRadius + pixelMargin;\n let i;\n if (inner) {\n clipArc(ctx, element, startAngle + TAU);\n }\n ctx.beginPath();\n ctx.arc(x, y, innerRadius, startAngle + TAU, startAngle, true);\n for (i = 0; i < fullCircles; ++i) {\n ctx.stroke();\n }\n ctx.beginPath();\n ctx.arc(x, y, outerRadius, startAngle, startAngle + TAU);\n for (i = 0; i < fullCircles; ++i) {\n ctx.stroke();\n }\n}\nfunction drawBorder(ctx, element, offset, spacing, endAngle, circular) {\n const {options} = element;\n const {borderWidth, borderJoinStyle} = options;\n const inner = options.borderAlign === 'inner';\n if (!borderWidth) {\n return;\n }\n if (inner) {\n ctx.lineWidth = borderWidth * 2;\n ctx.lineJoin = borderJoinStyle || 'round';\n } else {\n ctx.lineWidth = borderWidth;\n ctx.lineJoin = borderJoinStyle || 'bevel';\n }\n if (element.fullCircles) {\n drawFullCircleBorders(ctx, element, inner);\n }\n if (inner) {\n clipArc(ctx, element, endAngle);\n }\n pathArc(ctx, element, offset, spacing, endAngle, circular);\n ctx.stroke();\n}\nclass ArcElement extends Element {\n constructor(cfg) {\n super();\n this.options = undefined;\n this.circumference = undefined;\n this.startAngle = undefined;\n this.endAngle = undefined;\n this.innerRadius = undefined;\n this.outerRadius = undefined;\n this.pixelMargin = 0;\n this.fullCircles = 0;\n if (cfg) {\n Object.assign(this, cfg);\n }\n }\n inRange(chartX, chartY, useFinalPosition) {\n const point = this.getProps(['x', 'y'], useFinalPosition);\n const {angle, distance} = getAngleFromPoint(point, {x: chartX, y: chartY});\n const {startAngle, endAngle, innerRadius, outerRadius, circumference} = this.getProps([\n 'startAngle',\n 'endAngle',\n 'innerRadius',\n 'outerRadius',\n 'circumference'\n ], useFinalPosition);\n const rAdjust = this.options.spacing / 2;\n const _circumference = valueOrDefault(circumference, endAngle - startAngle);\n const betweenAngles = _circumference >= TAU || _angleBetween(angle, startAngle, endAngle);\n const withinRadius = _isBetween(distance, innerRadius + rAdjust, outerRadius + rAdjust);\n return (betweenAngles && withinRadius);\n }\n getCenterPoint(useFinalPosition) {\n const {x, y, startAngle, endAngle, innerRadius, outerRadius} = this.getProps([\n 'x',\n 'y',\n 'startAngle',\n 'endAngle',\n 'innerRadius',\n 'outerRadius',\n 'circumference',\n ], useFinalPosition);\n const {offset, spacing} = this.options;\n const halfAngle = (startAngle + endAngle) / 2;\n const halfRadius = (innerRadius + outerRadius + spacing + offset) / 2;\n return {\n x: x + Math.cos(halfAngle) * halfRadius,\n y: y + Math.sin(halfAngle) * halfRadius\n };\n }\n tooltipPosition(useFinalPosition) {\n return this.getCenterPoint(useFinalPosition);\n }\n draw(ctx) {\n const {options, circumference} = this;\n const offset = (options.offset || 0) / 2;\n const spacing = (options.spacing || 0) / 2;\n const circular = options.circular;\n this.pixelMargin = (options.borderAlign === 'inner') ? 0.33 : 0;\n this.fullCircles = circumference > TAU ? Math.floor(circumference / TAU) : 0;\n if (circumference === 0 || this.innerRadius < 0 || this.outerRadius < 0) {\n return;\n }\n ctx.save();\n let radiusOffset = 0;\n if (offset) {\n radiusOffset = offset / 2;\n const halfAngle = (this.startAngle + this.endAngle) / 2;\n ctx.translate(Math.cos(halfAngle) * radiusOffset, Math.sin(halfAngle) * radiusOffset);\n if (this.circumference >= PI) {\n radiusOffset = offset;\n }\n }\n ctx.fillStyle = options.backgroundColor;\n ctx.strokeStyle = options.borderColor;\n const endAngle = drawArc(ctx, this, radiusOffset, spacing, circular);\n drawBorder(ctx, this, radiusOffset, spacing, endAngle, circular);\n ctx.restore();\n }\n}\nArcElement.id = 'arc';\nArcElement.defaults = {\n borderAlign: 'center',\n borderColor: '#fff',\n borderJoinStyle: undefined,\n borderRadius: 0,\n borderWidth: 2,\n offset: 0,\n spacing: 0,\n angle: undefined,\n circular: true,\n};\nArcElement.defaultRoutes = {\n backgroundColor: 'backgroundColor'\n};\n\nfunction setStyle(ctx, options, style = options) {\n ctx.lineCap = valueOrDefault(style.borderCapStyle, options.borderCapStyle);\n ctx.setLineDash(valueOrDefault(style.borderDash, options.borderDash));\n ctx.lineDashOffset = valueOrDefault(style.borderDashOffset, options.borderDashOffset);\n ctx.lineJoin = valueOrDefault(style.borderJoinStyle, options.borderJoinStyle);\n ctx.lineWidth = valueOrDefault(style.borderWidth, options.borderWidth);\n ctx.strokeStyle = valueOrDefault(style.borderColor, options.borderColor);\n}\nfunction lineTo(ctx, previous, target) {\n ctx.lineTo(target.x, target.y);\n}\nfunction getLineMethod(options) {\n if (options.stepped) {\n return _steppedLineTo;\n }\n if (options.tension || options.cubicInterpolationMode === 'monotone') {\n return _bezierCurveTo;\n }\n return lineTo;\n}\nfunction pathVars(points, segment, params = {}) {\n const count = points.length;\n const {start: paramsStart = 0, end: paramsEnd = count - 1} = params;\n const {start: segmentStart, end: segmentEnd} = segment;\n const start = Math.max(paramsStart, segmentStart);\n const end = Math.min(paramsEnd, segmentEnd);\n const outside = paramsStart < segmentStart && paramsEnd < segmentStart || paramsStart > segmentEnd && paramsEnd > segmentEnd;\n return {\n count,\n start,\n loop: segment.loop,\n ilen: end < start && !outside ? count + end - start : end - start\n };\n}\nfunction pathSegment(ctx, line, segment, params) {\n const {points, options} = line;\n const {count, start, loop, ilen} = pathVars(points, segment, params);\n const lineMethod = getLineMethod(options);\n let {move = true, reverse} = params || {};\n let i, point, prev;\n for (i = 0; i <= ilen; ++i) {\n point = points[(start + (reverse ? ilen - i : i)) % count];\n if (point.skip) {\n continue;\n } else if (move) {\n ctx.moveTo(point.x, point.y);\n move = false;\n } else {\n lineMethod(ctx, prev, point, reverse, options.stepped);\n }\n prev = point;\n }\n if (loop) {\n point = points[(start + (reverse ? ilen : 0)) % count];\n lineMethod(ctx, prev, point, reverse, options.stepped);\n }\n return !!loop;\n}\nfunction fastPathSegment(ctx, line, segment, params) {\n const points = line.points;\n const {count, start, ilen} = pathVars(points, segment, params);\n const {move = true, reverse} = params || {};\n let avgX = 0;\n let countX = 0;\n let i, point, prevX, minY, maxY, lastY;\n const pointIndex = (index) => (start + (reverse ? ilen - index : index)) % count;\n const drawX = () => {\n if (minY !== maxY) {\n ctx.lineTo(avgX, maxY);\n ctx.lineTo(avgX, minY);\n ctx.lineTo(avgX, lastY);\n }\n };\n if (move) {\n point = points[pointIndex(0)];\n ctx.moveTo(point.x, point.y);\n }\n for (i = 0; i <= ilen; ++i) {\n point = points[pointIndex(i)];\n if (point.skip) {\n continue;\n }\n const x = point.x;\n const y = point.y;\n const truncX = x | 0;\n if (truncX === prevX) {\n if (y < minY) {\n minY = y;\n } else if (y > maxY) {\n maxY = y;\n }\n avgX = (countX * avgX + x) / ++countX;\n } else {\n drawX();\n ctx.lineTo(x, y);\n prevX = truncX;\n countX = 0;\n minY = maxY = y;\n }\n lastY = y;\n }\n drawX();\n}\nfunction _getSegmentMethod(line) {\n const opts = line.options;\n const borderDash = opts.borderDash && opts.borderDash.length;\n const useFastPath = !line._decimated && !line._loop && !opts.tension && opts.cubicInterpolationMode !== 'monotone' && !opts.stepped && !borderDash;\n return useFastPath ? fastPathSegment : pathSegment;\n}\nfunction _getInterpolationMethod(options) {\n if (options.stepped) {\n return _steppedInterpolation;\n }\n if (options.tension || options.cubicInterpolationMode === 'monotone') {\n return _bezierInterpolation;\n }\n return _pointInLine;\n}\nfunction strokePathWithCache(ctx, line, start, count) {\n let path = line._path;\n if (!path) {\n path = line._path = new Path2D();\n if (line.path(path, start, count)) {\n path.closePath();\n }\n }\n setStyle(ctx, line.options);\n ctx.stroke(path);\n}\nfunction strokePathDirect(ctx, line, start, count) {\n const {segments, options} = line;\n const segmentMethod = _getSegmentMethod(line);\n for (const segment of segments) {\n setStyle(ctx, options, segment.style);\n ctx.beginPath();\n if (segmentMethod(ctx, line, segment, {start, end: start + count - 1})) {\n ctx.closePath();\n }\n ctx.stroke();\n }\n}\nconst usePath2D = typeof Path2D === 'function';\nfunction draw(ctx, line, start, count) {\n if (usePath2D && !line.options.segment) {\n strokePathWithCache(ctx, line, start, count);\n } else {\n strokePathDirect(ctx, line, start, count);\n }\n}\nclass LineElement extends Element {\n constructor(cfg) {\n super();\n this.animated = true;\n this.options = undefined;\n this._chart = undefined;\n this._loop = undefined;\n this._fullLoop = undefined;\n this._path = undefined;\n this._points = undefined;\n this._segments = undefined;\n this._decimated = false;\n this._pointsUpdated = false;\n this._datasetIndex = undefined;\n if (cfg) {\n Object.assign(this, cfg);\n }\n }\n updateControlPoints(chartArea, indexAxis) {\n const options = this.options;\n if ((options.tension || options.cubicInterpolationMode === 'monotone') && !options.stepped && !this._pointsUpdated) {\n const loop = options.spanGaps ? this._loop : this._fullLoop;\n _updateBezierControlPoints(this._points, options, chartArea, loop, indexAxis);\n this._pointsUpdated = true;\n }\n }\n set points(points) {\n this._points = points;\n delete this._segments;\n delete this._path;\n this._pointsUpdated = false;\n }\n get points() {\n return this._points;\n }\n get segments() {\n return this._segments || (this._segments = _computeSegments(this, this.options.segment));\n }\n first() {\n const segments = this.segments;\n const points = this.points;\n return segments.length && points[segments[0].start];\n }\n last() {\n const segments = this.segments;\n const points = this.points;\n const count = segments.length;\n return count && points[segments[count - 1].end];\n }\n interpolate(point, property) {\n const options = this.options;\n const value = point[property];\n const points = this.points;\n const segments = _boundSegments(this, {property, start: value, end: value});\n if (!segments.length) {\n return;\n }\n const result = [];\n const _interpolate = _getInterpolationMethod(options);\n let i, ilen;\n for (i = 0, ilen = segments.length; i < ilen; ++i) {\n const {start, end} = segments[i];\n const p1 = points[start];\n const p2 = points[end];\n if (p1 === p2) {\n result.push(p1);\n continue;\n }\n const t = Math.abs((value - p1[property]) / (p2[property] - p1[property]));\n const interpolated = _interpolate(p1, p2, t, options.stepped);\n interpolated[property] = point[property];\n result.push(interpolated);\n }\n return result.length === 1 ? result[0] : result;\n }\n pathSegment(ctx, segment, params) {\n const segmentMethod = _getSegmentMethod(this);\n return segmentMethod(ctx, this, segment, params);\n }\n path(ctx, start, count) {\n const segments = this.segments;\n const segmentMethod = _getSegmentMethod(this);\n let loop = this._loop;\n start = start || 0;\n count = count || (this.points.length - start);\n for (const segment of segments) {\n loop &= segmentMethod(ctx, this, segment, {start, end: start + count - 1});\n }\n return !!loop;\n }\n draw(ctx, chartArea, start, count) {\n const options = this.options || {};\n const points = this.points || [];\n if (points.length && options.borderWidth) {\n ctx.save();\n draw(ctx, this, start, count);\n ctx.restore();\n }\n if (this.animated) {\n this._pointsUpdated = false;\n this._path = undefined;\n }\n }\n}\nLineElement.id = 'line';\nLineElement.defaults = {\n borderCapStyle: 'butt',\n borderDash: [],\n borderDashOffset: 0,\n borderJoinStyle: 'miter',\n borderWidth: 3,\n capBezierPoints: true,\n cubicInterpolationMode: 'default',\n fill: false,\n spanGaps: false,\n stepped: false,\n tension: 0,\n};\nLineElement.defaultRoutes = {\n backgroundColor: 'backgroundColor',\n borderColor: 'borderColor'\n};\nLineElement.descriptors = {\n _scriptable: true,\n _indexable: (name) => name !== 'borderDash' && name !== 'fill',\n};\n\nfunction inRange$1(el, pos, axis, useFinalPosition) {\n const options = el.options;\n const {[axis]: value} = el.getProps([axis], useFinalPosition);\n return (Math.abs(pos - value) < options.radius + options.hitRadius);\n}\nclass PointElement extends Element {\n constructor(cfg) {\n super();\n this.options = undefined;\n this.parsed = undefined;\n this.skip = undefined;\n this.stop = undefined;\n if (cfg) {\n Object.assign(this, cfg);\n }\n }\n inRange(mouseX, mouseY, useFinalPosition) {\n const options = this.options;\n const {x, y} = this.getProps(['x', 'y'], useFinalPosition);\n return ((Math.pow(mouseX - x, 2) + Math.pow(mouseY - y, 2)) < Math.pow(options.hitRadius + options.radius, 2));\n }\n inXRange(mouseX, useFinalPosition) {\n return inRange$1(this, mouseX, 'x', useFinalPosition);\n }\n inYRange(mouseY, useFinalPosition) {\n return inRange$1(this, mouseY, 'y', useFinalPosition);\n }\n getCenterPoint(useFinalPosition) {\n const {x, y} = this.getProps(['x', 'y'], useFinalPosition);\n return {x, y};\n }\n size(options) {\n options = options || this.options || {};\n let radius = options.radius || 0;\n radius = Math.max(radius, radius && options.hoverRadius || 0);\n const borderWidth = radius && options.borderWidth || 0;\n return (radius + borderWidth) * 2;\n }\n draw(ctx, area) {\n const options = this.options;\n if (this.skip || options.radius < 0.1 || !_isPointInArea(this, area, this.size(options) / 2)) {\n return;\n }\n ctx.strokeStyle = options.borderColor;\n ctx.lineWidth = options.borderWidth;\n ctx.fillStyle = options.backgroundColor;\n drawPoint(ctx, options, this.x, this.y);\n }\n getRange() {\n const options = this.options || {};\n return options.radius + options.hitRadius;\n }\n}\nPointElement.id = 'point';\nPointElement.defaults = {\n borderWidth: 1,\n hitRadius: 1,\n hoverBorderWidth: 1,\n hoverRadius: 4,\n pointStyle: 'circle',\n radius: 3,\n rotation: 0\n};\nPointElement.defaultRoutes = {\n backgroundColor: 'backgroundColor',\n borderColor: 'borderColor'\n};\n\nfunction getBarBounds(bar, useFinalPosition) {\n const {x, y, base, width, height} = bar.getProps(['x', 'y', 'base', 'width', 'height'], useFinalPosition);\n let left, right, top, bottom, half;\n if (bar.horizontal) {\n half = height / 2;\n left = Math.min(x, base);\n right = Math.max(x, base);\n top = y - half;\n bottom = y + half;\n } else {\n half = width / 2;\n left = x - half;\n right = x + half;\n top = Math.min(y, base);\n bottom = Math.max(y, base);\n }\n return {left, top, right, bottom};\n}\nfunction skipOrLimit(skip, value, min, max) {\n return skip ? 0 : _limitValue(value, min, max);\n}\nfunction parseBorderWidth(bar, maxW, maxH) {\n const value = bar.options.borderWidth;\n const skip = bar.borderSkipped;\n const o = toTRBL(value);\n return {\n t: skipOrLimit(skip.top, o.top, 0, maxH),\n r: skipOrLimit(skip.right, o.right, 0, maxW),\n b: skipOrLimit(skip.bottom, o.bottom, 0, maxH),\n l: skipOrLimit(skip.left, o.left, 0, maxW)\n };\n}\nfunction parseBorderRadius(bar, maxW, maxH) {\n const {enableBorderRadius} = bar.getProps(['enableBorderRadius']);\n const value = bar.options.borderRadius;\n const o = toTRBLCorners(value);\n const maxR = Math.min(maxW, maxH);\n const skip = bar.borderSkipped;\n const enableBorder = enableBorderRadius || isObject(value);\n return {\n topLeft: skipOrLimit(!enableBorder || skip.top || skip.left, o.topLeft, 0, maxR),\n topRight: skipOrLimit(!enableBorder || skip.top || skip.right, o.topRight, 0, maxR),\n bottomLeft: skipOrLimit(!enableBorder || skip.bottom || skip.left, o.bottomLeft, 0, maxR),\n bottomRight: skipOrLimit(!enableBorder || skip.bottom || skip.right, o.bottomRight, 0, maxR)\n };\n}\nfunction boundingRects(bar) {\n const bounds = getBarBounds(bar);\n const width = bounds.right - bounds.left;\n const height = bounds.bottom - bounds.top;\n const border = parseBorderWidth(bar, width / 2, height / 2);\n const radius = parseBorderRadius(bar, width / 2, height / 2);\n return {\n outer: {\n x: bounds.left,\n y: bounds.top,\n w: width,\n h: height,\n radius\n },\n inner: {\n x: bounds.left + border.l,\n y: bounds.top + border.t,\n w: width - border.l - border.r,\n h: height - border.t - border.b,\n radius: {\n topLeft: Math.max(0, radius.topLeft - Math.max(border.t, border.l)),\n topRight: Math.max(0, radius.topRight - Math.max(border.t, border.r)),\n bottomLeft: Math.max(0, radius.bottomLeft - Math.max(border.b, border.l)),\n bottomRight: Math.max(0, radius.bottomRight - Math.max(border.b, border.r)),\n }\n }\n };\n}\nfunction inRange(bar, x, y, useFinalPosition) {\n const skipX = x === null;\n const skipY = y === null;\n const skipBoth = skipX && skipY;\n const bounds = bar && !skipBoth && getBarBounds(bar, useFinalPosition);\n return bounds\n\t\t&& (skipX || _isBetween(x, bounds.left, bounds.right))\n\t\t&& (skipY || _isBetween(y, bounds.top, bounds.bottom));\n}\nfunction hasRadius(radius) {\n return radius.topLeft || radius.topRight || radius.bottomLeft || radius.bottomRight;\n}\nfunction addNormalRectPath(ctx, rect) {\n ctx.rect(rect.x, rect.y, rect.w, rect.h);\n}\nfunction inflateRect(rect, amount, refRect = {}) {\n const x = rect.x !== refRect.x ? -amount : 0;\n const y = rect.y !== refRect.y ? -amount : 0;\n const w = (rect.x + rect.w !== refRect.x + refRect.w ? amount : 0) - x;\n const h = (rect.y + rect.h !== refRect.y + refRect.h ? amount : 0) - y;\n return {\n x: rect.x + x,\n y: rect.y + y,\n w: rect.w + w,\n h: rect.h + h,\n radius: rect.radius\n };\n}\nclass BarElement extends Element {\n constructor(cfg) {\n super();\n this.options = undefined;\n this.horizontal = undefined;\n this.base = undefined;\n this.width = undefined;\n this.height = undefined;\n this.inflateAmount = undefined;\n if (cfg) {\n Object.assign(this, cfg);\n }\n }\n draw(ctx) {\n const {inflateAmount, options: {borderColor, backgroundColor}} = this;\n const {inner, outer} = boundingRects(this);\n const addRectPath = hasRadius(outer.radius) ? addRoundedRectPath : addNormalRectPath;\n ctx.save();\n if (outer.w !== inner.w || outer.h !== inner.h) {\n ctx.beginPath();\n addRectPath(ctx, inflateRect(outer, inflateAmount, inner));\n ctx.clip();\n addRectPath(ctx, inflateRect(inner, -inflateAmount, outer));\n ctx.fillStyle = borderColor;\n ctx.fill('evenodd');\n }\n ctx.beginPath();\n addRectPath(ctx, inflateRect(inner, inflateAmount));\n ctx.fillStyle = backgroundColor;\n ctx.fill();\n ctx.restore();\n }\n inRange(mouseX, mouseY, useFinalPosition) {\n return inRange(this, mouseX, mouseY, useFinalPosition);\n }\n inXRange(mouseX, useFinalPosition) {\n return inRange(this, mouseX, null, useFinalPosition);\n }\n inYRange(mouseY, useFinalPosition) {\n return inRange(this, null, mouseY, useFinalPosition);\n }\n getCenterPoint(useFinalPosition) {\n const {x, y, base, horizontal} = this.getProps(['x', 'y', 'base', 'horizontal'], useFinalPosition);\n return {\n x: horizontal ? (x + base) / 2 : x,\n y: horizontal ? y : (y + base) / 2\n };\n }\n getRange(axis) {\n return axis === 'x' ? this.width / 2 : this.height / 2;\n }\n}\nBarElement.id = 'bar';\nBarElement.defaults = {\n borderSkipped: 'start',\n borderWidth: 0,\n borderRadius: 0,\n inflateAmount: 'auto',\n pointStyle: undefined\n};\nBarElement.defaultRoutes = {\n backgroundColor: 'backgroundColor',\n borderColor: 'borderColor'\n};\n\nvar elements = /*#__PURE__*/Object.freeze({\n__proto__: null,\nArcElement: ArcElement,\nLineElement: LineElement,\nPointElement: PointElement,\nBarElement: BarElement\n});\n\nfunction lttbDecimation(data, start, count, availableWidth, options) {\n const samples = options.samples || availableWidth;\n if (samples >= count) {\n return data.slice(start, start + count);\n }\n const decimated = [];\n const bucketWidth = (count - 2) / (samples - 2);\n let sampledIndex = 0;\n const endIndex = start + count - 1;\n let a = start;\n let i, maxAreaPoint, maxArea, area, nextA;\n decimated[sampledIndex++] = data[a];\n for (i = 0; i < samples - 2; i++) {\n let avgX = 0;\n let avgY = 0;\n let j;\n const avgRangeStart = Math.floor((i + 1) * bucketWidth) + 1 + start;\n const avgRangeEnd = Math.min(Math.floor((i + 2) * bucketWidth) + 1, count) + start;\n const avgRangeLength = avgRangeEnd - avgRangeStart;\n for (j = avgRangeStart; j < avgRangeEnd; j++) {\n avgX += data[j].x;\n avgY += data[j].y;\n }\n avgX /= avgRangeLength;\n avgY /= avgRangeLength;\n const rangeOffs = Math.floor(i * bucketWidth) + 1 + start;\n const rangeTo = Math.min(Math.floor((i + 1) * bucketWidth) + 1, count) + start;\n const {x: pointAx, y: pointAy} = data[a];\n maxArea = area = -1;\n for (j = rangeOffs; j < rangeTo; j++) {\n area = 0.5 * Math.abs(\n (pointAx - avgX) * (data[j].y - pointAy) -\n (pointAx - data[j].x) * (avgY - pointAy)\n );\n if (area > maxArea) {\n maxArea = area;\n maxAreaPoint = data[j];\n nextA = j;\n }\n }\n decimated[sampledIndex++] = maxAreaPoint;\n a = nextA;\n }\n decimated[sampledIndex++] = data[endIndex];\n return decimated;\n}\nfunction minMaxDecimation(data, start, count, availableWidth) {\n let avgX = 0;\n let countX = 0;\n let i, point, x, y, prevX, minIndex, maxIndex, startIndex, minY, maxY;\n const decimated = [];\n const endIndex = start + count - 1;\n const xMin = data[start].x;\n const xMax = data[endIndex].x;\n const dx = xMax - xMin;\n for (i = start; i < start + count; ++i) {\n point = data[i];\n x = (point.x - xMin) / dx * availableWidth;\n y = point.y;\n const truncX = x | 0;\n if (truncX === prevX) {\n if (y < minY) {\n minY = y;\n minIndex = i;\n } else if (y > maxY) {\n maxY = y;\n maxIndex = i;\n }\n avgX = (countX * avgX + point.x) / ++countX;\n } else {\n const lastIndex = i - 1;\n if (!isNullOrUndef(minIndex) && !isNullOrUndef(maxIndex)) {\n const intermediateIndex1 = Math.min(minIndex, maxIndex);\n const intermediateIndex2 = Math.max(minIndex, maxIndex);\n if (intermediateIndex1 !== startIndex && intermediateIndex1 !== lastIndex) {\n decimated.push({\n ...data[intermediateIndex1],\n x: avgX,\n });\n }\n if (intermediateIndex2 !== startIndex && intermediateIndex2 !== lastIndex) {\n decimated.push({\n ...data[intermediateIndex2],\n x: avgX\n });\n }\n }\n if (i > 0 && lastIndex !== startIndex) {\n decimated.push(data[lastIndex]);\n }\n decimated.push(point);\n prevX = truncX;\n countX = 0;\n minY = maxY = y;\n minIndex = maxIndex = startIndex = i;\n }\n }\n return decimated;\n}\nfunction cleanDecimatedDataset(dataset) {\n if (dataset._decimated) {\n const data = dataset._data;\n delete dataset._decimated;\n delete dataset._data;\n Object.defineProperty(dataset, 'data', {value: data});\n }\n}\nfunction cleanDecimatedData(chart) {\n chart.data.datasets.forEach((dataset) => {\n cleanDecimatedDataset(dataset);\n });\n}\nfunction getStartAndCountOfVisiblePointsSimplified(meta, points) {\n const pointCount = points.length;\n let start = 0;\n let count;\n const {iScale} = meta;\n const {min, max, minDefined, maxDefined} = iScale.getUserBounds();\n if (minDefined) {\n start = _limitValue(_lookupByKey(points, iScale.axis, min).lo, 0, pointCount - 1);\n }\n if (maxDefined) {\n count = _limitValue(_lookupByKey(points, iScale.axis, max).hi + 1, start, pointCount) - start;\n } else {\n count = pointCount - start;\n }\n return {start, count};\n}\nvar plugin_decimation = {\n id: 'decimation',\n defaults: {\n algorithm: 'min-max',\n enabled: false,\n },\n beforeElementsUpdate: (chart, args, options) => {\n if (!options.enabled) {\n cleanDecimatedData(chart);\n return;\n }\n const availableWidth = chart.width;\n chart.data.datasets.forEach((dataset, datasetIndex) => {\n const {_data, indexAxis} = dataset;\n const meta = chart.getDatasetMeta(datasetIndex);\n const data = _data || dataset.data;\n if (resolve([indexAxis, chart.options.indexAxis]) === 'y') {\n return;\n }\n if (!meta.controller.supportsDecimation) {\n return;\n }\n const xAxis = chart.scales[meta.xAxisID];\n if (xAxis.type !== 'linear' && xAxis.type !== 'time') {\n return;\n }\n if (chart.options.parsing) {\n return;\n }\n let {start, count} = getStartAndCountOfVisiblePointsSimplified(meta, data);\n const threshold = options.threshold || 4 * availableWidth;\n if (count <= threshold) {\n cleanDecimatedDataset(dataset);\n return;\n }\n if (isNullOrUndef(_data)) {\n dataset._data = data;\n delete dataset.data;\n Object.defineProperty(dataset, 'data', {\n configurable: true,\n enumerable: true,\n get: function() {\n return this._decimated;\n },\n set: function(d) {\n this._data = d;\n }\n });\n }\n let decimated;\n switch (options.algorithm) {\n case 'lttb':\n decimated = lttbDecimation(data, start, count, availableWidth, options);\n break;\n case 'min-max':\n decimated = minMaxDecimation(data, start, count, availableWidth);\n break;\n default:\n throw new Error(`Unsupported decimation algorithm '${options.algorithm}'`);\n }\n dataset._decimated = decimated;\n });\n },\n destroy(chart) {\n cleanDecimatedData(chart);\n }\n};\n\nfunction _segments(line, target, property) {\n const segments = line.segments;\n const points = line.points;\n const tpoints = target.points;\n const parts = [];\n for (const segment of segments) {\n let {start, end} = segment;\n end = _findSegmentEnd(start, end, points);\n const bounds = _getBounds(property, points[start], points[end], segment.loop);\n if (!target.segments) {\n parts.push({\n source: segment,\n target: bounds,\n start: points[start],\n end: points[end]\n });\n continue;\n }\n const targetSegments = _boundSegments(target, bounds);\n for (const tgt of targetSegments) {\n const subBounds = _getBounds(property, tpoints[tgt.start], tpoints[tgt.end], tgt.loop);\n const fillSources = _boundSegment(segment, points, subBounds);\n for (const fillSource of fillSources) {\n parts.push({\n source: fillSource,\n target: tgt,\n start: {\n [property]: _getEdge(bounds, subBounds, 'start', Math.max)\n },\n end: {\n [property]: _getEdge(bounds, subBounds, 'end', Math.min)\n }\n });\n }\n }\n }\n return parts;\n}\nfunction _getBounds(property, first, last, loop) {\n if (loop) {\n return;\n }\n let start = first[property];\n let end = last[property];\n if (property === 'angle') {\n start = _normalizeAngle(start);\n end = _normalizeAngle(end);\n }\n return {property, start, end};\n}\nfunction _pointsFromSegments(boundary, line) {\n const {x = null, y = null} = boundary || {};\n const linePoints = line.points;\n const points = [];\n line.segments.forEach(({start, end}) => {\n end = _findSegmentEnd(start, end, linePoints);\n const first = linePoints[start];\n const last = linePoints[end];\n if (y !== null) {\n points.push({x: first.x, y});\n points.push({x: last.x, y});\n } else if (x !== null) {\n points.push({x, y: first.y});\n points.push({x, y: last.y});\n }\n });\n return points;\n}\nfunction _findSegmentEnd(start, end, points) {\n for (;end > start; end--) {\n const point = points[end];\n if (!isNaN(point.x) && !isNaN(point.y)) {\n break;\n }\n }\n return end;\n}\nfunction _getEdge(a, b, prop, fn) {\n if (a && b) {\n return fn(a[prop], b[prop]);\n }\n return a ? a[prop] : b ? b[prop] : 0;\n}\n\nfunction _createBoundaryLine(boundary, line) {\n let points = [];\n let _loop = false;\n if (isArray(boundary)) {\n _loop = true;\n points = boundary;\n } else {\n points = _pointsFromSegments(boundary, line);\n }\n return points.length ? new LineElement({\n points,\n options: {tension: 0},\n _loop,\n _fullLoop: _loop\n }) : null;\n}\nfunction _shouldApplyFill(source) {\n return source && source.fill !== false;\n}\n\nfunction _resolveTarget(sources, index, propagate) {\n const source = sources[index];\n let fill = source.fill;\n const visited = [index];\n let target;\n if (!propagate) {\n return fill;\n }\n while (fill !== false && visited.indexOf(fill) === -1) {\n if (!isNumberFinite(fill)) {\n return fill;\n }\n target = sources[fill];\n if (!target) {\n return false;\n }\n if (target.visible) {\n return fill;\n }\n visited.push(fill);\n fill = target.fill;\n }\n return false;\n}\nfunction _decodeFill(line, index, count) {\n const fill = parseFillOption(line);\n if (isObject(fill)) {\n return isNaN(fill.value) ? false : fill;\n }\n let target = parseFloat(fill);\n if (isNumberFinite(target) && Math.floor(target) === target) {\n return decodeTargetIndex(fill[0], index, target, count);\n }\n return ['origin', 'start', 'end', 'stack', 'shape'].indexOf(fill) >= 0 && fill;\n}\nfunction decodeTargetIndex(firstCh, index, target, count) {\n if (firstCh === '-' || firstCh === '+') {\n target = index + target;\n }\n if (target === index || target < 0 || target >= count) {\n return false;\n }\n return target;\n}\nfunction _getTargetPixel(fill, scale) {\n let pixel = null;\n if (fill === 'start') {\n pixel = scale.bottom;\n } else if (fill === 'end') {\n pixel = scale.top;\n } else if (isObject(fill)) {\n pixel = scale.getPixelForValue(fill.value);\n } else if (scale.getBasePixel) {\n pixel = scale.getBasePixel();\n }\n return pixel;\n}\nfunction _getTargetValue(fill, scale, startValue) {\n let value;\n if (fill === 'start') {\n value = startValue;\n } else if (fill === 'end') {\n value = scale.options.reverse ? scale.min : scale.max;\n } else if (isObject(fill)) {\n value = fill.value;\n } else {\n value = scale.getBaseValue();\n }\n return value;\n}\nfunction parseFillOption(line) {\n const options = line.options;\n const fillOption = options.fill;\n let fill = valueOrDefault(fillOption && fillOption.target, fillOption);\n if (fill === undefined) {\n fill = !!options.backgroundColor;\n }\n if (fill === false || fill === null) {\n return false;\n }\n if (fill === true) {\n return 'origin';\n }\n return fill;\n}\n\nfunction _buildStackLine(source) {\n const {scale, index, line} = source;\n const points = [];\n const segments = line.segments;\n const sourcePoints = line.points;\n const linesBelow = getLinesBelow(scale, index);\n linesBelow.push(_createBoundaryLine({x: null, y: scale.bottom}, line));\n for (let i = 0; i < segments.length; i++) {\n const segment = segments[i];\n for (let j = segment.start; j <= segment.end; j++) {\n addPointsBelow(points, sourcePoints[j], linesBelow);\n }\n }\n return new LineElement({points, options: {}});\n}\nfunction getLinesBelow(scale, index) {\n const below = [];\n const metas = scale.getMatchingVisibleMetas('line');\n for (let i = 0; i < metas.length; i++) {\n const meta = metas[i];\n if (meta.index === index) {\n break;\n }\n if (!meta.hidden) {\n below.unshift(meta.dataset);\n }\n }\n return below;\n}\nfunction addPointsBelow(points, sourcePoint, linesBelow) {\n const postponed = [];\n for (let j = 0; j < linesBelow.length; j++) {\n const line = linesBelow[j];\n const {first, last, point} = findPoint(line, sourcePoint, 'x');\n if (!point || (first && last)) {\n continue;\n }\n if (first) {\n postponed.unshift(point);\n } else {\n points.push(point);\n if (!last) {\n break;\n }\n }\n }\n points.push(...postponed);\n}\nfunction findPoint(line, sourcePoint, property) {\n const point = line.interpolate(sourcePoint, property);\n if (!point) {\n return {};\n }\n const pointValue = point[property];\n const segments = line.segments;\n const linePoints = line.points;\n let first = false;\n let last = false;\n for (let i = 0; i < segments.length; i++) {\n const segment = segments[i];\n const firstValue = linePoints[segment.start][property];\n const lastValue = linePoints[segment.end][property];\n if (_isBetween(pointValue, firstValue, lastValue)) {\n first = pointValue === firstValue;\n last = pointValue === lastValue;\n break;\n }\n }\n return {first, last, point};\n}\n\nclass simpleArc {\n constructor(opts) {\n this.x = opts.x;\n this.y = opts.y;\n this.radius = opts.radius;\n }\n pathSegment(ctx, bounds, opts) {\n const {x, y, radius} = this;\n bounds = bounds || {start: 0, end: TAU};\n ctx.arc(x, y, radius, bounds.end, bounds.start, true);\n return !opts.bounds;\n }\n interpolate(point) {\n const {x, y, radius} = this;\n const angle = point.angle;\n return {\n x: x + Math.cos(angle) * radius,\n y: y + Math.sin(angle) * radius,\n angle\n };\n }\n}\n\nfunction _getTarget(source) {\n const {chart, fill, line} = source;\n if (isNumberFinite(fill)) {\n return getLineByIndex(chart, fill);\n }\n if (fill === 'stack') {\n return _buildStackLine(source);\n }\n if (fill === 'shape') {\n return true;\n }\n const boundary = computeBoundary(source);\n if (boundary instanceof simpleArc) {\n return boundary;\n }\n return _createBoundaryLine(boundary, line);\n}\nfunction getLineByIndex(chart, index) {\n const meta = chart.getDatasetMeta(index);\n const visible = meta && chart.isDatasetVisible(index);\n return visible ? meta.dataset : null;\n}\nfunction computeBoundary(source) {\n const scale = source.scale || {};\n if (scale.getPointPositionForValue) {\n return computeCircularBoundary(source);\n }\n return computeLinearBoundary(source);\n}\nfunction computeLinearBoundary(source) {\n const {scale = {}, fill} = source;\n const pixel = _getTargetPixel(fill, scale);\n if (isNumberFinite(pixel)) {\n const horizontal = scale.isHorizontal();\n return {\n x: horizontal ? pixel : null,\n y: horizontal ? null : pixel\n };\n }\n return null;\n}\nfunction computeCircularBoundary(source) {\n const {scale, fill} = source;\n const options = scale.options;\n const length = scale.getLabels().length;\n const start = options.reverse ? scale.max : scale.min;\n const value = _getTargetValue(fill, scale, start);\n const target = [];\n if (options.grid.circular) {\n const center = scale.getPointPositionForValue(0, start);\n return new simpleArc({\n x: center.x,\n y: center.y,\n radius: scale.getDistanceFromCenterForValue(value)\n });\n }\n for (let i = 0; i < length; ++i) {\n target.push(scale.getPointPositionForValue(i, value));\n }\n return target;\n}\n\nfunction _drawfill(ctx, source, area) {\n const target = _getTarget(source);\n const {line, scale, axis} = source;\n const lineOpts = line.options;\n const fillOption = lineOpts.fill;\n const color = lineOpts.backgroundColor;\n const {above = color, below = color} = fillOption || {};\n if (target && line.points.length) {\n clipArea(ctx, area);\n doFill(ctx, {line, target, above, below, area, scale, axis});\n unclipArea(ctx);\n }\n}\nfunction doFill(ctx, cfg) {\n const {line, target, above, below, area, scale} = cfg;\n const property = line._loop ? 'angle' : cfg.axis;\n ctx.save();\n if (property === 'x' && below !== above) {\n clipVertical(ctx, target, area.top);\n fill(ctx, {line, target, color: above, scale, property});\n ctx.restore();\n ctx.save();\n clipVertical(ctx, target, area.bottom);\n }\n fill(ctx, {line, target, color: below, scale, property});\n ctx.restore();\n}\nfunction clipVertical(ctx, target, clipY) {\n const {segments, points} = target;\n let first = true;\n let lineLoop = false;\n ctx.beginPath();\n for (const segment of segments) {\n const {start, end} = segment;\n const firstPoint = points[start];\n const lastPoint = points[_findSegmentEnd(start, end, points)];\n if (first) {\n ctx.moveTo(firstPoint.x, firstPoint.y);\n first = false;\n } else {\n ctx.lineTo(firstPoint.x, clipY);\n ctx.lineTo(firstPoint.x, firstPoint.y);\n }\n lineLoop = !!target.pathSegment(ctx, segment, {move: lineLoop});\n if (lineLoop) {\n ctx.closePath();\n } else {\n ctx.lineTo(lastPoint.x, clipY);\n }\n }\n ctx.lineTo(target.first().x, clipY);\n ctx.closePath();\n ctx.clip();\n}\nfunction fill(ctx, cfg) {\n const {line, target, property, color, scale} = cfg;\n const segments = _segments(line, target, property);\n for (const {source: src, target: tgt, start, end} of segments) {\n const {style: {backgroundColor = color} = {}} = src;\n const notShape = target !== true;\n ctx.save();\n ctx.fillStyle = backgroundColor;\n clipBounds(ctx, scale, notShape && _getBounds(property, start, end));\n ctx.beginPath();\n const lineLoop = !!line.pathSegment(ctx, src);\n let loop;\n if (notShape) {\n if (lineLoop) {\n ctx.closePath();\n } else {\n interpolatedLineTo(ctx, target, end, property);\n }\n const targetLoop = !!target.pathSegment(ctx, tgt, {move: lineLoop, reverse: true});\n loop = lineLoop && targetLoop;\n if (!loop) {\n interpolatedLineTo(ctx, target, start, property);\n }\n }\n ctx.closePath();\n ctx.fill(loop ? 'evenodd' : 'nonzero');\n ctx.restore();\n }\n}\nfunction clipBounds(ctx, scale, bounds) {\n const {top, bottom} = scale.chart.chartArea;\n const {property, start, end} = bounds || {};\n if (property === 'x') {\n ctx.beginPath();\n ctx.rect(start, top, end - start, bottom - top);\n ctx.clip();\n }\n}\nfunction interpolatedLineTo(ctx, target, point, property) {\n const interpolatedPoint = target.interpolate(point, property);\n if (interpolatedPoint) {\n ctx.lineTo(interpolatedPoint.x, interpolatedPoint.y);\n }\n}\n\nvar index = {\n id: 'filler',\n afterDatasetsUpdate(chart, _args, options) {\n const count = (chart.data.datasets || []).length;\n const sources = [];\n let meta, i, line, source;\n for (i = 0; i < count; ++i) {\n meta = chart.getDatasetMeta(i);\n line = meta.dataset;\n source = null;\n if (line && line.options && line instanceof LineElement) {\n source = {\n visible: chart.isDatasetVisible(i),\n index: i,\n fill: _decodeFill(line, i, count),\n chart,\n axis: meta.controller.options.indexAxis,\n scale: meta.vScale,\n line,\n };\n }\n meta.$filler = source;\n sources.push(source);\n }\n for (i = 0; i < count; ++i) {\n source = sources[i];\n if (!source || source.fill === false) {\n continue;\n }\n source.fill = _resolveTarget(sources, i, options.propagate);\n }\n },\n beforeDraw(chart, _args, options) {\n const draw = options.drawTime === 'beforeDraw';\n const metasets = chart.getSortedVisibleDatasetMetas();\n const area = chart.chartArea;\n for (let i = metasets.length - 1; i >= 0; --i) {\n const source = metasets[i].$filler;\n if (!source) {\n continue;\n }\n source.line.updateControlPoints(area, source.axis);\n if (draw && source.fill) {\n _drawfill(chart.ctx, source, area);\n }\n }\n },\n beforeDatasetsDraw(chart, _args, options) {\n if (options.drawTime !== 'beforeDatasetsDraw') {\n return;\n }\n const metasets = chart.getSortedVisibleDatasetMetas();\n for (let i = metasets.length - 1; i >= 0; --i) {\n const source = metasets[i].$filler;\n if (_shouldApplyFill(source)) {\n _drawfill(chart.ctx, source, chart.chartArea);\n }\n }\n },\n beforeDatasetDraw(chart, args, options) {\n const source = args.meta.$filler;\n if (!_shouldApplyFill(source) || options.drawTime !== 'beforeDatasetDraw') {\n return;\n }\n _drawfill(chart.ctx, source, chart.chartArea);\n },\n defaults: {\n propagate: true,\n drawTime: 'beforeDatasetDraw'\n }\n};\n\nconst getBoxSize = (labelOpts, fontSize) => {\n let {boxHeight = fontSize, boxWidth = fontSize} = labelOpts;\n if (labelOpts.usePointStyle) {\n boxHeight = Math.min(boxHeight, fontSize);\n boxWidth = labelOpts.pointStyleWidth || Math.min(boxWidth, fontSize);\n }\n return {\n boxWidth,\n boxHeight,\n itemHeight: Math.max(fontSize, boxHeight)\n };\n};\nconst itemsEqual = (a, b) => a !== null && b !== null && a.datasetIndex === b.datasetIndex && a.index === b.index;\nclass Legend extends Element {\n constructor(config) {\n super();\n this._added = false;\n this.legendHitBoxes = [];\n this._hoveredItem = null;\n this.doughnutMode = false;\n this.chart = config.chart;\n this.options = config.options;\n this.ctx = config.ctx;\n this.legendItems = undefined;\n this.columnSizes = undefined;\n this.lineWidths = undefined;\n this.maxHeight = undefined;\n this.maxWidth = undefined;\n this.top = undefined;\n this.bottom = undefined;\n this.left = undefined;\n this.right = undefined;\n this.height = undefined;\n this.width = undefined;\n this._margins = undefined;\n this.position = undefined;\n this.weight = undefined;\n this.fullSize = undefined;\n }\n update(maxWidth, maxHeight, margins) {\n this.maxWidth = maxWidth;\n this.maxHeight = maxHeight;\n this._margins = margins;\n this.setDimensions();\n this.buildLabels();\n this.fit();\n }\n setDimensions() {\n if (this.isHorizontal()) {\n this.width = this.maxWidth;\n this.left = this._margins.left;\n this.right = this.width;\n } else {\n this.height = this.maxHeight;\n this.top = this._margins.top;\n this.bottom = this.height;\n }\n }\n buildLabels() {\n const labelOpts = this.options.labels || {};\n let legendItems = callback(labelOpts.generateLabels, [this.chart], this) || [];\n if (labelOpts.filter) {\n legendItems = legendItems.filter((item) => labelOpts.filter(item, this.chart.data));\n }\n if (labelOpts.sort) {\n legendItems = legendItems.sort((a, b) => labelOpts.sort(a, b, this.chart.data));\n }\n if (this.options.reverse) {\n legendItems.reverse();\n }\n this.legendItems = legendItems;\n }\n fit() {\n const {options, ctx} = this;\n if (!options.display) {\n this.width = this.height = 0;\n return;\n }\n const labelOpts = options.labels;\n const labelFont = toFont(labelOpts.font);\n const fontSize = labelFont.size;\n const titleHeight = this._computeTitleHeight();\n const {boxWidth, itemHeight} = getBoxSize(labelOpts, fontSize);\n let width, height;\n ctx.font = labelFont.string;\n if (this.isHorizontal()) {\n width = this.maxWidth;\n height = this._fitRows(titleHeight, fontSize, boxWidth, itemHeight) + 10;\n } else {\n height = this.maxHeight;\n width = this._fitCols(titleHeight, fontSize, boxWidth, itemHeight) + 10;\n }\n this.width = Math.min(width, options.maxWidth || this.maxWidth);\n this.height = Math.min(height, options.maxHeight || this.maxHeight);\n }\n _fitRows(titleHeight, fontSize, boxWidth, itemHeight) {\n const {ctx, maxWidth, options: {labels: {padding}}} = this;\n const hitboxes = this.legendHitBoxes = [];\n const lineWidths = this.lineWidths = [0];\n const lineHeight = itemHeight + padding;\n let totalHeight = titleHeight;\n ctx.textAlign = 'left';\n ctx.textBaseline = 'middle';\n let row = -1;\n let top = -lineHeight;\n this.legendItems.forEach((legendItem, i) => {\n const itemWidth = boxWidth + (fontSize / 2) + ctx.measureText(legendItem.text).width;\n if (i === 0 || lineWidths[lineWidths.length - 1] + itemWidth + 2 * padding > maxWidth) {\n totalHeight += lineHeight;\n lineWidths[lineWidths.length - (i > 0 ? 0 : 1)] = 0;\n top += lineHeight;\n row++;\n }\n hitboxes[i] = {left: 0, top, row, width: itemWidth, height: itemHeight};\n lineWidths[lineWidths.length - 1] += itemWidth + padding;\n });\n return totalHeight;\n }\n _fitCols(titleHeight, fontSize, boxWidth, itemHeight) {\n const {ctx, maxHeight, options: {labels: {padding}}} = this;\n const hitboxes = this.legendHitBoxes = [];\n const columnSizes = this.columnSizes = [];\n const heightLimit = maxHeight - titleHeight;\n let totalWidth = padding;\n let currentColWidth = 0;\n let currentColHeight = 0;\n let left = 0;\n let col = 0;\n this.legendItems.forEach((legendItem, i) => {\n const itemWidth = boxWidth + (fontSize / 2) + ctx.measureText(legendItem.text).width;\n if (i > 0 && currentColHeight + itemHeight + 2 * padding > heightLimit) {\n totalWidth += currentColWidth + padding;\n columnSizes.push({width: currentColWidth, height: currentColHeight});\n left += currentColWidth + padding;\n col++;\n currentColWidth = currentColHeight = 0;\n }\n hitboxes[i] = {left, top: currentColHeight, col, width: itemWidth, height: itemHeight};\n currentColWidth = Math.max(currentColWidth, itemWidth);\n currentColHeight += itemHeight + padding;\n });\n totalWidth += currentColWidth;\n columnSizes.push({width: currentColWidth, height: currentColHeight});\n return totalWidth;\n }\n adjustHitBoxes() {\n if (!this.options.display) {\n return;\n }\n const titleHeight = this._computeTitleHeight();\n const {legendHitBoxes: hitboxes, options: {align, labels: {padding}, rtl}} = this;\n const rtlHelper = getRtlAdapter(rtl, this.left, this.width);\n if (this.isHorizontal()) {\n let row = 0;\n let left = _alignStartEnd(align, this.left + padding, this.right - this.lineWidths[row]);\n for (const hitbox of hitboxes) {\n if (row !== hitbox.row) {\n row = hitbox.row;\n left = _alignStartEnd(align, this.left + padding, this.right - this.lineWidths[row]);\n }\n hitbox.top += this.top + titleHeight + padding;\n hitbox.left = rtlHelper.leftForLtr(rtlHelper.x(left), hitbox.width);\n left += hitbox.width + padding;\n }\n } else {\n let col = 0;\n let top = _alignStartEnd(align, this.top + titleHeight + padding, this.bottom - this.columnSizes[col].height);\n for (const hitbox of hitboxes) {\n if (hitbox.col !== col) {\n col = hitbox.col;\n top = _alignStartEnd(align, this.top + titleHeight + padding, this.bottom - this.columnSizes[col].height);\n }\n hitbox.top = top;\n hitbox.left += this.left + padding;\n hitbox.left = rtlHelper.leftForLtr(rtlHelper.x(hitbox.left), hitbox.width);\n top += hitbox.height + padding;\n }\n }\n }\n isHorizontal() {\n return this.options.position === 'top' || this.options.position === 'bottom';\n }\n draw() {\n if (this.options.display) {\n const ctx = this.ctx;\n clipArea(ctx, this);\n this._draw();\n unclipArea(ctx);\n }\n }\n _draw() {\n const {options: opts, columnSizes, lineWidths, ctx} = this;\n const {align, labels: labelOpts} = opts;\n const defaultColor = defaults.color;\n const rtlHelper = getRtlAdapter(opts.rtl, this.left, this.width);\n const labelFont = toFont(labelOpts.font);\n const {color: fontColor, padding} = labelOpts;\n const fontSize = labelFont.size;\n const halfFontSize = fontSize / 2;\n let cursor;\n this.drawTitle();\n ctx.textAlign = rtlHelper.textAlign('left');\n ctx.textBaseline = 'middle';\n ctx.lineWidth = 0.5;\n ctx.font = labelFont.string;\n const {boxWidth, boxHeight, itemHeight} = getBoxSize(labelOpts, fontSize);\n const drawLegendBox = function(x, y, legendItem) {\n if (isNaN(boxWidth) || boxWidth <= 0 || isNaN(boxHeight) || boxHeight < 0) {\n return;\n }\n ctx.save();\n const lineWidth = valueOrDefault(legendItem.lineWidth, 1);\n ctx.fillStyle = valueOrDefault(legendItem.fillStyle, defaultColor);\n ctx.lineCap = valueOrDefault(legendItem.lineCap, 'butt');\n ctx.lineDashOffset = valueOrDefault(legendItem.lineDashOffset, 0);\n ctx.lineJoin = valueOrDefault(legendItem.lineJoin, 'miter');\n ctx.lineWidth = lineWidth;\n ctx.strokeStyle = valueOrDefault(legendItem.strokeStyle, defaultColor);\n ctx.setLineDash(valueOrDefault(legendItem.lineDash, []));\n if (labelOpts.usePointStyle) {\n const drawOptions = {\n radius: boxHeight * Math.SQRT2 / 2,\n pointStyle: legendItem.pointStyle,\n rotation: legendItem.rotation,\n borderWidth: lineWidth\n };\n const centerX = rtlHelper.xPlus(x, boxWidth / 2);\n const centerY = y + halfFontSize;\n drawPointLegend(ctx, drawOptions, centerX, centerY, labelOpts.pointStyleWidth && boxWidth);\n } else {\n const yBoxTop = y + Math.max((fontSize - boxHeight) / 2, 0);\n const xBoxLeft = rtlHelper.leftForLtr(x, boxWidth);\n const borderRadius = toTRBLCorners(legendItem.borderRadius);\n ctx.beginPath();\n if (Object.values(borderRadius).some(v => v !== 0)) {\n addRoundedRectPath(ctx, {\n x: xBoxLeft,\n y: yBoxTop,\n w: boxWidth,\n h: boxHeight,\n radius: borderRadius,\n });\n } else {\n ctx.rect(xBoxLeft, yBoxTop, boxWidth, boxHeight);\n }\n ctx.fill();\n if (lineWidth !== 0) {\n ctx.stroke();\n }\n }\n ctx.restore();\n };\n const fillText = function(x, y, legendItem) {\n renderText(ctx, legendItem.text, x, y + (itemHeight / 2), labelFont, {\n strikethrough: legendItem.hidden,\n textAlign: rtlHelper.textAlign(legendItem.textAlign)\n });\n };\n const isHorizontal = this.isHorizontal();\n const titleHeight = this._computeTitleHeight();\n if (isHorizontal) {\n cursor = {\n x: _alignStartEnd(align, this.left + padding, this.right - lineWidths[0]),\n y: this.top + padding + titleHeight,\n line: 0\n };\n } else {\n cursor = {\n x: this.left + padding,\n y: _alignStartEnd(align, this.top + titleHeight + padding, this.bottom - columnSizes[0].height),\n line: 0\n };\n }\n overrideTextDirection(this.ctx, opts.textDirection);\n const lineHeight = itemHeight + padding;\n this.legendItems.forEach((legendItem, i) => {\n ctx.strokeStyle = legendItem.fontColor || fontColor;\n ctx.fillStyle = legendItem.fontColor || fontColor;\n const textWidth = ctx.measureText(legendItem.text).width;\n const textAlign = rtlHelper.textAlign(legendItem.textAlign || (legendItem.textAlign = labelOpts.textAlign));\n const width = boxWidth + halfFontSize + textWidth;\n let x = cursor.x;\n let y = cursor.y;\n rtlHelper.setWidth(this.width);\n if (isHorizontal) {\n if (i > 0 && x + width + padding > this.right) {\n y = cursor.y += lineHeight;\n cursor.line++;\n x = cursor.x = _alignStartEnd(align, this.left + padding, this.right - lineWidths[cursor.line]);\n }\n } else if (i > 0 && y + lineHeight > this.bottom) {\n x = cursor.x = x + columnSizes[cursor.line].width + padding;\n cursor.line++;\n y = cursor.y = _alignStartEnd(align, this.top + titleHeight + padding, this.bottom - columnSizes[cursor.line].height);\n }\n const realX = rtlHelper.x(x);\n drawLegendBox(realX, y, legendItem);\n x = _textX(textAlign, x + boxWidth + halfFontSize, isHorizontal ? x + width : this.right, opts.rtl);\n fillText(rtlHelper.x(x), y, legendItem);\n if (isHorizontal) {\n cursor.x += width + padding;\n } else {\n cursor.y += lineHeight;\n }\n });\n restoreTextDirection(this.ctx, opts.textDirection);\n }\n drawTitle() {\n const opts = this.options;\n const titleOpts = opts.title;\n const titleFont = toFont(titleOpts.font);\n const titlePadding = toPadding(titleOpts.padding);\n if (!titleOpts.display) {\n return;\n }\n const rtlHelper = getRtlAdapter(opts.rtl, this.left, this.width);\n const ctx = this.ctx;\n const position = titleOpts.position;\n const halfFontSize = titleFont.size / 2;\n const topPaddingPlusHalfFontSize = titlePadding.top + halfFontSize;\n let y;\n let left = this.left;\n let maxWidth = this.width;\n if (this.isHorizontal()) {\n maxWidth = Math.max(...this.lineWidths);\n y = this.top + topPaddingPlusHalfFontSize;\n left = _alignStartEnd(opts.align, left, this.right - maxWidth);\n } else {\n const maxHeight = this.columnSizes.reduce((acc, size) => Math.max(acc, size.height), 0);\n y = topPaddingPlusHalfFontSize + _alignStartEnd(opts.align, this.top, this.bottom - maxHeight - opts.labels.padding - this._computeTitleHeight());\n }\n const x = _alignStartEnd(position, left, left + maxWidth);\n ctx.textAlign = rtlHelper.textAlign(_toLeftRightCenter(position));\n ctx.textBaseline = 'middle';\n ctx.strokeStyle = titleOpts.color;\n ctx.fillStyle = titleOpts.color;\n ctx.font = titleFont.string;\n renderText(ctx, titleOpts.text, x, y, titleFont);\n }\n _computeTitleHeight() {\n const titleOpts = this.options.title;\n const titleFont = toFont(titleOpts.font);\n const titlePadding = toPadding(titleOpts.padding);\n return titleOpts.display ? titleFont.lineHeight + titlePadding.height : 0;\n }\n _getLegendItemAt(x, y) {\n let i, hitBox, lh;\n if (_isBetween(x, this.left, this.right)\n && _isBetween(y, this.top, this.bottom)) {\n lh = this.legendHitBoxes;\n for (i = 0; i < lh.length; ++i) {\n hitBox = lh[i];\n if (_isBetween(x, hitBox.left, hitBox.left + hitBox.width)\n && _isBetween(y, hitBox.top, hitBox.top + hitBox.height)) {\n return this.legendItems[i];\n }\n }\n }\n return null;\n }\n handleEvent(e) {\n const opts = this.options;\n if (!isListened(e.type, opts)) {\n return;\n }\n const hoveredItem = this._getLegendItemAt(e.x, e.y);\n if (e.type === 'mousemove' || e.type === 'mouseout') {\n const previous = this._hoveredItem;\n const sameItem = itemsEqual(previous, hoveredItem);\n if (previous && !sameItem) {\n callback(opts.onLeave, [e, previous, this], this);\n }\n this._hoveredItem = hoveredItem;\n if (hoveredItem && !sameItem) {\n callback(opts.onHover, [e, hoveredItem, this], this);\n }\n } else if (hoveredItem) {\n callback(opts.onClick, [e, hoveredItem, this], this);\n }\n }\n}\nfunction isListened(type, opts) {\n if ((type === 'mousemove' || type === 'mouseout') && (opts.onHover || opts.onLeave)) {\n return true;\n }\n if (opts.onClick && (type === 'click' || type === 'mouseup')) {\n return true;\n }\n return false;\n}\nvar plugin_legend = {\n id: 'legend',\n _element: Legend,\n start(chart, _args, options) {\n const legend = chart.legend = new Legend({ctx: chart.ctx, options, chart});\n layouts.configure(chart, legend, options);\n layouts.addBox(chart, legend);\n },\n stop(chart) {\n layouts.removeBox(chart, chart.legend);\n delete chart.legend;\n },\n beforeUpdate(chart, _args, options) {\n const legend = chart.legend;\n layouts.configure(chart, legend, options);\n legend.options = options;\n },\n afterUpdate(chart) {\n const legend = chart.legend;\n legend.buildLabels();\n legend.adjustHitBoxes();\n },\n afterEvent(chart, args) {\n if (!args.replay) {\n chart.legend.handleEvent(args.event);\n }\n },\n defaults: {\n display: true,\n position: 'top',\n align: 'center',\n fullSize: true,\n reverse: false,\n weight: 1000,\n onClick(e, legendItem, legend) {\n const index = legendItem.datasetIndex;\n const ci = legend.chart;\n if (ci.isDatasetVisible(index)) {\n ci.hide(index);\n legendItem.hidden = true;\n } else {\n ci.show(index);\n legendItem.hidden = false;\n }\n },\n onHover: null,\n onLeave: null,\n labels: {\n color: (ctx) => ctx.chart.options.color,\n boxWidth: 40,\n padding: 10,\n generateLabels(chart) {\n const datasets = chart.data.datasets;\n const {labels: {usePointStyle, pointStyle, textAlign, color}} = chart.legend.options;\n return chart._getSortedDatasetMetas().map((meta) => {\n const style = meta.controller.getStyle(usePointStyle ? 0 : undefined);\n const borderWidth = toPadding(style.borderWidth);\n return {\n text: datasets[meta.index].label,\n fillStyle: style.backgroundColor,\n fontColor: color,\n hidden: !meta.visible,\n lineCap: style.borderCapStyle,\n lineDash: style.borderDash,\n lineDashOffset: style.borderDashOffset,\n lineJoin: style.borderJoinStyle,\n lineWidth: (borderWidth.width + borderWidth.height) / 4,\n strokeStyle: style.borderColor,\n pointStyle: pointStyle || style.pointStyle,\n rotation: style.rotation,\n textAlign: textAlign || style.textAlign,\n borderRadius: 0,\n datasetIndex: meta.index\n };\n }, this);\n }\n },\n title: {\n color: (ctx) => ctx.chart.options.color,\n display: false,\n position: 'center',\n text: '',\n }\n },\n descriptors: {\n _scriptable: (name) => !name.startsWith('on'),\n labels: {\n _scriptable: (name) => !['generateLabels', 'filter', 'sort'].includes(name),\n }\n },\n};\n\nclass Title extends Element {\n constructor(config) {\n super();\n this.chart = config.chart;\n this.options = config.options;\n this.ctx = config.ctx;\n this._padding = undefined;\n this.top = undefined;\n this.bottom = undefined;\n this.left = undefined;\n this.right = undefined;\n this.width = undefined;\n this.height = undefined;\n this.position = undefined;\n this.weight = undefined;\n this.fullSize = undefined;\n }\n update(maxWidth, maxHeight) {\n const opts = this.options;\n this.left = 0;\n this.top = 0;\n if (!opts.display) {\n this.width = this.height = this.right = this.bottom = 0;\n return;\n }\n this.width = this.right = maxWidth;\n this.height = this.bottom = maxHeight;\n const lineCount = isArray(opts.text) ? opts.text.length : 1;\n this._padding = toPadding(opts.padding);\n const textSize = lineCount * toFont(opts.font).lineHeight + this._padding.height;\n if (this.isHorizontal()) {\n this.height = textSize;\n } else {\n this.width = textSize;\n }\n }\n isHorizontal() {\n const pos = this.options.position;\n return pos === 'top' || pos === 'bottom';\n }\n _drawArgs(offset) {\n const {top, left, bottom, right, options} = this;\n const align = options.align;\n let rotation = 0;\n let maxWidth, titleX, titleY;\n if (this.isHorizontal()) {\n titleX = _alignStartEnd(align, left, right);\n titleY = top + offset;\n maxWidth = right - left;\n } else {\n if (options.position === 'left') {\n titleX = left + offset;\n titleY = _alignStartEnd(align, bottom, top);\n rotation = PI * -0.5;\n } else {\n titleX = right - offset;\n titleY = _alignStartEnd(align, top, bottom);\n rotation = PI * 0.5;\n }\n maxWidth = bottom - top;\n }\n return {titleX, titleY, maxWidth, rotation};\n }\n draw() {\n const ctx = this.ctx;\n const opts = this.options;\n if (!opts.display) {\n return;\n }\n const fontOpts = toFont(opts.font);\n const lineHeight = fontOpts.lineHeight;\n const offset = lineHeight / 2 + this._padding.top;\n const {titleX, titleY, maxWidth, rotation} = this._drawArgs(offset);\n renderText(ctx, opts.text, 0, 0, fontOpts, {\n color: opts.color,\n maxWidth,\n rotation,\n textAlign: _toLeftRightCenter(opts.align),\n textBaseline: 'middle',\n translation: [titleX, titleY],\n });\n }\n}\nfunction createTitle(chart, titleOpts) {\n const title = new Title({\n ctx: chart.ctx,\n options: titleOpts,\n chart\n });\n layouts.configure(chart, title, titleOpts);\n layouts.addBox(chart, title);\n chart.titleBlock = title;\n}\nvar plugin_title = {\n id: 'title',\n _element: Title,\n start(chart, _args, options) {\n createTitle(chart, options);\n },\n stop(chart) {\n const titleBlock = chart.titleBlock;\n layouts.removeBox(chart, titleBlock);\n delete chart.titleBlock;\n },\n beforeUpdate(chart, _args, options) {\n const title = chart.titleBlock;\n layouts.configure(chart, title, options);\n title.options = options;\n },\n defaults: {\n align: 'center',\n display: false,\n font: {\n weight: 'bold',\n },\n fullSize: true,\n padding: 10,\n position: 'top',\n text: '',\n weight: 2000\n },\n defaultRoutes: {\n color: 'color'\n },\n descriptors: {\n _scriptable: true,\n _indexable: false,\n },\n};\n\nconst map = new WeakMap();\nvar plugin_subtitle = {\n id: 'subtitle',\n start(chart, _args, options) {\n const title = new Title({\n ctx: chart.ctx,\n options,\n chart\n });\n layouts.configure(chart, title, options);\n layouts.addBox(chart, title);\n map.set(chart, title);\n },\n stop(chart) {\n layouts.removeBox(chart, map.get(chart));\n map.delete(chart);\n },\n beforeUpdate(chart, _args, options) {\n const title = map.get(chart);\n layouts.configure(chart, title, options);\n title.options = options;\n },\n defaults: {\n align: 'center',\n display: false,\n font: {\n weight: 'normal',\n },\n fullSize: true,\n padding: 0,\n position: 'top',\n text: '',\n weight: 1500\n },\n defaultRoutes: {\n color: 'color'\n },\n descriptors: {\n _scriptable: true,\n _indexable: false,\n },\n};\n\nconst positioners = {\n average(items) {\n if (!items.length) {\n return false;\n }\n let i, len;\n let x = 0;\n let y = 0;\n let count = 0;\n for (i = 0, len = items.length; i < len; ++i) {\n const el = items[i].element;\n if (el && el.hasValue()) {\n const pos = el.tooltipPosition();\n x += pos.x;\n y += pos.y;\n ++count;\n }\n }\n return {\n x: x / count,\n y: y / count\n };\n },\n nearest(items, eventPosition) {\n if (!items.length) {\n return false;\n }\n let x = eventPosition.x;\n let y = eventPosition.y;\n let minDistance = Number.POSITIVE_INFINITY;\n let i, len, nearestElement;\n for (i = 0, len = items.length; i < len; ++i) {\n const el = items[i].element;\n if (el && el.hasValue()) {\n const center = el.getCenterPoint();\n const d = distanceBetweenPoints(eventPosition, center);\n if (d < minDistance) {\n minDistance = d;\n nearestElement = el;\n }\n }\n }\n if (nearestElement) {\n const tp = nearestElement.tooltipPosition();\n x = tp.x;\n y = tp.y;\n }\n return {\n x,\n y\n };\n }\n};\nfunction pushOrConcat(base, toPush) {\n if (toPush) {\n if (isArray(toPush)) {\n Array.prototype.push.apply(base, toPush);\n } else {\n base.push(toPush);\n }\n }\n return base;\n}\nfunction splitNewlines(str) {\n if ((typeof str === 'string' || str instanceof String) && str.indexOf('\\n') > -1) {\n return str.split('\\n');\n }\n return str;\n}\nfunction createTooltipItem(chart, item) {\n const {element, datasetIndex, index} = item;\n const controller = chart.getDatasetMeta(datasetIndex).controller;\n const {label, value} = controller.getLabelAndValue(index);\n return {\n chart,\n label,\n parsed: controller.getParsed(index),\n raw: chart.data.datasets[datasetIndex].data[index],\n formattedValue: value,\n dataset: controller.getDataset(),\n dataIndex: index,\n datasetIndex,\n element\n };\n}\nfunction getTooltipSize(tooltip, options) {\n const ctx = tooltip.chart.ctx;\n const {body, footer, title} = tooltip;\n const {boxWidth, boxHeight} = options;\n const bodyFont = toFont(options.bodyFont);\n const titleFont = toFont(options.titleFont);\n const footerFont = toFont(options.footerFont);\n const titleLineCount = title.length;\n const footerLineCount = footer.length;\n const bodyLineItemCount = body.length;\n const padding = toPadding(options.padding);\n let height = padding.height;\n let width = 0;\n let combinedBodyLength = body.reduce((count, bodyItem) => count + bodyItem.before.length + bodyItem.lines.length + bodyItem.after.length, 0);\n combinedBodyLength += tooltip.beforeBody.length + tooltip.afterBody.length;\n if (titleLineCount) {\n height += titleLineCount * titleFont.lineHeight\n\t\t\t+ (titleLineCount - 1) * options.titleSpacing\n\t\t\t+ options.titleMarginBottom;\n }\n if (combinedBodyLength) {\n const bodyLineHeight = options.displayColors ? Math.max(boxHeight, bodyFont.lineHeight) : bodyFont.lineHeight;\n height += bodyLineItemCount * bodyLineHeight\n\t\t\t+ (combinedBodyLength - bodyLineItemCount) * bodyFont.lineHeight\n\t\t\t+ (combinedBodyLength - 1) * options.bodySpacing;\n }\n if (footerLineCount) {\n height += options.footerMarginTop\n\t\t\t+ footerLineCount * footerFont.lineHeight\n\t\t\t+ (footerLineCount - 1) * options.footerSpacing;\n }\n let widthPadding = 0;\n const maxLineWidth = function(line) {\n width = Math.max(width, ctx.measureText(line).width + widthPadding);\n };\n ctx.save();\n ctx.font = titleFont.string;\n each(tooltip.title, maxLineWidth);\n ctx.font = bodyFont.string;\n each(tooltip.beforeBody.concat(tooltip.afterBody), maxLineWidth);\n widthPadding = options.displayColors ? (boxWidth + 2 + options.boxPadding) : 0;\n each(body, (bodyItem) => {\n each(bodyItem.before, maxLineWidth);\n each(bodyItem.lines, maxLineWidth);\n each(bodyItem.after, maxLineWidth);\n });\n widthPadding = 0;\n ctx.font = footerFont.string;\n each(tooltip.footer, maxLineWidth);\n ctx.restore();\n width += padding.width;\n return {width, height};\n}\nfunction determineYAlign(chart, size) {\n const {y, height} = size;\n if (y < height / 2) {\n return 'top';\n } else if (y > (chart.height - height / 2)) {\n return 'bottom';\n }\n return 'center';\n}\nfunction doesNotFitWithAlign(xAlign, chart, options, size) {\n const {x, width} = size;\n const caret = options.caretSize + options.caretPadding;\n if (xAlign === 'left' && x + width + caret > chart.width) {\n return true;\n }\n if (xAlign === 'right' && x - width - caret < 0) {\n return true;\n }\n}\nfunction determineXAlign(chart, options, size, yAlign) {\n const {x, width} = size;\n const {width: chartWidth, chartArea: {left, right}} = chart;\n let xAlign = 'center';\n if (yAlign === 'center') {\n xAlign = x <= (left + right) / 2 ? 'left' : 'right';\n } else if (x <= width / 2) {\n xAlign = 'left';\n } else if (x >= chartWidth - width / 2) {\n xAlign = 'right';\n }\n if (doesNotFitWithAlign(xAlign, chart, options, size)) {\n xAlign = 'center';\n }\n return xAlign;\n}\nfunction determineAlignment(chart, options, size) {\n const yAlign = size.yAlign || options.yAlign || determineYAlign(chart, size);\n return {\n xAlign: size.xAlign || options.xAlign || determineXAlign(chart, options, size, yAlign),\n yAlign\n };\n}\nfunction alignX(size, xAlign) {\n let {x, width} = size;\n if (xAlign === 'right') {\n x -= width;\n } else if (xAlign === 'center') {\n x -= (width / 2);\n }\n return x;\n}\nfunction alignY(size, yAlign, paddingAndSize) {\n let {y, height} = size;\n if (yAlign === 'top') {\n y += paddingAndSize;\n } else if (yAlign === 'bottom') {\n y -= height + paddingAndSize;\n } else {\n y -= (height / 2);\n }\n return y;\n}\nfunction getBackgroundPoint(options, size, alignment, chart) {\n const {caretSize, caretPadding, cornerRadius} = options;\n const {xAlign, yAlign} = alignment;\n const paddingAndSize = caretSize + caretPadding;\n const {topLeft, topRight, bottomLeft, bottomRight} = toTRBLCorners(cornerRadius);\n let x = alignX(size, xAlign);\n const y = alignY(size, yAlign, paddingAndSize);\n if (yAlign === 'center') {\n if (xAlign === 'left') {\n x += paddingAndSize;\n } else if (xAlign === 'right') {\n x -= paddingAndSize;\n }\n } else if (xAlign === 'left') {\n x -= Math.max(topLeft, bottomLeft) + caretSize;\n } else if (xAlign === 'right') {\n x += Math.max(topRight, bottomRight) + caretSize;\n }\n return {\n x: _limitValue(x, 0, chart.width - size.width),\n y: _limitValue(y, 0, chart.height - size.height)\n };\n}\nfunction getAlignedX(tooltip, align, options) {\n const padding = toPadding(options.padding);\n return align === 'center'\n ? tooltip.x + tooltip.width / 2\n : align === 'right'\n ? tooltip.x + tooltip.width - padding.right\n : tooltip.x + padding.left;\n}\nfunction getBeforeAfterBodyLines(callback) {\n return pushOrConcat([], splitNewlines(callback));\n}\nfunction createTooltipContext(parent, tooltip, tooltipItems) {\n return createContext(parent, {\n tooltip,\n tooltipItems,\n type: 'tooltip'\n });\n}\nfunction overrideCallbacks(callbacks, context) {\n const override = context && context.dataset && context.dataset.tooltip && context.dataset.tooltip.callbacks;\n return override ? callbacks.override(override) : callbacks;\n}\nclass Tooltip extends Element {\n constructor(config) {\n super();\n this.opacity = 0;\n this._active = [];\n this._eventPosition = undefined;\n this._size = undefined;\n this._cachedAnimations = undefined;\n this._tooltipItems = [];\n this.$animations = undefined;\n this.$context = undefined;\n this.chart = config.chart || config._chart;\n this._chart = this.chart;\n this.options = config.options;\n this.dataPoints = undefined;\n this.title = undefined;\n this.beforeBody = undefined;\n this.body = undefined;\n this.afterBody = undefined;\n this.footer = undefined;\n this.xAlign = undefined;\n this.yAlign = undefined;\n this.x = undefined;\n this.y = undefined;\n this.height = undefined;\n this.width = undefined;\n this.caretX = undefined;\n this.caretY = undefined;\n this.labelColors = undefined;\n this.labelPointStyles = undefined;\n this.labelTextColors = undefined;\n }\n initialize(options) {\n this.options = options;\n this._cachedAnimations = undefined;\n this.$context = undefined;\n }\n _resolveAnimations() {\n const cached = this._cachedAnimations;\n if (cached) {\n return cached;\n }\n const chart = this.chart;\n const options = this.options.setContext(this.getContext());\n const opts = options.enabled && chart.options.animation && options.animations;\n const animations = new Animations(this.chart, opts);\n if (opts._cacheable) {\n this._cachedAnimations = Object.freeze(animations);\n }\n return animations;\n }\n getContext() {\n return this.$context ||\n\t\t\t(this.$context = createTooltipContext(this.chart.getContext(), this, this._tooltipItems));\n }\n getTitle(context, options) {\n const {callbacks} = options;\n const beforeTitle = callbacks.beforeTitle.apply(this, [context]);\n const title = callbacks.title.apply(this, [context]);\n const afterTitle = callbacks.afterTitle.apply(this, [context]);\n let lines = [];\n lines = pushOrConcat(lines, splitNewlines(beforeTitle));\n lines = pushOrConcat(lines, splitNewlines(title));\n lines = pushOrConcat(lines, splitNewlines(afterTitle));\n return lines;\n }\n getBeforeBody(tooltipItems, options) {\n return getBeforeAfterBodyLines(options.callbacks.beforeBody.apply(this, [tooltipItems]));\n }\n getBody(tooltipItems, options) {\n const {callbacks} = options;\n const bodyItems = [];\n each(tooltipItems, (context) => {\n const bodyItem = {\n before: [],\n lines: [],\n after: []\n };\n const scoped = overrideCallbacks(callbacks, context);\n pushOrConcat(bodyItem.before, splitNewlines(scoped.beforeLabel.call(this, context)));\n pushOrConcat(bodyItem.lines, scoped.label.call(this, context));\n pushOrConcat(bodyItem.after, splitNewlines(scoped.afterLabel.call(this, context)));\n bodyItems.push(bodyItem);\n });\n return bodyItems;\n }\n getAfterBody(tooltipItems, options) {\n return getBeforeAfterBodyLines(options.callbacks.afterBody.apply(this, [tooltipItems]));\n }\n getFooter(tooltipItems, options) {\n const {callbacks} = options;\n const beforeFooter = callbacks.beforeFooter.apply(this, [tooltipItems]);\n const footer = callbacks.footer.apply(this, [tooltipItems]);\n const afterFooter = callbacks.afterFooter.apply(this, [tooltipItems]);\n let lines = [];\n lines = pushOrConcat(lines, splitNewlines(beforeFooter));\n lines = pushOrConcat(lines, splitNewlines(footer));\n lines = pushOrConcat(lines, splitNewlines(afterFooter));\n return lines;\n }\n _createItems(options) {\n const active = this._active;\n const data = this.chart.data;\n const labelColors = [];\n const labelPointStyles = [];\n const labelTextColors = [];\n let tooltipItems = [];\n let i, len;\n for (i = 0, len = active.length; i < len; ++i) {\n tooltipItems.push(createTooltipItem(this.chart, active[i]));\n }\n if (options.filter) {\n tooltipItems = tooltipItems.filter((element, index, array) => options.filter(element, index, array, data));\n }\n if (options.itemSort) {\n tooltipItems = tooltipItems.sort((a, b) => options.itemSort(a, b, data));\n }\n each(tooltipItems, (context) => {\n const scoped = overrideCallbacks(options.callbacks, context);\n labelColors.push(scoped.labelColor.call(this, context));\n labelPointStyles.push(scoped.labelPointStyle.call(this, context));\n labelTextColors.push(scoped.labelTextColor.call(this, context));\n });\n this.labelColors = labelColors;\n this.labelPointStyles = labelPointStyles;\n this.labelTextColors = labelTextColors;\n this.dataPoints = tooltipItems;\n return tooltipItems;\n }\n update(changed, replay) {\n const options = this.options.setContext(this.getContext());\n const active = this._active;\n let properties;\n let tooltipItems = [];\n if (!active.length) {\n if (this.opacity !== 0) {\n properties = {\n opacity: 0\n };\n }\n } else {\n const position = positioners[options.position].call(this, active, this._eventPosition);\n tooltipItems = this._createItems(options);\n this.title = this.getTitle(tooltipItems, options);\n this.beforeBody = this.getBeforeBody(tooltipItems, options);\n this.body = this.getBody(tooltipItems, options);\n this.afterBody = this.getAfterBody(tooltipItems, options);\n this.footer = this.getFooter(tooltipItems, options);\n const size = this._size = getTooltipSize(this, options);\n const positionAndSize = Object.assign({}, position, size);\n const alignment = determineAlignment(this.chart, options, positionAndSize);\n const backgroundPoint = getBackgroundPoint(options, positionAndSize, alignment, this.chart);\n this.xAlign = alignment.xAlign;\n this.yAlign = alignment.yAlign;\n properties = {\n opacity: 1,\n x: backgroundPoint.x,\n y: backgroundPoint.y,\n width: size.width,\n height: size.height,\n caretX: position.x,\n caretY: position.y\n };\n }\n this._tooltipItems = tooltipItems;\n this.$context = undefined;\n if (properties) {\n this._resolveAnimations().update(this, properties);\n }\n if (changed && options.external) {\n options.external.call(this, {chart: this.chart, tooltip: this, replay});\n }\n }\n drawCaret(tooltipPoint, ctx, size, options) {\n const caretPosition = this.getCaretPosition(tooltipPoint, size, options);\n ctx.lineTo(caretPosition.x1, caretPosition.y1);\n ctx.lineTo(caretPosition.x2, caretPosition.y2);\n ctx.lineTo(caretPosition.x3, caretPosition.y3);\n }\n getCaretPosition(tooltipPoint, size, options) {\n const {xAlign, yAlign} = this;\n const {caretSize, cornerRadius} = options;\n const {topLeft, topRight, bottomLeft, bottomRight} = toTRBLCorners(cornerRadius);\n const {x: ptX, y: ptY} = tooltipPoint;\n const {width, height} = size;\n let x1, x2, x3, y1, y2, y3;\n if (yAlign === 'center') {\n y2 = ptY + (height / 2);\n if (xAlign === 'left') {\n x1 = ptX;\n x2 = x1 - caretSize;\n y1 = y2 + caretSize;\n y3 = y2 - caretSize;\n } else {\n x1 = ptX + width;\n x2 = x1 + caretSize;\n y1 = y2 - caretSize;\n y3 = y2 + caretSize;\n }\n x3 = x1;\n } else {\n if (xAlign === 'left') {\n x2 = ptX + Math.max(topLeft, bottomLeft) + (caretSize);\n } else if (xAlign === 'right') {\n x2 = ptX + width - Math.max(topRight, bottomRight) - caretSize;\n } else {\n x2 = this.caretX;\n }\n if (yAlign === 'top') {\n y1 = ptY;\n y2 = y1 - caretSize;\n x1 = x2 - caretSize;\n x3 = x2 + caretSize;\n } else {\n y1 = ptY + height;\n y2 = y1 + caretSize;\n x1 = x2 + caretSize;\n x3 = x2 - caretSize;\n }\n y3 = y1;\n }\n return {x1, x2, x3, y1, y2, y3};\n }\n drawTitle(pt, ctx, options) {\n const title = this.title;\n const length = title.length;\n let titleFont, titleSpacing, i;\n if (length) {\n const rtlHelper = getRtlAdapter(options.rtl, this.x, this.width);\n pt.x = getAlignedX(this, options.titleAlign, options);\n ctx.textAlign = rtlHelper.textAlign(options.titleAlign);\n ctx.textBaseline = 'middle';\n titleFont = toFont(options.titleFont);\n titleSpacing = options.titleSpacing;\n ctx.fillStyle = options.titleColor;\n ctx.font = titleFont.string;\n for (i = 0; i < length; ++i) {\n ctx.fillText(title[i], rtlHelper.x(pt.x), pt.y + titleFont.lineHeight / 2);\n pt.y += titleFont.lineHeight + titleSpacing;\n if (i + 1 === length) {\n pt.y += options.titleMarginBottom - titleSpacing;\n }\n }\n }\n }\n _drawColorBox(ctx, pt, i, rtlHelper, options) {\n const labelColors = this.labelColors[i];\n const labelPointStyle = this.labelPointStyles[i];\n const {boxHeight, boxWidth, boxPadding} = options;\n const bodyFont = toFont(options.bodyFont);\n const colorX = getAlignedX(this, 'left', options);\n const rtlColorX = rtlHelper.x(colorX);\n const yOffSet = boxHeight < bodyFont.lineHeight ? (bodyFont.lineHeight - boxHeight) / 2 : 0;\n const colorY = pt.y + yOffSet;\n if (options.usePointStyle) {\n const drawOptions = {\n radius: Math.min(boxWidth, boxHeight) / 2,\n pointStyle: labelPointStyle.pointStyle,\n rotation: labelPointStyle.rotation,\n borderWidth: 1\n };\n const centerX = rtlHelper.leftForLtr(rtlColorX, boxWidth) + boxWidth / 2;\n const centerY = colorY + boxHeight / 2;\n ctx.strokeStyle = options.multiKeyBackground;\n ctx.fillStyle = options.multiKeyBackground;\n drawPoint(ctx, drawOptions, centerX, centerY);\n ctx.strokeStyle = labelColors.borderColor;\n ctx.fillStyle = labelColors.backgroundColor;\n drawPoint(ctx, drawOptions, centerX, centerY);\n } else {\n ctx.lineWidth = isObject(labelColors.borderWidth) ? Math.max(...Object.values(labelColors.borderWidth)) : (labelColors.borderWidth || 1);\n ctx.strokeStyle = labelColors.borderColor;\n ctx.setLineDash(labelColors.borderDash || []);\n ctx.lineDashOffset = labelColors.borderDashOffset || 0;\n const outerX = rtlHelper.leftForLtr(rtlColorX, boxWidth - boxPadding);\n const innerX = rtlHelper.leftForLtr(rtlHelper.xPlus(rtlColorX, 1), boxWidth - boxPadding - 2);\n const borderRadius = toTRBLCorners(labelColors.borderRadius);\n if (Object.values(borderRadius).some(v => v !== 0)) {\n ctx.beginPath();\n ctx.fillStyle = options.multiKeyBackground;\n addRoundedRectPath(ctx, {\n x: outerX,\n y: colorY,\n w: boxWidth,\n h: boxHeight,\n radius: borderRadius,\n });\n ctx.fill();\n ctx.stroke();\n ctx.fillStyle = labelColors.backgroundColor;\n ctx.beginPath();\n addRoundedRectPath(ctx, {\n x: innerX,\n y: colorY + 1,\n w: boxWidth - 2,\n h: boxHeight - 2,\n radius: borderRadius,\n });\n ctx.fill();\n } else {\n ctx.fillStyle = options.multiKeyBackground;\n ctx.fillRect(outerX, colorY, boxWidth, boxHeight);\n ctx.strokeRect(outerX, colorY, boxWidth, boxHeight);\n ctx.fillStyle = labelColors.backgroundColor;\n ctx.fillRect(innerX, colorY + 1, boxWidth - 2, boxHeight - 2);\n }\n }\n ctx.fillStyle = this.labelTextColors[i];\n }\n drawBody(pt, ctx, options) {\n const {body} = this;\n const {bodySpacing, bodyAlign, displayColors, boxHeight, boxWidth, boxPadding} = options;\n const bodyFont = toFont(options.bodyFont);\n let bodyLineHeight = bodyFont.lineHeight;\n let xLinePadding = 0;\n const rtlHelper = getRtlAdapter(options.rtl, this.x, this.width);\n const fillLineOfText = function(line) {\n ctx.fillText(line, rtlHelper.x(pt.x + xLinePadding), pt.y + bodyLineHeight / 2);\n pt.y += bodyLineHeight + bodySpacing;\n };\n const bodyAlignForCalculation = rtlHelper.textAlign(bodyAlign);\n let bodyItem, textColor, lines, i, j, ilen, jlen;\n ctx.textAlign = bodyAlign;\n ctx.textBaseline = 'middle';\n ctx.font = bodyFont.string;\n pt.x = getAlignedX(this, bodyAlignForCalculation, options);\n ctx.fillStyle = options.bodyColor;\n each(this.beforeBody, fillLineOfText);\n xLinePadding = displayColors && bodyAlignForCalculation !== 'right'\n ? bodyAlign === 'center' ? (boxWidth / 2 + boxPadding) : (boxWidth + 2 + boxPadding)\n : 0;\n for (i = 0, ilen = body.length; i < ilen; ++i) {\n bodyItem = body[i];\n textColor = this.labelTextColors[i];\n ctx.fillStyle = textColor;\n each(bodyItem.before, fillLineOfText);\n lines = bodyItem.lines;\n if (displayColors && lines.length) {\n this._drawColorBox(ctx, pt, i, rtlHelper, options);\n bodyLineHeight = Math.max(bodyFont.lineHeight, boxHeight);\n }\n for (j = 0, jlen = lines.length; j < jlen; ++j) {\n fillLineOfText(lines[j]);\n bodyLineHeight = bodyFont.lineHeight;\n }\n each(bodyItem.after, fillLineOfText);\n }\n xLinePadding = 0;\n bodyLineHeight = bodyFont.lineHeight;\n each(this.afterBody, fillLineOfText);\n pt.y -= bodySpacing;\n }\n drawFooter(pt, ctx, options) {\n const footer = this.footer;\n const length = footer.length;\n let footerFont, i;\n if (length) {\n const rtlHelper = getRtlAdapter(options.rtl, this.x, this.width);\n pt.x = getAlignedX(this, options.footerAlign, options);\n pt.y += options.footerMarginTop;\n ctx.textAlign = rtlHelper.textAlign(options.footerAlign);\n ctx.textBaseline = 'middle';\n footerFont = toFont(options.footerFont);\n ctx.fillStyle = options.footerColor;\n ctx.font = footerFont.string;\n for (i = 0; i < length; ++i) {\n ctx.fillText(footer[i], rtlHelper.x(pt.x), pt.y + footerFont.lineHeight / 2);\n pt.y += footerFont.lineHeight + options.footerSpacing;\n }\n }\n }\n drawBackground(pt, ctx, tooltipSize, options) {\n const {xAlign, yAlign} = this;\n const {x, y} = pt;\n const {width, height} = tooltipSize;\n const {topLeft, topRight, bottomLeft, bottomRight} = toTRBLCorners(options.cornerRadius);\n ctx.fillStyle = options.backgroundColor;\n ctx.strokeStyle = options.borderColor;\n ctx.lineWidth = options.borderWidth;\n ctx.beginPath();\n ctx.moveTo(x + topLeft, y);\n if (yAlign === 'top') {\n this.drawCaret(pt, ctx, tooltipSize, options);\n }\n ctx.lineTo(x + width - topRight, y);\n ctx.quadraticCurveTo(x + width, y, x + width, y + topRight);\n if (yAlign === 'center' && xAlign === 'right') {\n this.drawCaret(pt, ctx, tooltipSize, options);\n }\n ctx.lineTo(x + width, y + height - bottomRight);\n ctx.quadraticCurveTo(x + width, y + height, x + width - bottomRight, y + height);\n if (yAlign === 'bottom') {\n this.drawCaret(pt, ctx, tooltipSize, options);\n }\n ctx.lineTo(x + bottomLeft, y + height);\n ctx.quadraticCurveTo(x, y + height, x, y + height - bottomLeft);\n if (yAlign === 'center' && xAlign === 'left') {\n this.drawCaret(pt, ctx, tooltipSize, options);\n }\n ctx.lineTo(x, y + topLeft);\n ctx.quadraticCurveTo(x, y, x + topLeft, y);\n ctx.closePath();\n ctx.fill();\n if (options.borderWidth > 0) {\n ctx.stroke();\n }\n }\n _updateAnimationTarget(options) {\n const chart = this.chart;\n const anims = this.$animations;\n const animX = anims && anims.x;\n const animY = anims && anims.y;\n if (animX || animY) {\n const position = positioners[options.position].call(this, this._active, this._eventPosition);\n if (!position) {\n return;\n }\n const size = this._size = getTooltipSize(this, options);\n const positionAndSize = Object.assign({}, position, this._size);\n const alignment = determineAlignment(chart, options, positionAndSize);\n const point = getBackgroundPoint(options, positionAndSize, alignment, chart);\n if (animX._to !== point.x || animY._to !== point.y) {\n this.xAlign = alignment.xAlign;\n this.yAlign = alignment.yAlign;\n this.width = size.width;\n this.height = size.height;\n this.caretX = position.x;\n this.caretY = position.y;\n this._resolveAnimations().update(this, point);\n }\n }\n }\n _willRender() {\n return !!this.opacity;\n }\n draw(ctx) {\n const options = this.options.setContext(this.getContext());\n let opacity = this.opacity;\n if (!opacity) {\n return;\n }\n this._updateAnimationTarget(options);\n const tooltipSize = {\n width: this.width,\n height: this.height\n };\n const pt = {\n x: this.x,\n y: this.y\n };\n opacity = Math.abs(opacity) < 1e-3 ? 0 : opacity;\n const padding = toPadding(options.padding);\n const hasTooltipContent = this.title.length || this.beforeBody.length || this.body.length || this.afterBody.length || this.footer.length;\n if (options.enabled && hasTooltipContent) {\n ctx.save();\n ctx.globalAlpha = opacity;\n this.drawBackground(pt, ctx, tooltipSize, options);\n overrideTextDirection(ctx, options.textDirection);\n pt.y += padding.top;\n this.drawTitle(pt, ctx, options);\n this.drawBody(pt, ctx, options);\n this.drawFooter(pt, ctx, options);\n restoreTextDirection(ctx, options.textDirection);\n ctx.restore();\n }\n }\n getActiveElements() {\n return this._active || [];\n }\n setActiveElements(activeElements, eventPosition) {\n const lastActive = this._active;\n const active = activeElements.map(({datasetIndex, index}) => {\n const meta = this.chart.getDatasetMeta(datasetIndex);\n if (!meta) {\n throw new Error('Cannot find a dataset at index ' + datasetIndex);\n }\n return {\n datasetIndex,\n element: meta.data[index],\n index,\n };\n });\n const changed = !_elementsEqual(lastActive, active);\n const positionChanged = this._positionChanged(active, eventPosition);\n if (changed || positionChanged) {\n this._active = active;\n this._eventPosition = eventPosition;\n this._ignoreReplayEvents = true;\n this.update(true);\n }\n }\n handleEvent(e, replay, inChartArea = true) {\n if (replay && this._ignoreReplayEvents) {\n return false;\n }\n this._ignoreReplayEvents = false;\n const options = this.options;\n const lastActive = this._active || [];\n const active = this._getActiveElements(e, lastActive, replay, inChartArea);\n const positionChanged = this._positionChanged(active, e);\n const changed = replay || !_elementsEqual(active, lastActive) || positionChanged;\n if (changed) {\n this._active = active;\n if (options.enabled || options.external) {\n this._eventPosition = {\n x: e.x,\n y: e.y\n };\n this.update(true, replay);\n }\n }\n return changed;\n }\n _getActiveElements(e, lastActive, replay, inChartArea) {\n const options = this.options;\n if (e.type === 'mouseout') {\n return [];\n }\n if (!inChartArea) {\n return lastActive;\n }\n const active = this.chart.getElementsAtEventForMode(e, options.mode, options, replay);\n if (options.reverse) {\n active.reverse();\n }\n return active;\n }\n _positionChanged(active, e) {\n const {caretX, caretY, options} = this;\n const position = positioners[options.position].call(this, active, e);\n return position !== false && (caretX !== position.x || caretY !== position.y);\n }\n}\nTooltip.positioners = positioners;\nvar plugin_tooltip = {\n id: 'tooltip',\n _element: Tooltip,\n positioners,\n afterInit(chart, _args, options) {\n if (options) {\n chart.tooltip = new Tooltip({chart, options});\n }\n },\n beforeUpdate(chart, _args, options) {\n if (chart.tooltip) {\n chart.tooltip.initialize(options);\n }\n },\n reset(chart, _args, options) {\n if (chart.tooltip) {\n chart.tooltip.initialize(options);\n }\n },\n afterDraw(chart) {\n const tooltip = chart.tooltip;\n if (tooltip && tooltip._willRender()) {\n const args = {\n tooltip\n };\n if (chart.notifyPlugins('beforeTooltipDraw', args) === false) {\n return;\n }\n tooltip.draw(chart.ctx);\n chart.notifyPlugins('afterTooltipDraw', args);\n }\n },\n afterEvent(chart, args) {\n if (chart.tooltip) {\n const useFinalPosition = args.replay;\n if (chart.tooltip.handleEvent(args.event, useFinalPosition, args.inChartArea)) {\n args.changed = true;\n }\n }\n },\n defaults: {\n enabled: true,\n external: null,\n position: 'average',\n backgroundColor: 'rgba(0,0,0,0.8)',\n titleColor: '#fff',\n titleFont: {\n weight: 'bold',\n },\n titleSpacing: 2,\n titleMarginBottom: 6,\n titleAlign: 'left',\n bodyColor: '#fff',\n bodySpacing: 2,\n bodyFont: {\n },\n bodyAlign: 'left',\n footerColor: '#fff',\n footerSpacing: 2,\n footerMarginTop: 6,\n footerFont: {\n weight: 'bold',\n },\n footerAlign: 'left',\n padding: 6,\n caretPadding: 2,\n caretSize: 5,\n cornerRadius: 6,\n boxHeight: (ctx, opts) => opts.bodyFont.size,\n boxWidth: (ctx, opts) => opts.bodyFont.size,\n multiKeyBackground: '#fff',\n displayColors: true,\n boxPadding: 0,\n borderColor: 'rgba(0,0,0,0)',\n borderWidth: 0,\n animation: {\n duration: 400,\n easing: 'easeOutQuart',\n },\n animations: {\n numbers: {\n type: 'number',\n properties: ['x', 'y', 'width', 'height', 'caretX', 'caretY'],\n },\n opacity: {\n easing: 'linear',\n duration: 200\n }\n },\n callbacks: {\n beforeTitle: noop,\n title(tooltipItems) {\n if (tooltipItems.length > 0) {\n const item = tooltipItems[0];\n const labels = item.chart.data.labels;\n const labelCount = labels ? labels.length : 0;\n if (this && this.options && this.options.mode === 'dataset') {\n return item.dataset.label || '';\n } else if (item.label) {\n return item.label;\n } else if (labelCount > 0 && item.dataIndex < labelCount) {\n return labels[item.dataIndex];\n }\n }\n return '';\n },\n afterTitle: noop,\n beforeBody: noop,\n beforeLabel: noop,\n label(tooltipItem) {\n if (this && this.options && this.options.mode === 'dataset') {\n return tooltipItem.label + ': ' + tooltipItem.formattedValue || tooltipItem.formattedValue;\n }\n let label = tooltipItem.dataset.label || '';\n if (label) {\n label += ': ';\n }\n const value = tooltipItem.formattedValue;\n if (!isNullOrUndef(value)) {\n label += value;\n }\n return label;\n },\n labelColor(tooltipItem) {\n const meta = tooltipItem.chart.getDatasetMeta(tooltipItem.datasetIndex);\n const options = meta.controller.getStyle(tooltipItem.dataIndex);\n return {\n borderColor: options.borderColor,\n backgroundColor: options.backgroundColor,\n borderWidth: options.borderWidth,\n borderDash: options.borderDash,\n borderDashOffset: options.borderDashOffset,\n borderRadius: 0,\n };\n },\n labelTextColor() {\n return this.options.bodyColor;\n },\n labelPointStyle(tooltipItem) {\n const meta = tooltipItem.chart.getDatasetMeta(tooltipItem.datasetIndex);\n const options = meta.controller.getStyle(tooltipItem.dataIndex);\n return {\n pointStyle: options.pointStyle,\n rotation: options.rotation,\n };\n },\n afterLabel: noop,\n afterBody: noop,\n beforeFooter: noop,\n footer: noop,\n afterFooter: noop\n }\n },\n defaultRoutes: {\n bodyFont: 'font',\n footerFont: 'font',\n titleFont: 'font'\n },\n descriptors: {\n _scriptable: (name) => name !== 'filter' && name !== 'itemSort' && name !== 'external',\n _indexable: false,\n callbacks: {\n _scriptable: false,\n _indexable: false,\n },\n animation: {\n _fallback: false\n },\n animations: {\n _fallback: 'animation'\n }\n },\n additionalOptionScopes: ['interaction']\n};\n\nvar plugins = /*#__PURE__*/Object.freeze({\n__proto__: null,\nDecimation: plugin_decimation,\nFiller: index,\nLegend: plugin_legend,\nSubTitle: plugin_subtitle,\nTitle: plugin_title,\nTooltip: plugin_tooltip\n});\n\nconst addIfString = (labels, raw, index, addedLabels) => {\n if (typeof raw === 'string') {\n index = labels.push(raw) - 1;\n addedLabels.unshift({index, label: raw});\n } else if (isNaN(raw)) {\n index = null;\n }\n return index;\n};\nfunction findOrAddLabel(labels, raw, index, addedLabels) {\n const first = labels.indexOf(raw);\n if (first === -1) {\n return addIfString(labels, raw, index, addedLabels);\n }\n const last = labels.lastIndexOf(raw);\n return first !== last ? index : first;\n}\nconst validIndex = (index, max) => index === null ? null : _limitValue(Math.round(index), 0, max);\nclass CategoryScale extends Scale {\n constructor(cfg) {\n super(cfg);\n this._startValue = undefined;\n this._valueRange = 0;\n this._addedLabels = [];\n }\n init(scaleOptions) {\n const added = this._addedLabels;\n if (added.length) {\n const labels = this.getLabels();\n for (const {index, label} of added) {\n if (labels[index] === label) {\n labels.splice(index, 1);\n }\n }\n this._addedLabels = [];\n }\n super.init(scaleOptions);\n }\n parse(raw, index) {\n if (isNullOrUndef(raw)) {\n return null;\n }\n const labels = this.getLabels();\n index = isFinite(index) && labels[index] === raw ? index\n : findOrAddLabel(labels, raw, valueOrDefault(index, raw), this._addedLabels);\n return validIndex(index, labels.length - 1);\n }\n determineDataLimits() {\n const {minDefined, maxDefined} = this.getUserBounds();\n let {min, max} = this.getMinMax(true);\n if (this.options.bounds === 'ticks') {\n if (!minDefined) {\n min = 0;\n }\n if (!maxDefined) {\n max = this.getLabels().length - 1;\n }\n }\n this.min = min;\n this.max = max;\n }\n buildTicks() {\n const min = this.min;\n const max = this.max;\n const offset = this.options.offset;\n const ticks = [];\n let labels = this.getLabels();\n labels = (min === 0 && max === labels.length - 1) ? labels : labels.slice(min, max + 1);\n this._valueRange = Math.max(labels.length - (offset ? 0 : 1), 1);\n this._startValue = this.min - (offset ? 0.5 : 0);\n for (let value = min; value <= max; value++) {\n ticks.push({value});\n }\n return ticks;\n }\n getLabelForValue(value) {\n const labels = this.getLabels();\n if (value >= 0 && value < labels.length) {\n return labels[value];\n }\n return value;\n }\n configure() {\n super.configure();\n if (!this.isHorizontal()) {\n this._reversePixels = !this._reversePixels;\n }\n }\n getPixelForValue(value) {\n if (typeof value !== 'number') {\n value = this.parse(value);\n }\n return value === null ? NaN : this.getPixelForDecimal((value - this._startValue) / this._valueRange);\n }\n getPixelForTick(index) {\n const ticks = this.ticks;\n if (index < 0 || index > ticks.length - 1) {\n return null;\n }\n return this.getPixelForValue(ticks[index].value);\n }\n getValueForPixel(pixel) {\n return Math.round(this._startValue + this.getDecimalForPixel(pixel) * this._valueRange);\n }\n getBasePixel() {\n return this.bottom;\n }\n}\nCategoryScale.id = 'category';\nCategoryScale.defaults = {\n ticks: {\n callback: CategoryScale.prototype.getLabelForValue\n }\n};\n\nfunction generateTicks$1(generationOptions, dataRange) {\n const ticks = [];\n const MIN_SPACING = 1e-14;\n const {bounds, step, min, max, precision, count, maxTicks, maxDigits, includeBounds} = generationOptions;\n const unit = step || 1;\n const maxSpaces = maxTicks - 1;\n const {min: rmin, max: rmax} = dataRange;\n const minDefined = !isNullOrUndef(min);\n const maxDefined = !isNullOrUndef(max);\n const countDefined = !isNullOrUndef(count);\n const minSpacing = (rmax - rmin) / (maxDigits + 1);\n let spacing = niceNum((rmax - rmin) / maxSpaces / unit) * unit;\n let factor, niceMin, niceMax, numSpaces;\n if (spacing < MIN_SPACING && !minDefined && !maxDefined) {\n return [{value: rmin}, {value: rmax}];\n }\n numSpaces = Math.ceil(rmax / spacing) - Math.floor(rmin / spacing);\n if (numSpaces > maxSpaces) {\n spacing = niceNum(numSpaces * spacing / maxSpaces / unit) * unit;\n }\n if (!isNullOrUndef(precision)) {\n factor = Math.pow(10, precision);\n spacing = Math.ceil(spacing * factor) / factor;\n }\n if (bounds === 'ticks') {\n niceMin = Math.floor(rmin / spacing) * spacing;\n niceMax = Math.ceil(rmax / spacing) * spacing;\n } else {\n niceMin = rmin;\n niceMax = rmax;\n }\n if (minDefined && maxDefined && step && almostWhole((max - min) / step, spacing / 1000)) {\n numSpaces = Math.round(Math.min((max - min) / spacing, maxTicks));\n spacing = (max - min) / numSpaces;\n niceMin = min;\n niceMax = max;\n } else if (countDefined) {\n niceMin = minDefined ? min : niceMin;\n niceMax = maxDefined ? max : niceMax;\n numSpaces = count - 1;\n spacing = (niceMax - niceMin) / numSpaces;\n } else {\n numSpaces = (niceMax - niceMin) / spacing;\n if (almostEquals(numSpaces, Math.round(numSpaces), spacing / 1000)) {\n numSpaces = Math.round(numSpaces);\n } else {\n numSpaces = Math.ceil(numSpaces);\n }\n }\n const decimalPlaces = Math.max(\n _decimalPlaces(spacing),\n _decimalPlaces(niceMin)\n );\n factor = Math.pow(10, isNullOrUndef(precision) ? decimalPlaces : precision);\n niceMin = Math.round(niceMin * factor) / factor;\n niceMax = Math.round(niceMax * factor) / factor;\n let j = 0;\n if (minDefined) {\n if (includeBounds && niceMin !== min) {\n ticks.push({value: min});\n if (niceMin < min) {\n j++;\n }\n if (almostEquals(Math.round((niceMin + j * spacing) * factor) / factor, min, relativeLabelSize(min, minSpacing, generationOptions))) {\n j++;\n }\n } else if (niceMin < min) {\n j++;\n }\n }\n for (; j < numSpaces; ++j) {\n ticks.push({value: Math.round((niceMin + j * spacing) * factor) / factor});\n }\n if (maxDefined && includeBounds && niceMax !== max) {\n if (ticks.length && almostEquals(ticks[ticks.length - 1].value, max, relativeLabelSize(max, minSpacing, generationOptions))) {\n ticks[ticks.length - 1].value = max;\n } else {\n ticks.push({value: max});\n }\n } else if (!maxDefined || niceMax === max) {\n ticks.push({value: niceMax});\n }\n return ticks;\n}\nfunction relativeLabelSize(value, minSpacing, {horizontal, minRotation}) {\n const rad = toRadians(minRotation);\n const ratio = (horizontal ? Math.sin(rad) : Math.cos(rad)) || 0.001;\n const length = 0.75 * minSpacing * ('' + value).length;\n return Math.min(minSpacing / ratio, length);\n}\nclass LinearScaleBase extends Scale {\n constructor(cfg) {\n super(cfg);\n this.start = undefined;\n this.end = undefined;\n this._startValue = undefined;\n this._endValue = undefined;\n this._valueRange = 0;\n }\n parse(raw, index) {\n if (isNullOrUndef(raw)) {\n return null;\n }\n if ((typeof raw === 'number' || raw instanceof Number) && !isFinite(+raw)) {\n return null;\n }\n return +raw;\n }\n handleTickRangeOptions() {\n const {beginAtZero} = this.options;\n const {minDefined, maxDefined} = this.getUserBounds();\n let {min, max} = this;\n const setMin = v => (min = minDefined ? min : v);\n const setMax = v => (max = maxDefined ? max : v);\n if (beginAtZero) {\n const minSign = sign(min);\n const maxSign = sign(max);\n if (minSign < 0 && maxSign < 0) {\n setMax(0);\n } else if (minSign > 0 && maxSign > 0) {\n setMin(0);\n }\n }\n if (min === max) {\n let offset = 1;\n if (max >= Number.MAX_SAFE_INTEGER || min <= Number.MIN_SAFE_INTEGER) {\n offset = Math.abs(max * 0.05);\n }\n setMax(max + offset);\n if (!beginAtZero) {\n setMin(min - offset);\n }\n }\n this.min = min;\n this.max = max;\n }\n getTickLimit() {\n const tickOpts = this.options.ticks;\n let {maxTicksLimit, stepSize} = tickOpts;\n let maxTicks;\n if (stepSize) {\n maxTicks = Math.ceil(this.max / stepSize) - Math.floor(this.min / stepSize) + 1;\n if (maxTicks > 1000) {\n console.warn(`scales.${this.id}.ticks.stepSize: ${stepSize} would result generating up to ${maxTicks} ticks. Limiting to 1000.`);\n maxTicks = 1000;\n }\n } else {\n maxTicks = this.computeTickLimit();\n maxTicksLimit = maxTicksLimit || 11;\n }\n if (maxTicksLimit) {\n maxTicks = Math.min(maxTicksLimit, maxTicks);\n }\n return maxTicks;\n }\n computeTickLimit() {\n return Number.POSITIVE_INFINITY;\n }\n buildTicks() {\n const opts = this.options;\n const tickOpts = opts.ticks;\n let maxTicks = this.getTickLimit();\n maxTicks = Math.max(2, maxTicks);\n const numericGeneratorOptions = {\n maxTicks,\n bounds: opts.bounds,\n min: opts.min,\n max: opts.max,\n precision: tickOpts.precision,\n step: tickOpts.stepSize,\n count: tickOpts.count,\n maxDigits: this._maxDigits(),\n horizontal: this.isHorizontal(),\n minRotation: tickOpts.minRotation || 0,\n includeBounds: tickOpts.includeBounds !== false\n };\n const dataRange = this._range || this;\n const ticks = generateTicks$1(numericGeneratorOptions, dataRange);\n if (opts.bounds === 'ticks') {\n _setMinAndMaxByKey(ticks, this, 'value');\n }\n if (opts.reverse) {\n ticks.reverse();\n this.start = this.max;\n this.end = this.min;\n } else {\n this.start = this.min;\n this.end = this.max;\n }\n return ticks;\n }\n configure() {\n const ticks = this.ticks;\n let start = this.min;\n let end = this.max;\n super.configure();\n if (this.options.offset && ticks.length) {\n const offset = (end - start) / Math.max(ticks.length - 1, 1) / 2;\n start -= offset;\n end += offset;\n }\n this._startValue = start;\n this._endValue = end;\n this._valueRange = end - start;\n }\n getLabelForValue(value) {\n return formatNumber(value, this.chart.options.locale, this.options.ticks.format);\n }\n}\n\nclass LinearScale extends LinearScaleBase {\n determineDataLimits() {\n const {min, max} = this.getMinMax(true);\n this.min = isNumberFinite(min) ? min : 0;\n this.max = isNumberFinite(max) ? max : 1;\n this.handleTickRangeOptions();\n }\n computeTickLimit() {\n const horizontal = this.isHorizontal();\n const length = horizontal ? this.width : this.height;\n const minRotation = toRadians(this.options.ticks.minRotation);\n const ratio = (horizontal ? Math.sin(minRotation) : Math.cos(minRotation)) || 0.001;\n const tickFont = this._resolveTickFontOptions(0);\n return Math.ceil(length / Math.min(40, tickFont.lineHeight / ratio));\n }\n getPixelForValue(value) {\n return value === null ? NaN : this.getPixelForDecimal((value - this._startValue) / this._valueRange);\n }\n getValueForPixel(pixel) {\n return this._startValue + this.getDecimalForPixel(pixel) * this._valueRange;\n }\n}\nLinearScale.id = 'linear';\nLinearScale.defaults = {\n ticks: {\n callback: Ticks.formatters.numeric\n }\n};\n\nfunction isMajor(tickVal) {\n const remain = tickVal / (Math.pow(10, Math.floor(log10(tickVal))));\n return remain === 1;\n}\nfunction generateTicks(generationOptions, dataRange) {\n const endExp = Math.floor(log10(dataRange.max));\n const endSignificand = Math.ceil(dataRange.max / Math.pow(10, endExp));\n const ticks = [];\n let tickVal = finiteOrDefault(generationOptions.min, Math.pow(10, Math.floor(log10(dataRange.min))));\n let exp = Math.floor(log10(tickVal));\n let significand = Math.floor(tickVal / Math.pow(10, exp));\n let precision = exp < 0 ? Math.pow(10, Math.abs(exp)) : 1;\n do {\n ticks.push({value: tickVal, major: isMajor(tickVal)});\n ++significand;\n if (significand === 10) {\n significand = 1;\n ++exp;\n precision = exp >= 0 ? 1 : precision;\n }\n tickVal = Math.round(significand * Math.pow(10, exp) * precision) / precision;\n } while (exp < endExp || (exp === endExp && significand < endSignificand));\n const lastTick = finiteOrDefault(generationOptions.max, tickVal);\n ticks.push({value: lastTick, major: isMajor(tickVal)});\n return ticks;\n}\nclass LogarithmicScale extends Scale {\n constructor(cfg) {\n super(cfg);\n this.start = undefined;\n this.end = undefined;\n this._startValue = undefined;\n this._valueRange = 0;\n }\n parse(raw, index) {\n const value = LinearScaleBase.prototype.parse.apply(this, [raw, index]);\n if (value === 0) {\n this._zero = true;\n return undefined;\n }\n return isNumberFinite(value) && value > 0 ? value : null;\n }\n determineDataLimits() {\n const {min, max} = this.getMinMax(true);\n this.min = isNumberFinite(min) ? Math.max(0, min) : null;\n this.max = isNumberFinite(max) ? Math.max(0, max) : null;\n if (this.options.beginAtZero) {\n this._zero = true;\n }\n this.handleTickRangeOptions();\n }\n handleTickRangeOptions() {\n const {minDefined, maxDefined} = this.getUserBounds();\n let min = this.min;\n let max = this.max;\n const setMin = v => (min = minDefined ? min : v);\n const setMax = v => (max = maxDefined ? max : v);\n const exp = (v, m) => Math.pow(10, Math.floor(log10(v)) + m);\n if (min === max) {\n if (min <= 0) {\n setMin(1);\n setMax(10);\n } else {\n setMin(exp(min, -1));\n setMax(exp(max, +1));\n }\n }\n if (min <= 0) {\n setMin(exp(max, -1));\n }\n if (max <= 0) {\n setMax(exp(min, +1));\n }\n if (this._zero && this.min !== this._suggestedMin && min === exp(this.min, 0)) {\n setMin(exp(min, -1));\n }\n this.min = min;\n this.max = max;\n }\n buildTicks() {\n const opts = this.options;\n const generationOptions = {\n min: this._userMin,\n max: this._userMax\n };\n const ticks = generateTicks(generationOptions, this);\n if (opts.bounds === 'ticks') {\n _setMinAndMaxByKey(ticks, this, 'value');\n }\n if (opts.reverse) {\n ticks.reverse();\n this.start = this.max;\n this.end = this.min;\n } else {\n this.start = this.min;\n this.end = this.max;\n }\n return ticks;\n }\n getLabelForValue(value) {\n return value === undefined\n ? '0'\n : formatNumber(value, this.chart.options.locale, this.options.ticks.format);\n }\n configure() {\n const start = this.min;\n super.configure();\n this._startValue = log10(start);\n this._valueRange = log10(this.max) - log10(start);\n }\n getPixelForValue(value) {\n if (value === undefined || value === 0) {\n value = this.min;\n }\n if (value === null || isNaN(value)) {\n return NaN;\n }\n return this.getPixelForDecimal(value === this.min\n ? 0\n : (log10(value) - this._startValue) / this._valueRange);\n }\n getValueForPixel(pixel) {\n const decimal = this.getDecimalForPixel(pixel);\n return Math.pow(10, this._startValue + decimal * this._valueRange);\n }\n}\nLogarithmicScale.id = 'logarithmic';\nLogarithmicScale.defaults = {\n ticks: {\n callback: Ticks.formatters.logarithmic,\n major: {\n enabled: true\n }\n }\n};\n\nfunction getTickBackdropHeight(opts) {\n const tickOpts = opts.ticks;\n if (tickOpts.display && opts.display) {\n const padding = toPadding(tickOpts.backdropPadding);\n return valueOrDefault(tickOpts.font && tickOpts.font.size, defaults.font.size) + padding.height;\n }\n return 0;\n}\nfunction measureLabelSize(ctx, font, label) {\n label = isArray(label) ? label : [label];\n return {\n w: _longestText(ctx, font.string, label),\n h: label.length * font.lineHeight\n };\n}\nfunction determineLimits(angle, pos, size, min, max) {\n if (angle === min || angle === max) {\n return {\n start: pos - (size / 2),\n end: pos + (size / 2)\n };\n } else if (angle < min || angle > max) {\n return {\n start: pos - size,\n end: pos\n };\n }\n return {\n start: pos,\n end: pos + size\n };\n}\nfunction fitWithPointLabels(scale) {\n const orig = {\n l: scale.left + scale._padding.left,\n r: scale.right - scale._padding.right,\n t: scale.top + scale._padding.top,\n b: scale.bottom - scale._padding.bottom\n };\n const limits = Object.assign({}, orig);\n const labelSizes = [];\n const padding = [];\n const valueCount = scale._pointLabels.length;\n const pointLabelOpts = scale.options.pointLabels;\n const additionalAngle = pointLabelOpts.centerPointLabels ? PI / valueCount : 0;\n for (let i = 0; i < valueCount; i++) {\n const opts = pointLabelOpts.setContext(scale.getPointLabelContext(i));\n padding[i] = opts.padding;\n const pointPosition = scale.getPointPosition(i, scale.drawingArea + padding[i], additionalAngle);\n const plFont = toFont(opts.font);\n const textSize = measureLabelSize(scale.ctx, plFont, scale._pointLabels[i]);\n labelSizes[i] = textSize;\n const angleRadians = _normalizeAngle(scale.getIndexAngle(i) + additionalAngle);\n const angle = Math.round(toDegrees(angleRadians));\n const hLimits = determineLimits(angle, pointPosition.x, textSize.w, 0, 180);\n const vLimits = determineLimits(angle, pointPosition.y, textSize.h, 90, 270);\n updateLimits(limits, orig, angleRadians, hLimits, vLimits);\n }\n scale.setCenterPoint(\n orig.l - limits.l,\n limits.r - orig.r,\n orig.t - limits.t,\n limits.b - orig.b\n );\n scale._pointLabelItems = buildPointLabelItems(scale, labelSizes, padding);\n}\nfunction updateLimits(limits, orig, angle, hLimits, vLimits) {\n const sin = Math.abs(Math.sin(angle));\n const cos = Math.abs(Math.cos(angle));\n let x = 0;\n let y = 0;\n if (hLimits.start < orig.l) {\n x = (orig.l - hLimits.start) / sin;\n limits.l = Math.min(limits.l, orig.l - x);\n } else if (hLimits.end > orig.r) {\n x = (hLimits.end - orig.r) / sin;\n limits.r = Math.max(limits.r, orig.r + x);\n }\n if (vLimits.start < orig.t) {\n y = (orig.t - vLimits.start) / cos;\n limits.t = Math.min(limits.t, orig.t - y);\n } else if (vLimits.end > orig.b) {\n y = (vLimits.end - orig.b) / cos;\n limits.b = Math.max(limits.b, orig.b + y);\n }\n}\nfunction buildPointLabelItems(scale, labelSizes, padding) {\n const items = [];\n const valueCount = scale._pointLabels.length;\n const opts = scale.options;\n const extra = getTickBackdropHeight(opts) / 2;\n const outerDistance = scale.drawingArea;\n const additionalAngle = opts.pointLabels.centerPointLabels ? PI / valueCount : 0;\n for (let i = 0; i < valueCount; i++) {\n const pointLabelPosition = scale.getPointPosition(i, outerDistance + extra + padding[i], additionalAngle);\n const angle = Math.round(toDegrees(_normalizeAngle(pointLabelPosition.angle + HALF_PI)));\n const size = labelSizes[i];\n const y = yForAngle(pointLabelPosition.y, size.h, angle);\n const textAlign = getTextAlignForAngle(angle);\n const left = leftForTextAlign(pointLabelPosition.x, size.w, textAlign);\n items.push({\n x: pointLabelPosition.x,\n y,\n textAlign,\n left,\n top: y,\n right: left + size.w,\n bottom: y + size.h\n });\n }\n return items;\n}\nfunction getTextAlignForAngle(angle) {\n if (angle === 0 || angle === 180) {\n return 'center';\n } else if (angle < 180) {\n return 'left';\n }\n return 'right';\n}\nfunction leftForTextAlign(x, w, align) {\n if (align === 'right') {\n x -= w;\n } else if (align === 'center') {\n x -= (w / 2);\n }\n return x;\n}\nfunction yForAngle(y, h, angle) {\n if (angle === 90 || angle === 270) {\n y -= (h / 2);\n } else if (angle > 270 || angle < 90) {\n y -= h;\n }\n return y;\n}\nfunction drawPointLabels(scale, labelCount) {\n const {ctx, options: {pointLabels}} = scale;\n for (let i = labelCount - 1; i >= 0; i--) {\n const optsAtIndex = pointLabels.setContext(scale.getPointLabelContext(i));\n const plFont = toFont(optsAtIndex.font);\n const {x, y, textAlign, left, top, right, bottom} = scale._pointLabelItems[i];\n const {backdropColor} = optsAtIndex;\n if (!isNullOrUndef(backdropColor)) {\n const borderRadius = toTRBLCorners(optsAtIndex.borderRadius);\n const padding = toPadding(optsAtIndex.backdropPadding);\n ctx.fillStyle = backdropColor;\n const backdropLeft = left - padding.left;\n const backdropTop = top - padding.top;\n const backdropWidth = right - left + padding.width;\n const backdropHeight = bottom - top + padding.height;\n if (Object.values(borderRadius).some(v => v !== 0)) {\n ctx.beginPath();\n addRoundedRectPath(ctx, {\n x: backdropLeft,\n y: backdropTop,\n w: backdropWidth,\n h: backdropHeight,\n radius: borderRadius,\n });\n ctx.fill();\n } else {\n ctx.fillRect(backdropLeft, backdropTop, backdropWidth, backdropHeight);\n }\n }\n renderText(\n ctx,\n scale._pointLabels[i],\n x,\n y + (plFont.lineHeight / 2),\n plFont,\n {\n color: optsAtIndex.color,\n textAlign: textAlign,\n textBaseline: 'middle'\n }\n );\n }\n}\nfunction pathRadiusLine(scale, radius, circular, labelCount) {\n const {ctx} = scale;\n if (circular) {\n ctx.arc(scale.xCenter, scale.yCenter, radius, 0, TAU);\n } else {\n let pointPosition = scale.getPointPosition(0, radius);\n ctx.moveTo(pointPosition.x, pointPosition.y);\n for (let i = 1; i < labelCount; i++) {\n pointPosition = scale.getPointPosition(i, radius);\n ctx.lineTo(pointPosition.x, pointPosition.y);\n }\n }\n}\nfunction drawRadiusLine(scale, gridLineOpts, radius, labelCount) {\n const ctx = scale.ctx;\n const circular = gridLineOpts.circular;\n const {color, lineWidth} = gridLineOpts;\n if ((!circular && !labelCount) || !color || !lineWidth || radius < 0) {\n return;\n }\n ctx.save();\n ctx.strokeStyle = color;\n ctx.lineWidth = lineWidth;\n ctx.setLineDash(gridLineOpts.borderDash);\n ctx.lineDashOffset = gridLineOpts.borderDashOffset;\n ctx.beginPath();\n pathRadiusLine(scale, radius, circular, labelCount);\n ctx.closePath();\n ctx.stroke();\n ctx.restore();\n}\nfunction createPointLabelContext(parent, index, label) {\n return createContext(parent, {\n label,\n index,\n type: 'pointLabel'\n });\n}\nclass RadialLinearScale extends LinearScaleBase {\n constructor(cfg) {\n super(cfg);\n this.xCenter = undefined;\n this.yCenter = undefined;\n this.drawingArea = undefined;\n this._pointLabels = [];\n this._pointLabelItems = [];\n }\n setDimensions() {\n const padding = this._padding = toPadding(getTickBackdropHeight(this.options) / 2);\n const w = this.width = this.maxWidth - padding.width;\n const h = this.height = this.maxHeight - padding.height;\n this.xCenter = Math.floor(this.left + w / 2 + padding.left);\n this.yCenter = Math.floor(this.top + h / 2 + padding.top);\n this.drawingArea = Math.floor(Math.min(w, h) / 2);\n }\n determineDataLimits() {\n const {min, max} = this.getMinMax(false);\n this.min = isNumberFinite(min) && !isNaN(min) ? min : 0;\n this.max = isNumberFinite(max) && !isNaN(max) ? max : 0;\n this.handleTickRangeOptions();\n }\n computeTickLimit() {\n return Math.ceil(this.drawingArea / getTickBackdropHeight(this.options));\n }\n generateTickLabels(ticks) {\n LinearScaleBase.prototype.generateTickLabels.call(this, ticks);\n this._pointLabels = this.getLabels()\n .map((value, index) => {\n const label = callback(this.options.pointLabels.callback, [value, index], this);\n return label || label === 0 ? label : '';\n })\n .filter((v, i) => this.chart.getDataVisibility(i));\n }\n fit() {\n const opts = this.options;\n if (opts.display && opts.pointLabels.display) {\n fitWithPointLabels(this);\n } else {\n this.setCenterPoint(0, 0, 0, 0);\n }\n }\n setCenterPoint(leftMovement, rightMovement, topMovement, bottomMovement) {\n this.xCenter += Math.floor((leftMovement - rightMovement) / 2);\n this.yCenter += Math.floor((topMovement - bottomMovement) / 2);\n this.drawingArea -= Math.min(this.drawingArea / 2, Math.max(leftMovement, rightMovement, topMovement, bottomMovement));\n }\n getIndexAngle(index) {\n const angleMultiplier = TAU / (this._pointLabels.length || 1);\n const startAngle = this.options.startAngle || 0;\n return _normalizeAngle(index * angleMultiplier + toRadians(startAngle));\n }\n getDistanceFromCenterForValue(value) {\n if (isNullOrUndef(value)) {\n return NaN;\n }\n const scalingFactor = this.drawingArea / (this.max - this.min);\n if (this.options.reverse) {\n return (this.max - value) * scalingFactor;\n }\n return (value - this.min) * scalingFactor;\n }\n getValueForDistanceFromCenter(distance) {\n if (isNullOrUndef(distance)) {\n return NaN;\n }\n const scaledDistance = distance / (this.drawingArea / (this.max - this.min));\n return this.options.reverse ? this.max - scaledDistance : this.min + scaledDistance;\n }\n getPointLabelContext(index) {\n const pointLabels = this._pointLabels || [];\n if (index >= 0 && index < pointLabels.length) {\n const pointLabel = pointLabels[index];\n return createPointLabelContext(this.getContext(), index, pointLabel);\n }\n }\n getPointPosition(index, distanceFromCenter, additionalAngle = 0) {\n const angle = this.getIndexAngle(index) - HALF_PI + additionalAngle;\n return {\n x: Math.cos(angle) * distanceFromCenter + this.xCenter,\n y: Math.sin(angle) * distanceFromCenter + this.yCenter,\n angle\n };\n }\n getPointPositionForValue(index, value) {\n return this.getPointPosition(index, this.getDistanceFromCenterForValue(value));\n }\n getBasePosition(index) {\n return this.getPointPositionForValue(index || 0, this.getBaseValue());\n }\n getPointLabelPosition(index) {\n const {left, top, right, bottom} = this._pointLabelItems[index];\n return {\n left,\n top,\n right,\n bottom,\n };\n }\n drawBackground() {\n const {backgroundColor, grid: {circular}} = this.options;\n if (backgroundColor) {\n const ctx = this.ctx;\n ctx.save();\n ctx.beginPath();\n pathRadiusLine(this, this.getDistanceFromCenterForValue(this._endValue), circular, this._pointLabels.length);\n ctx.closePath();\n ctx.fillStyle = backgroundColor;\n ctx.fill();\n ctx.restore();\n }\n }\n drawGrid() {\n const ctx = this.ctx;\n const opts = this.options;\n const {angleLines, grid} = opts;\n const labelCount = this._pointLabels.length;\n let i, offset, position;\n if (opts.pointLabels.display) {\n drawPointLabels(this, labelCount);\n }\n if (grid.display) {\n this.ticks.forEach((tick, index) => {\n if (index !== 0) {\n offset = this.getDistanceFromCenterForValue(tick.value);\n const optsAtIndex = grid.setContext(this.getContext(index - 1));\n drawRadiusLine(this, optsAtIndex, offset, labelCount);\n }\n });\n }\n if (angleLines.display) {\n ctx.save();\n for (i = labelCount - 1; i >= 0; i--) {\n const optsAtIndex = angleLines.setContext(this.getPointLabelContext(i));\n const {color, lineWidth} = optsAtIndex;\n if (!lineWidth || !color) {\n continue;\n }\n ctx.lineWidth = lineWidth;\n ctx.strokeStyle = color;\n ctx.setLineDash(optsAtIndex.borderDash);\n ctx.lineDashOffset = optsAtIndex.borderDashOffset;\n offset = this.getDistanceFromCenterForValue(opts.ticks.reverse ? this.min : this.max);\n position = this.getPointPosition(i, offset);\n ctx.beginPath();\n ctx.moveTo(this.xCenter, this.yCenter);\n ctx.lineTo(position.x, position.y);\n ctx.stroke();\n }\n ctx.restore();\n }\n }\n drawBorder() {}\n drawLabels() {\n const ctx = this.ctx;\n const opts = this.options;\n const tickOpts = opts.ticks;\n if (!tickOpts.display) {\n return;\n }\n const startAngle = this.getIndexAngle(0);\n let offset, width;\n ctx.save();\n ctx.translate(this.xCenter, this.yCenter);\n ctx.rotate(startAngle);\n ctx.textAlign = 'center';\n ctx.textBaseline = 'middle';\n this.ticks.forEach((tick, index) => {\n if (index === 0 && !opts.reverse) {\n return;\n }\n const optsAtIndex = tickOpts.setContext(this.getContext(index));\n const tickFont = toFont(optsAtIndex.font);\n offset = this.getDistanceFromCenterForValue(this.ticks[index].value);\n if (optsAtIndex.showLabelBackdrop) {\n ctx.font = tickFont.string;\n width = ctx.measureText(tick.label).width;\n ctx.fillStyle = optsAtIndex.backdropColor;\n const padding = toPadding(optsAtIndex.backdropPadding);\n ctx.fillRect(\n -width / 2 - padding.left,\n -offset - tickFont.size / 2 - padding.top,\n width + padding.width,\n tickFont.size + padding.height\n );\n }\n renderText(ctx, tick.label, 0, -offset, tickFont, {\n color: optsAtIndex.color,\n });\n });\n ctx.restore();\n }\n drawTitle() {}\n}\nRadialLinearScale.id = 'radialLinear';\nRadialLinearScale.defaults = {\n display: true,\n animate: true,\n position: 'chartArea',\n angleLines: {\n display: true,\n lineWidth: 1,\n borderDash: [],\n borderDashOffset: 0.0\n },\n grid: {\n circular: false\n },\n startAngle: 0,\n ticks: {\n showLabelBackdrop: true,\n callback: Ticks.formatters.numeric\n },\n pointLabels: {\n backdropColor: undefined,\n backdropPadding: 2,\n display: true,\n font: {\n size: 10\n },\n callback(label) {\n return label;\n },\n padding: 5,\n centerPointLabels: false\n }\n};\nRadialLinearScale.defaultRoutes = {\n 'angleLines.color': 'borderColor',\n 'pointLabels.color': 'color',\n 'ticks.color': 'color'\n};\nRadialLinearScale.descriptors = {\n angleLines: {\n _fallback: 'grid'\n }\n};\n\nconst INTERVALS = {\n millisecond: {common: true, size: 1, steps: 1000},\n second: {common: true, size: 1000, steps: 60},\n minute: {common: true, size: 60000, steps: 60},\n hour: {common: true, size: 3600000, steps: 24},\n day: {common: true, size: 86400000, steps: 30},\n week: {common: false, size: 604800000, steps: 4},\n month: {common: true, size: 2.628e9, steps: 12},\n quarter: {common: false, size: 7.884e9, steps: 4},\n year: {common: true, size: 3.154e10}\n};\nconst UNITS = (Object.keys(INTERVALS));\nfunction sorter(a, b) {\n return a - b;\n}\nfunction parse(scale, input) {\n if (isNullOrUndef(input)) {\n return null;\n }\n const adapter = scale._adapter;\n const {parser, round, isoWeekday} = scale._parseOpts;\n let value = input;\n if (typeof parser === 'function') {\n value = parser(value);\n }\n if (!isNumberFinite(value)) {\n value = typeof parser === 'string'\n ? adapter.parse(value, parser)\n : adapter.parse(value);\n }\n if (value === null) {\n return null;\n }\n if (round) {\n value = round === 'week' && (isNumber(isoWeekday) || isoWeekday === true)\n ? adapter.startOf(value, 'isoWeek', isoWeekday)\n : adapter.startOf(value, round);\n }\n return +value;\n}\nfunction determineUnitForAutoTicks(minUnit, min, max, capacity) {\n const ilen = UNITS.length;\n for (let i = UNITS.indexOf(minUnit); i < ilen - 1; ++i) {\n const interval = INTERVALS[UNITS[i]];\n const factor = interval.steps ? interval.steps : Number.MAX_SAFE_INTEGER;\n if (interval.common && Math.ceil((max - min) / (factor * interval.size)) <= capacity) {\n return UNITS[i];\n }\n }\n return UNITS[ilen - 1];\n}\nfunction determineUnitForFormatting(scale, numTicks, minUnit, min, max) {\n for (let i = UNITS.length - 1; i >= UNITS.indexOf(minUnit); i--) {\n const unit = UNITS[i];\n if (INTERVALS[unit].common && scale._adapter.diff(max, min, unit) >= numTicks - 1) {\n return unit;\n }\n }\n return UNITS[minUnit ? UNITS.indexOf(minUnit) : 0];\n}\nfunction determineMajorUnit(unit) {\n for (let i = UNITS.indexOf(unit) + 1, ilen = UNITS.length; i < ilen; ++i) {\n if (INTERVALS[UNITS[i]].common) {\n return UNITS[i];\n }\n }\n}\nfunction addTick(ticks, time, timestamps) {\n if (!timestamps) {\n ticks[time] = true;\n } else if (timestamps.length) {\n const {lo, hi} = _lookup(timestamps, time);\n const timestamp = timestamps[lo] >= time ? timestamps[lo] : timestamps[hi];\n ticks[timestamp] = true;\n }\n}\nfunction setMajorTicks(scale, ticks, map, majorUnit) {\n const adapter = scale._adapter;\n const first = +adapter.startOf(ticks[0].value, majorUnit);\n const last = ticks[ticks.length - 1].value;\n let major, index;\n for (major = first; major <= last; major = +adapter.add(major, 1, majorUnit)) {\n index = map[major];\n if (index >= 0) {\n ticks[index].major = true;\n }\n }\n return ticks;\n}\nfunction ticksFromTimestamps(scale, values, majorUnit) {\n const ticks = [];\n const map = {};\n const ilen = values.length;\n let i, value;\n for (i = 0; i < ilen; ++i) {\n value = values[i];\n map[value] = i;\n ticks.push({\n value,\n major: false\n });\n }\n return (ilen === 0 || !majorUnit) ? ticks : setMajorTicks(scale, ticks, map, majorUnit);\n}\nclass TimeScale extends Scale {\n constructor(props) {\n super(props);\n this._cache = {\n data: [],\n labels: [],\n all: []\n };\n this._unit = 'day';\n this._majorUnit = undefined;\n this._offsets = {};\n this._normalized = false;\n this._parseOpts = undefined;\n }\n init(scaleOpts, opts) {\n const time = scaleOpts.time || (scaleOpts.time = {});\n const adapter = this._adapter = new adapters._date(scaleOpts.adapters.date);\n adapter.init(opts);\n mergeIf(time.displayFormats, adapter.formats());\n this._parseOpts = {\n parser: time.parser,\n round: time.round,\n isoWeekday: time.isoWeekday\n };\n super.init(scaleOpts);\n this._normalized = opts.normalized;\n }\n parse(raw, index) {\n if (raw === undefined) {\n return null;\n }\n return parse(this, raw);\n }\n beforeLayout() {\n super.beforeLayout();\n this._cache = {\n data: [],\n labels: [],\n all: []\n };\n }\n determineDataLimits() {\n const options = this.options;\n const adapter = this._adapter;\n const unit = options.time.unit || 'day';\n let {min, max, minDefined, maxDefined} = this.getUserBounds();\n function _applyBounds(bounds) {\n if (!minDefined && !isNaN(bounds.min)) {\n min = Math.min(min, bounds.min);\n }\n if (!maxDefined && !isNaN(bounds.max)) {\n max = Math.max(max, bounds.max);\n }\n }\n if (!minDefined || !maxDefined) {\n _applyBounds(this._getLabelBounds());\n if (options.bounds !== 'ticks' || options.ticks.source !== 'labels') {\n _applyBounds(this.getMinMax(false));\n }\n }\n min = isNumberFinite(min) && !isNaN(min) ? min : +adapter.startOf(Date.now(), unit);\n max = isNumberFinite(max) && !isNaN(max) ? max : +adapter.endOf(Date.now(), unit) + 1;\n this.min = Math.min(min, max - 1);\n this.max = Math.max(min + 1, max);\n }\n _getLabelBounds() {\n const arr = this.getLabelTimestamps();\n let min = Number.POSITIVE_INFINITY;\n let max = Number.NEGATIVE_INFINITY;\n if (arr.length) {\n min = arr[0];\n max = arr[arr.length - 1];\n }\n return {min, max};\n }\n buildTicks() {\n const options = this.options;\n const timeOpts = options.time;\n const tickOpts = options.ticks;\n const timestamps = tickOpts.source === 'labels' ? this.getLabelTimestamps() : this._generate();\n if (options.bounds === 'ticks' && timestamps.length) {\n this.min = this._userMin || timestamps[0];\n this.max = this._userMax || timestamps[timestamps.length - 1];\n }\n const min = this.min;\n const max = this.max;\n const ticks = _filterBetween(timestamps, min, max);\n this._unit = timeOpts.unit || (tickOpts.autoSkip\n ? determineUnitForAutoTicks(timeOpts.minUnit, this.min, this.max, this._getLabelCapacity(min))\n : determineUnitForFormatting(this, ticks.length, timeOpts.minUnit, this.min, this.max));\n this._majorUnit = !tickOpts.major.enabled || this._unit === 'year' ? undefined\n : determineMajorUnit(this._unit);\n this.initOffsets(timestamps);\n if (options.reverse) {\n ticks.reverse();\n }\n return ticksFromTimestamps(this, ticks, this._majorUnit);\n }\n afterAutoSkip() {\n if (this.options.offsetAfterAutoskip) {\n this.initOffsets(this.ticks.map(tick => +tick.value));\n }\n }\n initOffsets(timestamps) {\n let start = 0;\n let end = 0;\n let first, last;\n if (this.options.offset && timestamps.length) {\n first = this.getDecimalForValue(timestamps[0]);\n if (timestamps.length === 1) {\n start = 1 - first;\n } else {\n start = (this.getDecimalForValue(timestamps[1]) - first) / 2;\n }\n last = this.getDecimalForValue(timestamps[timestamps.length - 1]);\n if (timestamps.length === 1) {\n end = last;\n } else {\n end = (last - this.getDecimalForValue(timestamps[timestamps.length - 2])) / 2;\n }\n }\n const limit = timestamps.length < 3 ? 0.5 : 0.25;\n start = _limitValue(start, 0, limit);\n end = _limitValue(end, 0, limit);\n this._offsets = {start, end, factor: 1 / (start + 1 + end)};\n }\n _generate() {\n const adapter = this._adapter;\n const min = this.min;\n const max = this.max;\n const options = this.options;\n const timeOpts = options.time;\n const minor = timeOpts.unit || determineUnitForAutoTicks(timeOpts.minUnit, min, max, this._getLabelCapacity(min));\n const stepSize = valueOrDefault(timeOpts.stepSize, 1);\n const weekday = minor === 'week' ? timeOpts.isoWeekday : false;\n const hasWeekday = isNumber(weekday) || weekday === true;\n const ticks = {};\n let first = min;\n let time, count;\n if (hasWeekday) {\n first = +adapter.startOf(first, 'isoWeek', weekday);\n }\n first = +adapter.startOf(first, hasWeekday ? 'day' : minor);\n if (adapter.diff(max, min, minor) > 100000 * stepSize) {\n throw new Error(min + ' and ' + max + ' are too far apart with stepSize of ' + stepSize + ' ' + minor);\n }\n const timestamps = options.ticks.source === 'data' && this.getDataTimestamps();\n for (time = first, count = 0; time < max; time = +adapter.add(time, stepSize, minor), count++) {\n addTick(ticks, time, timestamps);\n }\n if (time === max || options.bounds === 'ticks' || count === 1) {\n addTick(ticks, time, timestamps);\n }\n return Object.keys(ticks).sort((a, b) => a - b).map(x => +x);\n }\n getLabelForValue(value) {\n const adapter = this._adapter;\n const timeOpts = this.options.time;\n if (timeOpts.tooltipFormat) {\n return adapter.format(value, timeOpts.tooltipFormat);\n }\n return adapter.format(value, timeOpts.displayFormats.datetime);\n }\n _tickFormatFunction(time, index, ticks, format) {\n const options = this.options;\n const formats = options.time.displayFormats;\n const unit = this._unit;\n const majorUnit = this._majorUnit;\n const minorFormat = unit && formats[unit];\n const majorFormat = majorUnit && formats[majorUnit];\n const tick = ticks[index];\n const major = majorUnit && majorFormat && tick && tick.major;\n const label = this._adapter.format(time, format || (major ? majorFormat : minorFormat));\n const formatter = options.ticks.callback;\n return formatter ? callback(formatter, [label, index, ticks], this) : label;\n }\n generateTickLabels(ticks) {\n let i, ilen, tick;\n for (i = 0, ilen = ticks.length; i < ilen; ++i) {\n tick = ticks[i];\n tick.label = this._tickFormatFunction(tick.value, i, ticks);\n }\n }\n getDecimalForValue(value) {\n return value === null ? NaN : (value - this.min) / (this.max - this.min);\n }\n getPixelForValue(value) {\n const offsets = this._offsets;\n const pos = this.getDecimalForValue(value);\n return this.getPixelForDecimal((offsets.start + pos) * offsets.factor);\n }\n getValueForPixel(pixel) {\n const offsets = this._offsets;\n const pos = this.getDecimalForPixel(pixel) / offsets.factor - offsets.end;\n return this.min + pos * (this.max - this.min);\n }\n _getLabelSize(label) {\n const ticksOpts = this.options.ticks;\n const tickLabelWidth = this.ctx.measureText(label).width;\n const angle = toRadians(this.isHorizontal() ? ticksOpts.maxRotation : ticksOpts.minRotation);\n const cosRotation = Math.cos(angle);\n const sinRotation = Math.sin(angle);\n const tickFontSize = this._resolveTickFontOptions(0).size;\n return {\n w: (tickLabelWidth * cosRotation) + (tickFontSize * sinRotation),\n h: (tickLabelWidth * sinRotation) + (tickFontSize * cosRotation)\n };\n }\n _getLabelCapacity(exampleTime) {\n const timeOpts = this.options.time;\n const displayFormats = timeOpts.displayFormats;\n const format = displayFormats[timeOpts.unit] || displayFormats.millisecond;\n const exampleLabel = this._tickFormatFunction(exampleTime, 0, ticksFromTimestamps(this, [exampleTime], this._majorUnit), format);\n const size = this._getLabelSize(exampleLabel);\n const capacity = Math.floor(this.isHorizontal() ? this.width / size.w : this.height / size.h) - 1;\n return capacity > 0 ? capacity : 1;\n }\n getDataTimestamps() {\n let timestamps = this._cache.data || [];\n let i, ilen;\n if (timestamps.length) {\n return timestamps;\n }\n const metas = this.getMatchingVisibleMetas();\n if (this._normalized && metas.length) {\n return (this._cache.data = metas[0].controller.getAllParsedValues(this));\n }\n for (i = 0, ilen = metas.length; i < ilen; ++i) {\n timestamps = timestamps.concat(metas[i].controller.getAllParsedValues(this));\n }\n return (this._cache.data = this.normalize(timestamps));\n }\n getLabelTimestamps() {\n const timestamps = this._cache.labels || [];\n let i, ilen;\n if (timestamps.length) {\n return timestamps;\n }\n const labels = this.getLabels();\n for (i = 0, ilen = labels.length; i < ilen; ++i) {\n timestamps.push(parse(this, labels[i]));\n }\n return (this._cache.labels = this._normalized ? timestamps : this.normalize(timestamps));\n }\n normalize(values) {\n return _arrayUnique(values.sort(sorter));\n }\n}\nTimeScale.id = 'time';\nTimeScale.defaults = {\n bounds: 'data',\n adapters: {},\n time: {\n parser: false,\n unit: false,\n round: false,\n isoWeekday: false,\n minUnit: 'millisecond',\n displayFormats: {}\n },\n ticks: {\n source: 'auto',\n major: {\n enabled: false\n }\n }\n};\n\nfunction interpolate(table, val, reverse) {\n let lo = 0;\n let hi = table.length - 1;\n let prevSource, nextSource, prevTarget, nextTarget;\n if (reverse) {\n if (val >= table[lo].pos && val <= table[hi].pos) {\n ({lo, hi} = _lookupByKey(table, 'pos', val));\n }\n ({pos: prevSource, time: prevTarget} = table[lo]);\n ({pos: nextSource, time: nextTarget} = table[hi]);\n } else {\n if (val >= table[lo].time && val <= table[hi].time) {\n ({lo, hi} = _lookupByKey(table, 'time', val));\n }\n ({time: prevSource, pos: prevTarget} = table[lo]);\n ({time: nextSource, pos: nextTarget} = table[hi]);\n }\n const span = nextSource - prevSource;\n return span ? prevTarget + (nextTarget - prevTarget) * (val - prevSource) / span : prevTarget;\n}\nclass TimeSeriesScale extends TimeScale {\n constructor(props) {\n super(props);\n this._table = [];\n this._minPos = undefined;\n this._tableRange = undefined;\n }\n initOffsets() {\n const timestamps = this._getTimestampsForTable();\n const table = this._table = this.buildLookupTable(timestamps);\n this._minPos = interpolate(table, this.min);\n this._tableRange = interpolate(table, this.max) - this._minPos;\n super.initOffsets(timestamps);\n }\n buildLookupTable(timestamps) {\n const {min, max} = this;\n const items = [];\n const table = [];\n let i, ilen, prev, curr, next;\n for (i = 0, ilen = timestamps.length; i < ilen; ++i) {\n curr = timestamps[i];\n if (curr >= min && curr <= max) {\n items.push(curr);\n }\n }\n if (items.length < 2) {\n return [\n {time: min, pos: 0},\n {time: max, pos: 1}\n ];\n }\n for (i = 0, ilen = items.length; i < ilen; ++i) {\n next = items[i + 1];\n prev = items[i - 1];\n curr = items[i];\n if (Math.round((next + prev) / 2) !== curr) {\n table.push({time: curr, pos: i / (ilen - 1)});\n }\n }\n return table;\n }\n _getTimestampsForTable() {\n let timestamps = this._cache.all || [];\n if (timestamps.length) {\n return timestamps;\n }\n const data = this.getDataTimestamps();\n const label = this.getLabelTimestamps();\n if (data.length && label.length) {\n timestamps = this.normalize(data.concat(label));\n } else {\n timestamps = data.length ? data : label;\n }\n timestamps = this._cache.all = timestamps;\n return timestamps;\n }\n getDecimalForValue(value) {\n return (interpolate(this._table, value) - this._minPos) / this._tableRange;\n }\n getValueForPixel(pixel) {\n const offsets = this._offsets;\n const decimal = this.getDecimalForPixel(pixel) / offsets.factor - offsets.end;\n return interpolate(this._table, decimal * this._tableRange + this._minPos, true);\n }\n}\nTimeSeriesScale.id = 'timeseries';\nTimeSeriesScale.defaults = TimeScale.defaults;\n\nvar scales = /*#__PURE__*/Object.freeze({\n__proto__: null,\nCategoryScale: CategoryScale,\nLinearScale: LinearScale,\nLogarithmicScale: LogarithmicScale,\nRadialLinearScale: RadialLinearScale,\nTimeScale: TimeScale,\nTimeSeriesScale: TimeSeriesScale\n});\n\nconst registerables = [\n controllers,\n elements,\n plugins,\n scales,\n];\n\nexport { Animation, Animations, ArcElement, BarController, BarElement, BasePlatform, BasicPlatform, BubbleController, CategoryScale, Chart, DatasetController, plugin_decimation as Decimation, DomPlatform, DoughnutController, Element, index as Filler, Interaction, plugin_legend as Legend, LineController, LineElement, LinearScale, LogarithmicScale, PieController, PointElement, PolarAreaController, RadarController, RadialLinearScale, Scale, ScatterController, plugin_subtitle as SubTitle, Ticks, TimeScale, TimeSeriesScale, plugin_title as Title, plugin_tooltip as Tooltip, adapters as _adapters, _detectPlatform, animator, controllers, elements, layouts, plugins, registerables, registry, scales };\n","import {Chart, registerables} from '../dist/chart.mjs';\n\nChart.register(...registerables);\n\nexport default Chart;\n","import defineProperty from './_define_property';\n\nexport default function _objectSpread(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n var ownKeys = Object.keys(source);\n\n if (typeof Object.getOwnPropertySymbols === 'function') {\n ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) {\n return Object.getOwnPropertyDescriptor(source, sym).enumerable;\n }));\n }\n\n ownKeys.forEach(function (key) {\n defineProperty(target, key, source[key]);\n });\n }\n\n return target;\n}","export default function _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n","import objectWithoutPropertiesLoose from './_object_without_properties_loose';\n\nexport default function _objectWithoutProperties(source, excluded) {\n if (source == null) return {};\n var target = objectWithoutPropertiesLoose(source, excluded);\n var key, i;\n\n if (Object.getOwnPropertySymbols) {\n var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n\n for (i = 0; i < sourceSymbolKeys.length; i++) {\n key = sourceSymbolKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n target[key] = source[key];\n }\n }\n\n return target;\n}","export default function _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}\n","import arrayWithHoles from './_array_with_holes';\nimport iterableToArrayLimit from './_iterable_to_array';\nimport nonIterableRest from './_non_iterable_rest';\n\nexport default function _slicedToArray(arr, i) {\n return arrayWithHoles(arr) || iterableToArrayLimit(arr, i) || nonIterableRest();\n}","export default function _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}\n","export default function _iterableToArray(iter) {\n if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === \"[object Arguments]\") return Array.from(iter);\n}\n","export default function _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance\");\n}\n","import type { ForwardedRef } from 'react';\nimport type {\n ChartType,\n ChartData,\n DefaultDataPoint,\n ChartDataset,\n ChartOptions,\n Chart,\n} from 'chart.js';\n\nexport function reforwardRef(ref: ForwardedRef, value: T) {\n if (typeof ref === 'function') {\n ref(value);\n } else if (ref) {\n ref.current = value;\n }\n}\n\nexport function setOptions<\n TType extends ChartType = ChartType,\n TData = DefaultDataPoint,\n TLabel = unknown\n>(chart: Chart, nextOptions: ChartOptions) {\n chart.options = { ...nextOptions };\n}\n\nexport function setLabels<\n TType extends ChartType = ChartType,\n TData = DefaultDataPoint,\n TLabel = unknown\n>(\n currentData: ChartData,\n nextLabels: TLabel[] | undefined\n) {\n currentData.labels = nextLabels;\n}\n\nexport function setDatasets<\n TType extends ChartType = ChartType,\n TData = DefaultDataPoint,\n TLabel = unknown\n>(\n currentData: ChartData,\n nextDatasets: ChartDataset[]\n) {\n currentData.datasets = nextDatasets.map(nextDataset => {\n // given the new set, find it's current match\n const currentDataset = currentData.datasets.find(\n dataset =>\n dataset.label === nextDataset.label && dataset.type === nextDataset.type\n );\n\n // There is no original to update, so simply add new one\n if (!currentDataset || !nextDataset.data) return { ...nextDataset };\n\n Object.assign(currentDataset, nextDataset);\n\n return currentDataset;\n });\n}\n\nexport function cloneData<\n TType extends ChartType = ChartType,\n TData = DefaultDataPoint,\n TLabel = unknown\n>(data: ChartData) {\n const nextData: ChartData = {\n labels: [],\n datasets: [],\n };\n\n setLabels(nextData, data.labels);\n setDatasets(nextData, data.datasets);\n\n return nextData;\n}\n","import React, { useEffect, useRef, useState, forwardRef } from 'react';\nimport type { ForwardedRef, MouseEvent } from 'react';\nimport ChartJS from 'chart.js/auto';\nimport type { ChartData, ChartType, DefaultDataPoint } from 'chart.js';\n\nimport type { ChartProps, TypedChartComponent } from './types';\nimport {\n reforwardRef,\n cloneData,\n setOptions,\n setLabels,\n setDatasets,\n} from './utils';\n\nconst noopData = {\n datasets: [],\n};\n\nfunction ChartComponent<\n TType extends ChartType = ChartType,\n TData = DefaultDataPoint,\n TLabel = unknown\n>(\n {\n height = 150,\n width = 300,\n redraw = false,\n type,\n data: dataProp,\n options,\n plugins = [],\n getDatasetAtEvent,\n getElementAtEvent,\n getElementsAtEvent,\n fallbackContent,\n onClick: onClickProp,\n ...props\n }: ChartProps,\n ref: ForwardedRef>\n) {\n type TypedChartJS = ChartJS;\n type TypedChartData = ChartData;\n\n const canvasRef = useRef(null);\n const chartRef = useRef();\n /**\n * In case `dataProp` is function use internal state\n */\n const [computedData, setComputedData] = useState();\n const data: TypedChartData =\n computedData || (typeof dataProp === 'function' ? noopData : dataProp);\n\n const renderChart = () => {\n if (!canvasRef.current) return;\n\n chartRef.current = new ChartJS(canvasRef.current, {\n type,\n data: cloneData(data),\n options,\n plugins,\n });\n\n reforwardRef(ref, chartRef.current);\n };\n\n const destroyChart = () => {\n reforwardRef(ref, null);\n\n if (chartRef.current) {\n chartRef.current.destroy();\n chartRef.current = null;\n }\n };\n\n const onClick = (event: MouseEvent) => {\n if (onClickProp) {\n onClickProp(event);\n }\n\n const { current: chart } = chartRef;\n\n if (!chart) return;\n\n getDatasetAtEvent &&\n getDatasetAtEvent(\n chart.getElementsAtEventForMode(\n event.nativeEvent,\n 'dataset',\n { intersect: true },\n false\n ),\n event\n );\n getElementAtEvent &&\n getElementAtEvent(\n chart.getElementsAtEventForMode(\n event.nativeEvent,\n 'nearest',\n { intersect: true },\n false\n ),\n event\n );\n getElementsAtEvent &&\n getElementsAtEvent(\n chart.getElementsAtEventForMode(\n event.nativeEvent,\n 'index',\n { intersect: true },\n false\n ),\n event\n );\n };\n\n /**\n * In case `dataProp` is function,\n * then update internal state\n */\n useEffect(() => {\n if (typeof dataProp === 'function' && canvasRef.current) {\n setComputedData(dataProp(canvasRef.current));\n }\n }, [dataProp]);\n\n useEffect(() => {\n if (!redraw && chartRef.current && options) {\n setOptions(chartRef.current, options);\n }\n }, [redraw, options]);\n\n useEffect(() => {\n if (!redraw && chartRef.current) {\n setLabels(chartRef.current.config.data, data.labels);\n }\n }, [redraw, data.labels]);\n\n useEffect(() => {\n if (!redraw && chartRef.current && data.datasets) {\n setDatasets(chartRef.current.config.data, data.datasets);\n }\n }, [redraw, data.datasets]);\n\n useEffect(() => {\n if (!chartRef.current) return;\n\n if (redraw) {\n destroyChart();\n setTimeout(renderChart);\n } else {\n chartRef.current.update();\n }\n }, [redraw, options, data.labels, data.datasets]);\n\n useEffect(() => {\n renderChart();\n\n return () => destroyChart();\n }, []);\n\n return (\n \n {fallbackContent}\n \n );\n}\n\nexport const Chart = forwardRef(ChartComponent) as TypedChartComponent;\n","import React, { forwardRef } from 'react';\nimport { ChartType } from 'chart.js';\n\nimport { ChartProps, ChartJSOrUndefined, TypedChartComponent } from './types';\nimport { Chart } from './chart';\n\nfunction createTypedChart(type: T) {\n return forwardRef, Omit, 'type'>>(\n (props, ref) => \n ) as TypedChartComponent;\n}\n\nexport const Line = createTypedChart('line');\n\nexport const Bar = createTypedChart('bar');\n\nexport const Radar = createTypedChart('radar');\n\nexport const Doughnut = createTypedChart('doughnut');\n\nexport const PolarArea = createTypedChart('polarArea');\n\nexport const Bubble = createTypedChart('bubble');\n\nexport const Pie = createTypedChart('pie');\n\nexport const Scatter = createTypedChart('scatter');\n","// github languages\nasync function getLanguages() {\n\tconst reposResponse = await fetch(\n\t\t\"https://api.github.com/users/andrewcbuensalida/repos\"\n\t);\n\n\tconst repos = await reposResponse.json();\n\tif (repos.length > 0) {\n\t\tlet totalLanguagesBytes = {};\n\t\tconst reposLanguagesURL = repos.map((repo) => repo.languages_url);\n\t\tconst reposLanguagesBytes = await Promise.all(\n\t\t\treposLanguagesURL.map(async (repoLanguageURL) => {\n\t\t\t\tconst languagesBytesResponse = await fetch(repoLanguageURL);\n\t\t\t\tconst languagesBytes = await languagesBytesResponse.json();\n\t\t\t\treturn languagesBytes;\n\t\t\t})\n\t\t);\n\t\treposLanguagesBytes.forEach((repoLanguagesBytes) => {\n\t\t\tfor (const lang in repoLanguagesBytes) {\n\t\t\t\ttotalLanguagesBytes = {\n\t\t\t\t\t...totalLanguagesBytes,\n\t\t\t\t\t[lang]:\n\t\t\t\t\t\t(totalLanguagesBytes[lang] || 0) +\n\t\t\t\t\t\t(repoLanguagesBytes[lang] || 0),\n\t\t\t\t};\n\t\t\t}\n\t\t});\n\t\treturn totalLanguagesBytes;\n\t}\n}\n\nexport default getLanguages;\n","import { Pie } from \"react-chartjs-2\";\nimport getLanguages from \"./getLanguages\";\nimport Skeleton from \"react-loading-skeleton\";\nimport { useEffect, useState } from \"react\";\n\nfunction PieChart() {\n\tconst [languages, setLanguages] = useState([]);\n\tconst [percentages, setPercentages] = useState([]);\n\tuseEffect(() => {\n\t\tasync function fetchData() {\n\t\t\tconst totalLanguagesBytes = await getLanguages();\n\t\t\tif (totalLanguagesBytes) {\n\t\t\t\tsetLanguages(Object.keys(totalLanguagesBytes));\n\t\t\t\tconst totalBytes = Object.values(totalLanguagesBytes).reduce(\n\t\t\t\t\t(prev, curr) => prev + curr\n\t\t\t\t);\n\t\t\t\tconst percentages = Object.values(totalLanguagesBytes).map(\n\t\t\t\t\t(languageBytes) =>\n\t\t\t\t\t\tMath.floor((languageBytes / totalBytes) * 100)\n\t\t\t\t);\n\t\t\t\tsetPercentages(percentages);\n\t\t\t}\n\t\t}\n\t\tfetchData();\n\t}, []);\n\tconst randomColors = languages.map(\n\t\t() => `#${Math.floor(Math.random() * 16777215).toString(16)}`\n\t);\n\treturn (\n\t\t
\n\t\t\t{!languages ? (\n\t\t\t\t\n\t\t\t) : (\n\t\t\t\t
\n\t\t\t\t\t\n\t\t\t\t
\n\t\t\t)}\n\t\t
\n\t);\n}\n\nexport default PieChart;\n","import { useState, useRef } from \"react\";\r\nimport LinkedInIcon from \"@material-ui/icons/LinkedIn\";\r\nimport EmailIcon from \"@material-ui/icons/Email\";\r\nimport GitHubIcon from \"@material-ui/icons/GitHub\";\r\nimport LocalPhoneIcon from \"@material-ui/icons/LocalPhone\";\r\nimport Filter from \"./components/Filter\";\r\nimport Parallax from \"./components/parallax\";\r\nimport Project from \"./components/Project\";\r\nimport projects from \"./data\";\r\nimport PieChart from \"./components/PieChart\";\r\nimport typingPath from \"./static/typing.mp3\";\r\n\r\nfunction App() {\r\n\t// filter buttons selected\r\n\tconst [filters, setFilters] = useState([]);\r\n\tParallax();\r\n\r\n\tconst typingRef = useRef(new Audio(typingPath));\r\n\r\n\tfunction handleFilter(e) {\r\n\t\tif (e.target.id === \"clear\") {\r\n\t\t\tlet allSelected = Array.from(\r\n\t\t\t\tdocument.getElementsByClassName(\"selected\")\r\n\t\t\t);\r\n\t\t\tlet allDisabled = Array.from(\r\n\t\t\t\tdocument.getElementsByClassName(\"disabled\")\r\n\t\t\t);\r\n\t\t\tlet all = [...allDisabled, ...allSelected];\r\n\t\t\tall.forEach((el) => {\r\n\t\t\t\tel.className = \"unselected\";\r\n\t\t\t});\r\n\t\t\tsetFilters([]);\r\n\t\t} else {\r\n\t\t\tif (e.target.className === \"unselected\") {\r\n\t\t\t\te.target.className = \"selected\";\r\n\t\t\t} else if (e.target.className === \"selected\") {\r\n\t\t\t\te.target.className = \"unselected\";\r\n\t\t\t}\r\n\t\t\tif (e.target.className !== \"disabled\") {\r\n\t\t\t\tconst clickedFilter = e.target.textContent.toLowerCase();\r\n\t\t\t\tsetFilters((prev) => {\r\n\t\t\t\t\tlet newFilters;\r\n\t\t\t\t\tif (prev.includes(clickedFilter)) {\r\n\t\t\t\t\t\tnewFilters = prev.filter(\r\n\t\t\t\t\t\t\t(filter) => filter !== clickedFilter\r\n\t\t\t\t\t\t);\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tnewFilters = [...prev, clickedFilter];\r\n\t\t\t\t\t}\r\n\t\t\t\t\tprojects.forEach((project) => {\r\n\t\t\t\t\t\tlet filtersFitInProject = newFilters.every((filter) => {\r\n\t\t\t\t\t\t\treturn project.stack.includes(filter);\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t\tif (!filtersFitInProject) {\r\n\t\t\t\t\t\t\tlet allUnselected = Array.from(\r\n\t\t\t\t\t\t\t\tdocument.getElementsByClassName(\"unselected\")\r\n\t\t\t\t\t\t\t);\r\n\t\t\t\t\t\t\tallUnselected.forEach((el) => {\r\n\t\t\t\t\t\t\t\tif (\r\n\t\t\t\t\t\t\t\t\tproject.stack.includes(\r\n\t\t\t\t\t\t\t\t\t\tel.textContent.toLowerCase()\r\n\t\t\t\t\t\t\t\t\t)\r\n\t\t\t\t\t\t\t\t) {\r\n\t\t\t\t\t\t\t\t\tel.className = \"disabled\";\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t});\r\n\t\t\t\t\tprojects.forEach((project) => {\r\n\t\t\t\t\t\tlet filtersFitInProject = newFilters.every((filter) => {\r\n\t\t\t\t\t\t\treturn project.stack.includes(filter);\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t\tif (filtersFitInProject) {\r\n\t\t\t\t\t\t\tlet allDisabled = Array.from(\r\n\t\t\t\t\t\t\t\tdocument.getElementsByClassName(\"disabled\")\r\n\t\t\t\t\t\t\t);\r\n\t\t\t\t\t\t\tallDisabled.forEach((el) => {\r\n\t\t\t\t\t\t\t\tif (\r\n\t\t\t\t\t\t\t\t\tproject.stack.includes(\r\n\t\t\t\t\t\t\t\t\t\tel.textContent.toLowerCase()\r\n\t\t\t\t\t\t\t\t\t)\r\n\t\t\t\t\t\t\t\t) {\r\n\t\t\t\t\t\t\t\t\tel.className = \"unselected\";\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t});\r\n\t\t\t\t\treturn newFilters;\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\tconst projectsComponents = projects.map((project) => (\r\n\t\t\r\n\t));\r\n\r\n\treturn (\r\n\t\t
\r\n\t\t\t
\r\n\t\t\t\t

typingRef.current.play()}>\r\n\t\t\t\t\tAndrew Buensalida - Software Engineer\r\n\t\t\t\t

\r\n\t\t\t\t

\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t{\" \"}\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t

\r\n\t\t\t
\r\n\t\t\t\r\n\t\t\t
{projectsComponents}
\r\n\t\t\t{/* */}\r\n\t\t\t
\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t
\r\n\t\t\t
\r\n\t\t\t
\r\n\t\t\t\t\r\n\t\t\t
\r\n\t\t\t\r\n\t\t\r\n\t);\r\n}\r\n\r\nexport default App;\r\n","import React from \"react\";\nimport ReactDOM from \"react-dom\";\nimport App from \"./App\";\n\nReactDOM.render(\n\t// \n\t,\n\t// ,\n\tdocument.getElementById(\"root\")\n);\n"],"names":["module","exports","f","require","k","Symbol","for","l","m","Object","prototype","hasOwnProperty","n","__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED","ReactCurrentOwner","p","key","ref","__self","__source","q","c","a","g","b","d","e","h","call","defaultProps","$$typeof","type","props","_owner","current","jsx","jsxs","_interopRequireDefault","_interopRequireWildcard","React","_default","default","createElement","r","t","u","v","w","x","y","z","iterator","B","isMounted","enqueueForceUpdate","enqueueReplaceState","enqueueSetState","C","assign","D","E","this","context","refs","updater","F","G","isReactComponent","setState","Error","forceUpdate","H","constructor","isPureReactComponent","I","Array","isArray","J","K","L","M","arguments","length","children","O","P","Q","replace","escape","toString","R","N","push","A","next","done","value","String","keys","join","S","T","_status","_result","then","U","V","transition","W","ReactCurrentDispatcher","ReactCurrentBatchConfig","X","Children","map","forEach","apply","count","toArray","only","Component","Fragment","Profiler","PureComponent","StrictMode","Suspense","act","cloneElement","createContext","_currentValue","_currentValue2","_threadCount","Provider","Consumer","_defaultValue","_globalName","_context","createFactory","bind","createRef","forwardRef","render","isValidElement","lazy","_payload","_init","memo","compare","startTransition","unstable_act","useCallback","useContext","useDebugValue","useDeferredValue","useEffect","useId","useImperativeHandle","useInsertionEffect","useLayoutEffect","useMemo","useReducer","useRef","useState","useSyncExternalStore","useTransition","version","reactIs","REACT_STATICS","childContextTypes","contextType","contextTypes","displayName","getDefaultProps","getDerivedStateFromError","getDerivedStateFromProps","mixins","propTypes","KNOWN_STATICS","name","caller","callee","arity","MEMO_STATICS","TYPE_STATICS","getStatics","component","isMemo","ForwardRef","Memo","defineProperty","getOwnPropertyNames","getOwnPropertySymbols","getOwnPropertyDescriptor","getPrototypeOf","objectPrototype","hoistNonReactStatics","targetComponent","sourceComponent","blacklist","inheritedComponent","concat","targetStatics","sourceStatics","i","descriptor","pop","sortIndex","id","performance","now","unstable_now","Date","setTimeout","clearTimeout","setImmediate","callback","startTime","expirationTime","priorityLevel","navigator","scheduling","isInputPending","MessageChannel","port2","port1","onmessage","postMessage","unstable_IdlePriority","unstable_ImmediatePriority","unstable_LowPriority","unstable_NormalPriority","unstable_Profiling","unstable_UserBlockingPriority","unstable_cancelCallback","unstable_continueExecution","unstable_forceFrameRate","console","error","Math","floor","unstable_getCurrentPriorityLevel","unstable_getFirstCallbackNode","unstable_next","unstable_pauseExecution","unstable_requestPaint","unstable_runWithPriority","unstable_scheduleCallback","delay","unstable_shouldYield","unstable_wrapCallback","_typeof","_getRequireWildcardCache","WeakMap","__esModule","has","get","__proto__","set","StyleSheet","options","isSpeedy","undefined","speedy","tags","ctr","nonce","container","before","_proto","insert","rule","_tag","tag","document","setAttribute","appendChild","createTextNode","createStyleElement","nextSibling","insertBefore","sheet","styleSheets","ownerNode","sheetForTag","isImportRule","charCodeAt","insertRule","cssRules","process","flush","parentNode","removeChild","trim","charAt","substring","ca","da","ea","fa","Y","ha","split","ia","Z","indexOf","ja","ka","test","aa","ba","la","ma","na","oa","prefix","use","delimiter","needle","toSheet","block","Sheet","ruleSheet","content","selectors","parents","line","column","ns","depth","at","stylisOptions","stylis","Stylis","inserted","head","_insert","nodes","querySelectorAll","node","getAttribute","stylisPlugins","selector","serialized","shouldCache","styles","cache","registered","getRegisteredStyles","registeredStyles","classNames","rawClassName","className","insertStyles","isStringTag","str","len","animationIterationCount","borderImageOutset","borderImageSlice","borderImageWidth","boxFlex","boxFlexGroup","boxOrdinalGroup","columnCount","columns","flex","flexGrow","flexPositive","flexShrink","flexNegative","flexOrder","gridRow","gridRowEnd","gridRowSpan","gridRowStart","gridColumn","gridColumnEnd","gridColumnSpan","gridColumnStart","msGridRow","msGridRowSpan","msGridColumn","msGridColumnSpan","fontWeight","lineHeight","opacity","order","orphans","tabSize","widows","zIndex","zoom","WebkitLineClamp","fillOpacity","floodOpacity","stopOpacity","strokeDasharray","strokeDashoffset","strokeMiterlimit","strokeOpacity","strokeWidth","hyphenateRegex","animationRegex","isCustomProperty","property","isProcessableValue","processStyleName","fn","arg","memoize","styleName","toLowerCase","processStyleValue","match","p1","p2","cursor","unitless","handleInterpolation","mergedProps","interpolation","couldBeSelectorInterpolation","__emotion_styles","anim","obj","string","_key","interpolated","_i","createStringFromObject","previousCursor","result","cached","labelPattern","serializeStyles","args","stringMode","strings","raw","lastIndex","identifierName","exec","hashString","EmotionCacheContext","HTMLElement","createCache","ThemeContext","CacheProvider","withEmotionCache","func","typePropName","Noop","theme","cssProp","css","newProps","ele","possiblyStyleElement","Emotion","_len","argsLength","createElementArgArray","createEmotionProps","Global","InnerGlobal","_React$Component","_inheritsLoose","componentDidMount","querySelector","componentDidUpdate","prevProps","element","nextElementSibling","componentWillUnmount","keyframes","insertable","classnames","cls","toAdd","ClassNames","cx","_len2","_key2","merge","enumerable","_skeleton","_skeletonTheme","_setPrototypeOf","setPrototypeOf","o","create","formatMuiErrorMessage","code","url","encodeURIComponent","capitalize","_formatMuiErrorMessage","toUpperCase","slice","createChainedFunction","funcs","reduce","acc","_objectWithoutPropertiesLoose","propertyIsEnumerable","window","nodeType","toPropertyKey","toPrimitive","TypeError","Number","_defineProperties","configurable","writable","_assertThisInitialized","ReferenceError","plainObjectConstrurctor","cloneStyle","style","newStyle","createRule","decl","jss","declCopy","plugins","onCreateRule","by","toCssValue","cssValue","getWhitespaceSymbols","format","linebreak","space","indentStr","indent","index","toCss","_options$indent","fallbacks","Infinity","_getWhitespaceSymbols","fallback","prop","_prop","_value","_prop2","_value2","allowEmpty","escapeRegex","nativeEscape","CSS","BaseStyleRule","isProcessed","Renderer","renderer","force","newValue","onChangeValue","isEmpty","isDefined","remove","renderable","removeProperty","setProperty","attached","StyleRule","_BaseStyleRule","_this","scoped","generateId","selectorText","_proto2","applyTo","json","toJSON","opts","link","_extends","_createClass","setSelector","replaceRule","pluginStyleRule","parent","defaultToStringOptions","atRegExp","ConditionalRule","atMatch","query","rules","RuleList","add","getRule","addRule","onProcessRule","newRule","keyRegExp","pluginConditionalRule","defaultToStringOptions$1","nameRegExp","KeyframesRule","frames","nameMatch","keyRegExp$1","refRegExp","findReferencedKeyframe","val","replaceRef","refKeyframe","pluginKeyframesRule","onProcessStyle","KeyframeRule","pluginKeyframeRule","FontFaceRule","keyRegExp$2","pluginFontFaceRule","ViewportRule","pluginViewportRule","SimpleRule","keysMap","pluginSimpleRule","defaultUpdateOptions","forceUpdateOptions","counter","classes","ruleOptions","_this$options","register","splice","oldRule","oldIndex","nameOrSelector","unregister","update","data","updateOne","_this$options2","onUpdate","nextValue","_nextValue","_prevValue","deployed","attach","deploy","detach","queue","deleteRule","addRules","added","_this$rules","PluginsRegistry","internal","external","registry","onProcessSheet","processedValue","newPlugin","plugin","SheetsRegistry","reset","_temp","_ref","sheets","globalThis$1","globalThis","self","Function","moduleId","createGenerateId","ruleCounter","jssId","classNamePrefix","minify","getPropertyValue","cssRule","attributeStyleMap","err","indexOfImportantFlag","cssValueWithoutImportantFlag","substr","delete","getHead","findPrevNode","insertionPoint","findHigherSheet","findHighestSheet","comment","text","childNodes","nodeValue","findCommentNode","getNonce","_insertRule","appendRule","getValidRuleInsertionIndex","maxIndex","DomRenderer","hasInsertedRules","media","meta","el","textContent","createStyle","nextNode","insertionPointElement","insertStyle","Boolean","insertRules","nativeParent","latestNativeParent","_insertionIndex","refCssRule","ruleStr","insertionIndex","nativeRule","getRules","instanceCounter","Jss","isInBrowser","setup","createStyleSheet","removeStyleSheet","createJss","hasCSSTOMSupport","getDynamicStyles","to","extracted","mergeClasses","baseClasses","newClasses","nextClasses","multiKeyStore","key1","key2","subCache","Map","useTheme","pseudoClasses","fnValuesNs","fnRuleNs","fnValues","styleRule","fnRule","atPrefix","GlobalContainerRule","GlobalPrefixedRule","separatorRegExp","addScope","scope","parts","handleNestedGlobalContainerRule","handlePrefixedGlobalRule","parentRegExp","getReplaceRef","replaceParentRefs","nestedProp","parentProp","parentSelectors","nestedSelectors","j","nested","getOptions","prevOptions","nestingLevel","isNested","isNestedConditional","uppercasePattern","msPattern","toHyphenLower","hName","convertCase","converted","hyphenate","hyphenatedProp","px","ms","percent","addCamelCasedVersion","regExp","newObj","units","border","margin","padding","height","width","bottom","left","top","right","inset","motion","outline","perspective","size","gap","grid","iterate","innerProp","_innerProp","isNaN","unit","camelCasedOptions","_arrayLikeToArray","_unsupportedIterableToArray","from","js","vendor","browser","isTouch","documentElement","jsCssMap","Moz","Webkit","appearence","noPrefill","supportedProperty","colorAdjust","toUpper","camelize","pascalize","mask","longhand","textOrientation","transform","writingMode","userSelect","breakPropsOld","inlineLogicalOld","newProp","unprefixed","prefixed","pascalized","scrollSnap","overscrollBehavior","propMap","flex2012","propMap$1","propKeys","prefixCss","flex2009","multiple","propertyDetectors","filter","_toConsumableArray","computed","getComputedStyle","key$1","el$1","cache$1","transitionProperties","transPropsRegExp","prefixTransitionCallback","prefixedValue","supportedValue","parseInt","cacheKey","prefixStyle","changeProp","supportedProp","changeValue","supportedValue$1","atRule","supportedKeyframes","sort","prop0","prop1","functions","global","camelCase","defaultUnit","vendorPrefixer","propsSort","generateClassName","_options$disableGloba","disableGlobal","_options$productionPr","productionPrefix","_options$seed","seed","seedPrefix","getNextCounterId","styleSheet","createGenerateClassName","defaultOptions","disableGeneration","sheetsCache","sheetsManager","sheetsRegistry","StylesContext","indexCounter","isPlainObject","item","deepmerge","target","source","clone","output","_ref2","state","stylesOptions","stylesCreator","sheetManager","staticSheet","dynamicStyles","flip","direction","serverGenerateClassName","dynamicSheet","makeStyles","stylesOrCreator","classNamePrefixOption","_options$defaultTheme","defaultTheme","noopTheme","stylesOptions2","_objectWithoutProperties","themingEnabled","overrides","stylesWithOverrides","getStylesCreator","instance","shouldUpdate","values","currentKey","useSynchronousEffect","_ref4","_ref3","cacheClasses","lastProp","lastJSS","generate","getClasses","_options$withTheme","withTheme","useStyles","WithStyles","innerRef","other","more","params","propName","getThemeProps","_defineProperty","createMixins","breakpoints","spacing","_toolbar","gutters","warn","paddingLeft","paddingRight","up","toolbar","minHeight","black","white","A100","A200","A400","A700","clamp","min","max","decomposeColor","color","re","RegExp","colors","round","hexToRgb","marker","parseFloat","recomposeColor","getLuminance","rgb","s","hslToRgb","pow","toFixed","darken","coefficient","lighten","light","primary","secondary","disabled","hint","divider","background","paper","common","grey","action","active","hover","hoverOpacity","selected","selectedOpacity","disabledBackground","disabledOpacity","focus","focusOpacity","activatedOpacity","dark","icon","addLightOrDark","intent","shade","tonalOffset","tonalOffsetLight","tonalOffsetDark","main","createPalette","palette","_palette$primary","indigo","_palette$secondary","pink","_palette$error","red","_palette$warning","warning","orange","_palette$info","info","blue","_palette$success","success","green","_palette$type","_palette$contrastThre","contrastThreshold","_palette$tonalOffset","getContrastText","contrastText","foreground","lumA","lumB","getContrastRatio","augmentColor","mainShade","lightShade","darkShade","JSON","stringify","types","roundWithDeprecationWarning","caseAllCaps","textTransform","defaultFontFamily","createTypography","typography","_ref$fontFamily","fontFamily","_ref$fontSize","fontSize","_ref$fontWeightLight","fontWeightLight","_ref$fontWeightRegula","fontWeightRegular","_ref$fontWeightMedium","fontWeightMedium","_ref$fontWeightBold","fontWeightBold","_ref$htmlFontSize","htmlFontSize","allVariants","pxToRem2","pxToRem","coef","buildVariant","letterSpacing","casing","variants","h1","h2","h3","h4","h5","h6","subtitle1","subtitle2","body1","body2","button","caption","overline","createShadow","borderRadius","_slicedToArray","xs","sm","md","lg","xl","defaultBreakpoints","properties","directions","aliases","marginX","marginY","paddingX","paddingY","getCssProperties","_prop$split2","dir","spacingKeys","createUnarySpacing","themeSpacing","abs","getStyleFromPropValue","cssProperties","transformer","propValue","cssProperty","transformed","getValue","styleFromPropValue","themeBreakpoints","_themeBreakpoints","breakpoint","handleBreakpoints","filterProps","easing","easeInOut","easeOut","easeIn","sharp","duration","shortest","shorter","short","standard","complex","enteringScreen","leavingScreen","formatMs","milliseconds","_options$duration","durationOption","_options$easing","easingOption","_options$delay","animatedProp","getAutoHeightDuration","constant","mobileStepper","speedDial","appBar","drawer","modal","snackbar","tooltip","createTheme","_options$breakpoints","breakpointsInput","_options$mixins","mixinsInput","_options$palette","paletteInput","spacingInput","_options$typography","typographyInput","_breakpoints$values","_breakpoints$unit","_breakpoints$step","step","between","start","end","endIndex","down","upperbound","createBreakpoints","mui","argument","createSpacing","muiTheme","shadows","shape","transitions","withStylesWithoutDefault","SvgIcon","_props$color","_props$component","_props$fontSize","htmlColor","titleAccess","_props$viewBox","viewBox","clsx","root","focusable","role","muiName","withStyles","display","fill","colorPrimary","colorSecondary","colorAction","colorError","colorDisabled","fontSizeInherit","fontSizeSmall","fontSizeLarge","createSvgIcon","path","debounce","timeout","wait","debounced","that","clear","deprecatedPropType","validator","reason","isMuiElement","muiNames","ownerDocument","ownerWindow","defaultView","requirePropFactory","componentNameInError","setRef","unsupportedProp","componentName","location","propFullName","useControlled","controlled","defaultProp","isControlled","_React$useState","valueState","setValue","useEnhancedEffect","useEventCallback","useForkRef","refA","refB","refValue","idOverride","defaultId","setDefaultId","random","hadKeyboardEvent","hadFocusVisibleRecently","hadFocusVisibleRecentlyTimeout","inputTypesWhitelist","search","tel","email","password","number","date","month","week","time","datetime","handleKeyDown","event","metaKey","altKey","ctrlKey","handlePointerDown","handleVisibilityChange","visibilityState","isFocusVisible","matches","tagName","readOnly","isContentEditable","focusTriggersKeyboardModality","handleBlurVisible","useIsFocusVisible","onBlurVisible","doc","ReactDOM","addEventListener","Set","acceptsBooleans","attributeName","attributeNamespace","mustUseProperty","propertyName","sanitizeURL","removeEmptyString","ra","sa","ta","pa","qa","removeAttribute","setAttributeNS","xlinkHref","ua","va","wa","ya","za","Aa","Ba","Ca","Da","Ea","Fa","Ga","Ha","Ia","Ja","Ka","La","Ma","stack","Na","Oa","prepareStackTrace","Reflect","construct","includes","Pa","Qa","Ra","Sa","Ta","nodeName","Va","_valueTracker","stopTracking","Ua","Wa","checked","Xa","activeElement","body","Ya","defaultChecked","defaultValue","_wrapperState","initialChecked","Za","initialValue","ab","bb","cb","db","eb","fb","defaultSelected","gb","dangerouslySetInnerHTML","hb","ib","jb","kb","lb","mb","nb","namespaceURI","innerHTML","valueOf","firstChild","MSApp","execUnsafeLocalFunction","ob","lastChild","pb","aspectRatio","gridArea","lineClamp","qb","rb","sb","tb","menuitem","area","base","br","col","embed","hr","img","input","keygen","param","track","wbr","ub","vb","is","wb","xb","srcElement","correspondingUseElement","yb","zb","Ab","Bb","Cb","stateNode","Db","Eb","Fb","Gb","Hb","Ib","Jb","Kb","Lb","Mb","removeEventListener","Nb","onError","Ob","Pb","Qb","Rb","Sb","Tb","Vb","alternate","return","flags","Wb","memoizedState","dehydrated","Xb","Zb","child","sibling","Yb","$b","ac","bc","cc","dc","ec","fc","gc","hc","ic","jc","kc","lc","oc","clz32","pc","qc","log","LN2","rc","sc","tc","uc","pendingLanes","suspendedLanes","pingedLanes","entangledLanes","entanglements","vc","xc","yc","zc","Ac","eventTimes","Cc","Dc","Ec","Fc","Gc","Hc","Ic","Jc","Kc","Lc","Mc","Nc","Oc","Pc","Qc","Rc","Sc","pointerId","Tc","nativeEvent","blockedOn","domEventName","eventSystemFlags","targetContainers","Vc","Wc","priority","isDehydrated","containerInfo","Xc","Yc","dispatchEvent","shift","Zc","$c","ad","bd","cd","dd","ed","fd","gd","hd","Uc","stopPropagation","jd","kd","ld","nd","od","keyCode","charCode","pd","qd","rd","_reactName","_targetInst","currentTarget","isDefaultPrevented","defaultPrevented","returnValue","isPropagationStopped","preventDefault","cancelBubble","persist","isPersistent","wd","xd","yd","sd","eventPhase","bubbles","cancelable","timeStamp","isTrusted","td","ud","view","detail","vd","Ad","screenX","screenY","clientX","clientY","pageX","pageY","shiftKey","getModifierState","zd","buttons","relatedTarget","fromElement","toElement","movementX","movementY","Bd","Dd","dataTransfer","Fd","Hd","animationName","elapsedTime","pseudoElement","Id","clipboardData","Jd","Ld","Md","Esc","Spacebar","Left","Up","Right","Down","Del","Win","Menu","Apps","Scroll","MozPrintableKey","Nd","Od","Alt","Control","Meta","Shift","Pd","Qd","fromCharCode","repeat","locale","which","Rd","Td","pressure","tangentialPressure","tiltX","tiltY","twist","pointerType","isPrimary","Vd","touches","targetTouches","changedTouches","Xd","Yd","deltaX","wheelDeltaX","deltaY","wheelDeltaY","wheelDelta","deltaZ","deltaMode","Zd","$d","ae","be","documentMode","ce","de","ee","fe","ge","he","ie","le","range","me","ne","oe","listeners","pe","qe","se","te","ue","ve","we","xe","ye","ze","oninput","Ae","detachEvent","Be","Ce","attachEvent","De","Ee","Fe","He","Ie","Je","Ke","offset","Le","contains","compareDocumentPosition","Me","HTMLIFrameElement","contentWindow","href","Ne","contentEditable","Oe","focusedElem","selectionRange","selectionStart","selectionEnd","getSelection","extend","rangeCount","anchorNode","anchorOffset","focusNode","focusOffset","createRange","setStart","removeAllRanges","addRange","setEnd","scrollLeft","scrollTop","Pe","Qe","Re","Se","Te","Ue","Ve","We","animationend","animationiteration","animationstart","transitionend","Xe","Ye","Ze","animation","$e","af","bf","cf","df","ef","ff","gf","hf","lf","mf","nf","Ub","listener","of","pf","qf","rf","sf","capture","passive","tf","uf","parentWindow","vf","wf","xa","$a","je","char","ke","unshift","xf","yf","zf","Af","Bf","Cf","Df","Ef","__html","Ff","Gf","Hf","Promise","Jf","queueMicrotask","resolve","catch","If","Kf","Lf","Mf","previousSibling","Nf","Of","Pf","Qf","Rf","Sf","Tf","Uf","Vf","Wf","Xf","Yf","__reactInternalMemoizedUnmaskedChildContext","__reactInternalMemoizedMaskedChildContext","Zf","$f","ag","bg","getChildContext","cg","__reactInternalMemoizedMergedChildContext","dg","eg","fg","gg","hg","jg","kg","mg","ng","og","pg","qg","rg","sg","tg","ug","vg","wg","xg","yg","zg","Ag","Bg","elementType","deletions","Cg","pendingProps","overflow","treeContext","retryLane","Dg","mode","Eg","Fg","Gg","memoizedProps","Hg","Ig","Jg","Kg","Lg","_stringRef","Mg","Ng","Og","Pg","Qg","Rg","implementation","Sg","Tg","Ug","Vg","Wg","Xg","Yg","Zg","$g","ah","bh","childLanes","ch","dependencies","firstContext","lanes","dh","eh","memoizedValue","fh","gh","hh","interleaved","ih","jh","kh","updateQueue","baseState","firstBaseUpdate","lastBaseUpdate","shared","pending","effects","lh","mh","eventTime","lane","payload","nh","oh","ph","qh","rh","sh","th","uh","vh","wh","xh","yh","zh","Ah","Bh","Ch","revealOrder","Dh","Eh","_workInProgressVersionPrimary","Fh","Gh","Hh","Ih","Jh","Kh","Lh","Mh","Nh","Oh","Ph","Qh","Rh","Sh","Th","baseQueue","Uh","Vh","Wh","lastRenderedReducer","hasEagerState","eagerState","lastRenderedState","dispatch","Xh","Yh","Zh","$h","ai","getSnapshot","bi","ci","di","lastEffect","stores","ei","fi","gi","hi","ii","destroy","deps","ji","ki","li","mi","ni","oi","pi","qi","ri","si","ti","ui","vi","wi","xi","yi","zi","Ai","Bi","readContext","useMutableSource","unstable_isNewReconciler","identifierPrefix","Ci","Di","Ei","_reactInternals","Fi","shouldComponentUpdate","Gi","Hi","componentWillReceiveProps","UNSAFE_componentWillReceiveProps","Ii","getSnapshotBeforeUpdate","UNSAFE_componentWillMount","componentWillMount","Ji","message","digest","Ki","Li","Mi","Ni","Oi","Pi","Qi","componentDidCatch","Ri","componentStack","Si","pingCache","Ti","Ui","Vi","Wi","Xi","Yi","Zi","$i","aj","bj","cj","dj","baseLanes","cachePool","ej","fj","gj","hj","ij","UNSAFE_componentWillUpdate","componentWillUpdate","jj","kj","pendingContext","lj","zj","Aj","Bj","Cj","mj","nj","oj","pj","qj","sj","dataset","dgst","tj","uj","_reactRetry","rj","subtreeFlags","vj","wj","isBackwards","rendering","renderingStartTime","last","tail","tailMode","xj","Dj","Ej","Fj","wasMultiple","suppressHydrationWarning","onClick","onclick","createElementNS","autoFocus","Gj","Hj","Ij","Jj","Kj","WeakSet","Lj","Mj","Nj","Pj","Qj","Rj","Sj","Tj","Uj","Vj","_reactRootContainer","Wj","Xj","Yj","Zj","onCommitFiberUnmount","ak","bk","ck","dk","ek","isHidden","fk","gk","hk","ik","jk","kk","__reactInternalSnapshotBeforeUpdate","src","Vk","lk","ceil","mk","nk","ok","pk","qk","rk","sk","tk","uk","vk","wk","xk","yk","zk","Ak","Bk","Ck","Dk","callbackNode","expirationTimes","expiredLanes","wc","callbackPriority","ig","Ek","Fk","Gk","Hk","Ik","Jk","Kk","Lk","Mk","Nk","Ok","finishedWork","finishedLanes","Pk","timeoutHandle","Qk","Rk","Sk","Tk","Uk","mutableReadLanes","Bc","Oj","onCommitFiberRoot","mc","onRecoverableError","Wk","onPostCommitFiberRoot","Xk","Yk","$k","pendingChildren","al","mutableSourceEagerHydrationData","bl","pendingSuspenseBoundaries","dl","fl","gl","hl","il","yj","Zk","kl","reportError","ll","_internalRoot","ml","nl","ol","pl","rl","ql","unmount","unstable_scheduleHydration","form","sl","usingClientEntryPoint","Events","tl","findFiberByHostInstance","bundleType","rendererPackageName","ul","rendererConfig","overrideHookState","overrideHookStateDeletePath","overrideHookStateRenamePath","overrideProps","overridePropsDeletePath","overridePropsRenamePath","setErrorHandler","setSuspenseHandler","scheduleUpdate","currentDispatcherRef","findHostInstanceByFiber","findHostInstancesForRefresh","scheduleRefresh","scheduleRoot","setRefreshHandler","getCurrentFiber","reconcilerVersion","__REACT_DEVTOOLS_GLOBAL_HOOK__","vl","isDisabled","supportsFiber","inject","createPortal","cl","createRoot","unstable_strictMode","findDOMNode","flushSync","hydrate","hydrateRoot","hydratedSources","_getVersion","_source","unmountComponentAtNode","unstable_batchedUpdates","unstable_renderSubtreeIntoContainer","defineProperties","Constructor","protoProps","staticProps","_react","_react2","_reactDom","Tilt","_Component","_classCallCheck","_possibleConstructorReturn","transitionTimeout","updateCall","settings","reverse","scale","speed","axis","onMouseEnter","onMouseMove","onMouseLeave","subClass","superClass","_inherits","cancelAnimationFrame","updateElementPosition","willChange","setTransition","_this2","requestAnimationFrame","_this3","_x","_y","percentageX","percentageY","rect","getBoundingClientRect","offsetWidth","offsetHeight","getValues","_utils","checkDCE","AsyncMode","ConcurrentMode","ContextConsumer","ContextProvider","Element","Lazy","Portal","isAsyncMode","isConcurrentMode","isContextConsumer","isContextProvider","isElement","isForwardRef","isFragment","isLazy","isPortal","isProfiler","isStrictMode","isSuspense","isValidElementType","typeOf","__webpack_module_cache__","__webpack_require__","cachedModule","__webpack_modules__","getter","definition","toStringTag","handleFilter","projects","filterButtons","getElementsByClassName","innerText","filtersToString","setCount","filterBtns","project","lang","_jsx","word","_jsxs","entries","_w","innerWidth","_h","innerHeight","_mouseX","_mouseY","elem","backgroundPosition","filters","image","alt","description","URL","title","githubLinks","isIncluded","every","noop","uid","isNullOrUndef","isObject","isNumberFinite","isFinite","finiteOrDefault","valueOrDefault","toDimension","dimension","endsWith","thisArg","each","loopable","_elementsEqual","a0","a1","ilen","v0","v1","datasetIndex","clone$1","klen","isValidKey","_merger","tval","sval","sources","merger","mergeIf","_mergerIf","keyResolvers","resolveObjectKey","resolver","tmp","part","_splitKey","_getKeyResolver","_capitalize","defined","isFunction","setsEqual","PI","TAU","PITAU","INFINITY","POSITIVE_INFINITY","RAD_PER_DEG","HALF_PI","QUARTER_PI","TWO_THIRDS_PI","log10","sign","niceNum","roundedRange","almostEquals","niceRange","fraction","isNumber","epsilon","_setMinAndMaxByKey","array","toRadians","degrees","toDegrees","radians","_decimalPlaces","getAngleFromPoint","centrePoint","anglePoint","distanceFromXCenter","distanceFromYCenter","radialDistanceFromCenter","sqrt","angle","atan2","distance","distanceBetweenPoints","pt1","pt2","_angleDiff","_normalizeAngle","_angleBetween","sameAngleIsFullCircle","angleToStart","angleToEnd","startToAngle","endToAngle","_limitValue","_isBetween","_lookup","table","cmp","mid","lo","_lookupByKey","_rlookupByKey","arrayEvents","unlistenArrayEvents","stub","_chartjs","_arrayUnique","items","requestAnimFrame","throttled","updateFn","updateArgs","ticking","rest","_toLeftRightCenter","align","_alignStartEnd","_getStartAndCountOfVisiblePoints","points","animationsDisabled","pointCount","_sorted","iScale","_parsed","minDefined","maxDefined","getUserBounds","getPixelForValue","_scaleRangesChanged","xScale","yScale","_scaleRanges","newRanges","xmin","xmax","ymin","ymax","changed","atEdge","elasticIn","sin","elasticOut","linear","easeInQuad","easeOutQuad","easeInOutQuad","easeInCubic","easeOutCubic","easeInOutCubic","easeInQuart","easeOutQuart","easeInOutQuart","easeInQuint","easeOutQuint","easeInOutQuint","easeInSine","cos","easeOutSine","easeInOutSine","easeInExpo","easeOutExpo","easeInOutExpo","easeInCirc","easeOutCirc","easeInOutCirc","easeInElastic","easeOutElastic","easeInOutElastic","easeInBack","easeOutBack","easeInOutBack","easeInBounce","easeOutBounce","easeInOutBounce","lim","p2b","n2b","b2n","n2p","map$1","hex","eq","hexString","isShort","alpha","HUE_RE","hsl2rgbn","hsv2rgbn","hwb2rgbn","rgb2hsl","hueValue","calln","hsl2rgb","hue","hueParse","hwb2rgb","hsv2rgb","names$1","OiceXe","antiquewEte","aqua","aquamarRe","azuY","beige","bisque","blanKedOmond","XeviTet","bPwn","burlywood","caMtXe","KartYuse","KocTate","cSO","cSnflowerXe","cSnsilk","crimson","cyan","xXe","xcyan","xgTMnPd","xWay","xgYF","xgYy","xkhaki","xmagFta","xTivegYF","xSange","xScEd","xYd","xsOmon","xsHgYF","xUXe","xUWay","xUgYy","xQe","xviTet","dAppRk","dApskyXe","dimWay","dimgYy","dodgerXe","fiYbrick","flSOwEte","foYstWAn","fuKsia","gaRsbSo","ghostwEte","gTd","gTMnPd","Way","gYF","gYFLw","gYy","honeyMw","hotpRk","RdianYd","Rdigo","ivSy","khaki","lavFMr","lavFMrXsh","lawngYF","NmoncEffon","ZXe","ZcSO","Zcyan","ZgTMnPdLw","ZWay","ZgYF","ZgYy","ZpRk","ZsOmon","ZsHgYF","ZskyXe","ZUWay","ZUgYy","ZstAlXe","ZLw","lime","limegYF","lRF","magFta","maPon","VaquamarRe","VXe","VScEd","VpurpN","VsHgYF","VUXe","VsprRggYF","VQe","VviTetYd","midnightXe","mRtcYam","mistyPse","moccasR","navajowEte","navy","Tdlace","Tive","TivedBb","Sange","SangeYd","ScEd","pOegTMnPd","pOegYF","pOeQe","pOeviTetYd","papayawEp","pHKpuff","peru","pRk","plum","powMrXe","purpN","YbeccapurpN","Psybrown","PyOXe","saddNbPwn","sOmon","sandybPwn","sHgYF","sHshell","siFna","silver","skyXe","UXe","UWay","UgYy","snow","sprRggYF","stAlXe","tan","teO","tEstN","tomato","viTet","JHt","wEte","wEtesmoke","Lw","LwgYF","names","nameParse","unpacked","tkeys","unpack","transparent","RGB_RE","modHSL","ratio","proto","fromObject","functionParse","rgbParse","Color","ret","hexParse","_rgb","_valid","valid","rgbString","hslString","mix","weight","c1","c2","w2","w1","interpolate","rgb1","rgb2","clearer","greyscale","opaquer","negate","saturate","desaturate","rotate","deg","index_esm","isPatternOrGradient","getHoverColor","descriptors","getScope$1","defaults","_descriptors","backgroundColor","borderColor","datasets","devicePixelRatio","chart","platform","getDevicePixelRatio","elements","events","font","family","hoverBackgroundColor","ctx","hoverBorderColor","hoverColor","indexAxis","interaction","intersect","includeInvisible","maintainAspectRatio","onHover","parsing","responsive","scales","showLine","drawActiveElementsOnTop","describe","override","route","targetScope","targetName","scopeObject","targetScopeObject","privateName","local","_scriptable","startsWith","_indexable","_fallback","_measureText","longest","textWidth","measureText","_longestText","arrayOfThings","garbageCollect","save","jlen","thing","nestedThing","restore","gcLen","_alignPixel","pixel","currentDevicePixelRatio","halfWidth","clearCanvas","canvas","getContext","resetTransform","clearRect","drawPoint","drawPointLegend","xOffset","yOffset","cornerRadius","pointStyle","rotation","radius","rad","translate","drawImage","beginPath","ellipse","arc","closePath","moveTo","lineTo","SQRT1_2","borderWidth","stroke","_isPointInArea","point","clipArea","clip","unclipArea","_steppedLineTo","previous","midpoint","_bezierCurveTo","bezierCurveTo","cp1x","cp2x","cp1y","cp2y","renderText","lines","strokeColor","translation","fillStyle","textAlign","textBaseline","setRenderOpts","strokeStyle","lineWidth","strokeText","maxWidth","fillText","decorateText","strikethrough","underline","metrics","actualBoundingBoxLeft","actualBoundingBoxRight","actualBoundingBoxAscent","actualBoundingBoxDescent","yDecoration","decorationWidth","addRoundedRectPath","topLeft","bottomLeft","bottomRight","topRight","LINE_HEIGHT","FONT_STYLE","toLineHeight","_readValueToProps","objProps","read","toTRBL","toTRBLCorners","toPadding","toFont","toFontString","inputs","cacheable","parentContext","_createResolver","scopes","prefixes","rootScopes","getTarget","_resolve","_cacheable","_scopes","_rootScopes","_getTarget","Proxy","deleteProperty","_keys","_cached","proxy","readKey","needsSubResolver","createSubResolver","_resolveWithPrefixes","getKeysFromAllScopes","ownKeys","storage","_storage","_attachContext","subProxy","descriptorDefaults","_proxy","_subProxy","_stack","setContext","receiver","isScriptable","_resolveScriptable","isIndexable","arr","_resolveArray","_resolveWithContext","allKeys","scriptable","indexable","_allKeys","resolveFallback","getScope","addScopes","parentScopes","parentFallback","allScopes","addScopesFromKey","subGetTarget","resolveKeysFromAllScopes","_parseObjectDataRadialScale","_parsing","parsed","parse","EPSILON","getPoint","skip","getValueAxis","splineCurve","firstPoint","middlePoint","afterPoint","d01","d12","s01","s12","splineCurveMonotone","valueAxis","pointsLen","deltaK","mK","pointBefore","pointCurrent","pointAfter","slopeDelta","alphaK","betaK","tauK","squaredMagnitude","monotoneAdjust","delta","iPixel","vPixel","monotoneCompute","capControlPoint","pt","_updateBezierControlPoints","loop","controlPoints","spanGaps","cubicInterpolationMode","prev","tension","capBezierPoints","inArea","inAreaPrev","inAreaNext","_isDomSupported","_getParentNode","domNode","host","parseMaxStyle","styleValue","parentProperty","valueInPixels","positions","getPositionedStyle","suffix","pos","getRelativePosition","evt","borderBox","boxSizing","paddings","borders","box","offsetX","offsetY","useOffsetPos","shadowRoot","getCanvasPosition","round1","getMaximumSize","bbWidth","bbHeight","margins","maxHeight","containerSize","containerStyle","containerBorder","containerPadding","clientWidth","clientHeight","getContainerSize","retinaScale","forceRatio","forceStyle","pixelRatio","deviceHeight","deviceWidth","setTransform","supportsEventListenerOptions","passiveSupported","readUsedSize","getStyle","_pointInLine","_steppedInterpolation","_bezierInterpolation","cp1","cp2","intlCache","formatNumber","num","formatter","Intl","NumberFormat","getNumberFormat","getRtlAdapter","rtl","rectX","setWidth","xPlus","leftForLtr","itemWidth","getRightToLeftAdapter","_itemWidth","overrideTextDirection","original","getPropertyPriority","prevTextDirection","restoreTextDirection","propertyFn","normalize","normalizeSegment","_boundSegment","segment","bounds","startBound","endBound","getSegment","prevValue","inside","subStart","shouldStart","shouldStop","_boundSegments","segments","sub","splitByStyles","segmentOptions","chartContext","_chart","baseStyle","readStyle","_datasetIndex","prevStyle","addStyle","st","p0","p0DataIndex","p1DataIndex","styleChanged","doSplitByStyles","borderCapStyle","borderDash","borderDashOffset","borderJoinStyle","animator","_request","_charts","_running","_lastDate","_notify","anims","callbacks","numSteps","initial","currentStep","_refresh","_update","remaining","running","draw","_active","_total","tick","_getAnims","charts","complete","progress","listen","cur","_duration","stop","cancel","interpolators","boolean","factor","c0","Animation","cfg","currentValue","_fn","_easing","_start","_loop","_target","_from","_to","_promises","elapsed","remain","promises","res","rej","resolved","method","animationOptions","numbers","resize","show","animations","visible","hide","Animations","config","_properties","configure","animatedProps","option","_animateOptions","newOptions","$shared","$animations","resolveTargetOptions","_createAnimations","all","awaitAll","scaleClip","allowedOverflow","getSortedDatasetIndices","filterVisible","metasets","_getSortedDatasetMetas","applyStack","dsIndex","singleMode","otherValue","isStacked","stacked","getOrCreateStack","stacks","stackKey","indexValue","subStack","getLastIndexInStack","vScale","positive","getMatchingVisibleMetas","updateStacks","controller","_cachedMeta","_stacks","iAxis","vAxis","indexScale","valueScale","getStackKey","_top","_bottom","getFirstScaleId","clearStacks","isDirectUpdateMode","cloneIfNotShared","DatasetController","_ctx","_cachedDataOpts","getMeta","_type","_data","_objectData","_sharedOptions","_drawStart","_drawCount","enableOptionSharing","supportsDecimation","$context","_syncList","initialize","linkScales","_stacked","addElements","updateIndex","getDataset","chooseId","xid","xAxisID","yid","yAxisID","rid","rAxisID","iid","iAxisID","vid","vAxisID","getScaleForId","rScale","getDatasetMeta","scaleID","_getOtherScale","_destroy","_dataCheck","adata","convertObjectDataToArray","isExtensible","object","datasetElementType","buildOrUpdateElements","resetNewElements","stackChanged","oldStacked","_resyncElements","scopeKeys","datasetScopeKeys","getOptionScopes","createResolver","sorted","parseArrayData","parseObjectData","parsePrimitiveData","isNotInOrderComparedToPrev","labels","getLabels","singleScale","xAxisKey","yAxisKey","getParsed","getDataElement","updateRangeFromParsed","parsedValue","NaN","getMinMax","canStack","otherScale","createStack","hidden","NEGATIVE_INFINITY","otherMin","otherMax","_skip","getAllParsedValues","getMaxOverflow","getLabelAndValue","label","getLabelForValue","_clip","toClip","defaultClip","chartArea","resolveDatasetElementOptions","resolveDataElementOptions","dataIndex","createDataContext","createDatasetContext","_resolveElementOptions","dataElementType","sharing","datasetElementScopeKeys","resolveNamedOptions","freeze","_resolveAnimations","datasetAnimationScopeKeys","getSharedOptions","includeOptions","sharedOptions","_animationsDisabled","_getSharedOptions","firstOpts","previouslySharedOptions","updateSharedOptions","updateElement","_setStyle","removeHoverStyle","setHoverStyle","_removeDatasetHoverStyle","_setDatasetHoverStyle","arg1","arg2","numMeta","numData","_insertElements","_removeElements","move","updateElements","removed","_sync","_dataChanges","_onDataPush","_onDataPop","_onDataShift","_onDataSplice","newCount","_onDataUnshift","computeMinSampleSize","_cache","$bar","visibleMetas","getAllScaleValues","curr","_length","updateMinAndPrev","ticks","getPixelForTick","parseValue","entry","startValue","endValue","barStart","barEnd","_custom","parseFloatBar","parseArrayOrPrimitive","isFloatBar","custom","setBorderSkipped","edge","borderSkipped","horizontal","borderProps","enableBorderRadius","parseEdge","orig","v2","startEnd","setInflateAmount","inflateAmount","BarController","iAxisKey","vAxisKey","super","bars","getBasePixel","isHorizontal","ruler","_getRuler","vpixels","_calculateBarValuePixels","ipixels","_calculateBarIndexPixels","center","_getStacks","grouped","skipNull","_getStackCount","_getStackIndex","pixels","barThickness","_startPixel","_endPixel","stackCount","categoryPercentage","barPercentage","baseValue","minBarLength","actualBase","floating","getDataVisibility","barSign","startPixel","getPixelForDecimal","endPixel","halfGrid","getLineWidthForValue","maxBarThickness","chunk","computeFlexCategoryTraits","thickness","computeFitCategoryTraits","stackIndex","rects","_index_","_value_","beginAtZero","BubbleController","DoughnutController","innerRadius","outerRadius","_getRotation","_getCircumference","circumference","_getRotationExtents","isDatasetVisible","arcs","getMaxBorderWidth","getMaxOffset","maxSize","cutout","toPercentage","chartWeight","_getRingWeight","ratioX","ratioY","startAngle","endAngle","startX","startY","endX","endY","calcMax","calcMin","maxX","maxY","minX","minY","getRatioAndOffset","maxRadius","radiusLength","_getVisibleDatasetWeightTotal","total","calculateTotal","_getRingWeightOffset","_circumference","animateRotate","calculateCircumference","animationOpts","centerX","centerY","animateScale","metaData","borderAlign","hoverBorderWidth","hoverOffset","ringWeightOffset","legend","generateLabels","legendItem","toggleDataVisibility","tooltipItem","dataLabel","formattedValue","LineController","_dataset","_decimated","animated","maxGapLength","directUpdate","prevParsed","nullData","lastPoint","updateControlPoints","PolarAreaController","_updateRadius","minSize","cutoutPercentage","getVisibleDatasetCount","xCenter","yCenter","datasetStartAngle","getIndexAngle","defaultAngle","countVisibleElements","_computeAngle","getDistanceFromCenterForValue","angleLines","circular","pointLabels","PieController","RadarController","_fullLoop","pointPosition","getPointPositionForValue","tooltipPosition","useFinalPosition","getProps","hasValue","final","defaultRoutes","formatters","numeric","tickValue","notation","maxTick","calculateDelta","logDelta","numDecimal","minimumFractionDigits","maximumFractionDigits","logarithmic","Ticks","autoSkip","tickOpts","ticksLimit","maxTicksLimit","tickLength","_tickSize","maxScale","maxChart","_maxLength","determineMaxTicks","majorIndices","major","enabled","getMajorIndices","numMajorIndices","first","newTicks","skipMajors","evenMajorSpacing","diff","getEvenSpacing","factors","_factorize","calculateSpacing","avgMajorSpacing","majorStart","majorEnd","grace","drawBorder","drawOnChartArea","drawTicks","tickWidth","tickColor","minRotation","maxRotation","mirror","textStrokeWidth","textStrokeColor","autoSkipPadding","labelOffset","minor","crossAlign","showLabelBackdrop","backdropColor","backdropPadding","offsetFromEdge","sample","numItems","increment","getPixelForGridLine","offsetGridLines","validIndex","lineValue","getTickMarkLength","getTitleHeight","titleAlign","position","reverseAlign","Scale","_margins","paddingTop","paddingBottom","labelRotation","_range","_gridLineItems","_labelItems","_labelSizes","_longestTextCache","_reversePixels","_userMax","_userMin","_suggestedMax","_suggestedMin","_ticksLength","_borderValue","_dataLimitsCached","init","suggestedMin","suggestedMax","metas","getPadding","getTicks","xLabels","yLabels","beforeLayout","beforeUpdate","sampleSize","beforeSetDimensions","setDimensions","afterSetDimensions","beforeDataLimits","determineDataLimits","afterDataLimits","minmax","change","keepZero","_addGrace","beforeBuildTicks","buildTicks","afterBuildTicks","samplingEnabled","_convertTicksToLabels","beforeCalculateLabelRotation","calculateLabelRotation","afterCalculateLabelRotation","afterAutoSkip","beforeFit","fit","afterFit","afterUpdate","reversePixels","_alignToPixels","alignToPixels","_callHooks","notifyPlugins","beforeTickToLabelConversion","generateTickLabels","afterTickToLabelConversion","numTicks","maxLabelDiagonal","_isVisible","labelSizes","_getLabelSizes","maxLabelWidth","widest","maxLabelHeight","highest","asin","titleOpts","gridOpts","titleHeight","tickPadding","angleRadians","labelHeight","labelWidth","_calculatePadding","_handleMargins","isRotated","labelsBelowTicks","offsetLeft","offsetRight","isFullSize","fullSize","_computeLabelSizes","caches","widths","heights","tickFont","fontString","nestedLabel","widestLabelSize","highestLabelSize","_resolveTickFontOptions","valueAt","idx","getValueForPixel","decimal","getDecimalForPixel","getBaseValue","createTickContext","optionTicks","rot","_computeGridLineItems","ticksLength","borderOpts","axisWidth","axisHalfWidth","alignBorderValue","borderValue","alignedLineValue","tx1","ty1","tx2","ty2","x1","y1","x2","y2","positionAxisID","limit","optsAtIndex","lineColor","tickBorderDash","tickBorderDashOffset","_computeLabelItems","tickAndPadding","hTickAndPadding","lineCount","textOffset","_getXAxisLabelAlignment","_getYAxisLabelAlignment","halfCount","backdrop","tickTextAlign","labelPadding","_computeLabelArea","drawBackground","fillRect","findIndex","drawGrid","drawLine","setLineDash","lineDashOffset","lastLineWidth","drawLabels","drawTitle","titleX","titleY","titleArgs","_layers","tz","gz","getSortedVisibleDatasetMetas","axisID","_maxDigits","TypedRegistry","isForType","isPrototypeOf","parentScope","isIChartComponent","itemDefaults","routes","propertyParts","sourceName","sourceScope","routeDefaults","registerDefaults","controllers","_typedRegistries","_each","addControllers","_len3","_key3","_len4","_key4","addPlugins","_len5","_key5","addScales","_len6","_key6","getController","_get","getElement","getPlugin","getScale","removeControllers","_len7","_key7","removeElements","_len8","_key8","removePlugins","_len9","_key9","removeScales","_len10","_key10","typedRegistry","reg","_getRegistryForType","_exec","itemReg","camelMethod","ScatterController","abstract","DateAdapter","chartOptions","formats","timestamp","amount","startOf","weekday","endOf","members","adapters","_date","binarySearch","metaset","lookupMethod","getRange","evaluateInteractionItems","handler","getIntersectItems","isPointInArea","inRange","getNearestCartesianItems","distanceMetric","useX","useY","getDistanceMetricForAxis","minDistance","getCenterPoint","getNearestItems","getNearestRadialItems","getAxisItems","rangeMethod","intersectsItem","Interaction","modes","nearest","STATIC_POSITIONS","filterByPosition","filterDynamicPositionByAxis","sortByWeight","setLayoutDims","layouts","wrap","stackWeight","placed","buildStacks","vBoxMaxWidth","hBoxMaxHeight","layout","availableWidth","availableHeight","getCombinedMax","maxPadding","updateMaxPadding","boxPadding","updateDims","newWidth","outerWidth","newHeight","outerHeight","widthChanged","heightChanged","same","getMargins","marginForPositions","fitBoxes","boxes","refitBoxes","refit","setBoxDims","placeBoxes","userPadding","autoPadding","addBox","removeBox","layoutItem","minPadding","layoutBoxes","wrapBoxes","centerHorizontal","centerVertical","leftAndTop","rightAndBottom","vertical","buildLayoutBoxes","verticalBoxes","horizontalBoxes","visibleVerticalBoxCount","updatePos","handleMaxPadding","BasePlatform","acquireContext","releaseContext","isAttached","updateConfig","BasicPlatform","EXPANDO_KEY","EVENT_TYPES","touchstart","touchmove","touchend","pointerenter","pointerdown","pointermove","pointerup","pointerleave","pointerout","isNullOrEmpty","eventListenerOptions","removeListener","nodeListContains","nodeList","createAttachObserver","observer","MutationObserver","trigger","addedNodes","removedNodes","observe","childList","subtree","createDetachObserver","drpListeningCharts","oldDevicePixelRatio","onWindowResize","dpr","createResizeObserver","ResizeObserver","contentRect","listenDevicePixelRatioChanges","releaseObserver","disconnect","unlistenDevicePixelRatioChanges","createProxyAndListen","native","fromNativeEvent","addListener","DomPlatform","renderHeight","renderWidth","displayWidth","displayHeight","initCanvas","proxies","$proxies","isConnected","PluginService","notify","hook","_createDescriptors","invalidate","_oldCache","_notifyStateChanges","localIds","allPlugins","getOpts","pluginOpts","createDescriptors","previousDescriptors","some","pluginScopeKeys","getIndexAxis","datasetDefaults","determineAxis","scaleOptions","initOptions","chartDefaults","configScales","chartIndexAxis","firstIDs","scaleConf","getDefaultScaleIDFromAxis","defaultScaleOptions","defaultID","getAxisFromDefaultScaleID","mergeScaleConfig","initData","keyCache","keysCached","cachedKeys","addIfFound","Config","_config","initConfig","_scopeCache","_resolverCache","clearCache","datasetType","additionalOptionScopes","_cachedScopes","mainScope","resetCache","keyLists","chartOptionScopes","subPrefixes","getResolver","hasFunction","needContext","resolverCache","KNOWN_POSITIONS","positionIsHorizontal","compare2Level","l1","l2","onAnimationsComplete","onComplete","onAnimationProgress","onProgress","getCanvas","getElementById","instances","getChart","moveNumericKeys","intKey","Chart","userConfig","initialCanvas","existingChart","OffscreenCanvas","_detectPlatform","_options","_aspectRatio","_metasets","_lastEvent","_listeners","_responsiveListeners","_sortedMetasets","_plugins","_hiddenIndices","_doResize","resizeDelay","_initialize","bindEvents","_resizeBeforeDraw","_resize","newSize","newRatio","onResize","ensureScalesHaveIDs","axisOptions","buildOrUpdateScales","scaleOpts","updated","isRadial","dposition","dtype","scaleType","hasUpdated","_updateMetasets","_destroyDatasetMeta","_removeUnreferencedMetasets","buildOrUpdateControllers","newControllers","ControllerClass","_resetElements","animsDisabled","_updateScales","_checkEventBindings","_updateHiddenIndices","_minPadding","_updateLayout","_updateDatasets","_eventHandler","_updateHoverStyles","existingEvents","newEvents","unbindEvents","changes","_getUniformDataChanges","datasetCount","makeSet","changeSet","noArea","_idx","_updateDataset","layers","_drawDatasets","_drawDataset","useClip","getElementsAtEventForMode","setDatasetVisibility","_updateVisibility","_stop","toBase64Image","toDataURL","bindUserEvents","bindResponsiveEvents","_add","_remove","detached","updateHoverStyle","getActiveElements","setActiveElements","activeElements","lastActive","replay","hoverOptions","deactivated","activated","inChartArea","eventFilter","_handleEvent","_getActiveElements","isClick","_isClickEvent","lastEvent","determineLastEvent","invalidatePlugins","clipArc","pixelMargin","angleMargin","parseBorderRadius$1","angleDelta","halfThickness","innerLimit","computeOuterLimit","outerArcLimit","outerStart","outerEnd","innerStart","innerEnd","rThetaToXY","theta","pathArc","innerR","spacingOffset","avNogSpacingRadius","angleOffset","outerStartAdjustedRadius","outerEndAdjustedRadius","outerStartAdjustedAngle","outerEndAdjustedAngle","innerStartAdjustedRadius","innerEndAdjustedRadius","innerStartAdjustedAngle","innerEndAdjustedAngle","pCenter","p4","p8","outerStartX","outerStartY","outerEndX","outerEndY","inner","lineJoin","fullCircles","drawFullCircleBorders","ArcElement","chartX","chartY","rAdjust","betweenAngles","withinRadius","halfAngle","halfRadius","radiusOffset","drawArc","setStyle","lineCap","pathVars","paramsStart","paramsEnd","segmentStart","segmentEnd","outside","pathSegment","lineMethod","stepped","getLineMethod","fastPathSegment","prevX","lastY","avgX","countX","pointIndex","drawX","truncX","_getSegmentMethod","usePath2D","Path2D","_path","strokePathWithCache","segmentMethod","strokePathDirect","LineElement","_points","_segments","_pointsUpdated","findStartAndEnd","solidSegments","_computeSegments","_interpolate","_getInterpolationMethod","inRange$1","hitRadius","PointElement","mouseX","mouseY","inXRange","inYRange","hoverRadius","getBarBounds","bar","half","skipOrLimit","boundingRects","maxW","maxH","parseBorderWidth","maxR","enableBorder","parseBorderRadius","outer","skipX","skipY","addNormalRectPath","inflateRect","refRect","BarElement","addRectPath","cleanDecimatedDataset","cleanDecimatedData","plugin_decimation","algorithm","beforeElementsUpdate","xAxis","getStartAndCountOfVisiblePointsSimplified","threshold","decimated","samples","bucketWidth","sampledIndex","maxAreaPoint","maxArea","nextA","avgY","avgRangeStart","avgRangeEnd","avgRangeLength","rangeOffs","rangeTo","pointAx","pointAy","lttbDecimation","minIndex","startIndex","xMin","dx","intermediateIndex1","intermediateIndex2","minMaxDecimation","_getBounds","_findSegmentEnd","_getEdge","_createBoundaryLine","boundary","linePoints","_ref5","_pointsFromSegments","_shouldApplyFill","_resolveTarget","propagate","visited","_decodeFill","fillOption","parseFillOption","firstCh","decodeTargetIndex","addPointsBelow","sourcePoint","linesBelow","postponed","findPoint","pointValue","firstValue","lastValue","simpleArc","getLineByIndex","sourcePoints","below","getLinesBelow","_buildStackLine","_getTargetValue","computeCircularBoundary","_getTargetPixel","computeLinearBoundary","computeBoundary","_drawfill","lineOpts","above","clipVertical","doFill","clipY","lineLoop","tpoints","targetSegments","tgt","subBounds","fillSources","fillSource","notShape","clipBounds","interpolatedLineTo","targetLoop","interpolatedPoint","afterDatasetsUpdate","_args","$filler","beforeDraw","drawTime","beforeDatasetsDraw","beforeDatasetDraw","getBoxSize","labelOpts","boxHeight","boxWidth","usePointStyle","pointStyleWidth","itemHeight","Legend","_added","legendHitBoxes","_hoveredItem","doughnutMode","legendItems","columnSizes","lineWidths","buildLabels","labelFont","_computeTitleHeight","_fitRows","_fitCols","hitboxes","totalHeight","row","heightLimit","totalWidth","currentColWidth","currentColHeight","adjustHitBoxes","rtlHelper","hitbox","_draw","defaultColor","fontColor","halfFontSize","textDirection","lineDash","drawOptions","SQRT2","yBoxTop","xBoxLeft","drawLegendBox","_textX","titleFont","titlePadding","topPaddingPlusHalfFontSize","_getLegendItemAt","hitBox","handleEvent","onLeave","isListened","hoveredItem","sameItem","itemsEqual","plugin_legend","_element","afterEvent","Title","_padding","textSize","_drawArgs","fontOpts","plugin_title","titleBlock","createTitle","plugin_subtitle","positioners","average","eventPosition","nearestElement","tp","pushOrConcat","toPush","splitNewlines","createTooltipItem","getTooltipSize","footer","bodyFont","footerFont","titleLineCount","footerLineCount","bodyLineItemCount","combinedBodyLength","bodyItem","after","beforeBody","afterBody","titleSpacing","titleMarginBottom","displayColors","bodySpacing","footerMarginTop","footerSpacing","widthPadding","maxLineWidth","determineXAlign","yAlign","chartWidth","xAlign","caret","caretSize","caretPadding","doesNotFitWithAlign","determineAlignment","determineYAlign","getBackgroundPoint","alignment","paddingAndSize","alignX","alignY","getAlignedX","getBeforeAfterBodyLines","overrideCallbacks","Tooltip","_eventPosition","_size","_cachedAnimations","_tooltipItems","dataPoints","caretX","caretY","labelColors","labelPointStyles","labelTextColors","tooltipItems","getTitle","beforeTitle","afterTitle","getBeforeBody","getBody","bodyItems","beforeLabel","afterLabel","getAfterBody","getFooter","beforeFooter","afterFooter","_createItems","itemSort","labelColor","labelPointStyle","labelTextColor","positionAndSize","backgroundPoint","drawCaret","tooltipPoint","caretPosition","getCaretPosition","x3","y3","ptX","ptY","titleColor","_drawColorBox","colorX","rtlColorX","yOffSet","colorY","multiKeyBackground","outerX","innerX","strokeRect","drawBody","bodyAlign","bodyLineHeight","xLinePadding","fillLineOfText","bodyAlignForCalculation","textColor","bodyColor","drawFooter","footerAlign","footerColor","tooltipSize","quadraticCurveTo","_updateAnimationTarget","animX","animY","_willRender","hasTooltipContent","globalAlpha","_ref6","positionChanged","_positionChanged","_ignoreReplayEvents","plugin_tooltip","afterInit","afterDraw","labelCount","Decimation","Filler","SubTitle","findOrAddLabel","addedLabels","addIfString","lastIndexOf","CategoryScale","_startValue","_valueRange","_addedLabels","generateTicks$1","generationOptions","dataRange","precision","maxTicks","maxDigits","includeBounds","maxSpaces","rmin","rmax","countDefined","minSpacing","niceMin","niceMax","numSpaces","rounded","almostWhole","decimalPlaces","relativeLabelSize","_ref7","LinearScaleBase","_endValue","handleTickRangeOptions","setMin","setMax","minSign","maxSign","MAX_SAFE_INTEGER","MIN_SAFE_INTEGER","getTickLimit","stepSize","computeTickLimit","LinearScale","isMajor","tickVal","LogarithmicScale","_zero","exp","endExp","endSignificand","significand","lastTick","generateTicks","getTickBackdropHeight","determineLimits","fitWithPointLabels","limits","valueCount","_pointLabels","pointLabelOpts","additionalAngle","centerPointLabels","getPointLabelContext","getPointPosition","drawingArea","plFont","updateLimits","setCenterPoint","_pointLabelItems","extra","outerDistance","pointLabelPosition","yForAngle","getTextAlignForAngle","leftForTextAlign","buildPointLabelItems","hLimits","vLimits","pathRadiusLine","RadialLinearScale","leftMovement","rightMovement","topMovement","bottomMovement","scalingFactor","getValueForDistanceFromCenter","scaledDistance","pointLabel","createPointLabelContext","distanceFromCenter","getBasePosition","getPointLabelPosition","backdropLeft","backdropTop","backdropWidth","backdropHeight","drawPointLabels","gridLineOpts","drawRadiusLine","animate","INTERVALS","millisecond","steps","second","minute","hour","day","quarter","year","UNITS","sorter","adapter","_adapter","parser","isoWeekday","_parseOpts","determineUnitForAutoTicks","minUnit","capacity","interval","addTick","timestamps","ticksFromTimestamps","majorUnit","setMajorTicks","TimeScale","_unit","_majorUnit","_offsets","_normalized","displayFormats","normalized","_applyBounds","_getLabelBounds","getLabelTimestamps","timeOpts","_generate","_filterBetween","_getLabelCapacity","determineUnitForFormatting","determineMajorUnit","initOffsets","offsetAfterAutoskip","getDecimalForValue","hasWeekday","getDataTimestamps","tooltipFormat","_tickFormatFunction","minorFormat","majorFormat","offsets","_getLabelSize","ticksOpts","tickLabelWidth","cosRotation","sinRotation","tickFontSize","exampleTime","exampleLabel","prevSource","nextSource","prevTarget","nextTarget","span","TimeSeriesScale","_table","_minPos","_tableRange","_getTimestampsForTable","buildLookupTable","registerables","_objectSpread","_arguments","sym","excluded","sourceKeys","sourceSymbolKeys","_arrayWithHoles","iter","_iterableToArray","_nonIterableRest","reforwardRef","setLabels","currentData","nextLabels","setDatasets","nextDatasets","nextDataset","currentDataset","find","cloneData","nextData","noopData","ChartComponent","_param","_height","_width","_redraw","redraw","dataProp","getDatasetAtEvent","getElementAtEvent","getElementsAtEvent","fallbackContent","onClickProp","canvasRef","chartRef","ref1","computedData","setComputedData","renderChart","ChartJS","destroyChart","nextOptions","createTypedChart","Pie","async","reposResponse","fetch","repos","totalLanguagesBytes","reposLanguagesURL","repo","languages_url","languagesBytesResponse","repoLanguageURL","repoLanguagesBytes","languages","setLanguages","percentages","setPercentages","getLanguages","totalBytes","languageBytes","fetchData","randomColors","Skeleton","setFilters","Parallax","typingRef","Audio","typingPath","projectsComponents","Project","play","LinkedInIcon","EmailIcon","GitHubIcon","LocalPhoneIcon","Filter","allSelected","clickedFilter","newFilters","allowfullscreen","frameborder","allow","PieChart","App"],"sourceRoot":""}